{"version":3,"sources":["serviceWorker.js","assets/img/landscape-image.svg","assets/img/default-avatar.svg","../node_modules/moment/locale sync /^/.//.*$","assets/img/catalog/undraw_online_organizer_ofxm.svg","assets/img/catalog/undraw_Checklist__re_2w7v.svg","assets/img/catalog/stats.svg","assets/img/catalog/undraw_add_document_0hek.svg","assets/img/gallery.svg","assets/img/oauthTokens.svg","context/MenuContext.js","context/UserContext.js","context/SnackbarContext.js","components/core/utils/ConfirmBeforeLeave/ConfirmBeforeLeaveDialog.js","components/core/utils/ScrollToTop/ScrollToTop.js","hooks/useSnackbar.js","components/layout/Snackbar/Snackbar.js","components/core/MuiTheme/MuiTheme.js","components/layout/Drawer/CatalogDrawer.js","utils/realm.js","components/layout/Drawer/RealmDrawer.js","components/kakari/RealmNavigation/RealmNavigation.js","components/layout/ThemeSwitch/ThemeSwitch.js","components/layout/Drawer/Drawer.template.js","components/layout/Drawer/Drawer.js","components/layout/Loader/Loader.template.js","components/layout/Loader/Loader.js","components/core/utils/RouteTransition/MenuContextUpdater.js","components/core/utils/RouteTransition/RouteTransition.js","components/core/input/Button.js","components/core/input/GroupSelection.js","hooks/useUserGroup.js","pages/Home/AddNewItem.js","components/kakari/BankCard/BankCard.js","components/kakari/BankList/BankList.template.js","components/kakari/BankList/BankList.js","hooks/useBanks.js","hooks/useCatalog.js","components/kakari/CatalogCard/CatalogCard.js","components/kakari/CatalogList/CatalogList.template.js","components/kakari/CatalogList/CatalogList.js","components/layout/Container/PageContainer.js","components/core/typography/PageTitle.js","hooks/useRealm.js","hooks/useAccess.js","components/core/utils/AccessCheck.js","components/kakari/RealmCard/RealmCard.js","components/kakari/RealmList/RealmList.template.js","components/kakari/RealmList/RealmList.js","components/core/utils/SearchField/SearchField.js","components/kakari/SiteCard/SiteCard.js","components/kakari/SiteList/SiteList.template.js","components/kakari/SiteList/SiteList.js","hooks/useSites.js","pages/Home/Home.template.js","pages/Home/Home.js","components/Login/ButtonsBuilder.js","components/Login/avatarEditorStyles.js","components/Login/AvatarImage.js","components/Login/AvatarEditor.js","components/Login/FormBuilder.js","components/Login/OauthBtnsBuilder.js","components/Login/Login.js","pages/Login/Login.js","components/layout/Loader/PageLoader.js","components/core/utils/SetStatus/SetStatus.js","components/core/utils/NotFound/NotFound.js","components/layout/SectionCard/SectionCard.js","pages/Realm/Realm.js","hooks/useRealmUsers.js","hooks/useAffiliates.js","components/kakari/AffiliateInfos/AffiliateCode.js","components/kakari/AffiliateInfos/AffiliateType.js","components/core/utils/Forbidden/Forbidden.js","components/kakari/AffiliateInfos/InfoBox.js","hooks/useRealmOrders.js","components/core/data/table/SortableCell.js","components/core/typography/Title.js","components/core/typography/Toolbar.js","components/core/data/table/TableToolbar.js","components/core/data/table/Table.js","components/core/data/table/TableDefinition.js","components/kakari/Order/OrderPaymentMethod.js","components/kakari/OrdersTable/OrdersTable.js","hooks/useShellsActions.js","hooks/useUserWallet.js","components/kakari/UserWallet/UserWalletsTable.js","hooks/useMoneyBankAccount.js","components/kakari/MoneyBankAccountInfos/MoneyBankAccountInfos.js","components/kakari/MoneyBankAccountInfos/MoneyBankAccountInfoDialog.js","components/kakari/MoneyBankAccountActions/Create/Paypal.js","components/core/input/CountrySelector.js","components/kakari/MoneyBankAccountActions/Create/Bank.js","components/kakari/MoneyBankAccountActions/Create/CreateBankAccountDialog.js","components/kakari/MoneyBankAccountActions/MoneyBankAccountTable.js","components/core/input/UserWalletAutoPeriodSelector.js","components/core/input/AffiliateWalletAutocomplete.js","components/core/input/UserBankAccountAutocomplete.js","components/kakari/UserWallet/CreateWalletAutoDialog.js","components/core/feedback/RichAlert.js","components/kakari/UserWallet/UserWalletAutoDeleteDialog.js","components/kakari/UserWallet/UserWalletAutoTable.js","components/kakari/AffiliateInfos/AffiliateInfos.js","components/layout/ConfirmDialog/ConfirmDialog.js","components/kakari/ShellActions/ShellActions.template.js","components/kakari/ShellActions/ShellActions.js","hooks/useShell.js","components/kakari/ShellsList/ShellEditDate.js","components/kakari/ShellsList/ShellsList.template.js","components/kakari/ShellsList/ShellsList.js","pages/Affiliate/Affiliate.js","components/kakari/CreateCouponForm/ProductsAutocomplete.js","components/kakari/CreateProductModal/CreateProductModal.js","hooks/useProductActions.js","pages/Catalog/EditCatalogTitle.js","pages/Catalog/Catalog.js","hooks/useCurrency.js","components/kakari/Currency/CurrencyFormatedPrice.js","components/kakari/CouponsList/DeleteCouponBtn.js","components/kakari/CouponsList/LinkBtn.js","components/kakari/CouponsList/CouponsList.template.js","components/kakari/CouponsList/CouponsList.js","components/kakari/CreateCouponShortcut/CreateCouponShortcut.js","pages/Coupons/Coupons.js","components/core/input/Currencies.js","components/kakari/CreateCouponForm/CreateCouponForm.template.js","components/kakari/CreateCouponForm/CreateCouponForm.js","pages/CreateCoupon/CreateCoupon.js","components/core/input/RealmSelection.js","components/kakari/EditProductForm/Availability/Availability.js","components/core/utils/ConfirmBeforeLeave/ConfirmBeforeLeave.js","components/kakari/EditProductForm/FormNavigation/FormNavigation.js","components/kakari/EditProductForm/formBuilderUtils/generateNativeFields.js","components/core/input/Date.js","components/core/data/Flag.js","utils/misc.js","components/core/input/MultiLangTextField.js","components/core/input/ProductInput.js","components/kakari/EditProductForm/formBuilderUtils/generateOtherFields.js","components/kakari/EditProductForm/EditProductFormBuilder.js","hooks/useProductMedias.js","components/kakari/EditProductForm/gallery/DeleteDialog.js","components/core/feedback/State/Empty.js","components/kakari/EditProductForm/gallery/Empty.js","components/kakari/EditProductForm/gallery/Gallery.js","components/core/input/DateTime.js","components/core/input/VATHelperDialog.js","components/core/input/Price.js","components/core/feedback/PriceFeeNotice.js","components/kakari/EditProductForm/Pricing/PricingRow.js","components/kakari/EditProductForm/Pricing/PricingTable.js","components/kakari/EditProductForm/Prices/Prices.js","components/kakari/EditProductForm/EditProductForm.template.js","components/kakari/EditProductForm/EditProductForm.js","pages/Product/Product.template.js","pages/Product/Product.js","components/shells/ReinstallWizard/OSSelection.js","components/shells/ReinstallWizard/Success.js","components/shells/ReinstallWizard/ReinstallWizard.js","pages/ReinstallShell/ReinstallShell.js","components/kakari/DateSlotFilter/DateSlotFilter.js","components/kakari/UserTable/UserTable.template.js","components/kakari/UserTable/UserTable.js","pages/Users/Users.js","pages/Orders/Orders.js","components/kakari/Order/OrderInfo.js","components/kakari/Order/OrderLogs.js","components/kakari/Order/OrderPaymentInfo.js","components/kakari/Order/OrderRefundDialog.js","hooks/useOrder.js","components/kakari/Order/OrderRefundButton.js","components/kakari/Order/OrderTable.js","components/kakari/UserLocation/UserLocation.js","pages/Order/Order.js","components/core/input/Year.js","components/core/input/Month.js","components/kakari/OrderReport/OrderReportFilters.js","components/kakari/OrderReport/OrdersItemReport.js","utils/colors.js","utils/uuid.js","components/core/data/charts/pie/style.js","components/core/data/charts/pie/Pie.js","components/core/data/charts/pie/PieChartNoData.js","components/core/data/charts/pie/ActivePieChart.js","components/kakari/OrderReport/OrdersProductReport.js","components/kakari/OrderReport/OrdersSalesReport.js","components/core/utils/Redirect.js","components/kakari/RealmStats/UserStatusCard.js","components/core/data/Metric/Toolbar.js","components/core/data/Metric/CustomTooltip.js","components/core/data/Metric/Chart.js","components/core/data/Metric/NoData.js","hooks/useMetric.js","components/core/data/Metric/Metric.js","components/kakari/RealmStats/RealmUserChart.js","components/kakari/RealmStats/RealmUserStats.js","components/kakari/ShellReportTable/ShellReportTable.js","hooks/useShellReport.js","components/kakari/OrderReport/ShellsOrderReport.js","components/kakari/OrderReport/PxlRealmReport.js","pages/OrderReport/OrdersReport.js","components/kakari/ProductsList/ProductsList.template.js","components/kakari/ProductsList/ProductsList.js","pages/Products/Products.js","components/common/profile/RequestPasswordDialog.js","components/common/profile/ChangeEmail.js","hooks/useProfile.js","components/common/profile/AvatarEditor/styles.js","components/common/profile/AvatarEditor/AvatarEditor.js","components/common/profile/Picture.js","components/common/profile/Account.js","components/common/profile/Information.js","components/core/data/SnsLink/styles.js","components/core/utils/oauth.js","components/common/profile/OAuth/AddDialog.js","hooks/useOAuth.js","components/common/profile/OAuth/table/Empty.js","components/common/profile/OAuth/DeleteDialog.js","components/common/profile/OAuth/table/Row.js","components/common/profile/OAuth/table/Table.js","components/common/profile/OAuth/OAuth.js","components/common/profile/Security.js","pages/Profile/Profile.js","components/core/input/RealmRegistrationTypeSelector.js","components/kakari/RealmForm/RealmForm.js","components/kakari/RealmForm/RegistrationConfirmDialog.js","components/kakari/RealmForm/RealmUpdateForm.js","pages/RealmSettings/RealmSettings.js","components/layout/Container/tab/Panel.js","components/kakari/SiteConfiguration/SiteConfiguration.js","components/kakari/SiteForm/SiteForm.js","components/kakari/SiteForm/SiteUpdateForm.js","pages/Site/Site.js","components/kakari/ShellSnapshotsTable/ShellRestoreDialog.js","hooks/useShellSnapshot.js","components/kakari/ShellSnapshotsTable/ShellSnapshotsTable.template.js","components/kakari/ShellSnapshotsTable/ShellSnapshotsTable.js","pages/ShellSnapshots/ShellSnapshots.js","components/core/input/UserAutocomplete.js","hooks/useSupport.js","components/common/support/CannedTable.js","components/common/support/SelectDialog.js","components/kakari/UserContact/UserContact.js","pages/ContactUser/ContactUser.js","components/kakari/WaitingList/WaitingListTable.js","hooks/useWaitingList.js","pages/WaitingList/WaitingList.js","components/kakari/AddAdminCommentModal/AddAdminCommentModal.js","hooks/useAdminComments.js","components/kakari/AdminComments/AdminComments.js","components/core/input/UserStatusSelector.js","components/kakari/UserChangeStatusModal/UserChangeStatusModal.js","components/kakari/Segment/SegmentTable.js","hooks/useRealmSegment.js","components/kakari/Segment/UserChangeSegmentModal.js","components/kakari/User/ProfileActions.js","components/kakari/User/Profile.js","components/kakari/Mail/MailDialog.js","components/kakari/Mail/UserMailHistoryTable.js","hooks/useUserMail.js","hooks/useMetaObject.js","hooks/useKyc.js","components/kakari/Kyc/KycTable.js","pages/User/DynamicTabs.js","pages/User/User.js","components/kakari/InvoicesTable/InvoicesTable.js","hooks/useRealmInvoices.js","pages/Invoices/Invoices.js","pages/Invoice/Invoice.js","hooks/useInvoice.js","components/core/input/LangSelect.js","components/common/support/CreateDialog.js","pages/CannedResponses/CannedResponses.js","components/common/support/DeleteDialog.js","pages/EditCannedResponse/EditCannedResponse.js","components/core/data/Gauge/Gauge.js","components/kakari/ShellHostTable/Metric.js","components/kakari/ShellHostTable/RowMetrics.js","components/kakari/ShellHostTable/ShellHostTable.template.js","hooks/useShellHost.js","components/kakari/ShellHostTable/ShellHostTable.js","pages/ShellHosts/ShellHosts.js","components/kakari/ShellDatacenterTable/ShellDatacentersTable.template.js","hooks/useShellDatacenter.js","components/kakari/ShellDatacenterTable/ShellDatacentersTable.js","pages/ShellDatacenters/ShellDatacenters.js","pages/ShellHosts/HostMetrics.js","pages/AffiliateList/AffiliateTypeFilter.js","pages/AffiliateList/AffiliateWithBalanceFilter.js","pages/AffiliateList/AffiliateList.js","components/kakari/BankWithdrawals/BankWithdrawals.js","pages/Bank/Bank.js","components/kakari/ShellHost/Metric/CPU/CpuMetrics.js","components/kakari/ShellHost/Metric/CPU/ShellHostCpusMetrics.js","pages/ShellHosts/HostMetricsCpus.js","pages/ShellLogs/ShellLogs.js","components/kakari/SoftwareList/SoftwareList.js","pages/Softwares/Softwares.js","pages/Software/SoftwareInfo.js","pages/Software/SoftwareInfoForm.js","components/kakari/SoftwareInfo/SoftwareAddLink.js","hooks/useSoftware.js","components/kakari/SoftwareInfo/SoftwareLinks.js","components/kakari/SoftwareInfo/SoftwareVersionFileRow.js","components/kakari/SoftwareInfo/SoftwareAddVersion.js","components/kakari/SoftwareInfo/SoftwareEditVersion.js","components/kakari/SoftwareInfo/SoftwareVersions.js","pages/Software/Software.js","pages/AddSoftware/AddSoftware.js","hooks/useRealmEmails.js","components/core/data/email/EmailChips.js","components/kakari/RealmEmail/EmailTable.js","components/core/input/EnableSelector.js","components/core/input/EmailsInput.js","components/kakari/RealmEmail/EmailForm.js","components/kakari/RealmEmail/EmailCreateDialog.js","pages/RealmEmails/RealmEmails.js","components/kakari/RealmEmail/EmailUpdateForm.js","components/kakari/RealmEmail/Text/TextForm.js","components/kakari/RealmEmail/Text/TextCreateDialog.js","components/kakari/RealmEmail/Text/TextTestDialog.js","components/kakari/RealmEmail/Text/TextUpdateForm.js","components/kakari/RealmEmail/Text/TextTabs.js","pages/RealmEmails/RealmEmail.js","components/core/input/CatalogAutocomplete.js","components/kakari/CreateWarningDialog/CreateWarningDialog.js","hooks/useWarnings.js","components/kakari/WarningsList/WarningsListTable.js","pages/Warnings/Warnings.js","components/kakari/WarningForm/WarningForm.js","pages/EditWarning/EditWarning.js","components/kakari/ShellOperatingSystem/Image/QAConfirmDialog.js","components/core/typography/TextWithIcon.js","components/kakari/ShellSSHConnection/ShellSSHConnection.js","components/kakari/ShellOperatingSystem/Image/QADialog.js","hooks/useShellOS.js","components/kakari/ShellOperatingSystem/Image/ShellOsImageQAList.js","pages/ShellOSImageQA/ShellOSImageQA.js","components/kakari/OrderReport/OrdersExport.js","pages/CatalogStats/CatalogStats.js","hooks/PXL/usePXLRelease.js","components/kakari/PXL/Release/PxlReleaseTable.js","pages/PXL/Releases.js","components/core/data/Media/Video.js","components/core/data/Media/Audio.js","components/kakari/PXL/Release/ReviewRecordAcceptDialog.js","components/kakari/PXL/Release/ReviewRecordDeclineDialog.js","components/kakari/PXL/Release/ReviewRecordDialog.js","components/kakari/PXL/Release/RecordReview.js","components/kakari/PXL/Release/Records.js","components/kakari/PXL/Release/ReviewAlbumAcceptDialog.js","components/kakari/PXL/Release/ReviewAlbumDeclineDialog.js","components/kakari/PXL/Release/AlbumReview.js","pages/PXL/ReviewRelease.js","components/core/input/SiteVisibleSelector.js","components/core/input/SiteCustomSelector.js","components/core/input/SiteAutocomplete.js","components/core/input/Flags.js","utils/i18nInput.js","components/kakari/SiteTemplate/Form.js","components/kakari/SiteTemplate/CreateDialog.js","hooks/useSiteTemplate.js","components/kakari/SiteTemplate/SiteTemplateTable.js","pages/SiteTemplate/SiteTemplateList.js","hooks/useText.js","components/kakari/SiteTemplate/EditForm.js","components/core/input/template/setting/TemplateSettingRequiredSelector.js","components/core/input/template/setting/TemplateSettingVisibleSelector.js","components/core/input/template/setting/TemplateSettingTypeSelector.js","components/core/input/template/setting/TemplateSettingFileTypeSelector.js","components/kakari/SiteTemplate/Setting/Form.js","components/kakari/SiteTemplate/Setting/CreateSettingDialog.js","components/kakari/SiteTemplate/Setting/EditSettingDialog.js","components/kakari/SiteTemplate/Setting/SiteTemplateSettingTable.js","components/core/input/template/image/TemplateImageVisibleSelector.js","components/kakari/SiteTemplate/Image/CreateTemplateImageDialog.js","components/kakari/SiteTemplate/Image/EditTemplateImageDialog.js","components/kakari/SiteTemplate/Image/DeleteTemplateImageDialog.js","components/kakari/SiteTemplate/Image/SiteTemplateImageTable.js","pages/SiteTemplate/SiteTemplateEdit.js","components/kakari/BillPayUserTable/BillPayUserTable.js","hooks/useRealmServices.js","pages/BillPayUsers/BillPayUsers.js","components/core/input/WalletDisabledLimitSelector.js","components/kakari/UserWallet/WalletForm.js","components/kakari/UserWallet/EditWallet.js","components/kakari/UserWallet/UserDisbursementInfoDialog.js","components/kakari/UserWallet/UserWalletHistoryTable.js","pages/Wallet/Wallet.js","pages/Kyc/Kycs.js","components/kakari/Kyc/KycFile.js","components/kakari/Kyc/KycFileTable.js","components/kakari/Kyc/KycInfo.js","components/kakari/Kyc/OnFidoReport.js","pages/Kyc/Kyc.js","components/kakari/Segment/SegmentForm.js","components/kakari/Segment/CreateSegmentDialog.js","pages/Segments/Segments.js","components/kakari/Segment/SegmentUpdateForm.js","pages/Segments/Segment.js","components/RouteController/Routes.js","components/RouteController/RouteController.js","components/layout/Layout.js","App.js","index.js"],"names":["isLocalhost","Boolean","window","location","hostname","match","register","config","navigator","URL","process","href","origin","addEventListener","swUrl","fetch","headers","then","response","contentType","get","status","indexOf","serviceWorker","ready","registration","unregister","reload","registerValidSW","catch","console","log","checkValidServiceWorker","onupdatefound","installingWorker","installing","onstatechange","state","controller","onUpdate","onSuccess","error","message","module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","defaultMenuContext","route","open","confirmBeforeNav","MenuContext","createContext","MenuContextContainer","_ref","children","cookies","setCookie","useCookies","menu","assign","setMenu","useState","useEffect","React","createElement","Provider","value","defaultUserContext","loggedIn","loading","user","Display_Name","Email","Profile","Media_Image","Url","UserContext","UserContainer","setUser","loggedUser","useRest","userCtx","result","SnackbarValueContext","SnackbarSetContext","SnackbarProvider","memo","setSnackbar","type","arguments","length","undefined","displayName","SnackbarContainer","_ref2","snackbar","ConfirmBeforeLeaveDialog","setOpen","target","setTarget","unblockHandle","useRef","t","useTranslation","history","useHistory","useContext","current","block","targetLocation","Dialog","aria-labelledby","aria-describedby","onBackdropClick","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","color","autoFocus","onClick","variant","handleConfirm","m","push","ScrollToTop","pathname","useLocation","setTimeout","scrollTo","useSetSnackbar","Snackbar","className","SwitchTransition","CSSTransition","key","addEndListener","node","done","classNames","FiX","MuiTheme","prefersDarkMode","useMediaQuery","theme","useMemo","createMuiTheme","palette","primary","light","blue","main","dark","ThemeProvider","CssBaseline","CatalogDrawer","expanded","catalogId","useParams","List","component","disablePadding","Tooltip","arrow","title","placement","ListItem","button","NavLink","strict","exact","to","activeStyle","backgroundColor","ListItemIcon","MenuBookIcon","ListItemText","BallotIcon","DynamicFeedIcon","ConfirmationNumberIcon","isShellRealm","realmId","PXL_REALM","isPXLRealm","RealmDrawer","PublicIcon","PeopleOutlineIcon","PaymentIcon","AssessmentIcon","MailIcon","HourglassEmptyIcon","SupervisedUserCircleIcon","StorageIcon","AlbumIcon","ContactMailIcon","LabelIcon","SettingsIcon","Navigation","routeParams","realmOpen","setRealmOpen","catalogOpen","setCatalogOpen","disabled","AccountTreeIcon","Route","path","Collapse","in","Divider","siteId","LanguageIcon","bankId","AccountBalanceIcon","ButtonComponent","TextComponent","etc","darkBtn","Brightness2Icon","style","marginLeft","lightBtn","WbSunnyIcon","Template","logOut","params","wrapperRef","Drawer","ref","classes","paper","ChevronLeftIcon","MenuIcon","HomeIcon","ThemeSwitch","PowerSettingsNewIcon","async","res","rest","useTheme","version","xmlns","xmlnsXlink","x","y","viewBox","enableBackground","xmlSpace","stroke","text","secondary","fill","strokeWidth","strokeMiterlimit","cx","cy","r","strokeLinecap","x1","y1","x2","y2","attributeName","dur","from","repeatCount","Loader","MenuContextUpdater","prevState","Fragment","RouteTransition","loginRequired","Redirect","mode","forwardRef","endIcon","CircularProgress","thickness","size","ReactButton","GroupSelection","setValue","required","filter","setFilter","itvl","setItvl","list","search","page_no","groups","setGroups","refresh","useCallback","data","Name","useGroups","handleChange","clearTimeout","Autocomplete","onFocus","onOpen","onClose","onChange","getOptionSelected","option","User_Group__","getOptionLabel","options","renderInput","TextField","label","helperText","InputProps","endAdornment","NEW_ITEM_TYPES","AddNewItem","group","setGroup","setLoading","name","setName","startIcon","AddIcon","toLowerCase","Grid","container","spacing","item","xs","margin","fullWidth","onCancel","onCreate","g","finally","BankCard","bank","access","Card","CardActionArea","Money_Bank__","Link","CardContent","Typography","gutterBottom","alignItems","GroupIcon","fontSize","marginRight","CardActions","banks","loadMore","sm","md","lg","paging","page_max","BankList","setList","page","setPage","lastFilter","setLastFilter","setBanks","useBanks","useCatalog","catalog","setCatalog","useCatalogProducts","forcedCatalogId","products","setProducts","trim","CatalogCard","Catalog__","c","CatalogList","catalogs","setCatalogs","useCatalogs","PageContainer","PageTitle","backButton","backButtonText","Box","pb","goBack","tag","useRealmWithParams","realm","setRealm","useRealm","useAccess","object","hasAccess","setHasAccess","useLayoutEffect","accessKeys","available","accessCompare","have","desired","accesses","a","includes","AccessCheck","deniedComponent","hideLoading","loadingComponent","hasRight","RealmCard","Realm__","realms","RealmList","setRealms","useRealmsProper","timeout","SearchField","field","setField","SearchIcon","InputBase","input","placeholder","SiteCard","site","Site__","sites","SiteList","setSites","useSites","siteOpen","setSiteOpen","bankOpen","setBankOpen","realmFilter","setRealmFilter","catalogFilter","setCatalogFilter","siteFilter","setSiteFilter","bankFilter","setBankFilter","Helmet","ExpandLess","ExpandMore","unmountOnExit","width","justify","resetFilter","Home","ButtonsBuilder","Next","initial","direction","Div","styledComponents","div","Label","Figure","figure","Input","AvatarEditorRange","styled","AvatarEditorImages","textAlign","AvatarEditorImagesInner","maxWidth","AvatarEditor","ReactAvatarEditor","height","background","AvatarImages","padding","boxSizing","AvatarWrapper","AvatarBtnsWrapper","display","AvatarBtn","border","borderRadius","cursor","opacity","transition","AvatarBtnWrapper","marginBottom","AvatarImage","defaultAvatar","editor","handleSetImage","handleScale","imgPath","StyledAvatarEditor","image","scale","rotate","onPositionChange","min","max","step","defaultValue","src","alt","fieldId","setAvatarImage","setState","preview","img","croppieFileInput","getImageScaledToCanvas","toBlob","blob","param","parseFloat","accept","files","handleRemove","FormBuilder","onInputChange","url","fields","idx","_field$name","link","FormControlLabel","control","Checkbox","OAuth2Wrapper","justifyContent","OauthBtn","backgroundPosition","backgroundRepeat","backgroundAttachment","backgroundSize","overflow","textIndent","OauthBtnsBuilder","onOauthClicked","info","Token_Name","backgroundImage","Login","onValidated","form","setForm","setData","flowData","setFlowData","session","setSession","callRest","currentSession","currentQuery","queryString","parse","complete","err","onSubmit","preventDefault","getAttribute","checked","fieldName","file","oauth2","LoginPage","replace","getPrefix","PageLoader","SetStatus","statusCode","render","staticContext","NotFound","SectionCard","linkName","description","CardMedia","Realm","useUsers","users","setUsers","filters","image_variation","useIndividualUser","userId","_expand","useAffiliateTypes","AffiliateCode","affiliate","flat","edit","setEdit","displayCode","setDisplayCode","updateCode","useChangeAffiliateCode","doIt","Affiliate__","Code","Paper","elevation","px","py","IconButton","onUpdateConfirm","User__","CheckCircleIcon","green","onCancelUpdate","CancelIcon","CreateIcon","Skeleton","AffiliateType","displayType","setDisplayType","tmpType","setTmpType","affiliateLevels","updateType","useSetAffiliateType","affiliateLevel","find","l","Type","FormControl","Select","evt","MenuItem","Forbidden","InfoBox","dataKey","ORDER_STATS_PRODUCT_IMAGE_VARIATION","SortableCell","sort","sortHandlerDir","TableSortLabel","active","styles","makeStyles","flex","Title","Toolbar","disableGutters","startAdornment","TitleComponent","toolbarProps","MUToolbar","TableToolbar","searchKey","changeFiltersAndPaging","searchCriteria","extra","showSearch","setShowSearch","searchText","setSearchText","showCriteria","setShowCriteria","currentCriterias","setCurrentCriterias","handleSearch","handleClear","onKeyPress","onKeyUp","InputAdornment","position","ClearIcon","top","p","findIndex","select","updateCriteria","tmp","splice","unsetCriteria","DeleteForeverIcon","handleAdvancedSearch","forEach","useStyles","cTable","selected","hover","Table","_data$data2","_data$paging$count","_paging$results_per_p2","_paging$page_no","_data$data3","adminSearch","initialFilters","paperProps","emptyState","emptyText","RowComponent","TableRow","rowProps","onSelect","selectedIdx","setPaging","setFilters","hasFilters","setHasFilters","changePageHandler","newPage","handleFiltersAndPagingChange","parseInt","_params","pK","startsWith","stringify","sortHandler","property","dir","hasFilter","_newPaging","_newPaging2","pNo","perPage","results_per_page","newPaging","pagingChangeHandler","_filters$sort","filtersInUrl","refreshNeeded","k","cleaned","JSON","filtersChangeHandler","firstUpdate","changeFiltersHandler","currentParams","TableContainer","MUITable","TableHead","Array","isArray","child","sortable","headerAlign","align","cellProps","props","finalAlign","TableCell","TableBody","displayData","_paging$results_per_p","_data$data","colSpan","d","rowIdx","cellIdx","TableFooter","TablePagination","rowsPerPageOptions","count","rowsPerPage","labelRowsPerPage","SelectProps","inputProps","native","labelDisplayedRows","onChangePage","onChangeRowsPerPage","ActionsComponent","TablePaginationActions","TableDefinition","propTypes","PropTypes","string","oneOfType","bool","OrderPaymentMethod","order","Payment_Method","Payment_Class","OrdersTable","firstLoad","setFirstLoad","orders","useRealmOrders","setOrders","User","Invoice_Date","moment","utc","unixms","format","Status","Total_Vat","Vat_Amount","Order__","useShellsForUser","shells","setShells","forceUserId","useUserWalletList","currentFilters","setCurrentFilters","currentPaging","setCurrentPaging","UserWalletsTable","w","Balance","_w$Liabilities$displa","Liabilities","unit","Disable_Limits","User_Wallet__","useUserMoneyBankAccountList","MoneyBankAccountInfo","bankAccountId","bankAccountInfos","Meta","MoneyBankAccountInfoDialog","accountId","handleClose","Paypal","setIsValid","getValue","def","isEvent","createChangeHandler","CountrySelector","countries","InputLabelProps","shrink","country","Country__","Bank","checkSwift","useCheckSwift","swiftCode","swift","checkAba","useCheckAba","abaCode","aba","bankCodeOnBlur","func","alert","Institution_Name","valid","pattern","onBlur","maxLength","CreateBankAccountDialog","transferTypes","useTransferTypes","selectedType","setSelectedType","setBankAccount","useSetBankAccount","isValid","onEnter","FormLabel","RadioGroup","row","aria-label","Radio","handleCreate","final","transfer_type","email","MoneyBankAccountTable","refreshAffiliate","_admin_as","showInfo","setShowInfo","setSelected","showCreate","setShowCreate","account","Money_Bank_Account__","UserWalletAutoPeriodSelector","AffiliateWalletAutocomplete","onChangeHandler","Currency__","UserBankAccountAutocomplete","CreateWalletAutoDialog","create","creating","walletId","period","priority","minBalance","maxWithdraw","useUserWalletAutoCreate","saveEnabled","setSaveEnabled","wallet","setWallet","setAccount","setPeriod","setMinBalance","setMaxWithdraw","fixAlert","RichAlert","Alert","UserWalletAutoDeleteDialog","walletAuo","doDelete","useUserWalletAutoDelete","walletAutoId","as","User_Wallet_Auto__","Money_Bank_Account","severity","Trans","i18nKey","values","User_Wallet","handleDelete","UserWalletAutoTable","useUserWalletAutoList","showDelete","setShowDelete","Min_Balance","Max_Withdraw","AffiliateInfos","useAffiliate","setAffiliate","infos","el","ConfirmDialog","onConfirm","hasReason","reason","setReason","shell","performAction","setTitle","desc","setDesc","action","setAction","confirmBefore","User_Billing__","ShellActions","displayShell","setDisplayShell","reboot","shellId","useShellReboot","Shell__","cancel","useShellCancel","ShellEditDate","date","onDateUpdated","displayDate","setDisplayDate","MuiPickersUtilsProvider","utils","MomentUtils","noValidate","DateTimePicker","ampm","disablePast","event","Expires","RestoreIcon","shellOSName","textOverflow","whiteSpace","wordBreak","isAdmin","root","FindInPageIcon","Catalog_Product","Internal_Name","OS","Created","Hostname","Shell_Datacenter","Location","ShellsList","displayShells","setDisplayShells","shellIdx","s","newDate","now","Affiliate","ProductsAutocomplete","onProductSelected","setSearch","minWidth","CreateProductModal","onProductCreated","createProduct","parentProductId","internalName","Parent_Catalog_Product__","useCreateProduct","parentProduct","setParentProduct","setInternalName","handleCreateProduct","Catalog_Product__","EditCatalogTitle","HistoryIcon","CheckIcon","Catalog","openProductDialog","setOpenProductDialog","addProductPic","productsPic","couponsPic","stats","currencyMap","formatPriceCurrency","price","Symbol_Position","Symbol","useCurrencies","currencies","currencyFormatPrice","currencyCode","CurrencyFormatedPrice","useCurrencyFormatedPrice","formatedPrice","setFormatedPrice","DeleteCouponBtn","coupon","onDeleted","deleteCoupon","Catalog_Coupon__","LinkBtn","product","CopyToClipboard","onCopy","LinkIcon","coupons","onCouponDeleted","Expiration","Reduction_Type","Reduction_Currency","Reduction_Value","Reduction_Max_Amount","Target_Value","CouponsList","useCatalogCoupons","setCoupons","displayCoupons","setDisplayCoupons","couponIdx","CreateCouponShortcut","setCode","Date","expiry","setDate","getDate","Caption_Type","Caption_Value","toISOString","Target_Type","Coupons","Currencies","allowEmpty","currencyLabel","currencyLabelWidth","setCurrencyLabelWidth","offsetWidth","InputLabel","htmlFor","labelWidth","v","captionType","couponTarget","createCoupon","reducCurrency","reductionType","setCaptionText","setCaptionType","setCouponTarget","setExpiry","setProduct","setReducCurrency","setReducMaxValue","setReductionType","setReducValue","newCode","onCloseDialog","ProductAutocomplete","CreateCouponForm","captionText","couponType","setCouponType","reducMaxValue","reducValue","setNewCode","setMonth","getMonth","toUTCString","buildParams","CreateCoupon","RealmSelection","showHelper","textValue","setTextValue","refreshList","useRealms","refreshTimeout","setRefreshTimeout","Availability","productId","fetchInfo","useFetchProductInformation","displaySales","setDisplaySales","setSale","loadingSale","useSetProductSale","newRow","setNewRow","visible","_ref4","sale","loadingRealm","ds","_ref5","i","Switch","Visible","toggleVisibility","index","_ref3","_ref6","nr","addNewAvailability","ConfirmBeforeLeave","enforce","clicked","FormNavigation","items","navRef","document","boundingRect","getBoundingClientRect","classList","toggle","pageYOffset","likelyActiveAnchor","querySelector","rect","innerHeight","querySelectorAll","endsWith","contains","remove","setActive","anchor","currentScrollPos","toString","setInterval","clearInterval","fieldsToExclude","GenerateNativeFields","fieldsValue","setFieldsValue","setNative","formattedFields","setFormattedFields","updateFieldValue","n","Language__","Value","Variable","Native","f","fieldDef","ff","Editor","Is_Basic","fv","multiline","rows","Values","pt","pl","labelId","split","KeyboardDatePicker","inputVariant","locale","getLocale","require","libInstance","DatePicker","sizes","ratio","Flag","rounded","isObject","obj","pad","num","deepCopy","bytesToHuman","bytes","si","dp","thresh","Math","abs","units","u","round","toFixed","roundDecimal","decimal","Number","EPSILON","pow","formatDuration","duration","seconds","minutes","buildItem","MultiLangTextField","_Object$keys$","_Object$keys","allowDelete","selectOptions","languages","langs","setLangs","objectMode","lang","setLang","valueMap","setValueMap","_v$Language__","onChangeObjectMode","newValue","nv","Field","defaultV","stopPropagation","disableUnderline","renderValue","ListSubheader","getParent","parent","ProductInput","override","setOverride","setParent","original","setOriginal","LockOpenIcon","LockIcon","sortFieldsByNamespace","setNamespaces","byNamespace","namespace","substring","Fieldset","collapse","setCollapse","Field_Name","GenerateOtherFields","preparedFields","setPreparedFields","EditProductFormBuilder","namespaces","nativeFields","setNativeFields","otherFields","setOtherFields","unsaved","setUnsaved","countN","setCountN","countO","setCountO","SaveIcon","save","allOtherFields","update","Hidden","smDown","imgToInsert","DeleteDialog","onDelete","deleteImage","deleting","useDeleteImage","imgId","extraParams","imageId","Drive_Item","Filename","DeleteIcon","Catalog_Product_Image__","Empty","textI18Key","graphic","EmptyState","Graphic","icon","iconMain","titleBar","Gallery","uploadFiles","uploadImgCount","uploadImgRunningCount","uploadImgRunningPercent","uploadImgDoneCount","useUploadFiles","setCount","completed","setCompleted","progress","setProgress","running","setRunning","upload","onprogress","blockTotal","progressTotal","blocks","append","run","gallery","variation","setGallery","useProductGallery","setMainImage","settingMainImage","useSetMainImage","role","displayGallery","setDisplayGallery","dg","fullScreen","breakpoints","down","inputFileRef","placeholders","deleteDialogShown","setDeleteDialogShown","selectedImg","setSelectedImg","displayUpload","donePercent","bufferPercent","setImageAsMain","Role","multiple","addBtn","click","LinearProgress","valueBuffer","GridList","cellHeight","cols","GridListTile","Blob__","GridListTileBar","titlePosition","actionIcon","StarIcon","actionPosition","subtitle","onDeleteImg","onImgDeleted","DateTime","VATHelperDialog","setPrice","setResult","baseVat","vat","setVat","onRendered","Price","onValueChange","preferredCurrency","helperEnabled","currency","getCurrency","showVATHelper","setShowVATHelper","KeyboardIcon","PriceFeeNotice","rate","setRate","Rate","past","future","Row","showOldPrices","unix","oldPrice","End_Date","futurePrice","Start_Date","cname","inclVat","inclvat","decimals","DiscountPriceDisplay","Public_Price","Discount","prices","setShowOldPrices","MaterialTable","Catalog_Product_Price__","Prices","setCurrency","discount","setDiscount","minStartDate","setMinStartDate","originalPrice","setOriginalPrice","priceCreating","setPriceCreating","fetchPrices","loadPrices","useCatalogProductPricing","pricing","setPricing","startDate","setStartDate","tabIndex","setTabIndex","simpleSubmitBtnEnabled","setSimpleSubmitBtnEnabled","getMinStartDate","DiscountField","Tabs","scrollButtons","indicatorColor","textColor","handleTabChange","Tab","createPrice","minDate","a11yProps","TabPanel","other","hidden","currentTab","setCurrentTab","getTabPanel","EditProductForm","useCatalogProduct","setInfo","Product","OSSelection","currentOs","keepExisting","canSubmit","keepData","keep","setKeep","selectedOS","setSelectedOS","osList","setOsList","marginTop","Shell__OS__","Success","startShellAndOpen","ReinstallWizard","setKeepData","keepOs","setKeepOs","os","setOs","setShell","setStep","validateOs","selectedOs","args","Shell_OS__","erase","submitReinstall","ReinstallShell","DateSlotFilter","onValidate","setFrom","setTo","toOpen","setToOpen","setEmail","$between","$lte","$gte","onMouseDown","onValid","clearFilters","UsersTable","revealAddress","canShowAddress","canViewShells","Last_Login","address","userAddress","Display","PersonPinCircleIcon","loadingAddress","ImportantDevicesIcon","UserTable","useRealmUsers","displayUsers","setDisplayUsers","userIdx","admin","Users","Orders","setDateFilters","card","OrderInfo","Paid","OrderLogs","orderId","orderUser","logs","displayLogs","setDisplayLogs","dl","iso","Event","Log","OrderPaymentInfo","Payment_Last4","OrderRefundDialog","refund","refunding","setRefunding","useOrderRefund","MoneyOffIcon","handleRefund","OrderRefundButton","showRefundDialog","setShowRefundDialog","Refund_Available","OrderTable","rowSpan","setRowSpan","Subtotals","shipping","value_int","Items","Order_Item__","Delivered","toLocaleDateString","toLocaleTimeString","Quantity","Full_Price","Total","Vat_Rate","UserLocation","join","Contact_Phone","PhoneIcon","Order","useOrderWithParams","setOrder","Invoice_Number","number","Billing_User_Location","Shipping_User_Location","Year","interval","selectLabel","selectLabelWidth","Month","OrderReportFilters","year","setYear","month","OrdersItemReport","tableFetchHandler","Image","Variation","defaultPicture","Order_Realm__","Order_Order__","EditIcon","COLOR_LIST","dt","getTime","random","floor","withStyles","maxHeight","MuiTableContainer","span","ColoredIcon","RADIAN","PI","Pie","getName","getCount","activeIndex","setActiveIndex","renderCustomizedLabel","_getName","midAngle","innerRadius","outerRadius","startAngle","endAngle","Count","percent","payload","sin","cos","sx","sy","mx","my","ex","ey","textAnchor","Sector","Text","scaleToFit","dy","ResponsiveContainer","PieChart","RechartsPie","isAnimationActive","activeShape","paddingAngle","onMouseEnter","onPieEnter","Cell","uuid","PieChartNoData","ActivePieChart","noDataText","getCellContent","tableHeaders","loadingData","displayLoading","header","animation","transform","stickyHeader","stat","formatReport","report","value_float","OrdersProductReport","setTableHeaders","completeStats","dayInMonth","daysInMonth","newStats","generateEmpty","day","doc_count","key_as_string","statsIdx","OrdersSalesReport","total","reduce","b","CustomTooltip","totalText","off","gradientOffset","dataMax","dataMin","AreaChart","CartesianGrid","strokeDasharray","XAxis","YAxis","content","offset","stopColor","stopOpacity","ReferenceLine","Area","isExternal","ReactRedirect","UserStatusCard","refreshHandler","TypographyToolbar","RefreshIcon","ToggleButtonGroup","exclusive","newInterval","ToggleButton","INTERVAL_HOUR","INTERVAL_DAY","INTERVAL_WEEK","INTERVAL_MONTH","labelFormatter","valueFormatter","PerSeconds","Avg","Min","Max","Chart","metrics","area","stacked","yFormatter","xFormatter","tooltipFormatter","formattedMetrics","setFormattedMetrics","xInterval","setXInterval","minAlert","setMinAlert","maxAlert","setMaxAlert","minDomain","setMinDomain","maxDomain","setMaxDomain","ChartComponent","LineChart","DataComponent","Line","formatted","metric","category","last_metric","Category","Max_Alert","Min_Alert","Max_Value","Min_Value","keyString","Sum","METRIC_HEIGHT","right","bottom","tickFormatter","domain","wrapperStyle","zIndex","Legend","verticalAlign","formatter","stackId","ErrorBar","NoData","useMultipleMetrics","tokens","metaObject","startUnix","endUnix","setMetrics","promises","query","token","start","end","getBestInterval","Promise","all","INTERVALS","DAY","MONTH","HOUR","MIN","getStartDate","subtract","startOf","Metric","endDate","setEndDate","empty","setEmpty","timestamp","time","RealmUserChart","userCount","newUserStats","setStats","ns","uc","reverse","Key","newCount","RealmUserStats","_stats$data$New_users","previousMonth","useRealmUserStats","setUserCount","User_Status","New_users","ShellReportTable","reports","setReports","useShellReports","Files","Shell_Report_File__","Chip","GetAppIcon","Download_Link","ShellsOrderReport","generate","generating","useShellReportGenerate","handleGenerate","PxlRealmReport","useRealmsTable","setRes","Owner_Realm__","OrdersReport","salesStats","productStats","itemsStats","setSalesStats","setProductStats","setItemStats","Order_Status","Order_Currency__","aggregations","Order_Items","buckets","useRealmOrdersStats","rebuildProductCache","loadingRebuild","useRebuildProductCache","CachedIcon","rebuildCache","ProductsList","Products","regenCache","useRegenCatalogCache","regenerate","RequestPasswordDialog","closeCallback","pwd","setPwd","handleUnlock","ChangeEmail","changingInfo","requestPwdOpen","setRequestPwdOpen","setNewEmail","loadingNewEmail","useSetEmail","current_password","handleChangeEmail","Has_Password","Component","constructor","super","this","setEditorRef","handleNewImage","withTranslation","Picture","initialAvatar","updateAvatar","changingAvatar","useUpdateAvatar","callback","queue","allComplete","purpose","avatarImage","avatarSaveBtnEnabled","setAvatarSaveBtnEnabled","handleSave","Account","Information","_user$user$data$Profi","username","setUsername","originalBirthdate","Birthdate","birthdate","setBirthdate","originalGender","Gender","gender","setGender","updateProfile","useUpdateProfile","profile","genderLabel","genderLabelWidth","setGenderLabelWidth","SnsIcon","Twitter","Facebook","Google","tokenTypeToIcon","AddDialog","selectedConsumer","setSelectedConsumer","consumers","fetchConsumerLink","useFetchConsumerLink","consumerID","return_to","consumer","OAuth2_Consumer__","redirect_url","handleConsumerClick","ListItemAvatar","unlinkToken","useUnlinkToken","tokenId","OAuth2_Consumer_Token__","displayToken","deleteDialogOpened","setDeleteDialogOpened","OAuth2_Consumer","Service","Token_Type","setParams","OAuth","addDialogOpened","setAddDialogOpened","Security","newPassword","setNewPassword","newPasswordRepeat","setNewPasswordRepeat","changePassword","useChangePassword","resetFields","old","RealmRegistrationTypeSelector","RealmForm","Registration","RegistrationConfirmDialog","isOpening","onSave","saving","RealmUpdateForm","isFormValid","setIsFormValid","updating","setUpdating","useRealmUpdate","showRegistrationDialog","setShowRegistrationDialog","openingRegistration","setOpeningRegistration","isOpeningRegistration","executeSave","saveHandler","RealmSettings","Panel","SiteConfiguration","configFileContent","readOnly","Push_Token","download","btoa","rowsMax","SiteForm","SiteUpdateForm","useSiteUpdate","Site","useSiteWithParams","setSite","ShellRestoreDialog","snapshot","restore","restoring","setRestoring","Shell_Snapshot__","useShellSnapshotRestoreForUser","snapshots","fromNow","ShellSnapshotsTable","setSnapshots","useShellsSnapshotsForUser","showRestoreDialog","setShowRestoreDialog","ShellSnapshots","useShellWithParamsForUser","UserAutocomplete","useRealmSupportWithParams","support","setSupport","CannedTable","useFetchCanned","canned","setCanned","Support__","preWrap","SelectDialog","onSelected","ArrowForwardIcon","Message","handleSelect","UserContact","subject","setSubject","setMessage","sendEnabled","setSendEnabled","attachments","setAttachments","uploading","setUploading","_upload","reject","uploaded","init","useSupportAttachmentUpload","contact","setCreating","attach","useSupportContact","Infinity","Attachment_Id","Info","filename","at","AttachFileIcon","handleUpload","FolderSpecialIcon","handleSend","ContactUser","WaitingListTable","useWaitingList","approve","approving","useWaitingListApprove","setApproving","waitingListId","validating","setValidating","Realm_Waitlist__","handleValidate","WaitingList","AddAdminCommentModal","onCommentAdded","postComment","useSetAdminComment","requiresEscalation","setRequiresEscalation","submitComment","Comment","Action","AdminComments","comments","setComments","useAdminComments","ReportIcon","getActionIcon","Admin_User","UserStatusSelector","UserChangeStatusModal","setStatus","useUserChangeStatus","changeStatus","SegmentTable","useRealmSegments","setIdx","Realm_Segment__","UserChangeSegmentModal","setSegment","useUserChangeSegment","changeSegment","ACTION","ProfileActions","onDone","showChangeStatus","setShowChangeStatus","showChangeSegment","setShowChangeSegment","SettingIcon","login","profilePicture","gridJustify","profileDetail","_user$data$Profile$Ge","_user$data$Status","birthDate","Avatar","onProfileActionCompleted","Realm_Segment","MailDialog","mail","Subject","Part","rel","Mime","UserMailHistoryTable","useRealmMailHistory","setHistory","selectedMail","setSelectedMail","mailDialogOpen","setMailDialogOpen","useKycFetchNext","KycTable","kycs","kyc","setKyc","endpoint","useUserKyc","IdCheck_Initiated","User_Kyc__","DynamicTabs","supportedTypes","allTypes","useMetaObjectTypes","types","setTypes","filtered","tpe","InvoicesTable","invoices","useRealmInvoices","setInvoices","invoice","User_Billing_Application__","Remark","Invoices","Invoice","useInvoiceApprove","invoiceId","method","deleteInvoice","deleteing","useInvoiceDelete","setDeleteing","useInvoiceWithParams","setInvoice","handleApprove","User_Billing","User_Location","Company_Reg_Number","Company_Name","LangSelect","autoHighlight","Local_Name","renderOption","CreateDialog","Support_Canned__","cannedId","setDeleting","showDeleteDialog","setShowDeleteDialog","handleUpdate","warning","Gauge","RowMetrics","host","shellCount","setShellCount","cpuUsage","setCpuUsage","ramUsage","setRamUsage","diskUsage","setDiskUsage","Metrics","Token","_roundDecimal","Last_Value","Last_Value_Interval","_roundDecimal2","_roundDecimal3","ShellHostTable","hosts","datacenterId","Shell_Host__","useShellHostWithParams","shellHostId","setHost","useShellHost","setHosts","Shell_Datacenter__","useShellHosts","ShellHosts","shellDatacenterId","ShellDatacentersTable","datacenters","datacenter","useShellDatacentersList","setDatacenters","ShellDatacenters","HostMetrics","AffiliateTypeFilter","initialLevelsState","onFilterChanged","levels","setLevels","toggleLevel","lvls","FormGroup","AffiliateWithBalanceFilter","setFiltered","AffiliateList","affiliates","setAffiliates","useAffiliates","affiliateTypes","setType","withBalance","setWithBalance","Balance_USD","Accordion","AccordionSummary","expandIcon","ExpandMoreIcon","aria-controls","AccordionDetails","lvl","Wallets","display_short","BankWithdrawals","moneyBankId","withdrawals","setWithdrawals","useBankWithdrawals","withdrawal","Amount","Processed","Pending","Confirmed","Requested","ColorButton","setBank","useBank","ListAltIcon","ArrowUpwardIcon","Last_Parse","Withdraw_Email","CpuMetrics","cpu","ShellHostCpusMetrics","cpusCount","setCpusCount","graphs","setGraphs","loadingMore","setLoadingMore","handleMore","cpy","handleScroll","removeEventListener","windowHeight","documentElement","offsetHeight","body","html","docHeight","scrollHeight","clientHeight","graph","HostMetricsCpus","userAgent","ShellLogs","MetaObject__","Username","Reference","User_Agent","SoftwareList","softwares","useCatalogSoftwares","setSoftwares","software","Catalog_Software__","Softwares","SoftwareInfo","Download","Apple_Store_Id","Google_Play_Id","SoftwareInfoForm","onFieldUpdated","softwareValue","setSoftwareValue","SoftwareAddLink","softwareId","onLinkAdded","setLink","setFormat","addSoftwareLink","useAddSoftwareLink","softwareFormats","confirmAdd","Format","SoftwareLinks","links","externalLinks","setExternalLinks","useSoftwareExternalLinks","displayLinks","setDisplayLinks","linkInfo","Catalog_Software_External__","SoftwareVersionFileRow","onFileSet","setFile","rand","visibility","handleFileSet","SoftwareAddVersion","onVersionAdded","setVersion","setFiles","addSoftwareVersion","useAddSoftwareVersion","onAllSet","uploadFile","catalogSoftwareVersionId","addNewFile","removeFile","Released","Version","Catalog_Software_Version__","statuses","SoftwareEditVersion","updateVersionStatus","softwareVersionId","useUpdateSoftwareVersion","SoftwareVersions","versions","versionList","setVersionList","useSoftwareVersionList","versionToEdit","setVersionToEdit","displayVersions","setDisplayVersions","Catalog_Software_Version_File__","varient","setSoftware","useSoftware","editData","setEditData","editSoftware","useEditSoftware","saveEdit","updateEditDataField","AddSoftware","addSoftware","useAddSoftware","updateSoftwareData","flexWrap","listStyle","chip","EmailChips","EmailTable","emails","useRealmEmails","setEmails","From","Cc","Bcc","Realm_Email__","EnableSelector","EmailsInput","newEmail","splited","varian","EmailForm","EmailCreateDialog","enabled","cc","bcc","Enabled","useRealmCreateEmail","_data$Cc","_data$Bcc","RealmEmails","EmailUpdateForm","useRealmUpdateEmail","TextForm","AceEditor","showPrintMargin","showGutter","highlightActiveLine","setOptions","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","TextCreateDialog","fromName","bodyText","bodyHtml","From_Name","Body_Text","Body_Html","useRealmCreateEmailText","TextTestDialog","_text$Default_Test_Pa","test","testing","Realm_Email_Text__","useRealmTextEmailTest","testAsPDF","testingAsPDF","useRealmTextEmailAsPDF","Default_Test_Params","handleAsPDF","focus","handleAsEmail","TextUpdateForm","setText","useRealmUpdateEmailText","showTest","setShowTest","TextTabs","canEdit","texts","setItem","useRealmEmailsText","emailId","setTexts","lastPaging","setLastPaging","createSetTextHandler","RealmEmail","useRealmEmailWithParams","CatalogAutocomplete","useSearchableCatalogs","dialog","formControl","warningTypes","CreateWarningDialog","fetchShells","setObject","osId","setOsId","setDataCenterId","setShellId","successor","setSuccessor","scheduled","setScheduled","expires","setExpires","useCreateWarning","fetchOsList","useShellOperatingSystems","datacenterList","fetchDatacenterList","isEnabled","submit","Data","Scheduled","Target_MetaObject__","WarningsListTable","warnings","setWarnings","useRealmWarnings","removeWarning","useRemoveWarning","removing","setRemoving","Shell_Warning__","dangerouslySetInnerHTML","__html","Warnings","WarningForm","useUpdateWarning","getObjectInfo","MetaObject","LaunchIcon","Warning_ID","EditWarning","warningId","useFetchWarning","fetching","setFetching","setWarning","QAConfirmDialog","qaResult","onConfirmed","TextWithIcon","ShellSSHConnection","Host","IP","port","Ssh_Port","DnsIcon","PersonIcon","Keychain__","Keychain","VpnKeyIcon","QADialog","spawn","spawning","keychain","useShellOSImageSpawn","Shell_OS_Image__","setQA","settingQA","passed","useShellOSImageAdminQA","viewer","setViewer","showConfirm","setShowConfirm","setQaResult","setKeychain","handleQA","doSpawn","editable","ShellOsImageQAList","useShellOSImagesAdmin","previousFilter","setPreviousFilter","previousPaging","setPreviousPaging","qaStart","setQaStart","QA_Passed","Shell_OS","ShellOSImageQA","OrdersExport","doExport","useOrdersExport","handleExport","downloadUrl","Url_Download","CatalogStats","usePXLRecordReview","recordId","usePXLAlbumReview","albumId","PxlReleaseTable","releases","usePXLReleases","setReleases","Review","release","album","Music_Label_Album","Drive_Item__","Icon","_release$Tags","Tags","Classify_Tag__","Tracks","Duration","Music_Label_Release__","Releases","Video","source","preset","setKey","presets","setPresets","controls","playsInline","preload","Audio","mp3","ReviewRecordAcceptDialog","onAccepted","review","reviewing","handleAccept","ReviewRecordDeclineDialog","onDeclined","ReviewRecordDialog","_record$data$Name","_record$data$ISRC","_record$Music_Genre$N","_record$Music_Genre","_record$data$Language","_record$data","record","usePXLRecord","setRecord","lyrics","usePXLRecordLyrics","setLyrics","showAccept","setShowAccept","showDecline","setShowDecline","Complete_Preview","mp4","ISRC","IVK","Flags","flag","Music_Genre","Artists","artist","Music_Label_Record_Artist__","Music_Label_Artist","Music_Label_Record_Lyric__","handleDecline","RecordReview","_track$Music_Label_Re","track","showLyrics","setShowLyrics","Music_Label_Record","Preview","Music_Label_Record__","Records","_album$Tracks","_album$Tracks2","Music_Label_Album_Track__","ReviewAlbumAcceptDialog","ReviewAlbumDeclineDialog","AlbumReview","_album$data$Descripti","_album$data$Music_Gen","_album$data","_album$data$Music_Gen2","_album$data$Artists","_album$data$Artists2","_album$data$Links","_album$data$Links2","refreshRelease","setRelease","usePXLAlbum","reviewEnabled","setReviewEnabled","Description","Music_Label_Album_Artist__","Links","Music_Label_Album_Link__","Store","Music_Label_Album__","ReviewRelease","releaseId","usePXLRelease","SiteVisibleSelector","SiteCustomSelector","SiteAutocomplete","useSiteList","flags","prefix","createOnChangeHandler","toExclude","Set","has","hasChanged","originalKeys","valueKeys","isI18NFilled","Form","isCreate","_getValue","IsCustom","useSiteTemplateCreate","template","Site_Template__","SiteTemplateTable","useSiteTemplates","templates","setTemplates","SiteTemplateList","useGetText","textId","EditForm","getText","getSite","editing","siteTemplateId","useSiteTemplateUpdate","nameText","setNameText","loaded","setLoaded","_data$Key","_data$Visible","_data$IsCustom","_data$Index","_data$Capabilities","Index","originalFlags","Capabilities","currentFlags","emptyName","Name_Text__","prev","handleEdit","TemplateSettingRequiredSelector","TemplateSettingVisibleSelector","TemplateSettingTypeSelector","fOption","fVariation","TemplateSettingFileTypeSelector","CreateSettingDialog","templateId","onCreated","useSiteTemplateSettingCreate","EditSettingDialog","settingId","onEdited","setting","setSetting","useSiteTemplateSetting","useSiteTemplateSettingEdit","descriptionText","setDescriptionText","_setting$data$Default","_setting$data$Options","_setting$data$Sync_Fi","_setting$data$Validat","_setting$data$File_Ty","_nameText$Values","_descriptionText$Valu","getNullableValue","Default","Options","Required","Sync_Field","Validator","File_Type","File_Options","File_Variations","_text$data$Values","emptyDescription","Description_Text__","_text$data$Values2","SiteTemplateSettingsTable","settings","useSiteTemplateSettings","showEdit","setShowEdit","Site_Template_Setting__","TemplateImageVisibleSelector","CreateTemplateImageDialog","fileKey","setFileKey","setIndex","setVisible","setDescription","useTemplateImageCreate","language__","EditTemplateImageDialog","Language","useSiteTemplateImageUpdate","Site_Template_Image__","DeleteTemplateImageDialog","useSiteTemplateImageDelete","VARIATION","SiteTemplateImageTable","useSiteTemplateImages","Image_Drive_Item","SiteTemplateEdit","setTemplate","useSiteTemplate","SiteTemplateSettingTable","BillPayUserTable","services","useRealmServices","setServices","_services$User_Billin","_services$User_Billin2","Methods","Billing_Method","BillPayUsers","useRealmServicesDownload","WalletDisableLimitSelector","WalletForm","_getValue2","_getValue$display","_getValue3","_getValue$display2","_getValue4","WalletDisabledLimitSelector","EditWallet","UserDisbursementInfoDialog","reference","closeDialog","Address","Transaction","UserWalletHistoryTable","useUserWalletHistoryList","selectedRef","setSelectedRef","Reference_Type","Wallet","useUserWalletWithParams","Kycs","fetchNext","fetchingNext","$in","PlayArrow","KycFile","_file$Mime","_file$Mime2","_file$Mime3","ReactPlayer","minHeight","KycFileTable","kycId","useUserKycFile","spacin","KycInfo","downloading","useUserKycFileDownload","risk","useUserKycApprove","softReject","softRejecting","useUserKycSoftReject","rejecting","comment","useUserKycReject","showSoftReject","setShowSoftReject","showHardReject","setShowHardReject","setComment","Birth_Date","initDate","kycUpdateCheck","nextToExecute","goNext","First_Name","Last_Name","Pause","ThumbUp","Block","heading","typography","pxToRem","flexBasis","flexShrink","secondaryHeading","clear","consider","OnFidoReport","onFidoData","setExpanded","workflowRunId","setWorkflowRunId","workflow_run_id","output","task_def_id","panel","isExpanded","id-controls","Kyc","useKycWithParams","duplicateFilter","setDuplicatedFilter","$not","$prefix","Provider_Kyc_Info","SegmentForm","CreateSegmentDialog","useRealmCreateSegment","normalize","Segments","SegmentUpdateForm","segment","useRealmUpdateSegment","RealmSegment","useRealmSegmentWithParams","segmentId","Routes","Software","CannedResponses","EditCannedResponse","Segment","RouteController","Layout","titleTemplate","App","charset","i18nOpt","lng","initImmediate","load","interpolation","escapeValue","react","useSuspense","global","i18n","use","Backend","initReactI18next","capture","passive","lastTouchEnd"],"mappings":"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","file":"static/js/main.cb8250a5.chunk.js","sourcesContent":["// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n\twindow.location.hostname === 'localhost' ||\n\t// [::1] is the IPv6 localhost address.\n\twindow.location.hostname === '[::1]' ||\n\t// 127.0.0.0/8 are considered localhost for IPv4.\n\twindow.location.hostname.match(\n\t\t/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n\t)\n);\n\nexport function register(config) {\n\tif (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n\t\t// The URL constructor is available in all browsers that support SW.\n\t\tconst publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n\t\tif (publicUrl.origin !== window.location.origin) {\n\t\t\t// Our service worker won't work if PUBLIC_URL is on a different origin\n\t\t\t// from what our page is served on. This might happen if a CDN is used to\n\t\t\t// serve assets; see https://github.com/facebook/create-react-app/issues/2374\n\t\t\treturn;\n\t\t}\n\n\t\twindow.addEventListener('load', () => {\n\t\t\tconst swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n\t\t\tif (isLocalhost) {\n\t\t\t\t// This is running on localhost. Let's check if a service worker still exists or not.\n\t\t\t\tcheckValidServiceWorker(swUrl, config);\n\n\t\t\t\t// Add some additional logging to localhost, pointing developers to the\n\t\t\t\t// service worker/PWA documentation.\n\t\t\t\tnavigator.serviceWorker.ready.then(() => {\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t'This web app is being served cache-first by a service ' +\n\t\t\t\t\t\t'worker. To learn more, visit https://bit.ly/CRA-PWA'\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Is not localhost. Just register service worker\n\t\t\t\tregisterValidSW(swUrl, config);\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction registerValidSW(swUrl, config) {\n\tnavigator.serviceWorker\n\t\t.register(swUrl)\n\t\t.then(registration => {\n\t\t\tregistration.onupdatefound = () => {\n\t\t\t\tconst installingWorker = registration.installing;\n\t\t\t\tif (installingWorker == null) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tinstallingWorker.onstatechange = () => {\n\t\t\t\t\tif (installingWorker.state === 'installed') {\n\t\t\t\t\t\tif (navigator.serviceWorker.controller) {\n\t\t\t\t\t\t\t// At this point, the updated precached content has been fetched,\n\t\t\t\t\t\t\t// but the previous service worker will still serve the older\n\t\t\t\t\t\t\t// content until all client tabs are closed.\n\t\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t\t'New content is available and will be used when all ' +\n\t\t\t\t\t\t\t\t'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t// Execute callback\n\t\t\t\t\t\t\tif (config && config.onUpdate) {\n\t\t\t\t\t\t\t\tconfig.onUpdate(registration);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// At this point, everything has been precached.\n\t\t\t\t\t\t\t// It's the perfect time to display a\n\t\t\t\t\t\t\t// \"Content is cached for offline use.\" message.\n\t\t\t\t\t\t\tconsole.log('Content is cached for offline use.');\n\n\t\t\t\t\t\t\t// Execute callback\n\t\t\t\t\t\t\tif (config && config.onSuccess) {\n\t\t\t\t\t\t\t\tconfig.onSuccess(registration);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t})\n\t\t.catch(error => {\n\t\t\tconsole.error('Error during service worker registration:', error);\n\t\t});\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n\t// Check if the service worker can be found. If it can't reload the page.\n\tfetch(swUrl, {\n\t\theaders: { 'Service-Worker': 'script' },\n\t})\n\t\t.then(response => {\n\t\t\t// Ensure service worker exists, and that we really are getting a JS file.\n\t\t\tconst contentType = response.headers.get('content-type');\n\t\t\tif (\n\t\t\t\tresponse.status === 404 ||\n\t\t\t\t(contentType != null && contentType.indexOf('javascript') === -1)\n\t\t\t) {\n\t\t\t\t// No service worker found. Probably a different app. Reload the page.\n\t\t\t\tnavigator.serviceWorker.ready.then(registration => {\n\t\t\t\t\tregistration.unregister().then(() => {\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Service worker found. Proceed as normal.\n\t\t\t\tregisterValidSW(swUrl, config);\n\t\t\t}\n\t\t})\n\t\t.catch(() => {\n\t\t\tconsole.log(\n\t\t\t\t'No internet connection found. App is running in offline mode.'\n\t\t\t);\n\t\t});\n}\n\nexport function unregister() {\n\tif ('serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.ready\n\t\t\t.then(registration => {\n\t\t\t\tregistration.unregister();\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tconsole.error(error.message);\n\t\t\t});\n\t}\n}\n","module.exports = __webpack_public_path__ + \"static/media/landscape-image.2a7ec505.svg\";","module.exports = __webpack_public_path__ + \"static/media/default-avatar.af5f69fb.svg\";","var map = {\n\t\"./af\": 420,\n\t\"./af.js\": 420,\n\t\"./ar\": 421,\n\t\"./ar-dz\": 422,\n\t\"./ar-dz.js\": 422,\n\t\"./ar-kw\": 423,\n\t\"./ar-kw.js\": 423,\n\t\"./ar-ly\": 424,\n\t\"./ar-ly.js\": 424,\n\t\"./ar-ma\": 425,\n\t\"./ar-ma.js\": 425,\n\t\"./ar-sa\": 426,\n\t\"./ar-sa.js\": 426,\n\t\"./ar-tn\": 427,\n\t\"./ar-tn.js\": 427,\n\t\"./ar.js\": 421,\n\t\"./az\": 428,\n\t\"./az.js\": 428,\n\t\"./be\": 429,\n\t\"./be.js\": 429,\n\t\"./bg\": 430,\n\t\"./bg.js\": 430,\n\t\"./bm\": 431,\n\t\"./bm.js\": 431,\n\t\"./bn\": 432,\n\t\"./bn-bd\": 433,\n\t\"./bn-bd.js\": 433,\n\t\"./bn.js\": 432,\n\t\"./bo\": 434,\n\t\"./bo.js\": 434,\n\t\"./br\": 435,\n\t\"./br.js\": 435,\n\t\"./bs\": 436,\n\t\"./bs.js\": 436,\n\t\"./ca\": 437,\n\t\"./ca.js\": 437,\n\t\"./cs\": 438,\n\t\"./cs.js\": 438,\n\t\"./cv\": 439,\n\t\"./cv.js\": 439,\n\t\"./cy\": 440,\n\t\"./cy.js\": 440,\n\t\"./da\": 441,\n\t\"./da.js\": 441,\n\t\"./de\": 442,\n\t\"./de-at\": 443,\n\t\"./de-at.js\": 443,\n\t\"./de-ch\": 444,\n\t\"./de-ch.js\": 444,\n\t\"./de.js\": 442,\n\t\"./dv\": 445,\n\t\"./dv.js\": 445,\n\t\"./el\": 446,\n\t\"./el.js\": 446,\n\t\"./en-au\": 447,\n\t\"./en-au.js\": 447,\n\t\"./en-ca\": 448,\n\t\"./en-ca.js\": 448,\n\t\"./en-gb\": 449,\n\t\"./en-gb.js\": 449,\n\t\"./en-ie\": 450,\n\t\"./en-ie.js\": 450,\n\t\"./en-il\": 451,\n\t\"./en-il.js\": 451,\n\t\"./en-in\": 452,\n\t\"./en-in.js\": 452,\n\t\"./en-nz\": 453,\n\t\"./en-nz.js\": 453,\n\t\"./en-sg\": 454,\n\t\"./en-sg.js\": 454,\n\t\"./eo\": 455,\n\t\"./eo.js\": 455,\n\t\"./es\": 456,\n\t\"./es-do\": 457,\n\t\"./es-do.js\": 457,\n\t\"./es-mx\": 458,\n\t\"./es-mx.js\": 458,\n\t\"./es-us\": 459,\n\t\"./es-us.js\": 459,\n\t\"./es.js\": 456,\n\t\"./et\": 460,\n\t\"./et.js\": 460,\n\t\"./eu\": 461,\n\t\"./eu.js\": 461,\n\t\"./fa\": 462,\n\t\"./fa.js\": 462,\n\t\"./fi\": 463,\n\t\"./fi.js\": 463,\n\t\"./fil\": 464,\n\t\"./fil.js\": 464,\n\t\"./fo\": 465,\n\t\"./fo.js\": 465,\n\t\"./fr\": 466,\n\t\"./fr-ca\": 467,\n\t\"./fr-ca.js\": 467,\n\t\"./fr-ch\": 468,\n\t\"./fr-ch.js\": 468,\n\t\"./fr.js\": 466,\n\t\"./fy\": 469,\n\t\"./fy.js\": 469,\n\t\"./ga\": 470,\n\t\"./ga.js\": 470,\n\t\"./gd\": 471,\n\t\"./gd.js\": 471,\n\t\"./gl\": 472,\n\t\"./gl.js\": 472,\n\t\"./gom-deva\": 473,\n\t\"./gom-deva.js\": 473,\n\t\"./gom-latn\": 474,\n\t\"./gom-latn.js\": 474,\n\t\"./gu\": 475,\n\t\"./gu.js\": 475,\n\t\"./he\": 476,\n\t\"./he.js\": 476,\n\t\"./hi\": 477,\n\t\"./hi.js\": 477,\n\t\"./hr\": 478,\n\t\"./hr.js\": 478,\n\t\"./hu\": 479,\n\t\"./hu.js\": 479,\n\t\"./hy-am\": 480,\n\t\"./hy-am.js\": 480,\n\t\"./id\": 481,\n\t\"./id.js\": 481,\n\t\"./is\": 482,\n\t\"./is.js\": 482,\n\t\"./it\": 483,\n\t\"./it-ch\": 484,\n\t\"./it-ch.js\": 484,\n\t\"./it.js\": 483,\n\t\"./ja\": 485,\n\t\"./ja.js\": 485,\n\t\"./jv\": 486,\n\t\"./jv.js\": 486,\n\t\"./ka\": 487,\n\t\"./ka.js\": 487,\n\t\"./kk\": 488,\n\t\"./kk.js\": 488,\n\t\"./km\": 489,\n\t\"./km.js\": 489,\n\t\"./kn\": 490,\n\t\"./kn.js\": 490,\n\t\"./ko\": 491,\n\t\"./ko.js\": 491,\n\t\"./ku\": 492,\n\t\"./ku.js\": 492,\n\t\"./ky\": 493,\n\t\"./ky.js\": 493,\n\t\"./lb\": 494,\n\t\"./lb.js\": 494,\n\t\"./lo\": 495,\n\t\"./lo.js\": 495,\n\t\"./lt\": 496,\n\t\"./lt.js\": 496,\n\t\"./lv\": 497,\n\t\"./lv.js\": 497,\n\t\"./me\": 498,\n\t\"./me.js\": 498,\n\t\"./mi\": 499,\n\t\"./mi.js\": 499,\n\t\"./mk\": 500,\n\t\"./mk.js\": 500,\n\t\"./ml\": 501,\n\t\"./ml.js\": 501,\n\t\"./mn\": 502,\n\t\"./mn.js\": 502,\n\t\"./mr\": 503,\n\t\"./mr.js\": 503,\n\t\"./ms\": 504,\n\t\"./ms-my\": 505,\n\t\"./ms-my.js\": 505,\n\t\"./ms.js\": 504,\n\t\"./mt\": 506,\n\t\"./mt.js\": 506,\n\t\"./my\": 507,\n\t\"./my.js\": 507,\n\t\"./nb\": 508,\n\t\"./nb.js\": 508,\n\t\"./ne\": 509,\n\t\"./ne.js\": 509,\n\t\"./nl\": 510,\n\t\"./nl-be\": 511,\n\t\"./nl-be.js\": 511,\n\t\"./nl.js\": 510,\n\t\"./nn\": 512,\n\t\"./nn.js\": 512,\n\t\"./oc-lnc\": 513,\n\t\"./oc-lnc.js\": 513,\n\t\"./pa-in\": 514,\n\t\"./pa-in.js\": 514,\n\t\"./pl\": 515,\n\t\"./pl.js\": 515,\n\t\"./pt\": 516,\n\t\"./pt-br\": 517,\n\t\"./pt-br.js\": 517,\n\t\"./pt.js\": 516,\n\t\"./ro\": 518,\n\t\"./ro.js\": 518,\n\t\"./ru\": 519,\n\t\"./ru.js\": 519,\n\t\"./sd\": 520,\n\t\"./sd.js\": 520,\n\t\"./se\": 521,\n\t\"./se.js\": 521,\n\t\"./si\": 522,\n\t\"./si.js\": 522,\n\t\"./sk\": 523,\n\t\"./sk.js\": 523,\n\t\"./sl\": 524,\n\t\"./sl.js\": 524,\n\t\"./sq\": 525,\n\t\"./sq.js\": 525,\n\t\"./sr\": 526,\n\t\"./sr-cyrl\": 527,\n\t\"./sr-cyrl.js\": 527,\n\t\"./sr.js\": 526,\n\t\"./ss\": 528,\n\t\"./ss.js\": 528,\n\t\"./sv\": 529,\n\t\"./sv.js\": 529,\n\t\"./sw\": 530,\n\t\"./sw.js\": 530,\n\t\"./ta\": 531,\n\t\"./ta.js\": 531,\n\t\"./te\": 532,\n\t\"./te.js\": 532,\n\t\"./tet\": 533,\n\t\"./tet.js\": 533,\n\t\"./tg\": 534,\n\t\"./tg.js\": 534,\n\t\"./th\": 535,\n\t\"./th.js\": 535,\n\t\"./tk\": 536,\n\t\"./tk.js\": 536,\n\t\"./tl-ph\": 537,\n\t\"./tl-ph.js\": 537,\n\t\"./tlh\": 538,\n\t\"./tlh.js\": 538,\n\t\"./tr\": 539,\n\t\"./tr.js\": 539,\n\t\"./tzl\": 540,\n\t\"./tzl.js\": 540,\n\t\"./tzm\": 541,\n\t\"./tzm-latn\": 542,\n\t\"./tzm-latn.js\": 542,\n\t\"./tzm.js\": 541,\n\t\"./ug-cn\": 543,\n\t\"./ug-cn.js\": 543,\n\t\"./uk\": 544,\n\t\"./uk.js\": 544,\n\t\"./ur\": 545,\n\t\"./ur.js\": 545,\n\t\"./uz\": 546,\n\t\"./uz-latn\": 547,\n\t\"./uz-latn.js\": 547,\n\t\"./uz.js\": 546,\n\t\"./vi\": 548,\n\t\"./vi.js\": 548,\n\t\"./x-pseudo\": 549,\n\t\"./x-pseudo.js\": 549,\n\t\"./yo\": 550,\n\t\"./yo.js\": 550,\n\t\"./zh-cn\": 551,\n\t\"./zh-cn.js\": 551,\n\t\"./zh-hk\": 552,\n\t\"./zh-hk.js\": 552,\n\t\"./zh-mo\": 553,\n\t\"./zh-mo.js\": 553,\n\t\"./zh-tw\": 554,\n\t\"./zh-tw.js\": 554\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 = 419;","module.exports = __webpack_public_path__ + \"static/media/undraw_online_organizer_ofxm.f45bcf4c.svg\";","module.exports = __webpack_public_path__ + \"static/media/undraw_Checklist__re_2w7v.ea157c47.svg\";","module.exports = __webpack_public_path__ + \"static/media/stats.a10983eb.svg\";","module.exports = __webpack_public_path__ + \"static/media/undraw_add_document_0hek.9082c49f.svg\";","module.exports = __webpack_public_path__ + \"static/media/gallery.975fa7b3.svg\";","module.exports = __webpack_public_path__ + \"static/media/oauthTokens.068b1c34.svg\";","import React, {createContext, useEffect, useState} \tfrom 'react';\nimport { useCookies } \t\t\t\t\t\t\tfrom 'react-cookie';\nimport PropTypes \t\t\t\t\t\t\t\t\tfrom 'prop-types';\n\nexport const defaultMenuContext = { route: null, open: true, confirmBeforeNav: false };\nexport const MenuContext = createContext(defaultMenuContext);\n\nconst MenuContextContainer = ({ children }) => {\n\tconst [cookies, setCookie] = useCookies(['menu']);\n\n\tif (!cookies.menu)\n\t\tsetCookie('menu', 'open');\n\t\n\tObject.assign(defaultMenuContext, { open: !!(cookies.menu === 'open') });\n\tconst [menu, setMenu] = useState(defaultMenuContext);\n\n\tuseEffect(() => {\n\t\tsetCookie('menu', menu.open ? 'open' : 'closed');\n\t}, [menu]); //eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\nMenuContextContainer.propTypes = {\n\tchildren: PropTypes.node\n};\n\nexport default MenuContextContainer;","import React, {createContext, useEffect, useState} from 'react';\nimport {useRest} from '@karpeleslab/react-klbfw-hooks';\nimport PropTypes \t\t\t\t\t\t\t\t from 'prop-types';\n\nexport const defaultUserContext = {\n\tloggedIn: false,\n\tloading: true,\n\tuser: {\n\t\tDisplay_Name: null,\n\t\tEmail: null,\n\t\tProfile: {\n\t\t\tMedia_Image: {\n\t\t\t\tUrl: null\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport const UserContext = createContext(defaultUserContext);\n\nconst UserContainer = ({ children }) => {\n\tconst [user, setUser] = useState(defaultUserContext);\n\n\tconst [loggedUser] = useRest('User/@');\n\n\tuseEffect(() => {\n\t\tif (!loggedUser)\n\t\t\treturn;\n\n\t\tlet userCtx = {};\n\t\tif (loggedUser.result === 'success')\n\t\t\tuserCtx = { loggedIn: true, user: loggedUser };\n\n\t\tsetUser({ ...userCtx, loading: false });\n\n\t}, [loggedUser]);\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nUserContainer.propTypes = {\n\tchildren: PropTypes.node\n};\n\nexport default UserContainer;","\t\nimport React, { createContext, useState, memo } from 'react';\nimport PropTypes \t\t\t\t\t\t\t\tfrom 'prop-types';\n \nexport const SnackbarValueContext = createContext({});\nexport const SnackbarSetContext = createContext(() => {});\n \nconst SnackbarProvider = memo(({ setSnackbar, children }) => {\n\tconst handleSnackbarSet = (message, type = 'default') => {\n\t\tsetSnackbar({ message, type });\n\t};\n \n\treturn (\n\t\t\n\t\t\t{ children }\n\t\t\n\t);\n});\n\nSnackbarProvider.displayName = 'SnackbarProvider';\nSnackbarProvider.propTypes = {\n\tchildren: PropTypes.node,\n\tsetSnackbar: PropTypes.func\n};\n \nconst SnackbarContainer = ({ children }) => {\n\tconst [snackbar, setSnackbar] = useState({\n\t\tmessage : '',\n\t\ttype : 'default'\n\t});\n \n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ children }\n\t\t\t\n\t\t\n\t);\n};\n\nSnackbarContainer.propTypes = {\n\tchildren: PropTypes.node\n};\n\nexport default SnackbarContainer;","import React, {\n\tuseContext, \n\tuseEffect, \n\tuseRef, \n\tuseState\n} from 'react';\nimport {useHistory} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\nimport {MenuContext} from '../../../../context/MenuContext';\n\n// Notice: include this component only once, for example at root level.\n// Wrap your form or things like that with \"ConfirmBeforeLeaveWrapper\" to require its use.\nconst ConfirmBeforeLeaveDialog = () => {\n\tconst [open, setOpen] = useState(false);\n\tconst [target, setTarget] = useState('');\n\tconst unblockHandle = useRef(null);\n\tconst {t} = useTranslation();\n\tconst history = useHistory();\n\tconst [menu, setMenu] = useContext(MenuContext);\n \n\tuseEffect(() => {\n\t\tunblockHandle.current = history.block((targetLocation) => {\n\t\t\tsetTarget(targetLocation);\n\t\t\tif (menu.confirmBeforeNav)\n\t\t\t\tsetOpen(true); \n\t\t\treturn !menu.confirmBeforeNav;\n\t\t});\n\t\treturn () => (unblockHandle.current.current && unblockHandle.current.current());\n\t}, [history, menu]);\n \n\tconst handleConfirm = () => {\n\t\tif (unblockHandle) \n\t\t\tunblockHandle.current();\n\n\t\tsetMenu(m => ({ ...m, confirmBeforeNav: false }));\n\t\tsetOpen(false);\n\t\thistory.push(target);\n\t};\n\n\treturn (\n\t\t setOpen(false)}\n\t\t>\n\t\t\t{t('nav_confirm_leave')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('nav_confirm_leave_desc')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ConfirmBeforeLeaveDialog;\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router';\n\nconst ScrollToTop = () => {\n\tconst { pathname } = useLocation();\n\n\tuseEffect(() => {\n\t\tif (typeof window !== 'undefined') \n\t\t\tsetTimeout(() => window.scrollTo(0, 0), 500); // timeout to match the CSS transition between pages.\n\t}, [pathname]);\n\n\treturn null;\n};\n\nexport default ScrollToTop;\n","import { useContext } from 'react';\nimport { SnackbarSetContext, \n\t\t\t\t\t\t\t\t\tSnackbarValueContext } from './../context/SnackbarContext';\n\nconst useSetSnackbar = () => useContext(SnackbarSetContext);\nconst useGetSnackbar = () => useContext(SnackbarValueContext);\nconst useSnackbar = () => {\n\tconst setSnackbar = useContext(SnackbarSetContext);\n\tconst snackbar = useContext(SnackbarValueContext);\n\n\treturn {\n\t\tsetSnackbar,\n\t\tsnackbar\n\t};\n};\n\nexport {\n\tuseGetSnackbar,\n\tuseSetSnackbar,\n\tuseSnackbar\n};\n","import React, { useEffect } from 'react';\nimport { SwitchTransition, \n\t\t\t\t\t\t\t\t\tCSSTransition } \tfrom 'react-transition-group';\n\nimport { useSnackbar, useSetSnackbar } from './../../../hooks/useSnackbar';\n\nimport { FiX } from 'react-icons/fi';\n\nimport './Snackbar.scss';\n\nexport default function Snackbar () {\n\tconst { snackbar } = useSnackbar();\n\tconst { message, type } = snackbar;\n\n\tconst setSnackbar = useSetSnackbar();\n\tconst handleClose = () => {\n\t\tsetSnackbar(null);\n\t};\n\n\tuseEffect(() => {\n\t\tif (message) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (message) \n\t\t\t\t\tsetSnackbar(null);\n\t\t\t}, 5000);\n\t\t}\n\t}, [message, setSnackbar]);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t node.addEventListener('transitionend', done, false)}\n\t\t\t\t\tclassNames='u-transition--vertical'\n\t\t\t\t>\n\t\t\t\t\t{ message ? \n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{ message }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t: \n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n}\n","import React from 'react';\nimport { useCookies } from 'react-cookie';\nimport PropTypes from 'prop-types';\n\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport blue from '@material-ui/core/colors/blue';\n\nconst MuiTheme = ({ children }) => {\n\tconst [cookies, setCookie] = useCookies(['theme']);\n\tlet prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');\n \n\tif (!cookies.theme)\n\t\tsetCookie('theme', prefersDarkMode ? 'dark' : 'light');\n\n\tconst theme = React.useMemo(\n\t\t() =>\n\t\t\tcreateMuiTheme({\n\t\t\t\tpalette: {\n\t\t\t\t\ttype : cookies.theme,\n\t\t\t\t\tprimary : {\n\t\t\t\t\t\tlight : blue[500],\n\t\t\t\t\t\tmain : blue[600],\n\t\t\t\t\t\tdark : blue[700]\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t}),\n\t\t[cookies],\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t{ children }\n\t\t\n\t);\n};\n\nMuiTheme.propTypes = {\n\tchildren: PropTypes.node\n};\n\nexport default MuiTheme;","import React from 'react';\nimport {NavLink, useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes \t\t\tfrom 'prop-types';\n\nimport BallotIcon \t\t\t\tfrom '@material-ui/icons/Ballot';\nimport ConfirmationNumberIcon \tfrom '@material-ui/icons/ConfirmationNumber';\nimport DynamicFeedIcon \t\t\tfrom '@material-ui/icons/DynamicFeed';\nimport List \tfrom '@material-ui/core/List';\nimport ListItem \tfrom '@material-ui/core/ListItem';\nimport ListItemIcon \tfrom '@material-ui/core/ListItemIcon';\nimport ListItemText \tfrom '@material-ui/core/ListItemText';\nimport MenuBookIcon \t\tfrom '@material-ui/icons/MenuBook';\nimport Tooltip \t\t\t\t\tfrom '@material-ui/core/Tooltip';\n\nconst CatalogDrawer = ({ expanded }) => {\n\tconst { t } = useTranslation();\n\tconst { catalogId } = useParams();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nCatalogDrawer.propTypes = {\n\texpanded: PropTypes.bool\n};\n\nexport default CatalogDrawer;","export const isShellRealm = realmId => {\n\treturn realmId === 'usrr-conviz-oqcj-cpxl-34xi-5r2fs3yi';\n};\n\nexport const PXL_REALM = 'usrr-fkllal-2wnj-bb5b-n44r-4wi7h6ye';\n\nexport const isPXLRealm = realmId => {\n\treturn realmId === PXL_REALM;\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { NavLink, useParams } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport AssessmentIcon from '@material-ui/icons/Assessment';\nimport {isPXLRealm, isShellRealm} from '../../../utils/realm';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport HourglassEmptyIcon from '@material-ui/icons/HourglassEmpty';\nimport MailIcon from '@material-ui/icons/Mail';\nimport PaymentIcon from '@material-ui/icons/Payment';\nimport PeopleOutlineIcon from '@material-ui/icons/PeopleOutline';\nimport PublicIcon from '@material-ui/icons/Public';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport StorageIcon from '@material-ui/icons/Storage';\nimport SupervisedUserCircleIcon from '@material-ui/icons/SupervisedUserCircle';\nimport ContactMailIcon from '@material-ui/icons/ContactMail';\nimport AlbumIcon from '@material-ui/icons/Album';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport LabelIcon from '@material-ui/icons/Label';\n\nconst RealmDrawer = ({ expanded }) => {\n\tconst { t } = useTranslation();\n\tconst { realmId } = useParams();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{isShellRealm(realmId) &&\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t}\n\t\t\t{isPXLRealm(realmId) &&\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n\nRealmDrawer.propTypes = {\n\texpanded: PropTypes.bool\n};\n\nexport default RealmDrawer;\n","import React, {useEffect, useState} from 'react';\nimport {useTranslation}\t\t\t\tfrom 'react-i18next';\nimport {NavLink, Route} \t\t\tfrom 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport AccountBalanceIcon \tfrom '@material-ui/icons/AccountBalance';\nimport AccountTreeIcon \t\tfrom '@material-ui/icons/AccountTree';\nimport CatalogDrawer \tfrom '../../layout/Drawer/CatalogDrawer';\nimport Collapse \t\t\tfrom '@material-ui/core/Collapse';\nimport Divider \tfrom '@material-ui/core/Divider';\nimport LanguageIcon \tfrom '@material-ui/icons/Language';\nimport List \t\tfrom '@material-ui/core/List';\nimport ListItem \t\tfrom '@material-ui/core/ListItem';\nimport ListItemIcon \t\tfrom '@material-ui/core/ListItemIcon';\nimport ListItemText \t\tfrom '@material-ui/core/ListItemText';\nimport RealmDrawer \tfrom '../../layout/Drawer/RealmDrawer';\nimport StorageIcon \t\t\tfrom '@material-ui/icons/Storage';\nimport Tooltip \t\t\t\tfrom '@material-ui/core/Tooltip';\n\nconst Navigation = ({ routeParams, expanded }) => {\n\tconst [realmOpen, setRealmOpen] = useState(false);\n\tconst [catalogOpen, setCatalogOpen] = useState(false);\n\tconst {t} = useTranslation();\n\n\tuseEffect(() => {\n\t\tif (routeParams) {\n\t\t\tif (routeParams.realmId)\n\t\t\t\tsetRealmOpen(true);\n\t\t\telse \n\t\t\t\tsetRealmOpen(false);\n\t\t\t\n\t\t\tif (routeParams.catalogId)\n\t\t\t\tsetCatalogOpen(true);\n\t\t\telse \n\t\t\t\tsetCatalogOpen(false);\n\t\t} \n\t}, [routeParams, setCatalogOpen, setRealmOpen]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t setRealmOpen(!realmOpen)} disabled={!routeParams || !routeParams.realmId}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t setCatalogOpen(!catalogOpen)} disabled={!routeParams || !routeParams.catalogId}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n\nNavigation.propTypes = {\n\texpanded : PropTypes.bool,\n\trouteParams: PropTypes.object\n};\n\nexport default Navigation;","import React from 'react';\nimport { useCookies } from 'react-cookie';\n\nimport Brightness2Icon from '@material-ui/icons/Brightness2';\nimport WbSunnyIcon from '@material-ui/icons/WbSunny';\n\nimport './ThemeSwitch.scss';\n\nexport default ({ ButtonComponent, TextComponent, ...etc }) => {\n\tconst [cookies, setCookie] = useCookies(['theme']);\n\n\tconst darkBtn = (\n\t\t setCookie('theme', 'light') }\n\t\t\t{ ...etc }\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\n\t);\n\n\tconst lightBtn = (\n\t\t setCookie('theme', 'dark') }\n\t\t\t{ ...etc }\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\n\t);\n\n\treturn cookies.theme === 'dark' ? darkBtn : lightBtn;\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { NavLink } from 'react-router-dom';\n\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport Divider from '@material-ui/core/Divider';\nimport Drawer from '@material-ui/core/Drawer';\nimport HomeIcon from '@material-ui/icons/Home';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport Navigation from '../../kakari/RealmNavigation/RealmNavigation';\nimport PowerSettingsNewIcon from '@material-ui/icons/PowerSettingsNew';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport ThemeSwitch from './../ThemeSwitch/ThemeSwitch';\nimport Tooltip \t\t\t from '@material-ui/core/Tooltip';\n\nimport './Drawer.scss';\n\nconst Template = (logOut, open, params, setOpen, wrapperRef) => {\n\tconst {t} = useTranslation();\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t setOpen(!open) }\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t{ \n\t\t\t\t\t\t\topen ? \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t}\n\t\t\t\t\t\tKakari } className={ 'c-drawer__text' }/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n \n\t\t\n\t);\n};\n\nexport default Template;\n","import { useContext, useRef } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { rest } from '@karpeleslab/klbfw';\n\nimport { UserContext } from './../../../context/UserContext';\nimport { MenuContext } from './../../../context/MenuContext';\n\nimport Template from './Drawer.template';\n\nconst Drawer = () => { \n\tconst history = useHistory();\n\tconst [menu, setMenu] = useContext(MenuContext);\n\tconst [, setUser] = useContext(UserContext);\n\tconst wrapperRef = useRef(null);\n\n\tconst logOut = async () => {\n\t\tconst res = rest('User/@:logout', 'POST');\n\t\tsetUser({\n\t\t\tloggedIn: false,\n\t\t\tuser : {}\n\t\t}); \n\t\thistory.push('/login');\n\t\treturn res;\n\t};\n\n\tconst onOpen = open => setMenu(m => ({ ...m, open }));\n\n\treturn Template(logOut, menu.open, menu.route, onOpen, wrapperRef);\n};\n\nexport default Drawer;\n","import React from 'react';\nimport { useTheme } from '@material-ui/core/styles';\n\nimport './Loader.scss';\n\nconst Template = (message = '') => {\n\tconst theme = useTheme(); \n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{\n\t\t\t\tmessage.length > 0 ?

{ message }

: ''\n\t\t\t}\n\t\t
\n\t); \n};\n\nexport default Template;","import Template from './Loader.template';\n\nexport default function Loader (message) {\n\treturn Template(message);\n}\n","import React, { useContext, useEffect } from 'react';\nimport {useParams} from 'react-router-dom';\n\nimport { MenuContext } from './../../../../context/MenuContext';\n\n\nconst MenuContextUpdater = () => {\n\tconst params = useParams();\n\tconst [, setMenu] = useContext(MenuContext);\n\n\tuseEffect(() => {\n\t\tsetMenu(prevState => ({ ...prevState, route: params }));\n }, [setMenu]); // eslint-disable-line\n\n\treturn <>;\n};\n\nexport default MenuContextUpdater;","import React, { useContext } from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { SwitchTransition, CSSTransition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\n\nimport MenuContextUpdater from './MenuContextUpdater'; \n\nimport { UserContext } from './../../../../context/UserContext';\n\n\nconst RouteTransition = ({ loginRequired, children, path, ...etc}) => {\n\tconst [user] = useContext(UserContext);\n\tif (loginRequired && !user.loggedIn)\n\t\treturn ;\n \n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\tnode.addEventListener(\n\t\t\t\t\t\t'transitionend',\n\t\t\t\t\t\tdone,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{ children }\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nRouteTransition.propTypes = {\n\tchildren : PropTypes.node, \n\tloginRequired: PropTypes.bool,\n\tpath \t\t : PropTypes.string\n};\n\nexport default RouteTransition;","import React, {forwardRef} from 'react';\nimport PropTypes from 'prop-types';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport ReactButton from '@material-ui/core/Button';\n\nconst Button = forwardRef(({ loading, children, ...rest }, ref) => {\n\tif (loading) {\n\t\trest.disabled = true;\n\t\trest.endIcon = ;\n\t}\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n});\n\nButton.displayName = 'Button';\nButton.propTypes = {\n\tchildren: PropTypes.node,\n\tloading : PropTypes.bool\n}; \n\nexport default Button;","import React, {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport TextField from '@material-ui/core/TextField';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nimport { useGroups } from './../../../hooks/useUserGroup';\n\nconst GroupSelection = ({ value, setValue, required = false, disabled = false }) => {\n\tconst { t } = useTranslation();\n\tconst [open, setOpen] = useState(false);\n\tconst [filter, setFilter] = useState(null);\n\tconst [itvl, setItvl] = useState(null);\n\tconst [list] = useGroups(filter);\n\n\tconst handleChange = (e) => {\n\t\tconst value = e.target.value;\n\t\tsetOpen(true);\n\t\tif (itvl) {\n\t\t\tclearTimeout(itvl);\n\t\t\tsetItvl(null);\n\t\t}\n\t\tsetItvl(setTimeout(() => {\n\t\t\tsetFilter(value);\n\t\t}, 250));\n\t};\n\n\treturn (\n\t\t setOpen(true)}\n\t\t\tonOpen={() => setOpen(true)}\n\t\t\tonClose={() => setOpen(false)}\n\t\t\tdisabled={disabled}\n\t\t\tvalue={value}\n\t\t\tonChange={(e, value) => setValue(value)}\n\t\t\tgetOptionSelected={(option, value) => option.User_Group__ === value.User_Group__}\n\t\t\tgetOptionLabel={(option) => option === '' ? '' : option.Name}\n\t\t\toptions={list ? list.data : []}\n\t\t\tloading={!list || !list.data}\n\t\t\trenderInput={(params) => (\n\t\t\t\t\n\t\t\t\t\t\t\t\t{!list || !list.data ? : null}\n\t\t\t\t\t\t\t\t{params.InputProps.endAdornment}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n};\n\nGroupSelection.propTypes = { \n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool, \n\tsetValue: PropTypes.func, \n\tvalue : PropTypes.string, \n};\n\nexport default GroupSelection;","import { rest } from '@karpeleslab/klbfw';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport const useGroups = (search, page_no = 1) => {\n\tconst [groups, setGroups] = useState(null);\n\tconst refresh = useCallback(data => {\n\t\tconst params = { page_no };\n\n\t\tif (search && search.length > 0)\n\t\t\tparams.Name = { '$prefix': search };\n\n\t\tif (data) {\n\t\t\tsetGroups({ data });\n\t\t\treturn;\n\t\t}\n\t\trest('User/Group', 'GET', params)\n\t\t\t.then(setGroups)\n\t\t\t.catch(e => setGroups({ error: e }));\n\t}, [search, setGroups, page_no]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [refresh]);\n\n\treturn [groups, refresh];\n};\n","import React, { useState } \tfrom 'react';\nimport { useTranslation }\tfrom 'react-i18next';\nimport { useHistory }\t\tfrom 'react-router-dom';\nimport { rest } \t\t\tfrom '@karpeleslab/klbfw';\nimport PropTypes \t\t\tfrom 'prop-types';\n\nimport AddIcon \t\t\t\tfrom '@material-ui/icons/Add';\nimport Button \t\t\t\tfrom '../../components/core/input/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Grid \t\t\t\tfrom '@material-ui/core/Grid';\nimport GroupSelection \t\tfrom '../../components/core/input/GroupSelection';\nimport TextField\t\t\tfrom '@material-ui/core/TextField';\n\nexport const NEW_ITEM_TYPES = {\n\tCATALOG\t: 'Catalog', \n\tREALM\t: 'Realm',\n\tSITE \t: 'Site' \n}; \n\nconst AddNewItem = ({ type }) => {\n\tconst { t } = useTranslation();\n\tconst [group, setGroup] = useState('');\n\tconst history = useHistory();\n\tconst [loading, setLoading]\t= useState(false);\n\tconst [name, setName] = useState('');\n\tconst [open, setOpen] = useState(false);\n\n\tconst onCancel = () => {\n\t\tsetOpen(false);\n\t\tsetName('');\n\t};\n\n\tconst onCreate = () => {\n\t\tsetLoading(true); \n\t\trest(\n\t\t\ttype, \n\t\t\t'POST', \n\t\t\t{ Name: name },\n\t\t\t{ g: group.User_Group__ }\n\t\t)\n\t\t\t.then(({ data }) => {\n\t\t\t\thistory.push(`/${type.toLowerCase()}/${data[`${type}__`]}`);\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\t// TBD Error\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetOpen(false);\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t setOpen(false)}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t{t(`create_${type.toLowerCase()}_title`)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setName(e.target.value) }\n\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('back_btn')}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nAddNewItem.propTypes = {\n\ttype: PropTypes.string.isRequired\n};\n\nexport default AddNewItem;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {useTranslation} from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport Grid from '@material-ui/core/Grid';\nimport GroupIcon from '@material-ui/icons/Group';\nimport {Link} from 'react-router-dom';\nimport Typography from '@material-ui/core/Typography';\n\nconst BankCard = ({ bank, access }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{bank.Name}\n\t\t\t\t\t\n\t\t\t\t\t{access && access.group && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{access.group.Name}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('view_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nBankCard.propTypes = {\n\taccess: PropTypes.object,\n\tbank : PropTypes.object\n}; \n\nexport default BankCard;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport Grid from '@material-ui/core/Grid';\nimport Loader from '../../layout/Loader/Loader';\nimport BankCard from '../BankCard/BankCard';\nimport Button from '../../core/input/Button';\n\nconst Template = (banks, loadMore) => {\n\tconst {t} = useTranslation();\n\t\n\treturn !(banks && banks.data) ? : (\n\t\t\n\t\t\t{banks.data.map(bank => (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t))}\n\t\t\t{banks.paging.page_no < banks.paging.page_max ?\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('load_more')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t: ''}\n\t\t\n\t);\n};\n\nexport default Template;","import {useEffect, useState} from 'react';\nimport {useBanks} from '../../../hooks/useBanks';\n\nimport Template from './BankList.template';\n\nconst BankList = ({ filter }) => {\n\tconst [list, setList] = useState({ data: null });\n\tconst [page, setPage] = useState(1);\n\tconst [lastFilter, setLastFilter] = useState(filter);\n\tconst [banks] = useBanks(filter, page);\n\n\tconst loadMore = () => {\n\t\tsetPage(page + 1);\n\t};\n\n\tuseEffect(() => {\n\t\t// append to existing list if needed\n\t\tif (filter === lastFilter && banks && list) {\n\t\t\tsetList({\n\t\t\t\t...banks,\n\t\t\t\tdata : [...list.data, ...banks.data],\n\t\t\t\taccess: [...list.access, ...banks.access]\n\t\t\t});\n\t\t} else {\n\t\t\tsetPage(1);\n\t\t\tsetLastFilter(filter);\n\t\t\tsetList(banks);\n\t\t}\n\t}, [banks, setList, setLastFilter]); //eslint-disable-line\n\n\treturn Template(list, loadMore);\n};\n\nexport default BankList;","import {rest} from '@karpeleslab/klbfw';\nimport {useCallback, useEffect, useState} from 'react';\n\nimport {useSetSnackbar} from './useSnackbar';\n\nexport const useBanks = (search, page_no = 1) => {\n\tconst [banks, setBanks] = useState(null);\n\tconst refresh = useCallback(data => {\n\t\tconst params = { page_no };\n\n\t\tif (search && search.length > 0)\n\t\t\tparams.Name = { '$prefix': search };\n\n\t\tif (data) {\n\t\t\tsetBanks({ data });\n\t\t\treturn;\n\t\t}\n\n\t\trest('Money/Bank', 'GET', params)\n\t\t\t.then(setBanks)\n\t\t\t.catch(e => setBanks({ error: e }));\n\t}, [search, setBanks, page_no]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [refresh]);\n\n\treturn [banks, refresh];\n};\n\nexport const useBank = (bankId) => {\n\tconst [bank, setBank] = useState(null);\n\n\tconst refresh = useCallback(data => {\n\t\tif (data) \n\t\t\tsetBank({ ...(bank ?? {}), data: data });\n\n\t\trest(`Money/Bank/${bankId}`)\n\t\t\t.then(setBank)\n\t\t\t.catch(e => setBank({ error: e }));\n\t}\n\t\t, [bank]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [bank, refresh];\n};\n\nexport const useBankWithdrawals = Money_Bank__ => {\n\tconst [withdrawals, setWithdrawals] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (status, paging) => {\n\t\tconst params = { ...paging };\n\t\tif (status) \n\t\t\tparams.Status = status;\n\n\t\tsetLoading(true);\n\t\trest(`Money/Bank/${Money_Bank__}/Withdraw`, 'GET', params)\n\t\t\t.then(setWithdrawals)\n\t\t\t.catch(e => setWithdrawals({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [withdrawals, fetch, loading];\n};\n\nexport const useCheckSwift = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = swiftCode => {\n\t\tsetLoading(true);\n\n\t\treturn rest('Money/Swift:get', 'GET', { swift: swiftCode })\n\t\t\t.then(res => res)\n\t\t\t.catch(err => {\n\t\t\t\tsetSnackbar(err.error, 'error');\n\t\t\t\treturn err;\n\t\t\t})\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useCheckAba = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = abaCode => {\n\t\tsetLoading(true);\n\n\t\treturn rest('Money/Swift:aba', 'GET', { aba: abaCode })\n\t\t\t.then(res => res)\n\t\t\t.catch(err => {\n\t\t\t\tsetSnackbar(err.error, 'error');\n\t\t\t\treturn err;\n\t\t\t})\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useSetBankAccount = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = params => { \n\t\tsetLoading(true);\n\n\t\treturn rest('Money/Bank/Account', 'POST', params)\n\t\t\t.then(res => res)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useUserBankAccount = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = (bankAccountId, userId) => { \n\t\tsetLoading(true);\n\n\t\treturn rest(`Money/Bank/Account/${bankAccountId}`, 'GET', { '_admin_as': userId })\n\t\t\t.then(res => res)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n","import {useParams}\t\t\t\t\t\t\tfrom 'react-router-dom';\nimport {rest} \tfrom '@karpeleslab/klbfw';\nimport {useCallback, useEffect, useState} \tfrom 'react';\n\nimport {useSetSnackbar} from './useSnackbar';\n\nexport const useCatalogs = (search, page_no = 1) => {\n\tconst [catalogs, setCatalogs] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst refresh \t\t= useCallback(data => {\n\t\tconst params \t= { page_no };\n \n\t\tif (search && search.length > 0)\n\t\t\tparams.Name = { '$prefix': search };\n\n\t\tif (data) {\n\t\t\tsetCatalogs({ data });\n\t\t\treturn;\n\t\t}\n\t\tsetLoading(true);\n\t\trest('Catalog', 'GET', params)\n\t\t\t.then(setCatalogs)\n\t\t\t.catch(e => setCatalogs({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t}, [search, setCatalogs, page_no]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [refresh]);\n\n\treturn [catalogs, refresh, loading];\n};\n\nexport const useSearchableCatalogs = () => {\n\tconst [catalogs, setCatalogs] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (search, paging = {}) => {\n\t\tconst params = { ...paging };\n\n\t\tif (search && search.length > 0)\n\t\t\tparams.Name = { '$prefix': search };\n\n\t\tsetLoading(true);\n\t\trest('Catalog', 'GET', params)\n\t\t\t.then(setCatalogs)\n\t\t\t.catch(e => setCatalogs({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [catalogs, fetch, loading];\n};\n\nexport const useCatalog = () => {\n\tconst { catalogId } = useParams();\n\tconst [catalog, setCatalog] = useState(null);\n\n\tconst refresh = useCallback(() => {\n\t\trest(`Catalog/${catalogId}`, 'GET')\n\t\t\t.then(setCatalog)\n\t\t\t.catch(e => setCatalog({ error: e }));\n\t}, [setCatalog, catalogId]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [refresh]);\n\n\treturn [catalog, refresh];\n}; \n\nexport const useCatalogProducts = (forcedCatalogId = null) => {\n\tconst { catalogId } = useParams();\n\tconst [products, setProducts] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (search, paging = {}) => {\n\t\tlet params = {\n\t\t\t'Catalog__': catalogId,\n\t\t\t...paging\n\t\t};\n\n\t\tif (search) {\n\t\t\tif (typeof search === 'string' && search.trim().length > 0)\n\t\t\t\tparams.Name = { '$prefix': search };\n\t\t\telse\n\t\t\t\tparams = Object.assign(params, search);\n\t\t}\n\n\t\tsetLoading(true);\n\t\trest(`Catalog/${forcedCatalogId || catalogId}/Product`, 'GET', params)\n\t\t\t.then(setProducts)\n\t\t\t.catch(e => setProducts({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [products, fetch, loading];\n};\n\nexport const useCatalogCoupons = () => {\n\tconst { catalogId } = useParams();\n\tconst [coupons, setCoupons] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (search) => {\n\t\tconst params = { 'Catalog__': catalogId, 'Status': 'valid' };\n\n\t\tif (search && search.length > 0)\n\t\t\tparams.Name = { '$prefix': search };\n\n\t\tsetLoading(true);\n\t\trest(`Catalog/${catalogId}/Coupon`, 'GET', params)\n\t\t\t.then(setCoupons)\n\t\t\t.catch(e => setCoupons({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [coupons, fetch, loading];\n};\n\nexport const useCatalogProduct = () => {\n\tconst { productId } = useParams(); \n\tconst [product, setProduct]\t= useState(null);\n\n\tconst refresh = useCallback(() => {\n\t\trest(`Catalog/Product/${productId}`, 'GET')\n\t\t\t.then(setProduct)\n\t\t\t.catch(e => setProduct({ error: e }));\n\t}, [setProduct, productId]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [refresh]);\n\n\treturn [product, refresh];\n};\n\nexport const useCatalogProductPricing = () => {\n\tconst { productId } = useParams(); \n\tconst [pricing, setPricing]\t= useState([]);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = () => {\n\t\tsetLoading(true);\n\t\trest(`Catalog/Product/${productId}/Price`, 'GET',{ sort: { Start_Date: 'ASC' }})\n\t\t\t.then(setPricing)\n\t\t\t.catch(e => setPricing({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [pricing, fetch, loading];\n};\n\nexport const useProductGallery = (variation = null) => {\n\tconst { productId } = useParams();\n\tconst [gallery, setGallery]\t= useState([]);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = () => {\n\t\tsetLoading(true);\n\t\trest(`Catalog/Product/${productId}/Image`, 'GET', { image_variation: variation })\n\t\t\t.then(({ data }) => setGallery(data))\n\t\t\t.catch(e => setGallery({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [gallery, fetch, loading];\n};\n\nexport const useCatalogSoftwares = () => {\n\tconst { catalogId } = useParams();\n\tconst [softwares, setSoftwares] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (search) => {\n\t\tconst params = {\n\t\t\t'Catalog__': catalogId\n\t\t};\n\n\t\tif (search && search.length > 0)\n\t\t\tparams.Name = { '$prefix': search };\n\n\t\tsetLoading(true);\n\t\trest(`Catalog/${catalogId}/Software`, 'GET', params)\n\t\t\t.then(setSoftwares)\n\t\t\t.catch(e => setSoftwares({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [softwares, fetch, loading];\n};\n\nexport const useRegenCatalogCache = catalogId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = () => {\n\t\tsetLoading(true);\n\t\treturn rest(`Catalog/${catalogId}:regenerateCache`, 'POST')\n\t\t\t.then(res => res)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res =>{ \n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n\t//Catalog/ID:regenerateCache \n};","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '@material-ui/core/Button';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport Grid from '@material-ui/core/Grid';\nimport GroupIcon from '@material-ui/icons/Group';\nimport { Link } from 'react-router-dom';\nimport Typography from '@material-ui/core/Typography';\n\nconst CatalogCard = ({ catalog, access }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{ catalog.Name }\n\t\t\t\t\t\n\t\t\t\t\t{access && access.group && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{access.group.Name}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('view_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nCatalogCard.propTypes = {\n\taccess : PropTypes.object,\n\tcatalog: PropTypes.object\n}; \n\nexport default CatalogCard;","import React \t\t\tfrom 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport CatalogCard from './../CatalogCard/CatalogCard';\nimport Grid from '@material-ui/core/Grid';\nimport Loader from './../../layout/Loader/Loader';\n\nconst Template = (catalog, loadMore) => {\n\tconst {t} = useTranslation();\n \n\treturn !(catalog && catalog.data) ? : \n\t\t\n\t\t\t{\n\t\t\t\tcatalog.data.map(c => (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t))\n\t\t\t}\n\t\t\t{catalog.paging.page_no < catalog.paging.page_max ?\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t:''}\n\t\t;\n};\n\nexport default Template;","import { useEffect, useState } from 'react';\nimport { useCatalogs } from './../../../hooks/useCatalog';\n\nimport Template from './CatalogList.template';\n\nconst CatalogList = ({ filter }) => {\n\tconst [list, setList] = useState({ data: null });\n\tconst [page, setPage] = useState(1);\n\tconst [lastFilter, setLastFilter] = useState(filter);\n\tconst [catalogs] = useCatalogs(filter, page); \n\n\tconst loadMore = () => {\n\t\tsetPage(page + 1);\n\t};\n\n\tuseEffect(() => {\n\t\t// append to existing list if needed\n\t\tif (filter === lastFilter && catalogs && list) {\n\t\t\tsetList({\n\t\t\t\t...catalogs, \n\t\t\t\taccess: [...list.access, ...catalogs.access],\n\t\t\t\tdata : [...list.data, ...catalogs.data]\n\t\t\t});\n\t\t} else { \n\t\t\tsetPage(1);\n\t\t\tsetLastFilter(filter);\n\t\t\tsetList(catalogs);\n\t\t}\n }, [catalogs, setList, setLastFilter]); //eslint-disable-line\n\n\treturn Template(list, loadMore); \n};\n\nexport default CatalogList;","import React \t\tfrom 'react';\nimport PropTypes \tfrom 'prop-types';\n\nconst PageContainer = ({ children, ...rest }) => {\n\treturn (\n\t\t
\n\t\t\t{children}\n\t\t
\n\t);\n};\n\nPageContainer.propTypes = {\n\tchildren: PropTypes.node\n};\n\nexport default PageContainer;\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Box \t from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport { Link } from 'react-router-dom';\nimport Typography from '@material-ui/core/Typography';\n\nconst PageTitle = ({ backButton = false, backButtonText = null, children }) => {\n\tconst {t} = useTranslation(); \n\tconst history = useHistory();\n\n\treturn (\n\t\t<>\n\t\t\t{ \n\t\t\t\tbackButton && \n\t\t\t\t\n\t\t\t\t\t{(backButton && typeof backButton === 'boolean') && (\n\t\t\t\t\t\t history.goBack()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ backButtonText ? backButtonText : t('back_btn') }\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{(backButton && typeof backButton === 'string') && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ backButtonText ? backButtonText : t('back_btn') }\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t\n\t);\n};\n\nPageTitle.propTypes = {\n\tbackButton : PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n\tbackButtonText: PropTypes.string, \n\tchildren : PropTypes.node\n}; \n\nexport default PageTitle;","import { useParams } from 'react-router-dom';\nimport { rest } from '@karpeleslab/klbfw';\nimport { useCallback, useEffect, useState } from 'react';\nimport { useSetSnackbar } from './useSnackbar';\nimport { useTranslation } from 'react-i18next';\n\nexport const useRealm = (id) => {\n\tconst [realm, setRealm] = useState(null);\n\tconst refresh = useCallback(data => {\n\t\tif (data) {\n\t\t\tsetRealm({ data });\n\t\t\treturn;\n\t\t}\n\t\trest(`Realm/${id}`)\n\t\t\t.then(setRealm)\n\t\t\t.catch(e => setRealm({ error: e }));\n\t}, [id, setRealm]);\n\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [id, refresh]);\n\n\treturn [realm, refresh];\n};\n\nexport const useRealmWithParams = () => {\n\tconst { realmId } = useParams();\n\treturn useRealm(realmId);\n};\n\nexport const useRealmsTable = () => {\n\tconst [res, setRes] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {...filters, ...paging };\n\n\t\tsetLoading(true);\n\t\treturn rest('Realm', 'GET', params)\n\t\t\t.then(setRes)\n\t\t\t.catch(e => setRes({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [res, fetch, loading];\n};\n\nexport const useRealms = () => {\n\tconst [realms, setRealms] = useState(null);\n\tconst refresh = useCallback((search, page_no = 1, results_per_page = 20) => {\n\t\tconst params = { page_no, results_per_page };\n\n\t\tif (search && search.length > 0)\n\t\t\tparams.Name = { '$prefix': search };\n\n\t\trest('Realm', 'GET', params)\n\t\t\t.then(setRealms)\n\t\t\t.catch(e => setRealms({ error: e }));\n\t}, [setRealms]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [refresh]);\n\n\treturn [realms, refresh];\n};\n\n\nexport const useRealmsProper = (search, page_no = 1) => {\n\tconst [realms, setRealms] = useState(null);\n\tconst refresh = useCallback(data => {\n\t\tconst params = { page_no };\n\n\t\tif (search && search.length > 0)\n\t\t\tparams.Name = { '$prefix': search };\n\n\t\tif (data) {\n\t\t\tsetRealms({ data });\n\t\t\treturn;\n\t\t}\n\t\trest('Realm', 'GET', params)\n\t\t\t.then(setRealms)\n\t\t\t.catch(e => setRealms({ error: e }));\n\t}, [search, setRealms, page_no]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [refresh]);\n\n\treturn [realms, refresh];\n};\n\nexport const useRealmUpdate = realm => {\n\tconst [updating, setUpdating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst update = data => {\n\t\tsetUpdating(true);\n\t\treturn rest('Realm/' + realm.Realm__, 'PATCH', data)\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('realm_update_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setUpdating(false));\n\t};\n\n\treturn [update, updating];\n};\n\nexport const useRealmUserStats = (id, previousMonth = 6) => {\n\tconst [stats, setStats] = useState(null);\n\tconst refresh = useCallback(data => {\n\t\tif (data) {\n\t\t\tsetStats({ data });\n\t\t\treturn;\n\t\t}\n\n\t\treturn rest('User:stats', 'GET', { Realm__: id, previousMonth: previousMonth })\n\t\t\t.then(setStats)\n\t\t\t.catch(e => setStats({ error: e }));\n\t}, [id, previousMonth, setStats]);\n\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [id, previousMonth, refresh]);\n\n\treturn [stats, refresh];\n};\n","import { useCallback, useEffect, useLayoutEffect, useState } from 'react';\nimport { rest } from '@karpeleslab/klbfw';\n\nconst accessCompare = (have, desired) => {\n\tlet accesses = [];\n\tswitch (desired) {\n\t\tcase 'O' :\n\t\t\taccesses = ['O'];\n\t\t\tbreak;\n\t\tcase 'A' :\n\t\t\taccesses = ['O', 'A'];\n\t\t\tbreak;\n\t\tcase 'W' :\n\t\t\taccesses = ['O', 'A', 'W'];\n\t\t\tbreak;\n\t\tcase 'C' :\n\t\t\taccesses = ['O', 'A', 'W', 'C'];\n\t\t\tbreak;\n\t\tcase 'R' :\n\t\t\taccesses = ['O', 'A', 'W', 'C', 'R'];\n\t\t\tbreak;\n\t\tdefault:\n\t\t\taccesses = [];\n\t\t\tbreak;\n\t}\n\t\n\treturn accesses.map(a => a.toLowerCase()).includes(have.toLowerCase());\n};\n\nexport const useAccess = (object, access) => {\n\tconst [hasAccess, setHasAccess] = useState(null);\n\n\tuseLayoutEffect(() => {\n\t\tif (!object || !object.access) {\n\t\t\tsetHasAccess(false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst accessKeys = Object.keys(object.access);\n\t\tlet available = '?';\n\t\tif (accessKeys.length < 1) {\n\t\t\tsetHasAccess(false);\n\t\t\treturn;\n\t\t} else if (accessKeys.length === 1)\n\t\t\tavailable = object.access[accessKeys[0]].available;\n\t\telse if (object.access.available)\n\t\t\tavailable = object.access.available;\n\n\t\tsetHasAccess(accessCompare(available, access));\n\t}, [object, access, setHasAccess]);\n\n\treturn hasAccess;\n};\n\nexport const useOwner = objectId => {\n\tconst [owner, setOwner] = useState(null);\n\n\tconst refresh = useCallback(() => {\n\n\t\tconst params = {\n\t\t};\n\n\t\trest(`MetaObject/${objectId}`, 'GET', params)\n\t\t\t.then(res => {\n\t\t\t\treturn rest(`User/Group/${res.data.User_Group__}`);\n\t\t\t})\n\t\t\t.then(res => {\n\t\t\t\tsetOwner(res.data.User__);\n\t\t\t})\n\t\t\t.catch(e => setOwner({ error: e }));\n\t}, [setOwner, objectId]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [owner, refresh];\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nimport { useAccess } from '../../../hooks/useAccess';\n\nconst AccessCheck = ({ \n\tobject, \n\taccess, \n\tchildren, \n\tdeniedComponent = null, \n\thideLoading = false, \n\tloadingComponent = null \n}) => {\n\tconst hasRight = useAccess(object, access);\n\tif (hasRight === null)\n\t\treturn hideLoading ? <> : (loadingComponent ? loadingComponent : );\n\tif (hasRight) return children;\n\treturn deniedComponent ? deniedComponent : <>;\n};\n\nAccessCheck.propTypes = {\n\taccess : PropTypes.any, \n\tchildren : PropTypes.node, \n\tdeniedComponent : PropTypes.node,\n\thideLoading : PropTypes.bool, \n\tloadingComponent: PropTypes.node,\n\tobject : PropTypes.object\n};\n\nexport default AccessCheck;","import React \t\t\t\tfrom 'react';\nimport { useTranslation }\tfrom 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport AccessCheck from './../../core/utils/AccessCheck';\nimport Button \t\t\tfrom '@material-ui/core/Button';\nimport Card \t\t\tfrom '@material-ui/core/Card';\nimport CardActionArea \tfrom '@material-ui/core/CardActionArea';\nimport CardActions \t\tfrom '@material-ui/core/CardActions';\nimport CardContent \t\tfrom '@material-ui/core/CardContent';\nimport Grid from '@material-ui/core/Grid';\nimport GroupIcon from '@material-ui/icons/Group';\nimport { Link } \t from 'react-router-dom';\nimport SettingsIcon\t \tfrom '@material-ui/icons/Settings';\nimport Typography \t\tfrom '@material-ui/core/Typography';\n\nconst RealmCard = ({ realm, access = {} }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{realm.Name}\n\t\t\t\t\t\n\t\t\t\t\t{access && access.group && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{access.group.Name}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('users')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nRealmCard.propTypes = {\n\taccess: PropTypes.object,\n\trealm : PropTypes.object\n};\n\nexport default RealmCard;","import React \t\t\tfrom 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport Button \t\tfrom '@material-ui/core/Button';\nimport Grid from '@material-ui/core/Grid';\nimport Loader from './../../layout/Loader/Loader';\nimport RealmCard from './../RealmCard/RealmCard';\n\nconst Template = (realms, loadMore) => {\n\tconst {t} = useTranslation();\n\n\treturn !(realms && realms.data) ? : (\n\t\t\n\t\t\t{realms.data.map((realm) => (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t))}\n\t\t\t{realms.paging.page_no < realms.paging.page_max ?\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t:''}\n\t\t\n\t);\n};\n\nexport default Template;","import { useEffect, useState } from 'react';\nimport { useRealmsProper } from './../../../hooks/useRealm';\n\nimport Template from './RealmList.template';\n\nconst RealmList = ({ filter }) => {\n\tconst [list, setList] = useState({ data: null });\n\tconst [page, setPage] = useState(1);\n\tconst [lastFilter, setLastFilter] = useState(filter);\n\tconst [realms] = useRealmsProper(filter, page);\n\n\tconst loadMore = () => {\n\t\tsetPage(page + 1);\n\t};\n\n\tuseEffect(() => {\n\t\t// append to existing list if needed\n\t\tif (filter === lastFilter && realms && list) {\n\t\t\tsetList({\n\t\t\t\t...realms, \n\t\t\t\tdata: [...list.data, ...realms.data], \n\t\t\t\taccess: [...list.access, ...realms.access]\n\t\t\t});\n\t\t} else { \n\t\t\tsetPage(1);\n\t\t\tsetLastFilter(filter);\n\t\t\tsetList(realms);\n\t\t}\n }, [realms, setList, setLastFilter]); //eslint-disable-line\n\n\treturn Template(list, loadMore); \n};\n\nexport default RealmList;","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport InputBase from '@material-ui/core/InputBase'; \nimport SearchIcon from '@material-ui/icons/Search';\n\nimport './SearchField.scss';\n\nlet timeout = null;\n\nconst SearchField = ({ onChange = () => {} }) => {\n\tconst [field, setField] = useState('');\n\n\tuseEffect(() => {\n\t\tif (timeout) \n\t\t\tclearTimeout(timeout);\n \n\t\ttimeout = setTimeout(() => { \n\t\t\tonChange(field);\n\t\t\ttimeout = null;\n\t\t}, 250);\n }, [field, onChange]); // eslint-disable-line\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t setField(e.target.value) }\n\t\t\t\tvalue={ field }\n\t\t\t/>\n\t\t
\n\t);\n};\n\nSearchField.propTypes = {\n\tonChange: PropTypes.func\n};\n\nexport default SearchField;","import React from 'react';\nimport {Link} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '@material-ui/core/Button';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport Grid from '@material-ui/core/Grid';\nimport GroupIcon from '@material-ui/icons/Group';\nimport Typography from '@material-ui/core/Typography';\n\nconst SiteCard = ({ site, access }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{site.Name}\n\t\t\t\t\t\n\t\t\t\t\t{access && access.group && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{access.group.Name}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('view_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nSiteCard.propTypes = {\n\taccess: PropTypes.object,\n\tsite : PropTypes.object\n};\n\nexport default SiteCard;","import React \t\t\tfrom 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport Grid from '@material-ui/core/Grid';\nimport Loader from '../../layout/Loader/Loader';\nimport SiteCard from '../SiteCard/SiteCard';\nimport Button from '../../core/input/Button';\n\nconst Template = (sites, loadMore) => {\n\tconst {t} = useTranslation();\n\t\n\treturn !(sites && sites.data) ? : (\n\t\t\n\t\t\t{sites.data.map(site => (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t))}\n\t\t\t{sites.paging.page_no < sites.paging.page_max ?\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('load_more')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t: ''}\n\t\t\n\t);\n};\n\nexport default Template;","import {useEffect, useState} from 'react';\nimport {useSites} from '../../../hooks/useSites';\n\nimport Template from './SiteList.template';\n\nconst SiteList = ({ filter }) => {\n\tconst [list, setList] = useState({ data: null });\n\tconst [page, setPage] = useState(1);\n\tconst [lastFilter, setLastFilter] = useState(filter);\n\tconst [sites] = useSites(filter, page);\n\n\tconst loadMore = () => {\n\t\tsetPage(page + 1);\n\t};\n\n\tuseEffect(() => {\n\t\t// append to existing list if needed\n\t\tif (filter === lastFilter && sites && list) {\n\t\t\tsetList({\n\t\t\t\t...sites,\n\t\t\t\taccess: [...list.access, ...sites.access],\n\t\t\t\tdata : [...list.data, ...sites.data]\n\t\t\t});\n\t\t} else {\n\t\t\tsetPage(1);\n\t\t\tsetLastFilter(filter);\n\t\t\tsetList(sites);\n\t\t}\n\t}, [sites, setList, setLastFilter]); //eslint-disable-line\n\n\treturn Template(list, loadMore);\n};\n\nexport default SiteList;","import {rest} from '@karpeleslab/klbfw';\nimport {useCallback, useEffect, useState} from 'react';\nimport {useParams} from 'react-router-dom';\nimport {useSetSnackbar} from './useSnackbar';\nimport {useTranslation} from 'react-i18next';\n\n\nexport const useSiteList = () => {\n\tconst [sites, setSites] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging,\n\t\t};\n\n\t\tsetLoading(true);\n\t\trest('Site', 'GET', params)\n\t\t\t.then(setSites)\n\t\t\t.catch(e => setSites({error: e}))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [sites, fetch, loading];\n};\n\nexport const useSites = (search, page_no = 1) => {\n\tconst [sites, setSites] = useState(null);\n\tconst refresh = useCallback(data => {\n\t\tconst params = {page_no};\n\n\t\tif (search && search.length > 0)\n\t\t\tparams.Name = {'$prefix': search};\n\n\t\tif (data) {\n\t\t\tsetSites({data});\n\t\t\treturn;\n\t\t}\n\n\t\trest('Site', 'GET', params)\n\t\t\t.then(setSites)\n\t\t\t.catch(e => setSites({error: e}));\n\t}, [search, setSites, page_no]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [refresh]);\n\n\treturn [sites, refresh];\n};\n\nexport const useSiteWithParams = () => {\n\tconst {siteId} = useParams();\n\tconst [site, setSite] = useState(null);\n\n\tconst refresh = useCallback(data => {\n\t\tif (data) {\n\t\t\tsetSite({...(site ?? {}), data: data});\n\t\t}\n\n\t\trest(`Site/${siteId}`)\n\t\t\t.then(setSite)\n\t\t\t.catch(e => setSite({error: e}));\n\t}\n\t\t, [site]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [site, refresh];\n};\n\n\nexport const useGetSite = () => {\n\tconst get = useCallback(siteId => {\n\t\treturn rest(`Site/${siteId}`);}\n\t\t, []); //eslint-disable-line\n\n\treturn [get];\n};\n\nexport const useSiteUpdate = site => {\n\tconst [updating, setUpdating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst {t} = useTranslation();\n\n\tconst update = data => {\n\t\tsetUpdating(true);\n\t\treturn rest('Site/' + site.Site__, 'PATCH', data)\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('site_update_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setUpdating(false));\n\t};\n\n\treturn [update, updating];\n};","import React, {useContext, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {Helmet} from 'react-helmet';\n\nimport AddNewItem, { NEW_ITEM_TYPES} from './AddNewItem';\nimport BankList from './../../components/kakari/BankList/BankList';\nimport Box from '@material-ui/core/Box';\nimport CatalogList from './../../components/kakari/CatalogList/CatalogList';\nimport Collapse from '@material-ui/core/Collapse';\nimport ExpandLess from '@material-ui/icons/ExpandLess';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport Grid from '@material-ui/core/Grid';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport RealmList from './../../components/kakari/RealmList/RealmList';\nimport SearchField from './../../components/core/utils/SearchField/SearchField';\nimport SiteList from '../../components/kakari/SiteList/SiteList';\nimport Typography from '@material-ui/core/Typography';\n\nimport {UserContext} from '../../context/UserContext';\n\nconst Template = () => {\n\tconst { t } = useTranslation();\n\tconst [catalogOpen, setCatalogOpen] = useState(true);\n\tconst [realmOpen, setRealmOpen] = useState(true);\n\tconst [siteOpen, setSiteOpen] = useState(true);\n\tconst [bankOpen, setBankOpen] = useState(true);\n\n\tconst [realmFilter, setRealmFilter] = useState('');\n\tconst [catalogFilter, setCatalogFilter] = useState('');\n\tconst [siteFilter, setSiteFilter] = useState('');\n\tconst [bankFilter, setBankFilter] = useState('');\n\tconst [user] = useContext(UserContext);\n\t\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('home')}\n\t\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\tuser && user.user && user.user.data ?\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('welcome_user', {user: user.user.data.Display_Name })}\n\t\t\t\t\t\t\n\t\t\t\t\t\t:\n\t\t\t\t\t\t''\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setRealmOpen(!realmOpen)}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('administrate_realms')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{realmOpen ? : }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t setRealmFilter('')}/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setCatalogOpen(!catalogOpen)}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('administrate_catalogs')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{catalogOpen ? : }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t setCatalogFilter('')}/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setSiteOpen(!siteOpen)}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('administrate_sites')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{siteOpen ? : }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t setSiteFilter('')}/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setBankOpen(!bankOpen)}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('administrate_banks')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{bankOpen ? : }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t setBankFilter('')}/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default Template;","import Template from './Home.template';\n\nexport default function Home () {\n\treturn Template();\n}\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport Grid from '@material-ui/core/Grid';\n\nconst ButtonsBuilder = ({ data, goBack }) => {\n\tconst { t } = useTranslation(); \n\tconst Next = (\n\t\t\n\t\t\t{ t('next_btn') }\n\t\t\n\t);\n\n\tif (data.initial) \n\t\treturn Next;\n\telse {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ Next }\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{ t('back_btn') }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} \n};\n\nexport default ButtonsBuilder;","import styledComponents from 'styled-components';\nimport {styled} from '@material-ui/core/styles';\nimport ReactAvatarEditor from 'react-avatar-editor';\n\n\nconst Div = styledComponents.div``;\nconst Label = styledComponents.label``;\nconst Figure = styledComponents.figure``;\nconst Input = styledComponents.input``;\n\nexport const AvatarEditorRange = styled(Input)(() => ({\n\twidth : '170px',\n\tmargin : '0 auto'\n}));\n\nexport const AvatarEditorImages = styled(Div)(() => ({\n\ttextAlign: 'center'\n}));\n\nexport const AvatarEditorImagesInner = styled(Div)(() => ({\n\ttextAlign : 'center',\n\twidth : '100%',\n\tmaxWidth : '25rem',\n\tmargin : '0 auto'\n}));\n\nexport const AvatarEditor = styled(ReactAvatarEditor)(() => ({\n\twidth : '170px !important',\n\theight : '170px !important',\n\tmargin : '0 auto',\n\tbackground : '#484848'\n}));\n\nexport const AvatarImages = styled(Figure)(() => ({\n\twidth : '100%',\n\tmaxWidth : '25rem',\n\tmargin : '0 auto',\n\t'& > img' : {\n\t\twidth : '170px !important',\n\t\theight : '170px !important',\n\t\tmargin : '0 auto',\n\t\tpadding : '1rem;',\n\t\tboxSizing : 'border-box',\n\t\tbackground : '#484848'\n\t}\n}));\n\nexport const AvatarWrapper = styled(Div)(() => ({\n\tmargin : '0 0 20px',\n\tpadding : '0',\n\ttextAlign : 'center'\n}));\n\n\nexport const AvatarBtnsWrapper = styled(Div)(() => ({\n\tmargin : '10px 0 0',\n\tdisplay : 'flex'\n}));\n\n\nexport const AvatarBtn = styled(Label)(() => ({\n\twidth : '100%',\n\tpadding : '9px 13px',\n\tboxSizing : 'border-box',\n\tdisplay : 'block',\n\tcolor : '#fff',\n\tbackground : '#555',\n\tborder : '1px solid #484848',\n\tborderRadius: '5px',\n\tcursor : 'pointer',\n\t'&:disabled': {\n\t\topacity : .4,\n\t\tcursor : 'not-allowed'\n\t},\n\t'&:hover' : {\n\t\topacity : .4,\n\t\ttransition : 'all .2s ease'\n\t},\n\t'&.upload' : {\n\t\tbackground : '#fff',\n\t\tcolor : '#333',\n\t\t'& > input' : {\n\t\t\tdisplay: 'none'\n\t\t}\n\t},\n\t'&.save' : {\n\t\tbackgroundColor : '#48c774',\n\t\tcolor : '#fff',\n\t\tborder : '1px solid #48c774'\n\t}\n}));\n\nexport const AvatarBtnWrapper = styled(Div)(() =>({\n\twidth : '48%',\n\tmarginRight : '2%',\n\tmarginBottom : '5px',\n\t'&:last-child' : {\n\t\tmarginRight: 0\n\t}\n}));\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n\tAvatarImages,\n\tAvatarEditor as StyledAvatarEditor,\n\tAvatarEditorRange, \n\tAvatarEditorImages, \n\tAvatarEditorImagesInner } from './avatarEditorStyles';\n\nconst AvatarImage = ({ defaultAvatar, editor, handleSetImage, handleScale, state }) => {\n\tconst { t } = useTranslation(); \n\n\tif (state.imgPath !== null) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else {\n\t\treturn (\n\t\t\t\n\t\t\t\t{\n\t\t\t\n\t\t);\n\t}\n};\n\nexport default AvatarImage;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes \t\t\t\t\t\t\t\tfrom 'prop-types';\n\nimport AvatarImage from './AvatarImage'; \nimport defaultAvatar from './../../assets/img/default-avatar.svg';\nimport {\n\tAvatarBtn,\n\tAvatarBtnsWrapper,\n\tAvatarBtnWrapper,\n\tAvatarWrapper } from './avatarEditorStyles';\n\nconst AvatarEditor = ({ field, fieldId, required, setAvatarImage }) => {\n\tconst [state, setState] = useState({\n\t\timgPath : null,\n\t\twidth : 170,\n\t\theight : 170,\n\t\tscale : 1,\n\t\tpreview : { img: null }\n\t});\n\tconst editor = useRef(null);\n\tconst croppieFileInput = useRef(null); \n\tconst { t } = useTranslation();\n\n\tuseEffect(() => {\n\t\tif (editor && editor.current) \n\t\t\thandleSetImage();\n\t\t// eslint-disable-next-line\n }, [editor]);\n\n\tconst handleNewImage = e => setState({ ...state, imgPath: e.target.files[0] });\n\n\tconst handleRemove = () => {\n\t\tsetState({\n\t\t\t...state, \n\t\t\timgPath : null,\n\t\t\tscale : 1\n\t\t});\n\t\tcroppieFileInput.current.value = '';\n\t\tsetAvatarImage(field.name, defaultAvatar, field.param, field.target);\n\t};\n\n\tconst handleScale = e => {\n\t\tsetState({ ...state, scale: parseFloat(e.target.value) });\n\t\thandleSetImage();\n\t};\n\n\tconst handleSetImage = () => {\n\t\teditor.current.getImageScaledToCanvas().toBlob((blob) => {\n\t\t\tblob['name'] = 'avatar.png';\n\t\t\tsetAvatarImage(field.name, blob, field.param, field.target);\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('profile_upload_image')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('profile_delete_image')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nAvatarEditor.propTypes = {\n\tfield : PropTypes.object,\n\tfieldId : PropTypes.string,\n\trequired : PropTypes.bool, \n\tsetAvatarImage: PropTypes.func \n}; \n\nexport default AvatarEditor;","import React from 'react';\nimport AvatarEditor from './AvatarEditor';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport TextField from '@material-ui/core/TextField';\n\nconst FormBuilder = ({ data, onInputChange, setAvatarImage }) => {\n\tif (data.url) {\n\t\twindow.location.href = data.url;\n\t\treturn <>;\n\t}\n\n\tif (!data.fields) \n\t\treturn <>;\n\n\treturn data.fields.filter((field) => field.type !== 'oauth2').map((field, idx) => {\n\t\tconst fieldId = (field.name ?? 0) + idx;\n\t\tswitch (field.type) {\n\t\t\tcase 'text':\n\t\t\tcase 'password':\n\t\t\tcase 'email':\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase 'label':\n\t\t\t\tif (field.link)\n\t\t\t\t\treturn {field.label};\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t{ field.label}\n\t\t\t\t\t

\n\t\t\t\t);\n\t\t\tcase 'checkbox':\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'image':\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn
;\n\t\t}\n\t});\n};\n\nexport default FormBuilder;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styledComponents from 'styled-components';\nimport {styled} from '@material-ui/core/styles';\n\nconst Div = styledComponents.div``;\nexport const OAuth2Wrapper = styled(Div)(style => {\n\treturn {\n\t\tdisplay : 'flex',\n\t\talignItems : 'center',\n\t\tjustifyContent : 'center',\n\t\t'& > *': {\n\t\t\tmargin: style.theme.spacing(4),\n\t\t},\n\t};\n});\nexport const OauthBtn = styled(Div)(style => {\n\treturn {\n\t\tborderRadius : '50%',\n\t\twidth : style.theme.spacing(7),\n\t\theight : style.theme.spacing(7),\n\t\tbackgroundPosition : '50%',\n\t\tbackgroundRepeat : 'no-repeat',\n\t\tbackgroundAttachment: 'scroll',\n\t\tbackgroundSize : '50%',\n\t\toverflow : 'hidden',\n\t\ttextIndent : '-1000px',\n\t\tcursor : 'pointer',\n\t\t'&:hover': {\n\t\t\topacity: 0.4,\n\t\t},\n\t\t'&.twitter': {\n\t\t\tbackgroundSize: '60%',\n\t\t},\n\t\t'&.line': {\n\t\t\tbackgroundSize: '70%',\n\t\t},\n\t\t'&.facebook': {\n\t\t\tbackgroundSize: '30%',\n\t\t}\n\t};\n});\n\nconst OauthBtnsBuilder = ({ data, onOauthClicked }) => {\n\tif (!data || !data.fields)\n\t\treturn <>; \n\n\treturn (\n\t\t\n\t\t\t{\n\t\t\t\tdata.fields.filter((field) => field.type === 'oauth2').map(field => (\n\t\t\t\t\t onOauthClicked(field.id)}\n\t\t\t\t\t\talt={field.info.Name}\n\t\t\t\t\t\tclassName={field.info.Token_Name}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: field.button['background-color'],\n\t\t\t\t\t\t\tbackgroundImage: `url(${field.button['logo']})`\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t\t)\n\t\t\t}\n\t\t\n\t);\n};\n\nOauthBtnsBuilder.propTypes = {\n\tdata : PropTypes.object, \n\tonOauthClicked: PropTypes.func\n}; \n\nexport default OauthBtnsBuilder;","import React, { useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport { rest } from '@karpeleslab/klbfw';\n\nimport { SwitchTransition, CSSTransition } from 'react-transition-group';\nimport Grid from '@material-ui/core/Grid';\nimport Loader from './../layout/Loader/Loader';\n\nimport { useSetSnackbar } from './../../hooks/useSnackbar';\n\nimport ButtonsBuilder from './ButtonsBuilder';\nimport FormBuilder from './FormBuilder';\nimport OauthBtnsBuilder from './OauthBtnsBuilder';\n\nconst Login = ({ onValidated }) => { \n\tconst { t } = useTranslation();\n\tconst [loading, setLoading] = useState(false);\n\tconst [form, setForm] = useState({}); \n\tconst [data, setData] = useState({});\n\tconst [flowData, setFlowData] = useState(null);\n\tconst [session, setSession] = useState(null);\n\tconst setSnackbar = useSetSnackbar();\n\tconst location = useLocation();\n\n\tconst callRest = useCallback(async () => {\n\t\tsetLoading(true);\n\t\tlet currentSession = session;\n\t\tif (!flowData) {\n\t\t\tconst currentQuery = queryString.parse(location.search);\n\t\t\tif (currentQuery.session) \n\t\t\t\tcurrentSession = currentQuery.session;\n\t\t}\n\t\tlet res = await rest('User:flow', 'POST', { session: currentSession, ...data });\n\t\ttry {\n\t\t\tif (res.data && res.data.complete) {\n\t\t\t\tonValidated(res.data);\n\t\t\t\treturn flowData;\n\t\t\t} else \n\t\t\t\tsetLoading(false);\n\t\t} catch (err) {\n\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\tsetLoading(false);\n\t\t}\n\n\t\treturn res;\n }, [data, flowData, session]); // eslint-disable-line\n\n\t// useEffect(() => { callRest().then(setFlowData) }, [flowData]); // eslint-disable-line\n useEffect(() => { callRest().then(setFlowData) }, [data]); // eslint-disable-line\n\tuseEffect(() => {\n\t\tsetLoading(false);\n\t\tif (flowData)\n\t\t\tsetSession(flowData.data.session);\n\t\t// eslint-disable-next-line\n }, [flowData]);\n\n\tconst goBack = () => {\n\t\tsetData({});\n\t\tsetSession({});\n\t};\n\n\tconst handleSubmit = e => {\n\t\te.preventDefault();\n\t\tsetLoading(true);\n\t\tsetData(form);\n\t};\n\n\tconst onInputChange = e => {\n\t\tsetForm({\n\t\t\t...form, \n\t\t\t[e.target.getAttribute('name')]: \n e.target.getAttribute('type') === 'checkbox' ? e.target.checked : e.target.value\n\t\t});\n\t};\n\n\tconst onOauthClicked = id => setData({ ...form, oauth2: id });\n\n\tconst setAvatarImage = (fieldName, file, param, target) => {\n\t\tsetForm({\n\t\t\t...form,\n\t\t\tfiles: {\n\t\t\t\t[fieldName]: {\n\t\t\t\t\ttarget,\n\t\t\t\t\tparam,\n\t\t\t\t\tfile\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}; \n\n\treturn (\n\t\t\n\t\t\t node.addEventListener('transitionend', done, false) }\n\t\t\t\tclassNames=\"u-transition--lateral\"\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\tflowData && !loading ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

{ flowData.data.message }

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t) : (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\n\t\t
\n\t);\n}; \n\nLogin.propTypes = {\n\tonValidated: PropTypes.func\n}; \n\nexport default Login;\n","import React, { useContext } from 'react';\nimport { Redirect, useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { getPrefix } from '@karpeleslab/klbfw';\nimport { UserContext } from './../../context/UserContext';\n\nimport { Helmet } from 'react-helmet';\nimport Login from './../../components/Login/Login';\n\n\nconst LoginPage = () => {\n\tconst [user, setUser] = useContext(UserContext);\n\tconst history = useHistory();\n\tconst {t} = useTranslation();\n\n\tconst onValidated = (data) => {\n\t\tsetUser({\n\t\t\tloggedIn: true,\n\t\t\tuser : data.user\n\t\t});\n\t\thistory.push(data.Redirect.replace(getPrefix(), ''));\n\t};\n \n\tif (user.loggedIn)\n\t\treturn ;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */ }\n\t\t\t\t{t('login')}\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default LoginPage;","import React from 'react';\nimport PageContainer from '../Container/PageContainer';\nimport Loader from './Loader';\n\nconst PageLoader = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default PageLoader;","import React from 'react';\nimport { Route } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nconst SetStatus = ({ statusCode, children }) => {\n\treturn (\n\t\t {\n\t\t\t\tif (staticContext) \n\t\t\t\t\tstaticContext.statusCode = statusCode;\n\t\t\t\treturn children;\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nSetStatus.propTypes = {\n\tchildren : PropTypes.node,\n\tstatusCode: PropTypes.number\n};\n\nexport default SetStatus;\n","import React from 'react'; \nimport { useTranslation } from 'react-i18next';\n\nimport SetStatus from './../SetStatus/SetStatus';\n\nexport default function NotFound () {\n\tconst { t } = useTranslation();\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t

{ t('error_content_not_found_title') }

\n\t\t\t\t

{ t('error_content_not_found_description') }

\n\t\t\t
\n\t\t
\n\t);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../core/input/Button';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport {Link} from 'react-router-dom';\nimport Typography from '@material-ui/core/Typography';\n\nconst SectionCard = ({ title, link, linkName, description, image, onClick }) => {\n\treturn (\n\t\t\n\t\t\t{image && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{title}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{description}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ !link && onClick ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nSectionCard.propTypes = {\n\ttitle\t\t: PropTypes.string,\n\tlink\t\t: PropTypes.string,\n\tlinkName\t: PropTypes.string,\n\tdescription\t: PropTypes.string,\n\timage\t\t: PropTypes.string,\n\tonClick\t\t: PropTypes.func\n};\n\nexport default SectionCard;","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useRealmWithParams } from '../../hooks/useRealm';\n\nimport AccessCheck from '../../components/core/utils/AccessCheck';\nimport { Grid } from '@material-ui/core';\nimport { Helmet } from 'react-helmet';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport SectionCard from '../../components/layout/SectionCard/SectionCard';\nimport {isPXLRealm, isShellRealm} from '../../utils/realm';\n\nconst Realm = () => {\n\tconst { t } = useTranslation();\n\tconst [realm] = useRealmWithParams();\n\n\tif (!realm) return ;\n\tif (!realm.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('realm_title', { name: realm.data.Name })}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('realm_title', { name: realm.data.Name })}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{isShellRealm(realm.data.Realm__) &&\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\t{isPXLRealm(realm.data.Realm__) &&\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Realm;\n","import {useCallback, useEffect, useState} from 'react';\nimport {useParams} from 'react-router-dom';\nimport {rest} from '@karpeleslab/klbfw';\nimport {useSetSnackbar} from \"./useSnackbar\";\nimport {useTranslation} from \"react-i18next\";\n\n\nexport const USERS_IMAGE_VARIATION = 'strip&scale_crop=150x150&format=jpeg';\nexport const USER_IMAGE_VARIATION = 'strip&scale_crop=400x400&format=jpeg';\n\nexport const useUsers = realmId => {\n\tconst [users, setUsers] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging,\n\t\t\t'Realm__': realmId,\n\t\t\timage_variation: [USERS_IMAGE_VARIATION]\n\t\t};\n\n\t\tsetLoading(true);\n\t\trest('User:adminSearch', 'POST', params)\n\t\t\t.then(setUsers)\n\t\t\t.catch(e => setUsers({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [users, fetch, loading];\n};\n\nexport const useRealmUsers = () => {\n\tconst { realmId } = useParams();\n\treturn useUsers(realmId);\n};\n\nexport const useIndividualUser = () => {\n\tconst { userId } = useParams();\n\tconst [user, setUser] = useState(null);\n\n\tconst refresh = useCallback(() => {\n\n\t\tconst params = {\n\t\t\timage_variation: [USER_IMAGE_VARIATION],\n\t\t\t_expand: '/Realm_Segment'\n\t\t};\n\n\t\trest(`User/${userId}`, 'GET', params)\n\t\t\t.then(setUser)\n\t\t\t.catch(e => setUser({ error: e }));\n\t}, [setUser, userId]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line \n\n\treturn [user, refresh];\n};\n\n\nexport const useUserChangeStatus = userId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = params => { // params = { Action: 'pending' }\n\t\tsetLoading(true);\n\t\treturn rest(`User/${userId}:adminSetStatus`, 'POST', params)\n\t\t\t.then(res => res)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res =>{\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\n\nexport const useUserChangeSegment = userId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst doIt = params => { // params = { Action: 'pending' }\n\t\tsetLoading(true);\n\t\treturn rest(`User/${userId}:adminAssignSegment`, 'POST', params)\n\t\t\t.then(res => {\n\t\t\t\tsetSnackbar(t('user_segment_update_success'), 'success');\n\t\t\t\treturn res\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res =>{\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n","import { useState } from 'react';\nimport { rest } from '@karpeleslab/klbfw';\nimport { useTranslation } from 'react-i18next';\n\nimport {useSetSnackbar} from './useSnackbar';\n\nexport const useAffiliates = realmId => {\n\tconst [affiliates, setAffiliates] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters, // example: { Type: { '$not': '$standard' }}\n\t\t\t...paging,\n\t\t\t'Realm__': realmId,\n\t\t};\n\n\t\tsetLoading(true);\n\t\trest('Affiliate', 'GET', params)\n\t\t\t.then(setAffiliates)\n\t\t\t.catch(e => setAffiliates({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [affiliates, fetch, loading];\n};\n\nexport const useChangeAffiliateCode = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = (Affiliate__, params) => { // params = { code, _admin_as }\n\t\tsetLoading(true);\n\n\t\treturn rest(`Affiliate/${Affiliate__}:adminChangeCode`, 'POST', params)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useSetAffiliateType = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = (Affiliate__, params) => { // params = { type, _admin_as }\n\t\tsetLoading(true);\n\n\t\treturn rest(`Affiliate/${Affiliate__}:adminSetType`, 'POST', params)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n}; \n\n// this is actually static, but may be used in several places and might evolve later\nexport const useAffiliateTypes = () => {\n\tconst { t } = useTranslation(); \n\n\treturn [[{\n\t\tcode: 'standard',\n\t\tlabel: t('affiliate_lvl_standard')\n\t}, {\n\t\tcode: 'shells15',\n\t\tlabel: t('affiliate_lvl_1')\n\t}, {\n\t\tcode: 'shells20',\n\t\tlabel: t('affiliate_lvl_2')\n\t}, {\n\t\tcode: 'shells25',\n\t\tlabel: t('affiliate_lvl_3')\n\t}, {\n\t\tcode: 'shells30',\n\t\tlabel: t('affiliate_lvl_4')\n\t}\n\t]];\n};\n\n// same as above\nexport const useTransferTypes = () => {\n\tconst { t } = useTranslation(); \n\n\treturn [[{\n\t\tcode: 'us',\n\t\tlabel: t('us_bank_account')\n\t}, {\n\t\tcode: 'intl',\n\t\tlabel: t('international_bank_account')\n\t}, {\n\t\tcode: 'paypal',\n\t\tlabel: t('paypal_bank_account')\n\t}\n\t]];\n};\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport AccessCheck from './../../core/utils/AccessCheck';\nimport Box from '@material-ui/core/Box';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport CreateIcon from '@material-ui/icons/Create';\nimport { green } from '@material-ui/core/colors';\nimport Grid from '@material-ui/core/Grid';\nimport IconButton from '@material-ui/core/IconButton';\nimport Paper from '@material-ui/core/Paper';\nimport { Skeleton } from '@material-ui/lab';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useChangeAffiliateCode } from './../../../hooks/useAffiliates';\nimport { useSetSnackbar }\t from './../../../hooks/useSnackbar';\n\nconst AffiliateCode = ({ affiliate, flat }) => {\n\tconst {t} = useTranslation();\n\tconst [edit, setEdit] = useState(false);\n\tconst [displayCode, setDisplayCode] = useState('');\n\tconst [updateCode, loading] = useChangeAffiliateCode();\n\tconst setSnackbar = useSetSnackbar();\n \n\tuseEffect(() => {\n\t\tif (!affiliate)\n\t\t\treturn;\n\n\t\tsetDisplayCode(affiliate.data && affiliate.data.length > 0 ? affiliate.data[0].Code : '');\n\t}, [affiliate]);\n\n\tconst onCancelUpdate = () => {\n\t\tsetDisplayCode(affiliate && affiliate.data && affiliate.data.length > 0 ? affiliate.data[0].Code : '');\n\t\tsetEdit(false);\n\t}; \n\n\tconst onUpdateConfirm = () => {\n\t\tsetEdit(false); \n\t\tupdateCode(affiliate.data[0].Affiliate__, { \n\t\t\tcode: displayCode,\n\t\t\t'_admin_as': affiliate.data[0].User__\n\t\t}).then(({ data, result }) => {\n\t\t\tif (!data || result !== 'success') {\n\t\t\t\tsetDisplayCode(affiliate && affiliate.data && affiliate.data.length > 0 ? affiliate.data[0].Code : '');\n\t\t\t\tsetSnackbar(t('error_cant_update_affiliate_code'), 'error');\n\t\t\t}\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('affiliate_code')}: \n\t\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tloading ? \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t: (\n\t\t\t\t\t\t\t\taffiliate && affiliate.data && affiliate.data.length > 0 ?\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{edit ? \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t setDisplayCode(e.target.value)}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{displayCode}\n\t\t\t\t\t\t\t\t\t\t\t\t\n  \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t setEdit(true)}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nAffiliateCode.propTypes = {\n\taffiliate: PropTypes.object,\n\tflat : PropTypes.bool\n}; \n\nexport default AffiliateCode;","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport AccessCheck from './../../core/utils/AccessCheck';\nimport Box from '@material-ui/core/Box';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport CreateIcon from '@material-ui/icons/Create';\nimport FormControl from '@material-ui/core/FormControl';\nimport { green } from '@material-ui/core/colors';\nimport Grid from '@material-ui/core/Grid';\nimport IconButton from '@material-ui/core/IconButton';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Paper from '@material-ui/core/Paper';\nimport Select from '@material-ui/core/Select';\nimport { Skeleton } from '@material-ui/lab';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useSetSnackbar } from './../../../hooks/useSnackbar';\nimport { useAffiliateTypes, useSetAffiliateType } from './../../../hooks/useAffiliates';\n\nconst AffiliateType = ({ affiliate, flat }) => {\n\tconst {t} = useTranslation();\n\tconst [edit, setEdit] = useState(false);\n\tconst [displayType, setDisplayType] = useState('');\n\tconst [tmpType, setTmpType] = useState();\n\tconst setSnackbar = useSetSnackbar();\n\tconst [affiliateLevels] = useAffiliateTypes();\n\tconst [updateType, loading] = useSetAffiliateType();\n\n\tuseEffect(() => {\n\t\tif (!affiliate || !affiliate.data || affiliate.data.length < 1)\n\t\t\treturn; \n\n\t\tconst affiliateLevel = affiliateLevels.find(l => l.code === affiliate.data[0].Type);\n\t\tsetDisplayType(affiliateLevel ? affiliateLevel.label : affiliate.data[0].Type);\n\t\tsetTmpType(affiliate.data[0].Type);\n }, [affiliate]); // eslint-disable-line\n\n\tconst onTypeUpdate = evt => {\n\t\tconst affiliateLevel = affiliateLevels.find(l => l.code === evt.target.value);\n\t\tsetTmpType(evt.target.value);\n\t\tsetDisplayType(affiliateLevel ? affiliateLevel.label : evt.target.value);\n\t};\n\n\tconst onCancelUpdate = () => {\n\t\tconst affiliateLevel = affiliateLevels.find(l => l.code === affiliate.data[0].Type);\n\t\tsetTmpType(affiliate.data[0].Type);\n\t\tsetDisplayType(affiliateLevel ? affiliateLevel.label : affiliate.data[0].Type);\n\t\tsetEdit(false);\n\t}; \n\n\tconst onUpdateConfirm = () => {\n\t\tsetEdit(false); \n\t\tupdateType(affiliate.data[0].Affiliate__, { \n\t\t\ttype: tmpType,\n\t\t\t'_admin_as': affiliate.data[0].User__\n\t\t}).then(({ data }) => {\n\t\t\tif (data) {\n\t\t\t\tconst affiliateLevel = affiliateLevels.find(l => l.code === data.Type);\n\t\t\t\tsetDisplayType(affiliateLevel ? affiliateLevel.label : data.Type);\n\t\t\t} else \n\t\t\t\tsetSnackbar(t('error_cant_update_affiliate_type'), 'error');\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('affiliate_type')}: \n\t\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tloading ? \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t: (\n\t\t\t\t\t\t\t\taffiliate && affiliate.data && affiliate.data.length > 0 ?\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tedit ? <>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{affiliateLevels.map(l => ({l.label}))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t : \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{displayType}\n\t\t\t\t\t\t\t\t\t\t\t\t\n  \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t setEdit(true)}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nAffiliateType.propTypes = {\n\taffiliate: PropTypes.object,\n\tflat : PropTypes.bool\n}; \n\nexport default AffiliateType;","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport SetStatus from './../SetStatus/SetStatus';\n\nexport default function Forbidden() {\n\tconst { t } = useTranslation();\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t

{t('error_forbidden_title')}

\n\t\t\t\t

{t('error_forbidden_description')}

\n\t\t\t
\n\t\t
\n\t);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Box from '@material-ui/core/Box';\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\nimport {Skeleton} from '@material-ui/lab';\nimport Typography from '@material-ui/core/Typography';\n\nconst InfoBox = ({ flat, affiliate, dataKey, label }) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{label}: \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\taffiliate && affiliate.data && affiliate.data.length > 0 ?\n\t\t\t\t\t\t\t\t\taffiliate.data[0][dataKey]\n\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nInfoBox.propTypes = {\n\taffiliate: PropTypes.object,\n\tdataKey : PropTypes.string,\n\tflat : PropTypes.bool, \n\tlabel : PropTypes.string\n}; \n\nexport default InfoBox;","import { useParams } from 'react-router-dom';\nimport { rest } from '@karpeleslab/klbfw';\nimport { useState } from 'react';\nimport { useSetSnackbar } from './useSnackbar';\n\nexport const ORDER_STATS_PRODUCT_IMAGE_VARIATION = 'strip&scale_crop=75x75&background_color=white&format=jpeg';\n\nexport const useRealmOrders = () => {\n\tconst { realmId } = useParams();\n\tconst [orders, setOrders] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t'Realm__': realmId,\n\t\t\t...paging\n\t\t};\n\n\t\tsetLoading(true);\n\t\treturn rest('Order:adminSearch', 'POST', params)\n\t\t\t.then(setOrders)\n\t\t\t.catch(e => setOrders({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [orders, fetch, loading];\n};\n\nexport const useRealmOrdersStats = (children = false) => {\n\tconst { realmId } = useParams();\n\tconst [salesStats, setSalesStats] = useState([]);\n\tconst [productStats, setProductStats] = useState([]);\n\tconst [itemsStats, setItemStats] = useState([]);\n\tconst [paging, setPaging] = useState(null);\n\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (currency, period, paging, filters = {\n\t\tOrder_Status: 'completed',\n\t\timage_variation: ORDER_STATS_PRODUCT_IMAGE_VARIATION\n\t}) => {\n\t\tsetLoading(true);\n\t\tconst params = {\n\t\t\tRealm__: realmId,\n\t\t\tperiod: period,\n\t\t\tchildren: children,\n\t\t\t...filters,\n\t\t\t...paging,\n\t\t};\n\n\t\tif (currency && currency !== 'all') {\n\t\t\tparams.Order_Currency__ = currency;\n\t\t}\n\n\t\treturn rest('Order:stats2', 'POST', params)\n\t\t\t.then(d => {\n\t\t\t\tsetSalesStats(d.data.aggregations.Order_Items.buckets);\n\t\t\t\tsetProductStats(d.data.aggregations.Catalog_Product.buckets);\n\t\t\t\tsetItemStats(d.data.data);\n\t\t\t\tsetPaging(d.paging);\n\n\t\t\t\treturn d.data;\n\t\t\t}).finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\treturn [salesStats, productStats, { data: itemsStats, paging: paging }, fetch, loading];\n};\n\nexport const useOrdersExport = (catalogId) => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = (year, month) => { // can be null\n\t\tsetLoading(true);\n\n\t\treturn rest('Order/Item/Report:report', 'POST', {\n\t\t\tCatalog__: catalogId,\n\t\t\tyear: year,\n\t\t\tmonth: month\n\t\t})\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n","import TableSortLabel from '@material-ui/core/TableSortLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nexport default function SortableCell({ sort, field, label, onClick }) {\n\tlet direction = 'asc';\n\tlet sortHandlerDir = 'asc';\n\n\tif (sort && field in sort) {\n\t\tdirection = sort[field].toLowerCase();\n\t\tif (direction === 'asc') sortHandlerDir = 'DESC';\n\t\telse if (direction === 'desc') sortHandlerDir = 'ASC';\n\t}\n\n\treturn (\n\t\t {\n\t\t\t\tonClick(field, sortHandlerDir);\n\t\t\t}}\n\t\t\tactive={sort && field in sort}\n\t\t\tdirection={direction}\n\t\t>\n\t\t\t{label}\n\t\t\n\t);\n}\n\nSortableCell.propTypes = {\n\tsort : PropTypes.object,\n\tfield : PropTypes.string.isRequired,\n\tlabel : PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\tonClick: PropTypes.func.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = makeStyles(() => ({\n\ttitle: {\n\t\tflex: '1 1 100%',\n\t},\n}));\nconst Title = ({ children }) => {\n\tconst classes = styles();\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nTitle.propTypes = {\n\tchildren: PropTypes.node\n}; \n\nexport default Title;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Grid from '@material-ui/core/Grid';\nimport Title from './Title';\nimport { Toolbar as MUToolbar } from '@material-ui/core';\n\n\nconst Toolbar = ({ title, children, disableGutters = false, startAdornment = null, endAdornment = null, TitleComponent = Title, toolbarProps = {} }) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{startAdornment && {startAdornment}}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{endAdornment && {endAdornment}}\n\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{children && {children}}\n\t\t\t\n\t\t\n\t);\n};\n\nToolbar.propTypes = {\n\tchildren: PropTypes.node,\n\tdisableGutters: PropTypes.bool,\n\tendAdornment: PropTypes.node,\n\ttitle: PropTypes.string,\n\tstartAdornment: PropTypes.node,\n\tTitleComponent: PropTypes.any,\n\ttoolbarProps: PropTypes.object\n};\n\nexport default Toolbar;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Box from '@material-ui/core/Box';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport ClearIcon from '@material-ui/icons/Clear';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport Grid from '@material-ui/core/Grid';\nimport { IconButton } from '@material-ui/core';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport SearchIcon from '@material-ui/icons/Search';\nimport TextField from '@material-ui/core/TextField';\nimport Toolbar from '../../typography/Toolbar';\nimport PropTypes from 'prop-types';\nimport Button from '../../input/Button';\n\nconst TableToolbar = (\n\t{\n\t\ttitle,\n\t\tloading,\n\t\tsearch,\n\t\tsearchKey,\n\t\tfilters,\n\t\tchangeFiltersAndPaging,\n\t\tsearchCriteria = [], // [{ field: string, value: ''|[value1, value2, ...] }]\n\t\textra = [], //Array of extra element that will be append at the right of the search icon (used to add button etc)\n\t\ttoolbarProps = {}\n\t}\n) => {\n\tconst { t } = useTranslation();\n\tconst [showSearch, setShowSearch] = useState(false);\n\tconst [searchText, setSearchText] = useState('');\n\tconst [showCriteria, setShowCriteria] = useState(false);\n\tconst [currentCriterias, setCurrentCriterias] = useState([]);\n\n\tuseEffect(() => {\n\t\tif (searchKey in filters) {\n\t\t\tsetShowSearch(true);\n\n\t\t\tif (searchText !== filters[searchKey])\n\t\t\t\tsetSearchText(filters[searchKey]['$prefix']);\n\t\t}\n\t\t// eslint-disable-next-line\n\t}, [filters]);\n\n\tconst handleAdvancedSearch = () => {\n\t\tconst params = {};\n\t\tcurrentCriterias.forEach(c => {\n\t\t\tif (c.value.length > 0)\n\t\t\t\tparams[c.field] = c.value;\n\t\t});\n\t\tchangeFiltersAndPaging(params, { page_no: 1 });\n\t};\n\n\tconst handleSearch = () => {\n\t\tchangeFiltersAndPaging({ [searchKey]: { '$prefix': searchText } }, { page_no: 1 });\n\t};\n\n\tconst handleClear = () => {\n\t\tsetSearchText('');\n\t\tsetShowSearch(false);\n\t\tchangeFiltersAndPaging({}, { page_no: 1 });\n\t};\n\n\tconst handleSearchKeyPress = e => {\n\t\tif (e.key !== 'Enter') return;\n\t\thandleSearch();\n\t};\n\n\tconst handleSearchKeyUp = e => {\n\t\tif (e.key !== 'Escape') return;\n\t\tsetShowSearch(false);\n\t\thandleClear();\n\t};\n\n\tconst newCriteria = (e) => {\n\t\tsetCurrentCriterias([...currentCriterias, {\n\t\t\tfield: e.target.value,\n\t\t\tvalue: ''\n\t\t}]);\n\t};\n\n\tconst unsetCriteria = field => {\n\t\tconst idx = currentCriterias.findIndex(c => c.field === field);\n\t\tif (idx < 0)\n\t\t\treturn;\n\n\t\tconst tmp = [...currentCriterias];\n\t\ttmp.splice(idx, 1);\n\t\tsetCurrentCriterias(tmp);\n\t};\n\n\tconst updateCriteria = (field, value) => {\n\t\tconst idx = currentCriterias.findIndex(c => c.field === field);\n\t\tif (idx < 0)\n\t\t\treturn;\n\n\t\tconst tmp = [...currentCriterias];\n\t\ttmp[idx] = { field, value };\n\t\tsetCurrentCriterias(tmp);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t setSearchText(e.target.value)}\n\t\t\t\t\t\tonKeyPress={handleSearchKeyPress}\n\t\t\t\t\t\tonKeyUp={handleSearchKeyUp}\n\t\t\t\t\t\tInputProps={\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tendAdornment: (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tstartAdornment: (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t handleSearch()} size='small'>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t/> :\n\t\t\t\t\ttitle}\n\t\t\t\tendAdornment={\n\t\t\t\t\tloading ?\n\t\t\t\t\t\t :\n\t\t\t\t\t\tnull\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t{/* remove 'false' in the following condition to display the advanced search */}\n\t\t\t\t\t{searchCriteria.length > 0 && false &&\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t{search &&\n\t\t\t\t\t\n\t\t\t\t\t\t setShowSearch(!showSearch)}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\t{extra && extra.map((e, idx) => {e})}\n\t\t\t\t\n\n\t\t\t\n\t\t\t{showCriteria &&\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{searchCriteria.filter(option => currentCriterias.findIndex(c => c.field === option.field) < 0).length > 0 &&\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{searchCriteria.filter(option => currentCriterias.findIndex(c => c.field === option.field) < 0).map(option => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(`label_criteria_${option.field.replace('.', '_')}`)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrentCriterias.map(c => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t updateCriteria(c.field, e.target.value)}\n\t\t\t\t\t\t\t\t\tvalue={c.value}\n\t\t\t\t\t\t\t\t\tvariant='outlined'\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\t\tendAdornment:\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t unsetCriteria(c.field)}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrentCriterias.length > 0 &&\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t c.value.length > 0).length <= 0}\n\t\t\t\t\t\t\t\tonClick={handleAdvancedSearch}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('search')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\t}\n\t\t\n\t);\n};\n\nexport default TableToolbar;\n\nTableToolbar.propTypes = {\n\tchangeFiltersAndPaging: PropTypes.func.isRequired,\n\textra: PropTypes.array,\n\tfilters: PropTypes.object.isRequired,\n\tloading: PropTypes.bool,\n\tsearch: PropTypes.bool,\n\tsearchCriteria: PropTypes.array,\n\tsearchKey: PropTypes.string,\n\ttitle: PropTypes.string,\n\ttoolbarProps: PropTypes.object\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableCell from '@material-ui/core/TableCell';\nimport SortableCell from './SortableCell';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableFooter from '@material-ui/core/TableFooter';\nimport { Table as MUITable } from '@material-ui/core';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport TablePaginationActions from '@material-ui/core/TablePagination/TablePaginationActions';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport { Skeleton } from '@material-ui/lab';\nimport queryString from 'query-string';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport Paper from '@material-ui/core/Paper';\nimport Grid from '@material-ui/core/Grid';\nimport TableToolbar from './TableToolbar';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles(theme => ({\n\tcTable: {\n\t\t'& a:not([role=\"button\"])': {\n\t\t\tcolor: `${theme.palette.text.primary} !important`\n\t\t}\n\t},\n\tselected: {\n\t\tbackgroundColor: '#00000052',\n\t},\n\thover: {\n\t\t\"&:hover\" : {\n\t\t\tcursor: \"pointer\",\n\t\t\tbackgroundColor: '#00000052',\n\t\t}\n\t},\n}));\n\nconst Table = ({ title, data, loading = false, fetch, children, search = true, adminSearch = true, searchKey, initialFilters = {}, paperProps = {}, searchCriteria = [], extra = [], emptyState = null, emptyText = null, RowComponent = TableRow, rowProps = {}, toolbarProps = {}, onSelect = ()=>{}, selectedIdx = undefined, ...etc }) => {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst { t } = useTranslation();\n\tconst classes = useStyles();\n\n\tconst [paging, setPaging] = useState({});\n\tconst [filters, setFilters] = useState(initialFilters);\n\tconst [hasFilters, setHasFilters] = useState(false);\n\n\tconst displayData = () => {\n\t\tconst list = loading ?\n\t\t\t[...Array(paging.results_per_page ?? 10).keys()] :\n\t\t\t(data ? data.data ?? [] : []);\n\n\t\tif (list.length < 1) { // empty\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{emptyText ?? t('table_empty_text')}\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\treturn list.map((d, rowIdx) =>\n\t\t\t onSelect ? onSelect(rowIdx, d) : true}\n\n\t\t\t>\n\t\t\t\t{(Array.isArray(children) ? children : [children]).map(\n\t\t\t\t\t(child, cellIdx) => {\n\t\t\t\t\t\tif (!child)\n\t\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t\tconst { name, label, sortable, children, ...cellProps } = child.props;\n\n\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t{loading && }\n\t\t\t\t\t\t\t{!loading && (children ?\n\t\t\t\t\t\t\t\tchildren(d, rowIdx, cellIdx) :\n\t\t\t\t\t\t\t\td[name])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t;\n\t\t\t\t\t}\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t};\n\n\tconst changePageHandler = (e, newPage) => {\n\t\t// The pagination component start at 0;...\n\t\tif (loading) return;\n\t\thandleFiltersAndPagingChange(null, { ...paging, page_no: parseInt(newPage) + 1 });\n\t};\n\n\tconst changeResultPerPageHandler = e => {\n\t\tif (loading) return;\n\t\thandleFiltersAndPagingChange(null, { ...paging, results_per_page: e.target.value });\n\t};\n\n\tconst changeFiltersHandler = filters => {\n\t\tif (loading) return;\n\t\tconst currentParams = queryString.parse(location.search);\n\t\tconst params = {};\n\t\t// We remove all existing filters\n\t\tObject.keys(currentParams ?? {}).forEach(pK => {\n\t\t\tif (pK.startsWith('f-')) return;\n\t\t\ttry {\n\t\t\t\tparams[pK] = JSON.parse(currentParams[pK]);\n\t\t\t} catch (e) {\n\t\t\t\tparams[pK] = currentParams[pK];\n\t\t\t}\n\t\t});\n\n\t\tObject.keys(filters ?? {}).forEach(key => {\n\t\t\tif (key === searchKey && '$prefix' in filters[key])\n\t\t\t\tparams[`f-${key}`] = filters[key]['$prefix'];\n\t\t\telse\n\t\t\t\tparams[`f-${key}`] = typeof filters[key] === 'object' ? JSON.stringify(filters[key]) : filters[key];\n\t\t});\n\n\t\thistory.push(location.pathname + '?' + queryString.stringify(params));\n\t};\n\n\n\tconst handleFiltersAndPagingChange = (filters, paging) => {\n\t\tif (loading) return;\n\n\t\tlet params = queryString.parse(location.search);\n\n\t\tif (filters !== null) { // We have some filter changes\n\t\t\t// We remove all existing filters\n\t\t\tObject.keys({ ...(params ?? {}) }).forEach(pK => {\n\t\t\t\tif (!pK.startsWith('f-')) return;\n\t\t\t\tdelete params[pK];\n\t\t\t});\n\n\t\t\t// We add the new filters\n\t\t\tObject.keys(filters ?? {}).forEach(key => {\n\t\t\t\tif (key === searchKey && '$prefix' in filters[key])\n\t\t\t\t\tparams[`f-${key}`] = filters[key]['$prefix'];\n\t\t\t\telse\n\t\t\t\t\tparams[`f-${key}`] = filters[key];\n\t\t\t});\n\t\t}\n\n\t\tif (paging !== null) {\n\t\t\tparams = { ...params, ...paging }; // we replace the paging information\n\t\t}\n\n\t\thistory.push(location.pathname + '?' + queryString.stringify(params));\n\t};\n\n\tconst sortHandler = (property, dir) => {\n\t\tlet p = { ...filters };\n\t\t// only 1 sort\n\t\tp.sort = {};\n\t\tp.sort[property] = dir;\n\t\tsetFilters(p);\n\t};\n\n\tconst pagingChangeHandler = params => {\n\t\tconst pNo = 'page_no' in params ? parseInt(params.page_no) : 1;\n\t\tconst perPage = 'results_per_page' in params ? parseInt(params.results_per_page) : 10;\n\t\tlet newPaging = null;\n\t\tif (paging.page_no !== pNo)\n\t\t\tnewPaging = { ...(newPaging ?? {}), page_no: pNo };\n\t\tif (paging.results_per_page !== perPage)\n\t\t\tnewPaging = { ...(newPaging ?? {}), results_per_page: perPage };\n\n\t\tif (newPaging) {\n\t\t\tsetPaging({ ...paging, ...newPaging });\n\t\t}\n\t};\n\n\tconst filtersChangeHandler = params => {\n\t\t// We need to compare the filters set in the url and the one we have.\n\t\t// We keep the sort filters, and the initial filters\n\t\t// We refresh only if a change occurred\n\t\tconst filtersInUrl = {};\n\t\tlet refreshNeeded = false;\n\n\t\t// We extract the filters in the url, all the table filter will begin by f-\n\t\t// We also use this to detect if an existing filter as changed\n\t\t// With this we can detect if filters has been added to the url, or changed\n\t\tObject.keys(params).forEach(k => {\n\t\t\tif (!k.startsWith('f-')) return;\n\t\t\tconst cleaned = k.replace('f-', '');\n\t\t\ttry {\n\t\t\t\tif (!adminSearch)\n\t\t\t\t\tfiltersInUrl[cleaned] = cleaned === searchKey ? { '$prefix': params[k] } : JSON.parse(params[k]);\n\t\t\t\telse \n\t\t\t\t\tfiltersInUrl[cleaned] = JSON.parse(params[k]);\n\t\t\t} catch (e) {\n\t\t\t\tif (!adminSearch)\n\t\t\t\t\tfiltersInUrl[cleaned] = cleaned === searchKey ? { '$prefix': params[k] } : params[k];\n\t\t\t\telse \n\t\t\t\t\tfiltersInUrl[cleaned] = params[k];\n\t\t\t}\n\t\t\t// Detect changes\n\t\t\tif (!(k in filters)) {\n\t\t\t\trefreshNeeded = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (cleaned === searchKey && filters[k]['$prefix'] !== params[k]['$prefix'])\n\t\t\t\trefreshNeeded = true;\n\t\t\telse if (cleaned !== searchKey && filters[k] !== params[k]) refreshNeeded = true;\n\t\t});\n\n\t\t//We need now to detect a filters has been removed from the url\n\t\tObject.keys(filters).forEach(k => {\n\t\t\tif (k in initialFilters) return; // this is an initial filters we don't touch it\n\t\t\tif (k === 'sort') return; // We don't handle sort filter here\n\n\t\t\t// There is a filter in the filters list but not in the url,\n\t\t\t// this means a filter has been deleted, we need to update the filter list\n\t\t\tif (!(k in filtersInUrl)) refreshNeeded = true;\n\t\t});\n\n\t\tif (refreshNeeded)\n\t\t\tsetFilters({ ...initialFilters, ...(filters.sort ?? {}), ...filtersInUrl });\n\t};\n\n\tuseEffect(() => {\n\t\tlet hasFilter = false;\n\t\tObject.keys(filters ?? {}).forEach(key => {\n\t\t\tif (key in (initialFilters ?? {}) || key === 'sort') return;\n\t\t\thasFilter = true;\n\t\t});\n\n\t\tsetHasFilters(hasFilter);\n\t}, [filters, setHasFilters]); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\tconst params = queryString.parse(location.search);\n\n\t\t// Change paging\n\t\tpagingChangeHandler(params);\n\n\t\t// Change filters\n\t\tfiltersChangeHandler(params);\n\n\n\t\t// eslint-disable-next-line\n\t}, [location]);\n\n\tconst firstUpdate = useRef(true);\n\n\t// Detect filter or paging changes\n\tuseEffect(() => {\n\t\t// Do not fetch on first render\n\t\t// The system will get the paging info from the url that will trigger the initial fetch\n\t\tif (firstUpdate.current) {\n\t\t\tfirstUpdate.current = false;\n\t\t\treturn;\n\t\t}\n\n\t\tfetch(filters, paging);\n\t\t// eslint-disable-next-line\n\t}, [filters, paging]);\n\n\treturn (\n\t\t\n\t\t\t{(loading || (data ? data.data ?? [] : []).length > 0 || (!emptyState || hasFilters)) &&\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{(Array.isArray(children) ? children : [children]).map(\n\t\t\t\t\t\t\t\t\t\t(child, idx) => {\n\t\t\t\t\t\t\t\t\t\t\tif (!child)\n\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t\t\t\t\t\t\tconst { name, label, sortable, headerAlign, align, ...cellProps } = child.props;\n\n\t\t\t\t\t\t\t\t\t\t\tconst finalAlign = headerAlign ?? (align ?? undefined);\n\n\t\t\t\t\t\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t\t\t\t\t\t{!sortable ? label :\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t;\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{displayData()}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t !!c).length}\n\t\t\t\t\t\t\t\t\t\tcount={(data && data.paging) ? parseInt(data.paging.count ?? 0) : 10}\n\t\t\t\t\t\t\t\t\t\trowsPerPage={parseInt(paging.results_per_page ?? 10)}\n\t\t\t\t\t\t\t\t\t\tpage={paging ? parseInt(paging.page_no ?? 1) - 1 : 0}\n\t\t\t\t\t\t\t\t\t\tlabelRowsPerPage={t('rows_per_page')}\n\t\t\t\t\t\t\t\t\t\tSelectProps={{\n\t\t\t\t\t\t\t\t\t\t\tinputProps: { 'aria-label': t('rows_per_page') },\n\t\t\t\t\t\t\t\t\t\t\tnative: true,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tlabelDisplayedRows={\n\t\t\t\t\t\t\t\t\t\t\t({ from, to, count }) => t(count !== -1 ? 'table_paging' : 'table_paging_more', {\n\t\t\t\t\t\t\t\t\t\t\t\tfrom: from,\n\t\t\t\t\t\t\t\t\t\t\t\tto: to,\n\t\t\t\t\t\t\t\t\t\t\t\tcount: count\n\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonChangePage={changePageHandler}\n\t\t\t\t\t\t\t\t\t\tonChangeRowsPerPage={changeResultPerPageHandler}\n\t\t\t\t\t\t\t\t\t\tActionsComponent={TablePaginationActions}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t}\n\t\t\t{(emptyState && !loading && (data ? data.data ?? [] : []).length < 1 && !hasFilters) && emptyState}\n\t\t\n\t);\n};\n\nexport default Table;\n\nTable.propTypes = {\n\tRowComponent: PropTypes.any,\n\tchildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n\tdata: PropTypes.object,\n\temptyState: PropTypes.any,\n\temptyText: PropTypes.string,\n\textra: PropTypes.array,\n\tfetch: PropTypes.func,\n\tinitialFilters: PropTypes.object,\n\tloading: PropTypes.bool,\n\tpaperProps: PropTypes.object,\n\trowProps: PropTypes.object,\n\tsearch: PropTypes.bool,\n\tadminSearch: PropTypes.bool,\n\tsearchCriteria: PropTypes.array,\n\tsearchKey: PropTypes.string,\n\ttitle: PropTypes.string,\n\ttoolbarProps: PropTypes.object,\n\tonSelect: PropTypes.func,\n\tselectedIdx: PropTypes.number\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst TableDefinition = () => {\n\treturn <>;\n};\n\nexport default TableDefinition;\n\nTableDefinition.propTypes = {\n\tname : PropTypes.string,\n\tlabel : PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\tsortable: PropTypes.bool,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n\nconst OrderPaymentMethod = ({ order }) => {\n\treturn (\n\t\t\n\t\t\t{(order.Payment_Method && order.Payment_Class) && order.Payment_Method + ' - ' + order.Payment_Class}\n\t\t\t{(!order.Payment_Method && order.Payment_Class) && order.Payment_Class}\n\t\t\t{(order.Payment_Method && !order.Payment_Class) && order.Payment_Method}\n\t\t\n\t);\n};\n\nOrderPaymentMethod.propTypes = {\n\torder: PropTypes.object\n};\n\nexport default OrderPaymentMethod;","import React, { useEffect, useState } from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {useRealmOrders} from '../../../hooks/useRealmOrders';\n\n\nimport Table from '../../core/data/table/Table';\nimport {Link} from 'react-router-dom';\nimport moment from 'moment';\nimport SearchIcon from '@material-ui/icons/Search';\nimport Button from '@material-ui/core/Button';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport OrderPaymentMethod from '../Order/OrderPaymentMethod';\nimport NotFound \t\t from './../../core/utils/NotFound/NotFound';\nimport Forbidden \t\t from './../../core/utils/Forbidden/Forbidden';\n\nconst OrdersTable = ({ initialFilters = {}, flat = false, title = null }) => {\n\tconst { t } = useTranslation();\n\tconst [firstLoad, setFirstLoad] = useState(true); \n\tconst [orders, fetch, loading] = useRealmOrders();\n\n\tuseEffect(() => {\n\t\tif (!firstLoad)\n\t\t\tfetch(initialFilters);\n\t}, [initialFilters]); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\tsetFirstLoad(false);\n\t}, []); // eslint-disable-line\n\n\tif (orders && orders.error) {\n\t\tswitch (orders.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else \n\t\treturn (\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{order =>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{order.User.Profile.Display_Name}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{order => order.Invoice_Date ? moment.utc(parseInt(order.Invoice_Date.unixms)).format('LLL') : '-'}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{order => t('order_status_' + order.Status)}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{order => }\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{order => order.Total_Vat.display}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{order => order.Vat_Amount.display}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\torder =>\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t);\n};\n\nexport default OrdersTable;\n","import {useCallback, useEffect, useState} from 'react';\nimport {useParams} from 'react-router-dom';\nimport {rest} from '@karpeleslab/klbfw';\n\nexport const useAffiliate = () => {\n\tconst { realmId, userId } = useParams();\n\tconst [affiliate, setAffiliate] = useState(null);\n\tconst params = {\n\t\t'Realm__': realmId,\n\t\t'User__': userId\n\t};\n\tconst refresh = useCallback((data = null) => {\n\t\tif(data) {\n\t\t\tsetAffiliate(data);\n\t\t\treturn;\n\t\t}\n\n\t\trest('Affiliate', 'GET', params)\n\t\t\t.then(setAffiliate)\n\t\t\t.catch(e => setAffiliate({ error: e }));\n\t}, [setAffiliate, params]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line \n\n\treturn [affiliate, refresh];\n};\n\nexport const useShellsForUser = () => {\n\tconst { userId } = useParams();\n\tconst [shells, setShells] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, forceUserId = null) => {\n\t\tsetLoading(true);\n\t\trest('Shell', 'GET', {\n\t\t\t...filters,\n\t\t\t'_admin_as': forceUserId && typeof forceUserId === 'string' ? forceUserId : userId\n\t\t})\n\t\t\t.then(setShells)\n\t\t\t.catch(e => setShells({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [shells, fetch, loading];\n};\n\n\nexport const useShellWithParamsForUser = () => {\n\tconst { userId, shellId } = useParams();\n\tconst [shell, setShell] = useState(null);\n\tconst refresh = useCallback(data => {\n\t\tif (data) {\n\t\t\tsetShell({ data });\n\t\t\treturn;\n\t\t}\n\t\trest(`Shell/${shellId}`, 'GET', { '_admin_as': userId })\n\t\t\t.then(setShell)\n\t\t\t.catch(e => setShell({ error: e }));\n\t}, [shellId, setShell, userId]);\n\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [shellId, refresh]);\n\n\treturn [shell, refresh];\n};\n\n","import {useCallback, useEffect, useState} from 'react';\nimport { rest } from '@karpeleslab/klbfw';\nimport { useSetSnackbar } from './useSnackbar';\nimport { useTranslation } from 'react-i18next';\nimport {useParams} from \"react-router-dom\";\n\nexport const useUserWalletList = (userId) => {\n\tconst [list, setList] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [currentFilters, setCurrentFilters] = useState({});\n\tconst [currentPaging, setCurrentPaging] = useState({});\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...(filters ?? currentFilters),\n\t\t\t...(paging ?? currentPaging)\n\t\t};\n\n\t\tif (paging) setCurrentPaging(paging);\n\t\tif (filters) setCurrentFilters(filters);\n\n\t\tsetLoading(true);\n\t\treturn rest(`User/${userId}/Wallet`, 'GET', params)\n\t\t\t.then(setList)\n\t\t\t.catch(e => setList({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [list, fetch, loading];\n};\n\n\nexport const useUserWalletHistoryList = (walletId) => {\n\tconst [list, setList] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [currentFilters, setCurrentFilters] = useState({});\n\tconst [currentPaging, setCurrentPaging] = useState({});\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...(filters ?? currentFilters),\n\t\t\t...(paging ?? currentPaging)\n\t\t};\n\n\t\tif (paging) setCurrentPaging(paging);\n\t\tif (filters) setCurrentFilters(filters);\n\n\t\tsetLoading(true);\n\t\treturn rest(`User/Wallet/${walletId}/History`, 'GET', params)\n\t\t\t.then(setList)\n\t\t\t.catch(e => setList({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [list, fetch, loading];\n};\n\nexport const useUserWalletWithParams = () => {\n\tconst { walletId,userId } = useParams();\n\tconst [wallet, setWallet] = useState(null);\n\tconst refresh = useCallback(data => {\n\t\tif (data) {\n\t\t\tsetWallet({ data });\n\t\t\treturn;\n\t\t}\n\t\trest(`User/Wallet/${walletId}`, 'GET', { '_admin_as': userId })\n\t\t\t.then(d => {\n\t\t\t\tif (d.data.length < 1) setWallet({});\n\t\t\t\telse setWallet({ data: d.data, access: d.access });\n\t\t\t})\n\t\t\t.catch(e => setWallet({ error: e }));\n\t}, [walletId,userId, setWallet]);\n\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [userId, refresh]);\n\n\treturn [wallet, refresh];\n};\n\n\nexport const useUserWalletAutoCreate = (userId) => {\n\tconst { t } = useTranslation();\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst doIt = (walletId, accountId, period = 'monthly', priority = 0, minBalance = null, maxWithdraw = null) => {\n\t\tsetLoading(true);\n\n\t\tconst params = {\n\t\t\t_admin_as: userId,\n\t\t\tUser_Wallet__: walletId,\n\t\t\tMoney_Bank_Account__: accountId,\n\t\t\tperiod: period,\n\t\t\tpriority: priority,\n\t\t};\n\n\t\tif (maxWithdraw) params['maxWithdraw'] = maxWithdraw;\n\t\tif (minBalance) params['minBalance'] = minBalance;\n\n\t\treturn rest('User/Wallet/Auto:adminCreate', 'POST', params)\n\t\t\t.then(d => {\n\t\t\t\tsetSnackbar(t('user_wallet_auto_create_success'), 'success');\n\t\t\t\treturn d.data;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useUserWalletAutoList = (userId) => {\n\tconst [list, setList] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [currentFilters, setCurrentFilters] = useState({});\n\tconst [currentPaging, setCurrentPaging] = useState({});\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...(filters ?? currentFilters),\n\t\t\t...(paging ?? currentPaging)\n\t\t};\n\n\t\tif (paging) setCurrentPaging(paging);\n\t\tif (filters) setCurrentFilters(filters);\n\n\t\tsetLoading(true);\n\t\treturn rest(`User/${userId}/Wallet/Auto`, 'GET', params)\n\t\t\t.then(setList)\n\t\t\t.catch(e => setList({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [list, fetch, loading];\n};\n\n\nexport const useUserWalletUpdate = wallet => {\n\tconst [updating, setUpdating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst {t} = useTranslation();\n\n\tconst update = data => {\n\t\tsetUpdating(true);\n\t\treturn rest('User/Wallet/' + wallet.User_Wallet__, 'PATCH', {...data,'_admin_as': wallet.User__})\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('wallet_update_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setUpdating(false));\n\t};\n\n\treturn [update, updating];\n};\n\nexport const useUserWalletAutoDelete = (walletAutoId, as) => {\n\tconst { t } = useTranslation();\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst doIt = () => {\n\t\tsetLoading(true);\n\n\t\treturn rest(`User/Wallet/Auto/${walletAutoId}`, 'DELETE', {_admin_as: as})\n\t\t\t.then(d => {\n\t\t\t\tsetSnackbar(t('user_wallet_auto_delete_success'), 'success');\n\t\t\t\treturn d.data;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useUserWalletList } from '../../../hooks/useUserWallet';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport Table from '../../core/data/table/Table';\nimport { useTranslation } from 'react-i18next';\nimport Button from \"@material-ui/core/Button\";\nimport {Link} from \"react-router-dom\";\n\nconst UserWalletsTable = ({ realmId, userId, flat = false, title = null }) => {\n\tconst { t } = useTranslation();\n\tconst [initialFilters] = useState();\n\tconst [list, fetch, loading] = useUserWalletList(userId);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{w => w.Balance.display}\n\t\t\t\n\t\t\t\n\t\t\t\t{w => w.Liabilities.display ?? '0'}\n\t\t\t\n\t\t\t\n\t\t\t\t{w => w.Balance.unit}\n\t\t\t\n\t\t\t\n\t\t\t\t{w => w.Disable_Limits === \"Y\" ? t('enable_select_y'): t('enable_select_n')}\n\t\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\tw =>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('edit_btn')}\n\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default UserWalletsTable;\n\nUserWalletsTable.propTypes = {\n\tflat: PropTypes.bool,\n\ttitle: PropTypes.string,\n\tuserId: PropTypes.string.isRequired,\n\trealmId: PropTypes.string.isRequired\n};\n","import { useState } from 'react';\nimport { rest } from '@karpeleslab/klbfw';\n\nexport const useUserMoneyBankAccountList = () => {\n\tconst [list, setList] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [currentFilters, setCurrentFilters] = useState({});\n\tconst [currentPaging, setCurrentPaging] = useState({});\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...(filters ?? currentFilters),\n\t\t\t...(paging ?? currentPaging)\n\t\t};\n\n\t\tif (paging) setCurrentPaging(paging);\n\t\tif (filters) setCurrentFilters(filters);\n\n\t\tsetLoading(true);\n\t\treturn rest('Money/Bank/Account', 'GET', params)\n\t\t\t.then(setList)\n\t\t\t.catch(e => setList({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [list, fetch, loading];\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport { useRest } from '@karpeleslab/react-klbfw-hooks';\n\nimport Box from '@material-ui/core/Box';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\n\nconst MoneyBankAccountInfo = ({ bankAccountId, userId }) => {\n\tconst { t } = useTranslation();\n\tconst [bankAccountInfos] = useRest(`Money/Bank/Account/${bankAccountId}`, { '_admin_as': userId });\n\t\n\treturn (\n\t\t\n\t\t\t{\n\t\t\t\tbankAccountInfos && bankAccountInfos.data ?\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('bank_account_label')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{bankAccountInfos.data.Label}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('bank_account_status')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{bankAccountInfos.data.Status}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{Object.keys(bankAccountInfos.data.Meta).map(k => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(`bank_account_${k}`)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{bankAccountInfos.data.Meta[k]}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\t:\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t}\n\t\t\n\t);\n};\n\nMoneyBankAccountInfo.propTypes = {\n\tbankAccountId: PropTypes.string,\n\tuserId: PropTypes.string\n};\n\nexport default MoneyBankAccountInfo;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport { useTranslation } from 'react-i18next';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '../../core/input/Button';\nimport MoneyBankAccountInfo from './MoneyBankAccountInfos';\n\nconst MoneyBankAccountInfoDialog = ({ accountId, userId, open, setOpen }) => {\n\tconst { t } = useTranslation();\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('bank_account_info')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('back_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default MoneyBankAccountInfoDialog;\n\nMoneyBankAccountInfoDialog.propTypes = {\n\taccountId: PropTypes.string.isRequired,\n\tuserId: PropTypes.string.isRequired,\n\topen: PropTypes.bool.isRequired,\n\tsetOpen: PropTypes.func.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useEffect } from 'react';\nimport { Grid } from '@material-ui/core';\nimport TextField from '@material-ui/core/TextField';\nimport { useTranslation } from 'react-i18next';\n\nconst Paypal = ({ data, setData, setIsValid, disabled = false }) => {\n\tconst { t } = useTranslation();\n\n\tconst createChangeHandler = (key, isEvent = true) => e => {\n\t\tsetData({ ...data, [key]: isEvent ? e.target.value : e });\n\t};\n\n\tconst getValue = (key, def = '') => {\n\t\tif (!(key in (data ?? {}))) return def;\n\t\treturn data[key];\n\t};\n\n\tuseEffect(() => {\n\t\tsetIsValid(!!getValue('email').trim());\n\t}, [setIsValid, data]); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Paypal;\n\nPaypal.propTypes = {\n\tdata: PropTypes.object.isRequired,\n\tdisabled: PropTypes.bool,\n\tsetData: PropTypes.func.isRequired,\n\tsetIsValid: PropTypes.func.isRequired\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport { useRest } from '@karpeleslab/react-klbfw-hooks';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport TextField from '@material-ui/core/TextField';\n\nconst CountrySelector = ({ value, setValue, label = null, helperText = null, disabled = false, required = false, ...rest }) => {\n\tconst { t } = useTranslation();\n\tconst [countries] = useRest('Country');\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tInputLabelProps={{ shrink: !!value }}\n\t\t\tdisabled={disabled || !countries}\n\t\t\trequired={required}\n\t\t\tvariant='outlined'\n\t\t\tInputProps={!countries ?\n\t\t\t\t{\n\t\t\t\t\tendAdornment:\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t} : undefined\n\t\t\t}\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t\t{...rest}\n\t\t>\n\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nCountrySelector.propTypes = { \n\tdisabled: PropTypes.bool, \n\thelperText: PropTypes.string, \n\tlabel: PropTypes.string, \n\trequired: PropTypes.bool, \n\tsetValue: PropTypes.func, \n\tvalue: PropTypes.string \n};\n\nexport default CountrySelector;\n","import PropTypes from 'prop-types';\nimport React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Grid } from '@material-ui/core';\nimport TextField from '@material-ui/core/TextField';\nimport { useCheckAba, useCheckSwift } from '../../../../hooks/useBanks';\nimport CountrySelector from '../../../core/input/CountrySelector';\n\nconst Bank = ({ data, setData, setIsValid, disabled = false, type = 'intl' }) => {\n\tconst { t } = useTranslation();\n\tconst [checkSwift] = useCheckSwift();\n\tconst [checkAba] = useCheckAba();\n\n\tconst createChangeHandler = (key, isEvent = true) => e => {\n\t\tsetData({ ...data, [key]: isEvent ? e.target.value : e });\n\t};\n\n\tconst getValue = (key, def = '') => {\n\t\tif (!(key in (data ?? {}))) return def;\n\t\treturn data[key];\n\t};\n\n\tconst bankCodeOnBlur = (e, func) => {\n\t\tconst target = e.target;\n\t\tfunc(target.value)\n\t\t\t.then(\n\t\t\t\tres => {\n\t\t\t\t\tif (res.result !== 'success')\n\t\t\t\t\t\talert(t(`error_invalid_${target.name}`));\n\t\t\t\t\telse\n\t\t\t\t\t\tsetData({ ...data, Label: res.data.Institution_Name });\n\t\t\t\t}\n\t\t\t);\n\t};\n\n\tuseEffect(() => {\n\t\tlet valid =\n\t\t\t!!getValue('account_number').trim() &&\n\t\t\t!!getValue('name').trim() &&\n\t\t\t!!getValue('address').trim() &&\n\t\t\t!!getValue('city').trim() &&\n\t\t\t!!getValue('region').trim() &&\n\t\t\t!!getValue('country').trim() &&\n\t\t\t!!getValue('postalcode').trim();\n\n\t\tif (type === 'intl')\n\t\t\tvalid = valid && !!getValue('swift').trim();\n\t\telse if (type === 'us ')\n\t\t\tvalid = valid && !!getValue('aba').trim();\n\n\t\tsetIsValid(valid);\n\n\t}, [setIsValid, data]);// eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{type === 'us' &&\n\t\t\t\n\t\t\t\t bankCodeOnBlur(e, checkAba)}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\trequired\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\n\t\t\t}\n\t\t\t{type === 'intl' &&\n\t\t\t\n\t\t\t\t bankCodeOnBlur(e, checkSwift)}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\trequired\n\t\t\t\t\tfullWidth\n\t\t\t\t/>\n\t\t\t\n\t\t\t}\n\t\t\t{type === 'intl' &&\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Bank;\n\nBank.propTypes = {\n\tdata: PropTypes.object.isRequired,\n\tdisabled: PropTypes.bool,\n\tsetData: PropTypes.func,\n\tsetIsValid: PropTypes.func.isRequired,\n\ttype: PropTypes.string.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Box from '@material-ui/core/Box';\nimport Grid from '@material-ui/core/Grid';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormLabel from '@material-ui/core/FormLabel';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Radio from '@material-ui/core/Radio';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport { useTranslation } from 'react-i18next';\nimport { useTransferTypes } from '../../../../hooks/useAffiliates';\nimport { useSetBankAccount } from '../../../../hooks/useBanks';\nimport { useSetSnackbar } from '../../../../hooks/useSnackbar';\nimport Paypal from './Paypal';\nimport Bank from './Bank';\nimport Button from '../../../core/input/Button';\n\nconst CreateBankAccountDialog = ({ affiliate, open, setOpen, refresh }) => {\n\tconst { t } = useTranslation();\n\tconst [transferTypes] = useTransferTypes();\n\tconst [selectedType, setSelectedType] = useState(null);\n\tconst [setBankAccount, loading] = useSetBankAccount();\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst [data, setData] = useState({});\n\tconst [isValid, setIsValid] = useState(false);\n\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleCreate = () => {\n\t\tlet final = { ...data };\n\t\tfinal.transfer_type = selectedType;\n\t\tif (selectedType === 'paypal') final.Label = 'Paypal: ' + final.email;\n\n\t\tsetBankAccount({\n\t\t\t'_admin_as': affiliate.User__,\n\t\t\t...final\n\t\t})\n\t\t\t.then(res => {\n\t\t\t\tif (res.result === 'success') {\n\t\t\t\t\trefresh();\n\t\t\t\t\thandleClose();\n\t\t\t\t} else\n\t\t\t\t\tsetSnackbar('error_cant_add_bank_account', 'error');\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tsetSnackbar('error_cant_add_bank_account', 'error');\n\t\t\t});\n\t};\n\n\treturn (\n\t\t {\n\t\t\t\tsetIsValid(false);\n\t\t\t\tsetData({});\n\t\t\t}}\n\t\t\tmaxWidth={'lg'}\n\t\t>\n\t\t\t\n\t\t\t\t{t('add_new_bank_account_info')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('account_type')}\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetData({});\n\t\t\t\t\t\t\t\t\t\tsetSelectedType(e.target.value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttransferTypes.map(type => (\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={type.label}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{(selectedType &&selectedType === 'paypal') &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{(selectedType && selectedType !== 'paypal') &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('back_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('confirm_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CreateBankAccountDialog;\n\nCreateBankAccountDialog.propTypes = {\n\taffiliate: PropTypes.object.isRequired,\n\topen: PropTypes.bool.isRequired,\n\trefresh: PropTypes.func.isRequired,\n\tsetOpen: PropTypes.func.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport { useUserMoneyBankAccountList } from '../../../hooks/useMoneyBankAccount';\nimport Button from '@material-ui/core/Button';\nimport MoneyBankAccountInfoDialog from '../MoneyBankAccountInfos/MoneyBankAccountInfoDialog';\nimport CreateBankAccountDialog from './Create/CreateBankAccountDialog';\n\nconst MoneyBankAccountTable = ({ affiliate, refreshAffiliate, flat = false }) => {\n\tconst { t } = useTranslation();\n\tconst [initialFilters] = useState({ _admin_as: affiliate.User__ });\n\tconst [list, fetch, loading] = useUserMoneyBankAccountList();\n\n\tconst [showInfo, setShowInfo] = useState(false);\n\tconst [selected, setSelected] = useState(null);\n\n\tconst [showCreate, setShowCreate] = useState(false);\n\n\n\treturn (\n\t\t<>\n\t\t\t setShowCreate(true)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('add_new_bank_account_info')}\n\t\t\t\t\t\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{account => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetSelected(account);\n\t\t\t\t\t\t\t\t\tsetShowInfo(true);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('view_bank_account_info')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t\n\t\t\t\n\t\t\t{selected && \n\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default MoneyBankAccountTable;\n\nMoneyBankAccountTable.propTypes = {\n\taffiliate: PropTypes.object.isRequired,\n\tflat: PropTypes.bool,\n\trefreshAffiliate: PropTypes.func.isRequired\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\n\nconst UserWalletAutoPeriodSelector = ({ value, setValue, disabled, required }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant='outlined'\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nUserWalletAutoPeriodSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default UserWalletAutoPeriodSelector;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport TextField from '@material-ui/core/TextField';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { useUserWalletList } from '../../../hooks/useUserWallet';\n\nconst AffiliateWalletAutocomplete = ({ userId, value, setValue, required = false, disabled = false, extra = {} }) => {\n\tconst { t } = useTranslation();\n\tconst [open, setOpen] = useState(false);\n\tconst [list, fetch, loading] = useUserWalletList(userId);\n\n\tuseEffect(() => {\n\t\tsetOpen(false);\n\t\tif (!userId) return;\n\t\tfetch(extra, { results_per_page: 50 });\n\t}, [setOpen, userId]); // eslint-disable-line\n\n\tconst onChangeHandler = (e) => {\n\t\tif (!userId) return;\n\t\tfetch({ Currency__: { '$prefix': e.target.value}, ...extra }, { results_per_page: 50 });\n\t\tsetOpen(true);\n\t};\n\n\n\treturn (\n\t\t {\n\t\t\t\tsetOpen(false);\n\t\t\t}}\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\tvalue={value}\n\t\t\tonChange={(e, value) => setValue(value)}\n\t\t\tgetOptionSelected={(option, value) => option.Currency__ === value.Currency__}\n\t\t\tgetOptionLabel={option => !option || !option.Currency__ ? '' : option.Currency__}\n\t\t\toptions={list ? list.data : []}\n\t\t\tloading={loading}\n\t\t\trenderInput={(params) => (\n\t\t\t\t\n\t\t\t\t\t\t\t\t{loading ? : null}\n\t\t\t\t\t\t\t\t{params.InputProps.endAdornment}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n};\n\nAffiliateWalletAutocomplete.propTypes = {\n\tdisabled: PropTypes.bool,\n\textra: PropTypes.object,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tuserId: PropTypes.object,\n\tvalue: PropTypes.string\n};\n\nexport default AffiliateWalletAutocomplete;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport TextField from '@material-ui/core/TextField';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { useUserMoneyBankAccountList } from '../../../hooks/useMoneyBankAccount';\n\nconst UserBankAccountAutocomplete = ({ value, setValue, required = false, disabled = false, extra = {} }) => {\n\tconst { t } = useTranslation();\n\tconst [open, setOpen] = useState(false);\n\tconst [list, fetch, loading] = useUserMoneyBankAccountList();\n\n\tuseEffect(() => {\n\t\tsetOpen(false);\n\t\tfetch(extra, { results_per_page: 50 });\n\t}, [setOpen]); // eslint-disable-line\n\n\tconst onChangeHandler = (e) => {\n\t\tfetch({ Label: { '$prefix': e.target.value }, ...extra }, { results_per_page: 50 });\n\t\tsetOpen(true);\n\t};\n\n\treturn (\n\t\t {\n\t\t\t\tsetOpen(false);\n\t\t\t}}\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\tvalue={value}\n\t\t\tonChange={(e, value) => setValue(value)}\n\t\t\tgetOptionSelected={(option, value) => option.Money_Bank_Account__ === value.Money_Bank_Account__}\n\t\t\tgetOptionLabel={option => !option || !option.Label ? '' : option.Label}\n\t\t\toptions={list ? list.data : []}\n\t\t\tloading={loading}\n\t\t\trenderInput={(params) => (\n\t\t\t\t\n\t\t\t\t\t\t\t\t{loading ? : null}\n\t\t\t\t\t\t\t\t{params.InputProps.endAdornment}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n};\n\nUserBankAccountAutocomplete.propTypes = {\n\tdisabled: PropTypes.bool,\n\textra: PropTypes.object,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default UserBankAccountAutocomplete;\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '../../core/input/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport { useTranslation } from 'react-i18next';\nimport { useUserWalletAutoCreate } from '../../../hooks/useUserWallet';\nimport { Grid } from '@material-ui/core';\nimport TextField from '@material-ui/core/TextField';\nimport UserWalletAutoPeriodSelector from '../../core/input/UserWalletAutoPeriodSelector';\nimport AffiliateWalletAutocomplete from '../../core/input/AffiliateWalletAutocomplete';\nimport UserBankAccountAutocomplete from '../../core/input/UserBankAccountAutocomplete';\nimport MoneyBankAccountInfoDialog from '../MoneyBankAccountInfos/MoneyBankAccountInfoDialog';\n\nconst CreateWalletAutoDialog = ({ userId, open, setOpen, refresh }) => {\n\tconst { t } = useTranslation();\n\tconst [create, creating] = useUserWalletAutoCreate(userId);\n\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\n\tconst [wallet, setWallet] = useState(null);\n\tconst [account, setAccount] = useState(null);\n\n\tconst [period, setPeriod] = useState('monthly');\n\tconst [minBalance, setMinBalance] = useState(null);\n\tconst [maxWithdraw, setMaxWithdraw] = useState(null);\n\n\tconst [showInfo, setShowInfo] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetSaveEnabled(!!wallet && !!account && !!(period.trim()));\n\t}, [setSaveEnabled, wallet, account, period]);\n\n\tconst reset = () => {\n\t\tsetSaveEnabled(false);\n\t\tsetWallet(null);\n\t\tsetAccount(null);\n\t\tsetPeriod('monthly');\n\t\tsetMinBalance(null);\n\t\tsetMaxWithdraw(null);\n\t};\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleCreate = () => {\n\t\tcreate(\n\t\t\twallet.User_Wallet__,\n\t\t\taccount.Money_Bank_Account__,\n\t\t\tperiod,\n\t\t\t0,\n\t\t\tminBalance ? parseInt(minBalance.trim()) : null,\n\t\t\tmaxWithdraw ? parseInt(maxWithdraw.trim()) : null,\n\t\t)\n\t\t\t.then(() => {\n\t\t\t\trefresh();\n\t\t\t\thandleClose();\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t reset()}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t{t('user_wallet_auto_create_title')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetShowInfo(true);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('view_bank_account_info')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setMinBalance(e.target.value)}\n\t\t\t\t\t\t\t\ttype='number'\n\t\t\t\t\t\t\t\tdisabled={creating}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setMaxWithdraw(e.target.value)}\n\t\t\t\t\t\t\t\ttype='number'\n\t\t\t\t\t\t\t\tdisabled={creating}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{account && \n\t\t\t}\n\t\t\n\t);\n};\n\nexport default CreateWalletAutoDialog;\n\nCreateWalletAutoDialog.propTypes = {\n\tuserId: PropTypes.string.isRequired,\n\topen: PropTypes.bool.isRequired,\n\trefresh: PropTypes.func.isRequired,\n\tsetOpen: PropTypes.func.isRequired\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nimport Alert from '@material-ui/lab/Alert';\n\n// dirty\nconst useStyles = makeStyles(() => {\n\treturn {\n\t\tfixAlert: {\n\t\t\t'& > .MuiAlert-message': {\n\t\t\t\tdisplay: 'block',\n\t\t\t}\n\t\t}\n\t};\n});\n\nconst RichAlert = ({ children, ...rest }) => {\n\tconst classes = useStyles();\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nRichAlert.propTypes = {\n\tchildren: PropTypes.node\n}; \n\nexport default RichAlert;","import PropTypes from 'prop-types';\nimport React from 'react';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport Typography from '@material-ui/core/Typography';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport Dialog from '@material-ui/core/Dialog';\nimport { Trans, useTranslation } from 'react-i18next';\nimport RichAlert from '../../core/feedback/RichAlert';\nimport { useUserWalletAutoDelete } from '../../../hooks/useUserWallet';\n\nconst UserWalletAutoDeleteDialog = ({ walletAuo, open, setOpen, refresh }) => {\n\tconst { t } = useTranslation();\n\tconst [doDelete, loading] = useUserWalletAutoDelete(walletAuo.User_Wallet_Auto__, walletAuo.Money_Bank_Account.User__);\n\n\tconst handleClose = () => setOpen(false);\n\n\tconst handleDelete = () => {\n\t\tdoDelete().then(() => {\n\t\t\trefresh();\n\t\t\thandleClose();\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('confirm_delete_user_wallet_auto_title')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tsample
\n\t\t\t\t\t\t\tsample\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t{t('are_you_sure')}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('back_btn')}\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\tonClick={handleDelete}\n\t\t\t\t>\n\t\t\t\t\t{t('delete_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default UserWalletAutoDeleteDialog;\n\nUserWalletAutoDeleteDialog.propTypes = {\n\topen: PropTypes.bool.isRequired,\n\trefresh: PropTypes.func.isRequired,\n\tsetOpen: PropTypes.func.isRequired,\n\twalletAuo: PropTypes.object.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useUserWalletAutoList } from '../../../hooks/useUserWallet';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport Button from '@material-ui/core/Button';\nimport CreateWalletAutoDialog from './CreateWalletAutoDialog';\nimport MoneyBankAccountInfoDialog from '../MoneyBankAccountInfos/MoneyBankAccountInfoDialog';\nimport UserWalletAutoDeleteDialog from './UserWalletAutoDeleteDialog';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\n\nconst UserWalletAutoTable = ({ userId }) => {\n\tconst { t } = useTranslation();\n\tconst [initialFilters] = useState({ _admin_as: userId });\n\tconst [list, fetch, loading] = useUserWalletAutoList(userId);\n\tconst [showCreate, setShowCreate] = useState(false);\n\tconst [showDelete, setShowDelete] = useState(false);\n\n\tconst [showInfo, setShowInfo] = useState(false);\n\tconst [selected, setSelected] = useState(null);\n\n\treturn (\n\t\t<>\n\t\t\t setShowCreate(true)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('add_wallet_auto_btn')}\n\t\t\t\t\t\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t{a => a.User_Wallet.Currency__}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{a =>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetSelected(a.Money_Bank_Account);\n\t\t\t\t\t\t\t\tsetShowInfo(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{a.Money_Bank_Account.Label}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{a => a.Min_Balance ? a.Min_Balance.display : t('user_wallet_auto_any_balance')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{a => a.Max_Withdraw ? a.Max_Withdraw.display : t('user_wallet_auto_unlimited')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\ta => }\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetSelected(a);\n\t\t\t\t\t\t\t\tsetShowDelete(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('delete_btn')}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{selected && \n\t\t\t}\n\t\t\t{selected &&\n\t\t\t}\n\t\t\n\t);\n};\n\nexport default UserWalletAutoTable;\n\nUserWalletAutoTable.propTypes = {\n\tuserId: PropTypes.string.isRequired\n};\n","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AffiliateCode from './AffiliateCode';\nimport AffiliateType from './AffiliateType';\nimport Forbidden from './../../core/utils/Forbidden/Forbidden';\nimport Grid from '@material-ui/core/Grid';\nimport InfoBox from './InfoBox';\nimport NotFound from './../../core/utils/NotFound/NotFound';\nimport OrdersTable from './../OrdersTable/OrdersTable';\n\n\nimport { useAffiliate } from './../../../hooks/useShellsActions';\nimport UserWalletsTable from '../UserWallet/UserWalletsTable';\nimport MoneyBankAccountTable from '../MoneyBankAccountActions/MoneyBankAccountTable';\nimport UserWalletAutoTable from '../UserWallet/UserWalletAutoTable';\nimport Alert from '@material-ui/lab/Alert';\n\nconst AffiliateInfos = ({ user, flat = false }) => {\n\tconst [affiliate, refreshAffiliate] = useAffiliate();\n\tconst { t } = useTranslation();\n\tconst infos = [\n\t\t{ key: 'Currency__', label: t('currency') }\n\t];\n\n\tconst setAffiliate = useCallback((data) => {\n\t\tconst tmp = { ...affiliate };\n\t\ttmp.data = [data];\n\t\trefreshAffiliate(tmp);\n\t}, [refreshAffiliate, affiliate]);\n\n\tif (!affiliate)\n\t\treturn <>;\n\n\tif (affiliate.error) {\n\t\tswitch (affiliate.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t{(affiliate.data && affiliate.data.length > 0) && <>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinfos.map(el => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{(affiliate.data && affiliate.data.length > 0) && <>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('user_wallet_auto_table_desc')}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n};\n\nexport default AffiliateInfos;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport Typography from '@material-ui/core/Typography';\nimport { useTranslation } from 'react-i18next';\nimport Button from '../../core/input/Button';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\n\nconst ConfirmDialog = ({ open, onConfirm, onCancel, title, description, hasReason = false }) => {\n\tconst { t } = useTranslation();\n\tconst [reason, setReason] = useState('');\n\n\treturn (\n\t\t {\n\t\t\tsetReason('');\n\t\t}}>\n\t\t\t\n\t\t\t\t{title}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{description}\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t{t('are_you_sure')}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{hasReason && \n\t\t\t\t\t\n\t\t\t\t\t\t setReason(e.target.value)}\n\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('back_btn')}\n\t\t\t\t\n\t\t\t\t onConfirm(reason)}\n\t\t\t\t>\n\t\t\t\t\t{t('confirm_btn')}\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nConfirmDialog.propTypes = {\n\thasReason: PropTypes.bool,\n\topen: PropTypes.bool,\n\tonConfirm: PropTypes.func,\n\tonCancel: PropTypes.func,\n\ttitle: PropTypes.string,\n\tdescription: PropTypes.string\n};\n\nexport default ConfirmDialog;\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport ConfirmDialog from '../../layout/ConfirmDialog/ConfirmDialog';\nimport Grid from '@material-ui/core/Grid';\n\nconst Template = (shell, performAction) => {\n\tconst [title, setTitle] = useState('');\n\tconst [desc, setDesc] = useState('');\n\tconst [reason, setReason] = useState(false);\n\tconst [open, setOpen] = useState(false);\n\tconst [action, setAction] = useState(null);\n\tconst { t } = useTranslation();\n\n\tconst confirmBefore = action => {\n\t\tswitch (action) {\n\t\t\tcase 'reboot':\n\t\t\t\tsetTitle(t('shell_confirm_reboot_title'));\n\t\t\t\tsetDesc(t('shell_confirm_reboot_description'));\n\t\t\t\tsetReason(false);\n\t\t\t\tbreak;\n\t\t\tcase 'reconfigure':\n\t\t\t\tsetTitle(t('shell_confirm_reinstall_title'));\n\t\t\t\tsetDesc(t('shell_confirm_reinstall_description'));\n\t\t\t\tsetReason(false);\n\t\t\t\tbreak;\n\t\t\tcase 'cancel':\n\t\t\t\tsetTitle(t('shell_confirm_cancel_title'));\n\t\t\t\tsetDesc(t('shell_confirm_cancel_description'));\n\t\t\t\tsetReason(true);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\tsetAction(action);\n\t\tsetOpen(true);\n\t};\n\n\tconst confirmAndDo = (reason = null) => {\n\t\tsetOpen(false);\n\t\tperformAction(action, reason);\n\t};\n\n\tif (!shell)\n\t\treturn <>;\n\n\treturn (\n\t\t\n\t\t\t confirmBefore('reboot')}\n\t\t\t\tdisabled={shell.loading}\n\t\t\t>\n\t\t\t\t{t('shell_reboot')}\n\t\t\t\t{shell.loading ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t\n\t\t\n\t\t\t confirmBefore('reconfigure')}\n\t\t\t\tdisabled={shell.loading}\n\t\t\t>\n\t\t\t\t{t('shell_reinstall')}\n\t\t\t\n\t\t\n\t\t{shell.User_Billing__ &&\n\t\t\n\t\t\t confirmBefore('cancel')}\n\t\t\t\tdisabled={shell.loading}\n\t\t\t>\n\t\t\t\t{t('shell_cancel')}\n\t\t\t\n\t\t\n\t\t}\n\t\t setOpen(false)}\n\t\t/>\n\t);\n};\n\nexport default Template;\n","import { useEffect, useState } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport Template from './ShellActions.template';\nimport { useShellCancel, useShellReboot } from '../../../hooks/useShell';\n\nconst ShellActions = ({ shell }) => {\n\tconst { realmId, userId } = useParams();\n\tconst [displayShell, setDisplayShell] = useState(null);\n\tconst history = useHistory();\n\tconst [reboot] = useShellReboot(shell.Shell__);\n\tconst [cancel] = useShellCancel(shell.Shell__);\n\n\tconst performAction = (action, reason = null) => {\n\t\tsetDisplayShell({ ...displayShell, loading: true });\n\t\tswitch (action) {\n\t\t\tcase 'reboot':\n\t\t\t\treboot(userId).then(() => {\n\t\t\t\t\tsetDisplayShell({ ...displayShell, loading: false });\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'cancel':\n\t\t\t\tcancel(userId, reason)\n\t\t\t\t\t.then(shell => {\n\t\t\t\t\t\tsetDisplayShell({ ...shell, loading: false });\n\t\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'snapshots':\n\t\t\t\thistory.push(`/realm/${realmId}/user/${userId}/shell/${displayShell.Shell__}/snapshots`);\n\t\t\t\tbreak;\n\t\t\tcase 'reconfigure':\n\t\t\t\thistory.push(`/realm/${realmId}/user/${userId}/shell/${displayShell.Shell__}/reconfigure`);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!shell)\n\t\t\treturn;\n\n\t\tconst tmp = { ...shell };\n\t\ttmp.loading = false;\n\t\tsetDisplayShell(tmp);\n\t}, [shell, setDisplayShell]);\n\n\treturn Template(displayShell, performAction);\n};\n\nexport default ShellActions;\n","import { useState } from 'react';\nimport { useSetSnackbar } from './useSnackbar';\nimport { rest } from '@karpeleslab/klbfw';\nimport { useTranslation } from 'react-i18next';\n\nexport const useShellReboot = shellId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst doIt = (userId) => { // can be null\n\t\tsetLoading(true);\n\n\t\treturn rest(`Shell/${shellId}:reboot`, 'POST', {\n\t\t\taction: 'reboot',\n\t\t\t'_admin_as': userId\n\t\t})\n\t\t\t.then(d => d)\n\t\t\t.catch(() => setSnackbar(t('error_cant_reboot_shell'), 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useShellCancel = shellId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst doIt = (userId, reason) => { // can be null\n\t\tsetLoading(true);\n\n\t\treturn rest(`Shell/${shellId}:adminCancel`, 'POST', {\n\t\t\treason: reason,\n\t\t\t'_admin_as': userId\n\t\t})\n\t\t\t.then(d => {\n\t\t\t\tsetSnackbar(t('shell_cancel_success'), 'success');\n\t\t\t\treturn d;\n\t\t\t})\n\t\t\t.catch(() => setSnackbar(t('error_cant_cancel_shell'), 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useShellOperatingSystems = () => {\n\tconst [list, setList] = useState({});\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst fetch = params => {\n\t\tsetLoading(true);\n\t\tparams = Object.assign({ Visible: 'Y', results_per_page: 100 }, params);\n\t\treturn rest('Shell/OS', 'GET', params)\n\t\t\t.then(d => {\n\t\t\t\tsetList(d);\n\t\t\t\treturn d;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(d => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn d;\n\t\t\t});\n\t};\n\n\treturn [list, fetch, loading];\n};","import React, {useEffect, useState} from 'react';\nimport {useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport MomentUtils from '@date-io/moment';\nimport {rest} from '@karpeleslab/klbfw';\n\nimport Button from '@material-ui/core/Button';\nimport CreateIcon from '@material-ui/icons/Create';\nimport {DateTimePicker} from '@material-ui/pickers';\nimport {MuiPickersUtilsProvider} from '@material-ui/pickers';\nimport RestoreIcon from '@material-ui/icons/Restore';\n\nimport {useSetSnackbar} from './../../../hooks/useSnackbar';\n\nimport './ShellEditDate.scss';\n\nconst ShellEditDate = ({ shellId, date, onDateUpdated }) => {\n\tconst { userId } = useParams();\n\tconst { t } = useTranslation();\n\tconst [displayDate, setDisplayDate] = useState(null);\n\tconst [edit, setEdit] = useState(false);\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst onDateChanged = event => {\n\t\tsetEdit(false);\n\t\tsetLoading(true);\n\t\trest(`Shell/${shellId}:adminSetExpiration`, 'POST', {\n\t\t\t'expiresAt': event.utc(),\n\t\t\t'_admin_as': userId\n\t\t})\n\t\t\t.then(({ data }) => {\n\t\t\t\tsetDisplayDate(data.Expires);\n\t\t\t\tonDateUpdated(shellId, data.Expires);\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tsetSnackbar(t('error_cant_change_shell_expiry'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\tuseEffect(() => {\n\t\tsetDisplayDate(date);\n\t}, [date, setDisplayDate]);\n\n\tif (!displayDate)\n\t\treturn <>;\n\n\tif (!edit)\n\t\treturn (\n\t\t\t setEdit(true)}\n\t\t\t\tendIcon={}\n\t\t\t\tdisabled={loading}\n\t\t\t>\n\t\t\t\t{moment(parseInt(displayDate?.unixms)).format('LLL')}\n\t\t\t\n\t\t);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t setEdit(false)}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nShellEditDate.propTypes = {\n\tdate : PropTypes.object,\n\tonDateUpdated: PropTypes.func,\n\tshellId : PropTypes.string\n};\n\nexport default ShellEditDate;","import React \tfrom 'react';\nimport {useTranslation} \tfrom 'react-i18next';\nimport { Link, useParams }\tfrom 'react-router-dom';\nimport moment \tfrom 'moment';\nimport PropTypes \tfrom 'prop-types';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nimport Box from '@material-ui/core/Box';\nimport FindInPageIcon from '@material-ui/icons/FindInPage';\nimport IconButton \t from '@material-ui/core/IconButton';\nimport ShellActions from './../ShellActions/ShellActions';\nimport ShellEditDate from './ShellEditDate';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\n\nconst useStyles = makeStyles(() => ({\n\tshellOSName: {\n\t\twidth: 'auto',\n\t\tmaxWidth: '225px',\n\t\toverflow: 'hidden',\n\t\ttextOverflow: 'ellipsis',\n\t\twhiteSpace: 'nowrap',\n\t\twordBreak: 'keep-all'\n\t}\n}));\n\nconst Template = ({ flat, shells, fetch, isAdmin, loading, onDateUpdated }) => {\n\tconst { t } = useTranslation();\n\tconst { realmId, userId } = useParams();\n\tconst classes = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tshell => \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{shell => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{shell.Catalog_Product.Internal_Name}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{shell && shell.OS ? shell.OS.Name : t('os_no_info')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{shell => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('tablecell_created')}: {moment(parseInt(shell.Created.unixms)).format('LLL')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('tablecell_expires')}: \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{shell => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{shell.Hostname}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{`${shell.Shell_Datacenter.Name} (${shell.Shell_Datacenter.Location})`}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{\n\t\t\t\t\tisAdmin &&\n\t\t\t\t\t\n\t\t\t\t\t\t{shell => }\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nTemplate.propTypes = {\n\tfetch : PropTypes.func,\n\tflat : PropTypes.bool, \n\tisAdmin: PropTypes.bool,\n\tloading: PropTypes.bool,\n\tonDateUpdated: PropTypes.func, \n\tshells : PropTypes.oneOfType([PropTypes.object, PropTypes.array])\n};\n\nexport default Template;","import React, {useEffect, useState} from 'react';\nimport moment from 'moment';\nimport NotFound from './../../core/utils/NotFound/NotFound';\nimport Forbidden from './../../core/utils/Forbidden/Forbidden';\n\nimport {useShellsForUser} from './../../../hooks/useShellsActions';\nimport {useRealmWithParams} from './../../../hooks/useRealm';\nimport {useAccess} from './../../../hooks/useAccess';\n\nimport Template from './ShellsList.template';\n\nconst ShellsList = ({ flat = false }) => {\n\tconst [shells, fetch, loading] = useShellsForUser();\n\tconst [displayShells, setDisplayShells] = useState(null);\n\tconst [realm] = useRealmWithParams();\n\tconst isAdmin = useAccess(realm, 'A');\n\n\tconst onDateUpdated = (shellId, date) => {\n\t\tconst tmp = shells && shells.data ? [...shells.data] : [];\n\t\tconst shellIdx = tmp.findIndex(s => s.Shell__ === shellId);\n\n\t\tif (shellIdx < 0)\n\t\t\treturn;\n\t\t\t\n\t\tconst newDate = moment(parseInt(date?.unixms));\n\t\tconst now = moment();\n\n\t\ttmp[shellIdx].Status = newDate >= now ? 'valid' : 'expired';\n\t\ttmp[shellIdx].Expires = date; \n\n\t\tsetDisplayShells(s => Object.assign(s, { data: tmp }));\n\t};\n\n\tuseEffect(() => {\n\t\tsetDisplayShells(shells);\n\t}, [shells, setDisplayShells]);\n\n\tif (shells && shells.error) {\n\t\tswitch (shells.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else\n\t\treturn Template({\n\t\t\tflat: flat,\n\t\t\tshells: displayShells,\n\t\t\tfetch,\n\t\t\tisAdmin,\n\t\t\tloading,\n\t\t\tonDateUpdated,\n\t\t});\n};\n\nexport default ShellsList;\n","import React \t\t\tfrom 'react';\nimport {useParams} \t\tfrom 'react-router-dom';\nimport {useTranslation}\tfrom 'react-i18next';\n\nimport {useIndividualUser} from './../../hooks/useRealmUsers';\n\nimport AffiliateInfos from './../../components/kakari/AffiliateInfos/AffiliateInfos';\nimport Helmet from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport ShellsList from './../../components/kakari/ShellsList/ShellsList';\nimport {Skeleton} from '@material-ui/lab';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport NotFound \t from './../../components/core/utils/NotFound/NotFound';\nimport Forbidden \t from './../../components/core/utils/Forbidden/Forbidden';\n\nexport default function Affiliate() {\n\tconst { realmId } = useParams();\n\tconst [user] = useIndividualUser();\n\tconst {t} = useTranslation();\n\n\tif (user && user.error) {\n\t\tswitch (user.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{`${t('user')} ${\n\t\t\t\t\t\tuser && user.data ? user.data.Display_Name || user.data.Email : ''\n\t\t\t\t\t}`}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{user && user.data ? (\n\t\t\t\t\t\tuser.data.Display_Name || user.data.Email\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n}\n","import React, { useEffect, useState } from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nimport { useCatalogProducts } from './../../../hooks/useCatalog';\n\n\nconst ProductsAutocomplete = ({ forcedCatalogId = null, label, onProductSelected }) => {\n\tconst {t} = useTranslation();\n\tconst [open, setOpen] = useState(false);\n\tconst [search, setSearch] = useState('');\n\tconst [products, fetch, loading] = useCatalogProducts(forcedCatalogId);\n\n\tuseEffect(() => {\n\t\tif (open) \n\t\t\tfetch();\n\t}, [open]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\tif (!products)\n\t\t\treturn;\n\n\t\tfetch({ value: search }, { results_per_page: 50 });\n\t}, [search]); //eslint-disable-line\n\n\treturn (\n\t\t setOpen(true)}\n\t\t\tonClose={() => setOpen(false)}\n\t\t\tgetOptionSelected={(option, value) => option.Internal_Name === value.Internal_Name}\n\t\t\tgetOptionLabel={(option) => option.Internal_Name || ''}\n\t\t\toptions={products ? products.data : []}\n\t\t\tonChange={(e, p) => onProductSelected(p)}\n\t\t\tloading={loading}\n\t\t\trenderInput={(params) => (\n\t\t\t\t setSearch(e.target.value)}\n\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t...params.InputProps,\n\t\t\t\t\t\tendAdornment: (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{loading ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t{params.InputProps.endAdornment}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n};\n\nProductsAutocomplete.propTypes = {\n\tforcedCatalogId : PropTypes.string,\n\tlabel : PropTypes.string,\n\tonProductSelected: PropTypes.func\n};\n\nexport default ProductsAutocomplete;\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Dialog\t\t\t from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent \t from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Grid from '@material-ui/core/Grid';\nimport ProductsAutocomplete from './../CreateCouponForm/ProductsAutocomplete';\nimport TextField from '@material-ui/core/TextField';\n\nimport { useCreateProduct } from './../../../hooks/useProductActions';\n\nconst CreateProductModal = ({ catalogId, open, onProductCreated, setOpen }) => {\n\tconst { t } = useTranslation();\n\tconst [createProduct, loading] = useCreateProduct(catalogId);\n\tconst [parentProduct, setParentProduct] = useState(null);\n\tconst [internalName, setInternalName] = useState('');\n\n\tconst handleCreateProduct = () => {\n\t\tcreateProduct(parentProduct ? parentProduct.Catalog_Product__ : null, internalName)\n\t\t\t.then(onProductCreated);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tCreate a product\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tloading ?\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t: (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t setInternalName(e.target.value)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t \n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t\tdisabled={loading}\n\t\t\t\t>\n\t\t\t\t\t{t('back_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nCreateProductModal.propTypes = {\n\tcatalogId : PropTypes.string.isRequired,\n\topen : PropTypes.bool,\n\tonProductCreated: PropTypes.func,\n\tsetOpen : PropTypes.func\n};\n\nexport default CreateProductModal;","import { useState } from 'react';\nimport { rest } from '@karpeleslab/klbfw';\n\nimport { useSetSnackbar } from './useSnackbar';\n\nexport const useCreateProduct = catalogId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = (parentProductId, internalName = null) => { // can be null\n\t\tsetLoading(true);\n\t\tlet params = {};\n\n\t\tif (parentProductId) \n\t\t\tparams.Parent_Catalog_Product__ = parentProductId;\n\t\tif (internalName)\n\t\t\tparams.Internal_Name = internalName;\n\n\t\treturn rest(`Catalog/${catalogId}/Product`, 'POST', params)\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useRebuildProductCache = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = productId => { // can be null\n\t\tsetLoading(true);\n\t\t\n\t\treturn rest(`Catalog/Product/${productId}:rebuildCache`, 'POST')\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useFetchProductInformation = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = productId => { // can be null\n\t\tsetLoading(true);\n\t\t\n\t\treturn rest(`Catalog/Product/${productId}:fetchInformation`, 'POST')\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n}; \n\nexport const useSetProductSale = productId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = params => { // params = { Realm__, visible: 'Y' || 'N' }\n\t\tsetLoading(true);\n\t\t\n\t\treturn rest(`Catalog/Product/${productId}:setSale`, 'POST', params)\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n}; ","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {rest} from '@karpeleslab/klbfw';\nimport PropTypes \t\t\t\t\tfrom 'prop-types';\n\nimport Button \t\t\tfrom '@material-ui/core/Button';\nimport CheckIcon from '@material-ui/icons/Check';\nimport CreateIcon from '@material-ui/icons/Create';\nimport HistoryIcon from '@material-ui/icons/History';\nimport TextField from '@material-ui/core/TextField';\n\nimport {useSetSnackbar} from './../../hooks/useSnackbar';\n\nconst EditCatalogTitle = ({ catalog }) => {\n\tconst {t} = useTranslation(); \n\tconst [edit, setEdit] = useState(false);\n\tconst [loading, setLoading] = useState(false); \n\tconst [name, setName] = useState('');\n\tconst setSnackbar = useSetSnackbar();\n\n\tuseEffect(() => {\n\t\tif (catalog)\n\t\t\tsetName(catalog.Name);\n\t}, [catalog, setName]);\n\n\tconst onCancel = () => {\n\t\tsetName(catalog.Name);\n\t\tsetEdit(false);\n\t};\n\n\tconst onConfirm = () => {\n\t\tsetLoading(true);\n\t\trest(`Catalog/${catalog.Catalog__}`, 'PATCH', { Name: name })\n\t\t\t.then(() => {\n\t\t\t\tsetEdit(false);\n\t\t\t})\n\t\t\t.catch(() => setSnackbar(t('error_cant_update_catalog'), 'error'))\n\t\t\t.finally(() => setLoading(false));\n\t};\n \n\treturn edit ? (\n\t\t<>\n\t\t\t setName(e.target.value)}\n\t\t\t\tdisabled={loading}\n\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\n\t) : ( \n\t\t<>\n\t\t\t{ name }\n\t\t\t\n\t\t\n\t);\n};\n\nEditCatalogTitle.propTypes = {\n\tcatalog: PropTypes.object\n};\n\nexport default EditCatalogTitle;","import React, { useState } from 'react';\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport Button from './../../components/core/input/Button';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport CreateProductModal from './../../components/kakari/CreateProductModal/CreateProductModal';\nimport EditCatalogTitle from './EditCatalogTitle';\nimport Grid from '@material-ui/core/Grid';\nimport Helmet from 'react-helmet';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport { Skeleton } from '@material-ui/lab';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useCatalog } from '../../hooks/useCatalog';\n\n// section illustrations\nimport productsPic from '../../assets/img/catalog/undraw_online_organizer_ofxm.svg';\nimport couponsPic from '../../assets/img/catalog/undraw_Checklist__re_2w7v.svg';\nimport stats from '../../assets/img/catalog/stats.svg';\nimport addProductPic from '../../assets/img/catalog/undraw_add_document_0hek.svg';\n\nconst Catalog = () => {\n\tconst { catalogId } = useParams();\n\tconst history = useHistory();\n\tconst { t } = useTranslation();\n\tconst [catalog] = useCatalog();\n\n\tconst [openProductDialog, setOpenProductDialog] = useState(false);\n\n\tconst onProductCreated = res => {\n\t\tsetOpenProductDialog(false);\n\n\t\tif (res && res.data && res.data.Catalog_Product__)\n\t\t\thistory.push(`/catalog/${catalogId}/product/${res.data.Catalog_Product__}`);\n\t};\n\n\tif (!catalog)\n\t\treturn ;\n\tif (!catalog.data)\n\t\treturn ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('catalog')} {catalog && catalog.data ? catalog.data.Name : ''}\n\t\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\tcatalog && catalog.data ?\n\t\t\t\t\t\t\n\t\t\t\t\t\t:\n\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('catalog_list_products')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('catalog_products_description')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('catalog_list_product_list')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('catalog_list_softwares')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('catalog_softwares_description')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('softwares_table_list')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('add_software')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('catalog_list_coupon_list')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('catalog_coupons_description')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('catalog_list_coupon_list')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('product_add_coupon')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('catalog_stats_title')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('catalog_stats_desc')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('view_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Catalog;\n","import {useRest} from '@karpeleslab/react-klbfw-hooks';\nimport {useEffect, useState} from 'react';\n\n// Currency map caches for quick lookup\nlet currencyMap = {};\n\nfunction formatPriceCurrency(price, format) {\n\tif (format.Symbol_Position === 'before')\n\t\treturn format.Symbol + price;\n\treturn price + format.Symbol;\n}\n\nexport const useCurrencies = () => {\n\tconst [currencies] = useRest('Currency');\n\n\tuseEffect(() => {\n\t\tif (!currencies) return;\n\t\tcurrencies.data.forEach(c => {\n\t\t\tcurrencyMap[c.Currency__] = c;\n\t\t});\n\t}, [currencies]);\n\n\treturn currencies;\n};\n\n// We don't directly query the currency itself, we list all currencies to force the cache generation\nexport const useCurrency = currencyCode => {\n\tconst [currency, setCurrency] = useState(null);\n\tconst currencies = useCurrencies();\n\n\tuseEffect(() => {\n\t\tif (!(currencyCode in currencyMap)) setCurrency(null);\n\t\telse setCurrency(currencyMap[currencyCode]);\n\t}, [currencies, currencyCode]);\n\n\treturn currency;\n};\nexport const useCurrencyName = currencyCode => {\n\tconst [name, setName] = useState('');\n\tconst currencies = useCurrencies();\n\n\tuseEffect(() => {\n\t\tif (!(currencyCode in currencyMap)) setName(currencyCode); // fallback\n\t\telse setName(currencies[currencyCode].Name);\n\t}, [currencies, currencyCode, setName]);\n\n\treturn name;\n};\n\nexport const useCurrencyFormatedPrice = (price, currencyCode) => {\n\tconst [formatedPrice, setFormatedPrice] = useState('');\n\tconst currencies = useCurrencies();\n\n\tuseEffect(() => {\n\t\tif (!(currencyCode in currencyMap)) setFormatedPrice(`${price} ${currencyCode}`); // fallback\n\t\telse setFormatedPrice(formatPriceCurrency(price, currencyMap[currencyCode]));\n\t}, [currencies, currencyCode, setFormatedPrice, price]);\n\n\treturn formatedPrice;\n};\n\n// Use this is you really can't use the hook or the component \n// You should not that is the currencies are not loaded prior, this function will not format the price correctly\nexport const currencyFormatPrice = (price, currencyCode) => {\n\tif (!(currencyCode in currencyMap)) return `${price} ${currencyCode}`; // fallback\n\treturn formatPriceCurrency(price, currencyMap[currencyCode]);\n};","import {useCurrencyFormatedPrice} from '../../../hooks/useCurrency';\n\nconst CurrencyFormatedPrice = ({ currencyCode, price }) => {\n\tconst formated = useCurrencyFormatedPrice(price, currencyCode);\n\treturn formated;\n};\n\nexport default CurrencyFormatedPrice;","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport { rest } from '@karpeleslab/klbfw';\n\nimport { useSetSnackbar } from './../../../hooks/useSnackbar';\n\nimport Button from './../../core/input/Button';\nimport ConfirmDialog from './../../layout/ConfirmDialog/ConfirmDialog';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\n\nconst DeleteCouponBtn = ({ coupon, onDeleted }) => {\n\tconst {t} = useTranslation(); \n\tconst [loading, setLoading] = useState(false);\n\tconst [open, setOpen] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst deleteCoupon \t\t\t\t= () => {\n\t\tsetOpen(false);\n\t\tsetLoading(true);\n\t\trest(`Catalog/Coupon/${coupon.Catalog_Coupon__}`, 'DELETE')\n\t\t\t.then(() => onDeleted(coupon))\n\t\t\t.catch(() => setSnackbar(t('error_cant_delete_coupon'), 'error'))\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t}\n\t\t\t\tloading={loading}\n\t\t\t\tonClick={() => setOpen(true)}\n\t\t\t>\n\t\t\t\t{t('delete')}\n\t\t\t\n\t\t\t setOpen(false)}\n\t\t\t/>\n\t\t\n\t);\n};\n\nDeleteCouponBtn.propTypes = {\n\tcoupon: PropTypes.object,\n\tonDeleted: PropTypes.func \n}; \n\nexport default DeleteCouponBtn;","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\n\nimport Button \t\t\t from './../../core/input/Button';\nimport {CopyToClipboard} from 'react-copy-to-clipboard';\nimport LinkIcon from '@material-ui/icons/Link';\n\nimport { useSetSnackbar } from './../../../hooks/useSnackbar';\n\nconst LinkBtn = ({ coupon, product }) => {\n\tconst {t} = useTranslation(); \n\tconst setSnackbar = useSetSnackbar();\n\n\tconst copyToClipboard = () => {\n\t\tsetSnackbar(t('copied_to_clipboard_success'), 'success');\n\t}; \n\n\treturn (\n\t\t copyToClipboard()}\n\t\t>\n\t\t\t}\n\t\t\t>\n\t\t\t\t{t('direct_link')}\n\t\t\t\n\t\t\n\t);\n};\n\nLinkBtn.propTypes = {\n\tcoupon : PropTypes.object,\n\tproduct: PropTypes.object\n};\n\nexport default LinkBtn;\n","import React from 'react'; \nimport {useTranslation} from 'react-i18next';\nimport moment from 'moment';\nimport { useParams } from 'react-router-dom';\n\nimport CurrencyFormatedPrice from './../Currency/CurrencyFormatedPrice';\nimport DeleteCouponBtn from './DeleteCouponBtn';\nimport LinkBtn from './LinkBtn';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\n\nconst Template = (coupons, fetch, loading, onCouponDeleted) => {\n\tconst {t} = useTranslation();\n\tconst { catalogId } = useParams();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ coupon => moment(parseInt(coupon.Expiration.unixms)).format('LLL') }\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\tcoupon => (\n\t\t\t\t\t\tcoupon.Reduction_Type === 'fixed' ?\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{coupon.Reduction_Value}\n\t\t\t\t\t\t\t\t{coupon.Reduction_Type === 'rate' ? '%' : coupon.Reduction_Currency}\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcoupon.Reduction_Max_Amount &&\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t
\n ( max)\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t)\n\n\t\t\t\t}\n\t\t\t
\n\t\t\t\n\t\t\t\t{ coupon => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{coupon.Status !== 'deleted' && \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{(catalogId === 'ctlg-3iimq5-j6af-hl3p-5uso-nt4bqohm' && coupon.Target_Value) &&\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t  \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Template;","import React, { useEffect, useState } from 'react';\nimport { useCatalogCoupons } from './../../../hooks/useCatalog';\nimport NotFound from './../../core/utils/NotFound/NotFound';\nimport Forbidden from './../../core/utils/Forbidden/Forbidden';\n\nimport Template from './CouponsList.template';\n\nconst CouponsList = () => {\n\tconst [coupons, fetch, loading] = useCatalogCoupons();\n\tconst [displayCoupons, setDisplayCoupons] = useState(null);\n\n\tconst onCouponDeleted = coupon => {\n\t\tconst data = [...coupons.data];\n\t\tconst couponIdx = data.findIndex(c => c.Catalog_Coupon__ === coupon.Catalog_Coupon__);\n\t\tif (couponIdx < 0)\n\t\t\treturn;\n\t\t\t\n\t\tdata.splice(couponIdx, 1);\n\t\tsetDisplayCoupons({ ...coupons, data });\n\t};\n\n\tuseEffect(() => {\n\t\tif (coupons && coupons.data) {\n\t\t\tconst data = [...coupons.data].filter(c => c.Status !== 'deleted');\n\t\t\tsetDisplayCoupons({ ...coupons, data });\n\t\t}\n\t}, [coupons, setDisplayCoupons]);\n\n\tif (coupons && coupons.error) {\n\t\tswitch (coupons.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else \n\t\treturn Template(displayCoupons, fetch, loading, onCouponDeleted);\n};\n\nexport default CouponsList;","import React, { useEffect, useState } from 'react';\nimport { useParams }\t from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { rest }\t\t\t\t\t\t from '@karpeleslab/klbfw';\nimport moment from 'moment';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Grid from '@material-ui/core/Grid';\nimport LinkIcon from '@material-ui/icons/Link';\nimport TextField from '@material-ui/core/TextField';\n\nimport { useSetSnackbar } from './../../../hooks/useSnackbar';\n\nconst CreateCouponShortcut = () => {\n\tconst { t } = useTranslation();\n\tconst {catalogId} = useParams();\n\tconst [code, setCode] = useState(null);\n\tconst [open, setOpen] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst copyToClipboard = () => {\n\t\tsetSnackbar(t('copied_to_clipboard_success'), 'success');\n\t}; \n\n\tuseEffect(() => {\n\t\tif (!open)\n\t\t\treturn setCode(null);\n\n\t\tconst now = new Date();\n\t\tconst expiry = new Date(now.setDate(now.getDate() + (2 * 7))); // in two weeks from now\n\t\trest(`Catalog/${catalogId}/Coupon`, 'POST', {\n\t\t\tCaption_Type : 'static',\n\t\t\tCaption_Value : `Retention coupon RE ${moment(now).format('YYYYMMDD.HHmmss')}`,\n\t\t\tExpiration : expiry.toISOString(), \n\t\t\tReduction_Type : 'rate',\n\t\t\tReduction_Value: 20,\n\t\t\tTarget_Type : 'global',\n\t\t\tType : 'once',\n\t\t}).then(({ data }) => {\n\t\t\tif (data && data.Code)\n\t\t\t\tsetCode(data.Code);\n\t\t\telse\n\t\t\t\tsetSnackbar(t('error_cant_create_coupon'), 'error');\n\t\t}).catch(() => {\n\t\t\tsetSnackbar(t('error_cant_create_coupon'), 'error');\n\t\t});\n\t}, [open]); // eslint-disable-line\n\n\treturn (\n\t\t<>\n\t\t\t setOpen(true)}\n\t\t\t\tdisabled={open}\n\t\t\t>\n\t\t\t\t{t('create_instant_coupon')}\n\t\t\t\n\t\t\t setOpen(false)}\n\t\t\t\taria-labelledby=\"new-coupon-created-dialog-title\"\n\t\t\t\taria-describedby=\"new-coupon-created-dialog-description\"\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t{t('new_coupon_created')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcode ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t copyToClipboard()}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{t('copy_to_clipboard')}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CreateCouponShortcut;","import React from 'react';\nimport {useParams, Link} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next'; \n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CouponsList from '../../components/kakari/CouponsList/CouponsList';\nimport CreateCouponShortcut from '../../components/kakari/CreateCouponShortcut/CreateCouponShortcut';\nimport Grid from '@material-ui/core/Grid';\nimport Helmet from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle\t \t from '../../components/core/typography/PageTitle';\n\nconst Coupons = () => {\n\tconst { catalogId } = useParams();\n\tconst { t } = useTranslation();\n \n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('coupons_list')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('navigation_catalog_create_coupon')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Coupons;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport FormControl from '@material-ui/core/FormControl';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport {Select} from '@material-ui/core';\n\nimport {useCurrencies} from '../../../hooks/useCurrency';\n\nconst Currencies = ({ onChange, inputProps = {}, allowEmpty = false, value = undefined }) => {\n\tconst currencyLabel = React.useRef(null);\n\tconst [currencyLabelWidth, setCurrencyLabelWidth] = useState(0);\n\tconst { t } = useTranslation();\n\tconst currencies = useCurrencies();\n\n\tuseEffect(() => {\n\t\tif (!currencyLabel || !currencyLabel.current) return;\n\t\tsetCurrencyLabelWidth(currencyLabel.current.offsetWidth);\n\t}, [currencyLabel]);\n\n\t// Todo loading indicator when currencies is null\n\treturn (\n\t\t\n\t\t\t{t('currency_lbl')}\n\t\t\t\n\t\t\t\t{(currencies && allowEmpty) && }\n\t\t\t\t{currencies && currencies.data.map((v) =>\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n};\n\nCurrencies.propTypes = { \n\tallowEmpty: PropTypes.bool, \n\tinputProps: PropTypes.object, \n\tonChange : PropTypes.func, \n\tvalue : PropTypes.string \n};\n\nexport default Currencies;","import React \t\t\tfrom 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Currencies from './../../core/input/Currencies';\nimport {DateTimePicker} from '@material-ui/pickers';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport FormLabel from '@material-ui/core/FormLabel';\nimport Grid from '@material-ui/core/Grid';\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport MomentUtils from '@date-io/moment';\nimport ProductAutocomplete from './ProductsAutocomplete';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport TextField from '@material-ui/core/TextField';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport LinkIcon from '@material-ui/icons/Link';\n\nimport { useSetSnackbar } from './../../../hooks/useSnackbar';\n\nconst Template = ({ \n\tcaptionType,\n\tcouponTarget, \n\tcreateCoupon, \n\texpiry,\n\tloading, \n\treducCurrency,\n\treductionType, \n\tsetCaptionText, \n\tsetCaptionType,\n\tsetCouponTarget,\n\tsetExpiry,\n\tsetProduct,\n\tsetReducCurrency, \n\tsetReducMaxValue, \n\tsetReductionType,\n\tsetReducValue,\n\tnewCode,\n\tonCloseDialog\n}) => {\n\tconst {t} = useTranslation();\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst copyToClipboard = () => {\n\t\tsetSnackbar(t('copied_to_clipboard_success'), 'success');\n\t}; \n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setExpiry(v)}\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('coupon_target')}\n\t\t\t\t\t\t\t\t setCouponTarget(e.target.value)}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={t('coupon_target_product')}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={t('coupon_target_global')}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{couponTarget === 'product' && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('coupon_reduction_type')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t setReductionType(e.target.value)}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={t('coupon_reduction_type_percentage')}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={t('coupon_reduction_type_fixed_value')}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setReducValue(e.target.value)}\n\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\tendAdornment: reductionType === 'rate' && '%',\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{reductionType === 'fix' && (\n\t\t\t\t\t\t\t\t setReducCurrency(e.target.value)}\n\t\t\t\t\t\t\t\t\tvalue={reducCurrency}\n\t\t\t\t\t\t\t\t\tallowEmpty\n\t\t\t\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\t\t\t\tfullWidth: true,\n\t\t\t\t\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\trequired={true}\n\t\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setReducMaxValue(e.target.value)}\n\t\t\t\t\t\t\t\trequired={false}\n\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{reductionType === 'rate' && (\n\t\t\t\t\t\t\t\t setReducCurrency(e.target.value)}\n\t\t\t\t\t\t\t\t\tvalue={reducCurrency}\n\t\t\t\t\t\t\t\t\tallowEmpty\n\t\t\t\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\t\t\t\tfullWidth: true,\n\t\t\t\t\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\trequired={true}\n\t\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('coupon_caption')}\n\t\t\t\t\t\t\t\t setCaptionType(e.target.value)}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={t('coupon_caption_type_none')}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={t('coupon_caption_type_static')}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={t('coupon_caption_type_locale_key')}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{captionType !== 'none' && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t setCaptionText(e.target.value)}\n\t\t\t\t\t\t\t\t\trequired={captionType !== 'none'}\n\t\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('create')}\n\t\t\t\t\t\t\t\t{loading && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('new_coupon_created')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t copyToClipboard()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t('copy_to_clipboard')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nTemplate.propTypes = { \n\tcaptionType : PropTypes.string,\n\tcouponTarget : PropTypes.string, \n\tcreateCoupon : PropTypes.func, \n\texpiry : PropTypes.string,\n\tloading : PropTypes.bool, \n\tnewCode : PropTypes.string,\n\tonCloseDialog : PropTypes.func,\n\treducCurrency : PropTypes.string,\n\treducMaxValue : PropTypes.number,\n\treductionType : PropTypes.string, \n\treducValue : PropTypes.number,\n\tsetCaptionText : PropTypes.func, \n\tsetCaptionType : PropTypes.func,\n\tsetCode : PropTypes.func, \n\tsetCouponTarget : PropTypes.func,\n\tsetCouponType : PropTypes.func,\n\tsetExpiry : PropTypes.func,\n\tsetProduct : PropTypes.func,\n\tsetReducCurrency: PropTypes.func, \n\tsetReducMaxValue: PropTypes.func, \n\tsetReductionType: PropTypes.func,\n\tsetReducValue : PropTypes.func,\n};\n\nexport default Template;","import { useEffect, useState } \t\tfrom 'react';\nimport { useTranslation }\t\t\tfrom 'react-i18next';\nimport { useHistory, useParams }\tfrom 'react-router-dom';\nimport { rest }\t\t\t\t\t\tfrom '@karpeleslab/klbfw';\n\nimport {useSetSnackbar} \tfrom './../../../hooks/useSnackbar';\n\nimport Template from './CreateCouponForm.template';\n\nconst CreateCouponForm = () => {\n\tconst {catalogId} = useParams();\n\tconst [captionText, setCaptionText] = useState('');\n\tconst [captionType, setCaptionType] = useState('none');\n\tconst [code, setCode] = useState('');\n\tconst [couponTarget, setCouponTarget] = useState('global');\n\tconst [couponType, setCouponType] = useState('once');\n\tconst [expiry, setExpiry] = useState(null);\n\tconst history = useHistory();\n\tconst [loading, setLoading] = useState(false);\n\tconst [product, setProduct] = useState(null);\n\tconst [reducCurrency, setReducCurrency]\t= useState('');\n\tconst [reducMaxValue, setReducMaxValue] = useState(null);\n\tconst [reductionType, setReductionType] = useState('rate');\n\tconst [reducValue, setReducValue] = useState(10);\n\tconst [newCode, setNewCode] = useState(null);\n\tconst setSnackbar = useSetSnackbar();\n\tconst {t} = useTranslation();\n\n\tuseEffect(() => {\n\t\tconst now = new Date();\n\t\tsetExpiry(new Date(now.setMonth(now.getMonth() + 1)).toUTCString());\n\t}, []); //eslint-disable-line\n\n\tconst buildParams = () => {\n\t\tconst params = {\n\t\t\tType\t\t\t: couponType,\n\t\t\tExpiration\t\t: expiry, \n\t\t\tTarget_Type \t: couponTarget,\n\t\t\tReduction_Type\t: reductionType,\n\t\t\tReduction_Value : reducValue,\n\t\t\tCaption_Type \t: captionType\n\t\t};\n\n\t\tif (code) \n\t\t\tparams.Code = code;\n\n\t\tif (couponTarget !== 'global' && product)\n\t\t\tparams.Target_Value = product.Catalog_Product__;\n\t\t\n\t\tif (reducMaxValue)\n\t\t\tparams.Reduction_Max_Amount = reducMaxValue;\n\n\t\tif (reducCurrency) \n\t\t\tparams.Reduction_Currency = reducCurrency;\n\n\t\tif (captionType !== 'none')\t\n\t\t\tparams.Caption_Value = captionText;\n\n\t\treturn params;\n\t};\n\n\tconst onCloseDialog = () => {\n\t\thistory.push(`/catalog/${catalogId}/coupons`);\n\t};\n\n\tconst createCoupon = () => {\n\t\tsetLoading(true);\n\t\trest(`Catalog/${catalogId}/Coupon`, 'POST', buildParams())\n\t\t\t.then((res) => { \n\t\t\t\tif (res.result === 'success') {\n\t\t\t\t\tif (res.data.Catalog__ === 'ctlg-3iimq5-j6af-hl3p-5uso-nt4bqohm' && res.data.Target_Type === 'product') // shell special case\n\t\t\t\t\t\tsetNewCode(`https://www.shells.com/cart?product=coupon:${res.data.Code}`);\n\t\t\t\t\telse \n\t\t\t\t\t\tsetNewCode(res.data.Code);\n\t\t\t\t} else \n\t\t\t\t\tsetSnackbar(t('error_cant_create_coupon'), 'error');\n\t\t\t})\n\t\t\t.catch(() => setSnackbar(t('error_cant_create_coupon'), 'error'))\n\t\t\t.finally(() => setLoading(false));\n\t}; \n\n\treturn Template({\n\t\tcaptionText, \n\t\tcaptionType,\n\t\tcouponTarget,\n\t\tcode, \n\t\tcouponType, \n\t\tcreateCoupon, \n\t\texpiry,\n\t\tloading,\n\t\treducCurrency,\n\t\treducMaxValue,\n\t\treductionType, \n\t\treducValue,\n\t\tsetCaptionText, \n\t\tsetCaptionType,\n\t\tsetCode, \n\t\tsetCouponTarget,\n\t\tsetCouponType,\n\t\tsetExpiry,\n\t\tsetProduct,\n\t\tsetReducCurrency, \n\t\tsetReducMaxValue, \n\t\tsetReductionType,\n\t\tsetReducValue,\n\t\tnewCode,\n\t\tonCloseDialog\n\t}); \n};\n\nexport default CreateCouponForm;\n","import React from 'react';\nimport {useParams} from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport Box from '@material-ui/core/Box';\nimport CreateCouponForm from '../../components/kakari/CreateCouponForm/CreateCouponForm';\nimport CreateCouponShortcut from '../../components/kakari/CreateCouponShortcut/CreateCouponShortcut';\nimport Grid from '@material-ui/core/Grid';\nimport Helmet from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport Paper from '@material-ui/core/Paper';\n\nconst CreateCoupon = () => {\n\tconst { t } = useTranslation();\n\tconst { catalogId } = useParams();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('title_create_coupon')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('title_create_coupon')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CreateCoupon;\n","import React, {useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {useTranslation} \t\t\tfrom 'react-i18next';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport TextField from '@material-ui/core/TextField';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nimport {useRealms} from './../../../hooks/useRealm';\n\nconst RealmSelection = ({ value, setValue, required = false, disabled = false, showHelper = true }) => {\n\tconst { t } \t\t\t= useTranslation();\n\tconst [open, setOpen] \t\t\t= useState(false);\n\tconst [textValue, setTextValue]\t= useState(value ? value.Name : '');\n\tconst [list, refreshList] = useRealms(value ? value.Name : '');\n\n\tconst [refreshTimeout, setRefreshTimeout] = useState({ timeout: false });\n\tuseEffect(() => {\n\t\tif (refreshTimeout && refreshTimeout.timeout) \n\t\t\tclearTimeout(refreshTimeout.timeout);\n\t\t\n\t\tsetRefreshTimeout({ timeout: setTimeout(() => {\n\t\t\trefreshList(textValue); \n\t\t}, 330)});\n\t}, [textValue, refreshList]); // eslint-disable-line\n\n\treturn (\n\t\t setOpen(true)}\n\t\t\tonOpen={() => setOpen(true)}\n\t\t\tonClose={() => setOpen(false)}\n\t\t\tdisabled={disabled}\n\t\t\tvalue={value}\n\t\t\tonChange={(e, value) => setValue(value)}\n\t\t\tgetOptionSelected={(option, value) => option.Realm__ === value.Realm__}\n\t\t\tgetOptionLabel={(option) => option === '' ? '' : option.Name}\n\t\t\toptions={list ? list.data : []}\n\t\t\tloading={!list || !list.data}\n\t\t\trenderInput={(params) => (\n\t\t\t\t { setOpen(true); setTextValue(e.target.value); }}\n\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t...params.InputProps,\n\t\t\t\t\t\tendAdornment: (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{!list || !list.data ? : null}\n\t\t\t\t\t\t\t\t{params.InputProps.endAdornment}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n};\n\nRealmSelection.propTypes = {\n\tdisabled : PropTypes.bool,\n\trequired : PropTypes.bool,\n\tsetValue : PropTypes.func, \n\tshowHelper: PropTypes.bool, \n\tvalue : PropTypes.string\n}; \n\nexport default RealmSelection;","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { rest } from '@karpeleslab/klbfw';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\nimport RealmSelection from './../../../core/input/RealmSelection';\nimport Switch from '@material-ui/core/Switch';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useFetchProductInformation, useSetProductSale } from './../../../../hooks/useProductActions';\n\nconst Availability = ({ productId }) => {\n\tconst { t } = useTranslation();\n\tconst [fetchInfo, loading] = useFetchProductInformation();\n\tconst [displaySales, setDisplaySales] = useState([]);\n\tconst [setSale, loadingSale] = useSetProductSale(productId);\n\tconst [newRow, setNewRow] = useState({\n\t\tRealm__: null,\n\t\tName : '', // for the autocomplete\n\t\tvisible: false\n\t});\n\n\tconst addNewAvailability = () => {\n\t\tsetSale(newRow)\n\t\t\t.then(() => \n\t\t\t\tfetchInfo(productId)\n\t\t\t\t\t.then(({ data }) =>{ \n\t\t\t\t\t\tsetDisplaySales(data.sale);\n\t\t\t\t\t\tsetNewRow({\n\t\t\t\t\t\t\tRealm__: null,\n\t\t\t\t\t\t\tName : '', // for the autocomplete\n\t\t\t\t\t\t\tvisible: false\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t);\n\t};\n\n\tconst toggleVisibility = (index, visible) => {\n\t\tsetDisplaySales(ds => {\n\t\t\tconst tmp = [...ds];\n\t\t\ttmp[index].Visible = visible ? 'Y' : 'N';\n\t\t\treturn tmp;\n\t\t});\n\t};\n\n\tconst updateRow = index => {\n\t\tsetSale({\n\t\t\tRealm__: displaySales[index].Realm__,\n\t\t\tvisible: displaySales[index].Visible === 'Y'\n\t\t})\n\t\t\t.then(() => \n\t\t\t\tfetchInfo(productId)\n\t\t\t\t\t.then(({ data }) =>{ \n\t\t\t\t\t\tsetDisplaySales(data.sale);\n\t\t\t\t\t\tsetNewRow({\n\t\t\t\t\t\t\tRealm__: null,\n\t\t\t\t\t\t\tName : '', // for the autocomplete\n\t\t\t\t\t\t\tvisible: false\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t);\n\t};\n\n\tuseEffect(() => {\n\t\tfetchInfo(productId)\n\t\t\t.then(({ data }) => setDisplaySales(data.sale));\n\t}, []); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\tdisplaySales.forEach((sale, idx) => {\n\t\t\tif (!sale.Realm && !sale.loadingRealm) {\n\t\t\t\tsetDisplaySales(ds => {\n\t\t\t\t\tconst tmp = [...ds];\n\t\t\t\t\ttmp[idx].loadingRealm = true;\n\t\t\t\t\treturn tmp;\n\t\t\t\t});\n\t\t\t\trest(`Realm/${sale.Realm__}`)\n\t\t\t\t\t.then(({ data }) =>{ \n\t\t\t\t\t\tsetDisplaySales(ds => {\n\t\t\t\t\t\t\tconst tmp = [...ds];\n\t\t\t\t\t\t\ttmp[idx].Realm = data.Name;\n\t\t\t\t\t\t\treturn tmp;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}, [displaySales]); //eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\tloading ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('product_availability_realm')}\n\t\t\t\t\t\t\t\t\t\t\t{t('product_availability_visibility')}\n\t\t\t\t\t\t\t\t\t\t\t{t('product_availability_actions')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{displaySales.map((s, i) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{s.Realm || s.Realm__}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t toggleVisibility(i, e.target.checked)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t updateRow(i)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('product_availability_update')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t setNewRow(nr => ({...nr, Name, Realm__ }))}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={newRow}\n\t\t\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowHelper={false}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t setNewRow(nr => ({...nr, visible: e.target.checked }))}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t('product_availability_add')}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)\n\t\t\t\t}\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('product_availability_setting_sale')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nAvailability.propTypes = {\n\tproductId: PropTypes.string.isRequired\n};\n\nexport default Availability;","import React, {useContext, useEffect} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {MenuContext} from '../../../../context/MenuContext';\n\nconst ConfirmBeforeLeave = ({ enforce = false, children }) => {\n\tconst [, setMenu] = useContext(MenuContext);\n\n\tuseEffect(() => {\n\t\tsetMenu(m => ({ ...m, confirmBeforeNav: enforce }));\n\t}, [enforce, setMenu]);\n\n\treturn <>{children};\n};\n\nConfirmBeforeLeave.propTypes = {\n\tchildren: PropTypes.node,\n\tenforce : PropTypes.bool\n};\n\nexport default ConfirmBeforeLeave;","import React, {useEffect, useRef} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport Typography from '@material-ui/core/Typography';\n\nimport './FormNavigation.scss';\n\nlet clicked = false;\n\nconst FormNavigation = ({ items }) => {\n\tconst {t} = useTranslation();\n\tconst navRef = useRef(null);\n\n\tuseEffect(() => {\n\t\tif (!document || !window)\n\t\t\treturn;\n\n\t\tdocument.addEventListener('scroll', () => {\n\t\t\tif (!navRef || !navRef.current)\n\t\t\t\treturn;\n\n\t\t\tconst boundingRect = navRef.current.getBoundingClientRect();\n\t\t\tnavRef.current.classList.toggle('sticky', window.pageYOffset - boundingRect.top > 0);\n\n\t\t\tif (clicked) \n\t\t\t\treturn;\n \n\t\t\tlet likelyActiveAnchor = null;\n\t\t\titems.forEach(i => {\n\t\t\t\tconst el = document.querySelector(`#fieldset-${i.toLowerCase()}`);\n\t\t\t\tif (!el)\n\t\t\t\t\treturn; \n\n\t\t\t\tconst rect = el.getBoundingClientRect();\n\t\t\t\tif ((rect.top > -200 && rect.top < 200) || \n (rect.top + rect.width) < window.innerHeight)\n\t\t\t\t\tlikelyActiveAnchor = `#fieldset-${i.toLowerCase()}`;\n\t\t\t});\n\n\t\t\tnavRef.current.querySelectorAll('.anchor-link').forEach(el => {\n\t\t\t\tif (el.href.endsWith(likelyActiveAnchor))\n\t\t\t\t\tel.classList.toggle('active', true);\n\t\t\t\telse if (el.classList.contains('active'))\n\t\t\t\t\tel.classList.remove('active');\n\t\t\t});\n \n\t\t\tif (!likelyActiveAnchor)\n\t\t\t\tnavRef.current.querySelector('[href=\"#fieldset-native\"]').classList.toggle('active', true);\n \n\t\t});\n }, []); // eslint-disable-line\n\n\tconst setActive = (anchor) => {\n\t\tclicked = true;\n\t\tlet currentScrollPos = window.pageYOffset;\n\t\tnavRef.current.querySelectorAll('.anchor-link').forEach(el => {\n\t\t\tif (el.href.toString().endsWith(anchor))\n\t\t\t\tel.classList.toggle('active', true);\n\t\t\telse if (el.classList.contains('active'))\n\t\t\t\tel.classList.remove('active');\n\t\t});\n\t\tconst itvl = setInterval(() => {\n\t\t\tif (window.pageYOffset !== currentScrollPos)\n\t\t\t\tcurrentScrollPos = window.pageYOffset;\n\t\t\telse {\n\t\t\t\tclicked = false;\n\t\t\t\tclearInterval(itvl);\n\t\t\t}\n\t\t}, 250);\n\t\tconst timeout = setTimeout(() => {\n\t\t\tclicked = false;\n\t\t\tif (itvl)\n\t\t\t\tclearInterval(itvl);\n\t\t\tclearTimeout(timeout);\n\t\t}, 5000);\n\t};\n\n\treturn (\n\t\t\n\t);\n};\n\nFormNavigation.propTypes = {\n\titems: PropTypes.array\n}; \n\nexport default FormNavigation;","import React, {useEffect, useState} from 'react'; \nimport { useTranslation } from 'react-i18next'; \nimport PropTypes from 'prop-types';\n\nimport Box from '@material-ui/core/Box'; \nimport FormControl from '@material-ui/core/FormControl';\nimport FormControlLabel from '@material-ui/core/FormControlLabel'; \nimport FormLabel from '@material-ui/core/FormLabel';\nimport Grid from '@material-ui/core/Grid';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport { KeyboardDatePicker } from '@material-ui/pickers';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport MomentUtils from '@date-io/moment';\nimport Paper from '@material-ui/core/Paper';\nimport Select from '@material-ui/core/Select';\nimport Switch from '@material-ui/core/Switch';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\n\n// this component dynamically generates an input for every native field\n// so if some of those are not meant to be displayed, we need to manually\n// exclude them. \nconst fieldsToExclude = [\n\t'Parent_Catalog_Product__',\n\t'SKU',\n\t'Created',\n\t'Partner_Group_Key'\n];\n\nconst GenerateNativeFields = ({ data, fieldsValue, setFieldsValue, loading }) => {\n\tconst [native, setNative] = useState();\n\tconst [formattedFields, setFormattedFields] = useState([]);\n\tconst {t} = useTranslation();\n \n\tconst updateFieldValue = (v, n) => ({\n\t\tLanguage__ : null,\n\t\tRealm : null, \n\t\tValue : v,\n\t\tVariable : `Native.${n}`\n\t});\n\n\tuseEffect(() => {\n\t\tsetNative(data.values.Native);\n }, []); //eslint-disable-line\n\n\tuseEffect(() => { \n\t\tsetFormattedFields([]);\n \n\t\tfor (const f in native) {\n\t\t\tconst fieldDef = data.fields[f];\n \n\t\t\tif (!fieldDef || fieldsToExclude.includes(f))\n\t\t\t\tcontinue;\n\n\t\t\tif (native[f] && native[f].length > 0 && !fieldsValue[f]) \n\t\t\t\tsetFieldsValue(ff => ({ ...ff, [f]: updateFieldValue(native[f][0].Value, f) }));\n\n\t\t\tswitch (fieldDef.Editor) {\n\t\t\t\tcase 'string':\n\t\t\t\t\tsetFormattedFields(ff => [...ff, (\n\t\t\t\t\t\t setFieldsValue(fv => ({ ...fv, [f]: updateFieldValue(e.target.value, f) }))}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'multiline':\n\t\t\t\t\tsetFormattedFields(ff => [...ff, (\n\t\t\t\t\t\t setFieldsValue(fv => ({ ...fv, [f]: updateFieldValue(e.target.value, f) }))}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'select':\n\t\t\t\t\t// check if Y/N; if so, make a switch\n\t\t\t\t\tif (fieldDef.Values === 'Y,N') {\n\t\t\t\t\t\tsetFormattedFields(ff => [...ff, (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t setFieldsValue(fv => ({ ...fv, [f]: updateFieldValue(e.target.checked ? 'Y' : 'N', f) }))}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetFormattedFields(ff => [...ff, (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(`label_${f.toLowerCase()}`)}\n\t\t\t\t\t\t\t\t setFieldsValue(fv => ({ ...fv, [f]: updateFieldValue(e.target.value, f) }))}\n\t\t\t\t\t\t\t\t\tfullWidth={true}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfieldDef.Values.split(',').map(v => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(`option_${v}`)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)]);\n\t\t\t\t\t}\n\t\t\t\t\t// check if waits for the id of something\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'date':\n\t\t\t\t\tsetFormattedFields(ff => [...ff, (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setFieldsValue(fv => ({ ...fv, [f]: updateFieldValue(d.format(), f) }))}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t)]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'readonly':\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}, [\n\t\tnative, \n\t\tsetFormattedFields, \n\t\tfieldsValue, \n\t\tloading, \n\t\tsetFieldsValue, \n\t\tt, \n\t\tdata.fields,\n\t]); \n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('fieldset_native')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tformattedFields.map((f, i) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{ f }\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nGenerateNativeFields.propTypes = {\n\tdata : PropTypes.object,\n\tfieldsValue : PropTypes.object,\n\tloading : PropTypes.bool,\n\tsetFieldsValue: PropTypes.func\n}; \n\nexport default GenerateNativeFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport {getLocale} from '@karpeleslab/klbfw';\n\nimport {DatePicker, MuiPickersUtilsProvider} from '@material-ui/pickers';\nimport MomentUtils from '@date-io/moment';\n\nconst locale = getLocale().split('-')[0];\nif (locale !== 'en')\n\trequire('moment/locale/' + locale);\n\nmoment.locale(locale);\n\nconst Date = ({variant, ...props}) => {\n\tif(variant) props.inputVariant = variant;\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nDate.propTypes = {\n\tvariant: PropTypes.string\n};\n\nexport default Date;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nconst useStyles = makeStyles(() => {\n\tconst variants = [\n\t\t{ variant: '1x1', ratio: 1 },\n\t\t{ variant: '4x3', ratio: 1.3333 },\n\t];\n\n\tconst sizes = [\n\t\t{ size: 'small', height: 16 },\n\t\t{ size: 'medium', height: 32 },\n\t\t{ size: 'large', height: 48 },\n\t\t{ size: 'x-large', height: 64 }\n\t];\n\n\tlet c = {\n\t\t'wrapper': {\n\t\t\tposition: 'relative',\n\t\t}\n\t};\n\tvariants.forEach((v) => {\n\t\tsizes.forEach((s) => {\n\t\t\tc['flag-' + v.variant + '-' + s.size] = {\n\t\t\t\twidth\t: (s.height * v.ratio) + 'px',\n\t\t\t\theight\t: s.height + 'px',\n\t\t\t\tborder\t: '1px solid #cacaca;',\n\t\t\t\t'&.disabled': {\n\t\t\t\t\tfilter: 'grayscale(100%)'\n\t\t\t\t},\n\t\t\t\t'&.rounded': {\n\t\t\t\t\tborderRadius: '50%',\n\t\t\t\t}\n\t\t\t};\n\t\t\tc['wrapper-' + v.variant + '-' + s.size] = {\n\t\t\t\twidth\t: (s.height * v.ratio) + 'px',\n\t\t\t\theight\t: s.height + 'px',\n\t\t\t\t'&.rounded': {\n\t\t\t\t\toverflow: 'hidden'\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t});\n\n\treturn c;\n\n});\n\n\nconst Flag = React.forwardRef((props, ref) => {\n\tconst { code, ratio = '4x3', size = 'medium', disabled = false, rounded = false } = props;\n\tconst classes = useStyles();\n\treturn
\n\t\t{code}
;\n});\n\nFlag.displayName = 'Flag';\nFlag.propTypes = {\n\tcode : PropTypes.string, \n\tdisabled: PropTypes.bool, \n\tratio : PropTypes.string, \n\trounded : PropTypes.bool, \n\tsize : PropTypes.string \n};\n\nexport default Flag;","import moment from 'moment';\n\nexport const isObject = (obj) => {\n\treturn typeof obj === 'object' && obj !== null && !Array.isArray(obj);\n};\n\nexport const isFunction = (obj) => {\n\treturn !!(obj && obj.constructor && obj.call && obj.apply);\n};\nexport const pad = (num, size) => {\n\tlet s = num + '';\n\twhile (s.length < size) s = '0' + s;\n\treturn s;\n};\n\nexport const deepCopy = (object) => {\n\treturn JSON.parse(JSON.stringify(object));\n};\n\n/**\n * Format bytes as human-readable text.\n *\n * @param bytes Number of bytes.\n * @param si True to use metric (SI) units, aka powers of 1000. False to use\n * binary (IEC), aka powers of 1024.\n * @param dp Number of decimal places to display.\n *\n * @return Formatted string.\n */\nexport const bytesToHuman = (bytes, si = false, dp = 1) => {\n\tconst thresh = si ? 1000 : 1024;\n\n\tif (Math.abs(bytes) < thresh) {\n\t\treturn bytes + ' B';\n\t}\n\n\tconst units = si\n\t\t? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n\t\t: ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\n\tlet u = -1;\n\tconst r = 10 ** dp;\n\n\tdo {\n\t\tbytes /= thresh;\n\t\t++u;\n\t} while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1);\n\n\n\treturn parseFloat(bytes.toFixed(dp)) + ' ' + units[u];\n};\n\nexport const metricSecondToHumanToken = seconds => {\n\tconst minute = 60;\n\tconst hour = 60 * minute;\n\tconst day = hour * 24;\n\tif (seconds >= day)\n\t\treturn ['metrics_days', { value: Math.floor(seconds / day) }];\n\tif (seconds >= hour)\n\t\treturn ['metrics_hours', { value: Math.floor(seconds / hour) }];\n\tif (seconds >= minute)\n\t\treturn ['metrics_minutes', { value: Math.floor(seconds / minute) }];\n\treturn ['metrics_seconds', { value: seconds }];\n};\n\n\nexport const roundDecimal = (value, decimal = 2) => {\n\treturn Math.round((value + Number.EPSILON) * Math.pow(10, decimal)) / Math.pow(10, decimal);\n};\n\nexport const downloadUrl = (url, name = 'download') => {\n\tlet a = document.createElement('a');\n\ta.href = url;\n\ta.download = name;\n\ta.click();\n};\n\nexport const formatDuration = (duration) => {\n\tconst time = moment()\n\t\t.seconds(duration.seconds())\n\t\t.minutes(duration.minutes());\n\n\treturn time.format('mm:ss');\n};\n\nexport const tokenize = (string) => {\n\t// Convert to lowercase ASCII\n\tstring = string.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").toLowerCase();\n\n\t// Remove non-alphanumeric characters and replace with hyphens\n\tstring = string.replace(/[^a-z0-9]+/g, '-');\n\n\t// Trim hyphens at the start and end\n\treturn string.replace(/^-+|-+$/g, '');\n}","import React, { useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport {useRest} from '@karpeleslab/react-klbfw-hooks';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Date from '../input/Date';\nimport Flag from '../data/Flag';\nimport Grid from '@material-ui/core/Grid';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport ListSubheader from '@material-ui/core/ListSubheader';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport {Select} from '@material-ui/core';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport {isObject} from '../../../utils/misc';\nimport {getLocale} from '@karpeleslab/klbfw';\n\n\nconst buildItem = (v, t) => {\n\tif (!v) return; // The default value\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('language_' + v.split('-')[0].toLowerCase())}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nconst MultiLangTextField = ({\n\tallowDelete \t= true, \n\tdisabled \t\t= false, \n\tendAdornment \t= null, \n\tsetValue, \n\ttype, \n\tvalue, \n\tselectOptions \t= null,\n\t...rest\n}) => {\n\tconst [languages] \t\t\t\t= useRest('Language');\n\tconst [langs, setLangs]\t\t\t= useState([]);\n\tconst [open, setOpen] \t\t\t= useState(false);\n\n\tconst [objectMode] = useState(isObject(value));\n\tconst [lang, setLang] \t\t\t= useState(objectMode ? (Object.keys(value)?.[0] ?? getLocale()) : 'any');\n\tconst [valueMap, setValueMap] \t= useState(objectMode ? value : {});\n\n\tconst {t} = useTranslation();\n\n\tuseEffect(() => {\n\t\tif (!languages || !languages.data) \n\t\t\treturn; \n\t\tsetLangs(languages.data);\n\t}, [languages, setLangs]);\n\n\tuseEffect(() => {\n\t\tif(objectMode) {\n\t\t\treturn;\n\t\t}\n\t\tconst m = {};\n\t\tvalue.forEach(v => m[v.Language__ ?? 'any'] = v);\n\t\tsetValueMap(m);\n\n\t}, [value, setValueMap, objectMode]);\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleOpen = e => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tsetOpen(true);\n\t};\n\n\tconst onChangeObjectMode = (l, v) => {\n\t\tlet newValue = {...value};\n\t\tif (type === 'date' && !v && allowDelete) delete newValue[l];\n\t\telse if (type !== 'date' && !v.trim() && allowDelete) delete newValue[l];\n\t\telse newValue[l] = v;\n\n\t\tsetValue(newValue);\n\t};\n\n\tconst onChange = (l, v) => {\n\t\tif(objectMode) {\n\t\t\tonChangeObjectMode(l, v);\n\t\t\treturn;\n\t\t}\n\n\t\tl = l === 'any' ? null : l;\n\t\tlet newValue = [...value];\n\t\tif (type === 'date' && !v && allowDelete) \n\t\t\tsetValue(newValue.filter(nv => nv.Language__ !== l));\n\t\telse if (type !== 'date' && !v.trim() && allowDelete) \n\t\t\tsetValue(newValue.filter(nv => nv.Language__ !== l));\n\t\telse {\n\t\t\tfor (let i = 0; i < newValue.length; i++) {\n\t\t\t\tif (newValue[i].Language__ === l) {\n\t\t\t\t\tnewValue[i].Value = type === 'date' ? v : v;\n\t\t\t\t\tsetValue(newValue);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnewValue.push({Language__: l, Value: v});\n\t\t\tsetValue(newValue);\n\t\t}\n\t};\n\n\tconst Field \t= type === 'date' ? Date : TextField;\n\tconst defaultV \t= type === 'date' ? null : '';\n\treturn (\n\t\t onChange(lang, type === 'date' ? e : e.target.value)}\n\t\t\tInputProps={\n\t\t\t\t{\n\t\t\t\t\tendAdornment:\n\t\t\t\t\t\t( e.stopPropagation()}>\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t setLang(e.target.value)}\n\t\t\t\t\t\t\t\t\tonClose={handleClose}\n\t\t\t\t\t\t\t\t\tonOpen={handleOpen}\n\t\t\t\t\t\t\t\t\tdisabled={langs.length < 1 || disabled}\n\t\t\t\t\t\t\t\t\tvalue={lang}\n\t\t\t\t\t\t\t\t\tnative={false}\n\t\t\t\t\t\t\t\t\trenderValue={(v) => {\n\t\t\t\t\t\t\t\t\t\tif (langs.length < 1) return ;\n\t\t\t\t\t\t\t\t\t\tif (v === 'any') return t('i18n_input_default');\n\t\t\t\t\t\t\t\t\t\tif (v)\n\t\t\t\t\t\t\t\t\t\t\treturn ;\n\n\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{!objectMode && {t('i18n_input_default')}}\n\t\t\t\t\t\t\t\t\t{t('i18n_input_filled')}\n\t\t\t\t\t\t\t\t\t{(objectMode ? Object.keys(value) : value).map((v) => buildItem(objectMode ? v : v.Language__, t))}\n\t\t\t\t\t\t\t\t\t{t('i18n_input_available')}\n\t\t\t\t\t\t\t\t\t{langs.map((v) => {\n\t\t\t\t\t\t\t\t\t\treturn (!([v.Language__] in valueMap)) ? buildItem(v.Language__, t) : null;\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{endAdornment && endAdornment}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t>\n\t\t\t{type === 'select' && selectOptions ? \n\t\t\t\tselectOptions.map(o => (\n\t\t\t\t\t{t(`option_${o}`)})) \n\t\t\t\t: null}\n\t\t\n\t);\n};\n\nMultiLangTextField.propTypes = {\n\tallowDelete : PropTypes.bool, \n\tdisabled : PropTypes.bool, \n\tendAdornment : PropTypes.node, \n\tselectOptions: PropTypes.array,\n\tsetValue : PropTypes.func, \n\ttype : PropTypes.string, \n\tvalue : PropTypes.string \n\n};\n\nexport default MultiLangTextField;","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport MultiLangTextField from './MultiLangTextField';\nimport IconButton from '@material-ui/core/IconButton';\nimport LockIcon from '@material-ui/icons/Lock';\nimport LockOpenIcon from '@material-ui/icons/LockOpen';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nconst deepCopy = object => JSON.parse(JSON.stringify(object));\n\nconst getParent = (productId, value) => {\n\tlet parent = null;\n\n\tfor (let i = 0; i < value.length; i++) {\n\t\tif (!value[i].Catalog_Product__) continue;\n\t\tif (value[i].Catalog_Product__ === productId) return null;\n\t\tparent = value[i].Catalog_Product__;\n\t}\n\n\treturn parent;\n};\n\nconst ProductInput = ({ \n\tvalue\t\t= '', \n\tproductId, \n\tsetValue\t= () => {}, \n\tdisabled \t= false, \n\t...rest \n}) => {\n\tconst [override, setOverride] = useState(false);\n\tconst [parent, setParent] = useState(getParent(productId, value));\n\tconst [original, setOriginal] = useState(value); // used when we revert to the value used defined by the parent.\n\tconst { t } = useTranslation();\n\n\tuseEffect(() => {\n\t\tsetParent(getParent(productId, value));\n\t}, [value, setParent, productId]);\n\n\tconst overrideHandler = (e) => {\n\t\te.preventDefault();\n\t\tsetOverride(!override);\n\t\tif (override) setValue(original);\n\t\telse setOriginal(deepCopy(value));\n\t};\n\n\treturn (\n\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{override && }\n\t\t\t\t\t\t{!override && }\n\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t/>\n\t);\n};\n\nProductInput.propTypes = {\n\tdisabled : PropTypes.bool, \n\tproductId: PropTypes.string, \n\tsetValue : PropTypes.func, \n\tvalue : PropTypes.string\n};\n\nexport default ProductInput;\n","import React, { useEffect, useState } from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Box from '@material-ui/core/Box';\nimport Collapse from '@material-ui/core/Collapse';\nimport FormControl \tfrom '@material-ui/core/FormControl';\nimport FormLabel from '@material-ui/core/FormLabel';\nimport Grid from '@material-ui/core/Grid';\nimport ProductInput from './../../../core/input/ProductInput';\nimport Paper from '@material-ui/core/Paper';\nimport Switch from '@material-ui/core/Switch';\nimport Typography from '@material-ui/core/Typography';\n\nconst GenerateOtherFields = ({ data, productId, fieldsValue, setFieldsValue, loading, setNamespaces }) => {\n\tconst [preparedFields, setPreparedFields] = useState([]);\n\n\tuseEffect(() => {\n\t\tsetPreparedFields(sortFieldsByNamespace(data, setNamespaces));\n\t}, [setPreparedFields, data, setNamespaces]);\n\n\treturn (\n\t\t<>\n\t\t\t{\n\t\t\t\tObject.keys(preparedFields).map(el => (\n\t\t\t\t\t
\n\t\t\t\t))\n\t\t\t}\n\t\t\n\t);\n};\n\nconst sortFieldsByNamespace = (data, setNamespaces) => {\n\tconst byNamespace = {};\n\tfor(const f in data.fields) {\n\t\tconst namespace = f.substring(0, f.indexOf('~')); // get the field's namespace\n\t\tconst fieldName = f.substring(f.indexOf('~') + 1); // get the field's name\n\t\tif (namespace.length <= 0) // if no namespace then probably native so we can ignore\n\t\t\tcontinue;\n\n\t\tif (data.fields[f].Editor === 'readonly')\n\t\t\tcontinue; \n \n\t\tif (!byNamespace[namespace]) // if we haven't already, we prepare that namespace's existence\n\t\t\tbyNamespace[namespace] = {};\n\t\tif (!byNamespace[namespace][fieldName]) // if that field doesn't exist yet in that namespace\n\t\t\tbyNamespace[namespace][fieldName] = {};\n \n\t\tif (data.values[namespace] && data.values[namespace][fieldName] && data.values[namespace][fieldName].values) { // that field may already have some values\n\t\t\tif (byNamespace[namespace][fieldName].values)\n\t\t\t\tbyNamespace[namespace][fieldName].values.push(...data.values[namespace][fieldName]);\n\t\t\telse { \n\t\t\t\tbyNamespace[namespace][fieldName] = {\n\t\t\t\t\tinfo : data.fields[f],\n\t\t\t\t\tvalues : data.values[namespace][fieldName]\n\t\t\t\t};\n\t\t\t}\n\t\t} else { \n\t\t\tbyNamespace[namespace][fieldName] = {\n\t\t\t\tinfo : data.fields[f], \n\t\t\t\tvalues : [{\n\t\t\t\t\tLanguage__ : null,\n\t\t\t\t\tRealm : null, \n\t\t\t\t\tValue : '',\n\t\t\t\t\tVariable : f.replace('~', '.')\n\t\t\t\t}]\n\t\t\t};\n\t\t}\n\t} \n\tsetNamespaces(Object.keys(byNamespace));\n\n\treturn byNamespace; \n};\n\nconst Fieldset = ({name, fields, productId, fieldsValue, setFieldsValue, loading}) => {\n\tconst [collapse, setCollapse] = useState(true);\n\tconst {t} = useTranslation(); \n\n\tif (!fields)\n\t\treturn; \n\n\tconst formattedFields = [];\n\n\tfor (const f in fields) {\n\t\tlet type = '';\n\t\tswitch (fields[f].info.Editor) {\n\t\t\tcase 'date':\n\t\t\t\ttype = 'date';\n\t\t\t\tbreak;\n\t\t\tcase 'select': \n\t\t\t\ttype = 'select';\n\t\t\t\tbreak;\n\t\t\tdefault: \n\t\t\t\ttype = 'text';\n\t\t\t\tbreak;\n\t\t}\n\t\tformattedFields.push(\n\t\t\t setFieldsValue({ ...fieldsValue, [f]: v })}\n\t\t\t\tdisabled={loading}\n\t\t\t\tlabel={t(`label_${fields[f].info.Field_Name.toLowerCase()}`)}\n\t\t\t\thelperText={/*t(`helper_${fields[f].info.Field_Name.toLowerCase()}`)*/ ''}\n\t\t\t\tvariant='outlined'\n\t\t\t\ttype={type}\n\t\t\t\tselectOptions={type === 'select' && fields[f].info.Values.split(',')}\n\t\t\t/>\n\t\t);\n\t}\n \n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(`fieldset_${name.toLowerCase()}`)}\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t setCollapse(c => !c)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tformattedFields.map((f, i) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{ f }\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nGenerateOtherFields.propTypes = {\n\tdata : PropTypes.object, \n\tfieldsValue : PropTypes.object, \n\tloading : PropTypes.bool, \n\tproductId : PropTypes.string, \n\tsetFieldsValue: PropTypes.func, \n\tsetNamespaces : PropTypes.func\n}; \n\nFieldset.propTypes = {\n\tfields : PropTypes.object, \n\tfieldsValue : PropTypes.object, \n\tloading : PropTypes.bool, \n\tname : PropTypes.string, \n\tproductId : PropTypes.string, \n\tsetFieldsValue: PropTypes.func, \n}; \n\nexport default GenerateOtherFields;","import React, { useEffect, useState } from 'react'; \nimport {useTranslation} from 'react-i18next'; \nimport PropTypes from 'prop-types';\nimport {rest} from '@karpeleslab/klbfw';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '../../core/input/Button';\nimport ConfirmBeforeLeave from '../../core/utils/ConfirmBeforeLeave/ConfirmBeforeLeave';\nimport FormNavigation from './FormNavigation/FormNavigation';\nimport GenerateNativeFields from './formBuilderUtils/generateNativeFields';\nimport GenerateOtherFields from './formBuilderUtils/generateOtherFields';\nimport Grid from '@material-ui/core/Grid';\nimport Hidden from '@material-ui/core/Hidden';\nimport SaveIcon from '@material-ui/icons/Save';\n\nimport {useSetSnackbar}\tfrom '../../../hooks/useSnackbar';\n\nconst EditProductFormBuilder = ({ data, productId }) => { \n\tconst [namespaces, setNamespaces] = useState([]);\n\tconst [nativeFields, setNativeFields] = useState({});\n\tconst [otherFields, setOtherFields] = useState({});\n\tconst [loading, setLoading] = useState(false);\n\tconst {t} = useTranslation();\n\tconst setSnackbar = useSetSnackbar();\n\n\t// the following states and effects are used to know when fields have been modified by user\n\t// and avoid first render + first \"population\" of the native fields\n\tconst [unsaved, setUnsaved]\t= useState(false);\n\tconst [countN, setCountN] = useState(0);\n\tconst [countO, setCountO] = useState(0);\n\tuseEffect(() => {\n\t\tif (Object.keys(nativeFields).length === 0) return; \n\t\telse if (countN < 1) setCountN(1);\n\t\telse setUnsaved(true);\n\t}, [nativeFields]); //eslint-disable-line\n\tuseEffect(() => {\n\t\tif (countO < 1) setCountO(1);\n\t\telse setUnsaved(true);\n\t}, [otherFields]); //eslint-disable-line\n\n\tconst save = () => {\n\t\tsetLoading(true);\n\t\tconst tmp = Object.values(otherFields);\n\t\tconst allOtherFields = [];\n\t\ttmp.forEach(el => allOtherFields.push(...el));\n\t\trest(`Catalog/Product/${productId}:batchUpdate`, 'POST', {\n\t\t\tupdate: {\n\t\t\t\t...Object.values(nativeFields),\n\t\t\t\t...allOtherFields\n\t\t\t}\n\t\t})\n\t\t\t.then(() =>{ \n\t\t\t\tsetUnsaved(false);\n\t\t\t\tsetSnackbar(t('success_product_saved'), 'success');\n\t\t\t})\n\t\t\t.catch(() => setSnackbar(t('error_cant_save_product'), 'error'))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn (\n\t\tdata ? \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\t\tonClick={save}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('save_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t:\n\t\t\tnull\n\t); \n}; \n\nEditProductFormBuilder.propTypes = {\n\tdata : PropTypes.object,\n\tproductId: PropTypes.string\n};\n\nexport default EditProductFormBuilder;","import {useEffect, useState} from 'react';\nimport {useParams} from 'react-router-dom';\nimport {rest, upload} from '@karpeleslab/klbfw';\n\nexport const useUploadFiles = () => {\n\tconst {productId} = useParams();\n\tconst [count, setCount] = useState(0);\n\tconst [completed, setCompleted] = useState([]);\n\tconst [progress, setProgress] = useState(0);\n\tconst [running, setRunning] = useState(0);\n \n\tconst handleUpload = (files = [], params = {}) => {\n\t\tsetCount(files.length);\n\t\tupload.onprogress = d => {\n\t\t\tlet blockTotal = 0;\n\t\t\tlet progressTotal = 0;\n\t\t\td.running.forEach((running) => {\n\t\t\t\tif (running.status !== 'pending' && running.status !== 'complete') {\n\t\t\t\t\tsetRunning(r => r + 1);\n\t\t\t\t\tprogressTotal += running.done;\n\t\t\t\t\tblockTotal += running.blocks;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsetProgress(blockTotal > 0 ? progressTotal / blockTotal : 0);\n\t\t};\n\n\t\tfor (let i = 0; i < files.length; i++) {\n\t\t\tupload.append(`Catalog/Product/${productId}:addImage`, files[i], params)\n\t\t\t\t.then(({ final }) => setCompleted(c => [...c, final]));\n\t\t}\n \n\t\tsetCompleted([]);\n\t\tupload.run();\n\t}; \n\n\tuseEffect(() => {\n\t\tsetRunning(count - completed.length);\n }, [completed]); //eslint-disable-line\n \n\treturn [\n\t\thandleUpload, \n\t\tcount,\n\t\trunning, \n\t\tprogress, \n\t\tcompleted\n\t];\n};\n\nexport const useSetMainImage = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst doIt = imgId => {\n\t\tsetLoading(true);\n\t\treturn rest(`Catalog/Product/Image/${imgId}:setRole`, 'POST', { role: 'main' })\n\t\t\t.then(() => true)\n\t\t\t.catch(() => false)\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res; \n\t\t\t});\n\t};\n\treturn [doIt, loading];\n};\n\nexport const useDeleteImage = () => {\n\tconst {productId} = useParams();\n\tconst [loading, setLoading] = useState(false);\n\tconst doIt = (imgId, extraParams = {}) => {\n\t\tsetLoading(true);\n\t\treturn rest(`Catalog/Product/${productId}:deleteImage`, 'POST', { imageId: imgId, ...extraParams })\n\t\t\t.then(() => true)\n\t\t\t.catch(() => false)\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res; \n\t\t\t});\n\t};\n\treturn [doIt, loading]; \n};\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nimport Button from '@material-ui/core/Button';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\n\nimport {useDeleteImage} from './../../../../hooks/useProductMedias';\n\nconst imageVariation = 'strip&scale_crop=240x180&background_color=white&format=jpeg';\nconst useStyles = makeStyles(() => ({ imgToInsert: { textAlign: 'center' }}));\n\nconst DeleteDialog = ({ img, open, setOpen, onDelete, onDeleted }) => {\n\tconst classes = useStyles(); \n\tconst {t} = useTranslation(); \n\tconst [deleteImage, deleting] = useDeleteImage();\n\n\tconst handleDelete = () => {\n\t\tonDelete(img);\n\t\tdeleteImage(img.Catalog_Product_Image__)\n\t\t\t.then((res) => {\n\t\t\t\tsetOpen(false);\n\t\t\t\tif (res) \n\t\t\t\t\tonDeleted(img, res);\n\t\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('confirm_delete_picture_title')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('confirm_delete_picture_desc')}\n\t\t\t\t\t
\n\t\t\t\t\t{t('are_you_sure')}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nDeleteDialog.propTypes = {\n\timg : PropTypes.string,\n\tonDelete : PropTypes.func,\n\tonDeleted: PropTypes.func, \n\topen : PropTypes.bool,\n\tsetOpen : PropTypes.func\n}; \n\nexport default DeleteDialog;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '@material-ui/core/Button';\nimport Grid from '@material-ui/core/Grid';\nimport {Link} from 'react-router-dom';\nimport Typography from '@material-ui/core/Typography';\n\nconst Empty = ({title, text = '',textI18Key, action = null, graphic = null}) => {\n\tconst {t} = useTranslation();\n\treturn (\n\t\t\n\n\t\t\t{graphic && \n\t\t\t\tartist\n\t\t\t}\n\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t{textI18Key ? t(textI18Key) : text}\n\t\t\t\t\t\n\t\t\t\t\t{action && \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nEmpty.propTypes = {\n\taction : PropTypes.object, \n\tgraphic : PropTypes.string,\n\ttext : PropTypes.string,\n\ttextI18Key: PropTypes.string, \n\ttitle : PropTypes.string \n};\n\nexport default Empty;\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport EmptyState from './../../../core/feedback/State/Empty';\nimport Graphic from './../../../../assets/img/gallery.svg';\n\nconst Empty = () => {\n\tconst {t} = useTranslation();\n\treturn (\n\t\t\n\t);\n};\n\nexport default Empty;","import React, {useEffect, useRef, useState} from 'react';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\nimport moment from 'moment';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport {useParams} from 'react-router-dom';\nimport {useTheme} from '@material-ui/core/styles';\nimport {useTranslation} from 'react-i18next';\n\nimport AddIcon from '@material-ui/icons/Add';\nimport Button from '@material-ui/core/Button';\nimport DeleteDialog from './DeleteDialog';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport Empty from './Empty';\nimport Grid from '@material-ui/core/Grid';\nimport GridList from '@material-ui/core/GridList';\nimport GridListTile from '@material-ui/core/GridListTile';\nimport GridListTileBar from '@material-ui/core/GridListTileBar';\nimport IconButton from '@material-ui/core/IconButton';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport StarIcon from '@material-ui/icons/Star';\nimport Toolbar from './../../../core/typography/Toolbar';\nimport Typography from '@material-ui/core/Typography';\n\nimport {useProductGallery} from './../../../../hooks/useCatalog';\nimport {useSetSnackbar} from './../../../../hooks/useSnackbar';\nimport {useUploadFiles, useSetMainImage} from './../../../../hooks/useProductMedias';\n\nconst PRODUCT_GALLERY_IMAGE_VARIATION = 'strip&scale_crop=240x180&background_color=white&format=jpeg';\n\nconst useStyles = makeStyles(() => ({\n\ticon: {\n\t\tcolor: 'rgba(255, 255, 255, 0.54)',\n\t\t'&:hover': {\n\t\t\tcolor: 'rgba(255, 255, 255, 0.8)',\n\t\t}\n\t},\n\ticonMain: {\n\t\tcolor: 'rgba(255, 255, 255, 1)',\n\t\t'&:hover': {\n\t\t\tcolor: 'rgba(255, 255, 255, 0.8)',\n\t\t}\n\t},\n\ttitleBar: {\n\t\tbackground:\n 'linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, ' +\n 'rgba(0,0,0,0.3) 70%, rgba(0,0,0,0) 100%)',\n\t},\n}));\n\nconst Gallery = () => {\n\tconst [\n\t\tuploadFiles, \n\t\tuploadImgCount,\n\t\tuploadImgRunningCount, \n\t\tuploadImgRunningPercent, \n\t\tuploadImgDoneCount\n\t] = useUploadFiles();\n\t\n\tconst {productId} = useParams();\n\tconst [gallery, fetch, loading] = useProductGallery(PRODUCT_GALLERY_IMAGE_VARIATION);\n\tconst [setMainImage, settingMainImage] = useSetMainImage(); \n\tconst [displayGallery, setDisplayGallery] = useState([]);\n\tconst setSnackbar = useSetSnackbar();\n\n useEffect(() => { fetch(); }, []); //eslint-disable-line\n\tuseEffect(() => {\n\t\tif (gallery && gallery.length > 0 && displayGallery.length < 1)\n\t\t\tsetDisplayGallery(gallery);\n\n\t\tconst tmp = [];\n\t\tuploadImgDoneCount.forEach(img => {\n\t\t\tconst idx = displayGallery.findIndex(i => i.Catalog_Product_Image__ === img.Catalog_Product_Image__);\n\t\t\tif (idx < 0)\n\t\t\t\ttmp.push(img);\n\t\t});\n\t\tsetDisplayGallery(dg => ([...dg, ...tmp]));\n }, [gallery, uploadImgDoneCount]); //eslint-disable-line\n\n\tconst classes = useStyles();\n\tconst theme = useTheme();\n\tconst fullScreen = useMediaQuery(theme.breakpoints.down('sm'));\n\tconst inputFileRef = useRef(null);\n\tconst placeholders = [...Array(5).keys()];\n\tconst {t} = useTranslation();\n\n\tconst [deleteDialogShown, setDeleteDialogShown] = useState(false);\n\tconst [selectedImg, setSelectedImg] = useState(null);\n\n\tconst displayLoading = () => placeholders.map(k =>\n\t\t\n\t\t\t\n\t\t\n\t);\n\n\tconst displayImages = () => displayGallery.map((g) => {\n\t\tconst img = g.Drive_Item;\n\t\treturn (\n\t\t\t\n\t\t\t\t{img.Filename}/\n\t\t\t\t setImageAsMain(g.Catalog_Product_Image__)}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\tclassName={classes.titleBar}\n\t\t\t\t\tactionPosition=\"left\"\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\t\tsetSelectedImg(g);\n\t\t\t\t\t\t\tsetDeleteDialogShown(true);\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\n\t\t);\n\t}\n\t);\n\n\tconst displayUpload = uploadImgCount !== uploadImgDoneCount.length;\n\n\tlet donePercent = 0;\n\tlet bufferPercent = 0;\n\n\tconst onDeleteImg = (image) => {\n\t\tconst idx = displayGallery.findIndex(img => img.Catalog_Product_Image__ === image.Catalog_Product_Image__);\n\t\tif (idx >= 0) {\n\t\t\tconst tmp = [...displayGallery];\n\t\t\ttmp.splice(idx, 1);\n\t\t\tsetDisplayGallery(tmp);\n\t\t}\n\t};\n\n\tconst onImgDeleted = (image, result) => {\n\t\tif (!result) { // error\n\t\t\tsetSnackbar(t('error_cant_delete_image'), 'error');\n\t\t\tsetDisplayGallery(dg => ([...dg, image]));\n\t\t} \n\t};\n\n\tconst setImageAsMain = (Catalog_Product_Image__) => {\n\t\tsetMainImage(Catalog_Product_Image__)\n\t\t\t.then(() => {\n\t\t\t\tconst idx = displayGallery.findIndex(img => img.Catalog_Product_Image__ === Catalog_Product_Image__);\n\t\t\t\tif (idx >= 0) {\n\t\t\t\t\tconst tmp = [...displayGallery];\n\t\t\t\t\ttmp.forEach(img => img.Role = img.Catalog_Product_Image__ === Catalog_Product_Image__ ? 'main' : 'list');\n\t\t\t\t\tsetDisplayGallery(tmp);\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tif (displayUpload) {\n\t\tdonePercent = (100 * uploadImgDoneCount.length) / uploadImgCount;\n\t\tbufferPercent = (100 * (uploadImgDoneCount.length + uploadImgRunningCount)) / uploadImgCount;\n\t\tdonePercent += ((bufferPercent - donePercent) * uploadImgRunningPercent);\n\t}\n\n\tconst handleFileInputChange = e => {\n\t\tif (e.target.files.length < 1) \n\t\t\treturn;\n\t\tuploadFiles(e.target.files, {\n\t\t\trole: 'list',\n\t\t\timage_variation: PRODUCT_GALLERY_IMAGE_VARIATION\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{!loading &&\n\t\t\t\t\t\t}\n\t\t\t\t\t{!loading &&\n\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('product_gallery_desc')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{displayUpload && }\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{loading && displayLoading()}\n\t\t\t\t\t{!loading && displayImages()}\n\t\t\t\t\t{(selectedImg) &&\n\t\t\t\t\t\t onDeleteImg(img)}\n\t\t\t\t\t\t\tonDeleted={onImgDeleted}\n\t\t\t\t\t\t/>}\n\t\t\t\t\n\n\t\t\t\t{!loading && displayGallery.length < 1 && }\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Gallery;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport {getLocale} from '@karpeleslab/klbfw';\n\nimport {DateTimePicker, MuiPickersUtilsProvider} from '@material-ui/pickers';\nimport MomentUtils from '@date-io/moment';\n\nconst locale = getLocale().split('-')[0];\nif (locale !== 'en')\n\trequire('moment/locale/' + locale);\n\nmoment.locale(locale);\n\nconst DateTime = ({variant, ...props}) => {\n\tif(variant) props.inputVariant = variant;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nDateTime.propTypes = {\n\tvariant: PropTypes.string\n};\n\nexport default DateTime;\n","import React, {useEffect, useState} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport {useRest} from '@karpeleslab/react-klbfw-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\n\nconst VATHelperDialog = ({open, setOpen, onClose}) => {\n\tconst [price, setPrice] = useState(0.0);\n\tconst [result, setResult] = useState(0.0);\n\tconst { t } = useTranslation();\n\tconst [baseVat] = useRest('Order/Vat');\n\tconst [vat, setVat] = useState(baseVat ? baseVat.data : 0);\n\n\tuseEffect(() => {\n\t\tsetResult(parseFloat((price / (1 + (vat / 100))).toFixed(5)));\n\t}, [vat, price, setResult]);\n\n\tconst submitHandle = (e) => {\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\t\tonClose(result);\n\t\tsetOpen(false);\n\t};\n\n\treturn (\n\t\t {\n\t\t\t\tsetPrice(0.0);\n\t\t\t}}\n\t\t\topen={open}\n\t\t\taria-labelledby={t('vat_helper_title')}\n\t\t\taria-describedby={t('vat_helper_title')}\n\t\t\tonRendered={() => {\n\t\t\t}}\n\t\t>\n\t\t\t
\n\t\t\t\t{t('vat_helper_title')}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('vat_helper_desc')}\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setPrice(e.target.value)}\n\t\t\t\t\t\t\t\ttype='number'\n\t\t\t\t\t\t\t\tInputProps={{ step: 'any' }}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setVat(e.target.value)}\n\t\t\t\t\t\t\t\ttype='number'\n\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\tstep : 'any', \n\t\t\t\t\t\t\t\t\tmin : 0,\n\t\t\t\t\t\t\t\t\tendAdornment: '%'\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nVATHelperDialog.propTypes = {\n\tonClose: PropTypes.func,\n\topen : PropTypes.bool,\n\tsetOpen: PropTypes.func\n}; \n\nexport default VATHelperDialog;\n","import React, {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport {getCurrency} from '@karpeleslab/klbfw';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport KeyboardIcon from '@material-ui/icons/Keyboard';\nimport TextField from '@material-ui/core/TextField';\nimport VATHelperDialog from './VATHelperDialog';\n\nconst Price = ({ onValueChange, preferredCurrency, helperEnabled = true, ...rest }) => {\n\tconst currency = preferredCurrency ?? getCurrency();\n\tconst [showVATHelper, setShowVATHelper] = useState(false);\n\tconst { t } = useTranslation();\n \n\treturn (\n\t\t<>\n\t\t\t onValueChange(e.target.value)}\n\t\t\t\ttype='number'\n\t\t\t\tInputProps={\n\t\t\t\t\t{\n\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\tstep: 'any', \n\t\t\t\t\t\tstartAdornment: {currency},\n\t\t\t\t\t\tendAdornment: helperEnabled ?\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t setShowVATHelper(true)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t/>\n\t\t\t\n\t\t\n\t);\n};\n\nPrice.propTypes = {\n\thelperEnabled : PropTypes.bool,\n\tpreferredCurrency: PropTypes.string, \n\tonValueChange : PropTypes.func \n};\n\nexport default Price;\n","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Alert from '@material-ui/lab/Alert';\n\nconst PriceFeeNotice = ({ data }) => {\n\tconst [rate, setRate] = useState(null);\n\tconst {t} = useTranslation();\n\n\tuseEffect(() => {\n\t\tsetRate(data ? (data.Rate ? data.Rate.Rate : null) : null);\n\t}, [data, setRate]);\n\n\tif (!rate) return <>;\n\n\treturn (\n\t\t{t('price_fee_notice', {rate: rate})}\n\t);\n};\n\nPriceFeeNotice.propTypes = {\n\tdata: PropTypes.object\n}; \n\nexport default PriceFeeNotice;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nimport TableCell from '@material-ui/core/TableCell';\nimport TableRow from '@material-ui/core/TableRow';\n\nconst useStyles = makeStyles(theme => ({\n\tpast : { color: theme.palette.text.disabled },\n\tcurrent : { color: theme.palette.primary.main },\n\tfuture : { color: theme.palette.text.secondary }\n}));\n\nexport const getDecimals = () => {\n\treturn 5; // TBD\n};\n\nconst Row = ({ price, showOldPrices, vat }) => {\n\tconst classes = useStyles();\n\tconst now = moment().unix();\n\tconst oldPrice = price.End_Date && now > price.End_Date.unix;\n\tconst {t} = useTranslation();\n\n\tif (oldPrice && !showOldPrices)\n\t\treturn null;\n\n\tconst futurePrice = price.Start_Date.unix > now;\n\tconst current = !futurePrice && !oldPrice;\n\n\tlet cname = '';\n\tif (current) \n\t\tcname = classes.current;\n\tif (oldPrice) \n\t\tcname = classes.past;\n\tif (futurePrice) \n\t\tcname = classes.future;\n\n\tfunction round(value, decimals) {\n\t\treturn Number(Math.round(value + 'e' + decimals) + 'e-' + decimals);\n\t}\n\n\tconst Price = ({value, currency, inclVat = true}) => {\n\t\tlet inclvat = 0;\n\t\tif (vat) {\n\t\t\tinclvat = value + ((value * vat) / 100);\n\t\t}\n\n\t\treturn <>\n\t\t\t{value} ({t('excl_vat')})
\n\t\t\t{(vat && inclVat) && \n\t\t\t\t\n\t\t\t\t\t{round(inclvat, getDecimals(currency))}\n\t\t\t\t ({t('incl_vat')})\n\t\t\t}\n\t\t;\n\t};\n\n\tPrice.propTypes = { \n\t\tcurrency: PropTypes.object, \n\t\tinclVat: PropTypes.bool,\n\t\tvalue: PropTypes.number\n\t}; \n\n\tconst DiscountPriceDisplay = () =>\n\t\t<>\n\t\t\t
\n Discount:
\n\t\t\t\n\t\t;\n\n\treturn \n\t\t\n\t\t\t{price.Discount === 'Y' && }\n\t\t\t{price.Discount === 'N' && }\n\n\t\t\n\t\t\n\t\t\t{price.Currency__}\n\t\t\n\t\t\n\t\t\t{futurePrice && {t('will_start_at')}: }\n\t\t\t{!futurePrice && {t('started_at')}: }\n\n\t\t\t{moment(parseInt(price.Start_Date.unixms)).format('LLL')}\n\n\t\t\t{price.End_Date &&\n\t\t\t\t<>\n\t\t\t\t\t

\n\t\t\t\t\t{oldPrice && {t('ended_at')}: }\n\t\t\t\t\t{!oldPrice && {t('will_end_at')}: }\n\t\t\t\t\t{moment(parseInt(price.End_Date.unixms)).format('LLL')}\n\t\t\t\t\n\t\t\t}\n\t\t
\n\t
;\n};\n\nRow.propTypes = {\n\tprice : PropTypes.object,\n\tshowOldPrices: PropTypes.bool,\n\tvat : PropTypes.number\n}; \n\nexport default Row;","import React, {useEffect, useState} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport {rest} from '@karpeleslab/klbfw';\n\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Grid from '@material-ui/core/Grid';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport MaterialTable from '@material-ui/core/Table';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableCell from '@material-ui/core/TableCell';\nimport Row from './PricingRow';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport Switch from '@material-ui/core/Switch';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TextField from '@material-ui/core/TextField';\n\n\nconst Table = ({ prices, loading }) => {\n\tconst [showOldPrices, setShowOldPrices] = React.useState(false);\n\tconst [vat, setVat] = useState('');\n\tconst { t } = useTranslation();\n\tuseEffect(() => {\n\t\trest('Order/Vat')\n\t\t\t.then(({ data }) => setVat(data.Rate)).catch(() => {\n\t\t\t\t// TBD\n\t\t\t});\n\t}, [setVat]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('tablecell_price')}\n\t\t\t\t\t\t{t('tablecell_currency')}\n\t\t\t\t\t\t{t('tablecell_period')}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t setShowOldPrices(e.target.checked)}\n\t\t\t\t\t\t\t\t\t\tvalue={t('show_old_prices')}\n\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabel={t('show_old_prices')}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{loading && \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\t{\n\t\t\t\t\t\t!loading && prices && \n prices.map(p => )\n\t\t\t\t\t}\n\n\t\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t setVat(e.target.value)}\n\t\t\t\t\t\ttype='number'\n\t\t\t\t\t\tInputProps={\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\t\tendAdornment: %,\n\t\t\t\t\t\t\t\tstartAdornment: {t('vat')}:,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\n\t\t\n\n\t);\n};\n\nTable.propTypes = {\n\tloading: PropTypes.bool,\n\tprices : PropTypes.array\n}; \n\nexport default Table;","import React, {useEffect, useState} from 'react';\nimport {useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport moment from 'moment';\nimport {rest, getCurrency} from '@karpeleslab/klbfw';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Currencies from './../../../core/input/Currencies';\nimport DateTime from './../../../core/input/DateTime';\nimport Grid from '@material-ui/core/Grid';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Price from './../../../core/input/Price';\nimport PriceFeeNotice from './../../../core/feedback/PriceFeeNotice';\nimport RealmSelection from './../../../core/input/RealmSelection';\nimport Tab from '@material-ui/core/Tab';\nimport Table from './../Pricing/PricingTable';\nimport Tabs from '@material-ui/core/Tabs';\nimport Typography from '@material-ui/core/Typography';\n\nimport {useCatalogProductPricing} from './../../../../hooks/useCatalog';\n\nconst Prices = () => {\n\tconst [currency, setCurrency] = useState(getCurrency());\n\tconst [discount, setDiscount] = useState(false);\n\tconst [minStartDate, setMinStartDate] = useState(moment());\n\tconst [originalPrice, setOriginalPrice] = useState('');\n\tconst [price, setPrice] = useState('');\n\tconst [priceCreating, setPriceCreating] = useState(false);\n\tconst [prices, fetchPrices, loadPrices] = useCatalogProductPricing();\n\tconst {productId} = useParams();\n\tconst [realm, setRealm] = useState('');\n\tconst [startDate, setStartDate] = useState(moment());\n\tconst {t} = useTranslation();\n\tconst [tabIndex, setTabIndex] = useState(0);\n\n\tconst [simpleSubmitBtnEnabled, setSimpleSubmitBtnEnabled] = useState(false);\n\n useEffect(() => { fetchPrices(); }, []); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\tif (priceCreating) {\n\t\t\tsetSimpleSubmitBtnEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (price === '') {\n\t\t\tsetSimpleSubmitBtnEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (currency === '') {\n\t\t\tsetSimpleSubmitBtnEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (discount && originalPrice === '') {\n\t\t\tsetSimpleSubmitBtnEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tsetSimpleSubmitBtnEnabled(true);\n\t}, [price, currency, discount, originalPrice, priceCreating]);\n\n\tuseEffect(() => {\n\t\tlet minStartDate = getMinStartDate(prices);\n\t\tsetMinStartDate(minStartDate);\n\t\tsetStartDate(minStartDate);\n\t}, [prices, setMinStartDate, setStartDate]);\n\n\tconst createPrice = () => {\n\t\tsetPriceCreating(true);\n\t\tconst p = {\n\t\t\tCurrency__ : currency,\n\t\t\tDiscount : discount ? 'Y' : 'N',\n\t\t\tPrice : price,\n\t\t\tPublic_Price: discount ? originalPrice : price,\n\t\t\tRealm__ : realm ? realm.Realm__ : null, \n\t\t\tStart_Date : `@${startDate.unix()}` \n\t\t};\n\n\t\trest(`Catalog/Product/${productId}/Price`, 'POST', p)\n\t\t\t.then(() => {\n\t\t\t\tfetchPrices();\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\t// TBD\n\t\t\t})\n\t\t\t.finally(() => setPriceCreating(false));\n \n\t};\n\n\tconst createPriceAddHandler = (e) => {\n\t\te.preventDefault();\n\t\tsetPrice('');\n\t\tsetOriginalPrice('');\n\t\tsetDiscount(false);\n\n\t\tcreatePrice();\n\t};\n\n\tconst DiscountField = () => {\n\t\t\t\tsetDiscount(e.target.checked);\n\t\t\t}}\n\t\t/>}\n\t\tlabel={t('price_discount_label')}\n\t/>;\n\n\tconst getMinStartDate = (prices) => {\n\t\tif (!prices || !prices.data )\n\t\t\treturn moment(moment() + 1000); \n\n\t\tlet minStartDate = null;\n\n\t\tprices.data.forEach((p => {\n\t\t\tif (!p.End_Date) {\n\t\t\t\tminStartDate = parseInt(p.Start_Date.unixms);\n\t\t\t}\n\t\t}));\n\n\t\tif (minStartDate == null) return moment();\n\n\t\treturn moment(minStartDate + 1000); // add one second\n\t};\n\n\tconst handleTabChange = (event, newValue) => {\n\t\tsetPrice('');\n\t\tsetOriginalPrice('');\n\t\tsetDiscount(false);\n\t\tsetTabIndex(newValue);\n\n\t\tlet minStartDate = getMinStartDate(prices);\n\t\tsetMinStartDate(minStartDate);\n\t\tsetStartDate(minStartDate);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ttabIndex === 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t('change_price_desc')}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ttabIndex === 1 &&\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t('schedule_price_desc')}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttabIndex === 1 &&\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t setCurrency(e.target.value)}\n\t\t\t\t\t\t\t\t\t\t\tvalue={currency}\n\t\t\t\t\t\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t\t\t\t\t\t\t\tfullWidth: true,\n\t\t\t\t\t\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: priceCreating\n\t\t\t\t\t\t\t\t\t\t\t}} />\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t{discount && \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('change_btn')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default Prices;\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport { SwitchTransition, CSSTransition } from 'react-transition-group';\n\nimport Availability from './Availability/Availability';\nimport Box from '@material-ui/core/Box';\nimport EditProductFormBuilder from './EditProductFormBuilder';\nimport Gallery from './gallery/Gallery';\nimport Grid from '@material-ui/core/Grid';\nimport Prices from './Prices/Prices';\nimport Tab from '@material-ui/core/Tab';\nimport Tabs from '@material-ui/core/Tabs';\n\nfunction a11yProps(index) {\n\treturn {\n\t\tid: `simple-tab-${index}`,\n\t\t'aria-controls': `simple-tabpanel-${index}`,\n\t};\n}\n\nconst TabPanel = (props) => {\n\tconst { children, value, index, ...other } = props;\n\n\treturn (\n\t\t\n\t\t\t{value === index && (\n\t\t\t\t {children}\n\t\t\t)}\n\t\t\n\t);\n};\n\nTabPanel.propTypes = {\n\tchildren: PropTypes.node,\n\tindex : PropTypes.number,\n\tvalue : PropTypes.any\n}; \n\nconst Template = (product, info) => {\n\tconst { t } = useTranslation();\n\tconst [currentTab, setCurrentTab] = useState(0);\n\n\tconst getTabPanel = () => {\n\t\tswitch (currentTab) {\n\t\t\tcase 0:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t{product && info ?\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase 1:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase 2:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase 3:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}; \n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t setCurrentTab(v)}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t node.addEventListener('transitionend', done, false)}\n\t\t\t\t>\n\t\t\t\t\t{getTabPanel()}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Template;","import React, { useEffect, useState } from 'react'; \nimport { rest }\tfrom '@karpeleslab/klbfw';\nimport { useCatalogProduct } from '../../../hooks/useCatalog';\n\nimport NotFound from './../../core/utils/NotFound/NotFound';\nimport Forbidden from './../../core/utils/Forbidden/Forbidden';\n\nimport Template from './EditProductForm.template';\n\nconst EditProductForm = () => {\n\tconst [product] = useCatalogProduct();\n\tconst [info, setInfo] = useState(null);\n\n\tuseEffect(() => {\n\t\tif (!product) \n\t\t\treturn; \n\t\t\n\t\trest(`Catalog/Product/${product.data.Catalog_Product__}:fetchInformation`)\n\t\t\t.then(({ data }) => setInfo(data))\n\t\t\t.catch(() => {\n\t\t\t\t// TBD error\n\t\t\t});\n\t}, [product, setInfo]);\n\n\tif (product && product.error) {\n\t\tswitch (product.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else \n\t\treturn Template(product, info);\n};\n\nexport default EditProductForm;","import React\t\t\t\tfrom 'react'; \nimport { useParams } \t\tfrom 'react-router-dom';\nimport { useTranslation }\tfrom 'react-i18next';\n\nimport EditProductForm\tfrom './../../components/kakari/EditProductForm/EditProductForm';\nimport Helmet \t\t\tfrom 'react-helmet';\nimport PageContainer\tfrom '../../components/layout/Container/PageContainer';\nimport PageTitle\t \tfrom '../../components/core/typography/PageTitle';\n\nconst Template = () => {\n\tconst { catalogId } = useParams(); \n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('edit_product')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('edit_product')}\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Template;","import Template from './Product.template';\n\nconst Product = () => {\n\treturn Template(); \n};\n\nexport default Product;\n","import React, { useState, useEffect } \tfrom 'react';\nimport { Link, Redirect }\t\t\t\tfrom 'react-router-dom';\nimport { useTranslation } \t\t\t\tfrom 'react-i18next';\nimport PropTypes \t\t\t\t\t\tfrom 'prop-types';\nimport { rest } \t\t\t\t\t\tfrom '@karpeleslab/klbfw';\n\nimport Autocomplete \tfrom '@material-ui/lab/Autocomplete';\nimport Box \t\t\t\tfrom '@material-ui/core/Box';\nimport Button \t\t\tfrom '@material-ui/core/Button';\nimport Checkbox\t\t\tfrom '@material-ui/core/Checkbox';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Grid \t\t\tfrom '@material-ui/core/Grid';\nimport TextField \t\tfrom '@material-ui/core/TextField';\nimport Typography \t\tfrom '@material-ui/core/Typography';\n\nimport './OSSelection.scss';\n\nconst OSSelection = ({ currentOs, keepExisting, onChange, canSubmit, keepData, onSubmit }) => {\n\tconst { t } = useTranslation();\n\tconst [keep, setKeep] = useState(keepExisting);\n\tconst [loading, setLoading] = useState(true);\n\tconst [selectedOS, setSelectedOS] = useState(currentOs);\n\tconst [osList, setOsList] = useState([]);\n\n\tuseEffect(() => {\n\t\trest('/Shell/OS', 'GET', { Visible: 'Y', results_per_page: 100 })\n\t\t\t.then(({ data }) => setOsList(data))\n\t\t\t.catch(() => {\n\t\t\t\t// TODO redirect 500\n\t\t\t})\n\t\t\t.finally(() => setLoading(false));\n\t}, []);\n\n\tconst ckeckBoxHundller = event => {\n\t\tif (event.target.checked) {\n\t\t\tsetKeep(false);\n\t\t\tsetSelectedOS(osList[0]);\n\t\t\tonChange(osList[0]);\n\t\t}\n\t\telse {\n\t\t\tsetKeep(true);\n\t\t\tsetSelectedOS(false);\n\t\t\tonChange(false);\n\t\t}\n\t}; \n\n\tif (loading) \n\t\treturn ;\n\n\tif (osList.length < 1)\n\t\treturn ;\n\t\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('choose_your_os')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcurrentOs && osList && \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t option ? option.Name : '' }\n\t\t\t\t\t\t\t\t\tgetOptionSelected={ () => selectedOS ? selectedOS.Name : osList.find(o => o.Shell__OS__ === currentOs.Shell__OS__) }\n\t\t\t\t\t\t\t\t\trenderInput={ params => }\n\t\t\t\t\t\t\t\t\tonChange={ (event, newValue) => { setSelectedOS(newValue); onChange(newValue); setKeep(false); } }\n\t\t\t\t\t\t\t\t\tvalue={ selectedOS || '' }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nOSSelection.propTypes = {\n\tcurrentOs\t: PropTypes.object, \n\tkeepExisting: PropTypes.bool, \n\tonChange\t: PropTypes.func, \n\tcanSubmit\t: PropTypes.bool, \n\tkeepData\t: PropTypes.bool, \n\tonSubmit\t: PropTypes.func\n};\n\nexport default OSSelection;\n","import React\t\t\t\tfrom 'react';\nimport { useTranslation }\tfrom 'react-i18next';\nimport PropTypes \t\t\tfrom 'prop-types';\n\nimport Button\t\t\t\tfrom '@material-ui/core/Button';\nimport Typography\t\t\tfrom '@material-ui/core/Typography';\n\nconst Success = ({ shell }) => {\n\tconst { t } = useTranslation();\n\tconst startShellAndOpen = () => {\n\t\tlet url = `https://view.shells.com/?id=${shell.Shell__}`;\n\t\twindow.open(url, '_blank');\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t{ t('reinstall_complete') }\n\t\t\t\n\t\t\t

{ t('reinstall_complete_description') }

\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nSuccess.propTypes = {\n\tshell: PropTypes.object\n};\n\nexport default Success;\n","import React, { useState, useEffect } \t\tfrom 'react';\nimport { Redirect, useHistory, useParams } \tfrom 'react-router-dom';\nimport { useTranslation }\t\t\t\t\tfrom 'react-i18next';\nimport { rest } \t\t\t\t\t\t\tfrom '@karpeleslab/klbfw';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport OSSelection \t\tfrom './OSSelection';\nimport Success \t\t\tfrom './Success';\n\nimport {useSetSnackbar} from './../../../hooks/useSnackbar';\n\nexport default function ReinstallWizard() {\n\tconst history = useHistory();\n\tconst { realmId, shellId, userId } = useParams();\n\tconst { t } = useTranslation();\n\n\tconst [keepData, setKeepData] = useState(false);\n\tconst [keepOs, setKeepOs] = useState(true);\n\tconst [loading, setLoading] = useState(true);\n\tconst [os, setOs] = useState(false);\n\tconst [shell, setShell] = useState(null);\n\tconst [step, setStep] = useState(0);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst submitReinstall = keep => {\n\t\tsetKeepData(keep);\n\t\tsetLoading(true);\n\t\tconst args = {\n\t\t\t'_admin_as': userId\n\t\t};\n\t\tif (os) args.Shell_OS__ = os.Shell_OS__;\n\t\tif (!keepData) args.erase = true;\n\n\t\trest(`Shell/${shellId}:adminReconfigure`, 'POST', args)\n\t\t\t.then(res => {\n\t\t\t\tif (res && res.result === 'success') {\n\t\t\t\t\tsetStep(2);\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\thistory.push(`/realm/${realmId}/user/${userId}/shells`);\n\t\t\t\t\t}, 10000);\n\t\t\t\t} else {\n\t\t\t\t\tsetSnackbar(t('error_cant_reconfigure_shell'), 'error');\n\t\t\t\t\tsetStep(0);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tsetSnackbar(t('error_cant_reconfigure_shell'), 'error');\n\t\t\t\tsetStep(0);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tconst validateOs = selectedOs => {\n\t\tsetOs(selectedOs);\n\t\tsetKeepOs(!selectedOs);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!shellId) return setLoading(false);\n\n\t\trest(`Shell/${shellId}`, 'GET', { '_admin_as': userId })\n\t\t\t.then(({ data }) => setShell(data))\n\t\t\t.catch(() => {})\n\t\t\t.finally(() => setLoading(false));\n\t}, [shellId, userId]);\n\n\tuseEffect(() => {\n\t\tif (shell) \n\t\t\tsetOs(shell.OS);\n\t}, [shell, setOs]);\n\n\tif (loading) \n\t\treturn ;\n\telse if (!shell)\n\t\treturn ;\n\t\n\treturn (\n\t\t<>\n\t\t\t{(() => {\n\t\t\t\tswitch (step) {\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\treturn ;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t validateOs(os)}\n\t\t\t\t\t\t\t\tonSubmit={keep => submitReinstall(keep)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t})()}\n\t\t\n\t);\n}\n","import React \t\t\t\tfrom 'react';\nimport { useTranslation } \tfrom 'react-i18next';\nimport { Helmet } \t\t\tfrom 'react-helmet';\n\nimport Box \t\t\t\tfrom '@material-ui/core/Box';\nimport PageContainer\tfrom '../../components/layout/Container/PageContainer';\nimport PageTitle \t\tfrom '../../components/core/typography/PageTitle';\nimport Paper \t\t\tfrom '@material-ui/core/Paper';\nimport ReinstallWizard \tfrom '../../components/shells/ReinstallWizard/ReinstallWizard';\n\nconst ReinstallShell = () => {\n\tconst {t} = useTranslation(); \n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('reinstall_shell_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('reinstall_shell_title')}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default ReinstallShell;","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation } from 'react-router-dom';\nimport queryString from 'query-string';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport DateTime from '../../core/input/Date';\nimport Paper from '@material-ui/core/Paper';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport { TextField} from \"@material-ui/core\";\n\nconst DateSlotFilter = ({ field = 'Created', onValidate }) => {\n\tconst { t } = useTranslation();\n\tconst [from, setFrom] = useState(null);\n\tconst [to, setTo] = useState(null);\n\tconst [toOpen, setToOpen] = useState(false);\n\tconst [email, setEmail] = useState(null);\n\tconst [code, setCode] = useState(null);\n\tconst location = useLocation();\n\n\tuseEffect(() => {\n\t\tconst currentParams = queryString.parse(location.search);\n\t\tif (!currentParams[`f-${field}`])\n\t\t\treturn;\n\n\t\ttry {\n\t\t\tconst param = JSON.parse(currentParams[`f-${field}`]);\n\t\t\tif (param.$between && param.$between.length === 2) {\n\t\t\t\tsetFrom(moment(param.$between[0]));\n\t\t\t\tsetTo(moment(param.$between[1]));\n\t\t\t} else if (param.$lte)\n\t\t\t\tsetTo(moment(param.$lte));\n\t\t\telse if (param.$gte)\n\t\t\t\tsetFrom(moment(param.$gte));\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}, [location]); // eslint-disable-line\n\n\tconst clearFilters = () => {\n\t\tsetFrom(null);\n\t\tsetTo(null);\n\t\tsetEmail(null);\n\t\tsetCode(null);\n\t\tonValidate(null, null);\n\t};\n\n\tconst onValid = () => {\n\t\tlet f = {}\n\t\tf = {Created : [from, to]}\n\t\tif(email != null && email !== \"\") f[\"Email\"] = {\"$prefix\":email}\n\t\tif(code != null && code !== \"\") f[\"Link\"] = {\"$prefix\":email}\n\t\tonValidate(f)\n\t}\n\n\tuseEffect(() => {\n\t\tif (from) setToOpen(true);\n\t}, [from]); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\tsetToOpen(false);\n\t}, [to]); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(`filter_by_${field.toLowerCase()}`)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setToOpen(true)}\n\t\t\t\t\t\t\t\tonChange={setTo}\n\t\t\t\t\t\t\t\tonClose={() => setToOpen(false)}\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setEmail(e.target.value)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setCode(e.target.value)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t onValid()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('validate_filter')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('clear_filter')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nDateSlotFilter.propTypes = {\n\tfield : PropTypes.string,\n\tonValidate: PropTypes.func\n};\n\nexport default DateSlotFilter;\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport moment\t\t\tfrom 'moment';\n\n\n// import SearchIcon from '@material-ui/icons/Search'; \nimport Button \t\tfrom '@material-ui/core/Button';\nimport CircularProgress \tfrom '@material-ui/core/CircularProgress';\nimport {Link} \t\tfrom 'react-router-dom';\nimport ImportantDevicesIcon from '@material-ui/icons/ImportantDevices';\nimport PersonPinCircleIcon \tfrom '@material-ui/icons/PersonPinCircle';\nimport Table \t\tfrom '../../core/data/table/Table';\nimport TableDefinition \t\tfrom '../../core/data/table/TableDefinition';\n\nimport { useAccess }\t\tfrom '../../../hooks/useAccess';\n\nimport './UserTable.scss';\n\nconst UsersTable = (users, access, fetch, loading, revealAddress) => { \n\tconst { t } = useTranslation();\n\tconst canShowAddress = useAccess(access, 'A');\n\tconst canViewShells \t= useAccess(access, 'W');\n\n\tconst formatAddress = userAddress => {\n\t\tif (userAddress.length < 1)\n\t\t\treturn 'no known address';\n\t\t\n\t\treturn userAddress[0].Display.map((l, i) => {l}
);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('tablecell_email')}/
{t('tablecell_username')}} sortable>\n\t\t\t\t{user =>\n\t\t\t\t\t\n\t\t\t\t\t\t{ user.Profile.Display_Name && <>{user.Profile.Display_Name}
}\n\t\t\t\t\t\t{user.Email}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t
\n\t\t\t\n\t\t\t\t{user => t('user_status_' + user.Status)}\n\t\t\t\n\t\t\t\n\t\t\t\t{user => moment(parseInt(user.Created.unixms)).format('LLL')}\n\t\t\t\n\t\t\t\n\t\t\t\t{user => user.Last_Login ? moment(parseInt(user.Last_Login.unixms)).format('LLL') : '-'}\n\t\t\t\n\t\t\t{\n\t\t\t\tcanShowAddress && \n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tuser =>\n\t\t\t\t\t\t\tuser.address ? \n\t\t\t\t\t\t\t\tformatAddress(user.address)\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t} \n\t\t\t{\n\t\t\t\tcanViewShells &&\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tuser =>\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t
\n\t);\n};\n\nexport default UsersTable;\n","import React, { useEffect, useState } from 'react';\nimport {useParams} from 'react-router-dom';\nimport { rest } from '@karpeleslab/klbfw';\n\nimport NotFound from './../../core/utils/NotFound/NotFound';\nimport Forbidden from './../../core/utils/Forbidden/Forbidden';\n\nimport { useRealmUsers } \t\tfrom '../../../hooks/useRealmUsers';\n\nimport Template from './UserTable.template';\n\nconst UserTable = ({ initialFilters = {} }) => {\n\tconst { realmId } = useParams();\n\tconst [users, fetch, loading] = useRealmUsers();\n\tconst [displayUsers, setDisplayUsers] = useState(null);\n\tconst [firstLoad, setFirstLoad] = useState(true); \n\n\tconst revealAddress = async user => {\n\t\tconst tmp = [...users.data];\n\t\tconst userIdx = tmp.findIndex(u => u.User__ === user.User__);\n\t\tif (userIdx < 0)\n\t\t\treturn;\n\n\t\ttmp[userIdx].loadingAddress = true;\n\t\tsetDisplayUsers({ ...users, data: tmp });\n\n\t\tconst res = await rest('User/Location', 'GET', {\n\t\t\tadmin \t: 1,\n\t\t\tRealm__\t: realmId,\n\t\t\tUser__ : user.User__\n\t\t});\n\n\t\ttmp[userIdx].address = res.data;\n\t\ttmp[userIdx].loadingAddress = false;\n\t\tsetDisplayUsers({ ...users, data: tmp });\n\t};\n\n\tuseEffect(() => {\n\t\tif (!users)\n\t\t\treturn;\n\n\t\tconst tmp = [...users.data];\n\t\ttmp.forEach(u => {\n\t\t\tu.loadingAddress = false;\n\t\t\tu.address = null; \n\t\t});\n\t\tsetDisplayUsers({ ...users, data: tmp });\n\t}, [users, setDisplayUsers]);\n\n\tuseEffect(() => {\n\t\tif (!firstLoad)\n\t\t\tfetch(initialFilters);\n\t}, [initialFilters]); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\tsetFirstLoad(false);\n\t}, []); // eslint-disable-line\n\n\tif (users && users.error) {\n\t\tswitch (users.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else \n\t\treturn Template(displayUsers, users, fetch, loading, revealAddress);\n};\n\nexport default UserTable;\n","import React, { useState } from 'react';\nimport {useParams}\t\t from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport {Helmet} \t\t from 'react-helmet';\n\nimport DateSlotFilter from '../../components/kakari/DateSlotFilter/DateSlotFilter';\nimport PageContainer \tfrom '../../components/layout/Container/PageContainer';\nimport PageTitle \tfrom '../../components/core/typography/PageTitle';\nimport UserTable \tfrom './../../components/kakari/UserTable/UserTable';\n\nconst Users = () => {\n\tconst { realmId } = useParams();\n\tconst { t } = useTranslation();\n\n\tconst [filters, setFilters] = useState({});\n\tconst setDateFilters = ({Created, ...rest}) => {\n\t\tlet from = Created.from\n\t\tlet to = Created.to\n\t\tconst tmp = {};\n\t\tif (from && !to)\n\t\t\ttmp.Created = { $gte: from.utc() };\n\t\telse if (to && !from)\n\t\t\ttmp.Created = { $lte: to.utc() };\n\t\telse if (from && to)\n\t\t\ttmp.Created = { $between: [from.utc(), to.utc()] };\n\n\t\tsetFilters({tmp, ...rest});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('users')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Users;\n","import React, { useState } from 'react';\nimport {useParams}\t \t from 'react-router-dom';\nimport {useTranslation}\t from 'react-i18next';\n\nimport Helmet from 'react-helmet';\nimport OrdersTable from '../../components/kakari/OrdersTable/OrdersTable';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport DateSlotFilter from '../../components/kakari/DateSlotFilter/DateSlotFilter';\n\nconst Orders = () => {\n\tconst { realmId } = useParams();\n\tconst { t } = useTranslation();\n\tconst [filters, setFilters] = useState({});\n\n\tconst setDateFilters = (from, to) => {\n\t\tconst tmp = {};\n\t\tif (from && !to)\n\t\t\ttmp.Invoice_Date = { $gte: from.utc() };\n\t\telse if (to && !from)\n\t\t\ttmp.Invoice_Date = { $lte: to.utc() };\n\t\telse if (from && to)\n\t\t\ttmp.Invoice_Date = { $between: [from.utc(), to.utc()] };\n\n\t\tsetFilters(tmp);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('orders')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Orders;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from '@material-ui/core/Grid';\nimport Skeleton from '@material-ui/lab/Skeleton';\n\nconst useStyles = makeStyles(() => ({\n\tcard: {\n\t\twhiteSpace: 'pre-wrap',\n\t\theight: '100%'\n\t}\n}));\n\n\nconst OrderInfo = ({ order }) => {\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('details')}\n\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('order_payment_status')}:\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\torder &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('order_status_' + order.Status)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{!order && }\n\t\t\t\t\t\n\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('label_order_date')}:\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\torder &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{moment(parseInt(order.Created.unixms)).format('LLL')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{!order && }\n\t\t\t\t\t\n\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('label_paid_date')}:\n\t\t\t\t\t\n\n\n\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\torder &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\torder.Paid ?\n\t\t\t\t\t\t\t\t\t\tmoment(parseInt(order.Paid.unixms)).format('LLL')\n\t\t\t\t\t\t\t\t\t\t: t('order_status_unpaid')\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{!order && }\n\t\t\t\t\t\n\n\t\t\t\t
\n\n\t\t\t\n\t\t\n\t);\n};\n\nOrderInfo.propTypes = {\n\torder: PropTypes.object\n};\n\nexport default OrderInfo;","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport { rest } from '@karpeleslab/klbfw';\nimport { useRest } from '@karpeleslab/react-klbfw-hooks';\n\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport Table from '@material-ui/core/Table';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableBody from '@material-ui/core/TableBody';\nimport Typography from '@material-ui/core/Typography';\n\nconst OrderLogs = ({ orderId, orderUser }) => {\n\tconst { t } = useTranslation();\n\tconst [logs] = useRest(`Order/${orderId}:getLog`);\n\tconst [displayLogs, setDisplayLogs] = useState([]);\n\n\tuseEffect(() => {\n\t\tif (!logs || !logs.data)\n\t\t\treturn; \n\n\t\tlogs.data.forEach(log => {\n\t\t\tconst l = {...log};\n\t\t\tif (log.User__ === orderUser.User__) {\n\t\t\t\tl.User = {...orderUser};\n\t\t\t\tsetDisplayLogs(dl => [...dl, l]);\n\t\t\t} else if (log.User__) {\n\t\t\t\trest(`User/${log.User__}`, 'GET')\n\t\t\t\t\t.then(({ data }) => {\n\t\t\t\t\t\tl.User = { ...data };\n\t\t\t\t\t\tsetDisplayLogs(dl => [...dl, l]);\n\t\t\t\t\t});\n\t\t\t} else setDisplayLogs((dl) => [...dl, log]);\n\t\t});\n\t}, [logs, orderUser]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('logs')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('order_logs_date')}\n\t\t\t\t\t\t\t\t{t('order_logs_event')}\n\t\t\t\t\t\t\t\t{t('order_logs_log')}\n\t\t\t\t\t\t\t\t{t('order_logs_emitter')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ !displayLogs ? \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\tdisplayLogs.map((log, i) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{log.Date.iso}\n\t\t\t\t\t\t\t\t\t\t{log.Event}\n\t\t\t\t\t\t\t\t\t\t{log.Log}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tlog.User ?\n\t\t\t\t\t\t\t\t\t\t\t\t\tlog.User.Display_Name || log.User.Email || log.User__ \n\t\t\t\t\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\t\t\t\t'no info'\n\t\t\t\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nOrderLogs.propTypes = {\n\torderId : PropTypes.string,\n\torderUser: PropTypes.object\n};\n\nexport default OrderLogs;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Grid from '@material-ui/core/Grid';\nimport OrderPaymentMethod from './OrderPaymentMethod';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport Typography from '@material-ui/core/Typography';\n\nconst useStyles = makeStyles(() => ({\n\tcard: {\n\t\twhiteSpace: 'pre-wrap',\n\t\theight: '100%'\n\t}\n}));\n\nconst OrderPaymentInfo = ({ order }) => {\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('order_payment_info')}\n\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('order_payment_method')}:\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\torder &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{!order && }\n\t\t\t\t\t\n\n\n\t\t\t\t\t{(order && order.Payment_Last4) &&\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('order_payment_card')}:\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{`${order.Payment_Method}⋯${order.Payment_Last4}`}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\n\t\t\t\n\t\t\n\t);\n};\n\nOrderPaymentInfo.propTypes = {\n\torder: PropTypes.object\n};\n\nexport default OrderPaymentInfo;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../core/input/Button';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport Typography from '@material-ui/core/Typography';\nimport MoneyOffIcon from '@material-ui/icons/MoneyOff';\n\nimport {useOrderRefund} from '../../../hooks/useOrder';\n\nconst OrderRefundDialog = ({ order, refresh, open, setOpen }) => {\n\tconst [refund, refunding] = useOrderRefund(order);\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleRefund = () => {\n\t\trefund()\n\t\t\t.then(order => refresh(order))\n\t\t\t.then(handleClose);\n\t};\n\tconst { t } = useTranslation();\n\treturn (\n\t\t\n\t\t\t{t('confirm_refund_order_title')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('confirm_refund_order_desc')}\n\t\t\t\t\t
\n\t\t\t\t\t {t('are_you_sure')}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nOrderRefundDialog.propTypes = {\n\topen : PropTypes.bool, \n\torder : PropTypes.object,\n\trefresh: PropTypes.func,\n\tsetOpen: PropTypes.func\n};\n\nexport default OrderRefundDialog;","import {useParams} from 'react-router-dom';\nimport {rest} from '@karpeleslab/klbfw';\nimport {useCallback, useEffect, useState} from 'react';\nimport {useSetSnackbar} from './useSnackbar';\nimport {useTranslation} from 'react-i18next';\n\nexport const useOrderWithParams = () => {\n\tconst { orderId } = useParams();\n\tconst [order, setOrder] = useState(null);\n\n\tconst refresh = useCallback(data => {\n\t\tif (data) {\n\t\t\tsetOrder({ ...(order ?? {}), data: data });\n\t\t}\n\n\t\trest(`Order/${orderId}`)\n\t\t\t.then(setOrder)\n\t\t\t.catch(e => setOrder({ error: e }));\n\t}\n\t\t, [orderId]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [order, refresh];\n};\n\nexport const useOrderRefund = (order) => {\n\tconst [refunding, setRefunding] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst refund = () => {\n\t\tsetRefunding(true);\n\t\treturn rest('Order/' + order.Order__ + ':refund')\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('order_refund_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setRefunding(false));\n\t};\n\n\treturn [refund, refunding];\n};\n","import React, {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '@material-ui/core/Button';\nimport MoneyOffIcon from '@material-ui/icons/MoneyOff';\nimport OrderRefundDialog from './OrderRefundDialog';\n\nconst OrderRefundButton = ({ order, refresh }) => {\n\tconst [showRefundDialog, setShowRefundDialog] = useState(false);\n\tconst { t } = useTranslation();\n\n\tif (!order.Refund_Available) return <>;\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n\nOrderRefundButton.propTypes = {\n\torder : PropTypes.object,\n\trefresh: PropTypes.func\n};\n\n\nexport default OrderRefundButton;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport {useParams, Link} from 'react-router-dom';\nimport useTheme from '@material-ui/core/styles/useTheme';\n\nimport Paper from '@material-ui/core/Paper';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nconst OrderTable = ({ order }) => {\n\tconst [rowSpan, setRowSpan] = useState(3);\n\tconst { t } = useTranslation();\n\tconst { realmId } = useParams();\n\tconst theme = useTheme();\n\n\tuseEffect(() => {\n\t\tif (!order) return;\n\t\tlet c = 3;\n\t\tif (parseInt(order.Subtotals.shipping.value_int)) c += 1;\n\t\tif (parseInt(order.Subtotals.discount.value_int)) c += 1;\n\n\t\tsetRowSpan(c);\n\n\t}, [order]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('details')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('order_detail_description')}\n\t\t\t\t\t\t\t{t('order_detail_status')}\n\t\t\t\t\t\t\t{t('order_detail_quantity')}\n\t\t\t\t\t\t\t{t('order_detail_unit')}\n\t\t\t\t\t\t\t{t('order_detail_sum')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{order && order.Items.map(row => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{row.Catalog_Product['Internal_Name']}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{row.Status}\n\t\t\t\t\t\t\t\t\t{(row.Status === 'deliver-done' && row.Delivered) && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{` (${(new Date(row.Delivered.iso)).toLocaleDateString()} ${(new Date(row.Delivered.iso)).toLocaleTimeString()})`}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{row.Quantity}\n\t\t\t\t\t\t\t\t{row.Price.display}\n\t\t\t\t\t\t\t\t{row.Full_Price.display}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t!order &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('order_detail_subtotal')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{order && order.Total.display}\n\t\t\t\t\t\t\t\t{!order && }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t(order && parseInt(order.Subtotals.shipping.value_int) !== 0) &&\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('order_detail_shipping')}\n\t\t\t\t\t\t\t\t{order.Subtotals.shipping.display}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('order_detail_tax')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{order && order.Vat_Rate + '%'}\n\t\t\t\t\t\t\t\t{!order && }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{order && order.Vat_Amount.display}\n\t\t\t\t\t\t\t\t{!order && }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t(order && parseInt(order.Subtotals.discount.value_int) !== 0) &&\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('order_detail_discount')}\n\t\t\t\t\t\t\t\t{order.Subtotals.discount.display}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('order_detail_total')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{order && order.Total_Vat.display}\n\t\t\t\t\t\t\t\t{!order && }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nOrderTable.propTypes = {\n\torder: PropTypes.object\n};\n\nexport default OrderTable;","import React from 'react';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\nimport PropTypes from 'prop-types';\n\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport PhoneIcon from '@material-ui/icons/Phone';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport Typography from '@material-ui/core/Typography';\n\n\nconst useStyles = makeStyles(() => ({\n\tcard: {\n\t\twhiteSpace: 'pre-wrap',\n\t\theight: '100%'\n\t}\n}));\n\nconst UserLocation = ({ title, address }) => {\n\tconst classes = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{title}\n\n\t\t\t\t{!address && }\n\t\t\t\t{\n\t\t\t\t\taddress &&\n\t\t\t\t\t\n\t\t\t\t\t\t{address.Display.join('\\n')}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t\t(address && address.Contact_Phone) &&\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{address.Contact_Phone}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nUserLocation.propTypes = {\n\ttitle\t: PropTypes.string,\n\taddress\t: PropTypes.object\n};\n\nexport default UserLocation;","import React from 'react';\nimport {Link, useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport {Grid} from '@material-ui/core';\nimport Helmet \t\tfrom 'react-helmet';\nimport OrderInfo from '../../components/kakari/Order/OrderInfo';\nimport OrderLogs \t\t\tfrom '../../components/kakari/Order/OrderLogs';\nimport OrderPaymentInfo from '../../components/kakari/Order/OrderPaymentInfo';\nimport OrderRefundButton from '../../components/kakari/Order/OrderRefundButton';\nimport OrderTable from '../../components/kakari/Order/OrderTable';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport PageTitle\t \t\tfrom '../../components/core/typography/PageTitle';\nimport SearchIcon from '@material-ui/icons/Search';\nimport Toolbar from '../../components/core/typography/Toolbar';\nimport {useAccess} from '../../hooks/useAccess';\nimport {useOrderWithParams} from '../../hooks/useOrder';\nimport {useRealmWithParams} from '../../hooks/useRealm';\nimport UserLocation from '../../components/kakari/UserLocation/UserLocation';\n\nconst Order = () => {\n\tconst { realmId } = useParams();\n\tconst [order, refresh] = useOrderWithParams();\n\tconst [realm] = useRealmWithParams();\n\tconst isAdmin = useAccess(realm, 'A');\n\tconst { t } = useTranslation();\n\n\tif (!order || !realm) return ;\n\tif (!order.data || !realm.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('menu_order_list')} { `#${order.data.Invoice_Number}` }\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{isAdmin &&\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tto={`/realm/${realmId}/user/${order.data.User__}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('view_user_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{isAdmin &&\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Order;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nimport FormControl from '@material-ui/core/FormControl';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport {Select} from '@material-ui/core';\n\nconst Year = ({ onChange, inputProps = {}, value = undefined, interval = [-3, 0] }) => {\n\tconst selectLabel = React.useRef(null);\n\tconst [selectLabelWidth, setCurrencyLabelWidth] = useState(0);\n\tconst { t } = useTranslation();\n\n\tuseEffect(() => {\n\t\tsetCurrencyLabelWidth(selectLabel.current.offsetWidth);\n\t}, []);\n\n\tconst now = parseInt(moment().format('YYYY'));\n\tlet options = [];\n\n\tfor (let i = now + interval[1]; i >= now + interval[0]; i--) {\n\t\toptions.push();\n\t}\n\n\treturn (\n\t\t\n\t\t\t{t('year_lbl')}\n\t\t\t\n\t\t\t\t{options}\n\t\t\t\n\n\t\t\n\t);\n};\n\nYear.propTypes = {\n\tinputProps : PropTypes.object,\n\tinterval : PropTypes.array, \n\tonChange : PropTypes.func,\n\tvalue : PropTypes.string\n}; \n\nexport default Year;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport FormControl from '@material-ui/core/FormControl';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport {Select} from '@material-ui/core';\n\nconst Month = ({ onChange, inputProps = {}, value = undefined }) => {\n\tconst selectLabel = React.useRef(null);\n\tconst [selectLabelWidth, setCurrencyLabelWidth] = useState(0);\n\tconst { t } = useTranslation();\n\n\tuseEffect(() => {\n\t\tsetCurrencyLabelWidth(selectLabel.current.offsetWidth);\n\t}, []);\n\n\tlet options = [];\n\n\tfunction pad(d) {\n\t\treturn (d < 10) ? '0' + d.toString() : d.toString();\n\t}\n\n\tfor (let i = 1; i <= 12; i++) {\n\t\tconst v = pad(i);\n\t\toptions.push();\n\t}\n\n\treturn (\n\t\t\n\t\t\t{t('month_lbl')}\n\t\t\t\n\t\t\t\t{options}\n\t\t\t\n\n\t\t\n\t);\n};\n\nMonth.propTypes = {\n\tinputProps: PropTypes.any, \n\tonChange : PropTypes.func, \n\tvalue : PropTypes.string\n}; \n\nexport default Month;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Grid} from '@material-ui/core';\nimport Currencies from '../../core/input/Currencies';\nimport Year from '../../core/input/Year';\nimport Month from '../../core/input/Month';\n\nconst OrderReportFilters = ({ currency, setCurrency, year, setYear, month, setMonth }) => {\n\treturn (\n\t\t\n\t\t\t\n\n\t\t\t\t setCurrency(e.target.value)}\n\t\t\t\t\tvalue={currency}\n\t\t\t\t\tallowEmpty\n\t\t\t\t\tinputProps={{\n\t\t\t\t\t\tfullWidth: true,\n\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\n\t\t\t\n\t\t\t\t setYear(e.target.value)}\n\t\t\t\t\tvalue={year}\n\t\t\t\t\tinputProps={{\n\t\t\t\t\t\tfullWidth: true,\n\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\n\t\t\t\n\t\t\t\t setMonth(e.target.value)}\n\t\t\t\t\tvalue={month}\n\t\t\t\t\tinputProps={{\n\t\t\t\t\t\tfullWidth: true,\n\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t);\n};\n\nOrderReportFilters.propTypes = {\n\tcurrency : PropTypes.string,\n\tmonth : PropTypes.string,\n\tsetCurrency: PropTypes.func,\n\tsetMonth : PropTypes.func,\n\tsetYear : PropTypes.func,\n\tyear : PropTypes.string\n};\n\nexport default OrderReportFilters;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../core/input/Button';\nimport Grid from '@material-ui/core/Grid';\nimport EditIcon from '@material-ui/icons/Edit';\nimport {Link} from 'react-router-dom';\nimport SearchIcon from '@material-ui/icons/Search';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\n\nimport {ORDER_STATS_PRODUCT_IMAGE_VARIATION} from '../../../hooks/useRealmOrders';\n\nimport defaultPicture from '../../../assets/img/landscape-image.svg';\n\nconst OrdersItemReport = ({ data, loading, fetch, currency, year, month }) => {\n\tconst { t } = useTranslation();\n\n\tconst tableFetchHandler = (filters, paging) => {\n\t\tfetch(currency, year + '-' + month, paging);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{product => {\n\t\t\t\t\tif (product.Catalog_Product.Image.main)\n\t\t\t\t\t\treturn ;\n\n\t\t\t\t\treturn {t('tablecell_product_picture')}/;\n\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{product => product.Catalog_Product['Internal_Name']}\n\t\t\t\n\t\t\t\n\t\t\t\t{product => product.Catalog_Product['Basic.Name']}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{product => product.Quantity}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{product =>\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcomponent={Link}\n\t\t\t\t\t\t\t\tto={`/realm/${product.Order_Realm__}/orders/${product.Order_Order__}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('view_order_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcomponent={Link}\n\t\t\t\t\t\t\t\tto={`/catalog/${product.Catalog_Product.Catalog__}/products/${product.Catalog_Product__}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('edit_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\n\n\n\t\t\t\t}\n\t\t\t\n\n\t\t\n\t);\n};\n\nOrdersItemReport.propTypes = {\n\tcurrency: PropTypes.string,\n\tdata : PropTypes.object,\n\tfetch : PropTypes.func,\n\tloading : PropTypes.bool,\n\tmonth : PropTypes.string,\n\tyear : PropTypes.string\n};\n\nexport default OrdersItemReport;","export const COLOR_LIST = [\n\t'#ffb74d',\n\t'#4dabf5',\n\t'#e57373',\n\t'#81c784',\n\t'#f73378',\n];\n","export default () => {\n\tlet dt = new Date().getTime();\n\tlet uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n\t\tlet r = (dt + Math.random()*16)%16 | 0;\n\t\tdt = Math.floor(dt/16);\n\t\treturn (c==='x' ? r :((r&0x3)|0x8)).toString(16);\n\t});\n\treturn uuid;\n};","import withStyles from '@material-ui/core/styles/withStyles';\nimport MuiTableContainer from '@material-ui/core/TableContainer/TableContainer';\nimport styledComponents from 'styled-components';\nimport {styled} from '@material-ui/core';\n\nexport const TableContainer = withStyles(() => {\n\treturn {\n\t\troot: {\n\t\t\toverflow: 'auto',\n\t\t\tmaxHeight: 300,\n\t\t},\n\t};\n})(MuiTableContainer);\n\nconst Div = styledComponents.span``;\n\nexport const ColoredIcon = styled(Div)(style => {\n\treturn {\n\t\tdisplay: 'inline-block',\n\t\twidth: '10px',\n\t\theight: '20px',\n\t\tmarginRight: '5px',\n\t\tbackgroundColor: style.color,\n\t};\n});","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport useTheme from '@material-ui/core/styles/useTheme';\nimport uuid from '../../../../../utils/uuid';\n\nimport {Cell, Pie as RechartsPie, PieChart, ResponsiveContainer, Sector, Text} from 'recharts';\n\nconst RADIAN = Math.PI / 180;\n\nconst Pie = ({ stats, getName = undefined, getCount = undefined, active = false, activeIndex, setActiveIndex }) => {\n\tconst theme = useTheme();\n\tconst { t } = useTranslation();\n\n\tconst renderCustomizedLabel = (props) => {\n\t\tconst { cx, cy, midAngle, innerRadius, outerRadius, startAngle, endAngle, fill, name, Count, percent, payload } = props; // eslint-disable-line\n\n\n\t\tconst sin = Math.sin(-RADIAN * midAngle);\n\t\tconst cos = Math.cos(-RADIAN * midAngle);\n\t\tconst sx = cx + (outerRadius + 10) * cos;\n\t\tconst sy = cy + (outerRadius + 10) * sin;\n\t\tconst mx = cx + (outerRadius + 30) * cos;\n\t\tconst my = cy + (outerRadius + 30) * sin;\n\t\tconst ex = mx + (cos >= 0 ? 1 : -1) * 22;\n\t\tconst ey = my;\n\t\tconst textAnchor = cos >= 0 ? 'start' : 'end';\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t{!active && }\n\t\t\t\t{!active && }\n\t\t\t\t{!active && = 0 ? 1 : -1) * 12} y={ey} textAnchor={textAnchor}\n\t\t\t\t\tfill={theme.palette.text.primary}>{getName !== undefined ? getName(payload) : name}}\n\t\t\t\t{!active && = 0 ? 1 : -1) * 12} y={ey} dy={18} textAnchor={textAnchor}\n\t\t\t\t\tfill={theme.palette.text.primary}>{getCount !== undefined ? getCount(Count) : t('stats_fanclub_users', { count: Count })}}\n\t\t\t\t{!active && = 0 ? 1 : -1) * 12} y={ey} dy={32} textAnchor={textAnchor}\n\t\t\t\t\tfill={theme.palette.text.secondary}>\n\t\t\t\t\t{`(${(percent * 100).toFixed(2)}%)`}\n\t\t\t\t}\n\n\t\t\t\t{active && {getName !== undefined ? (getName(payload) ?? 'N/A') : (name ?? 'N/A')}}\n\n\t\t\t\t{active && \n\t\t\t\t\t{getCount !== undefined ? getCount(Count) : t('stats_fanclub_users', { count: Count })}\n\t\t\t\t}\n\t\t\t\t{active &&\n\t\t\t\t\n\t\t\t\t\t{`(${(percent * 100).toFixed(2)}%)`}\n\t\t\t\t}\n\n\t\t\t\n\t\t);\n\t};\n\n\tconst onPieEnter = (data, index) => {\n\t\tsetActiveIndex(index);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tstats.map((s) => )\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nPie.propTypes = {\n\tactive : PropTypes.bool, \n\tactiveIndex : PropTypes.number, \n\tgetCount : PropTypes.func, \n\tgetName : PropTypes.func, \n\tsetActiveIndex: PropTypes.func,\n\tstats : PropTypes.array \n};\n\nexport default Pie;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\n\nconst PieChartNoData = ({ text, height = 300 }) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{text}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nPieChartNoData.propTypes = {\n\theight: PropTypes.number, \n\ttext : PropTypes.string\n}; \n\nexport default PieChartNoData;","import React, {Fragment, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport uuid from '../../../../../utils/uuid';\n\nimport {ColoredIcon, TableContainer} from './style';\nimport Grid from '@material-ui/core/Grid';\nimport Pie from './Pie';\nimport PieChartNoData from './PieChartNoData';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport Table from '@material-ui/core/Table';\nimport {TableBody} from '@material-ui/core';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Title from '../../../typography/Title';\nimport Typography from '@material-ui/core/Typography';\n\nconst ActivePieChart = ({ title, noDataText, loading, stats, getCount = undefined, getName = undefined, getCellContent, tableHeaders = [] }) => {\n\tconst { t } = useTranslation();\n\tconst [activeIndex, setActiveIndex] = useState(0);\n\tconst key = uuid();\n\n\tconst loadingData = [...Array(5).keys()];\n\tconst displayLoading = () => loadingData.map((k) =>\n\t\t\n\t\t\t{tableHeaders.map((header, cellIdx) =>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\t}\n\t\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{title}\n\t\t\t\t\n\t\t\t\t\t{t('orders_report_product_info')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{loading && }\n\t\t\t\t{(!loading && stats.length > 0) &&\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t}\n\n\t\t\t\t{(!loading && stats.length < 1) && }\n\t\t\t\n\t\t\t\n\t\t\t\t{tableHeaders.length > 0 &&\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{tableHeaders.map((header, idx) =>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{header}\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{!loading && stats.map((stat, rowIdx) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t setActiveIndex(rowIdx\n\t\t\t\t\t\t\t\t\t)} selected={activeIndex === rowIdx} key={'active-pie-row-' + rowIdx + key}>\n\t\t\t\t\t\t\t\t\t\t{tableHeaders.map((header, cellIdx) =>\n\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{cellIdx === 0 && }\n\t\t\t\t\t\t\t\t\t\t\t\t{getCellContent(rowIdx, cellIdx, stat)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t\t{loading && displayLoading()}\n\t\t\t\t\t\t\t{(!loading && stats.length < 1) && displayLoading()}\n\t\t\t\t\t\t\n\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t}\n\t\t\t
\n\t\t
\n\t);\n};\n\nActivePieChart.propTypes = {\n\tgetCellContent: PropTypes.func,\n\tgetCount : PropTypes.func, \n\tgetName : PropTypes.func, \n\tloading : PropTypes.bool, \n\tnoDataText : PropTypes.string, \n\tstats : PropTypes.array,\n\ttableHeaders : PropTypes.array,\n\ttitle : PropTypes.string,\n};\n\nexport default ActivePieChart;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport {COLOR_LIST} from '../../../utils/colors';\n\nimport Grid from '@material-ui/core/Grid';\nimport {Link} from 'react-router-dom';\nimport ActivePieChart from '../../core/data/charts/pie/ActivePieChart';\nimport CurrencyFormatedPrice from '../Currency/CurrencyFormatedPrice';\n\nimport {currencyFormatPrice} from '../../../hooks/useCurrency';\n\nconst formatReport = (report, currency) => {\n\tconst result = [];\n\n\treport.forEach((r, idx) =>\n\t\tresult.push({\n\t\t\tname: r.Catalog_Product['Basic.Name'],\n\t\t\tCount: (currency && currency !== 'all') ? parseInt(r.Total_Vat.value_float) : parseInt(r.Quantity.value),\n\t\t\tfill: COLOR_LIST[idx % (COLOR_LIST.length - 1)]\n\t\t})\n\t);\n\n\treturn result;\n};\n\nconst OrdersProductReport = ({ report, loading, currency }) => {\n\tconst { t } = useTranslation();\n\tconst [tableHeaders, setTableHeaders] = useState([\n\t\tt('tablecell_product_name'),\n\t\tt('tablecell_product_quantity'),\n\t]);\n\n\tuseEffect(() => {\n\t\tconst headers = [];\n\t\theaders.push(t('tablecell_product_name'));\n\t\theaders.push(t('tablecell_product_quantity'));\n\t\tif (currency && currency !== 'all') {\n\t\t\theaders.push(t('tablecell_product_income'));\n\t\t}\n\t\tsetTableHeaders(headers);\n\t\t// eslint-disable-next-line\n\t}, [setTableHeaders, currency]);\n\n\tconst getCellContent = (rowIdx, cellIdx, data) => {\n\t\tswitch (cellIdx) {\n\t\t\tcase 0:\n\t\t\t\treturn \n\t\t\t\t\t{data.name}\n\t\t\t\t;\n\t\t\tcase 1:\n\t\t\t\treturn report[rowIdx].Quantity.value;\n\t\t\tcase 2:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn <>;\n\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t (currency && currency !== 'all') ?\n\t\t\t\t\t\tt('orders_report_product_pie_currency', { count: currencyFormatPrice(count, currency) }) :\n\t\t\t\t\t\tt('orders_report_product_pie', { count: count })}\n\t\t\t\t\ttableHeaders={tableHeaders}\n\t\t\t\t\tgetCellContent={getCellContent}\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t);\n};\n\nOrdersProductReport.propTypes = {\n\tcurrency: PropTypes.string,\n\tloading : PropTypes.bool,\n\treport : PropTypes.array\n}; \n\nexport default OrdersProductReport;","import React from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport useTheme from '@material-ui/core/styles/useTheme';\nimport uuid from '../../../utils/uuid';\nimport {pad} from '../../../utils/misc';\n\nimport {Area, CartesianGrid, ReferenceLine, ResponsiveContainer, Tooltip, XAxis, YAxis} from 'recharts';\nimport AreaChart from 'recharts/lib/chart/AreaChart';\n\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport CurrencyFormatedPrice from '../Currency/CurrencyFormatedPrice';\nimport Grid from '@material-ui/core/Grid';\nimport PieChartNoData from '../../core/data/charts/pie/PieChartNoData';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport Title from '../../core/typography/Title';\nimport {Trans, useTranslation} from 'react-i18next';\nimport Typography from '@material-ui/core/Typography';\n\nimport {currencyFormatPrice} from '../../../hooks/useCurrency';\n\nconst completeStats = (period, stats) => {\n\tconst dayInMonth = moment(period, 'YYYY-MM').daysInMonth();\n\tlet newStats = [];\n\n\tconst generateEmpty = (day) => {\n\t\treturn {\n\t\t\tQuantity: { value: 0 },\n\t\t\tTotal_Vat: { value_float: 0 },\n\t\t\tdoc_count: 0,\n\t\t\tkey: uuid(),\n\t\t\tkey_as_string: period + '-' + pad(day, 2)\n\t\t};\n\t};\n\n\tlet statsIdx = 0;\n\n\tfor (let i = 0; i < dayInMonth; i++) {\n\t\tif (statsIdx > (stats.length - 1)) {\n\t\t\tnewStats.push(generateEmpty(i + 1));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (stats[statsIdx].key_as_string.split('-')[2] === pad(i + 1, 2)) {\n\t\t\tnewStats.push(stats[statsIdx]);\n\t\t\tstatsIdx++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tnewStats.push(generateEmpty(i + 1));\n\t}\n\n\treturn newStats;\n\n};\n\nconst OrdersSalesReport = ({ loading, currency, year, month, stats }) => {\n\tconst { t } = useTranslation();\n\tconst theme = useTheme();\n\n\tconst total = (currency && currency !== 'all') ?\n\t\tstats.reduce((a, b) => a + parseInt(b.Total_Vat.value_float), 0)\n\t\t:\n\t\tstats.reduce((a, b) => a + parseInt(b.Quantity.value), 0);\n\n\tconst CustomTooltip = ({ payload, label, active }) => {\n\t\tif (active && payload) {\n\t\t\tconst totalText = (currency && currency !== 'all') ?\n\t\t\t\tt('orders_report_tooltip_currency_total', {\n\t\t\t\t\ttotal: currencyFormatPrice(payload[0].payload.Total_Vat.value_float, currency)\n\t\t\t\t}) :\n\t\t\t\tt('orders_report_tooltip_total', { total: payload[0].payload.Quantity.value });\n\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('orders_report_tooltip_period', { period: label })}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{totalText}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tCustomTooltip.propTypes = {\n\t\tactive : PropTypes.bool,\n\t\tlabel : PropTypes.label, \n\t\tpayload: PropTypes.array\n\t};\n\n\tconst gradientOffset = () => {\n\t\tconst dataMax = Math.max(...stats.map((i) => (currency && currency !== 'all') ? i.Total_Vat.value_float : i.Total.value));\n\t\tconst dataMin = Math.min(...stats.map((i) => (currency && currency !== 'all') ? i.Total_Vat.value_float : i.Total.value));\n\n\t\tif (dataMax <= 0) {\n\t\t\treturn 0;\n\t\t} else if (dataMin >= 0) {\n\t\t\treturn 1;\n\t\t} else {\n\t\t\treturn dataMax / (dataMax - dataMin);\n\t\t}\n\t};\n\n\tconst off = gradientOffset();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('orders_sales_title')}\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{(\n\t\t\t\t\t\t\tcurrency && currency !== 'all') &&\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tsample\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t{(!currency || currency === 'all') && t('orders_report_axis_label', { count: total })}\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\n\t\t\t{loading && }\n\n\t\t\t{!loading && \n\n\t\t\t\t{total > 0 &&\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t}/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t (currency && currency !== 'all') ? s.Total_Vat.value_float : s.Quantity.value}\n\t\t\t\t\t\t\tstroke={theme.palette.text.primary}\n\t\t\t\t\t\t\tfill=\"url(#splitColor)\" isAnimationActive={false} />\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\t{total <= 0 &&\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\t}\n\t\t\n\t);\n};\n\nOrdersSalesReport.propTypes = {\n\tcurrency: PropTypes.string,\n\tloading : PropTypes.bool, \n\tmonth : PropTypes.string,\n\tstats : PropTypes.array,\n\tyear : PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n}; \n\nexport default OrdersSalesReport;","import React, {useEffect, useState} from 'react';\nimport {Redirect as ReactRedirect} from 'react-router-dom';\nimport PageLoader from '../../layout/Loader/PageLoader';\nimport PropTypes from 'prop-types';\n\nconst Redirect = ({ target }) => {\n\tconst [isExternal] = useState(target.startsWith('http'));\n\n\tuseEffect(() => {\n\t\tif (!isExternal || typeof window === 'undefined') return;\n\t\twindow.location.replace(target);\n\t}, [isExternal, target]);\n\n\tif (isExternal) return ;\n\treturn ;\n};\n\nRedirect.propTypes = {\n\ttarget: PropTypes.string\n}; \n\nexport default Redirect;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\nimport Card from '@material-ui/core/Card';\n\nconst UserStatusCard = ({ title, count }) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{title}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{count}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default UserStatusCard;\n\nUserStatusCard.propTypes = {\n\tcount: PropTypes.number.isRequired,\n\ttitle: PropTypes.string\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Grid, IconButton } from '@material-ui/core';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport RefreshIcon from '@material-ui/icons/Refresh';\nimport ToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup';\nimport ToggleButton from '@material-ui/lab/ToggleButton';\nimport { INTERVAL_DAY, INTERVAL_HOUR, INTERVAL_MONTH, INTERVAL_WEEK } from './Metric';\nimport { useTranslation } from 'react-i18next';\nimport TypographyToolbar from '../../typography/Toolbar';\n\nconst Toolbar = ({ title, interval, setInterval, refreshHandler, loading = false }) => {\n\tconst { t } = useTranslation();\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{loading && }\n\t\t\t\t\t\t\t{!loading && \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (newInterval)\n\t\t\t\t\t\t\t\t\t\tsetInterval(newInterval);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('metrics_interval_hour_label')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('metrics_interval_day_label')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('metrics_interval_week_label')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('metrics_interval_month_label')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Toolbar;\n\nToolbar.propTypes = {\n\tinterval: PropTypes.string.isRequired,\n\tloading: PropTypes.bool,\n\trefreshHandler: PropTypes.func.isRequired,\n\tsetInterval: PropTypes.func.isRequired,\n\ttitle: PropTypes.string.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { Fragment } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\n\nconst CustomTooltip = ({ labelFormatter, valueFormatter = undefined, active, payload }) => {\n\tconst { t } = useTranslation();\n\tif (!active || !payload || payload.length < 1) return null;\n\n\tconst label = labelFormatter(payload[0].payload.key);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{label}\n\n\t\t\t\t{payload.map((p, idx) => {\n\n\t\t\t\t\treturn 'PerSeconds' in p.payload[p.name] ?\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(`metrics_${p.name}_tooltip_per_seconds`, { value: valueFormatter ? valueFormatter(p.payload[p.name].PerSeconds) : p.payload[p.name].PerSeconds })}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t:\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(`metrics_${p.name}_tooltip_avg`, { value: valueFormatter ? valueFormatter(p.payload[p.name].Avg) : p.payload[p.name].Avg })}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(`metrics_${p.name}_tooltip_min`, { value: valueFormatter ? valueFormatter(p.payload[p.name].Min) : p.payload[p.name].Min })}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(`metrics_${p.name}_tooltip_max`, { value: valueFormatter ? valueFormatter(p.payload[p.name].Max) : p.payload[p.name].Max })}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
;\n\t\t\t\t})}\n\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default CustomTooltip;\n\nCustomTooltip.propTypes = {\n\tactive: PropTypes.any,\n\tlabelFormatter: PropTypes.any,\n\tpayload: PropTypes.any,\n\n\tvalueFormatter: PropTypes.any\n};\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport {\n\tArea,\n\tAreaChart,\n\tCartesianGrid,\n\tErrorBar,\n\tLegend,\n\tLine,\n\tLineChart,\n\tReferenceLine,\n\tResponsiveContainer,\n\tTooltip,\n\tXAxis,\n\tYAxis\n} from 'recharts';\nimport { useTheme } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { METRIC_HEIGHT } from './Metric';\nimport CustomTooltip from './CustomTooltip';\nimport { COLOR_LIST } from '../../../../utils/colors';\n\nconst Chart = ({ metrics, area = false, stacked = false, yFormatter = undefined, xFormatter = undefined, tooltipFormatter = undefined }) => {\n\tconst theme = useTheme();\n\tconst { t } = useTranslation();\n\tconst [formattedMetrics, setFormattedMetrics] = useState([]);\n\tconst [xInterval, setXInterval] = useState(10);\n\tconst [minAlert, setMinAlert] = useState(null);\n\tconst [maxAlert, setMaxAlert] = useState(null);\n\n\tconst [minDomain, setMinDomain] = useState(null);\n\tconst [maxDomain, setMaxDomain] = useState(null);\n\tconst ChartComponent = area ? AreaChart : LineChart;\n\tconst DataComponent = area ? Area : Line;\n\n\tuseEffect(() => {\n\t\tconst formatted = {};\n\t\tlet max = 0;\n\t\tlet maxAlert = null;\n\t\tlet minAlert = null;\n\n\t\tlet maxDomain = null;\n\t\tlet minDomain = null;\n\n\t\tmetrics.forEach(metric => {\n\t\t\tconst category = metric.last_metric.Category;\n\t\t\tmax = Math.max(max, metric.metrics.length);\n\n\t\t\t// Take the first one found\n\t\t\tif (maxAlert === null && metric.last_metric.Max_Alert !== null)\n\t\t\t\tmaxAlert = metric.last_metric.Max_Alert;\n\t\t\t// Take the first one found\n\t\t\tif (minAlert === null && metric.last_metric.Min_Alert !== null)\n\t\t\t\tminAlert = metric.last_metric.Min_Alert;\n\n\t\t\t// Take the first one found\n\t\t\tif (maxDomain === null && metric.last_metric.Max_Value !== null)\n\t\t\t\tmaxDomain = metric.last_metric.Max_Value;\n\t\t\t// Take the first one found\n\t\t\tif (minDomain === null && metric.last_metric.Min_Value !== null)\n\t\t\t\tminDomain = metric.last_metric.Min_Value;\n\n\t\t\tmetric.metrics.forEach(m => {\n\t\t\t\tconst key = m.Date.unixms;\n\t\t\t\tconst keyString = key.toString();\n\t\t\t\tif (!(key in formatted)) formatted[keyString] = {};\n\t\t\t\tformatted[keyString]['key'] = key;\n\n\t\t\t\tif (metric.last_metric.Type === 'counter') {\n\t\t\t\t\tformatted[keyString][category] = {\n\t\t\t\t\t\tSum: m.Sum,\n\t\t\t\t\t\tPerSeconds: m.PerSeconds,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tformatted[keyString][category] = {\n\t\t\t\t\t\tAvg: m.Avg,\n\t\t\t\t\t\tMin: m.Min,\n\t\t\t\t\t\tMax: m.Max,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\t);\n\t\t});\n\n\t\t// Will compute the number of x tick that will where the 'label' will not be display\n\t\t// Might be need to be computed based on the width of the component instead\n\t\tsetXInterval(Math.floor(max / 10));\n\t\tsetFormattedMetrics(Object.values(formatted));\n\n\t\tsetMinAlert(minAlert);\n\t\tsetMaxAlert(maxAlert);\n\n\t\tsetMinDomain(parseFloat(minDomain));\n\t\tsetMaxDomain(parseFloat(maxDomain));\n\t}, [metrics, setFormattedMetrics, setXInterval, setMinAlert, setMaxAlert, setMinDomain, setMaxDomain]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\t/>\n\n\t\t\t\t t(`metrics_${d}_legend`)}\n\t\t\t\t/>\n\t\t\t\t{metrics.map((metric, idx) =>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (!(metric.last_metric.Category in d)) return 0;\n\t\t\t\t\t\t\tif (metric.last_metric.Type === 'counter')\n\t\t\t\t\t\t\t\treturn d[metric.last_metric.Category].PerSeconds;\n\t\t\t\t\t\t\treturn d[metric.last_metric.Category].Avg;\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstroke={COLOR_LIST[idx % (COLOR_LIST.length - 1)]}\n\t\t\t\t\t\tfill={COLOR_LIST[idx % (COLOR_LIST.length - 1)]}\n\t\t\t\t\t>\n\t\t\t\t\t\t{(metrics.length < 2 && metric.last_metric.Type !== 'counter') &&\n\t\t\t\t\t\t [\n\t\t\t\t\t\t\t\td[metric.last_metric.Category].Avg - d[metric.last_metric.Category].Min,\n\t\t\t\t\t\t\t\td[metric.last_metric.Category].Max - d[metric.last_metric.Category].Avg]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twidth={4}\n\t\t\t\t\t\t\tstrokeWidth={2}\n\t\t\t\t\t\t\tstroke={COLOR_LIST[idx % (COLOR_LIST.length - 1)]}\n\t\t\t\t\t\t\tdirection='y'\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t{maxAlert &&\n\t\t\t\t\n\t\t\t\t}\n\n\t\t\t\t{minAlert &&\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\n\n\t);\n};\n\nexport default Chart;\n\nChart.propTypes = {\n\tarea: PropTypes.bool,\n\tmetrics: PropTypes.array.isRequired,\n\tstacked: PropTypes.bool,\n\ttooltipFormatter: PropTypes.func,\n\txFormatter: PropTypes.func,\n\tyFormatter: PropTypes.func\n};\n","import React from 'react';\nimport { METRIC_HEIGHT } from './Metric';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport { useTranslation } from 'react-i18next';\n\nconst NoData = () => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('metrics_no_data')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default NoData;\n","import { useCallback, useEffect, useState } from 'react';\nimport { rest } from '@karpeleslab/klbfw';\n\nconst query = (token, startUnix, endUnix, metaObject) => {\n\tconst params = {\n\t\ttoken: token,\n\t\tstart: `@${startUnix}`,\n\t\tend: `@${endUnix}`,\n\t\tmetaObject: metaObject,\n\t\tinterval: getBestInterval(startUnix, endUnix),\n\t};\n\treturn rest('Metric:get', 'GET', params).then(d => d.data);\n};\n\nexport const useMultipleMetrics = (tokens, metaObject, startUnix, endUnix) => {\n\tconst [metrics, setMetrics] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst refresh = useCallback(\n\t\t() => {\n\t\t\tsetLoading(true);\n\t\t\tlet promises = [];\n\t\t\ttokens.forEach(t => {\n\t\t\t\tpromises.push(query(t, startUnix, endUnix, metaObject));\n\t\t\t});\n\n\t\t\treturn Promise.all(promises)\n\t\t\t\t.then(d => setMetrics(d))\n\t\t\t\t.catch(e => {\n\t\t\t\t\tsetMetrics({ error: e });\n\t\t\t\t})\n\t\t\t\t.finally(() => setLoading(false));\n\n\t\t}\n\t\t, [tokens, metaObject, startUnix, endUnix]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [tokens, metaObject, startUnix, endUnix]); //eslint-disable-line\n\n\treturn [metrics, refresh, loading];\n};\n\n\nexport const useMetrics = (token, metaObject, startUnix, endUnix) => {\n\tconst [metrics, setMetrics] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst refresh = useCallback(\n\t\tdata => {\n\t\t\tsetLoading(true);\n\t\t\tif (data) {\n\t\t\t\tsetLoading(false);\n\t\t\t\tsetMetrics({ ...(metrics ?? {}), data: data });\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst params = {\n\t\t\t\ttoken: token,\n\t\t\t\tstart: `@${startUnix}`,\n\t\t\t\tend: `@${endUnix}`,\n\t\t\t\tmetaObject: metaObject\n\t\t\t};\n\t\t\treturn rest('Metric:get', 'GET', params)\n\t\t\t\t.then(setMetrics)\n\t\t\t\t.catch(e => {\n\t\t\t\t\tsetMetrics({ error: e });\n\t\t\t\t})\n\t\t\t\t.finally(() => setLoading(false));\n\t\t}\n\t\t, [token, metaObject, startUnix, endUnix]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [token, metaObject, startUnix, endUnix]); //eslint-disable-line\n\n\treturn [metrics, refresh, loading];\n};\n\n\nconst MIN = 60;\nconst HOUR = MIN * 60;\nconst DAY = HOUR * 24;\nconst WEEK = DAY * 7;\nconst MONTH = DAY * 31;\nconst QUARTER = MONTH * 4;\nconst YEAR = DAY * 365;\nconst INTERVALS = [\n\tYEAR,\n\tQUARTER,\n\tMONTH,\n\tWEEK,\n\tDAY,\n\tHOUR,\n\tMIN,\n];\n\nconst getBestInterval = (start, end) => {\n\tconst seconds = end - start;\n\n\tfor (let i = 0; i < INTERVALS.length; i++) {\n\t\tif (seconds >= INTERVALS[i] * 2) return INTERVALS[i];\n\t}\n\treturn MIN;\n};\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport moment from 'moment';\nimport { Skeleton } from '@material-ui/lab';\nimport { Grid } from '@material-ui/core';\nimport Toolbar from './Toolbar';\nimport Chart from './Chart';\nimport NoData from './NoData';\nimport { useMultipleMetrics } from '../../../../hooks/useMetric';\n\nexport const INTERVAL_HOUR = 'hour';\nexport const INTERVAL_DAY = 'day';\nexport const INTERVAL_WEEK = 'week';\nexport const INTERVAL_MONTH = 'month';\nexport const METRIC_HEIGHT = 200; // Meh\n\nconst getStartDate = interval => {\n\tif (interval === INTERVAL_HOUR) return moment().subtract(1, 'hours').unix();\n\treturn moment().startOf(interval).unix();\n};\n\nconst Metric = ({ tokens, metaObject, title, area = false, stacked = false, yFormatter = undefined, tooltipFormatter = undefined }) => {\n\tconst [interval, setInterval] = useState(INTERVAL_HOUR);\n\tconst [startDate, setStartDate] = useState(getStartDate(interval));\n\tconst [endDate, setEndDate] = useState(moment().unix());\n\tconst [metrics, refresh, loading] = useMultipleMetrics(tokens, metaObject, startDate, endDate);\n\tconst [empty, setEmpty] = useState(false);\n\n\t// The first call will be trig\n\tuseEffect(() => {\n\t\tsetStartDate(getStartDate(interval));\n\t\tsetEndDate(moment().unix());\n\t}, [interval, setStartDate, setEndDate]);\n\n\tuseEffect(() => {\n\t\tif (!metrics) return;\n\t\tfor (let i = 0; i < metrics.length; i++) {\n\t\t\tif (metrics[i].metrics.length > 0) {\n\t\t\t\tsetEmpty(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tsetEmpty(true);\n\t}, [metrics, setEmpty]);\n\n\tconst refreshHandler = () => {\n\t\trefresh();\n\t};\n\n\tconst formatTime = timestamp => {\n\t\tconst time = moment(timestamp);\n\t\tswitch (interval) {\n\t\t\tcase INTERVAL_HOUR:\n\t\t\t\treturn time.format('LT');\n\t\t\tcase INTERVAL_DAY:\n\t\t\t\treturn time.format('LT');\n\t\t\tdefault:\n\t\t\t\treturn time.format('L');\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{loading && }\n\t\t\t\t{(!loading && (!metrics || empty)) &&\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\t{(!loading && metrics && !empty) &&\n\n\t\t\t\t}\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default Metric;\n\nMetric.propTypes = {\n\tarea: PropTypes.bool,\n\tmetaObject: PropTypes.string.isRequired,\n\tstacked: PropTypes.bool,\n\ttitle: PropTypes.string,\n\ttokens: PropTypes.arrayOf(PropTypes.string).isRequired,\n\ttooltipFormatter: PropTypes.func,\n\tyFormatter: PropTypes.func\n};\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { METRIC_HEIGHT } from '../../core/data/Metric/Metric';\nimport { CartesianGrid, Legend, Line, LineChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts';\nimport { useTranslation } from 'react-i18next';\nimport { COLOR_LIST } from '../../../utils/colors';\n\nconst RealmUserChart = ({ userCount, newUserStats }) => {\n\tconst { t } = useTranslation();\n\tconst [stats, setStats] = useState([]);\n\n\n\tuseEffect(() => {\n\t\tconst ns = [];\n\t\tlet uc = parseInt(userCount);\n\t\tnewUserStats.reverse().forEach(stat => {\n\t\t\tns.push({\n\t\t\t\tkey: stat.Key,\n\t\t\t\tnewCount: parseInt(stat.Count),\n\t\t\t\ttotal: uc\n\t\t\t});\n\t\t\tuc -= parseInt(stat.Count);\n\t\t});\n\t\tsetStats(ns.reverse());\n\t}, [newUserStats, setStats, userCount]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\n\n\t\t\t\n\t\t\n\t);\n};\n\nexport default RealmUserChart;\n\nRealmUserChart.propTypes = {\n\tnewUserStats: PropTypes.array.isRequired,\n\tuserCount: PropTypes.number.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport Grid from '@material-ui/core/Grid';\nimport Title from '../../core/typography/Title';\nimport { useTranslation } from 'react-i18next';\nimport { useRealmUserStats } from '../../../hooks/useRealm';\nimport UserStatusCard from './UserStatusCard';\nimport Loader from '../../layout/Loader/Loader';\nimport RealmUserChart from './RealmUserChart';\n\nconst RealmUserStats = ({ realm }) => {\n\tconst { t } = useTranslation();\n\tconst [stats] = useRealmUserStats(realm.Realm__);\n\tconst [userCount, setUserCount] = useState(0);\n\n\tuseEffect(() => {\n\t\tif (!realm || !('valid' in realm.User_Status)) return;\n\t\tsetUserCount(realm.User_Status['valid']);\n\n\t}, [realm, setUserCount]);\n\n\tif (!stats || !stats.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('realm_stats_user_status')}\n\t\t\t\n\n\t\t\t{\n\t\t\t\tObject.keys(realm.User_Status).map((key) => (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t))\n\t\t\t}\n\n\n\t\t\t\n\t\t\t\t{t('realm_stats_user_report')}\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default RealmUserStats;\n\nRealmUserStats.propTypes = {\n\trealm: PropTypes.object.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { useShellReports } from '../../../hooks/useShellReport';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport Table from '../../core/data/table/Table';\nimport { useTranslation } from 'react-i18next';\nimport { Grid } from '@material-ui/core';\nimport Chip from '@material-ui/core/Chip';\nimport GetAppIcon from '@material-ui/icons/GetApp';\n\nconst ShellReportTable = ({ realmId }) => {\n\tconst { t } = useTranslation();\n\tconst [reports, fetch, loading] = useShellReports(realmId);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{(report) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{report.Files.map(f => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={f.Type ? t(`shell_report_type_${f.Type.toLowerCase()}`) : f.Filename}\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\twindow.open(f.Download_Link, '_blank');\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tvariant='outlined'\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ShellReportTable;\n\nShellReportTable.propTypes = {\n\trealmId: PropTypes.string.isRequired\n};\n","import { useState } from 'react';\nimport { useSetSnackbar } from './useSnackbar';\nimport { rest } from '@karpeleslab/klbfw';\n\nexport const useShellReportGenerate = realmId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = () => { // can be null\n\t\tsetLoading(true);\n\n\t\treturn rest('Shell/Report:stats', 'POST', { Realm__: realmId })\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useShellReports = realmId => {\n\tconst [reports, setReports] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging,\n\t\t\t'Realm__': realmId,\n\t\t};\n\n\t\tsetLoading(true);\n\t\trest('Shell/Report', 'GET', params)\n\t\t\t.then(setReports)\n\t\t\t.catch(e => setReports({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [reports, fetch, loading];\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useShellReportGenerate } from '../../../hooks/useShellReport';\nimport { Grid, Typography } from '@material-ui/core';\nimport Title from '../../core/typography/Title';\nimport Button from '../../core/input/Button';\nimport { useSetSnackbar } from '../../../hooks/useSnackbar';\nimport ShellReportTable from '../ShellReportTable/ShellReportTable';\n\nconst ShellsOrderReport = ({ realm }) => {\n\tconst { t } = useTranslation();\n\tconst [generate, generating] = useShellReportGenerate(realm.Realm__);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst handleGenerate = () => {\n\t\tgenerate()\n\t\t\t.then(() => {\n\t\t\t\tsetSnackbar(t('shell_report_generate_success'), 'success');\n\t\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('shell_report_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('shell_report_desc')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('shell_request_report_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ShellsOrderReport;\n\nShellsOrderReport.propTypes = {\n\trealm: PropTypes.object.isRequired\n};\n","import React, {useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport {useTranslation} from 'react-i18next';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport {useRealmsTable} from '../../../hooks/useRealm';\nimport moment from 'moment';\n\nconst PxlRealmReport = ({realm}) => {\n\tconst {t} = useTranslation();\n\tconst [realms, fetch, loading] = useRealmsTable();\n\n\tuseEffect(() => {\n\t\tfetch({Owner_Realm__: realm.Realm__, Status: 'valid', sort:{Created:'DESC'}});\n\t}, []); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ r => moment(parseInt(r.Created.unixms)).format('LLL') }\n\t\t\t\n\t\t\n\t);\n};\n\nexport default PxlRealmReport;\n\nPxlRealmReport.propTypes = {\n\trealm: PropTypes.object.isRequired\n};\n","import React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\n\nimport AccessCheck from '../../components/core/utils/AccessCheck';\nimport { Grid } from '@material-ui/core';\nimport Helmet from 'react-helmet';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport Paper from '@material-ui/core/Paper';\nimport OrderReportFilters from '../../components/kakari/OrderReport/OrderReportFilters';\nimport OrdersItemReport from '../../components/kakari/OrderReport/OrdersItemReport';\nimport OrdersProductReport from '../../components/kakari/OrderReport/OrdersProductReport';\nimport OrdersSalesReport from '../../components/kakari/OrderReport/OrdersSalesReport';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport Redirect from '../../components/core/utils/Redirect';\nimport Toolbar from '../../components/core/typography/Toolbar';\n\nimport { useRealmWithParams } from '../../hooks/useRealm';\nimport { useRealmOrdersStats } from '../../hooks/useRealmOrders';\nimport RealmUserStats from '../../components/kakari/RealmStats/RealmUserStats';\nimport { isPXLRealm, isShellRealm } from '../../utils/realm';\nimport ShellsOrderReport from '../../components/kakari/OrderReport/ShellsOrderReport';\nimport PxlRealmReport from '../../components/kakari/OrderReport/PxlRealmReport';\n\nconst OrdersReport = () => {\n\tconst [year, setYear] = useState(moment().format('YYYY'));\n\tconst [month, setMonth] = useState(moment().format('MM'));\n\tconst [currency, setCurrency] = useState('all');\n\tconst { realmId } = useParams();\n\n\tconst [realm] = useRealmWithParams();\n\tconst [salesStats, productStats, itemsStats, fetch, loading] = useRealmOrdersStats(isPXLRealm(realmId));\n\n\tconst { t } = useTranslation();\n\n\tuseEffect(() => {\n\t\tfetch(currency, year + '-' + month);\n\t}, [month, year, currency]); //eslint-disable-line\n\n\tif (!realm) return ;\n\tif (!realm.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('orders_report_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('orders_report_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{isShellRealm(realm.data.Realm__) &&\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{isPXLRealm(realm.data.Realm__) &&\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t}\n\t\t\t\t>\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default OrdersReport;\n","import React from 'react'; \nimport {useTranslation} from 'react-i18next';\nimport moment from 'moment';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CachedIcon from '@material-ui/icons/Cached';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Grid \t\t\tfrom '@material-ui/core/Grid';\nimport EditIcon from '@material-ui/icons/Edit';\nimport {Link} from 'react-router-dom';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useRebuildProductCache } from './../../../hooks/useProductActions';\nimport { useSetSnackbar } from './../../../hooks/useSnackbar';\n\nconst Template = (products, fetch, loading) => {\n\tconst { t } = useTranslation();\n\tconst [rebuildProductCache, loadingRebuild] = useRebuildProductCache();\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst rebuildCache = productId => {\n\t\trebuildProductCache(productId)\n\t\t\t.then(() => setSnackbar(t('cache_rebuilt'), 'success'));\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{p => moment(p.Created.iso).format('LLL')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{p => t(p.Visible === 'Y' ? 'table_product_visible' : 'table_product_hidden')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tproduct => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={() => rebuildCache(product.Catalog_Product__)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t('rebuild_cache')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t('edit')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('regen_in_progress')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Template;\n","import React from 'react';\nimport { useCatalogProducts } from './../../../hooks/useCatalog';\n\nimport NotFound from './../../core/utils/NotFound/NotFound';\nimport Forbidden from './../../core/utils/Forbidden/Forbidden';\n\nimport Template from './ProductsList.template';\n\nconst ProductsList = () => {\n\tconst [products, fetch, loading] = useCatalogProducts();\n\n\tif (products && products.error) {\n\t\tswitch (products.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else \n\t\treturn Template(products, fetch, loading);\n};\n\nexport default ProductsList;","import React, { useState } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport AddIcon from '@material-ui/icons/Add';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CachedIcon from '@material-ui/icons/Cached';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport CreateProductModal from './../../components/kakari/CreateProductModal/CreateProductModal';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Grid \t\t\t from '@material-ui/core/Grid';\nimport Helmet from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport ProductsList from '../../components/kakari/ProductsList/ProductsList';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useRegenCatalogCache } from './../../hooks/useCatalog';\n\nconst Products = () => {\n\tconst { catalogId } \t\t= useParams();\n\tconst { t } \t\t= useTranslation();\n\tconst history = useHistory();\n\tconst [regenCache, loading] = useRegenCatalogCache(catalogId);\n\n\t\n\tconst [openProductDialog, setOpenProductDialog] = useState(false);\n\t\n\tconst onProductCreated = res => {\n\t\tsetOpenProductDialog(false);\n\t\t\n\t\tif (res && res.data && res.data.Catalog_Product__)\n\t\t\thistory.push(`/catalog/${catalogId}/product/${res.data.Catalog_Product__}`);\n\t};\n\n\tconst regenerate = () => {\n\t\tregenCache()\n\t\t\t.then(() => {\n\t\t\t\twindow.location.reload();\n\t\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('products_table_list')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('regen_in_progress')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Products;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport TextField from '@material-ui/core/TextField';\n\nconst RequestPasswordDialog = ({ open, setOpen, closeCallback }) => {\n\tconst {t} = useTranslation();\n\tconst [pwd, setPwd] = useState('');\n\tconst handleUnlock = () => {\n\t\tsetOpen(false);\n\t\tcloseCallback(pwd);\n\t};\n\n\tuseEffect(() => {\n\t\tsetPwd('');\n\t}, [open]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('security_password_required_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('security_password_required_description')}\n\t\t\t\t\n\t\t\t\t setPwd(e.target.value)}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\ttype='password'\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nRequestPasswordDialog.propTypes = { \n\tcloseCallback: PropTypes.func, \n\topen : PropTypes.bool, \n\tsetOpen : PropTypes.func, \n};\n\nexport default RequestPasswordDialog;\n","import React, {useContext, useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport {Button, Grid, TextField} from '@material-ui/core';\nimport RequestPasswordDialog from './RequestPasswordDialog';\n\nimport {UserContext} from './../../../context/UserContext';\nimport {useSetEmail} from './../../../hooks/useProfile';\nimport PropTypes from 'prop-types';\n\nconst ChangeEmail = ({ changingInfo }) => {\n\tconst [user, setUser] = useContext(UserContext);\n \n\tconst [email, setEmail] = useState(user.user.data.Email);\n\tconst [requestPwdOpen, setRequestPwdOpen] = useState(false);\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\tconst [setNewEmail, loadingNewEmail] = useSetEmail();\n\tconst {t} = useTranslation();\n\n\tuseEffect(() => {\n\t\tif (email !== user.user.data.Email && !loadingNewEmail) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\t\tsetSaveEnabled(false);\n\t}, [email, user, loadingNewEmail]);\n\n\tconst handleChangeEmail = pwd => { \n\t\tsetNewEmail(email, pwd)\n\t\t\t.then(res => {\n\t\t\t\tif (res) {\n\t\t\t\t\tconst tmp = {...user};\n\t\t\t\t\ttmp.user.Email = email;\n\t\t\t\t\tsetUser(tmp);\n\t\t\t\t} \n\t\t\t});\n\t}; \n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t setEmail(e.target.value)}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t\t{user.user.data.Has_Password &&\n\t\t\t\t\n\t\t\t}\n\t\t\n\t);\n};\n\nChangeEmail.propTypes = {\n\tchangingInfo: PropTypes.bool\n};\n\nexport default ChangeEmail;\n","import {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {rest, upload} from '@karpeleslab/klbfw';\n\nimport {useSetSnackbar} from './useSnackbar';\n\nexport const useChangePassword = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst {t} = useTranslation();\n\n\tconst doIt = (profile) => {\n\t\tsetLoading(true);\n\n\t\treturn rest('User/@/Profile', 'PATCH', profile)\n\t\t\t.then(res => {\n\t\t\t\tsetSnackbar(t('success_password_changed'), 'success');\n\t\t\t\treturn res;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n}; \n\nexport const useSetEmail = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst {t} = useTranslation();\n\n\tconst doIt = (email, pwd) => {\n\t\tsetLoading(true);\n\t\tconst params = { email };\n\t\tif (pwd) \n\t\t\tparams.current_password = pwd;\n\n\t\treturn rest('User/@:setEmail', 'POST', params)\n\t\t\t.then(() => {\n\t\t\t\tsetSnackbar(t('success_email_changed'), 'success');\n\t\t\t\treturn true;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useUpdateAvatar = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst {t} = useTranslation();\n\n\tconst doIt = (file, callback) => {\n\t\tsetLoading(true);\n\t\tupload.onprogress = (d) => {\n\t\t\tif (d.queue.length !== 0) \n\t\t\t\treturn;\n \n\t\t\tlet allComplete = true;\n\n\t\t\td.running.forEach(value => {\n\t\t\t\tif (value.status !== 'complete')\n\t\t\t\t\tallComplete = false;\n\n\t\t\t\tif (allComplete) {\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t});\n\t\t}; \n\n\t\ttry { \n\t\t\tupload.append('User/@/Profile:addImage', file, { purpose: 'main' });\n\t\t\tupload.run();\n\t\t} catch (err) {\n\t\t\tsetLoading(false);\n\t\t\tsetSnackbar(t('error_cant_update_avatar'), 'error');\n\t\t}\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useUpdateProfile = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst {t} = useTranslation();\n\n\tconst doIt = (profile) => {\n\t\tsetLoading(true);\n\n\t\treturn rest('User/@/Profile', 'PATCH', profile)\n\t\t\t.then(res => {\n\t\t\t\tsetSnackbar(t('success_profile_updated'), 'success');\n\t\t\t\treturn res;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n","import styledComponents from 'styled-components';\nimport {styled} from '@material-ui/core/styles';\nimport ReactAvatarEditor from 'react-avatar-editor';\n\n\nconst Div = styledComponents.div``;\nconst Label = styledComponents.label``;\nconst Figure = styledComponents.figure``;\nconst Input = styledComponents.input``;\n\nexport const AvatarEditorRange = styled(Input)(() => {\n\treturn {\n\t\twidth: '170px',\n\t\tmargin: '0 auto',\n\t};\n});\n\nexport const AvatarEditorImages = styled(Div)(() => {\n\treturn {\n\t\ttextAlign: 'center',\n\t};\n});\n\nexport const AvatarEditorImagesInner = styled(Div)(() => {\n\treturn {\n\t\ttextAlign: 'center',\n\t\twidth: '100%',\n\t\tmaxWidth: '25rem',\n\t\tmargin: '0 auto',\n\t};\n});\n\nexport const AvatarEditor = styled(ReactAvatarEditor)(() => {\n\treturn {\n\t\twidth: '170px !important',\n\t\theight: '170px !important',\n\t\tmargin: '0 auto',\n\t\tbackground: '#484848',\n\t};\n});\n\nexport const AvatarImages = styled(Figure)(() => {\n\treturn {\n\t\twidth: '100%',\n\t\tmaxWidth: '25rem',\n\t\tmargin: '0 auto',\n\t\t'& > img': {\n\t\t\twidth: '170px !important',\n\t\t\theight: '170px !important',\n\t\t\tmargin: '0 auto',\n\t\t\tpadding: '1rem;',\n\t\t\tboxSizing: 'border-box',\n\t\t\tbackground: '#484848',\n\t\t}\n\t};\n});\n\nexport const AvatarWrapper = styled(Div)(() => {\n\treturn {\n\t\tmargin: '0 0 20px',\n\t\tpadding: '0',\n\t\ttextAlign: 'center'\n\t};\n});\n\n\nexport const AvatarBtnsWrapper = styled(Div)(() => {\n\treturn {\n\t\tmargin: '10px 0 0',\n\t\tdisplay: 'flex'\n\t};\n});\n\n\nexport const AvatarBtn = styled(Label)(() => {\n\treturn {\n\t\twidth: '100%',\n\t\tpadding: '9px 13px',\n\t\tboxSizing: 'border-box',\n\t\tdisplay: 'block',\n\t\tcolor: '#fff',\n\t\tbackground: '#555',\n\t\tborder: '1px solid #484848',\n\t\tborderRadius: '5px',\n\t\tcursor: 'pointer',\n\t\t'&:disabled': {\n\t\t\topacity: .4,\n\t\t\tcursor: 'not-allowed'\n\t\t},\n\t\t'&:hover': {\n\t\t\topacity: .4,\n\t\t\ttransition: 'all .2s ease'\n\t\t},\n\t\t'&.upload': {\n\t\t\tbackground: '#fff',\n\t\t\tcolor: '#333',\n\t\t\t'& > input': {\n\t\t\t\tdisplay: 'none'\n\t\t\t}\n\t\t},\n\t\t'&.save': {\n\t\t\tbackgroundColor: '#48c774',\n\t\t\tcolor: '#fff',\n\t\t\tborder: '1px solid #48c774'\n\t\t}\n\n\t};\n});\n\nexport const AvatarBtnWrapper = styled(Div)(() => {\n\treturn {\n\t\twidth: '48%',\n\t\tmarginRight: '2%',\n\t\tmarginBottom: '5px',\n\t\t'&:last-child': {\n\t\t\tmarginRight: 0,\n\t\t}\n\t};\n});","import React, { Component } from 'react';\nimport { withTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport defaultAvatar from './../../../../assets/img/default-avatar.svg';\n\nimport {\n\tAvatarBtn,\n\tAvatarBtnsWrapper,\n\tAvatarBtnWrapper,\n\tAvatarImages,\n\tAvatarWrapper,\n\tAvatarEditor as StyledAvatarEditor,\n\tAvatarEditorRange, AvatarEditorImages, AvatarEditorImagesInner\n} from './styles';\n\nclass AvatarEditor extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\timgPath: null,\n\t\t\twidth: 170,\n\t\t\theight: 170,\n\t\t\tscale: 1,\n\t\t\tpreview: {\n\t\t\t\timg: null\n\t\t\t}\n\t\t};\n\t}\n\n\thandleSetImage() {\n\t\tthis.editor.getImageScaledToCanvas().toBlob((blob) => {\n\t\t\tblob['name'] = 'avatar.png';\n\t\t\tthis.props.setAvatarImage(this.props.field.name, blob);\n\t\t});\n\t}\n\n\thandleScale(e) {\n\t\tconst scale = parseFloat(e.target.value);\n\t\tthis.setState({ scale });\n\t\tthis.handleSetImage();\n\t}\n\n\tsetEditorRef(editor) {\n\t\tif (editor) {\n\t\t\tthis.editor = editor;\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.handleSetImage();\n\t\t\t}, 500);\n\t\t}\n\t}\n\n\thandleNewImage(e) {\n\t\tthis.setState({ imgPath: e.target.files[0] });\n\t}\n\n\thandleRemove() {\n\t\tthis.setState({\n\t\t\timgPath: null,\n\t\t\tscale: 1\n\t\t});\n\t\tthis.croppieFileInput.value = '';\n\t\tthis.props.setAvatarImage(this.props.field.name, this.props.defaultAvatar);\n\t}\n\n\tAvatarImage() {\n\t\tconst { t } = this.props;\n\t\tif (this.state.imgPath !== null) {\n\t\t\treturn \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t;\n\t\t} else {\n\t\t\treturn \n\t\t\t\t{t('default_avatar')}\n\t\t\t;\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { t } = this.props;\n\t\treturn (\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('profile_upload_image')}\n\t\t\t\t\t\t\t this.croppieFileInput = ref}\n\t\t\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\t\t\taccept=\"image/png, image/jpeg, image/jpg, image/svg\"\n\t\t\t\t\t\t\t\tonChange={this.handleNewImage}\n\t\t\t\t\t\t\t\trequired={this.props.required}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('profile_delete_image')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n\nAvatarEditor.propTypes = {\n\tdefaultAvatar : PropTypes.string, \n\tfield : PropTypes.object, \n\tfieldId : PropTypes.string,\n\trequired : PropTypes.bool,\n\tsetAvatarImage: PropTypes.func,\n\tt : PropTypes.func\n}; \n\nexport default withTranslation()(AvatarEditor);\n","import React, {useContext, useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport AvatarEditor from './AvatarEditor/AvatarEditor';\nimport Button from '@material-ui/core/Button';\nimport {Grid} from '@material-ui/core';\n\nimport {UserContext} from './../../../context/UserContext';\nimport {useUpdateAvatar} from './../../../hooks/useProfile';\n\n\nconst Picture = () => {\n\tconst [user] = useContext(UserContext);\n\tconst {t} = useTranslation();\n\tconst initialAvatar = user.user.data.Profile.Media_Image ? user.user.data.Profile.Media_Image.Url : null;\n\tconst [updateAvatar, changingAvatar] = useUpdateAvatar();\n\n\tconst [avatarImage, setAvatarImage] = useState(initialAvatar);\n\tconst [avatarSaveBtnEnabled, setAvatarSaveBtnEnabled] = useState(false);\n\n\n\tuseEffect(() => {\n\t\tif (initialAvatar !== avatarImage) \n\t\t\tsetAvatarSaveBtnEnabled(true);\n\t\telse \n\t\t\tsetAvatarSaveBtnEnabled(false);\n\t}, [avatarImage, initialAvatar]);\n\n\tconst handleSave = () => {\n\t\tif (!avatarImage || avatarImage === initialAvatar) return;\n\t\tupdateAvatar(avatarImage, () => window.location.reload(false));\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t setAvatarImage(v)} \n\t\t\t\t\tfieldId='user-profile-change-avatar'\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Picture;\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport ChangeEmail from './ChangeEmail';\nimport {Grid} from '@material-ui/core';\nimport Picture from './Picture';\nimport Title from './../../core/typography/Title';\n\nconst Account = () => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('profile_account')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Account;\n","import React, {useContext, useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport moment from 'moment';\n\nimport {Button, Grid, TextField} from '@material-ui/core';\nimport Date from './../../core/input/Date';\nimport FormControl from '@material-ui/core/FormControl';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport Title from './../../core/typography/Title';\n\nimport {UserContext} from './../../../context/UserContext';\nimport {useUpdateProfile} from './../../../hooks/useProfile';\n\nconst Information = () => {\n\tconst {t} = useTranslation();\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\tconst [user, setUser] = useContext(UserContext);\n\tconst [username, setUsername] = useState(user.user.data.Profile.Display_Name);\n\tconst originalBirthdate = (user.user.data.Profile.Birthdate && user.user.data.Profile.Birthdate !== '0000-00-00') ? moment(user.user.data.Profile.Birthdate) : null;\n\tconst [birthdate, setBirthdate] = useState(originalBirthdate);\n\tconst originalGender = user.user.data.Profile.Gender ?? 'N/A';\n\tconst [gender, setGender] = useState(originalGender);\n\tconst [updateProfile, changingInfo] = useUpdateProfile();\n\n\tconst genderLabel = React.useRef(null);\n\tconst [genderLabelWidth, setGenderLabelWidth] = useState(0);\n\n\tuseEffect(() => {\n\t\tsetGenderLabelWidth(genderLabel.current.offsetWidth);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (username !== user.user.data.Profile.Display_Name) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!birthdate && originalBirthdate) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif (birthdate && !originalBirthdate) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((birthdate && originalBirthdate) && birthdate.format('YYYY-MM-DD') !== originalBirthdate.format('YYYY-MM-DD')) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif (gender !== originalGender) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\n\t\tsetSaveEnabled(false);\n\t}, [username, birthdate, user, gender, originalBirthdate, originalGender]);\n\n\tconst handleSave = () => {\n\t\tlet p = {\n\t\t\tGender : gender === 'N/A' ? null : gender,\n\t\t\tDisplay_Name: username\n\t\t};\n\n\t\tif (birthdate) \n\t\t\tp.Birthdate = birthdate.format('YYYY-MM-DD');\n\n\t\tupdateProfile(p)\n\t\t\t.then(res => {\n\t\t\t\tif (res) {\n\t\t\t\t\tconst tmp = {...user};\n\t\t\t\t\ttmp.user.data.Profile = res;\n\t\t\t\t\tsetUser(tmp);\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('profile_information')}\n\t\t\t\n\t\t\t\n\t\t\t\t setUsername(e.target.value)}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('profile_gender')}\n\t\t\t\t\t setGender(e.target.value)}\n\t\t\t\t\t\tlabelWidth={genderLabelWidth}\n\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\tid: 'gender-select',\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Information;","import styledComponents from 'styled-components';\nimport {styled} from '@material-ui/core';\n\nconst Div = styledComponents.div``;\n\nexport const SnsIcon = styled(Div)(style => {\n\treturn {\n\t\tborderRadius: '50%',\n\t\twidth: style.theme.spacing(5),\n\t\theight: style.theme.spacing(5),\n\t\tbackgroundPosition: '50%',\n\t\tbackgroundRepeat: 'no-repeat',\n\t\tbackgroundAttachment: 'scroll',\n\t\tbackgroundSize: '50%',\n\t\toverflow: 'hidden',\n\t\ttextIndent: '-1000px',\n\t\t'&.twitter': {\n\t\t\tbackgroundSize: '60%',\n\t\t},\n\t\t'&.google': {\n\t\t\tbackgroundSize: '50%',\n\t\t\tbackgroundRepeat: 'no-repeat',\n\t\t\tbackgroundPosition: '50% center',\n\t\t},\n\t\t'&.line': {\n\t\t\tbackgroundSize: '70%',\n\t\t},\n\t\t'&.facebook': {\n\t\t\tbackgroundSize: '30%',\n\t\t},\n\t\t'&.youtube': {\n\t\t\tbackgroundSize: '100%',\n\t\t},\n\t\t'&.instagram': {\n\t\t\tbackgroundSize: '100%',\n\t\t},\n\t\t'&.soundcloud': {\n\t\t\tbackgroundSize: '94%',\n\t\t\tbackgroundPosition: '50% center',\n\t\t\tbackgroundRepeat: 'no-repeat',\n\t\t}\n\t};\n});\n\nexport const Twitter = styled(SnsIcon)(() => {\n\treturn {\n\t\tbackgroundColor:'#1da1f2',\n\t\tbackgroundImage: 'url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTQ1OS4zNyAxNTEuNzE2Yy4zMjUgNC41NDguMzI1IDkuMDk3LjMyNSAxMy42NDUgMCAxMzguNzItMTA1LjU4MyAyOTguNTU4LTI5OC41NTggMjk4LjU1OC01OS40NTIgMC0xMTQuNjgtMTcuMjE5LTE2MS4xMzctNDcuMTA2IDguNDQ3Ljk3NCAxNi41NjggMS4yOTkgMjUuMzQgMS4yOTkgNDkuMDU1IDAgOTQuMjEzLTE2LjU2OCAxMzAuMjc0LTQ0LjgzMi00Ni4xMzItLjk3NS04NC43OTItMzEuMTg4LTk4LjExMi03Mi43NzIgNi40OTguOTc0IDEyLjk5NSAxLjYyNCAxOS44MTggMS42MjQgOS40MjEgMCAxOC44NDMtMS4zIDI3LjYxNC0zLjU3My00OC4wODEtOS43NDctODQuMTQzLTUxLjk4LTg0LjE0My0xMDIuOTg1di0xLjI5OWMxMy45NjkgNy43OTcgMzAuMjE0IDEyLjY3IDQ3LjQzMSAxMy4zMTktMjguMjY0LTE4Ljg0My00Ni43ODEtNTEuMDA1LTQ2Ljc4MS04Ny4zOTEgMC0xOS40OTIgNS4xOTctMzcuMzYgMTQuMjk0LTUyLjk1NCA1MS42NTUgNjMuNjc1IDEyOS4zIDEwNS4yNTggMjE2LjM2NSAxMDkuODA3LTEuNjI0LTcuNzk3LTIuNTk5LTE1LjkxOC0yLjU5OS0yNC4wNCAwLTU3LjgyOCA0Ni43ODItMTA0LjkzNCAxMDQuOTM0LTEwNC45MzQgMzAuMjEzIDAgNTcuNTAyIDEyLjY3IDc2LjY3IDMzLjEzNyAyMy43MTUtNC41NDggNDYuNDU2LTEzLjMyIDY2LjU5OS0yNS4zNC03Ljc5OCAyNC4zNjYtMjQuMzY2IDQ0LjgzMy00Ni4xMzIgNTcuODI3IDIxLjExNy0yLjI3MyA0MS41ODQtOC4xMjIgNjAuNDI2LTE2LjI0My0xNC4yOTIgMjAuNzkxLTMyLjE2MSAzOS4zMDgtNTIuNjI4IDU0LjI1M3oiIGNsYXNzPSIiPjwvcGF0aD48L3N2Zz4=)'\n\t};\n});\n\n\nexport const Facebook = styled(SnsIcon)(() => {\n\treturn {\n\t\tbackgroundColor:'#3b5998',\n\t\tbackgroundImage: 'url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNjQgNTEyIj48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTc2LjcgNTEyVjI4M0gwdi05MWg3Ni43di03MS43Qzc2LjcgNDIuNCAxMjQuMyAwIDE5My44IDBjMzMuMyAwIDYxLjkgMi41IDcwLjIgMy42Vjg1aC00OC4yYy0zNy44IDAtNDUuMSAxOC00NS4xIDQ0LjNWMTkySDI1NmwtMTEuNyA5MWgtNzMuNnYyMjkiIGNsYXNzPSIiPjwvcGF0aD48L3N2Zz4=)'\n\t};\n});\n\n\nexport const Youtube = styled(SnsIcon)(() => {\n\treturn {\n\t\tbackgroundColor:'#ff0000',\n\t\tbackgroundImage: 'url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjAuMywgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIKCSBpZD0ic3ZnNDg3OCIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCgkgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA2NCA2NCIKCSBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA2NCA2NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNGRTAxMDE7fQoJLnN0MXtmaWxsOiNGRUZFRkU7fQo8L3N0eWxlPgo8c29kaXBvZGk6bmFtZWR2aWV3ICBib3JkZXJjb2xvcj0iIzY2NjY2NiIgYm9yZGVyb3BhY2l0eT0iMS4wIiBpZD0iYmFzZSIgaW5rc2NhcGU6YmJveC1ub2Rlcz0idHJ1ZSIgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIiBpbmtzY2FwZTpjeD0iMzguNTk0MTY1IiBpbmtzY2FwZTpjeT0iMzIuMTE1MTYzIiBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiIGlua3NjYXBlOm9iamVjdC1ub2Rlcz0idHJ1ZSIgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgaW5rc2NhcGU6c25hcC1iYm94PSJ0cnVlIiBpbmtzY2FwZTp6b29tPSIxIiBwYWdlY29sb3I9IiNmZmZmZmYiIHNob3dncmlkPSJmYWxzZSIgdW5pdHM9InB4Ij4KCTxpbmtzY2FwZTpncmlkICBpZD0iZ3JpZDYxMzgiIHR5cGU9Inh5Z3JpZCI+PC9pbmtzY2FwZTpncmlkPgo8L3NvZGlwb2RpOm5hbWVkdmlldz4KPGc+Cgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzIsNTkuNWMtMTUuMywwLTI3LjctMTIuNC0yNy42LTI3LjZDNC40LDE2LjcsMTYuOCw0LjUsMzIsNC41YzE1LjMsMCwyNy43LDEyLjQsMjcuNiwyNy43CgkJQzU5LjUsNDcuMSw0Ny4zLDU5LjUsMzIsNTkuNXogTTMyLDQ0LjhDMzIsNDQuOCwzMiw0NC44LDMyLDQ0LjhjMC40LDAsMC43LDAsMS4xLDBjMi40LDAsNC44LTAuMSw3LjItMC4yYzEuOC0wLjEsMy42LTAuMiw1LjQtMC40CgkJYzItMC4zLDMuNC0xLjQsNC0zLjRjMC4yLTAuNywwLjMtMS40LDAuNC0yLjJjMC40LTMuMywwLjUtNi41LDAuMy05LjhjLTAuMS0xLjgtMC4yLTMuNS0wLjYtNS4yYy0wLjQtMi4xLTEuNi0zLjQtMy43LTMuOQoJCWMtMC43LTAuMi0xLjMtMC4yLTItMC4zYy0yLjYtMC4yLTUuMi0wLjMtNy44LTAuNGMtMS44LDAtMy42LTAuMS01LjUsMGMtMi4zLDAtNC41LDAuMS02LjgsMC4yYy0xLjksMC4xLTMuOCwwLjItNS43LDAuNQoJCWMtMiwwLjMtMy40LDEuNC00LDMuNGMtMC4yLDAuNy0wLjMsMS40LTAuNCwyLjJjLTAuNCwzLjMtMC41LDYuNS0wLjMsOS44YzAuMSwxLjgsMC4yLDMuNSwwLjYsNS4yYzAuMywxLjcsMS4yLDIuOSwyLjgsMy42CgkJYzAuOCwwLjMsMS42LDAuNCwyLjQsMC41YzIuMSwwLjIsNC4yLDAuMyw2LjMsMC40QzI3LjgsNDQuOCwyOS45LDQ0LjgsMzIsNDQuOHoiLz4KCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zMiw0NC44Yy0yLjEsMC00LjItMC4xLTYuMi0wLjFjLTIuMS0wLjEtNC4yLTAuMS02LjMtMC40Yy0wLjgtMC4xLTEuNi0wLjItMi40LTAuNWMtMS42LTAuNy0yLjUtMS45LTIuOC0zLjYKCQljLTAuMy0xLjctMC41LTMuNS0wLjYtNS4yYy0wLjItMy4zLTAuMS02LjUsMC4zLTkuOGMwLjEtMC43LDAuMi0xLjUsMC40LTIuMmMwLjYtMiwxLjktMy4xLDQtMy40YzEuOS0wLjMsMy44LTAuNCw1LjctMC41CgkJYzIuMy0wLjEsNC41LTAuMSw2LjgtMC4yYzEuOCwwLDMuNiwwLDUuNSwwYzIuNiwwLjEsNS4yLDAuMSw3LjgsMC40YzAuNywwLjEsMS4zLDAuMSwyLDAuM2MyLjEsMC41LDMuMywxLjgsMy43LDMuOQoJCWMwLjQsMS43LDAuNSwzLjUsMC42LDUuMmMwLjIsMy4zLDAuMSw2LjUtMC4zLDkuOGMtMC4xLDAuNy0wLjIsMS41LTAuNCwyLjJjLTAuNiwyLTEuOSwzLjEtNCwzLjRjLTEuOCwwLjMtMy42LDAuNC01LjQsMC40CgkJYy0yLjQsMC4xLTQuOCwwLjItNy4yLDAuMkMzMi43LDQ0LjgsMzIuNCw0NC44LDMyLDQ0LjhDMzIsNDQuOCwzMiw0NC44LDMyLDQ0Ljh6IE0yOC4yLDI2LjVjMCwzLjYsMCw3LjIsMCwxMC44CgkJYzMuMi0xLjgsNi40LTMuNiw5LjYtNS40QzM0LjYsMzAuMSwzMS40LDI4LjMsMjguMiwyNi41eiIvPgoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTI4LjIsMjYuNWMzLjIsMS44LDYuNCwzLjYsOS42LDUuNGMtMy4yLDEuOC02LjQsMy42LTkuNiw1LjRDMjguMiwzMy43LDI4LjIsMzAuMSwyOC4yLDI2LjV6Ii8+CjwvZz4KPC9zdmc+Cg==)'\n\t};\n});\n\n\nexport const Instagram = styled(SnsIcon)(() => {\n\treturn {\n\t\tbackgroundColor:'#d6249f',\n\t\tbackgroundImage: 'url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjU2IDI1NiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMjcuOTk5NzQ2LDIzLjA2MzUzIEMxNjIuMTc3Mzg1LDIzLjA2MzUzIDE2Ni4yMjUzOTMsMjMuMTkzNjAyNyAxNzkuNzIyNDc2LDIzLjgwOTQxNjEgQzE5Mi4yMDIzNSwyNC4zNzg5OTI2IDE5OC45Nzk4NTMsMjYuNDY0MjIxOCAyMDMuNDkwNzM2LDI4LjIxNjY0NzcgQzIwOS40NjQ5MzgsMzAuNTM4NjUwMSAyMTMuNzI5Mzk1LDMzLjMxMjg1ODYgMjE4LjIwODI2OCwzNy43OTE3MzE5IEMyMjIuNjg3MTQxLDQyLjI3MDYwNTIgMjI1LjQ2MTM1LDQ2LjUzNTA2MTcgMjI3Ljc4Mjg0NCw1Mi41MDkyNjM4IEMyMjkuNTM1Nzc4LDU3LjAyMDE0NzIgMjMxLjYyMTAwNyw2My43OTc2NTA0IDIzMi4xOTA1ODQsNzYuMjc3MDE2IEMyMzIuODA2Mzk3LDg5Ljc3NDYwNzUgMjMyLjkzNjQ3LDkzLjgyMjYxNDcgMjMyLjkzNjQ3LDEyOC4wMDAyNTQgQzIzMi45MzY0NywxNjIuMTc3ODkzIDIzMi44MDYzOTcsMTY2LjIyNTkwMSAyMzIuMTkwNTg0LDE3OS43MjI5ODQgQzIzMS42MjEwMDcsMTkyLjIwMjg1OCAyMjkuNTM1Nzc4LDE5OC45ODAzNjEgMjI3Ljc4Mjg0NCwyMDMuNDkxMjQ0IEMyMjUuNDYxMzUsMjA5LjQ2NTQ0NiAyMjIuNjg3MTQxLDIxMy43Mjk5MDMgMjE4LjIwODI2OCwyMTguMjA4Nzc2IEMyMTMuNzI5Mzk1LDIyMi42ODc2NDkgMjA5LjQ2NDkzOCwyMjUuNDYxODU4IDIwMy40OTA3MzYsMjI3Ljc4MzM1MiBDMTk4Ljk3OTg1MywyMjkuNTM2Mjg2IDE5Mi4yMDIzNSwyMzEuNjIxNTE2IDE3OS43MjI0NzYsMjMyLjE5MTA5MiBDMTY2LjIyNzQyNSwyMzIuODA2OTA1IDE2Mi4xNzk0MTgsMjMyLjkzNjk3OCAxMjcuOTk5NzQ2LDIzMi45MzY5NzggQzkzLjgyMDA3NDIsMjMyLjkzNjk3OCA4OS43NzIwNjcsMjMyLjgwNjkwNSA3Ni4yNzcwMTYsMjMyLjE5MTA5MiBDNjMuNzk3MTQyNCwyMzEuNjIxNTE2IDU3LjAxOTYzOTEsMjI5LjUzNjI4NiA1Mi41MDkyNjM4LDIyNy43ODMzNTIgQzQ2LjUzNDU1MzYsMjI1LjQ2MTg1OCA0Mi4yNzAwOTcxLDIyMi42ODc2NDkgMzcuNzkxMjIzOCwyMTguMjA4Nzc2IEMzMy4zMTIzNTA1LDIxMy43Mjk5MDMgMzAuNTM4MTQyLDIwOS40NjU0NDYgMjguMjE2NjQ3NywyMDMuNDkxMjQ0IEMyNi40NjM3MTM4LDE5OC45ODAzNjEgMjQuMzc4NDg0NSwxOTIuMjAyODU4IDIzLjgwODkwOCwxNzkuNzIzNDkyIEMyMy4xOTMwOTQ2LDE2Ni4yMjU5MDEgMjMuMDYzMDIxOSwxNjIuMTc3ODkzIDIzLjA2MzAyMTksMTI4LjAwMDI1NCBDMjMuMDYzMDIxOSw5My44MjI2MTQ3IDIzLjE5MzA5NDYsODkuNzc0NjA3NSAyMy44MDg5MDgsNzYuMjc3NTI0MSBDMjQuMzc4NDg0NSw2My43OTc2NTA0IDI2LjQ2MzcxMzgsNTcuMDIwMTQ3MiAyOC4yMTY2NDc3LDUyLjUwOTI2MzggQzMwLjUzODE0Miw0Ni41MzUwNjE3IDMzLjMxMjM1MDUsNDIuMjcwNjA1MiAzNy43OTEyMjM4LDM3Ljc5MTczMTkgQzQyLjI3MDA5NzEsMzMuMzEyODU4NiA0Ni41MzQ1NTM2LDMwLjUzODY1MDEgNTIuNTA5MjYzOCwyOC4yMTY2NDc3IEM1Ny4wMTk2MzkxLDI2LjQ2NDIyMTggNjMuNzk3MTQyNCwyNC4zNzg5OTI2IDc2LjI3NjUwNzksMjMuODA5NDE2MSBDODkuNzc0MDk5NCwyMy4xOTM2MDI3IDkzLjgyMjEwNjYsMjMuMDYzNTMgMTI3Ljk5OTc0NiwyMy4wNjM1MyBNMTI3Ljk5OTc0NiwwIEM5My4yMzY3NzkxLDAgODguODc4MzI0NywwLjE0NzM0ODA3MiA3NS4yMjU3NjM3LDAuNzcwMjc0NzQ5IEM2MS42MDExNDgsMS4zOTIxODUyMyA1Mi4yOTY4Nzk0LDMuNTU1NjYxNDEgNDQuMTU0NjI4MSw2LjcyMDA4ODI4IEMzNS43Mzc0OTY2LDkuOTkxMjE1NDggMjguNTk5MjQ0NiwxNC4zNjc5NjEzIDIxLjQ4MzM0ODksMjEuNDgzODU3IEMxNC4zNjc0NTMyLDI4LjU5OTc1MjcgOS45OTA3MDczOSwzNS43MzgwMDQ2IDYuNzE5NTgwMTksNDQuMTU1MTM2MiBDMy41NTUxNTMzMSw1Mi4yOTczODc1IDEuMzkxNjc3MTQsNjEuNjAxNjU2MSAwLjc2OTc2NjY1Myw3NS4yMjYyNzE4IEMwLjE0NjgzOTk3NSw4OC44NzgzMjQ3IDAsOTMuMjM3Mjg3MiAwLDEyOC4wMDAyNTQgQzAsMTYyLjc2MzIyMSAwLjE0NjgzOTk3NSwxNjcuMTIyMTgzIDAuNzY5NzY2NjUzLDE4MC43NzQyMzYgQzEuMzkxNjc3MTQsMTk0LjM5ODg1MiAzLjU1NTE1MzMxLDIwMy43MDMxMjEgNi43MTk1ODAxOSwyMTEuODQ1MzcyIEM5Ljk5MDcwNzM5LDIyMC4yNjE5OTUgMTQuMzY3NDUzMiwyMjcuNDAwNzU1IDIxLjQ4MzM0ODksMjM0LjUxNjY1MSBDMjguNTk5MjQ0NiwyNDEuNjMyNTQ3IDM1LjczNzQ5NjYsMjQ2LjAwOTI5MyA0NC4xNTQ2MjgxLDI0OS4yODA0MiBDNTIuMjk2ODc5NCwyNTIuNDQ0ODQ3IDYxLjYwMTE0OCwyNTQuNjA4MzIzIDc1LjIyNTc2MzcsMjU1LjIzMDIzMyBDODguODc4MzI0NywyNTUuODUzMTYgOTMuMjM2Nzc5MSwyNTYgMTI3Ljk5OTc0NiwyNTYgQzE2Mi43NjI3MTMsMjU2IDE2Ny4xMjE2NzUsMjU1Ljg1MzE2IDE4MC43NzM3MjgsMjU1LjIzMDIzMyBDMTk0LjM5ODM0NCwyNTQuNjA4MzIzIDIwMy43MDI2MTMsMjUyLjQ0NDg0NyAyMTEuODQ0ODY0LDI0OS4yODA0MiBDMjIwLjI2MTk5NSwyNDYuMDA5MjkzIDIyNy40MDAyNDcsMjQxLjYzMjU0NyAyMzQuNTE2MTQzLDIzNC41MTY2NTEgQzI0MS42MzIwMzksMjI3LjQwMDc1NSAyNDYuMDA4Nzg1LDIyMC4yNjI1MDMgMjQ5LjI3OTkxMiwyMTEuODQ1MzcyIEMyNTIuNDQ0MzM5LDIwMy43MDMxMjEgMjU0LjYwNzgxNSwxOTQuMzk4ODUyIDI1NS4yMjk3MjUsMTgwLjc3NDIzNiBDMjU1Ljg1MjY1MiwxNjcuMTIyMTgzIDI1NiwxNjIuNzYzMjIxIDI1NiwxMjguMDAwMjU0IEMyNTYsOTMuMjM3Mjg3MiAyNTUuODUyNjUyLDg4Ljg3ODMyNDcgMjU1LjIyOTcyNSw3NS4yMjYyNzE4IEMyNTQuNjA3ODE1LDYxLjYwMTY1NjEgMjUyLjQ0NDMzOSw1Mi4yOTczODc1IDI0OS4yNzk5MTIsNDQuMTU1MTM2MiBDMjQ2LjAwODc4NSwzNS43MzgwMDQ2IDI0MS42MzIwMzksMjguNTk5NzUyNyAyMzQuNTE2MTQzLDIxLjQ4Mzg1NyBDMjI3LjQwMDI0NywxNC4zNjc5NjEzIDIyMC4yNjE5OTUsOS45OTEyMTU0OCAyMTEuODQ0ODY0LDYuNzIwMDg4MjggQzIwMy43MDI2MTMsMy41NTU2NjE0MSAxOTQuMzk4MzQ0LDEuMzkyMTg1MjMgMTgwLjc3MzcyOCwwLjc3MDI3NDc0OSBDMTY3LjEyMTY3NSwwLjE0NzM0ODA3MiAxNjIuNzYyNzEzLDAgMTI3Ljk5OTc0NiwwIFogTTEyNy45OTk3NDYsNjIuMjcwMzExNSBDOTEuNjk4MjYyLDYyLjI3MDMxMTUgNjIuMjY5ODAzNCw5MS42OTg3NyA2Mi4yNjk4MDM0LDEyOC4wMDAyNTQgQzYyLjI2OTgwMzQsMTY0LjMwMTczOCA5MS42OTgyNjIsMTkzLjczMDE5NyAxMjcuOTk5NzQ2LDE5My43MzAxOTcgQzE2NC4zMDEyMywxOTMuNzMwMTk3IDE5My43Mjk2ODksMTY0LjMwMTczOCAxOTMuNzI5Njg5LDEyOC4wMDAyNTQgQzE5My43Mjk2ODksOTEuNjk4NzcgMTY0LjMwMTIzLDYyLjI3MDMxMTUgMTI3Ljk5OTc0Niw2Mi4yNzAzMTE1IFogTTEyNy45OTk3NDYsMTcwLjY2NzE3NSBDMTA0LjQzNTc0MSwxNzAuNjY3MTc1IDg1LjMzMjgyNTIsMTUxLjU2NDI1OSA4NS4zMzI4MjUyLDEyOC4wMDAyNTQgQzg1LjMzMjgyNTIsMTA0LjQzNjI0OSAxMDQuNDM1NzQxLDg1LjMzMzMzMzMgMTI3Ljk5OTc0Niw4NS4zMzMzMzMzIEMxNTEuNTYzNzUxLDg1LjMzMzMzMzMgMTcwLjY2NjY2NywxMDQuNDM2MjQ5IDE3MC42NjY2NjcsMTI4LjAwMDI1NCBDMTcwLjY2NjY2NywxNTEuNTY0MjU5IDE1MS41NjM3NTEsMTcwLjY2NzE3NSAxMjcuOTk5NzQ2LDE3MC42NjcxNzUgWiBNMjExLjY4NjMzOCw1OS42NzM0Mjg3IEMyMTEuNjg2MzM4LDY4LjE1NjYxMjkgMjA0LjgwOTc1NSw3NS4wMzM3MDMxIDE5Ni4zMjY1NzEsNzUuMDMzNzAzMSBDMTg3Ljg0MzM4Nyw3NS4wMzM3MDMxIDE4MC45NjYyOTcsNjguMTU2NjEyOSAxODAuOTY2Mjk3LDU5LjY3MzQyODcgQzE4MC45NjYyOTcsNTEuMTkwMjQ0NSAxODcuODQzMzg3LDQ0LjMxMzY2MjQgMTk2LjMyNjU3MSw0NC4zMTM2NjI0IEMyMDQuODA5NzU1LDQ0LjMxMzY2MjQgMjExLjY4NjMzOCw1MS4xOTAyNDQ1IDIxMS42ODYzMzgsNTkuNjczNDI4NyBaIiBmaWxsPSIjRkZGIj48L3BhdGg+PC9zdmc+)'\n\t};\n});\n\nexport const Soundcloud = styled(SnsIcon)(() => {\n\treturn {\n\t\tbackground:'#FF9533',\n\t\tbackgroundImage: 'url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNDc5LjMzIDEwNzYuNjYiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO308L3N0eWxlPjwvZGVmcz48dGl0bGU+c291bmRjbG91ZGxvZ288L3RpdGxlPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0MC40Nyw2NjkuNTFjLTUuMywwLTkuNjUsNC4yNi0xMC4zMiwxMC4xNEwxMDUuNzMsOTAyLjI3LDEzMC4xNSwxMTIwYy42Nyw1Ljc3LDUsMTAsMTAuMzIsMTBzOS40OC00LjE2LDEwLjMzLTEwbDI3LjY1LTIxNy43TDE1MC44LDY3OS41NGMtLjg2LTUuODYtNS4xMy0xMC0xMC4zMy0xMFpNNDguODEsNzU0LjgzYy01LjIyLDAtOS4yOCw0LTEwLDkuNjZMMjAuNjgsOTAyLjI3bDE4LjE4LDEzNS4zMmMuNjcsNS42Niw0LjczLDkuNjYsMTAsOS42Niw1LDAsOS4wOC00LDkuOTMtOS42NmwyMS40LTEzNS4zMkw1OC43NCw3NjQuNDljLS44NS01LjY5LTQuOTEtOS42Ni05LjkzLTkuNjZabTE4OS0xMjljLTYuNTQsMC0xMS43NSw1LjExLTEyLjQyLDEyLjIxbC0yMy4xLDI2NC4yLDIzLjEsMjU0LjQ0Yy42Nyw3LjExLDUuODgsMTIuMjEsMTIuNDIsMTIuMjFzMTEuNjQtNS4xLDEyLjUtMTIuMTFsMjYuMjMtMjU0LjU0LTI2LjIzLTI2NC4yYy0uODYtNy4xLTYuMDctMTIuMjEtMTIuNS0xMi4yMVpNMzM2LDYxNi41OGMtNy42OCwwLTEzLjkyLDYuMTUtMTQuNSwxNC4zbC0yMS44NywyNzEuNCwyMS44NywyNjIuNTljLjU3LDguMTQsNi44MiwxNC4yOCwxNC41LDE0LjI4czEzLjkxLTYuMTUsMTQuNTgtMTQuMjhsMjQuODMtMjYyLjU5TDM1MC41OSw2MzAuNzljLS42NS04LjA2LTYuOTEtMTQuMjEtMTQuNTgtMTQuMjFabTExNS42MiwzMy44Yy0uNTYtOS4yOC03Ljc1LTE2LjI5LTE2LjU3LTE2LjI5LTksMC0xNi4xLDctMTYuNjYsMTYuNDhsLTIwLjY1LDI1MS43TDQxOC40LDExNjdjLjU2LDkuMzYsNy42NywxNi40OCwxNi42NiwxNi40OCw4LjgyLDAsMTYtNy4xMiwxNi41Ny0xNi40OGwyMy40OS0yNjQuNzZMNDUxLjYzLDY1MC4zOFptODMuMjUtMTc2LjIzYy0xMCwwLTE4LjI4LDguMTQtMTguNzYsMTguNjVMNDk2LjcxLDkwMi40NmwxOS40MSwyNjQuNjZjLjQ4LDEwLjMzLDguNzIsMTguNTYsMTguNzYsMTguNTYsOS44NCwwLDE4LjA5LTguMjcsMTguNzQtMTguNjZ2LjFsMjEuODctMjY0LjY2TDU1My42Miw0OTIuNzJjLS42Ny0xMC40Mi04LjktMTguNTctMTguNzQtMTguNTdabTk5LTk0LjQxYy0xMS4yOCwwLTIwLjQ1LDkuMTktMjAuOTMsMjAuNzRMNTk0LjksOTAzLjg4LDYxMywxMTY2Ljk0Yy40OCwxMS40Niw5LjY1LDIwLjYzLDIwLjkzLDIwLjYzLDExLjA3LDAsMjAuMzUtOS4xOCwyMC44My0yMC43M3YuMUw2NzUuMyw5MDMuODhsLTIwLjU1LTUwMy40Yy0uNDgtMTEuNTUtOS43NC0yMC43NC0yMC44My0yMC43NFptMTAyLjkzLTQ1LjQ1Yy0xMi41LDAtMjIuNjMsMTAtMjMsMjIuOTJsLTE3LDU0NS4zNCwxNywyNjAuMjlhMjMuMTYsMjMuMTYsMCwwLDAsMjMsMjIuNzRjMTIuMzIsMCwyMi40NC0xMCwyMi45Mi0yMi44MXYuMmwxOS0yNjAuNDItMTktNTQ1LjM0Yy0uNDgtMTIuODgtMTAuNi0yMi45Mi0yMi45Mi0yMi45MlptMTI3LjI3LDQuNTVjLS40Ny0xNC0xMS40Ni0yNS0yNS4xLTI1YTI1LjE4LDI1LjE4LDAsMCwwLTI1LjA5LDI1TDc5OC4yMiw5MDIuNTZsMTUuNzEsMjU4Ljc5QTI1LjE0LDI1LjE0LDAsMCwwLDgzOSwxMTg2LjE4YzEzLjY0LDAsMjQuNjMtMTEsMjUuMS0yNWwxNy42MS0yNTguNjJMODY0LjEyLDMzOC44NFptMCw4MjIuMzJ2MFptNzcuODQtODM1YTI3LjI4LDI3LjI4LDAsMCwwLTI3LjE3LDI3LjA5bC0xNC40LDU0OS4zMiwxNC40LDI1Ni4zNGEyNy4yNywyNy4yNywwLDAsMCwyNy4xNywyN2MxNC44NywwLDI2LjgxLTEyLDI3LjI4LTI3LjE4di4yN2wxNi4xLTI1Ni40My0xNi4xLTU0OS4zMmMtLjQ5LTE1LjE2LTEyLjQxLTI3LjEtMjcuMjgtMjcuMVptMTAzLjc5LDE4Yy0xNi4xLDAtMjksMTIuODgtMjkuMzYsMjkuMjZsLTEzLjA3LDUyOS4yMywxMy4xNSwyNTQuNjRhMjkuMzEsMjkuMzEsMCwwLDAsNTguNjEtLjE4di4yMWwxNC43Ny0yNTQuNjQtMTQuNzctNTI5LjMzYTI5LjM3LDI5LjM3LDAsMCwwLTI5LjMzLTI5LjE5Wm0xMjItOTcuMzZhMzEuNTYsMzEuNTYsMCwwLDAtMTcuMzMtNS4zLDMxLjExLDMxLjExLDAsMCwwLTE3LjA1LDUuMTEsMzEuODQsMzEuODQsMCwwLDAtMTQuNDEsMjYuMjNsLS4xOSw2TDExMDcsOTAyLjUyYzAsLjM3LDExLjkyLDI1My4xMywxMS45MiwyNTMuMTN2MWEzMiwzMiwwLDAsMCwzMS40NSwzMC4yNSwzMS4wNiwzMS4wNiwwLDAsMCwyMi05LjMsMzIuMjEsMzIuMjEsMCwwLDAsOS40Ny0yMi4wOGwxLjMyLTI1LjA5LDExLjk0LTIyNy44NC0xMy4yNi02MjkuOGEzMi4yNywzMi4yNywwLDAsMC0xNC4xLTI2Wm0xNC4xLDkwOC44OXYwWm04OS43Ni05NjguNTRhMzIuODIsMzIuODIsMCwwLDAtMzguMjQsMi44NSwzMy43LDMzLjcsMCwwLDAtMTIuNCwyNS43NWwtLjA5LDMuNTEtMTMuNzEsNjgzLjUsNywxMjYuMzMsNi44MSwxMjNhMzMuNzksMzMuNzksMCwwLDAsMzMuNTEsMzMuMjVjMTguMjksMCwzMy4zNS0xNS4wNywzMy42Mi0zMy41MnYuMjdMMTMwMyw5MDIuNzRsLTE0Ljg2LTY4N2EzNC4xNSwzNC4xNSwwLDAsMC0xNi41MS0yOC42Wm05MjMuNDksMzkwLjQ0YTMwNC4yNiwzMDQuMjYsMCwwLDAtMTE4LDIzLjY3Yy0yNC4yNS0yNzQuOC0yNTQuNzQtNDkwLjM0LTUzNS43OC00OTAuMzRhNTQ1LjM2LDU0NS4zNiwwLDAsMC0xOTUuMTYsMzYuMzdjLTIzLDguOS0yOS4wOCwxOC4wOS0yOS4zNSwzNS44OVYxMTUxYy4yNywxOC42NiwxNC43NCwzMy4xNSwzMi45NCwzNSwuNzYuMSw4NDUuMzQsMCw4NDUuMzQsMCwxNjguNDYsMCwzMDQuOTMtMTM1LDMwNC45My0zMDMuNDFzLTEzNi40OC0zMDUtMzA0Ljk0LTMwNVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMC42OCAtMTEwLjkpIi8+PC9zdmc+),linear-gradient(#FF9533, #FF7F34, #FE6D35,#FF5836,#FF4137);'\n\t};\n});\n\nexport const Google = styled(SnsIcon)(() => {\n\treturn {\n\t\tbackground:'#D62D20',\n\t\tbackgroundImage: 'url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0ODggNTEyIj48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTQ4OCAyNjEuOEM0ODggNDAzLjMgMzkxLjEgNTA0IDI0OCA1MDQgMTEwLjggNTA0IDAgMzkzLjIgMCAyNTZTMTEwLjggOCAyNDggOGM2Ni44IDAgMTIzIDI0LjUgMTY2LjMgNjQuOWwtNjcuNSA2NC45QzI1OC41IDUyLjYgOTQuMyAxMTYuNiA5NC4zIDI1NmMwIDg2LjUgNjkuMSAxNTYuNiAxNTMuNyAxNTYuNiA5OC4yIDAgMTM1LTcwLjQgMTQwLjgtMTA2LjlIMjQ4di04NS4zaDIzNi4xYzIuMyAxMi43IDMuOSAyNC45IDMuOSA0MS40eiI+PC9wYXRoPjwvc3ZnPg==);'\n\t};\n});","import React from 'react';\n\nimport {Facebook, Google, Twitter} from './../../core/data/SnsLink/styles';\n\nexport const tokenTypeToIcon = (type) => {\n\tswitch (type) {\n\t\tcase 'twitter':\n\t\t\treturn ;\n\t\tcase 'facebook':\n\t\t\treturn ;\n\t\tcase 'google':\n\t\t\treturn ;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n","import React, {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport {useRest} from '@karpeleslab/react-klbfw-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Grid from '@material-ui/core/Grid';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport {tokenTypeToIcon} from './../../../core/utils/oauth';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nimport {useFetchConsumerLink} from './../../../../hooks/useOAuth';\n\nconst AddDialog = ({ open, setOpen }) => {\n\tconst {t} = useTranslation();\n\tconst [selectedConsumer, setSelectedConsumer] = useState(null);\n\tconst [consumers] = useRest('OAuth2/Consumer');\n\tconst [fetchConsumerLink, loading] = useFetchConsumerLink();\n\n\tconst handleConsumerClick = consumer => {\n\t\tsetSelectedConsumer(consumer);\n\t\tfetchConsumerLink(consumer.OAuth2_Consumer__, window.location.href)\n\t\t\t.then(d => window.location = d.redirect_url); \n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('link_service')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('link_service_description')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{loading && }\n\t\t\t\t\t\t{!loading &&\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tconsumers && consumers.data && consumers.data.map(consumer => {\n\t\t\t\t\t\t\t\t\t\tconst selected = selectedConsumer && selectedConsumer.OAuth2_Consumer__ === consumer.OAuth2_Consumer__;\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t handleConsumerClick(consumer)}\n\t\t\t\t\t\t\t\t\t\t\t\tkey={consumer.OAuth2_Consumer__}\n\t\t\t\t\t\t\t\t\t\t\t\tselected={selected}>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{tokenTypeToIcon(consumer.Token_Name)}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{selected && }\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nAddDialog.propTypes = {\n\topen : PropTypes.bool,\n\tsetOpen: PropTypes.func \n};\n\nexport default AddDialog;\n","import {useState} from 'react';\n// import {useTranslation} from 'react-i18next';\nimport {rest} from '@karpeleslab/klbfw';\n\nimport {useSetSnackbar} from './useSnackbar';\n\nexport const useFetchConsumerLink = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = (consumerID, return_to) => {\n\t\tsetLoading(true);\n\t\treturn rest(`OAuth2/Consumer/${consumerID}:link`, 'POST', { return_to })\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t}; \n\n\treturn [doIt, loading];\n};\n\nexport const useUnlinkToken = () => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = tokenId => {\n\t\tsetLoading(true);\n\t\treturn rest(`OAuth2/Consumer/Token/${tokenId}`, 'DELETE')\n\t\t\t.then(({ data }) => data)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport EmptyState from './../../../../core/feedback/State/Empty';\nimport Graphic from './../../../../../assets/img/oauthTokens.svg';\n\nconst Empty = () => {\n\tconst {t} = useTranslation(); \n \n\treturn (\n\t\t\n\t);\n\n};\n\nexport default Empty;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '@material-ui/core/Button';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Typography from '@material-ui/core/Typography';\n\nimport {useUnlinkToken} from './../../../../hooks/useOAuth';\n\nconst DeleteDialog = ({ open, setOpen, token, onDeleted }) => {\n\tconst {t} = useTranslation();\n\tconst [unlinkToken, loading] = useUnlinkToken();\n\n\tconst handleDelete = () => unlinkToken(token.OAuth2_Consumer_Token__).then(onDeleted);\n\n\treturn (\n\t\t\n\t\t\t{t('confirm_delete_token_title')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('confirm_delete_token_desc')}\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t{t('are_you_sure')}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t); \n};\n\nDeleteDialog.propTypes = { \n\tonDeleted: PropTypes.func, \n\topen : PropTypes.bool, \n\tsetOpen : PropTypes.func, \n\ttoken : PropTypes.object, \n};\n\nexport default DeleteDialog;\n","import React, {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '@material-ui/core/Button';\nimport DeleteDialog from './../DeleteDialog';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableRow from '@material-ui/core/TableRow';\n\nimport {tokenTypeToIcon} from './../../../../core/utils/oauth';\n\nconst Row = ({token, loading}) => {\n\tconst {t} = useTranslation();\n\tconst displayToken = (!loading && token);\n \n\tconst [deleteDialogOpened, setDeleteDialogOpened] = useState(false);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{!displayToken && }\n\t\t\t\t{(displayToken) && tokenTypeToIcon(token.OAuth2_Consumer.Token_Name)}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{!displayToken && }\n\t\t\t\t{displayToken && {token.Service}}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{!displayToken && }\n\t\t\t\t{displayToken && {token.Name}}\n\t\t\t\n\n\t\t\t\n\t\t\t\t{!displayToken && }\n\t\t\t\t{(displayToken && token.Token_Type !== 'stripe') &&\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\t{(displayToken && token.Token_Type !== 'stripe') &&\n\t\t\t\t window.location.reload(false)}\n\t\t\t\t/>\n\t\t\t}\n\t\t\n\t);\n};\n\nRow.propTypes = {\n\tloading: PropTypes.bool, \n\ttoken : PropTypes.object\n};\n\nexport default Row;\n","import React, {useEffect, useState} from 'react';\nimport {useRest} from '@karpeleslab/react-klbfw-hooks';\nimport queryString from 'query-string';\nimport {useHistory, useLocation} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\n\nimport Empty from './Empty';\nimport MaterialTable from '@material-ui/core/Table';\nimport Row from './Row';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableFooter from '@material-ui/core/TableFooter';\nimport TableHead from '@material-ui/core/TableHead';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport TablePaginationActions from '@material-ui/core/TablePagination/TablePaginationActions';\nimport TableRow from '@material-ui/core/TableRow';\n\nconst Table = () => {\n\tconst {t} = useTranslation();\n\tconst history = useHistory();\n\tconst location = useLocation();\n\n\tconst [params, setParams] = useState({ page_no: 1 });\n\n\tconst [tokens] = useRest('OAuth2/Consumer/Token', params);\n\tconst displayTokens = () => tokens.data.map((u) => \n\t\t\n\t);\n\tuseEffect(() => {\n\t\tconst params = queryString.parse(location.search);\n\t\tconst pNo = 'page_no' in params ? parseInt(params.page_no) : 1;\n\t\tif (tokens && tokens.data && tokens.paging.page_no !== pNo)\n\t\t\tsetParams({ page_no: pNo });\n }, [location]); // eslint-disable-line\n \n\tconst changePageHandler = (e, newPage) => {\n\t\t// The pagination component start at 0;...\n\t\tif (!tokens || !tokens.data) \n\t\t\treturn;\n\n\t\tlet params = queryString.parse(location.search);\n\t\tparams.page_no = newPage + 1;\n\t\thistory.push(location.pathname + '?' + queryString.stringify(params));\n\t};\n\n\tconst changeResultPerPageHandler = e => {\n\t\tif (tokens || !tokens.data) \n\t\t\treturn;\n\n\t\tsetParams(p => ({ ...p, results_per_page: e.target.value }));\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{(tokens && tokens.data && tokens.data.length > 0) &&\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('tablecell_tokens_service')}\n\t\t\t\t\t\t\t\t{t('tablecell_tokens_name')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('tablecell_actions')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{tokens && displayTokens()}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t t(count !== -1 ? 'table_paging' : 'table_paging_more', {\n\t\t\t\t\t\t\t\t\t\t\tfrom: from,\n\t\t\t\t\t\t\t\t\t\t\tto: to,\n\t\t\t\t\t\t\t\t\t\t\tcount: count\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonChangePage={changePageHandler}\n\t\t\t\t\t\t\t\t\tonChangeRowsPerPage={changeResultPerPageHandler}\n\t\t\t\t\t\t\t\t\tActionsComponent={TablePaginationActions}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t\t{(tokens && tokens.data && tokens.length < 1) && }\n\t\t\n\t);\n\n};\n\nexport default Table;\n","import React, {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport AddDialog from './AddDialog';\nimport AddIcon from '@material-ui/icons/Add';\nimport Alert from '@material-ui/lab/Alert';\nimport Button from '@material-ui/core/Button';\nimport Grid from '@material-ui/core/Grid';\nimport Table from './table/Table';\nimport Toolbar from './../../../core/typography/Toolbar';\n\nconst OAuth = () => {\n\tconst {t} = useTranslation();\n\tconst [addDialogOpened, setAddDialogOpened] = useState(false);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('profile_oauth_desc')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default OAuth; \n","import React, {useContext, useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport {Button, Grid} from '@material-ui/core';\nimport TextField from '@material-ui/core/TextField';\nimport Title from './../../core/typography/Title';\nimport RequestPasswordDialog from './RequestPasswordDialog';\n\nimport {UserContext} from './../../../context/UserContext';\nimport {useChangePassword} from './../../../hooks/useProfile';\n\nconst Security = () => { \n\tconst {t} = useTranslation();\n\tconst [newPassword, setNewPassword] = useState('');\n\tconst [newPasswordRepeat, setNewPasswordRepeat] = useState('');\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\tconst [requestPwdOpen, setRequestPwdOpen] = useState(false);\n\tconst [user] = useContext(UserContext);\n\tconst [changePassword, changingInfo] = useChangePassword();\n\n\tconst resetFields = () => {\n\t\tsetNewPassword('');\n\t\tsetNewPasswordRepeat('');\n\t};\n\n\tuseEffect(() => {\n\t\tif (newPassword === '') {\n\t\t\tsetSaveEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (newPassword !== newPasswordRepeat) {\n\t\t\tsetSaveEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tsetSaveEnabled(true);\n\t}, [newPassword, newPasswordRepeat]);\n\n\tconst handleSave = old => {\n\t\tchangePassword(old, newPassword)\n\t\t\t.finally(resetFields);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('profile_security')}\n\t\t\t\n\t\t\t\n\t\t\t\t setNewPassword(e.target.value)}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\ttype='password'\n\t\t\t\t\tdisabled={changingInfo}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t setNewPasswordRepeat(e.target.value)}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\ttype='password'\n\t\t\t\t\terror={newPasswordRepeat !== newPassword}\n\t\t\t\t\thelperText={newPasswordRepeat !== newPassword ? t('confirm_password_not_match') :''}\n\t\t\t\t\tdisabled={changingInfo}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t\t{user.user.data.Has_Password &&\n\t\t\t\t\n\t\t\t}\n\t\t\n\t);\n};\n\nexport default Security;\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport Account from './../../components/common/profile/Account';\nimport Grid from '@material-ui/core/Grid';\nimport Helmet from 'react-helmet';\nimport Information from './../../components/common/profile/Information';\nimport OAuth from './../../components/common/profile/OAuth/OAuth';\nimport Paper from '@material-ui/core/Paper';\nimport Security from './../../components/common/profile/Security';\n\nconst Profile = () => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('sidebar_profile')}\n\t\t\t\n\t\t\t{ /* TBD add helmet */}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Profile;\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\n\nconst RealmRegistrationTypeSelector = ({ value, setValue, disabled, required }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant='outlined'\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nRealmRegistrationTypeSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool, \n\tsetValue: PropTypes.func,\n\tvalue : PropTypes.string\n};\n\nexport default RealmRegistrationTypeSelector;","import React, {useEffect} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport {Grid} from '@material-ui/core';\nimport RealmRegistrationTypeSelector from '../../core/input/RealmRegistrationTypeSelector';\nimport TextField from '@material-ui/core/TextField';\n\nconst RealmForm = ({ data, setData, setIsValid, disabled = false }) => {\n\tconst { t } = useTranslation();\n\n\tconst createChangeHandler = key => e => {\n\t\tsetData({ ...data, [key]: e.target.value });\n\t};\n\n\tconst getValue = (key, def = '') => {\n\t\tif (!(key in (data ?? {}))) return def;\n\t\treturn data[key];\n\t};\n\n\tuseEffect(() => {\n\t\tif (!('Name' in (data ?? {})))\n\t\t\tsetIsValid(false);\n\t\telse\n\t\t\tsetIsValid(true);\n\n\t}, [data, setIsValid]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t setData({ ...data, Registration: v })}\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t);\n};\n\nRealmForm.propTypes = {\n\tdata: PropTypes.object, \n\tdisabled: PropTypes.bool,\n\tsetData: PropTypes.func,\n\tsetIsValid: PropTypes.func\n}; \n\nexport default RealmForm;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../core/input/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport RichAlert from '../../core/feedback/RichAlert';\nimport {Trans, useTranslation} from 'react-i18next';\n\nconst RegistrationConfirmDialog = ({ open, setOpen, isOpening, onSave, saving }) => {\n\tconst { t } = useTranslation();\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleSave = () => {\n\t\tonSave().then(handleClose);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('realm_setting_registration_change_title')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tsample
\n\t\t\t\t\t\t\tsample\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('save_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n\n};\n\nRegistrationConfirmDialog.propTypes = {\n\tisOpening: PropTypes.bool,\n\tonSave : PropTypes.func,\n\topen : PropTypes.bool,\n\tsaving : PropTypes.bool, \n\tsetOpen : PropTypes.func\n};\n\nexport default RegistrationConfirmDialog;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport {deepCopy} from '../../../utils/misc';\n\nimport Button from '../../core/input/Button';\nimport {Grid} from '@material-ui/core';\nimport RealmForm from './RealmForm';\nimport RegistrationConfirmDialog from './RegistrationConfirmDialog';\n\nimport {useRealmUpdate} from '../../../hooks/useRealm';\n\nconst RealmUpdateForm = ({ realm, refresh }) => {\n\tconst { t } = useTranslation();\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\tconst [isFormValid, setIsFormValid] = useState(false);\n\tconst [data, setData] = useState(deepCopy(realm ?? {}));\n\tconst [update, updating] = useRealmUpdate(realm);\n\tconst [showRegistrationDialog, setShowRegistrationDialog] = useState(false);\n\tconst [openingRegistration, setOpeningRegistration] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetSaveEnabled(isFormValid &&\n\t\t\t(\n\t\t\t\trealm.Name !== data.Name ||\n\t\t\t\trealm.Registration !== data.Registration\n\t\t\t)\n\t\t);\n\t}, [realm, isFormValid, setSaveEnabled, data]);\n\n\tconst isOpeningRegistration = () => {\n\t\treturn realm.Registration === 'closed' && data.Registration !== 'closed';\n\t};\n\n\tconst isClosingRegistration = () => {\n\t\treturn realm.Registration !== 'closed' && data.Registration === 'closed';\n\t};\n\n\tconst saveHandler = () => {\n\t\tif (isClosingRegistration() || isOpeningRegistration()) {\n\t\t\tsetOpeningRegistration(isOpeningRegistration());\n\t\t\tsetShowRegistrationDialog(true);\n\t\t\treturn;\n\t\t}\n\n\t\texecuteSave();\n\t};\n\n\tconst executeSave = () => {\n\t\treturn update(data).then(d => refresh(d));\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nRealmUpdateForm.propTypes = {\n\trealm : PropTypes.object,\n\trefresh: PropTypes.func\n}; \n\nexport default RealmUpdateForm;","import React from 'react';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport {useRealmWithParams} from '../../hooks/useRealm';\nimport {Grid} from '@material-ui/core';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport {useTranslation} from 'react-i18next';\nimport RealmUpdateForm from '../../components/kakari/RealmForm/RealmUpdateForm';\nimport Paper from '@material-ui/core/Paper';\nimport {Helmet} from 'react-helmet';\n\nconst RealmSettings = () => {\n\tconst [realm, refresh] = useRealmWithParams();\n\tconst { t } = useTranslation();\n\n\tif (!realm) return ;\n\tif (!realm.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t\n\t\t\t\t\t{t('realm_update_title', { name: realm.data.Name })}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('realm_update_title', { name: realm.data.Name })}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default RealmSettings;","import React \tfrom 'react';\nimport PropTypes \tfrom 'prop-types';\n\nimport Typography from '@material-ui/core/Typography';\nimport Box from '@material-ui/core/Box';\n\nconst Panel = ({ children, value, index, ...other }) => {\n\treturn (\n\t\t\n\t\t\t{value === index && {children}}\n\t\t\n\t);\n};\n\nPanel.propTypes = {\n\tchildren: PropTypes.node,\n\tvalue \t: PropTypes.number, \n\tindex \t: PropTypes.number\n};\n\nexport default Panel;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Grid from '@material-ui/core/Grid';\nimport RichAlert from '../../core/feedback/RichAlert';\nimport TextField from '@material-ui/core/TextField';\nimport Title from '../../core/typography/Title';\nimport {Trans, useTranslation} from 'react-i18next';\n\nconst SiteConfiguration = ({ site }) => {\n\tconst { t } = useTranslation();\n\tconst configFileContent = 'build site:\\n' +\n\t\t' image: node:12\\n' +\n\t\t' stage: build\\n' +\n\t\t' variables:\\n' +\n\t\t' API_PREFIX: \"https://ws.atonline.com/_special/rest/\"\\n' +\n\t\t' CT_HEADER: \"Content-Type: application/zip\"\\n' +\n\t\t' before_script:\\n' +\n\t\t' - apt-get update -qq && DEBIAN_FRONTEND=noninteractive apt-get -y install zip jq curl\\n' +\n\t\t' script:\\n' +\n\t\t' # update this build script as needed, and output to \"dist\" folder\\n' +\n\t\t' - npm i\\n' +\n\t\t' - npm run build\\n' +\n\t\t' - mv build dist\\n' +\n\t\t' # from this point, do not modify\\n' +\n\t\t' - zip -9r final.zip dist etc\\n' +\n\t\t' - if [ x\"$DEPLOY_SITE\" = x ]; then echo \"Please configure DEPLOY_SITE and DEPLOY_TOKEN in gitlab\"; exit 1; fi\\n' +\n\t\t' - if [ x\"$DEPLOY_TOKEN\" = x ]; then echo \"Please configure DEPLOY_SITE and DEPLOY_TOKEN in gitlab\"; exit 1; fi\\n' +\n\t\t' - COMMIT_DATE=`git show -s --format=%ci \"${CI_COMMIT_SHA}\"`\\n' +//eslint-disable-line\n\t\t' - API_INFO=`curl -s --data-urlencode \"site=${DEPLOY_SITE}\" --data-urlencode \"token=${DEPLOY_TOKEN}\" --data-urlencode \"branch=${CI_COMMIT_REF_SLUG}\" --data-urlencode \"commit=${CI_COMMIT_SHA}\" --data-urlencode \"login=${GITLAB_USER_LOGIN}\" --data-urlencode \"email=${GITLAB_USER_EMAIL}\" --data-urlencode \"user_id=${GITLAB_USER_ID}\" --data-urlencode \"user_name=${GITLAB_USER_NAME}\" --data-urlencode \"project=${CI_PROJECT_URL}\" --data-urlencode \"commit_date=${COMMIT_DATE}\" \"${API_PREFIX}Site/Version:upload\"`\\n' +//eslint-disable-line\n\t\t' - API_PUT=`echo \"$API_INFO\" | jq -r .data.PUT -`\\n' +\n\t\t' - API_COMP=`echo \"$API_INFO\" | jq -r .data.Complete -`\\n' +\n\t\t' - curl \"-#\" -T \"final.zip\" -H \"$CT_HEADER\" \"$API_PUT\" >/dev/null # upload file\\n' +\n\t\t' - curl -s \"${API_PREFIX}${API_COMP}\"; echo # notify upload complete\\n';//eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('site_config_title')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tsample\n\t\t\t\t\t\tsample\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{t('site_config_file_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tsample
\n\t\t\t\t\t\tsample\n\t\t\t\t\t\tsample\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nSiteConfiguration.propTypes = {\n\tsite: PropTypes.object\n};\n\nexport default SiteConfiguration;","import React, {useEffect} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport {Grid} from '@material-ui/core';\nimport TextField from '@material-ui/core/TextField';\n\nconst SiteForm = ({ data, setData, setIsValid, disabled = false }) => {\n\tconst { t } = useTranslation();\n\n\tconst createChangeHandler = key => e => {\n\t\tsetData({ ...data, [key]: e.target.value });\n\t};\n\n\tconst getValue = (key, def = '') => {\n\t\tif (!(key in (data ?? {}))) return def;\n\t\treturn data[key];\n\t};\n\n\tuseEffect(() => {\n\t\tif (!('Name' in (data ?? {})))\n\t\t\tsetIsValid(false);\n\t\telse\n\t\t\tsetIsValid(true);\n\n\t}, [data, setIsValid]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nSiteForm.propTypes = {\n\tdata : PropTypes.object,\n\tdisabled : PropTypes.bool,\n\tsetData : PropTypes.func,\n\tsetIsValid: PropTypes.func\n};\n\nexport default SiteForm;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport {deepCopy} from '../../../utils/misc';\n\nimport Button from '../../core/input/Button';\nimport {Grid} from '@material-ui/core';\nimport SiteForm from './SiteForm';\n\nimport {useSiteUpdate} from '../../../hooks/useSites';\n\nconst SiteUpdateForm = ({ site, refresh }) => {\n\tconst { t } = useTranslation();\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\tconst [isFormValid, setIsFormValid] = useState(false);\n\tconst [data, setData] = useState(deepCopy(site ?? {}));\n\tconst [update, updating] = useSiteUpdate(site);\n\n\n\tuseEffect(() => {\n\t\tsetSaveEnabled(isFormValid &&\n\t\t\tsite.Name !== data.Name\n\t\t);\n\t}, [site, isFormValid, setSaveEnabled, data]);\n\n\tconst saveHandler = () => {\n\t\tupdate(data).then(d => refresh(d));\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nSiteUpdateForm.propTypes = {\n\tsite : PropTypes.object,\n\trefresh: PropTypes.func\n};\n\nexport default SiteUpdateForm;","import React, {useState} \tfrom 'react';\nimport {useTranslation} \tfrom 'react-i18next';\n\nimport {Grid} \tfrom '@material-ui/core';\nimport {Helmet}\t\t\t\tfrom 'react-helmet';\nimport NotFound \tfrom '../../components/core/utils/NotFound/NotFound';\nimport PageContainer \tfrom '../../components/layout/Container/PageContainer';\nimport PageLoader \tfrom '../../components/layout/Loader/PageLoader';\nimport PageTitle \tfrom '../../components/core/typography/PageTitle';\nimport Panel \tfrom '../../components/layout/Container/tab/Panel';\nimport Paper \tfrom '@material-ui/core/Paper';\nimport Tab \tfrom '@material-ui/core/Tab';\nimport Tabs \tfrom '@material-ui/core/Tabs';\nimport SiteConfiguration \tfrom '../../components/kakari/SiteConfiguration/SiteConfiguration';\nimport SiteUpdateForm \tfrom '../../components/kakari/SiteForm/SiteUpdateForm';\n\nimport {useSiteWithParams} from '../../hooks/useSites';\n\nconst Site = () => {\n\tconst { t } = useTranslation();\n\tconst [site, refresh] = useSiteWithParams();\n\tconst [tabIndex, setTabIndex] = useState(0);\n\n\tif (!site) return ;\n\tif (!site.data) return ;\n\n\tconst handleTabChange = (event, newValue) => {\n\t\tsetTabIndex(newValue);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('site_title', { name: site.data.Name })}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('site_title', { name: site.data.Name })}\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default Site;","import React, {useEffect, useState} from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../core/input/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport RichAlert from '../../core/feedback/RichAlert';\nimport {Trans, useTranslation} from 'react-i18next';\n\nimport {useShellSnapshotRestoreForUser} from '../../../hooks/useShellSnapshot';\n\nconst ShellRestoreDialog = ({ open, setOpen, snapshot }) => {\n\tconst { t } = useTranslation();\n\tconst [restore, restoring] = useShellSnapshotRestoreForUser(snapshot);\n\tconst [date, setDate] = useState('');\n\n\tuseEffect(() => {\n\t\tif (!snapshot) return;\n\t\tsetDate(moment(parseInt(snapshot.Created.unixms)).format('LLL'));\n\t}, [setDate, snapshot]);\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleRestore = (e) => {\n\t\te.preventDefault();\n\t\trestore().then(handleClose);\n\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('dialog_restore_snapshot_title')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tsample
\n\t\t\t\t\t\t\tsample\n\t\t\t\t\t\t\t{{ date }}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t);\n};\n\nShellRestoreDialog.propTypes = {\n\topen : PropTypes.bool,\n\tsetOpen : PropTypes.func,\n\tsnapshot: PropTypes.object\n};\n\nexport default ShellRestoreDialog;","import {useParams} from 'react-router-dom';\nimport {useState} from 'react';\nimport {rest} from '@karpeleslab/klbfw';\nimport {useSetSnackbar} from './useSnackbar';\nimport {useTranslation} from 'react-i18next';\n\nexport const useShellsSnapshotsForUser = (shellId) => {\n\tconst { userId } = useParams();\n\tconst [snapshots, setSnapshots] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = filters => {\n\t\tsetLoading(true);\n\t\trest(`Shell/${shellId}/Snapshot`, 'GET', {\n\t\t\t...filters,\n\t\t\t'_admin_as': userId\n\t\t})\n\t\t\t.then(setSnapshots)\n\t\t\t.catch(e => setSnapshots({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [snapshots, fetch, loading];\n};\n\n\nexport const useShellSnapshotRestoreForUser = (snapshot) => {\n\tconst { userId } = useParams();\n\tconst [restoring, setRestoring] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst restore = () => {\n\t\tsetRestoring(true);\n\t\treturn rest(`Shell/Snapshot/${snapshot.Shell_Snapshot__}:restore`, 'POST', { '_admin_as': userId })\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('shell_snapshot_restore_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setRestoring(false));\n\t};\n\n\treturn [restore, restoring];\n};","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport Table from '../../core/data/table/Table';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from '@material-ui/core/Grid';\nimport moment from 'moment';\nimport Button from '../../core/input/Button';\nimport RestoreIcon from '@material-ui/icons/Restore';\n\n\nconst Template = (snapshots, fetch, loading, setSelected, isAdmin) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{snapshot => t(`shell_snapshots_type_${snapshot.Type}`)}\n\t\t\t\n\t\t\t\n\t\t\t\t{(snapshot) => {\n\t\t\t\t\treturn \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{moment(parseInt(snapshot.Created.unixms)).format('LLL')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{moment(parseInt(snapshot.Created.unixms)).fromNow()}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t;\n\t\t\t\t}}\n\t\t\t\n\t\t\t{isAdmin && \n\n\t\t\t\t{(snapshot) => setSelected(snapshot)}\n\t\t\t\t\tstartIcon={}\n\t\t\t\t>\n\t\t\t\t\t{t('shell_restore_btn')}\n\t\t\t\t}\n\t\t\t\n\t\t\t}\n\t\t
\n\t);\n};\n\nexport default Template;","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ShellRestoreDialog from './ShellRestoreDialog';\nimport Template from './ShellSnapshotsTable.template';\n\nimport {useAccess} from '../../../hooks/useAccess';\nimport {useShellsSnapshotsForUser} from '../../../hooks/useShellSnapshot';\n\nconst ShellSnapshotsTable = ({ shell }) => {\n\tconst [snapshots, fetch, loading] = useShellsSnapshotsForUser(shell.data.Shell__);\n\tconst [selected, setSelected] = useState(null);\n\tconst [showRestoreDialog, setShowRestoreDialog] = useState(false);\n\tconst isAdmin = useAccess(shell, 'A');\n\n\tconst onSelect = snapshot => {\n\t\tsetSelected(snapshot);\n\t\tsetShowRestoreDialog(true);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{Template(snapshots, fetch, loading, onSelect, isAdmin)}\n\t\t\t\n\t\t\n\t);\n};\n\nShellSnapshotsTable.propTypes = {\n\tshell: PropTypes.object\n};\n\nexport default ShellSnapshotsTable;","import React from 'react';\nimport {Helmet} from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport {useTranslation} from 'react-i18next';\nimport {useShellWithParamsForUser} from '../../hooks/useShellsActions';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport ShellSnapshotsTable from '../../components/kakari/ShellSnapshotsTable/ShellSnapshotsTable';\nimport {Grid} from '@material-ui/core';\n\nconst ShellSnapshots = () => {\n\tconst { t } = useTranslation();\n\tconst [shell] = useShellWithParamsForUser();\n\n\tif (!shell) return ;\n\tif (!shell.data) return ;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('snapshots_shell_title', { name: shell.data.Label })}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('snapshots_shell_title', { name: shell.data.Label })}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default ShellSnapshots;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport TextField from '@material-ui/core/TextField';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nimport {useUsers} from '../../../hooks/useRealmUsers';\n\nconst UserAutocomplete = ({ realm, value, setValue, required = false, disabled = false }) => {\n\tconst { t } = useTranslation();\n\tconst [open, setOpen] = useState(false);\n\tconst [list, fetch, loading] = useUsers(realm.Realm__);\n\n\tuseEffect(() => {\n\t\tsetOpen(false);\n\t\tif (!realm) return;\n\t\tfetch({}, { results_per_page: 50 });\n\t}, [setOpen, realm]); // eslint-disable-line\n\n\tconst onChangeHandler = (e) => {\n\t\tif (!realm) return;\n\t\tfetch({ value: e.target.value }, { results_per_page: 50 });\n\t\tsetOpen(true);\n\t};\n\n\n\treturn (\n\t\t {\n\t\t\t\tsetOpen(false);\n\t\t\t}}\n\t\t\tdisabled={disabled}\n\t\t\tvalue={value}\n\t\t\tonChange={(e, value) => setValue(value)}\n\t\t\tgetOptionSelected={(option, value) => option.User__ === value.User__}\n\t\t\tgetOptionLabel={option => !option || !option.Email ? '' : option.Email}\n\t\t\toptions={list ? list.data : []}\n\t\t\tloading={loading}\n\t\t\trenderInput={(params) => (\n\t\t\t\t\n\t\t\t\t\t\t\t\t{loading ? : null}\n\t\t\t\t\t\t\t\t{params.InputProps.endAdornment}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n};\n\nUserAutocomplete.propTypes = {\n\tdisabled: PropTypes.bool, \n\trealm : PropTypes.object,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue : PropTypes.string\n}; \n\nexport default UserAutocomplete;","import {useParams} from 'react-router-dom';\nimport {useCallback, useEffect, useState} from 'react';\nimport {rest} from '@karpeleslab/klbfw';\nimport {useSetSnackbar} from './useSnackbar';\nimport {useTranslation} from 'react-i18next';\nimport {upload} from '@karpeleslab/klbfw';\n\nexport const useRealmSupportWithParams = () => {\n\tconst { realmId } = useParams();\n\tconst [support, setSupport] = useState(null);\n\tconst refresh = useCallback(data => {\n\t\tif (data) {\n\t\t\tsetSupport({ data });\n\t\t\treturn;\n\t\t}\n\t\trest('Support', 'GET', { Realm__: realmId })\n\t\t\t.then(d => {\n\t\t\t\tif (d.data.length < 1) setSupport({});\n\t\t\t\telse setSupport({ data: d.data[0], access: d.access });\n\t\t\t})\n\t\t\t.catch(e => setSupport({ error: e }));\n\t}, [realmId, setSupport]);\n\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [realmId, refresh]);\n\n\treturn [support, refresh];\n};\n\n\nexport const useSupportContact = (support) => {\n\tconst [creating, setCreating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst contact = (userId, subject, message, attachments = []) => {\n\n\t\tconst params = {\n\t\t\tsubject: subject,\n\t\t\tmessage: message,\n\t\t\tuserId: userId,\n\t\t\tattach: attachments,\n\t\t};\n\n\t\tsetCreating(true);\n\t\treturn rest(`Support/${support.Support__}/Ticket:adminCreate`, 'POST', params)\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('user_contact_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setCreating(false));\n\t};\n\n\treturn [contact, creating];\n};\n\nexport const useSupportAttachmentUpload = (support) => {\n\tconst [uploading, setUploading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst _upload = () => {\n\t\tsetUploading(true);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst uploaded = [];\n\t\t\tupload.init(\n\t\t\t\t`Support/${support.Support__}/Ticket:upload`,\n\t\t\t\t{},\n\t\t\t\tobj => {\n\t\t\t\t\tif (obj.status === 'complete' && obj.final)\n\t\t\t\t\t\tuploaded.push(obj.final);\n\t\t\t\t}\n\t\t\t)\n\t\t\t\t.then(() => resolve(uploaded))\n\t\t\t\t.catch(reject);\n\t\t}\n\t\t).then((data) => {\n\t\t\treturn data;\n\t\t}).catch(() => {\n\t\t\t// Todo better error handling ?\n\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t}).finally(() => setUploading(false));\n\t};\n\n\n\treturn [_upload, uploading];\n};\n\nexport const useFetchCanned = () => {\n\tconst { realmId } = useParams();\n\tconst [canned, setCanned] = useState(null);\n\tconst [loading, setLoading] = useState(null);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging\n\t\t};\n\n\t\tsetLoading(true);\t\n\t\treturn rest('Support', 'GET', { Realm__: realmId })\n\t\t\t.then(({ data }) => {\n\t\t\t\treturn rest(`Support/${data[0].Support__}/Canned`, 'GET', params)\n\t\t\t\t\t.then(setCanned)\n\t\t\t\t\t.catch(e => setCanned({ error: e }))\n\t\t\t\t\t.finally(() => setLoading(false));\n\t\t\t})\n\t\t\t.catch(e => setCanned({ error: e }));\t\n\t};\n\n\treturn [canned, fetch, loading];\n}; \n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Table from './../../core/data/table/Table';\n\nimport { useFetchCanned } from './../../../hooks/useSupport';\n\nconst CannedTable = ({ support, children }) => {\n\tconst {t} = useTranslation();\n\tconst [list, fetch, loading] = useFetchCanned(support);\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nCannedTable.propTypes = {\n\tchildren: PropTypes.node,\n\tsupport : PropTypes.object\n};\n\nexport default CannedTable;","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport useTheme from '@material-ui/core/styles/useTheme';\n\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport Button from '@material-ui/core/Button';\nimport CannedTable from './CannedTable';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Flag from './../../core/data/Flag';\nimport Grid from '@material-ui/core/Grid';\nimport TableDefinition from './../../core/data/table/TableDefinition';\nimport Title from './../../core/typography/Title';\nimport Typography from '@material-ui/core/Typography';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\n\nconst useStyles = makeStyles(() => ({\n\tpreWrap: {\n\t\twhiteSpace: 'pre-wrap',\n\t},\n}));\n\nconst SelectDialog = ({ open, setOpen, onSelected }) => {\n\tconst {t} = useTranslation();\n\tconst classes = useStyles();\n\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\tconst [selected, setSelected] = useState(null);\n\tconst theme = useTheme();\n\tconst fullScreen = useMediaQuery(theme.breakpoints.down('sm'));\n\n\tuseEffect(() => {\n\t\tif (!selected) {\n\t\t\tsetSaveEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tsetSaveEnabled(true);\n\t}, [selected, setSaveEnabled]);\n\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleSelect = () => {\n\t\tonSelected(selected);\n\t\thandleClose();\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('create_canned_title')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{canned => }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcanned => (\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => setSelected(canned) }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{t('select_btn')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{selected &&\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{selected.Title}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{selected.Message}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t);\n};\n\nSelectDialog.propTypes = {\n\tonSelected: PropTypes.func,\n\topen : PropTypes.bool, \n\tsetOpen : PropTypes.func \n};\n\nexport default SelectDialog;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes \t\t\t\t\tfrom 'prop-types';\n\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport {Box, Grid} from '@material-ui/core';\nimport Button from '../../core/input/Button';\nimport Chip from '@material-ui/core/Chip';\nimport FolderSpecialIcon from '@material-ui/icons/FolderSpecial';\nimport SelectDialog \t from './../../common/support/SelectDialog';\nimport TextField from '@material-ui/core/TextField';\n\nimport {useSupportAttachmentUpload, useSupportContact} \tfrom '../../../hooks/useSupport';\n\nconst UserContact = ({ user, support }) => {\n\tconst { t } = useTranslation();\n\tconst [subject, setSubject] = useState('');\n\tconst [message, setMessage] = useState('');\n\tconst [open, setOpen] = useState(false);\n\tconst [sendEnabled, setSendEnabled] = useState(false);\n\tconst [attachments, setAttachments] = useState([]);\n\n\n\tconst [upload, uploading] = useSupportAttachmentUpload(support);\n\tconst [contact, creating] = useSupportContact(support);\n\n\tuseEffect(() => {\n\t\tsetSendEnabled(!!support && !!user && !!subject.trim() && !!message.trim());\n\t}, [setSendEnabled, support, user, subject, message]);\n\n\n\tconst handleUpload = () => {\n\t\tupload()\n\t\t\t.then(d => {\n\t\t\t\tsetAttachments([...attachments, ...d]);\n\t\t\t});\n\t};\n\n\tconst handleSend = () => {\n\t\tcontact(\n\t\t\ttypeof user === 'string' ? user : user.User__,\n\t\t\tsubject,\n\t\t\tmessage,\n\t\t\tattachments\n\t\t).then(() => {\n\t\t\tsetSubject('');\n\t\t\tsetMessage('');\n\t\t\tsetAttachments([]);\n\t\t});\n\t};\n\n\tconst handleCannedSelected = canned => {\n\t\tsetSubject(canned.Title);\n\t\tsetMessage(canned.Message);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t setSubject(e.target.value)}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tfullWidth\n\t\t\t\t\tlabel={t('ticket_subject_lbl')}\n\t\t\t\t\trequired\n\t\t\t\t\tdisabled={creating || uploading}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t setMessage(e.target.value)}\n\t\t\t\t\tvariant='outlined'\n\t\t\t\t\tmultiline rows={5}\n\t\t\t\t\trowsMax={Infinity}\n\t\t\t\t\trequired\n\t\t\t\t\tfullWidth\n\t\t\t\t\tdisabled={creating || uploading}\n\t\t\t\t\tlabel={t('contact_content_lbl')}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t{attachments.map(a =>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={a.Info.filename}\n\t\t\t\t\t\t\tonDelete={() => setAttachments(attachments.filter(at => at.Attachment_Id !== a.Attachment_Id))}\n\t\t\t\t\t\t\tcolor='primary'\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tloading={uploading}\n\t\t\t\t\t\t\t\t\tcolor='primary'\n\t\t\t\t\t\t\t\t\tvariant='outlined'\n\t\t\t\t\t\t\t\t\tonClick={handleUpload}\n\t\t\t\t\t\t\t\t\tdisabled={creating || uploading}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t('add_attachment_btn')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcolor='primary'\n\t\t\t\t\t\t\t\t\tvariant='outlined'\n\t\t\t\t\t\t\t\t\tonClick={() => setOpen(true)}\n\t\t\t\t\t\t\t\t\tdisabled={creating || uploading}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t('select_canned_response')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('send_btn')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nUserContact.propTypes = {\n\tuser\t: PropTypes.object,\n\tsupport\t: PropTypes.object\n};\n\nexport default UserContact;","import React, {useState} from 'react';\nimport {useRealmWithParams} from '../../hooks/useRealm';\nimport {useTranslation} from 'react-i18next';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport {Helmet} from 'react-helmet';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport {Grid, Paper} from '@material-ui/core';\nimport UserAutocomplete from '../../components/core/input/UserAutocomplete';\nimport {useRealmSupportWithParams} from '../../hooks/useSupport';\nimport UserContact from '../../components/kakari/UserContact/UserContact';\n\nconst ContactUser = () => {\n\tconst [realm] = useRealmWithParams();\n\tconst { t } = useTranslation();\n\tconst [user, setUser] = useState(null);\n\tconst [support] = useRealmSupportWithParams();\n\n\tif (!realm || !support) return ;\n\tif (!realm.data) return ;\n\tif (!support.data) return {t('no_support_configured')};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('contact_user_title')}\n\t\t\t\n\t\t\t{t('contact_user_title')}\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default ContactUser;","import React, {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../core/input/Button';\nimport CheckIcon from '@material-ui/icons/Check';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\n\nimport {useWaitingList, useWaitingListApprove} from '../../../hooks/useWaitingList';\n\nconst WaitingListTable = ({ realm }) => {\n\tconst { t } = useTranslation();\n\tconst [list, fetch, loading] = useWaitingList(realm);\n\tconst [approve, approving] = useWaitingListApprove();\n\tconst [validating, setValidating] = useState(null);\n\n\tconst handleValidate = (w) => {\n\t\tsetValidating(w.Realm_Waitlist__);\n\t\tapprove(w.Realm_Waitlist__)\n\t\t\t.then(() => {\n\t\t\t\tsetValidating(null);\n\t\t\t\tfetch();\n\t\t\t}).finally(() => setValidating(null));\n\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{(w) => moment(parseInt(w.Created.unixms)).format('LLL')}\n\t\t\t\n\t\t\t\n\t\t\t\t{(w) =>\n\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={approving}\n\t\t\t\t\t\tloading={w.Realm_Waitlist__ === validating}\n\t\t\t\t\t\tvariant='contained'\n\t\t\t\t\t\tcolor='primary'\n\t\t\t\t\t\tonClick={() => handleValidate(w)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('approve_waitlist_btn')}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nWaitingListTable.propTypes = {\n\trealm: PropTypes.object\n};\n\nexport default WaitingListTable;","import {useState} from 'react';\nimport {rest} from '@karpeleslab/klbfw';\nimport {useSetSnackbar} from './useSnackbar';\nimport {useTranslation} from 'react-i18next';\n\nexport const useWaitingList = (realm) => {\n\tconst [list, setList] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [currentFilters, setCurrentFilters] = useState({});\n\tconst [currentPaging, setCurrentPaging] = useState({});\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...(filters ?? currentFilters),\n\t\t\t...(paging ?? currentPaging)\n\t\t};\n\n\t\tif (paging) setCurrentPaging(paging);\n\t\tif (filters) setCurrentFilters(filters);\n\n\t\tsetLoading(true);\n\t\treturn rest(`Realm/${realm.Realm__}/Waitlist`, 'GET', params)\n\t\t\t.then(setList)\n\t\t\t.catch(e => setList({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [list, fetch, loading];\n};\n\n\nexport const useWaitingListApprove = () => {\n\tconst [approving, setApproving] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst approve = (waitingListId) => {\n\t\tsetApproving(true);\n\t\treturn rest('Realm/Waitlist/' + waitingListId + ':approve', 'POST')\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('realm_waitlist_approved'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setApproving(false));\n\t};\n\n\treturn [approve, approving];\n};","import React from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport {Grid} from '@material-ui/core';\nimport {Helmet} from 'react-helmet';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport WaitingListTable from '../../components/kakari/WaitingList/WaitingListTable';\n\nimport {useRealmWithParams} from '../../hooks/useRealm';\n\nconst WaitingList = () => {\n\tconst { t } = useTranslation();\n\tconst [realm] = useRealmWithParams();\n\n\tif (!realm) return ;\n\tif (!realm.data) return ;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('waiting_list')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('waiting_list')}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default WaitingList;","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Switch from '@material-ui/core/Switch';\nimport TextField from '@material-ui/core/TextField';\n\nimport { useSetAdminComment } from '../../../hooks/useAdminComments';\n\nconst AddAdminCommentModal = ({ user, onCommentAdded }) => {\n\tconst { t } = useTranslation();\n\tconst [open, setOpen] = useState(false);\n\tconst [value, setValue] = useState('');\n\tconst [postComment, loading] = useSetAdminComment(user.User__);\n\tconst [requiresEscalation, setRequiresEscalation] = useState(false);\n\n\tconst submitComment = () => {\n\t\tlet params = { Comment: value };\n\t\tif (requiresEscalation)\n\t\t\tparams.Action = 'pending';\n\n\t\tpostComment(params).then(res => {\n\t\t\tif (res && res.result === 'success') {\n\t\t\t\tsetRequiresEscalation(false);\n\t\t\t\tsetValue('');\n\t\t\t\tsetOpen(false);\n\t\t\t\tonCommentAdded(res.data);\n\t\t\t}\n\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t setOpen(true)}\n\t\t\t>\n\t\t\t\t{t('add_comment')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('add_comment_on_user', { user: user.Email })}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t setValue(e.target.value)}\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tmultiline={true}\n\t\t\t\t\t\trows={5}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t setRequiresEscalation(e.target.checked)}\n\t\t\t\t\t\t\t\tname=\"requires-escalation\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={t('requires_escalation')}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nAddAdminCommentModal.propTypes = {\n\tuser: PropTypes.shape({\n\t\tUser__: PropTypes.string,\n\t\tEmail : PropTypes.string\n\t}).isRequired,\n\tonCommentAdded: PropTypes.func\n};\n\nexport default AddAdminCommentModal;","import { useState } from 'react';\nimport { rest } from '@karpeleslab/klbfw';\nimport {useSetSnackbar} from './useSnackbar';\n\nexport const useAdminComments = userId => {\n\tconst [comments, setComments] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = paging => {\n\t\tconst params = { ...paging };\n\t\tsetLoading(true);\n\t\trest(`User/${userId}/AdminComment`, 'GET', params)\n\t\t\t.then(setComments)\n\t\t\t.catch(e => setComments({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [comments, fetch, loading];\n};\n\nexport const useSetAdminComment = userId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = params => { // params = { Action: 'pending' }\n\t\tsetLoading(true);\n\t\treturn rest(`User/${userId}/AdminComment`, 'POST', params)\n\t\t\t.then(res => res)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res =>{ \n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport AddAdminCommentModal from '../AddAdminCommentModal/AddAdminCommentModal';\nimport Box from '@material-ui/core/Box';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport ReportIcon from '@material-ui/icons/Report';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport { useAdminComments } from './../../../hooks/useAdminComments';\n\nconst AdminComments = ({ user }) => {\n\tconst { t } = useTranslation();\n\tconst [comments, fetch, loading] = useAdminComments(user.User__);\n\n\tconst onCommentAdded = () => {\n\t\tfetch();\n\t};\n\t\n\tconst timeSince = date => {\n\t\tdate = new Date(date);\n\t\treturn `${date.toLocaleDateString('en-US')} ${date.toLocaleTimeString('en-US')}`;\n\t};\n\n\tconst getActionIcon = action => {\n\t\tswitch (action) {\n\t\t\tcase 'done':\n\t\t\t\treturn ;\n\t\t\tcase 'pending': \n\t\t\t\treturn ;\n\t\t\tcase 'refused':\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn '';\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{a => ((a.Action && a.Action !== 'none') && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{getActionIcon(a.Action)}\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{a => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{timeSince(a.Date.iso)}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{a => a.Admin_User.Email}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nAdminComments.propTypes = {\n\tuser: PropTypes.shape({\n\t\tUser__: PropTypes.string,\n\t\tEmail : PropTypes.string\n\t}).isRequired\n};\n\nexport default AdminComments;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\n\nconst UserStatusSelector = ({value, setValue, disabled, required}) => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant=\"outlined\"\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nUserStatusSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default UserStatusSelector;","import React, {useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport TextField from '@material-ui/core/TextField';\n\nimport {Grid} from \"@material-ui/core\";\nimport UserStatusSelector from \"../../core/input/UserStatusSelector\";\nimport {useUserChangeStatus} from \"../../../hooks/useRealmUsers\";\n\nconst UserChangeStatusModal = ({ user, setUser, open, setOpen}) => {\n\tconst { t } = useTranslation();\n\tconst [value, setValue] = useState(user.Status);\n\tconst [reason, setReason] = useState('');\n\tconst [setStatus, loading] = useUserChangeStatus(user.User__);\n\n\tuseEffect(() => {\n\t\tsetValue(user.Status)\n\t}, [user, setValue])\n\n\tconst changeStatus = () => {\n\t\tlet params = { status: value, reason: reason };\n\n\t\tsetStatus(params).then(res => {\n\t\t\tif (res && res.result === 'success') {\n\t\t\t\tsetUser(res.data)\n\t\t\t\tsetValue('');\n\t\t\t\tsetReason('');\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t});\n\t};\n\n\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('change_status_on_user', { user: user.Email })}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setReason(e.target.value)}\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tmultiline={true}\n\t\t\t\t\t\t\t\trows={5}\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t setOpen(false)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('back_btn')}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('change_user_status')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t);\n};\n\nUserChangeStatusModal.propTypes = {\n\tuser: PropTypes.shape({\n\t\tUser__: PropTypes.string,\n\t\tEmail : PropTypes.string,\n\t\tStatus : PropTypes.string,\n\t}).isRequired,\n\tsetUser:PropTypes.func.isRequired,\n\topen: PropTypes.bool.isRequired,\n\tsetOpen: PropTypes.func.isRequired\n};\n\nexport default UserChangeStatusModal;","import PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport Table from '../../core/data/table/Table';\nimport {useTranslation} from 'react-i18next';\nimport {useRealmSegments} from \"../../../hooks/useRealmSegment\";\nimport Button from \"../../core/input/Button\";\nimport SearchIcon from \"@material-ui/icons/Search\";\nimport {Link} from \"react-router-dom\";\n\nconst SegmentTable = ({realmId, onSelected}) => {\n\tconst {t} = useTranslation();\n\tconst [reports, fetch, loading] = useRealmSegments(realmId);\n\tconst [idx, setIdx] = useState();\n\n\treturn (\n\t\t {\n\t\t\t\tsetIdx(idx)\n\t\t\t\tonSelected(data)\n\t\t\t} : undefined}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{!onSelected && \n\t\t\t\t{\n\t\t\t\t\tw => }\n\t\t\t\t\t\tcomponent={Link}\n\t\t\t\t\t\tto={`/realm/${realmId}/segments/${w.Realm_Segment__}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('view_btn')}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\n\t);\n};\n\nexport default SegmentTable;\n\nSegmentTable.propTypes = {\n\trealmId: PropTypes.string.isRequired,\n\tonSelected: PropTypes.func\n};\n","import {useCallback, useEffect, useState} from \"react\";\nimport {rest} from \"@karpeleslab/klbfw\";\nimport {useSetSnackbar} from \"./useSnackbar\";\nimport {useTranslation} from \"react-i18next\";\nimport {useParams} from \"react-router-dom\";\n\nexport const useRealmSegments = realmId => {\n\tconst [reports, setReports] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging,\n\t\t\t'Realm__': realmId,\n\t\t};\n\n\t\tsetLoading(true);\n\t\trest(`Realm/${realmId}/Segment`, 'GET', params)\n\t\t\t.then(setReports)\n\t\t\t.catch(e => setReports({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [reports, fetch, loading];\n};\n\n\nexport const useRealmCreateSegment = realm => {\n\tconst [creating, setCreating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst create = (key, name, enabled) => {\n\t\tsetCreating(true);\n\t\tconst data = {\n\t\t\tKey: key,\n\t\t\tEnabled: enabled,\n\t\t\tName: name,\n\t\t};\n\t\treturn rest(`Realm/${realm.Realm__}/Segment`, 'POST', data)\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('realm_segment_create_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setCreating(false));\n\t};\n\n\treturn [create, creating];\n};\n\nexport const useRealmSegmentWithParams = () => {\n\tconst { segmentId } = useParams();\n\tconst [email, setEmail] = useState(null);\n\n\tconst refresh = useCallback(data => {\n\t\t\tif (data) {\n\t\t\t\tsetEmail({ ...(email ?? {}), data: data });\n\t\t\t}\n\n\t\t\treturn rest(`Realm/Segment/${segmentId}`)\n\t\t\t\t.then(setEmail)\n\t\t\t\t.catch(e => setEmail({ error: e }));\n\t\t}\n\t\t, [email]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [email, refresh];\n};\n\n\nexport const useRealmUpdateSegment = segment => {\n\tconst [updating, setUpdating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst update = (data) => {\n\t\tsetUpdating(true);\n\n\t\treturn rest(`Realm/Segment/${segment.Realm_Segment__}`, 'PATCH', data)\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('realm_segment_update_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setUpdating(false));\n\t};\n\n\treturn [update, updating];\n};","import React, {useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {useTranslation} from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\nimport {Grid} from \"@material-ui/core\";\nimport {useUserChangeSegment} from \"../../../hooks/useRealmUsers\";\nimport SegmentTable from \"./SegmentTable\";\n\nconst UserChangeSegmentModal = ({user, setUser, open, setOpen}) => {\n\tconst {t} = useTranslation();\n\tconst [value, setValue] = useState(user.Realm_Segment__);\n\tconst [setSegment, loading] = useUserChangeSegment(user.User__);\n\n\tuseEffect(() => {\n\t\tsetValue(user.Realm_Segment__)\n\t}, [user, setValue])\n\n\tconst changeSegment = () => {\n\t\tlet params = {Realm_Segment__: value};\n\n\t\tsetSegment(params).then(res => {\n\t\t\tif (res && res.result === 'success') {\n\t\t\t\tsetUser(res.data)\n\t\t\t\tsetValue('');\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('change_segment_on_user', {user: user.Email})}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t setValue(s.Realm_Segment__)}/>\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('back_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('change_user_segment')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nUserChangeSegmentModal.propTypes = {\n\tuser: PropTypes.shape({\n\t\tUser__: PropTypes.string,\n\t\tEmail: PropTypes.string,\n\t\tStatus: PropTypes.string,\n\t}).isRequired,\n\tsetUser: PropTypes.func.isRequired,\n\topen: PropTypes.bool.isRequired,\n\tsetOpen: PropTypes.func.isRequired\n};\n\nexport default UserChangeSegmentModal;","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport { rest } from '@karpeleslab/klbfw';\n\nimport AccessCheck from './../../core/utils/AccessCheck';\nimport Button from './../../core/input/Button';\nimport CachedIcon from '@material-ui/icons/Cached';\nimport ContactMailIcon from '@material-ui/icons/ContactMail';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\n\nimport { useRealmWithParams } from './../../../hooks/useRealm';\nimport { useSetSnackbar } from './../../../hooks/useSnackbar';\nimport SettingIcon from '@material-ui/icons/Settings';\nimport UserChangeStatusModal from \"../UserChangeStatusModal/UserChangeStatusModal\";\nimport UserChangeSegmentModal from \"../Segment/UserChangeSegmentModal\";\n\nconst ACTION = {\n\tRESET_PASSWORD: 'User:adminForgotPassword',\n\tCHANGE_EMAIL : 'User/{USER_ID}:adminSetEmail',\n};\n\nconst ProfileActions = ({ user, onDone }) => {\n\tconst { t } \t\t\t\t= useTranslation();\n\tconst [loading, setLoading] = useState(false);\n\tconst [action, setAction] \t= useState('');\n\tconst [reason, setReason] \t= useState('');\n\tconst [email, setEmail] \t= useState('');\n\tconst [desc, setDesc] \t\t= useState('');\n\tconst [open, setOpen] \t\t= useState(false);\n\tconst [title, setTitle] \t= useState('');\n\tconst setSnackbar \t\t\t= useSetSnackbar();\n\tconst [realm] \t\t\t\t= useRealmWithParams();\n\tconst [showChangeStatus, setShowChangeStatus] = useState(false)\n\tconst [showChangeSegment, setShowChangeSegment] = useState(false)\n\n\tuseEffect(() => {\n\t\tif (!action)\n\t\t\treturn setOpen(false);\n\n\t\tswitch (action) {\n\t\t\tcase ACTION.CHANGE_EMAIL:\n\t\t\t\tsetTitle(t('change_email_confirm_title'));\n\t\t\t\tsetDesc(t('change_email_confirm_desc'));\n\t\t\t\tbreak;\n\t\t\tcase ACTION.RESET_PASSWORD:\n\t\t\t\tsetTitle(t('reset_password_confirm_title'));\n\t\t\t\tsetDesc(t('reset_password_confirm_desc'));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\tsetOpen(true);\n\t}, [action, setOpen, t, user]);\n\n\tconst onConfirm = () => {\n\t\tsetLoading(true);\n\n\t\tconst args = { reason };\n\t\tswitch (action) {\n\t\t\tcase ACTION.CHANGE_EMAIL:\n\t\t\t\targs.email = email;\n\t\t\t\tbreak;\n\t\t\tcase ACTION.RESET_PASSWORD:\n\t\t\t\targs.login = user.data.User__;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\trest(action.replace('{USER_ID}', user.data.User__), 'POST', args)\n\t\t\t.then(({ data }) => {\n\t\t\t\tsetSnackbar(t('profile_action_success'), 'success');\n\t\t\t\tsetAction(false);\n\t\t\t\tonDone(data);\n\t\t\t})\n\t\t\t.catch(() => setSnackbar(t('profile_action_error'), 'error'))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn (\n\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\t\tonClick={() => setAction(ACTION.RESET_PASSWORD)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('admin_reset_password')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\t\tonClick={() => setAction(ACTION.CHANGE_EMAIL)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('admin_change_email')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\t\tonClick={() => setShowChangeStatus(true)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('change_user_status')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{!user.data.Realm_Segment__ && \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\t\tonClick={() => setShowChangeSegment(true)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('change_user_segment')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\n\n\t\t\t {\n\t\t\t\tsetShowChangeStatus(false)\n\t\t\t\tonDone()\n\t\t\t}} user={user.data} open={showChangeStatus} setOpen={setShowChangeStatus}/>\n\n\t\t\t {\n\t\t\t\tsetShowChangeSegment(false)\n\t\t\t\tonDone()\n\t\t\t}} user={user.data} open={showChangeSegment} setOpen={setShowChangeSegment}/>\n\n\t\t\t\n\t\t\t\t{title}\n\t\t\t\t\n\t\t\t\t\t{desc}\n\t\t\t\t\t{\n\t\t\t\t\t\taction === ACTION.CHANGE_EMAIL &&\n\t\t\t\t\t\t setEmail(e.target.value)}\n\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\t setReason(e.target.value)}\n\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t setAction(false)}\n\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('back_btn')}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('confirm_btn')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nProfileActions.propTypes = {\n\tuser\t: PropTypes.object,\n\tonDone\t: PropTypes.func\n};\n\nexport default ProfileActions;\n","import React \tfrom 'react';\nimport {useTranslation} \tfrom 'react-i18next';\nimport PropTypes \t\t\t\tfrom 'prop-types';\nimport moment \tfrom 'moment';\nimport makeStyles \tfrom '@material-ui/core/styles/makeStyles';\n\nimport Avatar \tfrom '@material-ui/core/Avatar';\nimport {Card} \tfrom '@material-ui/core';\nimport CardContent \tfrom '@material-ui/core/CardContent';\nimport Grid \tfrom '@material-ui/core/Grid';\nimport ProfileActions \t\t\tfrom './ProfileActions';\nimport Skeleton \tfrom '@material-ui/lab/Skeleton';\nimport Typography \tfrom '@material-ui/core/Typography';\n\nimport {USER_IMAGE_VARIATION} \tfrom '../../../hooks/useRealmUsers';\n\nconst useStyles = makeStyles(theme => ({\n\twordBreak: {\n\t\twordBreak: 'break-all'\n\t},\n\tprofilePicture: {\n\t\theight: '100px',\n\t\twidth: '100px',\n\t},\n\tgridJustify: {\n\t\t[theme.breakpoints.down('xs')]: {\n\t\t\tjustifyContent: 'center'\n\t\t}\n\t},\n\tprofileDetail: {\n\t\tmarginLeft: theme.spacing(1),\n\t\tdisplay: 'inline-block'\n\t}\n}));\n\nconst Profile = ({ user }) => {\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\tlet birthDate = 'N/A';\n\tif (user && user.data.Profile.Birthdate && user.data.Profile.Birthdate !== '0000-00-00')\n\t\tbirthDate = moment(user.data.Profile.Birthdate).format('LLL');\n\n\tconst onProfileActionCompleted = () => {\n\t\twindow.location.reload(false);\n\t};\n\n\treturn (\n\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{user && user.data && \n\t\t\t\t\t\t\t{user.data.Profile.Display_Name}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{user && user.data && \n\t\t\t\t\t\t\t{user.data.Email}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t{(!user || !user.data) && }\n\t\t\t\t\t\t{(!user || !user.data) && }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{!(!user || !user.data) && }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('profile_birthdate')}:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{(!user || !user.data) && }\n\t\t\t\t\t\t\t\t\t\t{user && user.data && birthDate}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('profile_gender')}:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{(!user || !user.data) && }\n\t\t\t\t\t\t\t\t\t\t{user && user.data && (user.data.Profile.Gender ?? 'N/A')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{(!user || !user.data) && }\n\t\t\t\t\t\t{(!user || !user.data) && }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('profile_status')}:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{(!user || !user.data) && }\n\t\t\t\t\t\t\t\t\t\t{user && user.data && (user.data.Status ?? 'N/A')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('profile_segment')}:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{(!user || !user.data) && }\n\t\t\t\t\t\t\t\t\t\t{user && user.data && (!user.data.Realm_Segment__ ? 'N/A' : user.data.Realm_Segment.Name)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{(!user || !user.data) && }\n\t\t\t\t\t\t{(!user || !user.data) && }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\n\t);\n};\n\nProfile.propTypes = {\n\tuser: PropTypes.object\n};\n\nexport default Profile;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../core/input/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Table from '@material-ui/core/Table';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\n\nconst MailDialog = ({ open, setOpen, mail }) => {\n\tconst { t } = useTranslation();\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tif (!mail) return <>;\n\n\treturn (\n\t\t\n\t\t\t{mail.Subject}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('tablecell_mail_part_number')}\n\t\t\t\t\t\t\t\t\t{t('tablecell_mail_link')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{Object.keys(mail.Part).map(key =>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{key}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{mail.Part[key].Filename === 'part' ? mail.Part[key].Mime : mail.Part[key].Filename}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\n\n\t);\n};\n\nMailDialog.propTypes = {\n\tmail : PropTypes.object,\n\topen : PropTypes.bool, \n\tsetOpen: PropTypes.func, \n}; \n\nexport default MailDialog;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nimport Button from '../../core/input/Button';\nimport MailDialog from './MailDialog';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport SearchIcon from '@material-ui/icons/Search';\n\nimport {useRealmMailHistory} from '../../../hooks/useUserMail';\n\nconst UserMailHistoryTable = ({ user }) => {\n\tconst { t } = useTranslation();\n\tconst [list, fetch, loading] = useRealmMailHistory();\n\tconst [selectedMail, setSelectedMail] = React.useState(null);\n\tconst [mailDialogOpen, setMailDialogOpen] = React.useState(false);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{mail => moment(parseInt(mail.Date.unixms)).format('LLL')}\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t{\n\t\t\t\t\t\tmail => \n\t\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\n\t\t\t\n\n\t\t\n\t);\n};\n\nUserMailHistoryTable.propTypes = {\n\tuser: PropTypes.object\n};\n\nexport default UserMailHistoryTable;","import {useParams} from 'react-router-dom';\nimport {useState} from 'react';\nimport {rest} from '@karpeleslab/klbfw';\n\nexport const useRealmMailHistory = () => {\n\tconst { realmId } = useParams();\n\tconst [history, setHistory] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t'Realm__': realmId,\n\t\t\t...paging\n\t\t};\n\n\t\tsetLoading(true);\n\t\treturn rest('Mail/History', 'GET', params)\n\t\t\t.then(setHistory)\n\t\t\t.catch(e => setHistory({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [history, fetch, loading];\n};","import {useCallback, useEffect, useState} from \"react\";\nimport {rest} from \"@karpeleslab/klbfw\";\n\nexport const useMetaObjectTypes = (userId = null) => {\n\tconst [user, setUser] = useState(null);\n\n\tlet params = {}\n\tif (userId != null) {\n\t\tparams['User__'] = userId\n\t}\n\n\tconst refresh = useCallback(() => {\n\t\trest(`MetaObject:getTypes`, 'GET', params)\n\t\t\t.then(setUser)\n\t\t\t.catch(e => setUser({error: e}));\n\t}, [setUser, userId]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [user, refresh];\n};","import {useCallback, useEffect, useState} from \"react\";\nimport {rest} from \"@karpeleslab/klbfw\";\nimport {useParams} from \"react-router-dom\";\nimport {useSetSnackbar} from \"./useSnackbar\";\nimport {useTranslation} from \"react-i18next\";\n\nexport const useUserKyc = userId => {\n\tconst [kyc, setKyc] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tlet endpoint = `User/Kyc`\n\tif (!!userId) endpoint = `User/${userId}/Kyc`\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging\n\t\t};\n\n\t\tsetLoading(true);\n\t\treturn rest(endpoint, 'GET', params)\n\t\t\t.then(setKyc)\n\t\t\t.catch(e => setKyc({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [kyc, fetch, loading];\n};\n\nexport const useUserKycFile = kycId => {\n\tconst [kyc, setKyc] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging\n\t\t};\n\n\t\tsetLoading(true);\n\t\treturn rest(`User/Kyc/${kycId}/File`, 'GET', params)\n\t\t\t.then(setKyc)\n\t\t\t.catch(e => setKyc({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [kyc, fetch, loading];\n};\n\nexport const useUserKycFileDownload = (kycId) => {\n\tconst setSnackbar = useSetSnackbar();\n\tconst [approving, setApproving] = useState(false);\n\tconst { t } = useTranslation();\n\n\tconst approve = () => {\n\t\tsetApproving(true);\n\t\treturn rest(`User/Kyc/${kycId}/File:forceDownloadFiles`, 'POST')\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('kyc_file_redownloaded'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setApproving(false));\n\t};\n\n\treturn [approve, approving];\n\n};\n\nexport const useUserKycApprove = (kycId) => {\n\tconst setSnackbar = useSetSnackbar();\n\tconst [approving, setApproving] = useState(false);\n\tconst { t } = useTranslation();\n\n\tconst approve = (risk) => {\n\t\tsetApproving(true);\n\t\treturn rest(`User/Kyc/${kycId}:approve`, 'POST', {risk:risk})\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('kyc_approved'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setApproving(false));\n\t};\n\n\treturn [approve, approving];\n\n};\n\n\nexport const useUserKycSoftReject = (kycId) => {\n\tconst setSnackbar = useSetSnackbar();\n\tconst [approving, setApproving] = useState(false);\n\tconst { t } = useTranslation();\n\n\tconst approve = (reason) => {\n\t\tsetApproving(true);\n\t\treturn rest(`User/Kyc/${kycId}:softReject`, 'POST', {reason:reason})\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('kyc_soft_rejected'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setApproving(false));\n\t};\n\n\treturn [approve, approving];\n\n};\n\n\nexport const useUserKycReject = (kycId) => {\n\tconst setSnackbar = useSetSnackbar();\n\tconst [approving, setApproving] = useState(false);\n\tconst { t } = useTranslation();\n\n\tconst approve = (comment) => {\n\t\tsetApproving(true);\n\t\treturn rest(`User/Kyc/${kycId}:reject`, 'POST', {reason:comment})\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('kyc_rejected'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setApproving(false));\n\t};\n\n\treturn [approve, approving];\n\n};\n\n\nexport const useKycFetchNext = (realmId) => {\n\tconst setSnackbar = useSetSnackbar();\n\tconst [approving, setApproving] = useState(false);\n\tconst { t } = useTranslation();\n\n\tconst approve = () => {\n\t\tsetApproving(true);\n\t\treturn rest(`User/Kyc:nextToReview`, 'GET', {Realm__:realmId})\n\t\t\t.then((data) => {\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setApproving(false));\n\t};\n\n\treturn [approve, approving];\n\n};\n\n\nexport const useKycWithParams = () => {\n\tconst { kycId} = useParams();\n\tconst [kyc, setKyc] = useState(null);\n\tconst params = {}\n\tconst refresh = useCallback(data => {\n\t\t\tif (data) {\n\t\t\t\tsetKyc({ ...(kyc ?? {}), data: data });\n\t\t\t}\n\n\t\t\trest(`User/Kyc/${kycId}`,'GET', params)\n\t\t\t\t.then(setKyc)\n\t\t\t\t.catch(e => setKyc({ error: e }));\n\t\t}\n\t\t, [kycId]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [kyc, refresh];\n};","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport Table from '../../core/data/table/Table';\nimport moment from 'moment';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport NotFound from './../../core/utils/NotFound/NotFound';\nimport Forbidden from './../../core/utils/Forbidden/Forbidden';\nimport {useUserKyc} from \"../../../hooks/useKyc\";\nimport Button from \"../../core/input/Button\";\nimport SearchIcon from \"@material-ui/icons/Search\";\nimport {Link} from \"react-router-dom\";\n\nconst KycTable = ({userId = undefined, initialFilters = {}, flat = false, title = null}) => {\n\tconst {t} = useTranslation();\n\tconst [firstLoad, setFirstLoad] = useState(true);\n\tconst [kycs, fetch, loading] = useUserKyc(userId);\n\n\tuseEffect(() => {\n\t\tif (!firstLoad)\n\t\t\tfetch(initialFilters);\n\t}, [initialFilters]); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\tsetFirstLoad(false);\n\t}, []); // eslint-disable-line\n\n\tif (kycs && kycs.error) {\n\t\tswitch (kycs.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{w => w.IdCheck_Initiated == null ? \"N/A\" : moment(parseInt(w.IdCheck_Initiated.unixms)).format('LLL')}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tw => }\n\t\t\t\t\t\t\tcomponent={Link}\n\t\t\t\t\t\t\tto={`/realm/${w.Realm__}/User/${w.User__}/Kyc/${w.User_Kyc__}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('view_btn')}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t);\n};\n\nexport default KycTable;\n","import React from 'react';\nimport Panel from \"../../components/layout/Container/tab/Panel\";\nimport OrdersTable from \"../../components/kakari/OrdersTable/OrdersTable\";\nimport ShellsList from \"../../components/kakari/ShellsList/ShellsList\";\nimport KycTable from \"../../components/kakari/Kyc/KycTable\";\nimport {useTranslation} from \"react-i18next\";\n\nconst DynamicTabs = ({tabIndex, user}) => {\n\tconst {t} = useTranslation();\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\n\t\t\n\t);\n};\n\nexport default DynamicTabs;","import React, {useEffect, useState} from 'react';\nimport {useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\n\nimport AdminComments from '../../components/kakari/AdminComments/AdminComments';\nimport AffiliateInfos from '../../components/kakari/AffiliateInfos/AffiliateInfos';\nimport Alert from '@material-ui/lab/Alert';\nimport Grid from '@material-ui/core/Grid';\nimport {Helmet} from 'react-helmet';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport Panel from '../../components/layout/Container/tab/Panel';\nimport Paper from '@material-ui/core/Paper';\nimport Profile from '../../components/kakari/User/Profile';\nimport Tab from '@material-ui/core/Tab';\nimport Tabs from '@material-ui/core/Tabs';\nimport UserContact from '../../components/kakari/UserContact/UserContact';\nimport UserMailHistoryTable from '../../components/kakari/Mail/UserMailHistoryTable';\n\nimport {useIndividualUser} from '../../hooks/useRealmUsers';\nimport {useRealmSupportWithParams} from '../../hooks/useSupport';\nimport {useMetaObjectTypes} from \"../../hooks/useMetaObject\";\nimport DynamicTabs from \"./DynamicTabs\";\n\nconst supportedTypes = ['User_Kyc', 'Order', 'Shell']\n\nconst User = () => {\n\tconst {t} = useTranslation();\n\tconst {userId} = useParams();\n\tconst [support] = useRealmSupportWithParams();\n\tconst [user] = useIndividualUser();\n\tconst [allTypes] = useMetaObjectTypes(userId);\n\tconst {realmId} = useParams();\n\tconst [types, setTypes] = useState(null)\n\n\tconst [tabIndex, setTabIndex] = useState('mail_history');\n\n\n\tconst handleChange = (event, newValue) => {\n\t\tsetTabIndex(newValue);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!allTypes || !allTypes.data) return\n\t\tlet filtered = allTypes.data.filter(value => supportedTypes.includes(value))\n\t\tsetTypes(filtered.map(tpe => ))\n\t}, [allTypes, setTypes]) //eslint-disable-line\n\n\tif (!user || !support || !allTypes) return ;\n\tif (!user.data) return ;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('user_display_name', {user: user.data.Profile.Display_Name})}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('user_display_name', {user: user.data.Profile.Display_Name})}\n\t\t\t\t\n\t\t\t\t\n\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t{types && types}\n\t\t\t\t\t\t\n\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t('contact_user_info')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default User;","import React, { useEffect, useState } from 'react';\nimport {useTranslation} from 'react-i18next';\nimport { useRealmInvoices } from '../../../hooks/useRealmInvoices';\n\nimport Table from '../../core/data/table/Table';\nimport {Link} from 'react-router-dom';\nimport moment from 'moment';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport NotFound \t\t from './../../core/utils/NotFound/NotFound';\nimport Forbidden \t\t from './../../core/utils/Forbidden/Forbidden';\n\nconst InvoicesTable = ({ initialFilters = {}, flat = false, title = null }) => {\n\tconst { t } = useTranslation();\n\tconst [firstLoad, setFirstLoad] = useState(true); \n\tconst [invoices, fetch, loading] = useRealmInvoices();\n\n\tuseEffect(() => {\n\t\tif (!firstLoad)\n\t\t\tfetch();\n\t}, [initialFilters]); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\tsetFirstLoad(false);\n\t}, []); // eslint-disable-line\n\n\tif (invoices && invoices.error) {\n\t\tswitch (invoices.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{invoice =>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{invoice.Remark}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{invoice => moment.utc(parseInt(invoice.Created.unixms)).format('LLL')}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{invoice => t('tablecell_invoice_status')}\n\t\t\t\t\n\t\t\t\n\t\t);\n};\n\nexport default InvoicesTable;\n","import { useParams } from 'react-router-dom';\nimport { rest } from '@karpeleslab/klbfw';\nimport { useState } from 'react';\n\nexport const ORDER_STATS_PRODUCT_IMAGE_VARIATION = 'strip&scale_crop=75x75&background_color=white&format=jpeg';\n\nexport const useRealmInvoices = () => {\n\tconst { realmId } = useParams();\n\tconst [invoices, setInvoices] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (paging) => {\n\t\tconst params = {\n\t\t\t'Realm__': realmId,\n\t\t\t_expand: '/User_Billing,/User_Billing/User_Location',\n\t\t\t...paging\n\t\t};\n\n\t\tsetLoading(true);\n\t\treturn rest('User/Billing/Application', 'GET', params)\n\t\t\t.then(setInvoices)\n\t\t\t.catch(e => setInvoices({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [invoices, fetch, loading];\n};\n\n","import React, { useState } from 'react';\nimport {useParams}\t \t from 'react-router-dom';\nimport {useTranslation}\t from 'react-i18next';\n\nimport Helmet from 'react-helmet';\nimport InvoicesTable from '../../components/kakari/InvoicesTable/InvoicesTable';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\n\nconst Invoices = () => {\n\tconst { realmId } = useParams();\n\tconst { t } = useTranslation();\n\tconst [filters] = useState({});\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('orders')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Invoices;","import React from 'react';\nimport { useHistory} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport {Grid} from '@material-ui/core';\nimport Helmet \t\tfrom 'react-helmet';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport PageTitle\t \t\tfrom '../../components/core/typography/PageTitle';\nimport Toolbar from '../../components/core/typography/Toolbar';\nimport { useInvoiceWithParams, useInvoiceApprove, useInvoiceDelete } from '../../hooks/useInvoice';\nimport {useRealmWithParams} from '../../hooks/useRealm';\n\nimport Typography from '@material-ui/core/Typography';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Divider from '@material-ui/core/Divider';\n\n\n\nconst Invoice = () => {\n\tconst [approve, approving] = useInvoiceApprove();\n\tconst [deleteInvoice, deleteing] = useInvoiceDelete();\n\tconst [invoiceId] = useInvoiceWithParams();\n\tconst [realm] = useRealmWithParams();\n\tconst { t } = useTranslation();\n\tconst history = useHistory();\n\n\tconst handleApprove = () => {\n\t\tapprove()\n\t\t\t.then(() => {\n\t\t\t\thistory.push(`/realm/${realm.data.Realm__}/invoices`);\n\t\t\t});\n\t};\n\n\tconst handleDelete = () => {\n\t\tdeleteInvoice()\n\t\t\t.then(() => {\n\t\t\t\thistory.push(`/realm/${realm.data.Realm__}/invoices`);\n\t\t\t});\n\t};\n\n\n\tif (!invoiceId || !realm) return ;\n\tif (!invoiceId.data || !realm.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{`${invoiceId.data.Remark}` }\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t('label_company_invoice_application_title')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('label_company_reg_number')}:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tinvoiceId &&\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{invoiceId.data.User_Billing.User_Location.Company_Reg_Number}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('label_company_name')}:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tinvoiceId &&\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{invoiceId.data.User_Billing.User_Location.Company_Name}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('label_company_contact_name')}:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tinvoiceId &&\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{invoiceId.data.User_Billing.User_Location.Display_Name}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('label_company_contact_tell')}:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tinvoiceId &&\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{invoiceId.data.User_Billing.User_Location.Contact_Phone}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('label_company_contact_email')}:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tinvoiceId &&\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{invoiceId.data.User_Billing.User_Location.Email}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('label_company_address')}:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tinvoiceId &&\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{invoiceId.data.User_Billing.User_Location.Display[0]}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Invoice;","import {useParams} from 'react-router-dom';\nimport {rest} from '@karpeleslab/klbfw';\nimport {useCallback, useEffect, useState} from 'react';\nimport {useSetSnackbar} from './useSnackbar';\nimport {useTranslation} from 'react-i18next';\n\nexport const useInvoiceWithParams = () => {\n\tconst { invoiceId } = useParams();\n\tconst [invoice, setInvoice] = useState(null);\n\n\tconst refresh = useCallback(data => {\n\t\tif (data) {\n\t\t\tsetInvoice({ ...(invoice ?? {}), data: data });\n\t\t}\n\nrest(`User/Billing/Application/${invoiceId}`, 'GET', {_admin_as: 'auto', _expand: '/User_Billing,/User_Billing/User_Location',})\n\t\t\t.then(setInvoice)\n\t\t\t.catch(e => setInvoice({ error: e }));\n\t}\n\t\t, [invoiceId]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [invoice, refresh];\n};\n\nexport const useInvoiceApprove = () => {\n\tconst { invoiceId } = useParams();\n\tconst setSnackbar = useSetSnackbar();\n\tconst [approving, setApproving] = useState(false);\n\tconst { t } = useTranslation();\n\n\tconst approve = () => {\n\t\tsetApproving(true);\n\t\treturn rest(`User/Billing/Application/${invoiceId}:approve`, 'POST', { _admin_as: 'auto',name: '請求書払い',method: 'AozoraNet'})\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('invoice_approve_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setApproving(false));\n\t};\n\t\n\treturn [approve, approving];\n\n};\n\nexport const useInvoiceDelete = () => {\n\tconst { invoiceId } = useParams();\n\tconst setSnackbar = useSetSnackbar();\n\tconst [deleteing, setDeleteing] = useState(false);\n\tconst { t } = useTranslation();\n\n\tconst deleteInvoice = () => {\n\t\tsetDeleteing(true);\n\t\treturn rest(`User/Billing/Application/${invoiceId}`, 'DELETE', { _admin_as: 'auto'})\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('invoice_delete_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setDeleteing(false));\n\t};\n\t\n\treturn [deleteInvoice, deleteing];\n\n};\n\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRest } from '@karpeleslab/react-klbfw-hooks';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport Flag from './../data/Flag';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\n\nconst LangSelect = ({\n\tlabel = null,\n\terror = false,\n\thelperText = '',\n\tvalue = undefined,\n\tonChange = undefined,\n\trequired = false,\n\tdisabled = false,\n\twidth = 300\n}) => {\n\tconst [languages] = useRest('Language');\n\n\treturn (\n\t\t option.Local_Name}\n\t\t\trenderOption={(option) => (\n\t\t\t\toption.Language__ &&\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{option.Local_Name}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\trenderInput={(params) => {\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\t) : null,\n\t\t\t\t\t\t\tendAdornment: params.InputProps.endAdornment\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>);\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nLangSelect.propTypes = {\n\terror: PropTypes.bool,\n\thelperText: PropTypes.string,\n\tlabel: PropTypes.string,\n\trequired: PropTypes.bool,\n\tdisabled: PropTypes.bool,\n\tvalue: PropTypes.string,\n\tonChange: PropTypes.func,\n\twidth: PropTypes.number\n};\n\nexport default LangSelect;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport { getLocale, rest } from '@karpeleslab/klbfw';\n\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Grid from '@material-ui/core/Grid';\nimport LangSelect from '../../core/input/LangSelect';\nimport TextField from '@material-ui/core/TextField';\n\nconst CreateDialog = ({ open, setOpen, support }) => {\n\tconst {t} = useTranslation();\n\tconst [creating, setCreating] = useState(false);\n\tconst [lang, setLang] = useState(getLocale());\n\tconst [title, setTitle] = useState('');\n\tconst [message, setMessage] = useState('');\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\t// const history = useHistory();\n\n\tuseEffect(() => {\n\t\tif (!lang.trim() || !title.trim() || !message.trim()) {\n\t\t\tsetSaveEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tsetSaveEnabled(true);\n\t}, [lang, title, message, setSaveEnabled]);\n\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleSubmit = (e) => {\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\n\t\tsetCreating(true);\n\n\t\trest('Support/' + support.data.Support__ + '/Canned', 'POST', {\n\t\t\tLanguage__: lang,\n\t\t\tTitle: title,\n\t\t\tMessage: message\n\t\t})\n\t\t\t.then(() => {\n\t\t\t\thandleClose();\n\t\t\t\t// TBD redirect\n\t\t\t\t// history.push(getSupportCannedEditRoute(d.Support_Canned__))\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\t// TBD error\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetCreating(true);\n\t\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t{t('create_canned_title')}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('create_canned_desc')}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setTitle(e.target.value)}\n\t\t\t\t\t\t\t\thelperText={t('title_canned_selected_lang')}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setLang(e.target.value)}\n\t\t\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\thelperText={t('lang_article_written_in')}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setMessage(e.target.value)}\n\t\t\t\t\t\t\t\tvariant='outlined'\n\t\t\t\t\t\t\t\tmultiline rows={5}\n\t\t\t\t\t\t\t\trowsMax={Infinity}\n\t\t\t\t\t\t\t\tplaceholder={t('support_canned_response_placeholder')}\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tdisabled={creating}\n\t\t\t\t\t\t\t\tlabel={t('support_canned_response_label')}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\n\n\t);\n};\n\nCreateDialog.propTypes = {\n\topen : PropTypes.bool, \n\tsetOpen : PropTypes.func , \n\tsupport : PropTypes.object\n};\n\n\nexport default CreateDialog;","import React, { useState } from 'react';\nimport { useParams, Link } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport AddIcon \t\t\tfrom '@material-ui/icons/Add';\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport Button \t\t\tfrom '@material-ui/core/Button';\nimport CreateDialog\t\tfrom './../../components/common/support/CreateDialog';\nimport Flag\t\t\t\tfrom './../../components/core/data/Flag';\nimport Grid\t\t\t\tfrom '@material-ui/core/Grid';\nimport Helmet \t\t\tfrom 'react-helmet';\nimport PageContainer \tfrom './../../components/layout/Container/PageContainer';\nimport PageTitle \t\tfrom './../../components/core/typography/PageTitle';\nimport SearchIcon \t\tfrom '@material-ui/icons/Search';\nimport CannedTable \t\tfrom './../../components/common/support/CannedTable';\nimport TableDefinition \tfrom './../../components/core/data/table/TableDefinition';\nimport NotFound \t\tfrom './../../components/core/utils/NotFound/NotFound';\nimport Forbidden \t\tfrom './../../components/core/utils/Forbidden/Forbidden';\n\nimport { useRealmSupportWithParams } from './../../hooks/useSupport';\n\nexport default () => {\n\tconst {t} = useTranslation();\n\tconst {realmId} = useParams();\n\tconst [support] = useRealmSupportWithParams();\n\tconst [showCreate, setShowCreate] = useState(false);\n\tconst mode = 'edit';\n\n\tif (support && support.error) {\n\t\tswitch (support.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('canned_responses')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('canned_responses')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{support &&\n\t\t\t\t\t\t(['W', 'A', 'O'].includes(\n\t\t\t\t\t\t\tsupport.access[support.data.Support__].available\n\t\t\t\t\t\t) ? \n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={() => setShowCreate(true)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{(canned) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{(canned) => (\n\t\t\t\t\t\t\t\t\t : ''}\n\t\t\t\t\t\t\t\t\t\tstartIcon={mode === 'edit' ? : ''}\n\t\t\t\t\t\t\t\t\t\tto={`/realm/${realmId}/edit-canned-response/${canned.Support_Canned__}`}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{mode === 'edit' ? t('view_btn') : t('select_btn')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t{support && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n};\n","import React, { useState } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport { rest } from '@karpeleslab/klbfw';\n\nimport Button from '@material-ui/core/Button';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useSetSnackbar }\tfrom './../../../hooks/useSnackbar';\n\nconst DeleteDialog = ({ open, setOpen }) => {\n\tconst {t} = useTranslation();\n\tconst history = useHistory();\n\tconst {realmId, cannedId} = useParams();\n\tconst [deleting, setDeleting] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleDelete = () => {\n\t\tsetDeleting(true);\n\t\trest(`Support/Canned/${cannedId}`, 'DELETE')\n\t\t\t.then(() => {\n\t\t\t\thandleClose();\n\t\t\t\thistory.push(`/realm/${realmId}/canned-responses`);\n\t\t\t}).catch(() => {\n\t\t\t\tsetSnackbar('support_canned_delete_error', 'error');\n\t\t\t}).finally(() => setDeleting(false));\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('confirm_delete_canned_title')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('confirm_delete_canned_desc')}\n\t\t\t\t\t
\n\t\t\t\t\t{t('are_you_sure')}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nDeleteDialog.propTypes = {\n\topen : PropTypes.bool, \n\tsetOpen : PropTypes.func \n};\n\n\nexport default DeleteDialog;","import React, { useEffect, useState } \tfrom 'react';\nimport { rest } \t\t\t\t\t\tfrom '@karpeleslab/klbfw';\nimport { useParams } \t\t\t\t\tfrom 'react-router-dom';\nimport { useRest } \t\t\t\t\t\tfrom '@karpeleslab/react-klbfw-hooks';\nimport { useTranslation } \t\t\t\tfrom 'react-i18next';\n\nimport Box \t\t\t\t\tfrom '@material-ui/core/Box';\nimport Button \t\t\t\tfrom '@material-ui/core/Button';\nimport ConfirmBeforeLeave \tfrom './../../components/core/utils/ConfirmBeforeLeave/ConfirmBeforeLeave';\nimport DeleteDialog \t\tfrom './../../components/common/support/DeleteDialog';\nimport DeleteForeverIcon\tfrom '@material-ui/icons/DeleteForever';\nimport Flag\t\t\t\t \tfrom './../../components/core/data/Flag';\nimport Grid\t\t\t\t\tfrom '@material-ui/core/Grid';\nimport Helmet\t\t\t\tfrom 'react-helmet';\nimport PageContainer\t\tfrom './../../components/layout/Container/PageContainer';\nimport PageTitle\t\t\tfrom './../../components/core/typography/PageTitle';\nimport Paper\t\t\t\tfrom '@material-ui/core/Paper';\nimport TextField\t\t\tfrom '@material-ui/core/TextField';\nimport NotFound\t\t\t\tfrom './../../components/core/utils/NotFound/NotFound';\nimport Forbidden\t\t\tfrom './../../components/core/utils/Forbidden/Forbidden';\n\nimport { useSetSnackbar }\t\t\t\tfrom './../../hooks/useSnackbar';\nimport { useRealmSupportWithParams }\tfrom './../../hooks/useSupport';\n\nexport default () => {\n\tconst {t} = useTranslation();\n\tconst [title, setTitle] = useState('');\n\tconst [message, setMessage] = useState('');\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\tconst [showDeleteDialog, setShowDeleteDialog]\t= useState(false);\n\tconst [updating, setUpdating] = useState(false);\n\tconst [support] = useRealmSupportWithParams();\n\tconst {realmId, cannedId} = useParams();\n\tconst [canned] = useRest(`Support/Canned/${cannedId}`);\n\tconst setSnackbar = useSetSnackbar();\n\n\tuseEffect(() => {\n\t\tif (!canned) return;\n\t\tif (!title.trim() || !message.trim()) {\n\t\t\tsetSaveEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (title !== canned.data.Title) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif (message !== canned.data.Message) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\n\t\tsetSaveEnabled(false);\n\t}, [title, message, setSaveEnabled, canned]);\n\n\tuseEffect(() => {\n\t\tif (!canned ||!canned.data) return;\n\t\tsetMessage(canned.data.Message);\n\t\tsetTitle(canned.data.Title);\n\t}, [canned, setTitle, setMessage]);\n\n\tconst handleUpdate = () => {\n\t\tsetUpdating(true);\n\t\trest(`Support/Canned/${cannedId}`, 'PATCH', {\n\t\t\tTitle: title,\n\t\t\tMessage: message\n\t\t})\n\t\t\t.then(d => {\n\t\t\t\tsetSnackbar('support_canned_update_success', 'success');\n\t\t\t\treturn d.data;\n\t\t\t}).catch(() => {\n\t\t\t\tsetSnackbar('support_canned_update_error', 'error');\n\t\t\t}).finally(() => { \n\t\t\t\tsetUpdating(false); \n\t\t\t\tsetSaveEnabled(false); \n\t\t\t});\n\n\t}; \n\n\tif (canned && canned.error) {\n\t\tswitch (canned.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('edit_canned_response')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('edit_canned_response')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{canned && canned.data && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{support && support.access &&\n\t\t\t\t\t\t\t\t(['W', 'A', 'O'].includes(\n\t\t\t\t\t\t\t\t\tsupport.access[support.data.Support__].available\n\t\t\t\t\t\t\t\t) ? (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={updating}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => setShowDeleteDialog(true)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{t('delete_btn')}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t setTitle(e.target.value)}\n\t\t\t\t\t\t\t\t\thelperText={t('title_canned_selected_lang')}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t setMessage(e.target.value)}\n\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\trows={5}\n\t\t\t\t\t\t\t\t\trowsMax={Infinity}\n\t\t\t\t\t\t\t\t\tplaceholder={t('support_canned_response_placeholder')}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\tupdating ||\n\t\t\t\t\t\t\t\t\t\t!canned ||\n\t\t\t\t\t\t\t\t\t\t!support ||\n\t\t\t\t\t\t\t\t\t\t!support.access ||\n\t\t\t\t\t\t\t\t\t\t!['W', 'A', 'O'].includes(\n\t\t\t\t\t\t\t\t\t\t\tsupport.access[support.data.Support__].available\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tlabel={t('support_canned_response_label')}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{support &&\n\t\t\t\t\t\t\t\tsupport.access &&\n\t\t\t\t\t\t\t\t['W', 'A', 'O'].includes(\n\t\t\t\t\t\t\t\t\tsupport.access[support.data.Support__].available\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('save_btn')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{support && support.access &&\n\t\t\t\t\t\t\t\t(['W', 'A', 'O'].includes(\n\t\t\t\t\t\t\t\t\tsupport.access[support.data.Support__].available\n\t\t\t\t\t\t\t\t) ? (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n};","import PropTypes from 'prop-types';\nimport React from 'react';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nconst useStyles = makeStyles(theme => ({\n\troot: {\n\t\theight: props => props.height ? `${props.height}px` : '100%',\n\t\twidth: props => props.width ? `${props.width}px` : '100%',\n\t\tbackground: 'rgba(0, 0, 0, 0.04)',\n\t\ttransform: 'rotate(180deg)',\n\t\t'& > .column': {\n\t\t\twidth: props => props.width ? `${props.width}px` : '100%',\n\t\t\theight: props => `${props.value < 0 ? 0 : (props.value > 100 ? 100 : props.value)}%`,\n\t\t\tbackground: props => {\n\t\t\t\tif (props.value >= 90) return theme.palette.error.main;\n\t\t\t\tif (props.value >= 50) return theme.palette.warning.main;\n\t\t\t\treturn theme.palette.info.main;\n\t\t\t},\n\t\t}\n\n\t}\n}));\n\nconst Gauge = ({ value, height = null, width = null }) => {\n\tconst classes = useStyles({ value, height, width });\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default Gauge;\n\nGauge.propTypes = {\n\theight: PropTypes.number,\n\tvalue: PropTypes.number.isRequired,\n\twidth: PropTypes.number\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Grid } from '@material-ui/core';\nimport Gauge from '../../core/data/Gauge/Gauge';\n\nconst Metric = ({ title, value }) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{title}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{`${value} %`}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Metric;\n\nMetric.propTypes = {\n\ttitle: PropTypes.string.isRequired,\n\tvalue: PropTypes.number.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Skeleton } from '@material-ui/lab';\nimport { Grid } from '@material-ui/core';\nimport { roundDecimal } from '../../../utils/misc';\nimport Metric from './Metric';\n\nconst RowMetrics = ({ host }) => {\n\tconst { t } = useTranslation();\n\tconst [shellCount, setShellCount] = useState(0);\n\tconst [cpuUsage, setCpuUsage] = useState(0);\n\tconst [ramUsage, setRamUsage] = useState(0);\n\tconst [diskUsage, setDiskUsage] = useState(0);\n\n\tconst [loading, setLoading] = useState(true);\n\n\tuseEffect(() => {\n\t\tif (!host) return;\n\t\tsetLoading(true);\n\t\thost.Metrics.forEach(m => {\n\t\t\tif (m.Token === 'system:cpu') {\n\t\t\t\tconst formatted = m.Last_Value / (m.Last_Value_Interval / 1000); // last value / last interval in seconds\n\t\t\t\tsetCpuUsage(roundDecimal(formatted * 100) ?? 0);\n\t\t\t} else if (m.Token === 'system:disk:/') {\n\t\t\t\tsetDiskUsage(roundDecimal((m.Last_Value * 100) / m.Max_Value) ?? 0);\n\t\t\t} else if (m.Token === 'system:ram') {\n\t\t\t\tsetRamUsage(roundDecimal((m.Last_Value * 100) / m.Max_Value) ?? 0);\n\t\t\t} else if (m.Token === 'shells:count') {\n\t\t\t\tsetShellCount(m.Last_Value);\n\t\t\t}\n\t\t});\n\t\tsetLoading(false);\n\t}, [host, setShellCount, setDiskUsage, setRamUsage, setCpuUsage, setLoading]);\n\n\tif (!host || loading) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('metrics_host_cell_shells')}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{shellCount}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default RowMetrics;\n\nRowMetrics.propTypes = {\n\thost: PropTypes.object\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport { Link } from 'react-router-dom';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport RowMetrics from './RowMetrics';\nimport Typography from '@material-ui/core/Typography';\n\nconst ShellHostTable = (hosts, fetch, loading, realm, datacenterId) => {\n\tconst { t } = useTranslation();\n\n\tif (hosts && hosts.error) {\n\t\treturn (\n\t\t\t\n\t\t\t\t{t('not_enough_permissions')}\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{host => }\n\t\t\t\n\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\thost =>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('view_metrics_btn')}\n\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default ShellHostTable;\n","import { useCallback, useEffect, useState } from 'react';\nimport { rest } from '@karpeleslab/klbfw';\nimport { useParams } from 'react-router-dom';\n\nexport const useShellHosts = datacenterId => {\n\tconst [hosts, setHosts] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging,\n\t\t\tShell_Datacenter__: datacenterId\n\t\t};\n\n\t\tsetLoading(true);\n\t\treturn rest('Shell/Host', 'GET', params)\n\t\t\t.then(setHosts)\n\t\t\t.catch(e => setHosts({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [hosts, fetch, loading];\n};\n\n\nexport const useShellHost = (id) => {\n\tconst [host, setHost] = useState(null);\n\tconst refresh = useCallback(data => {\n\t\tif (data) {\n\t\t\tsetHost({ data });\n\t\t\treturn;\n\t\t}\n\t\treturn rest(`Shell/Host/${id}`)\n\t\t\t.then(setHost)\n\t\t\t.catch(e => setHost({ error: e }));\n\t}, [id, setHost]);\n\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [id, refresh]);\n\n\treturn [host, refresh];\n};\n\nexport const useShellHostWithParams = () => {\n\tconst { shellHostId } = useParams();\n\treturn useShellHost(shellHostId);\n};\n","import Template from './ShellHostTable.template';\nimport { useShellHosts } from '../../../hooks/useShellHost';\n\nconst ShellHostTable = ({ realmId, datacenterId }) => {\n\tconst [hosts, fetch, loading] = useShellHosts(datacenterId);\n\n\treturn Template(hosts, fetch, loading, realmId, datacenterId);\n};\n\nexport default ShellHostTable;\n","import React from 'react';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport { Helmet } from 'react-helmet';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport ShellHostTable from '../../components/kakari/ShellHostTable/ShellHostTable';\n\nconst ShellHosts = () => {\n\tconst { realmId, shellDatacenterId } = useParams();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('hosts_title')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ShellHosts;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Button from '@material-ui/core/Button';\nimport { Link } from 'react-router-dom';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\n\n\nconst ShellDatacentersTable = (datacenters, fetch, loading, realm) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\tdatacenter =>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('view_hosts_btn')}\n\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default ShellDatacentersTable;\n","import { useState } from 'react';\nimport { rest } from '@karpeleslab/klbfw';\n\nexport const useShellDatacenters = () => {\n\tconst [datacenters, setDatacenters] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging,\n\t\t};\n\n\t\tsetLoading(true);\n\t\treturn rest('Shell/Datacenter:list', 'GET', params)\n\t\t\t.then(setDatacenters)\n\t\t\t.catch(e => setDatacenters({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [datacenters, fetch, loading];\n};\n\nexport const useShellDatacentersList = () => {\n\tconst [datacenters, setDatacenters] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = () => {\n\t\tsetLoading(true);\n\t\treturn rest('Shell/Datacenter:list', 'GET')\n\t\t\t.then(setDatacenters)\n\t\t\t.catch(e => setDatacenters({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [datacenters, fetch, loading];\n};\n","import Template from './ShellDatacentersTable.template';\nimport { useShellDatacentersList } from '../../../hooks/useShellDatacenter';\n\nconst ShellDatacentersTable = ({ realmId }) => {\n\tconst [datacenters, fetch, loading] = useShellDatacentersList();\n\n\treturn Template(datacenters, fetch, loading, realmId);\n};\n\nexport default ShellDatacentersTable;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport { Helmet } from 'react-helmet';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport { useRealmWithParams } from '../../hooks/useRealm';\nimport ShellDatacentersTable from '../../components/kakari/ShellDatacenterTable/ShellDatacentersTable';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\n\nconst ShellDatacenters = () => {\n\tconst [realm] = useRealmWithParams();\n\tconst { t } = useTranslation();\n\n\tif (!realm) return ;\n\tif (!realm.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('datacenter_title')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ShellDatacenters;\n","import React from 'react';\nimport { Link, useParams } from 'react-router-dom';\nimport { Helmet } from 'react-helmet';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport { useTranslation } from 'react-i18next';\nimport { useShellHostWithParams } from '../../hooks/useShellHost';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport { Grid } from '@material-ui/core';\nimport Metric from '../../components/core/data/Metric/Metric';\nimport { bytesToHuman, roundDecimal } from '../../utils/misc';\nimport Button from '@material-ui/core/Button';\n\nconst HostMetrics = () => {\n\tconst [host] = useShellHostWithParams();\n\tconst { t } = useTranslation();\n\tconst { realmId, shellDatacenterId } = useParams();\n\n\tif (!host) return ;\n\tif (!host.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('hosts_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('shell_host_metric_title', { name: host.data.Name })}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t bytesToHuman(d, true, 2)}\n\t\t\t\t\t\ttooltipFormatter={(d) => bytesToHuman(d, true, 3)}\n\t\t\t\t\t\ttitle={t('metrics_system_ram_title')}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t bytesToHuman(d, true, 2)}\n\t\t\t\t\t\ttooltipFormatter={(d) => bytesToHuman(d, true, 3)}\n\t\t\t\t\t\ttitle={t('metrics_system_disk_title')}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t roundDecimal(d / 1000)}\n\t\t\t\t\t\ttooltipFormatter={d => roundDecimal(d / 1000, 3)}\n\t\t\t\t\t\ttitle={t('metrics_system_loadavg_title')}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t `${roundDecimal(d / 10)} %`}\n\t\t\t\t\t\ttooltipFormatter={d => `${roundDecimal(d / 10, 3)} %`}\n\t\t\t\t\t\ttitle={t('metrics_system_cpu_usage_title')}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('metrics_cpus_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default HostMetrics;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes \t\t\t\t\t\tfrom 'prop-types';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormLabel from '@material-ui/core/FormLabel';\n\nimport { useAffiliateTypes } from './../../hooks/useAffiliates';\n\nconst AffiliateTypeFilter = ({ initialLevelsState, onFilterChanged }) => {\n\tconst [affiliateLevels] = useAffiliateTypes();\n\tconst { t } = useTranslation();\n\tconst [levels, setLevels] = useState(initialLevelsState);\n\n\tconst toggleLevel = event => {\n\t\tif (!levels.includes(event.target.value) && event.target.checked)\n\t\t\tsetLevels(lvls => [...lvls, event.target.value]);\n\t\telse\n\t\t\tsetLevels(lvls => lvls.filter(l => l !== event.target.value));\n\t}; \n\n\tuseEffect(() => {\n\t\tonFilterChanged(levels);\n }, [levels]); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t{t('show_only_of_type')}\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\taffiliateLevels.map(l => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={l.label}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nAffiliateTypeFilter.propTypes = {\n\tinitialLevelsState\t: PropTypes.array.isRequired,\n\tonFilterChanged\t\t: PropTypes.func\n};\n\nexport default AffiliateTypeFilter;","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes \t\t\t\t\t\tfrom 'prop-types';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormLabel from '@material-ui/core/FormLabel';\n\nconst AffiliateWithBalanceFilter = ({ filter, onFilterChanged }) => {\n\tconst { t } = useTranslation();\n\tconst [filtered, setFiltered] = useState(filter); \n\n\tuseEffect(() => {\n\t\tonFilterChanged(filtered);\n }, [filtered]); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t{t('balance')}\n\t\t\t setFiltered(evt.target.checked)}\n\t\t\t\t\t\tname=\"filter-balance\"\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tlabel={t('show_only_with_balance')}\n\t\t\t/>\n\t\t\n\t);\n};\n\nAffiliateWithBalanceFilter.propTypes = {\n\tfilter\t\t\t: PropTypes.bool,\n\tonFilterChanged\t: PropTypes.func\n};\n\n\nexport default AffiliateWithBalanceFilter;","import React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useParams } from 'react-router-dom';\nimport Helmet from 'react-helmet';\n\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport AffiliateTypeFilter from './AffiliateTypeFilter';\nimport AffiliateWithBalanceFilter from './AffiliateWithBalanceFilter';\nimport Box from '@material-ui/core/Box';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport Grid from '@material-ui/core/Grid';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport Paper from '@material-ui/core/Paper';\nimport Table from '../../components/core/data/table/Table';\nimport TableDefinition from '../../components/core/data/table/TableDefinition';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useAffiliates, useAffiliateTypes } from './../../hooks/useAffiliates';\n\nconst AffiliateList = () => {\n\tconst { t } = useTranslation();\n\tconst { realmId } = useParams();\n\tconst [affiliates, fetch, loading] = useAffiliates(realmId);\n\tconst [affiliateTypes] = useAffiliateTypes();\n\tconst [type, setType] = useState(['standard', 'shells15', 'shells20', 'shells25', 'shells30']);\n\tconst [withBalance, setWithBalance] = useState(false);\n\n\tconst firstUpdate = useRef(true);\n\tuseEffect(() => {\n\t\tif (firstUpdate.current) {\n\t\t\tfirstUpdate.current = false;\n\t\t\treturn;\n\t\t}\n\t\tconst params = {};\n\t\tif (type.length > 0)\n\t\t\tparams.Type = { '$in': type };\n\n\t\tif (withBalance)\n\t\t\tparams.Balance_USD = { '$not': '' };\n\n\t\t// params.Code = 'RCzIFy';\n\n\t\tfetch(params, { results_per_page: affiliates.paging.results_per_page });\n }, [type, withBalance]); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('affiliates')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\taria-controls=\"panel1a-content\"\n\t\t\t\t\t\t\tid=\"panel1a-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('filters')}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\taffiliate => \n\t\t\t\t\t\t\t{affiliate.User.Email}\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\taffiliate => \n\t\t\t\t\t\t\taffiliateTypes.find(lvl => lvl.code === affiliate.Type).label\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\taffiliate => affiliate.Wallets.map(wallet => (\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{wallet.Balance.display_short}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t))\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default AffiliateList;\n","import React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\n\nimport { useBankWithdrawals } from './../../../hooks/useBanks';\n\nconst BankWithdrawals = ({ moneyBankId }) => {\n\tconst { t } = useTranslation(); \n\tconst [withdrawals, fetch, loading] = useBankWithdrawals(moneyBankId);\n\n\tuseEffect(() => {\n\t\tfetch();\n }, []); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t{t('tablecell_email')}/
{t('tablecell_username')}\n\t\t\t\t}\n\t\t\t\tsortable\n\t\t\t>\n\t\t\t\t{ withdrawal => withdrawal.User.Display_Name || withdrawal.User.Email }\n\t\t\t
\n\t\t\t\n\t\t\t\t{ withdrawal => withdrawal.Amount && withdrawal.Amount.display }\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\tw => \n\t\t\t\t\t\tmoment(\n\t\t\t\t\t\t\t(w.Processed && parseInt(w.Processed.unixms)) || \n (w.Pending && parseInt(w.Pending.unixms)) ||\n (w.Confirmed && parseInt(w.Confirmed.unixms)) || \n (w.Requested && parseInt(w.Requested.unixms))\n\t\t\t\t\t\t).format('LLL')\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nBankWithdrawals.propTypes = {\n\tmoneyBankId: PropTypes.string \n}; \n\nexport default BankWithdrawals;","import React from 'react';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\nimport BankWithdrawals from './../../components/kakari/BankWithdrawals/BankWithdrawals';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Grid from '@material-ui/core/Grid';\nimport Helmet from 'react-helmet';\nimport ListAltIcon from '@material-ui/icons/ListAlt';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport {Skeleton} from '@material-ui/lab';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useBank } from './../../hooks/useBanks';\n\nconst ColorButton = withStyles(() => ({\n\troot: {\n\t\tbackgroundColor: '#1D6F42',\n\t\tcolor: '#fff',\n\t\t'&:hover': {\n\t\t\tbackgroundColor: '#1D6F42'\n\t\t}\n\t}\n}))(Button);\n\nconst Bank = () => {\n\tconst { bankId } = useParams();\n\tconst { t } = useTranslation();\n\tconst [bank] = useBank(bankId);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{bank && bank.data ? bank.data.Name : ''}\n\t\t\t\n\t\t\t\n\t\t\t\t{bank && bank.data ? bank.data.Name : }\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('export_as_csv')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\tvariant=\"contained\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('import_transfer_result')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('last_parse')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{bank && bank.data ? moment(bank.data.Last_Parse).format('LLL') : }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('currency')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{bank && bank.data ? bank.data.Currency__ : }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('withdraw_email')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{bank && bank.data ? bank.data.Withdraw_Email : }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ (bank && bank.data) && }\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Bank;","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Grid } from '@material-ui/core';\nimport Metric from '../../../../core/data/Metric/Metric';\nimport { roundDecimal } from '../../../../../utils/misc';\nimport { useTranslation } from 'react-i18next';\n\nconst CpuMetrics = ({ host, cpu }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t `${roundDecimal(d / 10)} %`}\n\t\t\t\t\ttooltipFormatter={d => `${roundDecimal(d / 10, 3)} %`}\n\t\t\t\t\ttitle={t('metrics_system_cpu_details_usage_title', { cpu: cpu })}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t `${roundDecimal(d / 10)} %`}\n\t\t\t\t\ttooltipFormatter={d => `${roundDecimal(d / 10, 3)} %`}\n\t\t\t\t\ttitle={''}\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CpuMetrics;\n\nCpuMetrics.propTypes = {\n\tcpu: PropTypes.number.isRequired,\n\thost: PropTypes.object.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport CpuMetrics from './CpuMetrics';\nimport { Grid } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport Button from '../../../../core/input/Button';\n\nconst cpusPerPage = 3;\nconst cpuTotalCount = 48;\n\nconst ShellHostCpusMetrics = ({ host }) => {\n\tconst { t } = useTranslation();\n\tconst [cpusCount, setCpusCount] = useState(cpusPerPage);\n\tconst [graphs, setGraphs] = useState([]);\n\tconst [loadingMore, setLoadingMore] = useState(false);\n\n\tconst handleMore = useCallback(() => {\n\t\tif (cpusCount >= cpuTotalCount) return;\n\t\tconst newCount = Math.min(cpusPerPage + cpusCount, cpuTotalCount);\n\t\tsetCpusCount(newCount);\n\t}, [cpusCount]);\n\n\tuseEffect(() => {\n\t\tif (!host) return;\n\t\tsetLoadingMore(true);\n\t\tconst cpy = [...graphs];\n\t\tfor (let i = 0; i < cpusCount; i++) {\n\t\t\tif (typeof cpy[i] !== 'undefined') continue;\n\t\t\tcpy.push(\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t\tsetGraphs(cpy);\n\t\tsetLoadingMore(false);\n\t\t// eslint-disable-next-line\n\t}, [cpusCount, setGraphs, host]);\n\n\tuseEffect(() => {\n\t\tif (typeof window === 'undefined') return;\n\t\twindow.addEventListener('scroll', handleScroll);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('scroll', handleScroll);\n\t\t};\n\t});\n\n\n\tconst handleScroll = useCallback(() => {\n\t\tif (typeof window === 'undefined' || loadingMore) return;\n\t\tconst windowHeight = 'innerHeight' in window ? window.innerHeight : document.documentElement.offsetHeight;\n\t\tconst body = document.body;\n\t\tconst html = document.documentElement;\n\t\tconst docHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n\t\tconst windowBottom = windowHeight + window.pageYOffset;\n\n\t\tif (windowBottom < docHeight) return;\n\t\thandleMore();\n\n\t}, [handleMore, loadingMore]);\n\n\treturn (\n\t\t\n\t\t\t{graphs.map((graph, idx) =>\n\t\t\t\t\n\t\t\t\t\t{graph}\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{cpusCount < cpuTotalCount &&\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('metrics_cpus_show_more_btn')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t}\n\t\t\n\t);\n};\n\nexport default ShellHostCpusMetrics;\n\nShellHostCpusMetrics.propTypes = {\n\thost: PropTypes.object\n};\n","import React from 'react';\nimport { useParams } from 'react-router-dom';\nimport { Helmet } from 'react-helmet';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport { useTranslation } from 'react-i18next';\nimport { useShellHostWithParams } from '../../hooks/useShellHost';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport ShellHostCpusMetrics from '../../components/kakari/ShellHost/Metric/CPU/ShellHostCpusMetrics';\n\n\nconst HostMetricsCpus = () => {\n\tconst [host] = useShellHostWithParams();\n\tconst { t } = useTranslation();\n\tconst { realmId, shellDatacenterId } = useParams();\n\n\tif (!host) return ;\n\tif (!host.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('hosts_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('shell_host_metric_cpu_title', { name: host.data.Name })}\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default HostMetricsCpus;\n","import React, { useEffect, useState } from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {useParams} from 'react-router-dom';\nimport { rest } from '@karpeleslab/klbfw';\nimport makeStyles \t\t\t\t\t\tfrom '@material-ui/core/styles/makeStyles';\n\nimport Box from '@material-ui/core/Box';\nimport {Helmet} from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport Paper from '@material-ui/core/Paper';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport Table from '@material-ui/core/Table';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableBody from '@material-ui/core/TableBody';\n\nconst useStyles = makeStyles(() => ({\n\tuserAgent: {\n\t\twidth: '100%',\n\t\tmaxWidth: '230px',\n\t\toverflow: 'hidden',\n\t\twhiteSpace: 'nowrap',\n\t\ttextOverflow: 'ellipsis',\n\t\tcursor: 'pointer'\n\t}\n}));\n\nconst ShellLogs = () => {\n\tconst { t } = useTranslation();\n\tconst {realmId, userId, shellId} = useParams();\n\tconst [displayLogs, setDisplayLogs] = useState([]);\n\tconst classes = useStyles();\n\n\tconst getLogs = () => {\n\t\treturn rest('Log', 'GET', { MetaObject__: shellId, '_admin_as': userId });\n\t};\n\n\tuseEffect(() => {\n\t\tgetLogs().then(({ data }) => {\n\t\t\tdata.forEach(log => {\n\t\t\t\tconst l = {...log};\n\t\t\t\tif (log.User__ === userId) {\n\t\t\t\t\tl.Username = 'Shell\\'s owner';\n\t\t\t\t\tsetDisplayLogs(dl => [...dl, l]);\n\t\t\t\t} else {\n\t\t\t\t\trest(`User/${log.User__}`, 'GET')\n\t\t\t\t\t\t.then(({ data }) => {\n\t\t\t\t\t\t\tl.Username = data.Display_Name || data.Email;\n\t\t\t\t\t\t\tsetDisplayLogs(dl => [...dl, l]);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}); \n }, []); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('shell_logs')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('shell_logs')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('order_logs_date')}\n\t\t\t\t\t\t\t\t\t{t('order_logs_event')}\n\t\t\t\t\t\t\t\t\t{t('order_logs_log')}\n\t\t\t\t\t\t\t\t\t{t('shell_logs_ref')}\n\t\t\t\t\t\t\t\t\t{t('shell_logs_ua')}\n\t\t\t\t\t\t\t\t\t{t('order_logs_emitter')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{ !displayLogs ? \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\tdisplayLogs.map((log, i) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{log.Date.iso}\n\t\t\t\t\t\t\t\t\t\t\t{log.Event}\n\t\t\t\t\t\t\t\t\t\t\t{log.Message}\n\t\t\t\t\t\t\t\t\t\t\t{log.Reference}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
{log.User_Agent}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{log.Username || }\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default ShellLogs;","import React from 'react'; \nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\n\nimport Button from '@material-ui/core/Button';\nimport EditIcon from '@material-ui/icons/Edit';\nimport {Link} from 'react-router-dom';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\n\nimport { useCatalogSoftwares } from './../../../hooks/useCatalog';\n\nconst SoftwareList = () => {\n\tconst {t} = useTranslation();\n\tconst [softwares, fetch, loading] = useCatalogSoftwares();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ software => moment(parseInt(software.Created.unixms)).format('LLL') }\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\tsoftware => (\n\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('edit')}\n\t\t\t\t\t\t\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default SoftwareList;\n","import React \t\t\t\tfrom 'react';\nimport { useParams } \t\tfrom 'react-router-dom';\nimport { useTranslation } \tfrom 'react-i18next';\n\nimport Helmet \t\t\tfrom 'react-helmet';\nimport PageContainer \tfrom '../../components/layout/Container/PageContainer';\nimport PageTitle \t\tfrom '../../components/core/typography/PageTitle';\nimport SoftwareList \tfrom '../../components/kakari/SoftwareList/SoftwareList';\n\nconst Softwares = () => {\n\tconst { catalogId } = useParams();\n\tconst { t } \t\t= useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('softwares_table_list')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Softwares;","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes \t\t\tfrom 'prop-types';\n\nimport Grid from '@material-ui/core/Grid';\nimport { Skeleton } from '@material-ui/lab';\nimport Typography from '@material-ui/core/Typography';\n\n\nconst SoftwareInfo = ({ software }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('software_name')}: \n\t\t\t\t\t{\n\t\t\t\t\t\tsoftware && software.data ? \n\t\t\t\t\t\t\tsoftware.data.Name\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('software_download_type')}: \n\t\t\t\t\t{\n\t\t\t\t\t\tsoftware && software.data ? \n\t\t\t\t\t\t\tsoftware.data.Download\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('software_apple_store_id')}: \n\t\t\t\t\t{\n\t\t\t\t\t\tsoftware && software.data ? \n\t\t\t\t\t\t\tsoftware.data.Apple_Store_Id\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('software_google_play_id')}: \n\t\t\t\t\t{\n\t\t\t\t\t\tsoftware && software.data ? \n\t\t\t\t\t\t\tsoftware.data.Google_Play_Id\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nSoftwareInfo.propTypes = {\n\tsoftware: PropTypes.object\n};\n\nexport default SoftwareInfo;\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport FormControl from '@material-ui/core/FormControl';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport FormLabel from '@material-ui/core/FormLabel';\nimport Grid from '@material-ui/core/Grid';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup \t from '@material-ui/core/RadioGroup';\nimport TextField from '@material-ui/core/TextField';\n\n\nconst SoftwareInfoForm = ({ disabled = false, onFieldUpdated, software }) => {\n\tconst { t } = useTranslation(); \n\tconst [softwareValue, setSoftwareValue] = useState({...software.data});\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tconst Name = e.target.value;\n\t\t\t\t\t\tsetSoftwareValue(s => ({...s, Name }));\n\t\t\t\t\t\tonFieldUpdated('Name', Name);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('software_download_type')}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tconst Download = e.target.value;\n\t\t\t\t\t\t\tsetSoftwareValue(s => ({...s, Download }));\n\t\t\t\t\t\t\tonFieldUpdated('Download', Download);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\trequired\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={t('software_download_free')}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={t('software_download_order')}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tconst Apple_Store_Id = e.target.value;\n\t\t\t\t\t\tsetSoftwareValue(s => ({...s, Apple_Store_Id }));\n\t\t\t\t\t\tonFieldUpdated('Apple_Store_Id', Apple_Store_Id);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tconst Google_Play_Id = e.target.value;\n\t\t\t\t\t\tsetSoftwareValue(s => ({...s, Google_Play_Id }));\n\t\t\t\t\t\tonFieldUpdated('Google_Play_Id', Google_Play_Id);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t);\n};\n\nSoftwareInfoForm.propTypes = {\n\tdisabled : PropTypes.bool,\n\tonFieldUpdated: PropTypes.func,\n\tsoftware : PropTypes.object\n};\n\nexport default SoftwareInfoForm;\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport AddIcon from '@material-ui/icons/Add';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport FormControl from '@material-ui/core/FormControl';\nimport Grid from '@material-ui/core/Grid';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport TextField from '@material-ui/core/TextField';\n\nimport { useSoftwareFormat, useAddSoftwareLink } from './../../../hooks/useSoftware';\nimport { useSetSnackbar } from './../../../hooks/useSnackbar';\n\n\nconst SoftwareAddLink = ({ softwareId, onLinkAdded }) => {\n\tconst { t } = useTranslation();\n\tconst [open, setOpen] = useState(false);\n\tconst [link, setLink] = useState('');\n\tconst [format, setFormat] = useState('');\n\tconst [addSoftwareLink, loading] = useAddSoftwareLink(softwareId);\n\tconst [softwareFormats] = useSoftwareFormat();\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst confirmAdd = () => {\n\t\taddSoftwareLink({\n\t\t\tLink: link,\n\t\t\tFormat: format\n\t\t})\n\t\t\t.then(({ data, result }) => {\n\t\t\t\tif (!data || result !== 'success') \n\t\t\t\t\tsetSnackbar('error_cant_create_link', 'error');\n\t\t\t\telse {\n\t\t\t\t\tonLinkAdded(data);\n\t\t\t\t\tsetOpen(false);\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\treturn <>\n\t\t}\n\t\t\tonClick={() => setOpen(true)}\n\t\t>\n\t\t\t{t('add_new_link')}\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t{t('new_external_link_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('new_external_link_description')}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setLink(e.target.value)}\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t setFormat(e.target.value)}\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{softwareFormats.map(f => ({f}))}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t;\n};\n\nSoftwareAddLink.propTypes = {\n\tsoftwareId : PropTypes.string,\n\tonLinkAdded: PropTypes.func\n};\n\nexport default SoftwareAddLink;\n","import {rest} \tfrom '@karpeleslab/klbfw';\nimport {useCallback, useEffect, useState} \tfrom 'react';\n\nimport {useSetSnackbar} from './useSnackbar';\n\nexport const useSoftware = softwareId => {\n\tconst [software, setSoftware] = useState(null);\n\n\tconst refresh = useCallback(() => {\n\t\trest(`Catalog/Software/${softwareId}`, 'GET')\n\t\t\t.then(setSoftware)\n\t\t\t.catch(e => setSoftware({ error: e }));\n\t}, [setSoftware, softwareId]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [refresh]);\n\n\treturn [software, refresh];\n}; \n\nexport const useSoftwareVersionList = softwareId => { \n\tconst [versionList, setVersionList] = useState(null);\n\n\tconst refresh = useCallback(() => {\n\t\trest(`Catalog/Software/${softwareId}/Version`, 'GET')\n\t\t\t.then(setVersionList)\n\t\t\t.catch(e => setVersionList({ error: e }));\n\t}, [setVersionList, softwareId]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [refresh]);\n\n\treturn [versionList, refresh];\n};\n\nexport const useSoftwareExternalLinks = softwareId => { \n\tconst [externalLinks, setExternalLinks] = useState(null);\n\n\tconst refresh = useCallback(() => {\n\t\trest(`Catalog/Software/${softwareId}/External`, 'GET')\n\t\t\t.then(setExternalLinks)\n\t\t\t.catch(e => setExternalLinks({ error: e }));\n\t}, [setExternalLinks, softwareId]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, [refresh]);\n\n\treturn [externalLinks, refresh];\n};\n\n// this is static value for now\nexport const useSoftwareFormat = () => ([[\n\t'android',\n\t'ios',\n\t'linux_amd64',\n\t'linux_arm',\n\t'linux_arm64',\n\t'linux_x86',\n\t'macos',\n\t'win32',\n\t'win64'\n]]); \n\nexport const useAddSoftwareLink = softwareId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = params => { // params = { Link, Format }\n\t\tsetLoading(true);\n\t\treturn rest(`Catalog/Software/${softwareId}/External`, 'POST', params)\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t}; \n\n\treturn [doIt, loading];\n}; \n\nexport const useAddSoftwareVersion = softwareId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = params => { // params = { Released, Version }\n\t\tsetLoading(true);\n\t\treturn rest(`Catalog/Software/${softwareId}/Version`, 'POST', params)\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t}; \n\n\treturn [doIt, loading];\n};\n\nexport const useUpdateSoftwareVersion = softwareVersionId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = params => { // params = { Status: 'draft' || 'scheduled' || 'valid' || 'retired' }\n\t\tsetLoading(true);\n\t\treturn rest(`Catalog/Software/Version/${softwareVersionId}`, 'PATCH', params)\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t}; \n\n\treturn [doIt, loading];\n};\n\n\nexport const useAddSoftware = catalogId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = params => { // params = { Name, Download, Apple_Store_Id, Google_Play_Id }\n\t\tsetLoading(true);\n\t\treturn rest(`Catalog/${catalogId}/Software`, 'POST', params)\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useEditSoftware = softwareId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = params => { // params can be one or several of { Name, Download, Apple_Store_Id, Google_Play_Id }\n\t\tsetLoading(true);\n\t\treturn rest(`Catalog/Software/${softwareId}`, 'PATCH', params)\n\t\t\t.then(d => d)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};","import React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Collapse \t\t from '@material-ui/core/Collapse';\nimport ExpandLess \t\t from '@material-ui/icons/ExpandLess';\nimport ExpandMore \t\t from '@material-ui/icons/ExpandMore';\nimport Link from '@material-ui/core/Link';\nimport List \t\t\t from '@material-ui/core/List';\nimport ListItem \t\t from '@material-ui/core/ListItem';\nimport ListItemText \t from '@material-ui/core/ListItemText';\nimport SoftwareAddLink from './SoftwareAddLink';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useSoftwareExternalLinks } from './../../../hooks/useSoftware';\n\nconst SoftwareLinks = () => {\n\tconst { t } = useTranslation(); \n\tconst { softwareId } = useParams();\n\tconst [open, setOpen] = useState(true);\n\tconst [links] = useSoftwareExternalLinks(softwareId);\n\tconst [displayLinks, setDisplayLinks] = useState(null);\n\n\tconst onLinkAdded = linkInfo => {\n\t\tsetDisplayLinks(l => ({ ...l, data: [...l.data, linkInfo] }));\n\t};\n\n\tuseEffect(() => {\n\t\tif (!links)\n\t\t\treturn;\n\n\t\tsetDisplayLinks(links);\n\t}, [links]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t setOpen(!open)}>\n\t\t\t\t\t\t{open ? : }\n\t\t\t\t\t\t{t('external_links')}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t(displayLinks && displayLinks.data) &&\n\t\t\t\t\t\t\tdisplayLinks.data.map(l => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(`link_format_${l.Format}`)}\n  - \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{l.Link}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n\nexport default SoftwareLinks;\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport Grid from '@material-ui/core/Grid';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport Typography from '@material-ui/core/Typography';\n\nconst SoftwareVersionFileRow = ({ onFileSet }) => {\n\tconst { t } = useTranslation();\n\tconst [file, setFile] = useState(null);\n\tconst [format, setFormat] = useState(null);\n\tconst [rand] = useState(Math.round(Math.random() * 1000000));\n\n\tconst handleFileChanged = e => {\n\t\tif (e.target.files && e.target.files.length > 0)\n\t\t\tsetFile(e.target.files[0]);\n\t};\n\n\tconst handleFileSet = () => {\n\t\tonFileSet(file, format);\n\t\tsetFile(null);\n\t\tsetFormat(null);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t(file ? 'change_file' : 'select_file')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{file && file.name ? file.name : t('file_none_selected')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('format')}\n\t\t\t\t\t setFormat(e.target.value)}\n\t\t\t\t\t\tlabel={t('format')}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSelect one\n\t\t\t\t\t\t\n\t\t\t\t\t\tiOS\n\t\t\t\t\t\tAndroid\n\t\t\t\t\t\tMacOS\n\t\t\t\t\t\tLinux amd64\n\t\t\t\t\t\tLinux arm64\n\t\t\t\t\t\tLinux arm\n\t\t\t\t\t\tLinux x86\n\t\t\t\t\t\tWin32\n\t\t\t\t\t\tWin64\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tOK\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nSoftwareVersionFileRow.propTypes = {\n\tonFileSet: PropTypes.func\n};\n\nexport default SoftwareVersionFileRow;","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport { upload } from '@karpeleslab/klbfw';\n\nimport AddIcon from '@material-ui/icons/Add';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Date from './../../core/input/Date';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Grid from '@material-ui/core/Grid';\nimport SoftwareVersionFileRow from './SoftwareVersionFileRow';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useAddSoftwareVersion } from './../../../hooks/useSoftware';\nimport { useSetSnackbar } from './../../../hooks/useSnackbar';\n\n\nconst SoftwareAddVersion = ({ softwareId, onVersionAdded }) => {\n\tconst { t } = useTranslation();\n\tconst [open, setOpen] = useState(false);\n\tconst [version, setVersion] = useState('');\n\tconst [loading, setLoading] = useState(false);\n\tconst [files, setFiles] = useState([]);\n\tconst [date, setDate] = useState(null);\n\tconst setSnackbar = useSetSnackbar();\n\tconst [addSoftwareVersion] = useAddSoftwareVersion(softwareId);\n\n\tconst confirmAdd = () => {\n\t\tsetLoading(true);\n\t\taddSoftwareVersion({\n\t\t\tReleased: date.utc(),\n\t\t\tVersion: version \n\t\t})\n\t\t\t.then(({ data, result }) => {\n\t\t\t\tif (!data || result !== 'success')\n\t\t\t\t\treturn setSnackbar('error_cant_create_new_version', 'error');\n \n\t\t\t\tif (files.length < 1) \n\t\t\t\t\tonAllSet(data);\n\t\t\t\telse {\n\t\t\t\t\tlet length = 0;\n\t\t\t\t\tfiles.forEach(f => {\n\t\t\t\t\t\tuploadFile(f, data.Catalog_Software_Version__, () => {\n\t\t\t\t\t\t\tlength++;\n\t\t\t\t\t\t\tif (length === files.length) \n\t\t\t\t\t\t\t\tonAllSet(data);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tsetSnackbar('error_cant_create_new_version', 'error');\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tconst onAllSet = data => {\n\t\tonVersionAdded(data);\n\t\tsetLoading(false);\n\t\tsetOpen(false);\n\t};\n\n\tconst uploadFile = (file, catalogSoftwareVersionId, callback) => {\n\t\tupload.onprogress = d => {\n\t\t\tif (d.queue.length !== 0)\n\t\t\t\treturn;\n\n\t\t\tlet allComplete = true;\n\n\t\t\td.running.forEach(value => {\n\t\t\t\tif (value.status !== 'complete')\n\t\t\t\t\tallComplete = false;\n\n\t\t\t\tif (allComplete) \n\t\t\t\t\tcallback();\n\t\t\t});\n\t\t};\n\n\t\ttry {\n\t\t\tupload.append(`Catalog/Software/Version/${catalogSoftwareVersionId}:addFile`, file.file, {\n\t\t\t\tfilename: file.file.filename,\n\t\t\t\tformat : file.format\n\t\t\t});\n\t\t\tupload.run();\n\t\t} catch (err) {\n\t\t\tsetLoading(false);\n\t\t\tsetSnackbar(t('error_cant_update_avatar'), 'error');\n\t\t}\n\t};\n\n\tconst addNewFile = (file, format) => setFiles(f => [...f, { file, format }]);\n\tconst removeFile = index => setFiles(f => f.splice(index, f));\n\n\treturn <>\n\t\t}\n\t\t\tonClick={() => setOpen(true)}\n\t\t>\n\t\t\t{t('add_new_version')}\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t{t('new_version_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('new_version_description')}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setVersion(e.target.value)}\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tdisabled={loading}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('add_files')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{files && files.length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tFile\n\t\t\t\t\t\t\t\t\t\t\t\tFormat\n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{files.map(({ file, format}, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{file.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{format}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t removeFile(index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t;\n};\n\nSoftwareAddVersion.propTypes = {\n\tsoftwareId : PropTypes.string,\n\tonVersionAdded: PropTypes.func\n};\n\nexport default SoftwareAddVersion;\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport { upload } from '@karpeleslab/klbfw';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Date from './../../core/input/Date';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport FormControl from '@material-ui/core/FormControl';\nimport Grid from '@material-ui/core/Grid';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport SoftwareVersionFileRow from './SoftwareVersionFileRow';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useUpdateSoftwareVersion } from './../../../hooks/useSoftware';\nimport { useSetSnackbar } from './../../../hooks/useSnackbar';\n\nconst statuses = [\n\t'draft', \n\t'scheduled',\n\t'valid', \n\t'retired'\n];\n\nconst SoftwareEditVersion = ({ onClose, version }) => {\n\tconst { t } = useTranslation();\n\tconst [loading, setLoading] = useState(false);\n\tconst [files, setFiles] = useState([]);\n\tconst [status, setStatus] = useState(version.Status);\n\tconst setSnackbar = useSetSnackbar();\n\tconst [updateVersionStatus] = useUpdateSoftwareVersion(version.Catalog_Software_Version__);\n\n\tconst confirmAdd = () => {\n\t\tsetLoading(true);\n\t\tupdateVersionStatus({ Status: status });\n\t\tif (files.length > 0) {\n\t\t\tfiles.forEach(f => {\n\t\t\t\tuploadFile(f, version.Catalog_Software_Version__, () => {\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t\tonClose();\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tsetLoading(false);\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst uploadFile = (file, catalogSoftwareVersionId, callback) => {\n\t\tupload.onprogress = d => {\n\t\t\tif (d.queue.length !== 0)\n\t\t\t\treturn;\n\n\t\t\tlet allComplete = true;\n\n\t\t\td.running.forEach(value => {\n\t\t\t\tif (value.status !== 'complete')\n\t\t\t\t\tallComplete = false;\n\n\t\t\t\tif (allComplete) \n\t\t\t\t\tcallback();\n\t\t\t});\n\t\t};\n\n\t\ttry {\n\t\t\tupload.append(`Catalog/Software/Version/${catalogSoftwareVersionId}:addFile`, file.file, {\n\t\t\t\tfilename: file.file.filename,\n\t\t\t\tformat : file.format\n\t\t\t});\n\t\t\tupload.run();\n\t\t} catch (err) {\n\t\t\tsetLoading(false);\n\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t}\n\t};\n\n\tconst addNewFile = (file, format) => setFiles(f => [...f, { file, format }]);\n\tconst removeFile = index => setFiles(f => f.splice(index, f));\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('new_version_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('new_version_description')}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tStatus\n\t\t\t\t\t\t\t\t setStatus(e.target.value)}\n\t\t\t\t\t\t\t\t\tlabel=\"Status\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{statuses.map(s => {s})}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('add_files')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{files && files.length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tFile\n\t\t\t\t\t\t\t\t\t\t\t\tFormat\n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{files.map(({ file, format}, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{file.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{format}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t removeFile(index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nSoftwareEditVersion.propTypes = {\n\tonClose: PropTypes.func,\n\tversion: PropTypes.shape({\n\t\tCatalog_Software_Version__: PropTypes.string,\n\t\tCreated: PropTypes.shape({\n\t\t\tiso: PropTypes.string\n\t\t}),\n\t\tDrive_Item__: PropTypes.string,\n\t\tReleased: PropTypes.shape({\n\t\t\tiso: PropTypes.string\n\t\t}),\n\t\tStatus: PropTypes.string,\n\t\tVersion: PropTypes.string\n\t})\n};\n\nexport default SoftwareEditVersion;\n","import React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\n\nimport Button from '@material-ui/core/Button';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Collapse from '@material-ui/core/Collapse';\nimport EditIcon from '@material-ui/icons/Edit';\nimport ExpandLess from '@material-ui/icons/ExpandLess';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport SoftwareAddVersion from './SoftwareAddVersion';\nimport SoftwareEditVersion from './SoftwareEditVersion';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useSoftwareVersionList } from './../../../hooks/useSoftware';\n\nconst SoftwareVersions = () => {\n\tconst { t } = useTranslation();\n\tconst { softwareId } = useParams();\n\tconst [versions] = useSoftwareVersionList(softwareId);\n\tconst [open, setOpen] = useState(true);\n\tconst [versionToEdit, setVersionToEdit] = useState(null);\n\t\n\tconst [displayVersions, setDisplayVersions] = useState(null);\n\n\tconst onVersionAdded = version => {\n\t\tsetDisplayVersions(v => ({ ...v, data: [...v.data, version] }));\n\t};\n\n\tuseEffect(() => {\n\t\tif (!versions)\n\t\t\treturn;\n\n\t\tsetDisplayVersions(versions);\n\t}, [versions]);\n\n\tuseEffect(() => {\n\t\tif (versionToEdit !== null && !versionToEdit) window.location.reload();\n\t}, [versionToEdit]); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{open ? : }\n\t\t\t\t\t\t setOpen(!open)}\n\t\t\t\t\t\t\tprimary={\n\t\t\t\t\t\t\t\t{t('versions')}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{(displayVersions && displayVersions.data) && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tVersion\n\t\t\t\t\t\t\t\t\t\t\tStatus\n\t\t\t\t\t\t\t\t\t\t\tRelease date\n\t\t\t\t\t\t\t\t\t\t\tFile(s) Attached?\n\t\t\t\t\t\t\t\t\t\t\tActions\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{displayVersions.data.map(v => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{v.Version}\n\t\t\t\t\t\t\t\t\t\t\t\t{v.Status}\n\t\t\t\t\t\t\t\t\t\t\t\t{moment(parseInt(v.Created.unixms)).format('YYYY/MM/DD')}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{v.Files && v.Files.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv.Files.map((f, i) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{f.Format}{i < v.Files.length - 1 && ', '}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t setVersionToEdit(v)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{!!versionToEdit && (\n\t\t\t\t setVersionToEdit(false)}\n\t\t\t\t/>\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default SoftwareVersions;\n","import React, { useState } from 'react';\nimport { useParams }\t from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport AccessCheck from './../../components/core/utils/AccessCheck';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport EditIcon from '@material-ui/icons/Edit';\nimport Grid from '@material-ui/core/Grid';\nimport Helmet from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport Paper from '@material-ui/core/Paper';\nimport SaveIcon from '@material-ui/icons/Save';\nimport SoftwareInfo from './SoftwareInfo';\nimport SoftwareInfoForm from './SoftwareInfoForm';\nimport SoftwareLinks from '../../components/kakari/SoftwareInfo/SoftwareLinks';\nimport SoftwareVersions from '../../components/kakari/SoftwareInfo/SoftwareVersions';\n\nimport { useSetSnackbar }\t from './../../hooks/useSnackbar';\nimport { useSoftware, useEditSoftware } from './../../hooks/useSoftware';\n\nexport default () => {\n\tconst { catalogId, softwareId } = useParams();\n\tconst [software] = useSoftware(softwareId);\n\tconst { t } = useTranslation();\n\tconst [edit, setEdit] = useState(false);\n\tconst [editData, setEditData] = useState({});\n\tconst setSnackbar = useSetSnackbar();\n\tconst [editSoftware, loading] = useEditSoftware(softwareId);\n\n\tconst updateEditDataField = (fieldName, value) => {\n\t\tif (!Object.keys(software.data).includes(fieldName))\n\t\t\treturn; \n\n\t\tsetEditData(d => ({ ...d, [fieldName]: value }));\n\t};\n\n\tconst saveEdit = () => {\n\t\teditSoftware(editData)\n\t\t\t.then(res => {\n\t\t\t\tif (res && res.result === 'success')\n\t\t\t\t\tsetEdit(false);\n\t\t\t\telse \n\t\t\t\t\tsetSnackbar('error_cant_update_software', 'error');\n\t\t\t})\n\t\t\t.catch(() => setSnackbar('error_cant_update_software', 'error'));\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{software && software.data ? software.data.Name : t('software')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{edit ? \n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{edit ?\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useParams, useHistory }\tfrom 'react-router-dom';\n\nimport Button from '@material-ui/core/Button';\nimport Grid from '@material-ui/core/Grid';\nimport Helmet from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport SaveIcon from '@material-ui/icons/Save';\nimport SoftwareInfoForm from './../Software/SoftwareInfoForm';\n\nimport { useAddSoftware } from './../../hooks/useSoftware';\nimport { useSetSnackbar }\tfrom './../../hooks/useSnackbar';\n\nconst AddSoftware = () => {\n\tconst { t } = useTranslation(); \n\tconst { catalogId } = useParams(); \n\tconst [addSoftware, loading] = useAddSoftware(catalogId); \n\tconst history = useHistory(); \n\tconst setSnackbar = useSetSnackbar(); \n\tconst [software, setSoftware] = useState({\n\t\tdata: {\n\t\t\tName: '',\n\t\t\tDownload: '',\n\t\t\tApple_Store_Id: '',\n\t\t\tGoogle_Play_Id: ''\n\t\t}\n\t});\n \n\tconst updateSoftwareData = (fieldName, value) => {\n\t\tif (!Object.keys(software.data).includes(fieldName))\n\t\t\treturn; \n\n\t\tconst tmp = {...software.data}; \n\t\ttmp[fieldName] = value; \n\n\t\tsetSoftware(d => ({ ...d, data: tmp }));\n\t};\n\n\tconst create = () => {\n\t\taddSoftware(software.data)\n\t\t\t.then(res => {\n\t\t\t\tif (res && res.result !== 'success')\n\t\t\t\t\tsetSnackbar('error_cant_update_software', 'error');\n\t\t\t\telse \n\t\t\t\t\thistory.push(`/catalog/${catalogId}/softwares`);\n\t\t\t})\n\t\t\t.catch(() => setSnackbar('error_cant_update_software', 'error'));\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('add_software')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('add_software')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default AddSoftware;\n","import { useParams } from 'react-router-dom';\nimport { useCallback, useEffect, useState } from 'react';\nimport { rest } from '@karpeleslab/klbfw';\nimport { useSetSnackbar } from './useSnackbar';\nimport { useTranslation } from 'react-i18next';\nimport { deepCopy } from '../utils/misc';\n\nexport const useRealmEmails = () => {\n\tconst { realmId } = useParams();\n\tconst [emails, setEmails] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging\n\t\t};\n\n\t\tsetLoading(true);\n\t\treturn rest(`Realm/${realmId}/Email`, 'GET', params)\n\t\t\t.then(setEmails)\n\t\t\t.catch(e => setEmails({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [emails, fetch, loading];\n};\n\nexport const useRealmCreateEmail = realm => {\n\tconst [creating, setCreating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst create = (key, enabled, from, cc = '', bcc = '') => {\n\t\tsetCreating(true);\n\t\tconst data = {\n\t\t\tKey: key,\n\t\t\tEnabled: enabled,\n\t\t\tFrom: from,\n\t\t\tCc: cc ?? null,\n\t\t\tBcc: bcc ?? null\n\t\t};\n\t\treturn rest(`Realm/${realm.Realm__}/Email`, 'POST', data)\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('realm_email_create_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setCreating(false));\n\t};\n\n\treturn [create, creating];\n};\n\nexport const useRealmUpdateEmail = email => {\n\tconst [updating, setUpdating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst update = (data) => {\n\t\tsetUpdating(true);\n\n\t\tif(!data.Cc) data.Cc = null;\n\t\tif(!data.Bcc) data.Bcc = null;\n\n\t\treturn rest(`Realm/Email/${email.Realm_Email__}`, 'PATCH', data)\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('realm_email_update_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setUpdating(false));\n\t};\n\n\treturn [update, updating];\n};\n\nexport const useRealmEmailWithParams = () => {\n\tconst { emailId } = useParams();\n\tconst [email, setEmail] = useState(null);\n\n\tconst refresh = useCallback(data => {\n\t\tif (data) {\n\t\t\tsetEmail({ ...(email ?? {}), data: data });\n\t\t}\n\n\t\treturn rest(`Realm/Email/${emailId}`)\n\t\t\t.then(setEmail)\n\t\t\t.catch(e => setEmail({ error: e }));\n\t}\n\t\t, [email]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [email, refresh];\n};\n\n\nexport const useRealmCreateEmailText = email => {\n\tconst [creating, setCreating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst create = (lang, enabled, subject, fromName, bodyText = null, bodyHtml = null) => {\n\t\tsetCreating(true);\n\t\tconst data = {\n\t\t\tLanguage__: lang,\n\t\t\tEnabled: enabled,\n\t\t\tFrom_Name: fromName,\n\t\t\tSubject: subject,\n\t\t\tBody_Text: bodyText,\n\t\t\tBody_Html: bodyHtml\n\t\t};\n\t\treturn rest(`Realm/Email/${email.Realm_Email__}/Text`, 'POST', data)\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('realm_email_text_create_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setCreating(false));\n\t};\n\n\treturn [create, creating];\n};\n\nexport const useRealmEmailsText = () => {\n\tconst { emailId } = useParams();\n\tconst [texts, setTexts] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [lastFilter, setLastFilter] = useState({});\n\tconst [lastPaging, setLastPaging] = useState({});\n\n\tconst fetch = useCallback((filters = null, paging = null) => {\n\t\tif (filters) setLastFilter(lastFilter);\n\t\tif (paging) setLastPaging(lastFilter);\n\t\tconst params = {\n\t\t\t...(filters ? filters : lastFilter),\n\t\t\t...(paging ? paging : lastPaging),\n\t\t};\n\n\t\tsetLoading(true);\n\t\treturn rest(`Realm/Email/${emailId}/Text`, 'GET', params)\n\t\t\t.then(setTexts)\n\t\t\t.catch(e => setTexts({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t}, [emailId, lastFilter, lastPaging]); // es\n\n\tconst setItem = (idx, item) => {\n\t\tconst cpy = deepCopy(texts);\n\t\tcpy.data[idx] = item;\n\t\tsetTexts(cpy);\n\t};\n\n\treturn [texts, fetch, loading, setItem];\n};\n\n\nexport const useRealmUpdateEmailText = text => {\n\tconst [updating, setUpdating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst update = (data) => {\n\t\tsetUpdating(true);\n\n\t\treturn rest(`Realm/Email/Text/${text.Realm_Email_Text__}`, 'PATCH', data)\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('realm_email_text_update_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setUpdating(false));\n\t};\n\n\treturn [update, updating];\n};\n\nexport const useRealmTextEmailTest = text => {\n\tconst [updating, setUpdating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst update = (params) => {\n\t\tsetUpdating(true);\n\n\t\treturn rest(`Realm/Email/Text/${text.Realm_Email_Text__}:test`, 'POST', { params:params })\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('realm_email_text_test_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setUpdating(false));\n\t};\n\n\treturn [update, updating];\n};\n\n\nexport const useRealmTextEmailAsPDF = text => {\n\tconst [updating, setUpdating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst update = (params) => {\n\t\tsetUpdating(true);\n\n\t\treturn rest(`Realm/Email/Text/${text.Realm_Email_Text__}:asPDF`, 'POST', { params:params })\n\t\t\t.then((data) => {\n\t\t\t\tsetSnackbar(t('realm_email_text_as_pdf_success'), 'success');\n\t\t\t\treturn data.data;\n\t\t\t}).catch(() => {\n\t\t\t\t// Todo better error handling ?\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t})\n\t\t\t.finally(() => setUpdating(false));\n\t};\n\n\treturn [update, updating];\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport Paper from '@material-ui/core/Paper';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nconst useStyles = makeStyles((theme) => ({\n\troot: {\n\t\tdisplay: 'flex',\n\t\tflexWrap: 'wrap',\n\t\tlistStyle: 'none',\n\t\tpadding: theme.spacing(0.5),\n\t\tmargin: 0,\n\t},\n\tchip: {\n\t\tmargin: theme.spacing(0.5),\n\t},\n}));\n\nconst EmailChips = ({ value, onDelete = undefined, paperProps = {} }) => {\n\tconst classes = useStyles();\n\tif (!value) return <>;\n\treturn (\n\t\t\n\t\t\t{value.split(',').map((data, idx) => {\n\t\t\t\treturn (\n\t\t\t\t\t
  • \n\t\t\t\t\t\t onDelete(idx) : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
  • \n\t\t\t\t);\n\t\t\t})}\n\t\t
    \n\t);\n};\n\nexport default EmailChips;\n\nEmailChips.propTypes = {\n\tonDelete: PropTypes.any,\n\tpaperProps: PropTypes.object,\n\tvalue: PropTypes.any\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Forbidden from '../../core/utils/Forbidden/Forbidden';\nimport NotFound from '../../core/utils/NotFound/NotFound';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport { Link } from 'react-router-dom';\nimport moment from 'moment';\nimport Button from '@material-ui/core/Button';\nimport SearchIcon from '@material-ui/icons/Search';\nimport { useRealmEmails } from '../../../hooks/useRealmEmails';\nimport EmailChips from '../../core/data/email/EmailChips';\n\nconst EmailTable = ({ initialFilters = {}, flat = false, title = null }) => {\n\tconst { t } = useTranslation();\n\n\tconst [emails, fetch, loading] = useRealmEmails();\n\n\tif (emails && emails.error) {\n\t\tswitch (emails.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{email => }\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{email => }\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{email => }\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{email => email.Created ? moment(parseInt(email.Created.unixms)).format('LLL') : '-'}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\temail =>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcomponent={Link}\n\t\t\t\t\t\t\t\tto={`/realm/${email.Realm__}/emails/${email.Realm_Email__}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('view_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t);\n};\n\nexport default EmailTable;\n\nEmailTable.propTypes = {\n\tflat: PropTypes.bool,\n\tinitialFilters: PropTypes.object,\n\ttitle: PropTypes.string\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport TextField from '@material-ui/core/TextField';\nimport PropTypes from 'prop-types';\n\nconst EnableSelector = ({ value, setValue, disabled = false, required = false, ...rest }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tInputLabelProps={{ shrink: !!value }}\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant='outlined'\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t\t{...rest}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default EnableSelector;\n\nEnableSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func.isRequired,\n\tvalue: PropTypes.string\n};\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport TextField from '@material-ui/core/TextField';\nimport Grid from '@material-ui/core/Grid';\nimport { useTranslation } from 'react-i18next';\nimport Button from './Button';\nimport { Typography } from '@material-ui/core';\nimport EmailChips from '../data/email/EmailChips';\n\n\nconst EmailsInput = ({ title = '', value, setValue, disabled = false, required = false }) => {\n\n\tconst { t } = useTranslation();\n\tconst [newEmail, setNewEmail] = useState('');\n\n\tconst handleDelete = (idx) => {\n\t\tconst splited = value.split(',');\n\t\tsplited.splice(idx, 1);\n\t\tif (splited.length > 0 && splited[0] === '') setValue(null);\n\t\telse setValue(splited.join(','));\n\t};\n\n\tconst handleAdd = e => {\n\t\te.preventDefault();\n\t\tif (!value) setValue(newEmail);\n\t\telse setValue(`${value},${newEmail}`);\n\t\tsetNewEmail('');\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{title}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t setNewEmail(e.target.value)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('add_btn')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default EmailsInput;\n\nEmailsInput.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func.isRequired,\n\tvalue: PropTypes.string,\n\ttitle: PropTypes.string,\n};\n","import PropTypes from 'prop-types';\nimport React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\nimport EnableSelector from '../../core/input/EnableSelector';\nimport EmailsInput from '../../core/input/EmailsInput';\n\nconst EmailForm = ({ data, setData, setIsValid, disabled = false }) => {\n\tconst { t } = useTranslation();\n\n\tconst createChangeHandler = (key, isEvent = true) => e => {\n\t\tsetData({ ...data, [key]: isEvent ? e.target.value : e });\n\t};\n\n\tconst getValue = (key, def = '') => {\n\t\tif (!(key in (data ?? {}))) return def;\n\t\treturn data[key];\n\t};\n\n\tuseEffect(() => {\n\t\tif (!('Key' in (data ?? {})) || !getValue('Key').trim()) setIsValid(false);\n\t\telse if (!('From' in (data ?? {})) || !getValue('From').trim()) setIsValid(false);\n\t\telse setIsValid(true);\n\t}, [data, setIsValid]); // eslint-disable-line\n\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default EmailForm;\n\nEmailForm.propTypes = {\n\tdata: PropTypes.object.isRequired,\n\tdisabled: PropTypes.bool,\n\tsetData: PropTypes.func.isRequired,\n\tsetIsValid: PropTypes.func.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Grid from '@material-ui/core/Grid';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport EmailForm from './EmailForm';\nimport { useRealmCreateEmail } from '../../../hooks/useRealmEmails';\nimport Button from '../../core/input/Button';\nimport { useHistory } from 'react-router-dom';\n\nconst EmailCreateDialog = ({ realm, open, setOpen }) => {\n\tconst { t } = useTranslation();\n\n\tconst [isValid, setIsValid] = useState(false);\n\tconst [data, setData] = useState({ 'Enabled': 'N' });\n\tconst [create, creating] = useRealmCreateEmail(realm);\n\tconst history = useHistory();\n\tconst handleClose = () => setOpen(false);\n\n\tconst handleCreate = () => {\n\t\tcreate(data['Key'], data['Enabled'], data['From'], data['Cc'] ?? null, data['Bcc'] ?? null)\n\t\t\t.then(email => {\n\t\t\t\tsetOpen(false);\n\t\t\t\thistory.push(`/realm/${realm.Realm__}/emails/${email.Realm_Email__}`);\n\t\t\t});\n\t};\n\n\treturn (\n\t\t {\n\t\t\t\tsetData({ 'Enabled': 'N' });\n\t\t\t}}\n\t\t>\n\t\t\t{t('realm_email_add_title')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default EmailCreateDialog;\n\nEmailCreateDialog.propTypes = {\n\topen: PropTypes.bool.isRequired,\n\trealm: PropTypes.object.isRequired,\n\tsetOpen: PropTypes.func.isRequired\n};\n","import React, { useState } from 'react';\nimport { useRealmWithParams } from '../../hooks/useRealm';\nimport { useTranslation } from 'react-i18next';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport { Helmet } from 'react-helmet';\nimport { Grid } from '@material-ui/core';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport Paper from '@material-ui/core/Paper';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport EmailTable from '../../components/kakari/RealmEmail/EmailTable';\nimport Toolbar from '../../components/core/typography/Toolbar';\nimport AccessCheck from '../../components/core/utils/AccessCheck';\nimport Button from '../../components/core/input/Button';\nimport AddIcon from '@material-ui/icons/Add';\nimport EmailCreateDialog from '../../components/kakari/RealmEmail/EmailCreateDialog';\n\nconst RealmEmails = () => {\n\tconst [realm] = useRealmWithParams();\n\tconst { t } = useTranslation();\n\tconst [showCreate, setShowCreate] = useState(false);\n\n\tif (!realm) return ;\n\tif (!realm.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t\n\t\t\t\t\t{t('realm_emails_title')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setShowCreate(true)}\n\t\t\t\t\t\t\t\tendIcon={}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default RealmEmails;\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { Grid } from '@material-ui/core';\nimport { deepCopy } from '../../../utils/misc';\nimport EmailForm from './EmailForm';\nimport { useRealmUpdateEmail } from '../../../hooks/useRealmEmails';\nimport Button from '../../core/input/Button';\nimport { useTranslation } from 'react-i18next';\n\nconst EmailUpdateForm = ({ email, setEmail, disabled = false }) => {\n\tconst { t } = useTranslation();\n\n\tconst [data, setData] = useState(deepCopy(email));\n\tconst [isValid, setIsValid] = useState(false);\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\tconst [update, updating] = useRealmUpdateEmail(email);\n\n\tuseEffect(() => {\n\t\tsetData(deepCopy(email));\n\t}, [setData, email]);\n\n\tuseEffect(() => {\n\t\tif (!isValid) setSaveEnabled(false);\n\t\telse if (\n\t\t\t!isValid ||\n\t\t\tdata.Key !== email.Key ||\n\t\t\tdata.From !== email.From ||\n\t\t\tdata.Enabled !== email.Enabled ||\n\t\t\tdata.Cc !== email.Cc ||\n\t\t\tdata.Bcc !== email.Bcc\n\n\t\t)\n\t\t\tsetSaveEnabled(true);\n\t\telse\n\t\t\tsetSaveEnabled(false);\n\t}, [data, email, isValid, setSaveEnabled]);\n\n\tconst handleUpdate = () => {\n\t\tupdate(data)\n\t\t\t.then(email => setEmail(email));\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t{t('save_btn')}\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default EmailUpdateForm;\n\nEmailUpdateForm.propTypes = {\n\tdisabled: PropTypes.bool,\n\temail: PropTypes.object.isRequired,\n\tsetEmail: PropTypes.func.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport AceEditor from 'react-ace';\nimport { Grid } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport TextField from '@material-ui/core/TextField';\nimport EnableSelector from '../../../core/input/EnableSelector';\nimport Tab from '@material-ui/core/Tab';\nimport Tabs from '@material-ui/core/Tabs';\nimport Panel from '../../../layout/Container/tab/Panel';\n\n\nimport 'ace-builds/src-noconflict/mode-html';\nimport 'ace-builds/src-noconflict/theme-monokai';\n\nconst TextForm = ({ data, setData, setIsValid, disabled = false }) => {\n\tconst { t } = useTranslation();\n\tconst [tabIndex, setTabIndex] = useState(0);\n\n\tconst createChangeHandler = (key, isEvent = true) => e => {\n\t\tsetData({ ...data, [key]: isEvent ? e.target.value : e });\n\t};\n\n\tconst getValue = (key, def = '') => {\n\t\tif (!(key in (data ?? {}))) return def;\n\t\treturn data[key];\n\t};\n\n\tconst handleTabChange = (event, newValue) => {\n\t\tsetTabIndex(newValue);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!('From_Name' in (data ?? {})) || !getValue('From_Name').trim()) setIsValid(false);\n\t\telse if (!('Subject' in (data ?? {})) || !getValue('Subject').trim()) setIsValid(false);\n\t\telse setIsValid(true);\n\t}, [data, setIsValid]); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{/* */}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default TextForm;\n\nTextForm.propTypes = {\n\tdata: PropTypes.object.isRequired,\n\tdisabled: PropTypes.bool,\n\tsetData: PropTypes.func.isRequired,\n\tsetIsValid: PropTypes.func.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Grid from '@material-ui/core/Grid';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport TextForm from './TextForm';\nimport LangSelect from '../../../core/input/LangSelect';\nimport { useRealmCreateEmailText } from '../../../../hooks/useRealmEmails';\nimport Button from '../../../core/input/Button';\n\nconst TextCreateDialog = ({ email, refresh, open, setOpen }) => {\n\tconst { t } = useTranslation();\n\n\tconst [isValid, setIsValid] = useState(false);\n\tconst [data, setData] = useState({ 'Enabled': 'N' });\n\tconst [create, creating] = useRealmCreateEmailText(email);\n\tconst handleClose = () => setOpen(false);\n\n\tconst handleCreate = () => {\n\t\tcreate(data['Language__'], data['Enabled'], data['Subject'], data['From_Name'], data['Body_Text'], data['Body_Html'])\n\t\t\t.then(() => refresh())\n\t\t\t.then(() => handleClose());\n\t};\n\n\treturn (\n\t\t {\n\t\t\t\tsetData({ 'Enabled': 'N' });\n\t\t\t}}\n\t\t>\n\t\t\t{t('realm_email_text_add_title')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetData({ ...data, Language__: value.Language__ });\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\t\tfullWidth:true,\n\t\t\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t\t\tdisabled: creating,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\thelperText={t('realm_email_text_lang')}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default TextCreateDialog;\n\nTextCreateDialog.propTypes = {\n\temail: PropTypes.object.isRequired,\n\topen: PropTypes.object.isRequired,\n\trefresh: PropTypes.func.isRequired,\n\tsetOpen: PropTypes.func.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Grid from '@material-ui/core/Grid';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport { useRealmTextEmailAsPDF, useRealmTextEmailTest } from '../../../../hooks/useRealmEmails';\nimport Button from '../../../core/input/Button';\nimport TextField from '@material-ui/core/TextField';\n\nconst TextTestDialog = ({ text, open, setOpen }) => {\n\tconst { t } = useTranslation();\n\tconst [test, testing] = useRealmTextEmailTest(text);\n\tconst [testAsPDF, testingAsPDF] = useRealmTextEmailAsPDF(text);\n\tconst [params, setParams] = useState(JSON.stringify(text.Default_Test_Params ?? {}));\n\tconst handleClose = () => setOpen(false);\n\n\tconst handleAsEmail = () => {\n\t\ttest((params) ? JSON.parse(params) : {})\n\t\t\t.then(() => handleClose());\n\t};\n\n\tconst handleAsPDF = () => {\n\t\ttestAsPDF((params) ? JSON.parse(params) : {})\n\t\t\t.then(r => {\n\t\t\t\twindow.open(r.Url, '_blank').focus();\n\t\t\t})\n\t\t\t.then(() => handleClose());\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('realm_email_text_test_title')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t setParams(e.target.value)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('test_as_pdf_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('test_by_mail_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default TextTestDialog;\n\nTextTestDialog.propTypes = {\n\ttext: PropTypes.object.isRequired,\n\topen: PropTypes.object.isRequired,\n\tsetOpen: PropTypes.func.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { deepCopy } from '../../../../utils/misc';\nimport { useRealmUpdateEmailText } from '../../../../hooks/useRealmEmails';\nimport { Grid } from '@material-ui/core';\nimport Button from '../../../core/input/Button';\nimport TextForm from './TextForm';\nimport TextTestDialog from './TextTestDialog';\n\nconst TextUpdateForm = ({ text, setText, disabled = false }) => {\n\tconst { t } = useTranslation();\n\n\tconst [data, setData] = useState(deepCopy(text));\n\tconst [isValid, setIsValid] = useState(false);\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\tconst [update, updating] = useRealmUpdateEmailText(text);\n\tconst [showTest, setShowTest] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetData(deepCopy(text));\n\t}, [setData, text]);\n\n\tuseEffect(() => {\n\t\tif (!isValid) setSaveEnabled(false);\n\t\telse if (\n\t\t\t!isValid ||\n\t\t\tdata.Enabled !== text.Enabled ||\n\t\t\tdata.From_Name !== text.From_Name ||\n\t\t\tdata.Subject !== text.Subject ||\n\t\t\tdata.Body_Text !== text.Body_Text ||\n\t\t\tdata.Body_Html !== text.Body_Html\n\n\t\t)\n\t\t\tsetSaveEnabled(true);\n\t\telse\n\t\t\tsetSaveEnabled(false);\n\t}, [data, text, isValid, setSaveEnabled]);\n\n\tconst handleUpdate = () => {\n\t\tupdate(data)\n\t\t\t.then(text => setText(text));\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t setShowTest(true)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('test_btn')}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('save_btn')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default TextUpdateForm;\n\nTextUpdateForm.propTypes = {\n\tsetText: PropTypes.func.isRequired,\n\ttext: PropTypes.object.isRequired,\n\tdisabled: PropTypes.bool\n};\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { useRealmEmailsText } from '../../../../hooks/useRealmEmails';\nimport Loader from '../../../layout/Loader/Loader';\nimport { Grid, Tabs } from '@material-ui/core';\nimport Toolbar from '../../../core/typography/Toolbar';\nimport AddIcon from '@material-ui/icons/Add';\nimport Button from '../../../core/input/Button';\nimport { useTranslation } from 'react-i18next';\nimport TextCreateDialog from './TextCreateDialog';\nimport Tab from '@material-ui/core/Tab';\nimport Flag from '../../../core/data/Flag';\nimport Panel from '../../../layout/Container/tab/Panel';\nimport TextUpdateForm from './TextUpdateForm';\n\nconst TextTabs = ({ email, canEdit }) => {\n\tconst { t } = useTranslation();\n\n\tconst [texts, fetch, loading, setItem] = useRealmEmailsText();\n\tconst [tabIndex, setTabIndex] = useState(0);\n\n\tconst [showCreate, setShowCreate] = useState(false);\n\n\tconst createSetTextHandler = idx => shell => {\n\t\tsetItem(idx, shell);\n\t};\n\n\tuseEffect(() => {\n\t\tfetch({}, { results_per_page: 100 });\n\t}, [fetch]);\n\n\tconst handleTabChange = (event, newValue) => {\n\t\tsetTabIndex(newValue);\n\t};\n\n\tif (loading || !texts) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{canEdit &&\n\t\t\t\t\t setShowCreate(true)}\n\t\t\t\t\t\tendIcon={}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{texts.data.map(text =>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{texts.data.map((text, idx) =>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n\nexport default TextTabs;\n\nTextTabs.propTypes = {\n\tcanEdit: PropTypes.bool.isRequired,\n\temail: PropTypes.object.isRequired\n};\n","import React from 'react';\nimport { useRealmWithParams } from '../../hooks/useRealm';\nimport { useAccess } from '../../hooks/useAccess';\nimport { useTranslation } from 'react-i18next';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport Helmet from 'react-helmet';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport { Grid } from '@material-ui/core';\nimport Toolbar from '../../components/core/typography/Toolbar';\nimport { useRealmEmailWithParams } from '../../hooks/useRealmEmails';\nimport EmailUpdateForm from '../../components/kakari/RealmEmail/EmailUpdateForm';\nimport TextTabs from '../../components/kakari/RealmEmail/Text/TextTabs';\n\nconst RealmEmail = () => {\n\tconst [email, refresh] = useRealmEmailWithParams();\n\tconst [realm] = useRealmWithParams();\n\tconst canEdit = useAccess(realm, 'W');\n\tconst { t } = useTranslation();\n\n\tif (!email || !realm) return ;\n\tif (!email.data || !realm.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('realm_email_title', { key: email.data.Key })}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n\nexport default RealmEmail;\n","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport TextField from '@material-ui/core/TextField';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nimport {useSearchableCatalogs} from '../../../hooks/useCatalog';\n\nconst CatalogAutocomplete = ({ value, setValue, required = false, disabled = false }) => {\n\tconst { t } = useTranslation();\n\tconst [open, setOpen] = useState(false);\n\tconst [list, fetch, loading] = useSearchableCatalogs();\n\n\tuseEffect(() => {\n\t\tsetOpen(false);\n\t\tfetch({}, { results_per_page: 50 });\n\t}, []); // eslint-disable-line\n\n\tconst onChangeHandler = (e) => {\n\t\tfetch({ value: e.target.value }, { results_per_page: 50 });\n\t\tsetOpen(true);\n\t};\n\n\treturn (\n\t\t setOpen(true)}\n\t\t\tonClose={() => setOpen(false)}\n\t\t\tdisabled={disabled}\n\t\t\tvalue={value}\n\t\t\tonChange={(e, value) => setValue(value)}\n\t\t\tgetOptionSelected={(option, value) => option.Catalog__ === value.Catalog__}\n\t\t\tgetOptionLabel={option => !option || !option.Name ? '' : option.Name}\n\t\t\toptions={list ? list.data : []}\n\t\t\tloading={loading}\n\t\t\trenderInput={(params) => (\n\t\t\t\t\n\t\t\t\t\t\t\t\t{loading ? : null}\n\t\t\t\t\t\t\t\t{params.InputProps.endAdornment}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n};\n\nCatalogAutocomplete.propTypes = {\n\tdisabled: PropTypes.bool, \n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue : PropTypes.string\n}; \n\nexport default CatalogAutocomplete;","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport AceEditor from 'react-ace';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CatalogAutocomplete from '../../core/input/CatalogAutocomplete';\nimport DateTime from '../../core/input/DateTime';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport FormControl from '@material-ui/core/FormControl';\nimport Grid from '@material-ui/core/Grid';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ProductsAutocomplete from '../CreateCouponForm/ProductsAutocomplete';\nimport Select from '@material-ui/core/Select';\nimport UserAutocomplete from '../../core/input/UserAutocomplete';\n\nimport { useShellOperatingSystems } from '../../../hooks/useShell';\nimport { useShellsForUser } from '../../../hooks/useShellsActions';\nimport { useCreateWarning } from '../../../hooks/useWarnings';\n\nimport 'ace-builds/webpack-resolver';\nimport 'ace-builds/src-noconflict/mode-html';\nimport 'ace-builds/src-noconflict/theme-monokai';\nimport { useShellDatacentersList } from '../../../hooks/useShellDatacenter';\n\nconst useStyles = makeStyles(() => ({\n\tdialog: {\n\t\twidth : '100%',\n\t\tmaxWidth: '960px'\n\t},\n\tformControl: { width : '100%' }\n}));\nconst warningTypes = ['product', 'shell', 'shell_os', 'text', 'user', 'datacenter'];\n\nconst CreateWarningDialog = ({ open, setOpen, realmId }) => {\n\tconst [shells, fetchShells] = useShellsForUser();\n\tconst [object, setObject] = useState({});\n\tconst [catalog, setCatalog] = useState({});\n\tconst [user, setUser] = useState({});\n\tconst [osId, setOsId] = useState('');\n\tconst [datacenterId, setDataCenterId] = useState('');\n\tconst [shellId, setShellId] = useState('');\n\tconst [successor, setSuccessor] = useState({});\n\tconst [scheduled, setScheduled] = useState(null);\n\tconst [expires, setExpires] = useState(null);\n\tconst [text, setText] = useState('');\n\tconst [type, setType] = useState('');\n\tconst [create, creating] = useCreateWarning();\n\tconst [osList, fetchOsList] = useShellOperatingSystems();\n\tconst [datacenterList, fetchDatacenterList] = useShellDatacentersList();\n\tconst { t } = useTranslation();\n\tconst classes = useStyles();\n\n\tconst isEnabled = () => {\n\t\tconst enabled = !creating && text.trim().length > 0;\n\t\tswitch (type) {\n\t\t\tcase 'product':\n\t\t\t\treturn enabled && object && object.Catalog_Product__;\n\t\t\tcase 'shell':\n\t\t\t\treturn enabled && object && object.Shell__;\n\t\t\tcase 'shell_os':\n\t\t\t\treturn enabled && object && object.Shell_OS__;\n\t\t\tcase 'datacenter':\n\t\t\t\treturn enabled && object && object.Shell_Datacenter__;\n\t\t\tcase 'text':\n\t\t\t\treturn enabled;\n\t\t\tcase 'user':\n\t\t\t\treturn enabled && object && object.User__;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst submit = () => {\n\t\tconst params = {\n\t\t\tRealm__: realmId,\n\t\t\tType : type,\n\t\t\tData : {\n\t\t\t\t'en-us': text\n\t\t\t}\n\t\t};\n\n\t\tif (scheduled && scheduled.utc())\n\t\t\tparams.Scheduled = scheduled.utc();\n\t\tif (expires && expires.utc())\n\t\t\tparams.Expires = expires.utc();\n\n\t\tswitch (type) {\n\t\t\tcase 'product':\n\t\t\t\tparams.MetaObject__ = object.Catalog_Product__;\n\t\t\t\tif (successor)\n\t\t\t\t\tparams.Target_MetaObject__ = successor.Catalog_Product__;\n\t\t\t\tbreak;\n\t\t\tcase 'shell':\n\t\t\t\tparams.MetaObject__ = object.Shell__;\n\t\t\t\tbreak;\n\t\t\tcase 'datacenter':\n\t\t\t\tparams.MetaObject__ = object.Shell_Datacenter__;\n\t\t\t\tbreak;\n\t\t\tcase 'shell_os':\n\t\t\t\tparams.MetaObject__ = object.Shell_OS__;\n\t\t\t\tbreak;\n\t\t\tcase 'text':\n\t\t\t\tparams.MetaObject__ = realmId;\n\t\t\t\tbreak;\n\t\t\tcase 'user':\n\t\t\t\tparams.MetaObject__ = object.User__;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tcreate(params).then(() => setOpen(false));\n\t};\n\n\tuseEffect(() => {\n\t\tsetObject({});\n\t\tsetCatalog({});\n\t\tsetUser({});\n\t\tsetShellId('');\n\t\tsetOsId('');\n\t\tsetDataCenterId('');\n\t\tsetSuccessor({});\n\n\t\tif (type === 'shell_os')\n\t\t\tfetchOsList();\n\t\tif (type === 'datacenter')\n\t\t\tfetchDatacenterList();\n\t}, [type]); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\tif (user && user.User__)\n\t\t\tfetchShells({}, user.User__);\n\n\t\tsetObject(user && user.User__ && type === 'user' ? user : {});\n\t}, [catalog, user]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\tif (shellId && shells && shells.data)\n\t\t\tsetObject(shells.data.find(s => s.Shell__ === shellId));\n\t}, [shellId]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\tif (osId && osList && osList.data)\n\t\t\tsetObject(osList.data.find(os => os.Shell_OS__ === osId));\n\t}, [osId]); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\tif (datacenterId && datacenterList && datacenterList.data)\n\t\t\tsetObject(datacenterList.data.find(os => os.Shell_Datacenter__ === datacenterId));\n\t}, [datacenterId]); // eslint-disable-line\n\n\treturn (\n\t\t setOpen(false)}\n\t\t\tclasses={{\n\t\t\t\tpaper: classes.dialog\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\t{t('new_warning')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('warning_target_type')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t setType(e.target.value)}\n\t\t\t\t\t\t\t\t\tlabel={t('warning_target_type')}\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tNone\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{warningTypes.map(type => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t(`warning_type_${type}`)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{['shell', 'user'].includes(type) && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{(type === 'shell' && user && user.User__ && shells && shells.data) && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t('warning_type_shell')}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t setShellId(e.target.value)}\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={t('warning_type_shell')}\n\t\t\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tNone\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{shells.data.map(shell => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{shell.Label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{['product'].includes(type) && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{(catalog && catalog.Catalog__) && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{(catalog && catalog.Catalog__) && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{['shell_os'].includes(type) && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t('warning_type_shell_os')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t setOsId(e.target.value)}\n\t\t\t\t\t\t\t\t\t\tlabel={t('warning_type_shell_os')}\n\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tNone\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{osList && osList.data && (\n\t\t\t\t\t\t\t\t\t\t\tosList.data.map(os => (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{os.Name}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{['datacenter'].includes(type) && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t('warning_type_datacenter')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t setDataCenterId(e.target.value)}\n\t\t\t\t\t\t\t\t\t\tlabel={t('warning_type_datacenter')}\n\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tNone\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{datacenterList && datacenterList.data && (\n\t\t\t\t\t\t\t\t\t\t\tdatacenterList.data.map(d => (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{d.Name}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setText(v)}\n\t\t\t\t\t\t\t\tfontSize={16}\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t\tshowPrintMargin={true}\n\t\t\t\t\t\t\t\tshowGutter={true}\n\t\t\t\t\t\t\t\thighlightActiveLine={true}\n\t\t\t\t\t\t\t\tvalue={text}\n\t\t\t\t\t\t\t\tsetOptions={{\n\t\t\t\t\t\t\t\t\tenableBasicAutocompletion: true,\n\t\t\t\t\t\t\t\t\tenableLiveAutocompletion: true,\n\t\t\t\t\t\t\t\t\tenableSnippets: true,\n\t\t\t\t\t\t\t\t\tshowLineNumbers: true,\n\t\t\t\t\t\t\t\t\ttabSize: 2,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('cancel')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('confirm')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nCreateWarningDialog.propTypes = {\n\topen : PropTypes.bool,\n\tsetOpen: PropTypes.func,\n\trealmId: PropTypes.string\n};\n\nexport default CreateWarningDialog;\n","import {useState} from 'react';\nimport {rest} from '@karpeleslab/klbfw';\nimport { useTranslation } from 'react-i18next';\nimport {useSetSnackbar} from './useSnackbar';\n\n// https://git.atonline.com/shells/shells-cp/-/wikis/Shells-Warning#admin-create-a-warning\nexport const useCreateWarning = () => {\n\tconst [creating, setCreating] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst create = params => {\n\t\tsetCreating(true);\n\t\treturn rest('Shell/Warning', 'POST', params)\n\t\t\t.then(({ data }) => {\n\t\t\t\tsetSnackbar(t('warning_create_success'), 'success');\n\t\t\t\treturn data;\n\t\t\t}).catch(() => {\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t}).finally(() => setCreating(false));\n\t};\n\n\treturn [create, creating];\n};\n\n// https://git.atonline.com/shells/shells-cp/-/wikis/Shells-Warning#admin-fetch-a-warning\nexport const useFetchWarning = () => {\n\tconst [fetching, setFetching] = useState(false);\n\tconst [warning, setWarning] = useState(null);\n\n\tconst fetch = Shell_Warning__ => {\n\t\tsetFetching(true);\n\t\trest(`Shell/Warning/${Shell_Warning__}`, 'GET')\n\t\t\t.then(d => {\n\t\t\t\tsetWarning(d);\n\t\t\t\treturn d;\n\t\t\t})\n\t\t\t.catch(err => setWarning(err.error, 'error'))\n\t\t\t.finally(d => {\n\t\t\t\tsetFetching(false);\n\t\t\t\treturn d;\n\t\t\t});\n\t};\n\n\treturn [warning, fetch, fetching];\n};\n\n// https://git.atonline.com/shells/shells-cp/-/wikis/Shells-Warning#admin-list-the-warning\nexport const useRealmWarnings = Realm__ => {\n\tconst [loading, setLoading] = useState(false);\n\tconst [warnings, setWarnings] = useState(null);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst fetch = filters => {\n\t\tsetLoading(true);\n\t\treturn rest('Shell/Warning', 'GET', { Realm__, ...filters })\n\t\t\t.then(d => {\n\t\t\t\tsetWarnings(d);\n\t\t\t\treturn d;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(d => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn d;\n\t\t\t});\n\t};\n\n\treturn [warnings, fetch, loading];\n};\n\n// https://git.atonline.com/shells/shells-cp/-/wikis/Shells-Warning#admin-delete-a-warning\nexport const useRemoveWarning = () => {\n\tconst [removing, setRemoving] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst remove = Shell_Warning__ => {\n\t\tsetRemoving(true);\n\t\treturn rest(`Shell/Warning/${Shell_Warning__}`, 'DELETE')\n\t\t\t.then(({ data }) => {\n\t\t\t\tsetSnackbar(t('warning_remove_success'), 'success');\n\t\t\t\treturn data;\n\t\t\t}).catch(() => {\n\t\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\t}).finally(() => setRemoving(false));\n\t};\n\n\treturn [remove, removing];\n};\n\nexport const useUpdateWarning = Shell_Warning__ => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst update = params => {\n\t\trest(`/Shell/Warning/${Shell_Warning__}`, 'PATCH', params)\n\t\t\t.then(d => {\n\t\t\t\tsetSnackbar(t('edit_warning_success'), 'success');\n\t\t\t\treturn d;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(d => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn d;\n\t\t\t});\n\n\t};\n\n\treturn [update, loading];\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Button from '@material-ui/core/Button';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { Link } from 'react-router-dom';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\n\nimport { useRealmWarnings, useRemoveWarning } from '../../../hooks/useWarnings';\n\nconst WarningsListTable = ({ realmId }) => {\n\tconst { t } = useTranslation();\n\tconst [list, fetch, loading] = useRealmWarnings(realmId);\n\tconst [removeWarning] = useRemoveWarning();\n\n\tconst remove = Shell_Warning__ => {\n\t\tremoveWarning(Shell_Warning__)\n\t\t\t.then(() => fetch());\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{w => (new Date(w.Created.iso)).toLocaleDateString()}\n\t\t\t\n\t\t\t\n\t\t\t\t{w => (\n\t\t\t\t\tw.Scheduled && w.Scheduled.iso\n\t\t\t\t\t\t? (new Date(w.Scheduled.iso)).toLocaleDateString()\n\t\t\t\t\t\t: t('warning_immediate')\n\t\t\t\t)}\n\t\t\t\n\t\t\t\n\t\t\t\t{w => (\n\t\t\t\t\tw.Expires && w.Expires.iso\n\t\t\t\t\t\t? (new Date(w.Expires.iso)).toLocaleDateString()\n\t\t\t\t\t\t: t('warning_permanent')\n\t\t\t\t)}\n\t\t\t\n\t\t\t\n\t\t\t\t{w =>
    }\n\t\t\t\n\t\t\t\n\t\t\t\t{w => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t remove(w.Shell_Warning__)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n};\n\nWarningsListTable.propTypes = {\n\trealmId: PropTypes.string\n};\n\nexport default WarningsListTable;","import React, { useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CreateWarningDialog from '../../components/kakari/CreateWarningDialog/CreateWarningDialog';\nimport Grid from '@material-ui/core/Grid';\nimport {Helmet} \t\t from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle \t from '../../components/core/typography/PageTitle';\nimport WarningsListTable from './../../components/kakari/WarningsList/WarningsListTable';\n\nconst Warnings = () => {\n\tconst { realmId } = useParams();\n\tconst { t } = useTranslation();\n\tconst [open, setOpen] = useState(false);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('warnings_management_title')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t setOpen(true)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('new_warning')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Warnings;","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport AceEditor from 'react-ace';\nimport Button from '@material-ui/core/Button';\nimport DateTime from '../../core/input/DateTime';\nimport Grid from '@material-ui/core/Grid';\nimport LaunchIcon from '@material-ui/icons/Launch';\nimport Typography from '@material-ui/core/Typography';\n\nimport { useUpdateWarning } from '../../../hooks/useWarnings';\n\nimport 'ace-builds/webpack-resolver';\nimport 'ace-builds/src-noconflict/mode-html';\nimport 'ace-builds/src-noconflict/theme-monokai';\n\nconst WarningForm = ({ warning }) => {\n\tconst [scheduled, setScheduled] = useState(warning.Scheduled && warning.Scheduled.iso ? warning.Scheduled.iso : null);\n\tconst [expires, setExpires] = useState(warning.Expires && warning.Expires.iso ? warning.Expires.iso : null);\n\tconst [text, setText] = useState(warning.Data || '');\n\tconst [update, updating] = useUpdateWarning(warning.Shell_Warning__);\n\tconst { t } = useTranslation();\n\n\tconst getObjectInfo = () => {\n\t\tlet text;\n\t\tlet link;\n\t\tswitch (warning.Type) {\n\t\t\tcase 'product':\n\t\t\t\ttext = `Product: ${warning.MetaObject['Basic.Name']}`;\n\t\t\t\tlink = `/catalog/${warning.MetaObject.Catalog__}/product/${warning.MetaObject.Catalog_Product__}`;\n\t\t\t\tbreak;\n\t\t\tcase 'shell':\n\t\t\t\ttext = `Shell: ${warning.MetaObject.Label}`;\n\t\t\t\tlink = `/realm/${warning.Realm__}/user/${warning.MetaObject.User__}`;\n\t\t\t\tbreak;\n\t\t\tcase 'shell_os':\n\t\t\t\ttext = `Operating System: ${warning.MetaObject.Name}`;\n\t\t\t\tbreak;\n\t\t\tcase 'datacenter':\n\t\t\t\ttext = `Datacenter: ${warning.MetaObject.Name}`;\n\t\t\t\tbreak;\n\t\t\tcase 'user':\n\t\t\t\ttext = `User: ${warning.MetaObject.Email}`;\n\t\t\t\tlink = `/realm/${warning.Realm__}/user/${warning.MetaObject.User__}`;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\ttext = '';\n\t\t\t\tbreak;\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{text}\n\t\t\t\t{link && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t};\n\n\tconst isEnabled = () => {\n\t\treturn (\n\t\t\t!updating && (\n\t\t\t\t(!warning.Scheduled && scheduled) ||\n\t\t\t\t(!warning.Expires && expires) ||\n\t\t\t\t(warning.Scheduled && scheduled && warning.Scheduled.iso !== scheduled) ||\n\t\t\t\t(warning.Expires && expires && warning.Expires.iso !== expires) ||\n\t\t\t\twarning.Data !== text\n\t\t\t)\n\t\t);\n\t};\n\n\tconst submit = () => {\n\t\tconst params = { Warning_ID: warning.Shell_Warning__ };\n\t\tif (text !== warning.Data)\n\t\t\tparams.Data = text;\n\t\tif (scheduled && scheduled !== warning.Scheduled.iso)\n\t\t\tparams.Scheduled = scheduled;\n\t\tif (expires && expires !== warning.Expires.iso)\n\t\t\tparams.Expires = expires;\n\n\t\tupdate(params);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('warning_target_type')}: {warning.Type}\n\t\t\t\t\n\t\t\t\t{getObjectInfo()}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t setText(v)}\n\t\t\t\t\tfontSize={16}\n\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\tshowPrintMargin={true}\n\t\t\t\t\tshowGutter={true}\n\t\t\t\t\thighlightActiveLine={true}\n\t\t\t\t\tvalue={text}\n\t\t\t\t\tsetOptions={{\n\t\t\t\t\t\tenableBasicAutocompletion: true,\n\t\t\t\t\t\tenableLiveAutocompletion: true,\n\t\t\t\t\t\tenableSnippets: true,\n\t\t\t\t\t\tshowLineNumbers: true,\n\t\t\t\t\t\ttabSize: 2,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('confirm')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nWarningForm.propTypes = {\n\twarning: PropTypes.object\n};\n\nexport default WarningForm;\n","import React, { useEffect } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Helmet from 'react-helmet';\nimport PageContainer from './../../components/layout/Container/PageContainer';\nimport PageTitle from './../../components/core/typography/PageTitle';\nimport Paper from '@material-ui/core/Paper';\nimport WarningForm from './../../components/kakari/WarningForm/WarningForm';\n\nimport { useFetchWarning } from '../../hooks/useWarnings';\n\nconst EditWarning = () => {\n\tconst { warningId } = useParams();\n\tconst { t } = useTranslation(); \n\tconst [warning, fetch, loading] = useFetchWarning();\n\tconst history = useHistory();\n\n\tuseEffect(() => {\n\t\tfetch(warningId);\n\t}, []); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('edit_warning')}\n\t\t\t\n\t\t\t history.goBack() }\n\t\t\t>\n\t\t\t\tBack\n\t\t\t\n\t\t\t\n\t\t\t\t{t('edit_canned_response')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{loading || !warning || !warning.data\n\t\t\t\t\t\t? \n\t\t\t\t\t\t: \n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default EditWarning;","import React from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Grid from '@material-ui/core/Grid';\nimport RichAlert from '../../../core/feedback/RichAlert';\nimport Button from '../../../core/input/Button';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport { useTranslation } from 'react-i18next';\n\nconst QAConfirmDialog = ({ qaResult, onConfirmed, onClose }) => {\n\tconst { t } = useTranslation();\n\treturn (\n\t\t\n\t\t\t{t('qa_os_image_confirm')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t(`qa_os_image_confirm_${qaResult}`)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t(`qa_${qaResult}`)}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default QAConfirmDialog;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport Grid from '@material-ui/core/Grid';\n\nconst TextWithIcon = ({ startIcon, endIcon, text }) => {\n\treturn (\n\t\t\n\t\t\t{startIcon && \n\t\t\t\t{startIcon}\n\t\t\t}\n\t\t\t\n\t\t\t\t{text}\n\t\t\t\n\t\t\t{endIcon && \n\t\t\t\t{endIcon}\n\t\t\t}\n\t\t\n\t);\n};\n\nexport default TextWithIcon;\n\nTextWithIcon.propTypes = {\n\tendIcon: PropTypes.element,\n\tstartIcon: PropTypes.element,\n\ttext: PropTypes.string.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Grid } from '@material-ui/core';\nimport PublicIcon from '@material-ui/icons/Public';\nimport DnsIcon from '@material-ui/icons/Dns';\nimport { useTranslation } from 'react-i18next';\nimport PersonIcon from '@material-ui/icons/Person';\nimport TextWithIcon from '../../core/typography/TextWithIcon';\nimport VpnKeyIcon from '@material-ui/icons/VpnKey';\n\nconst ShellSSHConnection = ({ shell }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t}\n\t\t\t\t/>\n\n\t\t\t\n\t\t\t\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\n\t\t\t{shell.Keychain__ &&\n\t\t\t\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\n\t\t\t}\n\t\t\n\t);\n};\n\nexport default ShellSSHConnection;\n\nShellSSHConnection.propTypes = {\n\tshell: PropTypes.object.isRequired\n};\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Grid from '@material-ui/core/Grid';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport Button from '../../../core/input/Button';\nimport RichAlert from '../../../core/feedback/RichAlert';\nimport { useShellOSImageAdminQA, useShellOSImageSpawn } from '../../../../hooks/useShellOS';\nimport { TextField } from '@material-ui/core';\nimport QAConfirmDialog from './QAConfirmDialog';\nimport ShellSSHConnection from '../../ShellSSHConnection/ShellSSHConnection';\n\nconst QADialog = ({ open, setOpen, image, refresh }) => {\n\tconst { t } = useTranslation();\n\tconst [spawn, spawning] = useShellOSImageSpawn(image.Shell_OS_Image__);\n\tconst [setQA, settingQA] = useShellOSImageAdminQA(image.Shell_OS_Image__);\n\tconst [viewer, setViewer] = useState(null);\n\tconst [showConfirm, setShowConfirm] = useState(false);\n\tconst [qaResult, setQaResult] = useState();\n\tconst [shell, setShell] = useState(null);\n\n\tconst [keychain, setKeychain] = useState(null);\n\n\tconst doSpawn = () => {\n\t\tspawn(keychain ? keychain.trim() : null).then(d => {\n\t\t\tsetViewer(d.data.viewer);\n\t\t\tsetShell(d.data.shell);\n\t\t\twindow.open(d.data.viewer, '_blank').focus();\n\t\t});\n\t};\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleConfirm = () => {\n\t\tconst p = qaResult === 'passed' ? 'Y' : 'F';\n\t\tsetShowConfirm(false);\n\t\tsetQA(p).finally(() => {\n\t\t\tsetQaResult(null);\n\t\t\trefresh();\n\t\t\thandleClose();\n\t\t});\n\t};\n\n\tconst handleQA = result => {\n\t\tsetQaResult(result);\n\t\tsetShowConfirm(true);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t{t('qa_os_image')}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('qa_os_image_description', { name: image.Filename })}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{!viewer && \n\t\t\t\t\t\t\t setKeychain(e.target.value)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{!viewer && \n\t\t\t\t\t\t\t\t{t('start_vm')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{!!viewer && }\n\t\t\t\t\t\t\n\t\t\t\t\t\t{shell && \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t handleQA('passed')}\n\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t('qa_passed')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t handleQA('failed')}\n\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t('qa_failed')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{(qaResult && showConfirm) &&\n\t\t\t {\n\t\t\t\t\tsetShowConfirm(false);\n\t\t\t\t\tsetQaResult(null);\n\t\t\t\t}}\n\t\t\t\tonConfirmed={handleConfirm}\n\t\t\t\tqaResult={qaResult}\n\t\t\t/>}\n\t\t\n\t);\n};\n\nexport default QADialog;\n","import { useState } from 'react';\nimport { rest } from '@karpeleslab/klbfw';\nimport { useSetSnackbar } from './useSnackbar';\nimport { useTranslation } from 'react-i18next';\n\nexport const useShellOSImagesAdmin = () => {\n\tconst [list, setList] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [previousFilter, setPreviousFilter] = useState({});\n\tconst [previousPaging, setPreviousPaging] = useState({});\n\n\tconst fetch = (filters = null, paging = null) => {\n\t\tif (filters) {\n\t\t\tsetPreviousFilter(filters);\n\t\t}\n\n\t\tif (paging) {\n\t\t\tsetPreviousPaging(paging);\n\t\t}\n\n\t\tconst params = {\n\t\t\t...(filters ? filters : previousFilter),\n\t\t\t...(paging ? paging : previousPaging),\n\t\t};\n\n\t\tsetLoading(true);\n\t\trest('Shell/OS/Image:adminList', 'GET', params)\n\t\t\t.then(setList)\n\t\t\t.catch(e => setList({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [list, fetch, loading];\n};\n\n\nexport const useShellOSImageSpawn = imageId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = (keychain = null) => {\n\t\tsetLoading(true);\n\t\tconst params = {};\n\t\tif(keychain) params['Keychain__'] = keychain;\n\n\t\treturn rest(`Shell/OS/Image/${imageId}:spawn`, 'POST', params)\n\t\t\t.then(res => res)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\n\nexport const useShellOSImageAdminQA = imageId => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst { t } = useTranslation();\n\n\tconst doIt = (passed) => {\n\t\tsetLoading(true);\n\n\t\treturn rest(`Shell/OS/Image/${imageId}:adminQA`, 'POST', { passed: passed })\n\t\t\t.then(res => {\n\t\t\t\tsetSnackbar(t(`shell_os_image_qa_${passed.toLowerCase()}_success`), 'success');\n\t\t\t\treturn res;\n\t\t\t})\n\t\t\t.then(res => res)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n","import React, { useState } from 'react';\nimport TableDefinition from '../../../core/data/table/TableDefinition';\nimport Table from '../../../core/data/table/Table';\nimport { useTranslation } from 'react-i18next';\nimport { useShellOSImagesAdmin } from '../../../../hooks/useShellOS';\nimport QADialog from './QADialog';\nimport RestoreIcon from '@material-ui/icons/Restore';\nimport Button from '../../../core/input/Button';\nimport moment from 'moment';\n\nconst ShellOsImageQAList = () => {\n\tconst { t } = useTranslation();\n\tconst [list, fetch, loading] = useShellOSImagesAdmin();\n\tconst [selected, setSelected] = useState(null);\n\tconst [qaStart, setQaStart] = useState(false);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\t(image) => moment.utc(parseInt(image.Created.unixms)).format('LLL')\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\t(image) => {\n\t\t\t\t\t\t\treturn image.Shell_OS ? image.Shell_OS.Name : 'N/A';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\t(image) => {\n\t\t\t\t\t\t\t\tsetSelected(image);\n\t\t\t\t\t\t\t\tsetQaStart(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstartIcon={}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('shell_os_start_qa')}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\t{(selected && qaStart) && }\n\t\t\n\t);\n};\n\nexport default ShellOsImageQAList;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Helmet from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport { useRealmWithParams } from '../../hooks/useRealm';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport ShellOsImageQAList from '../../components/kakari/ShellOperatingSystem/Image/ShellOsImageQAList';\n\nconst ShellOSImageQA = () => {\n\tconst { t } = useTranslation();\n\tconst [realm] = useRealmWithParams();\n\n\tif (!realm) return ;\n\tif (!realm.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('shell_os_images_qa')}\n\t\t\t\n\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default ShellOSImageQA;\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport moment from 'moment';\nimport { Grid, Typography } from '@material-ui/core';\nimport Title from '../../core/typography/Title';\nimport { useTranslation } from 'react-i18next';\nimport Year from '../../core/input/Year';\nimport Month from '../../core/input/Month';\nimport Button from '../../core/input/Button';\nimport { useOrdersExport } from '../../../hooks/useRealmOrders';\nimport { downloadUrl } from '../../../utils/misc';\n\nconst OrdersExport = ({ catalogId }) => {\n\tconst { t } = useTranslation();\n\n\tconst [year, setYear] = useState(moment().format('YYYY'));\n\tconst [month, setMonth] = useState(moment().format('MM'));\n\tconst [doExport, loading] = useOrdersExport(catalogId);\n\n\tconst handleExport = () => {\n\t\tdoExport(year, month).then(\n\t\t\tr => {\n\t\t\t\tdownloadUrl(r.data.Url_Download, r.data.Name);\n\t\t\t}\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('orders_export_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('orders_export_desc')}\n\t\t\t\n\t\t\t\n\t\t\t\t setYear(e.target.value)}\n\t\t\t\t\tvalue={year}\n\t\t\t\t\tinputProps={{\n\t\t\t\t\t\tfullWidth: true,\n\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\n\t\t\t\n\t\t\t\t setMonth(e.target.value)}\n\t\t\t\t\tvalue={month}\n\t\t\t\t\tinputProps={{\n\t\t\t\t\t\tfullWidth: true,\n\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('export_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default OrdersExport;\n\nOrdersExport.propTypes = {\n\tcatalogId: PropTypes.string.isRequired\n};\n","import React from 'react';\nimport { useCatalog } from '../../hooks/useCatalog';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport Helmet from 'react-helmet';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport { Grid } from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport { useTranslation } from 'react-i18next';\nimport AccessCheck from '../../components/core/utils/AccessCheck';\nimport OrdersExport from '../../components/kakari/OrderReport/OrdersExport';\n\nconst CatalogStats = () => {\n\tconst { t } = useTranslation();\n\tconst [catalog] = useCatalog();\n\n\tif (!catalog) return ;\n\tif (!catalog.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('catalog_stats_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('catalog_stats_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CatalogStats;\n","import {useCallback, useEffect, useState} from 'react';\nimport {rest} from '@karpeleslab/klbfw';\nimport {useSetSnackbar} from '../useSnackbar';\n\nexport const usePXLReleases = () => {\n\tconst [releases, setReleases] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging,\n\t\t};\n\n\t\tsetLoading(true);\n\t\trest('Music/Label/Release', 'GET', params)\n\t\t\t.then(setReleases)\n\t\t\t.catch(e => setReleases({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [releases, fetch, loading];\n};\n\nexport const usePXLRelease = (id) => {\n\tconst [release, setRelease] = useState(null);\n\n\tconst refresh = useCallback(() => {\n\n\t\tconst params = {\n\t\t};\n\n\t\treturn rest(`Music/Label/Release/${id}`, 'GET', params)\n\t\t\t.then(setRelease)\n\t\t\t.catch(e => setRelease({ error: e }));\n\t}, [setRelease, id]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [release, refresh];\n};\n\nexport const usePXLRecord = (id, params) => {\n\tconst [record, setRecord] = useState(null);\n\n\tconst refresh = useCallback(() => {\n\n\t\trest(`Music/Label/Record/${id}`, 'GET', params)\n\t\t\t.then(setRecord)\n\t\t\t.catch(e => setRecord({ error: e }));\n\t}, [setRecord, id]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [record, refresh];\n};\n\nexport const usePXLRecordLyrics = (id, params) => {\n\tconst [lyrics, setLyrics] = useState(null);\n\n\tconst refresh = useCallback(() => {\n\n\t\trest(`Music/Label/Record/${id}/Lyric`, 'GET', params)\n\t\t\t.then(setLyrics)\n\t\t\t.catch(e => setLyrics({ error: e }));\n\t}, [setLyrics, id]); //eslint-disable-line\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [lyrics, refresh];\n};\n\n\nexport const usePXLAlbum = (id) => {\n\tconst [release, setRelease] = useState(null);\n\n\tconst refresh = useCallback(() => {\n\n\t\tconst params = {\n\t\t};\n\n\t\treturn rest(`Music/Label/Album/${id}`, 'GET', params)\n\t\t\t.then(setRelease)\n\t\t\t.catch(e => setRelease({ error: e }));\n\t}, [setRelease, id]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [release, refresh];\n};\n\nexport const usePXLRecordReview = (recordId) => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = (result, message = null) => {\n\t\tsetLoading(true);\n\t\treturn rest(`Music/Label/Record/${recordId}:review`, 'POST', {_admin_as:'auto', result:result, message:message})\n\t\t\t.then(({ data }) => data)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const usePXLAlbumReview = (albumId) => {\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\n\tconst doIt = (result, message = null) => {\n\t\tsetLoading(true);\n\t\treturn rest(`Music/Label/Album/${albumId}:review`, 'POST', {_admin_as:'auto', result:result, message:message})\n\t\t\t.then(({ data }) => data)\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};","import React from 'react';\nimport {usePXLReleases} from '../../../../hooks/PXL/usePXLRelease';\nimport Table from '../../../core/data/table/Table';\nimport TableDefinition from '../../../core/data/table/TableDefinition';\nimport moment from 'moment';\nimport {useTranslation} from 'react-i18next';\nimport Avatar from '@material-ui/core/Avatar';\nimport defaultPicture from '../../../../assets/img/landscape-image.svg';\nimport Chip from '@material-ui/core/Chip';\nimport {formatDuration} from '../../../../utils/misc';\nimport Button from '@material-ui/core/Button';\nimport {Link, useParams} from 'react-router-dom';\n\nconst PxlReleaseTable = () => {\n\tconst { realmId } = useParams();\n\n\tconst {t} = useTranslation();\n\tconst [releases, fetch, loading] = usePXLReleases();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\trelease => {\n\t\t\t\t\t\tconst album = release.Music_Label_Album;\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\trelease => {\n\t\t\t\t\t\tconst album = release.Music_Label_Album;\n\t\t\t\t\t\treturn album.Name;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\trelease => {\n\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t{(release.Tags ?? []).map((tag) =>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\trelease => {\n\t\t\t\t\t\tconst album = release.Music_Label_Album;\n\t\t\t\t\t\treturn album.Tracks;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\trelease => {\n\t\t\t\t\t\tconst album = release.Music_Label_Album;\n\t\t\t\t\t\treturn formatDuration(moment.duration(parseInt(album.Duration), 'seconds'));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\trelease =>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('review_btn')}\n\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default PxlReleaseTable;\n","import React from 'react';\nimport {useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport {Helmet} from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport PxlReleaseTable from '../../components/kakari/PXL/Release/PxlReleaseTable';\n\nconst Releases = () => {\n\tconst {realmId} = useParams();\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('pxl_releases')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Releases;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport uuid from '../../../../utils/uuid';\n\nconst Video = React.forwardRef((props, ref) => {\n\tconst { source, preset = '360p', disabled = false, ...rest } = props;\n\tconst { t } = useTranslation();\n\tconst [key, setKey] = useState(uuid());\n\tconst [presets, setPresets] = useState(null);\n\n\tuseEffect(() => {\n\t\t// Force rerender of the component if the source changes\n\t\tsetKey(uuid());\n\n\t\tif (source) {\n\t\t\tconst n = {};\n\t\t\tsource.forEach(s => n[s.preset] = s.url);\n\t\t\tsetPresets(n);\n\t\t} else setPresets(null);\n\n\t}, [source, setPresets]);\n\n\treturn (\n\t\t\n\t);\n});\n\nexport default Video;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport uuid from '../../../../utils/uuid';\n\nconst Audio = React.forwardRef((props, ref) => {\n\tconst { t } = useTranslation();\n\tconst [key, setKey] = useState(uuid());\n\tconst { mp3, disabled = false,...rest } = props;\n\n\tuseEffect(() => {\n\t\t// Force rerender of the component if the source changes\n\t\tsetKey(uuid());\n\t}, [mp3]);\n\n\treturn (\n\t\t\n\t);\n});\n\nexport default Audio;\n","import React from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport {useTranslation} from 'react-i18next';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport {usePXLRecordReview} from '../../../../hooks/PXL/usePXLRelease';\n\nconst ReviewRecordAcceptDialog = ({open, setOpen, recordId, onAccepted}) => {\n\tconst {t} = useTranslation();\n\tconst [review, reviewing] = usePXLRecordReview(recordId);\n\n\tconst handleAccept = () => {\n\t\treview('pass').then(() => {\n\t\t\tsetOpen(false);\n\t\t\tonAccepted();\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('accept_review_btn')}\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{t('accept_review_record_desc')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('accept_review_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ReviewRecordAcceptDialog;\n","import React, {useState} from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport {useTranslation} from 'react-i18next';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport {usePXLRecordReview} from '../../../../hooks/PXL/usePXLRelease';\nimport TextField from '@material-ui/core/TextField';\n\nconst ReviewRecordDeclineDialog = ({ open, setOpen, recordId, onDeclined }) => {\n\tconst { t } = useTranslation();\n\n\tconst [message, setMessage] = useState('');\n\tconst [review, reviewing] = usePXLRecordReview(recordId);\n\n\tconst handleAccept = () => {\n\t\treview('fail', message).then(() => {\n\t\t\tsetOpen(false);\n\t\t\tonDeclined();\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('decline_review_btn')}\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{t('decline_review_record_desc')}\n\t\t\t\t\n\t\t\t\t setMessage(e.target.value)}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tmultiline={true}\n\t\t\t\t\trows={5}\n\t\t\t\t\trequired\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('decline_review_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ReviewRecordDeclineDialog;\n","import React, { useState } from 'react';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Grid from '@material-ui/core/Grid';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport { useTranslation } from 'react-i18next';\nimport { usePXLRecord, usePXLRecordLyrics } from '../../../../hooks/PXL/usePXLRelease';\nimport Loader from '../../../layout/Loader/Loader';\nimport Video from '../../../core/data/Media/Video';\nimport Audio from '../../../core/data/Media/Audio';\nimport Typography from '@material-ui/core/Typography';\nimport { formatDuration } from '../../../../utils/misc';\nimport moment from 'moment';\nimport ReviewRecordAcceptDialog from './ReviewRecordAcceptDialog';\nimport ReviewRecordDeclineDialog from './ReviewRecordDeclineDialog';\nimport { useSetSnackbar } from '../../../../hooks/useSnackbar';\nimport { useHistory } from 'react-router-dom';\nimport { PXL_REALM } from '../../../../utils/realm';\n\nconst ReviewRecordDialog = ({ recordId, open, setOpen, refresh }) => {\n\tconst { t } = useTranslation();\n\tconst [record] = usePXLRecord(recordId, { _admin_as: 'auto' });\n\tconst [lyrics] = usePXLRecordLyrics(recordId, { _admin_as: 'auto' });\n\tconst [showAccept, setShowAccept] = useState(false);\n\tconst [showDecline, setShowDecline] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst history = useHistory();\n\n\tconst loading = !record || !lyrics;\n\n\tconst handleAccept = () => {\n\t\trefresh()\n\t\t\t.then(() => {\n\t\t\t\tsetSnackbar(t('record_review_accepted'), 'success');\n\t\t\t\tsetOpen(false);\n\t\t\t});\n\t};\n\n\tconst handleDecline = () => {\n\t\trefresh()\n\t\t\t.then(() => {\n\t\t\t\tsetSnackbar(t('record_review_declined'), 'success');\n\t\t\t\tsetOpen(false);\n\t\t\t\thistory.push(`/realm/${PXL_REALM}/pxl/releases`);\n\t\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('review_lyrics')}\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{loading && }\n\t\t\t\t\t{!loading && <>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('record_name')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    {record.data.Name ?? 'N/A'}

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{record.data.Type === 'video' &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('record_duration')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t{formatDuration(moment.duration(parseInt(record.data.Duration), 'seconds'))}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('record_isrc')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    {record.data.ISRC ?? 'N/A'}

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('record_type')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    {t(`record_type_${record.data.IVK}`)}

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('record_flags')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{Object.keys(record.data.Flags).map((flag, idx) =>\n\t\t\t\t\t\t\t\t\t
    • {t(`record_flags_${flag}`)}
    • \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('record_genre')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    {record?.Music_Genre?.Name ?? 'N/A'}

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('record_collaborators')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{record.data.Artists.length < 1 && 'N/A'}\n\t\t\t\t\t\t\t{record.data.Artists.length > 0 &&\n\t\t\t\t\t\t\trecord.data.Artists.map((artist) =>

    \n\t\t\t\t\t\t\t\t{artist.Role}: {`${artist.Music_Label_Artist.Name}`}

    )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('record_language')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    {record.data?.Language__ ?? 'N/A'}

    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{lyrics.data.map((l) =>

    {l.Text}

    )}\n\t\t\t\t\t\t\t{lyrics.data.length < 1 && t('record_no_lyrics')}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\n\t\t\t\t{(record && record.data.Review === 'pending') && <>\n\t\t\t\t\t setShowAccept(true)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('accept_review_btn')}\n\t\t\t\t\t\n\t\t\t\t\t setShowDecline(true)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('decline_review_btn')}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t{showAccept && }\n\t\t\t\t{showDecline &&\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ReviewRecordDialog;\n","import React, { useState } from 'react';\nimport Video from '../../../core/data/Media/Video';\nimport Audio from '../../../core/data/Media/Audio';\nimport { formatDuration } from '../../../../utils/misc';\nimport moment from 'moment';\nimport { TableRow } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport Button from '../../../core/input/Button';\nimport ReviewRecordDialog from './ReviewRecordDialog';\nimport TableCell from '@material-ui/core/TableCell';\n\nconst RecordReview = ({ track, refresh}) => {\n\tconst { t } = useTranslation();\n\tconst [showLyrics, setShowLyrics] = useState(false);\n\n\treturn (\n\t\t\n\t\t\t{track.Music_Label_Record.Name ?? 'N/A'}\n\t\t\t\n\t\t\t\t{track.Music_Label_Record.Type === 'video' &&\n\t\t\t\t\n\t\t\t\n\t\t\t\t{formatDuration(moment.duration(parseInt(track.Music_Label_Record.Duration), 'seconds'))}\n\t\t\t\n\t\t\t\n\t\t\t\t{track.Music_Label_Record.Review}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t{showLyrics && \n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default RecordReview;\n","import React from 'react';\nimport RecordReview from './RecordReview';\nimport { Table, TableBody, TableHead, TableRow } from '@material-ui/core';\nimport TableCell from '@material-ui/core/TableCell';\nimport { useTranslation } from 'react-i18next';\n\nconst Records = ({ album, refresh }) => {\n\tconst {t} = useTranslation();\n\n\tif ((album.Tracks ?? []).length < 1)\n\t\treturn

    N/A

    ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('record_name')}\n\t\t\t\t\t{t('record_preview')}\n\t\t\t\t\t{t('record_duration')}\n\t\t\t\t\t{t('record_review')}\n\t\t\t\t\t{t('tablecell_actions')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{(album.Tracks ?? []).length > 0 && album.Tracks.map(track => )\n\t\t\t\t}\n\t\t\t\n\n\t\t
    \n\t);\n};\n\nexport default Records;\n","import React from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport { useTranslation } from 'react-i18next';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport {usePXLAlbumReview} from '../../../../hooks/PXL/usePXLRelease';\n\nconst ReviewAlbumAcceptDialog = ({ open, setOpen, albumId, onAccepted }) => {\n\tconst { t } = useTranslation();\n\tconst [review, reviewing] = usePXLAlbumReview(albumId);\n\n\tconst handleAccept = () => {\n\t\treview('pass').then(() => {\n\t\t\tsetOpen(false);\n\t\t\tonAccepted();\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('accept_review_btn')}\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{t('accept_review_album_desc')}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('accept_review_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ReviewAlbumAcceptDialog;\n","import React, {useState} from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport { useTranslation } from 'react-i18next';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport {usePXLAlbumReview} from '../../../../hooks/PXL/usePXLRelease';\nimport TextField from '@material-ui/core/TextField';\n\nconst ReviewAlbumDeclineDialog = ({ open, setOpen, albumId, onDeclined }) => {\n\tconst { t } = useTranslation();\n\tconst [message, setMessage] = useState('');\n\tconst [review, reviewing] = usePXLAlbumReview(albumId);\n\n\n\tconst handleDecline = () => {\n\t\treview('fail', message).then(() => {\n\t\t\tsetOpen(false);\n\t\t\tonDeclined();\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('decline_review_btn')}\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{t('decline_review_album_desc')}\n\t\t\t\t\n\t\t\t\t setMessage(e.target.value)}\n\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\tmultiline={true}\n\t\t\t\t\trows={5}\n\t\t\t\t\trequired\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('decline_review_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ReviewAlbumDeclineDialog;\n","import React, {useEffect, useState} from 'react';\nimport {usePXLAlbum} from '../../../../hooks/PXL/usePXLRelease';\nimport Loader from '../../../layout/Loader/Loader';\nimport Grid from '@material-ui/core/Grid';\nimport Avatar from '@material-ui/core/Avatar';\nimport defaultPicture from '../../../../assets/img/landscape-image.svg';\nimport {Card} from '@material-ui/core';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\nimport {useTranslation} from 'react-i18next';\nimport Records from './Records';\nimport Button from '../../../core/input/Button';\nimport ReviewAlbumAcceptDialog from './ReviewAlbumAcceptDialog';\nimport ReviewAlbumDeclineDialog from './ReviewAlbumDeclineDialog';\nimport { useSetSnackbar } from '../../../../hooks/useSnackbar';\nimport { useHistory } from 'react-router-dom';\nimport { PXL_REALM } from '../../../../utils/realm';\n\nconst AlbumReview = ({albumId, refreshRelease}) => {\n\tconst {t} = useTranslation();\n\tconst [album, refresh] = usePXLAlbum(albumId);\n\tconst [reviewEnabled, setReviewEnabled] = useState(false);\n\n\tconst [showAccept, setShowAccept] = useState(false);\n\tconst [showDecline, setShowDecline] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst history = useHistory();\n\n\n\tuseEffect(() => {\n\t\tif (!album) return;\n\t\tlet valid = true;\n\t\tfor (var i = 0; i < album.data.Tracks.length; i++) {\n\t\t\tif (album.data.Tracks[i].Music_Label_Record.Review !== 'complete') {\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tsetReviewEnabled(valid);\n\n\t}, [album, setReviewEnabled]);\n\n\tif (!album) return ;\n\n\tconst onAccepted = () => {\n\t\trefreshRelease();\n\t\tsetSnackbar(t('album_review_accepted'), 'success');\n\t};\n\n\tconst onDeclined = () => {\n\t\tsetSnackbar(t('album_review_declined'), 'success');\n\t\thistory.push(`/realm/${PXL_REALM}/pxl/releases`);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{album.data.Name}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('album_description')}\n\t\t\t\t\t\t\n\t\t\t\t\t\t

    {(album.data.Description ?? '').trim() || 'N/A'}

    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('album_genre')}\n\t\t\t\t\t\t\n\t\t\t\t\t\t

    {album.data?.Music_Genre?.Name ?? 'N/A'}

    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('album_review_status')}\n\t\t\t\t\t\t\n\t\t\t\t\t\t

    {album.data.Review}

    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('album_collaborators')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('album_links')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{(album.data.Artists ?? []).length < 1 && 'N/A'}\n\t\t\t\t\t\t{(album.data.Artists ?? []).length > 0 &&\n\t\t\t\t\t\talbum.data.Artists.map(artist =>

    \n\t\t\t\t\t\t\t{artist.Role}: {`${artist.Music_Label_Artist.Name}`}

    )\n\t\t\t\t\t\t}\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{(album.data.Links ?? []).length < 1 && 'N/A'}\n\t\t\t\t\t\t{(album.data.Links ?? []).length > 0 &&\n\t\t\t\t\t\talbum.data.Links.map(link => <>\n\t\t\t\t\t\t\t{link.Store}: {link.Link}
    )\n\t\t\t\t\t\t}\n\t\t\t\t\t
    \n\t\t\t\t\t{album.data.Review === 'pending' && <>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setShowAccept(true)}\n\t\t\t\t\t\t\t\tdisabled={!reviewEnabled}\n\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('accept_album_review_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{showAccept &&\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setShowDecline(true)}\n\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('decline_album_review_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{showDecline &&\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('album_tracks')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t);\n};\n\nexport default AlbumReview;\n","import React from 'react';\nimport {useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport {Helmet} from 'react-helmet';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport {usePXLRelease} from '../../hooks/PXL/usePXLRelease';\nimport Loader from '../../components/layout/Loader/Loader';\nimport Grid from '@material-ui/core/Grid';\nimport AlbumReview from '../../components/kakari/PXL/Release/AlbumReview';\n\nconst ReviewRelease = () => {\n\tconst {realmId, releaseId} = useParams();\n\tconst {t} = useTranslation();\n\tconst [release, refreshRelease] = usePXLRelease(releaseId);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('pxl_release_review')}\n\t\t\t\n\t\t\t\n\t\t\t{!release && }\n\t\t\t{release && <>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t}\n\t\t\n\t);\n};\n\nexport default ReviewRelease;\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\n\nconst SiteVisibleSelector = ({value, setValue, disabled, required}) => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant=\"outlined\"\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nSiteVisibleSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default SiteVisibleSelector;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\n\nconst SiteCustomSelector = ({value, setValue, disabled, required}) => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant=\"outlined\"\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nSiteCustomSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default SiteCustomSelector;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport TextField from '@material-ui/core/TextField';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport {useSiteList} from '../../../hooks/useSites';\n\nconst SiteAutocomplete = ({value, setValue, required = false, disabled = false}) => {\n\tconst {t} = useTranslation();\n\tconst [open, setOpen] = useState(false);\n\tconst [list, fetch, loading] = useSiteList();\n\n\tuseEffect(() => {\n\t\tsetOpen(false);\n\t\tfetch({}, {results_per_page: 100});\n\t}, []); // eslint-disable-line\n\n\tconst onChangeHandler = (e) => {\n\t\tfetch({Name: {'$prefix': e.target.value}}, {results_per_page: 100});\n\t\tsetOpen(true);\n\t};\n\n\treturn (\n\t\t setOpen(true)}\n\t\t\tonClose={() => setOpen(false)}\n\t\t\tdisabled={disabled}\n\t\t\tvalue={value}\n\t\t\tonChange={(e, value) => setValue(value)}\n\t\t\tgetOptionSelected={(option, value) => option.Site__ === value.Site__}\n\t\t\tgetOptionLabel={option => !option || !option.Name ? '' : option.Name}\n\t\t\toptions={list ? list.data : []}\n\t\t\tloading={loading}\n\t\t\trenderInput={(params) => (\n\t\t\t\t\n\t\t\t\t\t\t\t\t{loading ? : null}\n\t\t\t\t\t\t\t\t{params.InputProps.endAdornment}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n};\n\nSiteAutocomplete.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default SiteAutocomplete;","import React from 'react';\nimport Grid from '@material-ui/core/Grid';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport {useTranslation} from 'react-i18next';\n\n// This is not very optimize but for a small list of flags it works great\nconst Flags = ({value, onChange, flags = [], disabled = false, exclusive = [], prefix = ''}) => {\n\tconst {t} = useTranslation();\n\n\tconst createOnChangeHandler = flag => e => {\n\t\tconst v = e.target.checked;\n\t\tif (v) {\n\t\t\tif (value.includes(flag)) return;\n\t\t\tif (exclusive.includes(flag)) {\n\t\t\t\tconst toExclude = new Set(exclusive.filter(f => f !== flag));\n\t\t\t\tvalue = value.filter(x => !toExclude.has(x));\n\t\t\t}\n\t\t\tonChange([...value, flag]);\n\t\t} else {\n\t\t\tif (!value.includes(flag)) return;\n\t\t\tonChange(value.filter(f => f !== flag));\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t{\n\t\t\t\tflags.map(flag =>\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={t((prefix ? (prefix + '_') : '') + 'flag_' + flag + '_label')}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\t}\n\n\t\t\n\t);\n};\n\nexport default Flags;","export const hasChanged = (original, value) => {\n\tconst originalKeys = Object.keys(original);\n\tconst valueKeys = Object.keys(value);\n\tif (originalKeys.length !== valueKeys.length) return true;\n\n\tfor (let i = 0; i < originalKeys.length; i++) {\n\t\tif (!(originalKeys[i] in value)) return true;\n\t\tif (original[originalKeys[i]] !== value[originalKeys[i]]) return true;\n\t}\n\n\treturn false;\n};\n\nexport const isI18NFilled = (values) => {\n\tif (!values) return false;\n\tconst keys = Object.keys(values);\n\tif (keys.length < 1) return false;\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tif (values[keys[i]] && values[keys[i]].trim()) return true;\n\t}\n\n\treturn false;\n};","import React, {useEffect} from 'react';\nimport {Grid} from '@material-ui/core';\nimport TextField from '@material-ui/core/TextField';\nimport {useTranslation} from 'react-i18next';\nimport MultiLangTextField from '../../core/input/MultiLangTextField';\nimport SiteVisibleSelector from '../../core/input/SiteVisibleSelector';\nimport SiteCustomSelector from '../../core/input/SiteCustomSelector';\nimport SiteAutocomplete from '../../core/input/SiteAutocomplete';\nimport Title from '../../core/typography/Title';\nimport Flags from '../../core/input/Flags';\nimport {isI18NFilled} from '../../../utils/i18nInput';\nimport PropTypes from 'prop-types';\n\nconst Form = ({data, setData, setIsValid, disabled = false, isCreate = false}) => {\n\tconst {t} = useTranslation();\n\n\tconst createChangeHandler = (key, isEvent = true) => e => {\n\t\tsetData({...data, [key]: isEvent ? e.target.value : e});\n\t};\n\n\tconst getValue = (key, def = '') => {\n\t\tif (!(key in (data ?? {}))) return def;\n\t\treturn data[key];\n\t};\n\n\tuseEffect(() => {\n\t\tif (!getValue('Key').trim() ||\n\t\t\t!isI18NFilled(getValue('Name', {})) ||\n\t\t\t!getValue('Visible').trim() ||\n\t\t\t!getValue('IsCustom').trim() ||\n\t\t\t!(getValue('Index') ?? '').trim() ||\n\t\t\t(isCreate && !getValue('Site'))\n\t\t) {\n\t\t\tsetIsValid(false);\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsValid(true);\n\t}, [data, isCreate]); // eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t{!isCreate && \n\t\t\t\t\n\t\t\t}\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t{isCreate && \n\t\t\t\t\n\t\t\t}\n\n\t\t\t\n\t\t\t\t{t('template_capabilities')}\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Form;\n\nForm.propTypes = {\n\tdata : PropTypes.object.isRequired,\n\tdisabled : PropTypes.bool,\n\tisCreate : PropTypes.bool,\n\tsetData : PropTypes.func.isRequired,\n\tsetIsValid : PropTypes.func.isRequired,\n};","import React, {useState} from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport {useTranslation} from 'react-i18next';\nimport {Box} from '@material-ui/core';\nimport Button from '../../core/input/Button';\nimport Form from './Form';\nimport {useSiteTemplateCreate} from '../../../hooks/useSiteTemplate';\nimport {useHistory} from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nconst CreateDialog = ({realmId, open, setOpen}) => {\n\tconst {t} = useTranslation();\n\tconst [data, setData] = useState({Visible: 'N', IsCustom:'Y'});\n\tconst [isValid, setIsValid] = useState(false);\n\tconst history = useHistory();\n\n\tconst [create, creating] = useSiteTemplateCreate();\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleCreate = () => {\n\t\tconst tmp = {...data};\n\t\ttmp.Site__ = tmp.Site.Site__;\n\t\ttmp.Realm__ = realmId;\n\t\tcreate(tmp).then((template) => {\n\t\t\thistory.push(`/realm/${realmId}/site/templates/${template.Site_Template__}`);\n\t\t\thandleClose();\n\t\t});\n\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('create_template')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CreateDialog;\n\nCreateDialog.propTypes = {\n\trealmId : PropTypes.string.isRequired,\n\topen : PropTypes.bool.isRequired,\n\tsetOpen : PropTypes.func.isRequired,\n};","import {useCallback, useEffect, useState} from 'react';\nimport {rest, upload} from '@karpeleslab/klbfw';\nimport {useTranslation} from 'react-i18next';\nimport {useSetSnackbar} from './useSnackbar';\n\nexport const useSiteTemplates = () => {\n\tconst [templates, setTemplates] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (filters, paging) => {\n\t\tconst params = {\n\t\t\t...filters,\n\t\t\t...paging,\n\t\t};\n\n\t\tsetLoading(true);\n\t\trest('Site/Template', 'GET', params)\n\t\t\t.then(setTemplates)\n\t\t\t.catch(e => setTemplates({error: e}))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [templates, fetch, loading];\n};\n\nexport const useSiteTemplateImages = (templateId) => {\n\tconst [templates, setTemplates] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [previousFilter, setPreviousFilter] = useState({});\n\tconst [previousPaging, setPreviousPaging] = useState({});\n\n\tconst fetch = (filters = null, paging = null) => {\n\t\tif (filters) {\n\t\t\tsetPreviousFilter(filters);\n\t\t}\n\n\t\tif (paging) {\n\t\t\tsetPreviousPaging(paging);\n\t\t}\n\n\t\tconst params = {\n\t\t\t...(filters ? filters : previousFilter),\n\t\t\t...(paging ? paging : previousPaging),\n\t\t};\n\n\t\tsetLoading(true);\n\t\trest(`Site/Template/${templateId}/Image`, 'GET', params)\n\t\t\t.then(setTemplates)\n\t\t\t.catch(e => setTemplates({error: e}))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [templates, fetch, loading];\n};\n\n\nexport const useSiteTemplateSettings = (templateId) => {\n\tconst [templates, setTemplates] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [previousFilter, setPreviousFilter] = useState({});\n\tconst [previousPaging, setPreviousPaging] = useState({});\n\n\tconst fetch = (filters = null, paging = null) => {\n\t\tif (filters) {\n\t\t\tsetPreviousFilter(filters);\n\t\t}\n\n\t\tif (paging) {\n\t\t\tsetPreviousPaging(paging);\n\t\t}\n\n\t\tconst params = {\n\t\t\t...(filters ? filters : previousFilter),\n\t\t\t...(paging ? paging : previousPaging),\n\t\t};\n\n\t\tsetLoading(true);\n\t\trest(`Site/Template/${templateId}/Setting`, 'GET', params)\n\t\t\t.then(setTemplates)\n\t\t\t.catch(e => setTemplates({error: e}))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [templates, fetch, loading];\n};\n\nexport const useSiteTemplate = (id) => {\n\tconst [template, setTemplate] = useState(null);\n\n\tconst refresh = useCallback((data = null) => {\n\n\t\tif(data) {\n\t\t\tsetTemplate(prev => ({...prev, data:data}));\n\t\t\treturn ;\n\t\t}\n\t\tconst params = {};\n\n\t\treturn rest(`Site/Template/${id}`, 'GET', params)\n\t\t\t.then(setTemplate)\n\t\t\t.catch(e => setTemplate({error: e}));\n\t}, [setTemplate, id]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [template, refresh];\n};\n\nexport const useSiteTemplateSetting = (id) => {\n\tconst [setting, setSetting] = useState(null);\n\n\tconst refresh = useCallback((data = null) => {\n\n\t\tif(data) {\n\t\t\tsetSetting(prev => ({...prev, data:data}));\n\t\t\treturn ;\n\t\t}\n\t\tconst params = {};\n\n\t\treturn rest(`Site/Template/Setting/${id}`, 'GET', params)\n\t\t\t.then(setSetting)\n\t\t\t.catch(e => setSetting({error: e}));\n\t}, [setSetting, id]);\n\n\tuseEffect(() => {\n\t\trefresh();\n\t}, []); //eslint-disable-line\n\n\treturn [setting, refresh];\n};\n\nexport const useSiteTemplateCreate = () => {\n\tconst {t} = useTranslation();\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst doIt = (data) => {\n\t\tsetLoading(true);\n\n\t\treturn rest('Site/Template', 'POST', data)\n\t\t\t.then(d => {\n\t\t\t\tsetSnackbar(t('site_template_create_success'), 'success');\n\t\t\t\treturn d.data;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\n\nexport const useSiteTemplateSettingCreate = (templateId) => {\n\tconst {t} = useTranslation();\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst doIt = (data) => {\n\t\tsetLoading(true);\n\n\t\treturn rest(`Site/Template/${templateId}/Setting`, 'POST', data)\n\t\t\t.then(d => {\n\t\t\t\tsetSnackbar(t('site_template_setting_create_success'), 'success');\n\t\t\t\treturn d.data;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\n\nexport const useSiteTemplateSettingEdit = (settingId) => {\n\tconst {t} = useTranslation();\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst doIt = (data) => {\n\t\tsetLoading(true);\n\n\t\treturn rest(`Site/Template/Setting/${settingId}`, 'PATCH', data)\n\t\t\t.then(d => {\n\t\t\t\tsetSnackbar(t('site_template_setting_edit_success'), 'success');\n\t\t\t\treturn d.data;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\nexport const useSiteTemplateUpdate = (siteTemplateId) => {\n\tconst {t} = useTranslation();\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst doIt = (data) => {\n\t\tsetLoading(true);\n\n\t\treturn rest('Site/Template/' + siteTemplateId, 'PATCH', data)\n\t\t\t.then(d => {\n\t\t\t\tsetSnackbar(t('site_template_update_success'), 'success');\n\t\t\t\treturn d.data;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\n\nexport const useTemplateImageCreate = (templateId) => {\n\tconst {t} = useTranslation();\n\tconst setSnackbar = useSetSnackbar();\n\tconst [loading, setLoading] = useState(false);\n\n\tconst doIt = (file, params, callback) => {\n\t\tsetLoading(true);\n\t\tupload.onprogress = (d) => {\n\t\t\tif (d.queue.length !== 0)\n\t\t\t\treturn;\n\n\t\t\tlet allComplete = true;\n\n\t\t\td.running.forEach(value => {\n\t\t\t\tif (value.status !== 'complete')\n\t\t\t\t\tallComplete = false;\n\n\t\t\t\tif (allComplete) {\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\ttry {\n\t\t\tupload.append(`Site/Template/${templateId}:addImage`, file, params);\n\t\t\tupload.run();\n\t\t} catch (err) {\n\t\t\tsetSnackbar(t('error_generic'), 'error');\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\treturn [doIt, loading];\n};\n\n\nexport const useSiteTemplateImageUpdate = (imageId) => {\n\tconst {t} = useTranslation();\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst doIt = (data) => {\n\t\tsetLoading(true);\n\n\t\treturn rest('Site/Template/Image/' + imageId, 'PATCH', data)\n\t\t\t.then(d => {\n\t\t\t\tsetSnackbar(t('site_template_image_update_success'), 'success');\n\t\t\t\treturn d.data;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n\n\nexport const useSiteTemplateImageDelete = (imageId) => {\n\tconst {t} = useTranslation();\n\tconst [loading, setLoading] = useState(false);\n\tconst setSnackbar = useSetSnackbar();\n\tconst doIt = (data) => {\n\t\tsetLoading(true);\n\n\t\treturn rest('Site/Template/Image/' + imageId, 'DELETE', data)\n\t\t\t.then(d => {\n\t\t\t\tsetSnackbar(t('site_template_image_delete_success'), 'success');\n\t\t\t\treturn d.data;\n\t\t\t})\n\t\t\t.catch(err => setSnackbar(err.error, 'error'))\n\t\t\t.finally(res => {\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn res;\n\t\t\t});\n\t};\n\n\treturn [doIt, loading];\n};\n","import React, {useState} from 'react';\nimport {Link, useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport Table from '../../core/data/table/Table';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport Button from '@material-ui/core/Button';\nimport {useSiteTemplates} from '../../../hooks/useSiteTemplate';\nimport CreateDialog from './CreateDialog';\n\nconst SiteTemplateTable = () => {\n\tconst {realmId} = useParams();\n\n\tconst {t} = useTranslation();\n\tconst [releases, fetch, loading] = useSiteTemplates();\n\tconst [showCreate, setShowCreate] = useState(false);\n\n\treturn (\n\t\t<>\n\t\t\t setShowCreate(true)}>\n\t\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\t\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\ttemplate =>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('edit_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default SiteTemplateTable;","import React from 'react';\nimport {useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport {Helmet} from 'react-helmet';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport SiteTemplateTable from '../../components/kakari/SiteTemplate/SiteTemplateTable';\n\nconst SiteTemplateList = () => {\n\tconst {realmId} = useParams();\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('site_template_title')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default SiteTemplateList;","import {useCallback, useState} from 'react';\nimport {rest} from '@karpeleslab/klbfw';\n\nexport const useGetText = () => {\n\tconst [loading, setLoading] = useState(false);\n\n\tconst get = useCallback((textId) => {\n\t\tsetLoading(true);\n\t\treturn rest(`Text/${textId}`, 'GET')\n\t\t\t.finally(() => setLoading(false));\n\t}, []);\n\n\n\treturn [get, loading];\n};","import React, {useEffect, useState} from 'react';\nimport {Grid} from '@material-ui/core';\nimport Form from './Form';\nimport {useGetText} from '../../../hooks/useText';\nimport {useTranslation} from 'react-i18next';\nimport Loader from '../../layout/Loader/Loader';\nimport {useGetSite} from '../../../hooks/useSites';\nimport {useSiteTemplateUpdate} from '../../../hooks/useSiteTemplate';\nimport Button from '../../core/input/Button';\nimport PropTypes from 'prop-types';\nimport {hasChanged} from '../../../utils/i18nInput';\n\nconst EditForm = ({template, refresh}) => {\n\tconst {t} = useTranslation();\n\n\tconst [getText] = useGetText();\n\tconst [getSite] = useGetSite();\n\tconst [edit, editing] = useSiteTemplateUpdate(template.Site_Template__);\n\n\tconst [data, setData] = useState({});\n\n\tconst [nameText, setNameText] = useState();\n\tconst [loaded, setLoaded] = useState(false);\n\n\tconst [isValid, setIsValid] = useState(false);\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (!isValid) {\n\t\t\tsetSaveEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif((data['Key'] ?? '').trim() !== template.Key ||\n\t\t\t(data['Visible'] ?? '').trim() !== template.Visible ||\n\t\t\t(data['IsCustom'] ?? '').trim() !== template.IsCustom ||\n\t\t\t(data['Index'] ?? '').trim() !== template.Index ||\n\t\t\thasChanged(nameText.Values, data['Name'])\n\t\t) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\n\t\tconst originalFlags = Object.keys(template.Capabilities).sort();\n\t\tconst currentFlags = (data['Capabilities'] ?? []).sort();\n\t\tif(originalFlags.length !== currentFlags.length) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}else{\n\t\t\tfor (let i = 0; i {\n\t\tif (!template) {\n\t\t\tsetLoaded(false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst promises = [];\n\t\tlet emptyName = false;\n\t\tif(template.Name_Text__ && template.Name_Text__ !== '00000000-0000-0000-0000-000000000000') {\n\t\t\tpromises.push(getText(template.Name_Text__)\n\t\t\t\t.then(text => {\n\t\t\t\t\tsetNameText(text.data);\n\t\t\t\t\tsetData(prev => ({...prev, Name: text.data.Values}));\n\t\t\t\t}\n\t\t\t\t));\n\t\t}else {\n\t\t\temptyName = true;\n\t\t\tsetNameText({Values:{}});\n\t\t}\n\n\t\tconst d = {...template, Capabilities: Object.keys(template.Capabilities)};\n\t\tif(emptyName) d.Name = {};\n\t\tsetData(d);\n\n\t\tPromise.all(promises).then(() => setLoaded(true));\n\t}, [template, getText, getSite]);\n\n\n\tconst handleEdit = () => {\n\t\tedit(data).then(d => {\n\t\t\td.Name = data['Name'];\n\t\t\trefresh(d);\n\t\t});\n\t};\n\n\tif (!loaded) return ;\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('save_btn')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default EditForm;\n\nEditForm.propTypes = {\n\ttemplate : PropTypes.object.isRequired,\n\trefresh : PropTypes.func.isRequired,\n};","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\n\nconst TemplateSettingRequiredSelector = ({value, setValue, disabled, required}) => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant=\"outlined\"\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nTemplateSettingRequiredSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default TemplateSettingRequiredSelector;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\n\nconst TemplateSettingVisibleSelector = ({value, setValue, disabled, required}) => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant=\"outlined\"\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nTemplateSettingVisibleSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default TemplateSettingVisibleSelector;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\n\nconst TemplateSettingTypeSelector = ({value, setValue, disabled, required}) => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant=\"outlined\"\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\n\nTemplateSettingTypeSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default TemplateSettingTypeSelector;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\n\nconst TemplateSettingTypeSelector = ({value, setValue, disabled, required}) => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant=\"outlined\"\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\n\t);\n};\n\n\nTemplateSettingTypeSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default TemplateSettingTypeSelector;","import React, {useEffect} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {Grid} from '@material-ui/core';\nimport TextField from '@material-ui/core/TextField';\nimport MultiLangTextField from '../../../core/input/MultiLangTextField';\nimport TemplateSettingRequiredSelector from '../../../core/input/template/setting/TemplateSettingRequiredSelector';\nimport TemplateSettingVisibleSelector from '../../../core/input/template/setting/TemplateSettingVisibleSelector';\nimport TemplateSettingTypeSelector from '../../../core/input/template/setting/TemplateSettingTypeSelector';\nimport TemplateSettingFileTypeSelector from '../../../core/input/template/setting/TemplateSettingFileTypeSelector';\nimport {isI18NFilled} from '../../../../utils/i18nInput';\nimport PropTypes from 'prop-types';\n\nconst Form = ({data, setData, setIsValid, disabled = false}) => {\n\tconst {t} = useTranslation();\n\n\tconst createChangeHandler = (key, isEvent = true) => e => {\n\t\tsetData({...data, [key]: isEvent ? e.target.value : e});\n\t};\n\n\tconst getValue = (key, def = '') => {\n\t\tif (!(key in (data ?? {}))) return def;\n\t\treturn data[key];\n\t};\n\n\tuseEffect(() => {\n\t\tif (!getValue('Key').trim() ||\n\t\t\t!isI18NFilled(getValue('Name', {})) ||\n\t\t\t!(getValue('Index') ?? '').trim() ||\n\t\t\t!getValue('Required') ||\n\t\t\t!getValue('Visible') ||\n\t\t\t!getValue('Type')\n\t\t) {\n\t\t\tsetIsValid(false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst fOption = getValue('File_Options', null);\n\n\t\ttry {\n\t\t\tif(fOption) {\n\t\t\t\tJSON.parse(fOption);\n\t\t\t}\n\t\t}catch (e) {\n\t\t\tsetIsValid(false);\n\t\t\treturn;\n\t\t}\n\n\n\t\tconst fVariation = getValue('File_Variations', null);\n\n\t\ttry {\n\t\t\tif(fVariation) {\n\t\t\t\tJSON.parse(fVariation);\n\t\t\t}\n\t\t}catch (e) {\n\t\t\tsetIsValid(false);\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsValid(true);\n\t}, [data, setIsValid]); //eslint-disable-line\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default Form;\n\nForm.propTypes = {\n\tdata : PropTypes.object.isRequired,\n\tdisabled : PropTypes.bool,\n\tsetData : PropTypes.func.isRequired,\n\tsetIsValid : PropTypes.func.isRequired,\n};","import React, {useState} from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport {Box} from '@material-ui/core';\nimport Form from './Form';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '../../../core/input/Button';\nimport PropTypes from 'prop-types';\nimport {useTranslation} from 'react-i18next';\nimport {useSiteTemplateSettingCreate} from '../../../../hooks/useSiteTemplate';\n\nconst CreateSettingDialog = ({templateId, open, setOpen, onCreated}) => {\n\tconst {t} = useTranslation();\n\tconst [data, setData] = useState({});\n\tconst [isValid, setIsValid] = useState(false);\n\tconst [create, creating] = useSiteTemplateSettingCreate(templateId);\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tconst handleCreate = () => {\n\t\tdata['File_Options'] = data['File_Options'] ? JSON.parse(data['File_Options']) : null;\n\t\tdata['File_Variations'] = data['File_Variations'] ? JSON.parse(data['File_Variations']) : null;\n\t\tif(!data['File_Type']) data['File_Type'] = null;\n\t\tif(!data['Options']) data['Options'] = null;\n\t\tif(!data['Default']) data['Default'] = null;\n\t\tif(!data['Sync_Field']) data['Sync_Field'] = null;\n\t\tif(!data['Validator']) data['Validator'] = null;\n\n\t\tcreate(data).then(() => {\n\t\t\thandleClose();\n\t\t\tonCreated();\n\t\t});\n\t};\n\n\treturn (\n\t\t setData({})}\n\t\t>\n\t\t\t{t('create_template_setting')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CreateSettingDialog;\n\nCreateSettingDialog.propTypes = {\n\ttemplateId : PropTypes.string.isRequired,\n\topen : PropTypes.bool.isRequired,\n\tsetOpen : PropTypes.func.isRequired,\n\tonCreated : PropTypes.func.isRequired,\n};","import React, {useEffect, useState} from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport {Box} from '@material-ui/core';\nimport Form from './Form';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '../../../core/input/Button';\nimport PropTypes from 'prop-types';\nimport {useTranslation} from 'react-i18next';\nimport {useSiteTemplateSetting, useSiteTemplateSettingEdit} from '../../../../hooks/useSiteTemplate';\nimport Loader from '../../../layout/Loader/Loader';\nimport {useGetText} from '../../../../hooks/useText';\nimport {hasChanged} from '../../../../utils/i18nInput';\n\nconst EditSettingDialog = ({settingId, open, setOpen, onEdited}) => {\n\tconst {t} = useTranslation();\n\tconst [data, setData] = useState({});\n\tconst [isValid, setIsValid] = useState(false);\n\tconst [setting] = useSiteTemplateSetting(settingId);\n\tconst [getText] = useGetText();\n\n\tconst [edit, editing] = useSiteTemplateSettingEdit(settingId);\n\n\tconst [nameText, setNameText] = useState();\n\tconst [descriptionText, setDescriptionText] = useState();\n\n\tconst [loaded, setLoaded] = useState(false);\n\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\n\tuseEffect(() => {\n\t\tif(!setting || !setting.data || !isValid) {\n\t\t\tsetSaveEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst getNullableValue = (key) => {\n\t\t\tif(!data[key]) return null;\n\t\t\treturn data[key];\n\t\t};\n\n\t\tif(getNullableValue('Default') !== (setting.data.Default ?? null) ||\n\t\t\tdata['Index'] !== setting.data.Index ||\n\t\t\tdata['Key'] !== setting.data.Key ||\n\t\t\tgetNullableValue('Options') !== (setting.data.Options ?? null) ||\n\t\t\tdata['Required'] !== setting.data.Required ||\n\t\t\tgetNullableValue('Sync_Field') !== (setting.data.Sync_Field ?? null) ||\n\t\t\tdata['Type'] !== setting.data.Type ||\n\t\t\tgetNullableValue('Validator') !== (setting.data.Validator ?? null) ||\n\t\t\tdata['Visible'] !== setting.data.Visible ||\n\t\t\tgetNullableValue('File_Type') !== (setting.data.File_Type ?? null) ||\n\t\t\t(nameText && hasChanged(nameText.Values ?? {}, data['Name'])) ||\n\t\t\t(descriptionText && hasChanged(descriptionText.Values ?? {}, data['Description']))\n\t\t) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\n\t\tconst fOption = setting.data.File_Options ? JSON.stringify(setting.data.File_Options) : null;\n\t\tconst fVariation = setting.data.File_Variations ? JSON.stringify(setting.data.File_Variations) : null;\n\t\tif(fOption !== getNullableValue('File_Options') || fVariation !== getNullableValue('File_Variations') ) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\n\t\tsetSaveEnabled(false);\n\n\t}, [setSaveEnabled, data, setting,isValid, nameText, descriptionText]);\n\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!setting || !setting.data) {\n\t\t\tsetLoaded(false);\n\t\t\treturn;\n\t\t}\n\t\tconst d = {...setting.data};\n\n\n\t\tconst promises = [];\n\t\tlet emptyName = false;\n\t\tif (setting.data.Name_Text__) {\n\t\t\tpromises.push(getText(setting.data.Name_Text__)\n\t\t\t\t.then(text => {\n\t\t\t\t\tsetNameText(text.data);\n\t\t\t\t\tsetData(prev => ({...prev, Name: text.data.Values ?? {}}));\n\t\t\t\t}\n\t\t\t\t));\n\t\t}else {\n\t\t\temptyName = true;\n\t\t\tsetNameText({Values:{}});\n\t\t}\n\n\t\tlet emptyDescription = false;\n\t\tif (setting.data.Description_Text__) {\n\t\t\tpromises.push(getText(setting.data.Description_Text__)\n\t\t\t\t.then(text => {\n\t\t\t\t\tsetDescriptionText(text.data);\n\t\t\t\t\tsetData(prev => ({...prev, Description: text.data.Values ?? {}}));\n\t\t\t\t}\n\t\t\t\t));\n\t\t}else {\n\t\t\temptyDescription = true;\n\t\t\tsetDescriptionText({Values:{}});\n\t\t}\n\n\n\t\tif (d.File_Options) d.File_Options = JSON.stringify(d.File_Options);\n\t\tif (d.File_Variations) d.File_Variations = JSON.stringify(d.File_Variations);\n\t\tif(emptyName) d.Name = {};\n\t\tif(emptyDescription) d.Description = {};\n\t\tsetData(d);\n\t\tPromise.all(promises).then(() => setLoaded(true));\n\t}, [setting, setData, setLoaded, getText]);\n\n\tconst handleEdit = () => {\n\t\tdata['File_Options'] = data['File_Options'] ? JSON.parse(data['File_Options']) : null;\n\t\tdata['File_Variations'] = data['File_Variations'] ? JSON.parse(data['File_Variations']) : null;\n\t\tif(!data['File_Type']) data['File_Type'] = null;\n\t\tif(!data['Options']) data['Options'] = null;\n\t\tif(!data['Default']) data['Default'] = null;\n\t\tif(!data['Sync_Field']) data['Sync_Field'] = null;\n\t\tif(!data['Validator']) data['Validator'] = null;\n\n\t\tedit(data).then(() => {\n\t\t\thandleClose();\n\t\t\tonEdited();\n\t\t});\n\t};\n\n\treturn (\n\t\t {\n\t\t\t\tsetData({});\n\t\t\t\tsetLoaded(false);\n\t\t\t\tsetIsValid(false);\n\t\t\t\tsetSaveEnabled(false);\n\t\t\t}}\n\t\t>\n\t\t\t{t('edit_template_setting')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{loaded &&\n\t\t\t\t\t}\n\t\t\t\t\t{!loaded && }\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('edit_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default EditSettingDialog;\n\nEditSettingDialog.propTypes = {\n\tsettingId: PropTypes.string.isRequired,\n\topen: PropTypes.bool.isRequired,\n\tsetOpen: PropTypes.func.isRequired,\n\tonEdited: PropTypes.func.isRequired,\n};","import React, {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport Table from '../../../core/data/table/Table';\nimport TableDefinition from '../../../core/data/table/TableDefinition';\nimport Button from '@material-ui/core/Button';\nimport {useSiteTemplateSettings} from '../../../../hooks/useSiteTemplate';\nimport PropTypes from 'prop-types';\nimport CreateSettingDialog from './CreateSettingDialog';\nimport EditSettingDialog from './EditSettingDialog';\n\nconst SiteTemplateSettingsTable = ({templateId}) => {\n\tconst {t} = useTranslation();\n\tconst [settings, fetch, loading] = useSiteTemplateSettings(templateId);\n\tconst [showCreate, setShowCreate] = useState(false);\n\tconst [showEdit, setShowEdit] = useState(false);\n\n\tconst [selected, setSelected] = useState(null);\n\n\tconst onCreated = () => {\n\t\tfetch();\n\t};\n\n\tconst onEdited = () => {\n\t\tfetch();\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t setShowCreate(true)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\t\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tsetting => {\n\t\t\t\t\t\t\treturn ( {\n\t\t\t\t\t\t\t\t\tsetSelected(setting.Site_Template_Setting__);\n\t\t\t\t\t\t\t\t\tsetShowEdit(true);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttitle={t('edit_btn')}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('edit_btn')}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t{(showEdit && selected) && }\n\t\t\n\t);\n};\n\nexport default SiteTemplateSettingsTable;\n\nSiteTemplateSettingsTable.propTypes = {\n\ttemplateId: PropTypes.string.isRequired,\n};","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\n\nconst TemplateImageVisibleSelector = ({value, setValue, disabled, required}) => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant=\"outlined\"\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nTemplateImageVisibleSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default TemplateImageVisibleSelector;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport {Box, Grid} from '@material-ui/core';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '../../../core/input/Button';\nimport PropTypes from 'prop-types';\nimport TextField from '@material-ui/core/TextField';\nimport LangSelect from '../../../core/input/LangSelect';\nimport TemplateImageVisibleSelector from '../../../core/input/template/image/TemplateImageVisibleSelector';\nimport uuid from '../../../../utils/uuid';\nimport {useTemplateImageCreate} from '../../../../hooks/useSiteTemplate';\nimport {useSetSnackbar} from '../../../../hooks/useSnackbar';\n\nconst CreateTemplateImageDialog = ({templateId, open, setOpen, onCreated}) => {\n\tconst {t} = useTranslation();\n\tconst [file, setFile] = useState(null);\n\tconst [fileKey, setFileKey] = useState(uuid);\n\tconst [lang, setLang] = useState(null);\n\tconst [index, setIndex] = useState(0);\n\tconst [visible, setVisible] = useState('N');\n\tconst [description, setDescription] = useState(null);\n\tconst setSnackbar = useSetSnackbar();\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\n\tconst [create, creating] = useTemplateImageCreate(templateId);\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!file ||\n\t\t\t!lang ||\n\t\t\tindex == null ||\n\t\t\t!visible ||\n\t\t\t!(description ?? '').trim()) {\n\t\t\tsetSaveEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tsetSaveEnabled(true);\n\t}, [setSaveEnabled, file, lang, index, visible, description]);\n\n\tconst handleCreate = () => {\n\t\tcreate(file, {\n\t\t\tlanguage__: lang.Language__,\n\t\t\tdescription: description,\n\t\t\tvisible: visible,\n\t\t\tindex: index\n\t\t}, () => {\n\t\t\tsetSnackbar(t('site_template_image_created_success'), 'success');\n\t\t\tonCreated();\n\t\t\thandleClose();\n\t\t});\n\t};\n\n\tconst handleFileInputChange = e => {\n\t\tif (e.target.files.length < 1)\n\t\t\treturn;\n\n\t\tsetFile(e.target.files[0]);\n\t};\n\n\tconst reset = () => {\n\t\tsetFile(null);\n\t\tsetFileKey(uuid());\n\t\tsetLang(null);\n\t\tsetIndex(0);\n\t\tsetVisible('N');\n\t\tsetDescription(null);\n\t\tsetSaveEnabled(false);\n\t};\n\n\treturn (\n\t\t reset()}\n\t\t>\n\t\t\t{t('create_template_image')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetLang(value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t\t\t\tfullWidth: true,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tlabel={t('template_image_lang')}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setDescription(e.target.value)}\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tmultiline={true}\n\t\t\t\t\t\t\t\trows={5}\n\t\t\t\t\t\t\t\tdisabled={creating}\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setIndex(e.target.value)}\n\t\t\t\t\t\t\t\tlabel={t('site_template_setting_index_lbl')}\n\t\t\t\t\t\t\t\tplaceholder={t('site_template_setting_index_lbl')}\n\t\t\t\t\t\t\t\tname=\"index\"\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tInputProps={{min: 0}}\n\t\t\t\t\t\t\t\tdisabled={creating}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CreateTemplateImageDialog;\n\nCreateTemplateImageDialog.propTypes = {\n\ttemplateId: PropTypes.string.isRequired,\n\topen: PropTypes.bool.isRequired,\n\tsetOpen: PropTypes.func.isRequired,\n\tonCreated: PropTypes.func.isRequired,\n};","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport {Box, Grid} from '@material-ui/core';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '../../../core/input/Button';\nimport PropTypes from 'prop-types';\nimport TextField from '@material-ui/core/TextField';\nimport TemplateImageVisibleSelector from '../../../core/input/template/image/TemplateImageVisibleSelector';\nimport {useSiteTemplateImageUpdate} from '../../../../hooks/useSiteTemplate';\nimport LangSelect from '../../../core/input/LangSelect';\n\nconst EditTemplateImageDialog = ({image, open, setOpen, onEdited}) => {\n\tconst {t} = useTranslation();\n\n\tconst [index, setIndex] = useState(image.Index);\n\tconst [visible, setVisible] = useState(image.Visible);\n\tconst [description, setDescription] = useState(image.Description);\n\tconst [lang, setLang] = useState(image.Language);\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\n\tconst [update, updating] = useSiteTemplateImageUpdate(image.Site_Template_Image__);\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\tuseEffect(() => {\n\t\tsetIndex(image.Index);\n\t\tsetVisible(image.Visible);\n\t\tsetDescription(image.Description);\n\t\tsetLang(image.Language);\n\t}, [setDescription, setVisible, setIndex, image, setLang]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tindex == null ||\n\t\t\t!visible ||\n\t\t\t!(description ?? '').trim()) {\n\t\t\tsetSaveEnabled(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (image.Index !== index ||\n\t\t\timage.Description !== description ||\n\t\t\timage.Language__ !== lang.Language__ ||\n\t\t\timage.Visible !== visible\n\t\t) {\n\t\t\tsetSaveEnabled(true);\n\t\t\treturn;\n\t\t}\n\n\t\tsetSaveEnabled(false);\n\t}, [setSaveEnabled, index, visible, description, image, lang]);\n\n\tconst handleEdit = () => {\n\t\tupdate({\n\t\t\tIndex:index,\n\t\t\tDescription:description,\n\t\t\tVisible:visible,\n\t\t\tLanguage__: lang.Language__,\n\t\t}).then(() => {\n\t\t\tonEdited();\n\t\t\thandleClose();\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('create_template_image')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetLang({...value});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\t\t\tvariant: 'outlined',\n\t\t\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t\t\t\tfullWidth: true,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tlabel={t('template_image_lang')}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setDescription(e.target.value)}\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\tmultiline={true}\n\t\t\t\t\t\t\t\trows={5}\n\t\t\t\t\t\t\t\tdisabled={updating}\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setIndex(e.target.value)}\n\t\t\t\t\t\t\t\tlabel={t('site_template_setting_index_lbl')}\n\t\t\t\t\t\t\t\tplaceholder={t('site_template_setting_index_lbl')}\n\t\t\t\t\t\t\t\tname=\"index\"\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tInputProps={{min: 0}}\n\t\t\t\t\t\t\t\tdisabled={updating}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t{t('close_btn')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('edit_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default EditTemplateImageDialog;\n\nEditTemplateImageDialog.propTypes = {\n\timage: PropTypes.object.isRequired,\n\topen: PropTypes.bool.isRequired,\n\tsetOpen: PropTypes.func.isRequired,\n\tonEdited: PropTypes.func.isRequired,\n};","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '../../../core/input/Button';\nimport PropTypes from 'prop-types';\nimport {useSiteTemplateImageDelete} from '../../../../hooks/useSiteTemplate';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport Typography from '@material-ui/core/Typography';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\n\nconst DeleteTemplateImageDialog = ({image, open, setOpen, onEdited}) => {\n\tconst {t} = useTranslation();\n\n\n\tconst [doDelete, deleting] = useSiteTemplateImageDelete(image.Site_Template_Image__);\n\n\tconst handleClose = () => {\n\t\tsetOpen(false);\n\t};\n\n\n\tconst handleDelete = () => {\n\t\tdoDelete().then(() => {\n\t\t\tonEdited();\n\t\t\thandleClose();\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t{t('site_template_image_delete')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('site_template_image_delete_desc')}\n\t\t\t\t\t
    \n\t\t\t\t\t{t('are_you_sure')}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\t onClick={handleDelete}\n\t\t\t\t>\n\t\t\t\t\t{t('delete_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default DeleteTemplateImageDialog;\n\nDeleteTemplateImageDialog.propTypes = {\n\timage: PropTypes.object.isRequired,\n\topen: PropTypes.bool.isRequired,\n\tsetOpen: PropTypes.func.isRequired,\n\tonEdited: PropTypes.func.isRequired,\n};","import React, {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport Table from '../../../core/data/table/Table';\nimport TableDefinition from '../../../core/data/table/TableDefinition';\nimport Button from '@material-ui/core/Button';\nimport {useSiteTemplateImages} from '../../../../hooks/useSiteTemplate';\nimport PropTypes from 'prop-types';\nimport CreateTemplateImageDialog from './CreateTemplateImageDialog';\nimport EditTemplateImageDialog from './EditTemplateImageDialog';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport DeleteTemplateImageDialog from './DeleteTemplateImageDialog';\nimport Grid from '@material-ui/core/Grid';\n\nconst VARIATION = 'format=png&strip&scale_crop=200x100';\n\nconst SiteTemplateImageTable = ({templateId}) => {\n\tconst {t} = useTranslation();\n\tconst [settings, fetch, loading] = useSiteTemplateImages(templateId);\n\tconst [showCreate, setShowCreate] = useState(false);\n\tconst [showEdit, setShowEdit] = useState(false);\n\tconst [showDelete, setShowDelete] = useState(false);\n\n\tconst [selected, setSelected] = useState(null);\n\n\n\tconst onCreated = () => {\n\t\tfetch();\n\t};\n\n\tconst onEdited = () => {\n\t\tfetch();\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t setShowCreate(true)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\t\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\timage => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{image.Description}/\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\timg => img.Language.Local_Name\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\timage => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tsetSelected(image);\n\t\t\t\t\t\t\t\t\t\t\t\tsetShowEdit(true);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\ttitle={t('edit_btn')}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{t('edit_btn')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetSelected(image);\n\t\t\t\t\t\t\t\t\t\t\t\tsetShowDelete(true);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{t('delete_btn')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t{(selected && showEdit) && \n\t\t\t}\n\n\t\t\t{(selected && showDelete) && \n\t\t\t}\n\t\t\n\t);\n};\n\nexport default SiteTemplateImageTable;\n\nSiteTemplateImageTable.propTypes = {\n\ttemplateId: PropTypes.string.isRequired,\n};","import React from 'react';\nimport {useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport {Helmet} from 'react-helmet';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport {useSiteTemplate} from '../../hooks/useSiteTemplate';\nimport Loader from '../../components/layout/Loader/Loader';\nimport EditForm from '../../components/kakari/SiteTemplate/EditForm';\nimport Grid from '@material-ui/core/Grid';\nimport SiteTemplateSettingTable from '../../components/kakari/SiteTemplate/Setting/SiteTemplateSettingTable';\nimport SiteTemplateImageTable from '../../components/kakari/SiteTemplate/Image/SiteTemplateImageTable';\n\nconst SiteTemplateEdit = () => {\n\tconst {realmId, templateId} = useParams();\n\tconst [template, refresh] = useSiteTemplate(templateId);\n\n\n\tconst {t} = useTranslation();\n\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('site_template_edit_title')}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('site_template_edit_title')}\n\t\t\t\n\t\t\t{!template && }\n\t\t\t{template && \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\n\t\t\t}\n\t\t\n\t);\n};\n\nexport default SiteTemplateEdit;","import React, { useEffect, useState } from 'react';\nimport {useTranslation} from 'react-i18next';\nimport { useRealmServices } from '../../../hooks/useRealmServices';\n\nimport Table from '../../core/data/table/Table';\nimport moment from 'moment';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport NotFound \t\t from './../../core/utils/NotFound/NotFound';\nimport Forbidden \t\t from './../../core/utils/Forbidden/Forbidden';\n\nconst BillPayUserTable = ({ initialFilters = {}, flat = false, title = null }) => {\n\tconst { t } = useTranslation();\n\tconst [firstLoad, setFirstLoad] = useState(true); \n\tconst [services, fetch, loading] = useRealmServices();\n\n\tuseEffect(() => {\n\t\tif (!firstLoad)\n\t\t\tfetch();\n\t}, [initialFilters]); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\tsetFirstLoad(false);\n\t}, []); // eslint-disable-line\n\n\tif (services && services.error) {\n\t\tswitch (services.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{services =>\n\t\t\t\t\t\tservices.User_Billing !== void 0 ? services.User_Billing?.User.Profile.Display_Name: t(\"tablecell_no_date\")\n\t\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{services =>\n\t\t\t\t\t\tservices.User_Billing !== void 0 ? services.User_Billing?.Label: t(\"tablecell_no_date\")\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{services =>\n\t\t\t\t\t\tservices.User_Billing !== void 0 ? t(`tablecell_method_${services.User_Billing.Methods[0].Billing_Method}`) : t(\"tablecell_no_date\")\n\t\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{services => moment.utc(parseInt(services.Expiration.unixms)).format('LLL')}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{services => moment.utc(parseInt(services.Created.unixms)).format('LLL')}\n\t\t\t\t\n\t\t\t\n\t\t);\n};\n\nexport default BillPayUserTable;\n","import { useParams } from 'react-router-dom';\nimport { rest } from '@karpeleslab/klbfw';\nimport { useState } from 'react';\n\nexport const ORDER_STATS_PRODUCT_IMAGE_VARIATION = 'strip&scale_crop=75x75&background_color=white&format=jpeg';\n\nexport const useRealmServices = () => {\n\tconst { realmId } = useParams();\n\tconst [services, setServices] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst fetch = (paging) => {\n\t\tconst params = {\n\t\t\t'Realm__': realmId,\n\t\t\tsort: { 'Created': 'DESC' },\n\t\t\t_admin_as: 'auto', _expand: '/User_Billing,/User_Billing/User_Location,/User_Billing/User',\n\t\t\t...paging\n\t\t};\n\n\t\tsetLoading(true);\n\t\treturn rest('Service', 'GET', params)\n\t\t\t.then(setServices)\n\t\t\t.catch(e => setServices({ error: e }))\n\t\t\t.finally(() => setLoading(false));\n\t};\n\n\treturn [services, fetch, loading];\n};\n\nexport const useRealmServicesDownload = () => {\n\tconst { realmId } = useParams();\n\n\tconst download = () => {\n\t\tconst params = {\n\t\t\t'Realm__': realmId,\n\t\t};\n\n\t\treturn rest('Service:adminReport', 'GET', params);\n\t};\n\n\treturn [download];\n};\n\n","import React, { useState } from 'react';\nimport {useParams}\t \t from 'react-router-dom';\nimport {useTranslation}\t from 'react-i18next';\nimport { useRealmServicesDownload } from '../../hooks/useRealmServices';\n\nimport Helmet from 'react-helmet';\nimport BillPayUserTable from '../../components/kakari/BillPayUserTable/BillPayUserTable';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\n\n\nimport Box from '@material-ui/core/Box';\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\n\n\nconst BillPayUsers = () => {\n\tconst { realmId } = useParams();\n\tconst { t } = useTranslation();\n\tconst [filters] = useState({});\n\tconst [download] = useRealmServicesDownload();\n\n\n\tconst servicesDownload = () => {\n\t\tdownload();\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('orders')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(\"service_table_dl_name\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t servicesDownload()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('service_table_dl_name')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default BillPayUsers;","import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@material-ui/core/TextField';\n\nconst WalletDisableLimitSelector = ({value, setValue, disabled, required}) => {\n\tconst {t} = useTranslation();\n\n\treturn (\n\t\t setValue(e.target.value)}\n\t\t\tselect\n\t\t\tfullWidth\n\t\t\tdisabled={disabled}\n\t\t\trequired={required}\n\t\t\tvariant=\"outlined\"\n\t\t\tSelectProps={{\n\t\t\t\tnative: true\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nWalletDisableLimitSelector.propTypes = {\n\tdisabled: PropTypes.bool,\n\trequired: PropTypes.bool,\n\tsetValue: PropTypes.func,\n\tvalue: PropTypes.string\n};\n\nexport default WalletDisableLimitSelector;","import React, {useEffect} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport {Grid} from '@material-ui/core';\nimport TextField from '@material-ui/core/TextField';\nimport WalletDisabledLimitSelector from \"../../core/input/WalletDisabledLimitSelector\";\n\nconst WalletForm = ({ data, setData, setIsValid, disabled = false, edit=false }) => {\n\tconst { t } = useTranslation();\n\n\tconst createChangeHandler = key => e => {\n\t\tsetData({ ...data, [key]: e.target.value });\n\t};\n\n\tconst getValue = (key, def = '') => {\n\t\tif (!(key in (data ?? {}))) return def;\n\t\treturn data[key];\n\t};\n\n\tuseEffect(() => {\n\t\t\tsetIsValid(true);\n\n\t}, [data, setIsValid]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nWalletForm.propTypes = {\n\tdata : PropTypes.object,\n\tdisabled : PropTypes.bool,\n\tedit : PropTypes.bool,\n\tsetData : PropTypes.func,\n\tsetIsValid: PropTypes.func\n};\n\nexport default WalletForm;","import React, {useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {deepCopy} from '../../../utils/misc';\nimport {Grid} from '@material-ui/core';\nimport WalletForm from \"./WalletForm\";\n\nconst EditWallet = ({wallet, refresh}) => {\n\tconst [,setSaveEnabled] = useState(false);\n\tconst [isFormValid, setIsFormValid] = useState(false);\n\tconst [data, setData] = useState(deepCopy(wallet ?? {}));\n\t//const [] = useUserWalletUpdate(wallet);\n\n\n\tuseEffect(() => {\n\t\tsetSaveEnabled(isFormValid);\n\t}, [wallet, isFormValid, setSaveEnabled, data]);\n\n\t/*const saveHandler = () => {\n\t\tupdate(data).then(d => refresh(d));\n\t};*/\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nEditWallet.propTypes = {\n\twallet: PropTypes.object,\n\trefresh: PropTypes.func\n};\n\nexport default EditWallet;","import React, { useCallback, useEffect, useState } from 'react';\nimport { rest } from '@karpeleslab/klbfw';\n\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Dialog\t\t\t from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent \t from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Grid from '@material-ui/core/Grid';\n\nconst UserDisbursementInfoDialog = ({ reference, userId, onClose }) => {\n\tconst [info, setInfo] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [open, setOpen] = useState(false);\n\n\tconst fetchInfo = useCallback(async () => {\n\t\tsetLoading(true);\n\n\t\tconst res = await rest(\n `Crypto/Disbursement/${reference}`,\n 'GET',\n { _admin_as: userId }\n\t\t);\n\n\t\tif (res?.result === 'success' && res?.data)\n\t\t\tsetInfo(res.data);\n\n\t\tsetLoading(false);\n\t}, [reference, userId]);\n\n\tconst closeDialog = () => {\n\t\tsetOpen(false);\n\t\tonClose();\n\t};\n\n\tuseEffect(() => {\n\t\tif (reference && userId) {\n\t\t\tsetOpen(true);\n\t\t\tfetchInfo();\n\t\t}\n\t}, [reference, userId, fetchInfo]);\n\n\treturn (\n\t\t\n\t\t\tTransaction Information\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tloading ?\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t: (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tAddress: \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{info?.Address}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransaction: \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{info?.Transaction}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default UserDisbursementInfoDialog;","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport moment from 'moment/moment';\nimport { useTranslation } from 'react-i18next';\nimport Button from '@material-ui/core/Button';\nimport SearchIcon from '@material-ui/icons/Search';\nimport {useUserWalletHistoryList} from '../../../hooks/useUserWallet';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport Table from '../../core/data/table/Table';\nimport UserDisbursementInfoDialog from './UserDisbursementInfoDialog';\n\nconst UserWalletHistoryTable = ({ walletId, userId, flat = false, title = null }) => {\n\tconst { t } = useTranslation();\n\tconst [initialFilters] = useState({ _admin_as: userId, sort: { 'Date':'DESC' } });\n\tconst [list, fetch, loading] = useUserWalletHistoryList(walletId);\n\tconst [selectedRef, setSelectedRef] = useState(null);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{w => moment(parseInt(w.Date.unixms)).format('LLL')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{w => w.Value.display}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{w => w.Balance.display}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{w => (\n\t\t\t\t\t\t setSelectedRef(w.Reference)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{w.Reference_Type && w.Reference_Type === 'Crypto_Disbursement' && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t{selectedRef && (\n\t\t\t\t setSelectedRef(null)}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default UserWalletHistoryTable;\n\nUserWalletHistoryTable.propTypes = {\n\tflat: PropTypes.bool,\n\ttitle: PropTypes.string,\n\twalletId: PropTypes.string.isRequired,\n\tuserId: PropTypes.string.isRequired,\n\trealmId: PropTypes.string.isRequired\n};\n","import React from 'react';\nimport {useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport Grid from '@material-ui/core/Grid';\nimport {Helmet} from 'react-helmet';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport Paper from '@material-ui/core/Paper';\n\nimport {useIndividualUser} from '../../hooks/useRealmUsers';\nimport {useUserWalletWithParams} from \"../../hooks/useUserWallet\";\nimport EditWallet from \"../../components/kakari/UserWallet/EditWallet\";\nimport Toolbar from \"../../components/core/typography/Toolbar\";\nimport UserWalletHistoryTable from \"../../components/kakari/UserWallet/UserWalletHistoryTable\";\n\nconst Wallet = () => {\n\tconst {t} = useTranslation();\n\tconst [wallet, refresh] = useUserWalletWithParams();\n\tconst [user] = useIndividualUser()\n\tconst {realmId} = useParams();\n\n\tif (!wallet || !user) return ;\n\tif (!wallet.data || !user.data) return ;\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('user_wallet_edit') + \"-\" + t('user_display_name', {user: user.data.Profile.Display_Name})}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('user_display_name', {user: user.data.Profile.Display_Name})}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default Wallet;","import React, { useState } from 'react';\nimport {useHistory, useParams} from 'react-router-dom';\nimport {useTranslation}\t from 'react-i18next';\n\nimport Helmet from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport KycTable from \"../../components/kakari/Kyc/KycTable\";\nimport {Grid} from \"@material-ui/core\";\nimport Flags from \"../../components/core/input/Flags\";\nimport Button from \"../../components/core/input/Button\";\nimport {PlayArrow} from \"@material-ui/icons\";\nimport {useKycFetchNext} from \"../../hooks/useKyc\";\n\nconst Kycs = () => {\n\tconst { realmId } = useParams();\n\tconst { t } = useTranslation();\n\tconst [filters, setFilters] = useState({Realm__ : realmId, Status:{'$in':['reviewing']}});\n\tconst [fetchNext, fetchingNext] = useKycFetchNext(realmId)\n\tconst history = useHistory();\n\n\n\tconst goNext = () => {\n\t\tfetchNext().then(d => {\n\t\t\thistory.push(`/realm/${d.Realm__}/User/${d.User__}/Kyc/${d.User_Kyc__}`)\n\t\t})\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('kyc_reviewing')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t setFilters(prevState => {\n\t\t\t\t\t\t\tprevState.Status.$in = v\n\t\t\t\t\t\t\treturn {...prevState}\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tflags={['pending', 'reviewing', 'rejected', 'valid', 'expired']}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tloading={fetchingNext}\n\t\t\t\t\t\t\tdisabled={fetchingNext}\n\t\t\t\t\t\t\tonClick={() => goNext()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('kyc_fetch_next')}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Kycs;","import React from 'react';\nimport {Grid} from \"@material-ui/core\";\nimport ReactPlayer from \"react-player\";\n\nconst KycFile = ({file}) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{file.Mime?.includes('video') && }\n\t\t\t\t{file.Mime?.includes('image') && {file.Filename}}\n\t\t\t\t{file.Mime?.includes('pdf') && \n\t\t\t\t\t

    Alternative text - include a link to the PDF!

    \n\t\t\t\t
    }\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default KycFile;","import React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport Table from '../../core/data/table/Table';\nimport moment from 'moment';\nimport TableDefinition from '../../core/data/table/TableDefinition';\nimport NotFound from './../../core/utils/NotFound/NotFound';\nimport Forbidden from './../../core/utils/Forbidden/Forbidden';\nimport { useUserKycFile} from \"../../../hooks/useKyc\";\nimport {Grid} from \"@material-ui/core\";\nimport Typography from \"@material-ui/core/Typography\";\nimport KycFile from \"./KycFile\";\n\nconst KycFileTable = ({kycId, initialFilters, flat = false, title = null}) => {\n\tconst {t} = useTranslation();\n\tconst [firstLoad, setFirstLoad] = useState(true);\n\tconst [kycs, fetch, loading] = useUserKycFile(kycId);\n\tconst [selected, setSelected] = useState(-1)\n\n\tuseEffect(() => {\n\t\tif (!firstLoad)\n\t\t\tfetch(initialFilters ?? {});\n\t}, [initialFilters]); // eslint-disable-line\n\n\tuseEffect(() => {\n\t\tsetFirstLoad(false);\n\t}, []); // eslint-disable-line\n\n\n\tuseEffect(() => {\n\t\tif (kycs?.data && kycs?.data.length > 0) {\n\t\t\tsetSelected(0)\n\t\t}\n\t}, [kycs, setSelected])\n\n\n\tif (kycs && kycs.error) {\n\t\tswitch (kycs.error.code) {\n\t\t\tcase 403:\n\t\t\t\treturn ;\n\t\t\tdefault:\n\t\t\t\treturn ;\n\t\t}\n\t} else\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetSelected(idx)\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{w => w.Created == null ? \"N/A\" : moment(parseInt(w.Created.unixms)).format('LLL')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{(selected === -1 || !kycs || !kycs.data) && {t('no_selected_kyc_file')}}\n\t\t\t\t\t{(selected !== -1 && !!kycs && !!kycs.data && )}\n\t\t\t\t\n\t\t\t\n\n\t\t);\n};\n\nexport default KycFileTable;\n","import React, {useState} from 'react';\nimport Grid from \"@material-ui/core/Grid\";\n\nimport CardContent from \"@material-ui/core/CardContent\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Skeleton from \"@material-ui/lab/Skeleton\";\nimport {Card} from \"@material-ui/core\";\nimport {useTranslation} from \"react-i18next\";\nimport moment from \"moment/moment\";\nimport {\n\tuseKycFetchNext,\n\tuseUserKycApprove,\n\tuseUserKycFileDownload,\n\tuseUserKycReject,\n\tuseUserKycSoftReject\n} from \"../../../hooks/useKyc\";\nimport CachedIcon from \"@material-ui/icons/Cached\";\nimport ThumbUp from \"@material-ui/icons/ThumbUp\";\nimport Block from \"@material-ui/icons/Block\";\nimport Pause from \"@material-ui/icons/Pause\";\nimport Button from \"../../core/input/Button\";\nimport {Link} from \"react-router-dom\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport TextField from \"@material-ui/core/TextField\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport {rest} from \"@karpeleslab/klbfw\";\nimport {PlayArrow} from \"@material-ui/icons\";\n\nconst KycInfo = ({kyc, setKyc}) => {\n\tconst {t} = useTranslation();\n\n\tconst [download, downloading] = useUserKycFileDownload(kyc.User_Kyc__)\n\tconst [approve, approving] = useUserKycApprove(kyc.User_Kyc__)\n\tconst [softReject, softRejecting] = useUserKycSoftReject(kyc.User_Kyc__)\n\tconst [reject, rejecting] = useUserKycReject(kyc.User_Kyc__)\n\tconst [showSoftReject, setShowSoftReject] = useState(false)\n\tconst [showHardReject, setShowHardReject] = useState(false)\n\tconst [fetchNext, fetchingNext] = useKycFetchNext(kyc.Realm__)\n\tconst [comment, setComment] = useState('')\n\n\tlet birthDate = 'N/A';\n\tif (kyc && kyc.Birth_Date && kyc.Birth_Date !== '0000-00-00')\n\t\tbirthDate = kyc.Birth_Date;\n\n\tlet initDate = 'N/A';\n\tif (kyc && kyc.IdCheck_Initiated && kyc.IdCheck_Initiated !== '0000-00-00')\n\t\tinitDate = moment(kyc.IdCheck_Initiated).format('LLL');\n\n\tconst kycUpdateCheck = (nextToExecute) => {\n\t\trest(`User/Kyc/${kyc.User_Kyc__}`,'GET', {}).then((d) => {\n\t\t\tif(d.data.Status !== kyc.Status) {\n\t\t\t\talert('Kyc status changed in the meantime to '+kyc.Status)\n\t\t\t\tsetKyc(kyc)\n\t\t\t}else {\n\t\t\t\tnextToExecute().then(() => {goNext()})\n\t\t\t}\n\t\t})\n\t}\n\n\tconst goNext = () => {\n\t\tfetchNext().then(d => {\n\t\t\twindow.location = `/realm/${d.Realm__}/User/${d.User__}/Kyc/${d.User_Kyc__}`\n\t\t})\n\t}\n\n\n\treturn (\n\t\t\n\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('kycs_firstname')}:\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{(!kyc) && }\n\t\t\t\t\t\t\t\t\t\t\t\t{!!kyc && kyc.First_Name}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('kycs_lastname')}:\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{(!kyc) && }\n\t\t\t\t\t\t\t\t\t\t\t\t{!!kyc && kyc.Last_Name}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('kycs_birthdate')}:\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{(!kyc) && }\n\t\t\t\t\t\t\t\t\t\t\t\t{!!kyc && birthDate}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\n\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('kycs_session_initiated_date')}:\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{(!kyc) && }\n\t\t\t\t\t\t\t\t\t\t\t\t{!!kyc && initDate}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('kycs_status')}:\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{(!kyc) && }\n\t\t\t\t\t\t\t\t\t\t\t\t{!!kyc && kyc.Status}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{kyc.Status === \"reviewing\" && \n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tloading={softRejecting}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={rejecting || approving || softRejecting}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => setShowSoftReject(true)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{t('kyc_soft_reject')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t{kyc.Status === \"reviewing\" && \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tloading={approving}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={rejecting || approving || softRejecting}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => kycUpdateCheck(()=>approve('low').then((d) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetKyc(d)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}))}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t('kyc_approve_low')}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tloading={approving}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={rejecting || approving || softRejecting}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => kycUpdateCheck(()=>approve('medium').then((d) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetKyc(d)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}))}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t('kyc_approve_medium')}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tloading={approving}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={rejecting || approving || softRejecting}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => kycUpdateCheck(()=>approve('high').then((d) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetKyc(d)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}))}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t('kyc_approve_high')}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{kyc.Status === \"reviewing\" && \n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tloading={rejecting}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={rejecting || approving || softRejecting}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => setShowHardReject(true)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{t('kyc_hard_reject')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tloading={downloading}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={rejecting || approving || downloading || softRejecting}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => download().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{t('kyc_redownload_file')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tloading={fetchingNext}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={rejecting || approving || softRejecting || fetchingNext}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => goNext()}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{t('kyc_fetch_next')}\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('soft_reject_comment')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t setComment(e.target.value)}\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tmultiline={true}\n\t\t\t\t\t\trows={5}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t setShowSoftReject(false)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('back_btn')}\n\t\t\t\t\t\n\t\t\t\t\t kycUpdateCheck(()=>softReject(comment).then((d) => {\n\t\t\t\t\t\t\tsetShowSoftReject(false)\n\t\t\t\t\t\t\tsetComment(\"\")\n\t\t\t\t\t\t\tsetKyc(d)\n\t\t\t\t\t\t}))}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('kyc_soft_reject')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('hard_reject_comment')}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t setComment(e.target.value)}\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\tmultiline={true}\n\t\t\t\t\t\trows={5}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t setShowHardReject(false)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('back_btn')}\n\t\t\t\t\t\n\t\t\t\t\t kycUpdateCheck(()=>reject(comment).then((d) => {\n\t\t\t\t\t\t\tsetShowHardReject(false)\n\t\t\t\t\t\t\tsetComment(\"\")\n\t\t\t\t\t\t\tsetKyc(d)\n\t\t\t\t\t\t}))}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('kyc_hard_reject')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default KycInfo;","import React, {useEffect, useState} from 'react';\nimport Grid from \"@material-ui/core/Grid\";\nimport {useTranslation} from \"react-i18next\";\nimport {isObject} from \"../../../utils/misc\";\nimport Accordion from \"@material-ui/core/Accordion\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Chip from \"@material-ui/core/Chip\";\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport Toolbar from \"../../core/typography/Toolbar\";\nimport Button from \"@material-ui/core/Button\";\n\nconst useStyles = makeStyles((theme) => ({\n\theading: {\n\t\tfontSize: theme.typography.pxToRem(15),\n\t\tflexBasis: '33.33%',\n\t\tflexShrink: 0,\n\t},\n\tsecondaryHeading: {\n\t\tfontSize: theme.typography.pxToRem(15),\n\t\tcolor: theme.palette.text.secondary,\n\t},\n\tclear:{\n\t\tcolor:\"white\",\n\t\tbackground:\"green\"\n\t},\n\tconsider:{\n\t\tcolor:\"white\",\n\t\tbackground:\"orange\"\n\t},\n}));\n\nconst OnFidoReport = ({onFidoData}) => {\n\tconst classes = useStyles();\n\n\tconst { t } = useTranslation();\n\n\tconst [expanded, setExpanded] = useState(false);\n\n\tconst [workflowRunId, setWorkflowRunId] = useState(null)\n\n\tconst handleChange = (panel) => (event, isExpanded) => {\n\t\tsetExpanded(isExpanded ? panel : false);\n\t};\n\n\tuseEffect(() => {\n\t\tonFidoData.forEach((d) => {\n\t\t\tif(d.id === \"start\") {\n\n\t\t\t\tsetWorkflowRunId(d.workflow_run_id);\n\t\t\t}\n\t\t})\n\n\t}, [setWorkflowRunId, onFidoData]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{workflowRunId && \n\t\t\t\t\n\t\t\t\t\tSee on OnFido\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t\t{onFidoData.map(d => {\n\t\t\t\t\tif (!d || !d.output || !isObject(d.output) || d.output.result === undefined) return <>\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-controls={`${d.task_def_id}-content`}\n\t\t\t\t\t\t\t\tid-controls={`${d.task_def_id}-header`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(d.task_def_id)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t\n\n\t\t\n\t);\n};\n\nexport default OnFidoReport;","import React, {useEffect, useState} from 'react';\nimport { useParams} from 'react-router-dom';\nimport {useTranslation}\t from 'react-i18next';\n\nimport Helmet from 'react-helmet';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport {Grid} from \"@material-ui/core\";\nimport {useKycWithParams} from \"../../hooks/useKyc\";\nimport PageLoader from \"../../components/layout/Loader/PageLoader\";\nimport NotFound from \"../../components/core/utils/NotFound/NotFound\";\nimport Toolbar from \"../../components/core/typography/Toolbar\";\nimport KycFileTable from \"../../components/kakari/Kyc/KycFileTable\";\nimport KycInfo from \"../../components/kakari/Kyc/KycInfo\";\nimport KycTable from \"../../components/kakari/Kyc/KycTable\";\nimport Loader from \"../../components/layout/Loader/Loader\";\nimport OnFidoReport from \"../../components/kakari/Kyc/OnFidoReport\";\n\nconst Kyc = () => {\n\tconst { kycId } = useParams();\n\tconst [kyc, setKyc] = useKycWithParams();\n\tconst { t } = useTranslation();\n\tconst [duplicateFilter, setDuplicatedFilter] = useState()\n\n\tuseEffect(()=> {\n\t\tif(!kyc || !kyc.data) return\n\t\tsetDuplicatedFilter({User_Kyc__:{$not:kycId},Realm__:kyc.data.Realm__, Birth_Date:kyc.data.Birth_Date,Last_Name:{$prefix:kyc.data.Last_Name.substring(0, 1)}})\n\t},[setDuplicatedFilter, kyc, kycId])\n\n\n\tif (!kyc) return ;\n\tif (!kyc.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('kyc_view')} }\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{!!kyc.data.Provider_Kyc_Info && \n\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{!!duplicateFilter && }\n\t\t\t\t\t\t\t{!duplicateFilter && }\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Kyc;","import PropTypes from 'prop-types';\nimport React, {useEffect} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\nimport EnableSelector from '../../core/input/EnableSelector';\n\nconst SegmentForm = ({data, setData, setIsValid, disabled = false}) => {\n\tconst {t} = useTranslation();\n\n\tconst createChangeHandler = (key, isEvent = true) => e => {\n\t\tsetData({...data, [key]: isEvent ? e.target.value : e});\n\t};\n\n\tconst getValue = (key, def = '') => {\n\t\tif (!(key in (data ?? {}))) return def;\n\t\treturn data[key];\n\t};\n\n\tuseEffect(() => {\n\t\tif (!('Name' in (data ?? {})) || !getValue('Name').trim()) setIsValid(false);\n\t\telse if (!('Enabled' in (data ?? {})) || !getValue('Enabled').trim()) setIsValid(false);\n\t\telse setIsValid(true);\n\t}, [data, setIsValid]); // eslint-disable-line\n\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default SegmentForm;\n\nSegmentForm.propTypes = {\n\tdata: PropTypes.object.isRequired,\n\tdisabled: PropTypes.bool,\n\tsetData: PropTypes.func.isRequired,\n\tsetIsValid: PropTypes.func.isRequired\n};\n","import PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Grid from '@material-ui/core/Grid';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport SegmentForm from './SegmentForm';\nimport Button from '../../core/input/Button';\nimport {useRealmCreateSegment} from \"../../../hooks/useRealmSegment\";\nimport {tokenize} from \"../../../utils/misc\";\n\nconst CreateSegmentDialog = ({realm, open, setOpen, onCreated}) => {\n\tconst {t} = useTranslation();\n\n\tconst [isValid, setIsValid] = useState(false);\n\tconst [data, setData] = useState({'Enabled': 'N'});\n\tconst [create, creating] = useRealmCreateSegment(realm);\n\tconst handleClose = () => setOpen(false);\n\n\tconst handleCreate = () => {\n\t\tcreate(tokenize(data['Name']), data['Name'], data['Enabled'])\n\t\t\t.then(email => {\n\t\t\t\tsetOpen(false);\n\t\t\t\tonCreated()\n\t\t\t});\n\t};\n\n\treturn (\n\t\t {\n\t\t\t\tsetData({'Enabled': 'N'});\n\t\t\t}}\n\t\t>\n\t\t\t{t('realm_segment_create')}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CreateSegmentDialog;\n\nCreateSegmentDialog.propTypes = {\n\topen: PropTypes.bool.isRequired,\n\trealm: PropTypes.object.isRequired,\n\tsetOpen: PropTypes.func.isRequired,\n\tonCreated: PropTypes.func.isRequired\n};\n","import React, {useState} from 'react';\nimport {useParams} from 'react-router-dom';\nimport {useTranslation} from 'react-i18next';\nimport {Helmet} from 'react-helmet';\n\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport SegmentTable from \"../../components/kakari/Segment/SegmentTable\";\nimport {Grid} from \"@material-ui/core\";\nimport Toolbar from \"../../components/core/typography/Toolbar\";\nimport AccessCheck from \"../../components/core/utils/AccessCheck\";\nimport Button from \"../../components/core/input/Button\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport Paper from \"@material-ui/core/Paper\";\nimport {useRealmWithParams} from \"../../hooks/useRealm\";\nimport PageLoader from \"../../components/layout/Loader/PageLoader\";\nimport NotFound from \"../../components/core/utils/NotFound/NotFound\";\nimport CreateSegmentDialog from \"../../components/kakari/Segment/CreateSegmentDialog\";\nimport uuid from \"../../utils/uuid\";\n\nconst Segments = () => {\n\tconst {realmId} = useParams();\n\tconst [realm] = useRealmWithParams();\n\tconst {t} = useTranslation();\n\tconst [key, setKey] = useState(uuid())\n\n\tconst [showCreate, setShowCreate] = useState(false);\n\n\n\tif (!realm) return ;\n\tif (!realm.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\t{t('realm_segments')}\n\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setShowCreate(true)}\n\t\t\t\t\t\t\t\tendIcon={}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t('create_btn')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t {\n\t\t\t\tsetKey(uuid()) // will refresh\n\t\t\t}}/>\n\n\t\t\n\t);\n};\n\nexport default Segments;\n","import PropTypes from 'prop-types';\nimport React, {useEffect, useState} from 'react';\nimport {Grid} from '@material-ui/core';\nimport {deepCopy} from '../../../utils/misc';\nimport Button from '../../core/input/Button';\nimport {useTranslation} from 'react-i18next';\nimport SegmentForm from \"./SegmentForm\";\nimport {useRealmUpdateSegment} from \"../../../hooks/useRealmSegment\";\n\nconst SegmentUpdateForm = ({segment, setSegment, disabled = false}) => {\n\tconst {t} = useTranslation();\n\n\tconst [data, setData] = useState(deepCopy(segment));\n\tconst [isValid, setIsValid] = useState(false);\n\tconst [saveEnabled, setSaveEnabled] = useState(false);\n\tconst [update, updating] = useRealmUpdateSegment(segment);\n\n\tuseEffect(() => {\n\t\tsetData(deepCopy(segment));\n\t}, [setData, segment]);\n\n\tuseEffect(() => {\n\t\tif (!isValid) setSaveEnabled(false);\n\t\telse if (\n\t\t\t!isValid ||\n\t\t\tdata.Name !== segment.Name ||\n\t\t\tdata.Enabled !== segment.Enabled\n\n\t\t)\n\t\t\tsetSaveEnabled(true);\n\t\telse\n\t\t\tsetSaveEnabled(false);\n\t}, [data, segment, isValid, setSaveEnabled]);\n\n\tconst handleUpdate = () => {\n\t\tupdate(data)\n\t\t\t.then(segment => setSegment(segment));\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t{t('save_btn')}\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default SegmentUpdateForm;\n\nSegmentUpdateForm.propTypes = {\n\tdisabled: PropTypes.bool,\n\tsegment: PropTypes.object.isRequired,\n\tsetSegment: PropTypes.func.isRequired\n};\n","import React from 'react';\nimport {useRealmWithParams} from '../../hooks/useRealm';\nimport {useAccess} from '../../hooks/useAccess';\nimport {useTranslation} from 'react-i18next';\nimport PageLoader from '../../components/layout/Loader/PageLoader';\nimport NotFound from '../../components/core/utils/NotFound/NotFound';\nimport PageContainer from '../../components/layout/Container/PageContainer';\nimport Helmet from 'react-helmet';\nimport PageTitle from '../../components/core/typography/PageTitle';\nimport {Grid} from '@material-ui/core';\nimport Toolbar from '../../components/core/typography/Toolbar';\nimport {useRealmSegmentWithParams} from \"../../hooks/useRealmSegment\";\nimport SegmentUpdateForm from \"../../components/kakari/Segment/SegmentUpdateForm\";\n\nconst RealmSegment = () => {\n\tconst [segment, refresh] = useRealmSegmentWithParams();\n\tconst [realm] = useRealmWithParams();\n\tconst canEdit = useAccess(realm, 'W');\n\tconst {t} = useTranslation();\n\n\tif (!segment || !realm) return ;\n\tif (!segment.data || !realm.data) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('realm_segment_title', {key: segment.data.Name})}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n\nexport default RealmSegment;\n","import React from 'react';\nimport { Switch, useLocation } from 'react-router-dom';\nimport RouteTransition from '../core/utils/RouteTransition/RouteTransition';\nimport { Home, Login } from '../../pages';\nimport Affiliate from '../../pages/Affiliate/Affiliate';\nimport Catalog from '../../pages/Catalog/Catalog';\nimport Coupons from '../../pages/Coupons/Coupons';\nimport CreateCoupon from '../../pages/CreateCoupon/CreateCoupon';\nimport Product from '../../pages/Product/Product';\nimport Realm from '../../pages/Realm/Realm';\nimport ReinstallShell from '../../pages/ReinstallShell/ReinstallShell';\nimport Users from '../../pages/Users/Users';\nimport Orders from '../../pages/Orders/Orders';\nimport Order from '../../pages/Order/Order';\nimport OrdersReport from '../../pages/OrderReport/OrdersReport';\nimport Products from '../../pages/Products/Products';\nimport Profile from '../../pages/Profile/Profile';\nimport RealmSettings from '../../pages/RealmSettings/RealmSettings';\nimport Site from '../../pages/Site/Site';\nimport ShellSnapshots from '../../pages/ShellSnapshots/ShellSnapshots';\nimport ContactUser from '../../pages/ContactUser/ContactUser';\nimport WaitingList from '../../pages/WaitingList/WaitingList';\nimport User from '../../pages/User/User';\nimport Invoices from '../../pages/Invoices/Invoices';\nimport Invoice from '../../pages/Invoice/Invoice';\nimport CannedResponses from '../../pages/CannedResponses/CannedResponses';\nimport EditCannedResponse from '../../pages/EditCannedResponse/EditCannedResponse';\nimport ShellHosts from '../../pages/ShellHosts/ShellHosts';\nimport ShellDatacenters from '../../pages/ShellDatacenters/ShellDatacenters';\nimport HostMetrics from '../../pages/ShellHosts/HostMetrics';\nimport AffiliateList from '../../pages/AffiliateList/AffiliateList';\nimport Bank from '../../pages/Bank/Bank';\nimport HostMetricsCpus from '../../pages/ShellHosts/HostMetricsCpus';\nimport ShellLogs from '../../pages/ShellLogs/ShellLogs';\nimport Softwares from '../../pages/Softwares/Softwares';\nimport Software from '../../pages/Software/Software';\nimport AddSoftware from '../../pages/AddSoftware/AddSoftware';\nimport RealmEmails from '../../pages/RealmEmails/RealmEmails';\nimport RealmEmail from '../../pages/RealmEmails/RealmEmail';\nimport Warnings from '../../pages/Warnings/Warnings';\nimport EditWarning from '../../pages/EditWarning/EditWarning';\nimport ShellOSImageQA from '../../pages/ShellOSImageQA/ShellOSImageQA';\nimport CatalogStats from '../../pages/CatalogStats/CatalogStats';\nimport Releases from '../../pages/PXL/Releases';\nimport ReviewRelease from '../../pages/PXL/ReviewRelease';\nimport SiteTemplateList from '../../pages/SiteTemplate/SiteTemplateList';\nimport SiteTemplateEdit from '../../pages/SiteTemplate/SiteTemplateEdit';\nimport BillPayUsers from '../../pages/BillPayUsers/BillPayUsers';\nimport Wallet from \"../../pages/Wallet/Wallet\";\nimport Kycs from \"../../pages/Kyc/Kycs\";\nimport Kyc from \"../../pages/Kyc/Kyc\";\nimport Segments from \"../../pages/Segments/Segments\";\nimport Segment from \"../../pages/Segments/Segment\";\n\n\nconst Routes = () => {\n\tconst location = useLocation();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\n\nexport default Routes;\n","import React, {useContext} from 'react';\nimport {CSSTransition, SwitchTransition} from 'react-transition-group';\nimport Loader from './../layout/Loader/Loader';\nimport {UserContext} from '../../context/UserContext';\nimport Routes from './Routes';\n\nconst RouteController = () => {\n\tconst [user] = useContext(UserContext);\n\n\treturn (\n\t\t\n\t\t\t node.addEventListener('transitionend', done, false)}\n\t\t\t\tclassNames=\"u-transition--vertical\"\n\t\t\t>\n\t\t\t\t{(!user || !user.loading) ? : (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default RouteController;\n","import React, {useContext} from 'react';\n\nimport Drawer from './Drawer/Drawer';\nimport Helmet from 'react-helmet';\nimport RouteController from '../RouteController/RouteController';\n\nimport {UserContext} from '../../context/UserContext';\nimport {MenuContext} from '../../context/MenuContext';\n\nimport './Layout.scss';\n\nconst Layout = () => {\n\tconst [user] = useContext(UserContext);\n\tconst [menu] = useContext(MenuContext);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t{ /* https://devhints.io/html-meta */}\n\t\t\t\n\t\t\t{user && user.loggedIn ? : ''}\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default Layout;","import React from 'react';\nimport MenuContextContainer from './context/MenuContext';\nimport UserContainer from './context/UserContext';\nimport SnackbarContainer from './context/SnackbarContext';\n\nimport ConfirmBeforeLeaveDialog from './components/core/utils/ConfirmBeforeLeave/ConfirmBeforeLeaveDialog';\nimport {Helmet} from 'react-helmet';\nimport ScrollToTop from './components/core/utils/ScrollToTop/ScrollToTop';\nimport Snackbar from './components/layout/Snackbar/Snackbar';\nimport MuiTheme from './components/core/MuiTheme/MuiTheme';\nimport Layout from './components/layout/Layout';\n\nfunction App() {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default App;\n","import React \t\t\t\t from 'react';\nimport App \t\t\t\t\t from './App';\n\nimport i18n \t\t\t\t from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport { getLocale, rest, upload } \tfrom '@karpeleslab/klbfw';\nimport { Backend } \t\t\t from '@karpeleslab/i18next-klb-backend';\nimport { run } \t\t\t\t from '@karpeleslab/react-klbfw-hooks';\n\nimport './assets/styles/main.scss';\n\nlet i18nOpt = {\n\tlng\t\t\t\t: getLocale(),\n\tinitImmediate\t: false,\n\tload\t\t\t: 'currentOnly',\n\tinterpolation\t: { escapeValue\t: false },\n\treact\t\t\t: { useSuspense\t: false }\n}; \n\n// import { useTranslation } from 'react-i18next';\n// const { t } = useTranslation();\n\nglobal.rest = rest;\nglobal.upload = upload;\n\nrun(\n\t,\n\t[i18n.use(Backend).use(initReactI18next).init(i18nOpt)]\t\n); \n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nif (typeof window !== 'undefined') {\n\tconst serviceWorker = require('./serviceWorker');\n\tserviceWorker.unregister();\n\t\n\t// prevent tap to zoom and pinch to zoom on Safari iOS 12+ because it doesn't take the meta into account\n\tdocument.addEventListener('touchmove', event => { \n\t\tif (typeof event.scale !== 'undefined' && event.scale !== 1) \n\t\t\tevent.preventDefault();\n\t}, { capture: false, passive: false });\n\n\tlet lastTouchEnd = 0;\n\tdocument.addEventListener('touchend', event => {\n\t\tconst now = (new Date()).getTime();\n\t\tif (now - lastTouchEnd <= 300)\n\t\t\tevent.preventDefault();\n\t\tlastTouchEnd = now;\n\t}, { capture: false, passive: false });\n}\n"],"sourceRoot":""}