{"version":3,"sources":["state/dataset/datasetActions.ts","components/settings-dialog/index.jsx","modules lazy /^/.*/config/.js$/ groupOptions: {} namespace object","modules lazy /^/.*/state/reducer$/ groupOptions: {} namespace object","components/hero/index.jsx","components/custom-icons/MetadataIcon.jsx","components/catalog-metadata-button/index.jsx","components/dataset-attachments/getDownloadButtonStyle.js","components/dataset-attachments/index.jsx","components/catalog-info-button/index.jsx","components/custom-link/index.jsx","components/cards-grid/index.jsx","components/page/index.jsx","components/user-errors/index.jsx","components/user-login-dialog/user-recover-password-form/index.jsx","components/user-login-dialog/index.jsx","components/settings-select/users-settings-form/user-settings-form/index.jsx","components/user-select/user-change-password-form/index.jsx","components/user-select/edit-user-form/index.jsx","utils/dashboards.js","state/otherConfig/otherConfigActions.ts","links.js","components/settings-select/user-views-settings-form/index.jsx","components/i18n-delayed-text-field/index.jsx","components/html-editor/index.jsx","components/i18n-html-editor/index.jsx","constants/getDashboardDynamicFilterLabelTranslations.js","components/dashboard-builder/index.jsx","middlewares/fetch-dashboard-dataset-async-handler/actions.js","state/dashboard/dashboardReducer.ts","components/dimension-attribute-list/index.jsx","components/dataset-filter-attribute-icon/index.jsx","components/dataset-filters/index.jsx","utils/validator.js","utils/tree.js","components/table/utils.js","components/table/Scrollbars.jsx","components/table/ObservationFilterForm.jsx","components/table/DimensionFilterForm.jsx","components/table/index.jsx","state/maps/mapsActions.ts","constants/getNutsLevelTranslations.js","components/map/utils.js","components/custom-select/index.jsx","components/map/index.jsx","components/attribute-list/index.jsx","components/custom-icons/AttributeIcon.jsx","components/module-loader/ErrorBoundary.jsx","components/module-loader/index.jsx","components/module-menu-item-placeholder/index.jsx","components/export-button/index.jsx","components/dataset-static-filters/index.jsx","components/dashboard/DashboardCol.jsx","components/dashboard/DashboardRow.jsx","components/dashboard/index.jsx","components/settings-select/user-dashboards-settings-form/index.jsx","components/modules-placeholder/index.jsx","components/user-select/index.jsx","components/categories-tree/index.jsx","state/hubConfig/hubConfigActions.ts","state/spinner/spinnerActions.ts","components/file-input/index.jsx","components/dashboards-manager/index.jsx","components/info-tooltip/index.jsx","components/form-label-with-tooltip/index.jsx","components/settings-select/app-settings-form/index.jsx","state/nodesConfig/nodesConfigActions.ts","components/component-variant-loader/ErrorBoundary.jsx","components/component-variant-loader/index.jsx","components/settings-select/nodes-settings-form/node-settings-form/index.jsx","state/cache/cacheActions.ts","components/settings-select/nodes-settings-form/cache-setting-form/index.jsx","state/noteTemplatesConfig/nodeTemplatesConfigActions.ts","components/settings-select/nodes-settings-form/templates-settings-form/index.jsx","state/nodePermissionsConfig/nodePermissionsConfigActions.ts","components/settings-select/nodes-settings-form/permissions-settings-form/index.jsx","components/settings-select/nodes-settings-form/dashboards-settings-form/index.jsx","components/settings-select/nodes-settings-form/index.jsx","components/settings-select/users-settings-form/index.jsx","components/settings-select/index.jsx","components/autocomplete-search-input/index.jsx","state/search-dialog/searchDialogActions.ts","state/detailLevel/detailLevelActions.ts","components/search-dialog/index.jsx","components/app-language-select/index.jsx","components/a11y-select/index.jsx","components/app-info/index.jsx","components/detail-level-select/index.jsx","components/territory-tools/TerritoryTools.jsx","utils/constants.js","components/node-header/index.jsx","components/footer/index.jsx","components/home/index.jsx","state/hub/hubActions.ts","components/node/index.jsx","state/node/nodeActions.ts","state/catalog/catalogActions.ts","components/results/ResultTree.jsx","components/results/DatasetCard.jsx","components/results/utils.js","components/results/index.jsx","middlewares/fetch-dataset-async-handler/actions.js","middlewares/action-decorator/actionDecoratorMiddlewareFactory.js","utils/catalog.ts","model/LocalCategoryProvider.ts","state/dataset/datasetReducer.ts","constants/getTimingsLabelTranslation.js","components/data-viewer/Timings.jsx","components/data-viewer/ViewBuilder.jsx","components/data-viewer/single-viewer/TemplateBuilder.jsx","components/data-viewer/multi-viewer/TemplateBuilder.jsx","components/query/index.jsx","components/custom-icons/CleanIcon.jsx","components/data-viewer/DatasetViewerTools.jsx","components/data-viewer/single-viewer/Header.jsx","components/data-viewer/multi-viewer/Header.jsx","components/data-viewer/Header.jsx","components/enhanced-tree/index.jsx","components/criteria/TimePeriod.jsx","components/criteria/index.jsx","components/layout-section/index.jsx","components/error-snackbar/ErrorSnackbar.jsx","components/table-layout/index.jsx","components/chart-layout/index.jsx","components/data-viewer/single-viewer/Sidebar.jsx","components/territory-selectors/DetailLevelSelector.jsx","components/territory-selectors/MapPreview.jsx","components/territory-selectors/TerritorySelector.jsx","components/custom-icons/FIlterAltIcon.jsx","components/custom-icons/FlagIcon.jsx","components/custom-icons/CalculateIcon.jsx","components/custom-icons/FileDownloadIcon.jsx","components/indicator-dialogs/create/Preview.jsx","components/search-input/index.jsx","components/indicator-dialogs/create/validator.js","components/indicator-dialogs/create/Keypad.jsx","components/indicator-dialogs/create/constants.js","components/indicator-dialogs/create/Calculator.jsx","components/indicator-dialogs/create/VariationAndGrowthRates.jsx","components/indicator-dialogs/create/utils.js","components/indicator-dialogs/create/index.jsx","components/indicator-dialogs/list/index.jsx","components/additional-datasets-dialogs/create/index.jsx","components/additional-datasets-dialogs/list/index.jsx","components/data-viewer/multi-viewer/Sidebar.jsx","components/data-viewer/Sidebar.jsx","components/font-size-selector/index.jsx","components/label-format-selector/index.jsx","components/variation-selector/index.jsx","components/chart-settings-forms/General.jsx","components/temporal-dim-order-selector/index.jsx","components/map-settings-form/Settings.jsx","components/data-viewer/single-viewer/Viewer.jsx","components/chart-settings-forms/Layout.jsx","components/dataset-merged-filters/index.jsx","components/data-viewer/multi-viewer/Viewer.jsx","components/data-viewer/Viewer.jsx","components/data-viewer/single-viewer/Footer.jsx","components/data-viewer/Footer.jsx","components/data-viewer/index.jsx","components/data/index.jsx","domains/DatasetDomain.jsx","components/dashboard-filters/index.jsx","state/pending-request/pendingRequestActions.ts","components/dashboards/index.jsx","domains/DashboardsDomain.jsx","components/categories-lists/index.jsx","components/categories/index.jsx","components/module-page/index.jsx","domains/NodeDomain.jsx","state/app/appActions.ts","domains/MultiLanguageDomain.jsx","utils/defaultTheme.js","components/not-implemented-snackbar/NotImplementedSnackbar.jsx","state/delete-conflict-modal/deleteConflictModalActions.ts","components/delete-conflict-modal/index.jsx","components/user-set-password-dialog/user-set-password-form/index.jsx","components/user-set-password-dialog/index.jsx","components/spinner/Spinner.jsx","components/error-boundary/index.jsx","components/with-custom-theme/index.jsx","domains/A11yDomain.jsx","components/external-login/index.jsx","components/error/index.jsx","domains/HubDomain.jsx","App.jsx","state/hub/hubReducer.ts","state/node/nodeReducer.ts","state/catalog/catalogReducer.ts","state/app/appReducer.ts","state/hubConfig/hubConfigReducer.ts","state/spinner/spinnerReducer.ts","state/config/configReducer.ts","state/nodesConfig/nodesConfigReducer.ts","state/cache/cacheReducer.ts","state/otherConfig/otherConfigReducer.ts","state/noteTemplatesConfig/nodeTemplatesConfigReducer.ts","state/usersConfig/usersConfigReducer.ts","state/nodePermissionsConfig/nodePermissionsConfigReducer.ts","state/delete-conflict-modal/deleteConflictModalReducer.ts","state/appConfig/appConfigReducer.ts","state/dashboardConfig/dashboardConfigReducer.ts","state/pending-request/pendingRequestReducer.ts","state/maps/mapsReducer.ts","state/detailLevel/detailLevelReducer.ts","state/search-dialog/searchDialogReducer.ts","state/rootReducer.ts","middlewares/user/userMiddlewareFactory.js","middlewares/request/requestMiddlewareFactory.ts","middlewares/config/configMiddleware.js","middlewares/i18n-middleware/middleware.js","middlewares/request-spinner/requestSpinnerMiddlewareFactory.js","middlewares/feedback/feedbackMiddleware.js","middlewares/fetch-dataset-async-handler/middlewareFactory.js","middlewares/fetch-dashboard-dataset-async-handler/middlewareFactory.js","middlewares/a11y-middleware/middleware.js","middlewares/node/middleware.js","middlewares/detail-level-middleware/middleware.js","middlewares/action-transformer/middleware.js","init.js","index.jsx","components/sanitized-html/index.jsx","components/custom-icons/AreaIcon.jsx","components/custom-icons/RadarIcon.jsx","components/custom-icons/PolarIcon.jsx","components/custom-icons/PyramindIcon.jsx","components/data-viewer/constant.js","state/dashboard/dashboardActions.ts","utils/jsonStat.js","state/rootActions.ts","utils/viewTemplate.js","components/infinite-scroll-table/sort-buttons/index.jsx","components/infinite-scroll-table/contants.js","components/infinite-scroll-table/utils.js","components/infinite-scroll-table/pre-header/index.jsx","components/infinite-scroll-table/footer/index.jsx","components/infinite-scroll-table/filter-button/index.jsx","components/infinite-scroll-table/index.jsx","components/map/constants.js","utils/style.js","components/i18n-input-adornment-select/index.jsx","constants/getUserErrorsTranslations.js","components/chart-settings-forms/Colors.jsx","serverApi/urls.ts","components/custom-date-picker/index.jsx","components/page-section/index.jsx","components/auto-search-input/index.jsx","components/custom-dialog-title/index.jsx","middlewares/persistence/middleware.js","components/selector/index.jsx","components/export-button/ExportForm.jsx","components/settings-select/actions.js","modules/news/constants.ts","utils/download.js","utils/i18n.js","state/user/userActions.ts","utils/criteria.js","components/custom-empty/index.jsx","utils/user.ts","middlewares/file-save/middleware.js","utils/other.js","state/dataset/constants.ts","components/label-format-selector/constants.js","../ClassicEditor/webpack/universalModuleDefinition","utils/formatters.js","hocs/call/index.jsx","state/user/userReducer.ts","../vendor/ckeditor5-35.0.1/build/translations/it.js","../vendor/ckeditor5-35.0.1/build/translations/fr.js","../vendor/ckeditor5-35.0.1/build/translations/es.js","../vendor/ckeditor5-35.0.1/build/translations/pt.js","../vendor/ckeditor5-35.0.1/build/translations/de.js","components/chart/index.jsx","components/temporal-dim-order-selector/constants.js","state/usersConfig/usersConfigActions.ts","model/IHubMinimalNode.d.ts","middlewares/request/requestActions.ts","modules lazy /^/.*$/ groupOptions: {} namespace object","components/button-select/index.jsx","components-lazy lazy /^/.*$/ groupOptions: {} namespace object","components/fullscreen-dialog/index.jsx","components/custom-material-table/index.jsx","components/i18n-text-field/index.jsx"],"names":["DATASET_STRUCTURE_FETCH_ENABLE","DATASET_STRUCTURE_FETCH","DATASET_FETCH_ENABLE","DATASET_FETCH","DATASET_CRITERIA_SHOW","DATASET_CRITERIA_HIDE","DATASET_CRITERIA_ALERT_HIDE","DATASET_CRITERIA_OBS_COUNT_WARNING_HIDE","DATASET_STRUCTURE_CODELIST_FETCH","DATASET_STRUCTURE_CRITERIA_SET","DATASET_STRUCTURE_CRITERIA_RESET","DATASET_TERRITORY_SHOW","DATASET_TERRITORY_HIDE","DATASET_TERRITORY_DETAIL_LEVELS_FETCH","DATASET_TERRITORY_DETAIL_LEVEL_TREE_SET","DATASET_TERRITORY_DETAIL_LEVEL_SET","DATASET_TERRITORY_TERRITORIES_FETCH","DATASET_TERRITORY_TERRITORIES_SET","DATASET_TERRITORY_TERRITORIES_SUBMIT","DATASET_TERRITORY_LAST_YEAR_FETCH","DATASET_CACHE_INFO_FETCH","DATASET_DELETE_TEMPLATE","DATASET_CACHE_INFO_TTL_UPDATE","DATASET_STATE_BACKUP","DATASET_STATE_RESET","DATASET_VIEWER_MODE_SET","DATASET_VIEWER_SET","DATASET_VIEWER_TABLE_VISIBILITY_SET","DATASET_VIEWER_MAP_VISIBILITY_SET","DATASET_VIEWER_CHART_VISIBILITY_SET","DATASET_VIEWER_CHART_TYPE_SET","DATASET_TABLE_LAYOUT_SUBMIT","DATASET_TABLE_FILTERS_TREE_SUBMIT","DATASET_MAP_LAYOUT_SUBMIT","DATASET_CHART_LAYOUT_SUBMIT","DATASET_CHART_FILTERS_TREE_SUBMIT","DATASET_CHART_LAYOUT_TERRITORY_DIM_VALUES_SET","DATASET_LABEL_FORMAT_SET","DATASET_VARIATION_SET","DATASET_TEMPORAL_DIM_ORDER_SET","DATASET_CHART_SETTINGS_SET","DATASET_MAP_SETTINGS_SET","DATASET_DOWNLOAD_SUBMIT","DATASET_DOWNLOAD_WARNING_HIDE","DATASET_VIEW_TEMPLATE_SHOW","DATASET_VIEW_TEMPLATE_HIDE","DATASET_VIEW_TEMPLATE_SUBMIT","DATASET_VIEW_ERROR_HIDE","DATASET_UNAVAILABLE_VIEW_WARNING_HIDE","DATASET_HTML_GENERATING_TIME_SET","DATASET_SDMX_QUERY_SHOW","DATASET_SDMX_QUERY_HIDE","DATASET_SDMX_QUERY_FETCH","DATASET_INDICATOR_CREATE_VISIBILITY_SET","DATASET_INDICATOR_LIST_VISIBILITY_SET","DATASET_INDICATOR_PREVIEW_FETCH","DATASET_INDICATOR_PREVIEW_RESET","DATASET_INDICATOR_PUBLISH","DATASET_INDICATOR_DELETE","DATASET_INDICATOR_WARNING_HIDE","DATASET_INDICATOR_ARITHMETIC_MEAN_VISIBILITY_SET","DATASET_INDICATOR_ARITHMETIC_MEAN_VALUES_SET","DATASET_INDICATOR_STANDARD_DEVIATION_VISIBILITY_SET","DATASET_INDICATOR_COEFFICIENT_OF_VARIATION_VISIBILITY_SET","DATASET_ADDITIONAL_DATASET_CREATE_VISIBILITY_SET","DATASET_ADDITIONAL_DATASET_LIST_VISIBILITY_SET","DATASET_ADDITIONAL_DATASET_CATALOG_FETCH","DATASET_ADDITIONAL_DATASET_CHANGE","DATASET_ADDITIONAL_DATASET_STURCTURE_FETCH","DATASET_ADDITIONAL_DATASET_SUBMIT","DATASET_ADDITIONAL_DATASET_DELETE","DATASET_ADDITIONAL_DATASET_CRITERIA_SET","DATASET_DOWNLOAD_METADATA_SUBMIT","DATASET_STRUCTURE_CODELIST_FULL_FETCH","DATASET_STRUCTURE_CODELIST_FULL_HIDE","DATASET_SET_FULLSCREEN","ALL_FULL","ALL_PARTIAL","STEP_BY_STEP_FULL","STEP_BY_STEP_PARTIAL","STEP_BY_STEP_DYNAMIC","CRITERIA_SELECTION_MODE_STEP_BY_STEP","CRITERIA_SELECTION_MODE_ALL","CRITERIA_SELECTION_TYPE_FULL","CRITERIA_SELECTION_TYPE_PARTIAL","CRITERIA_SELECTION_TYPE_DYNAMIC","enableDatasetStructureFetch","nodeCode","categoryPath","datasetId","viewId","type","payload","fetchDatasetStructure","nodeId","isMultiViewerTheme","initRequest","getDatasetStructureUrl","RequestMethod","GET","undefined","t","onStart","enableDatasetFetch","maxObservation","fetchDataset","datasetTitle","criteria","timeDim","territoryDim","indicators","additionalDatasets","defaultLanguage","languages","indicatorsBaseUrl","url","body","baseUrl","datasets","length","getDatasetWithIndicatorsUrl","getIndicatorsDefinition","getDatasetWithMarginalUrl","getMarginalDefinition","getDatasetUrl","getCriteriaArrayFromObject","POST","title","statusCode","showDatasetCriteria","hideDatasetCriteria","hideDatasetCriteriaAlert","hideDatasetCriteriaObsCountWarning","fetchDatasetStructureCodelist","mode","dimensionId","freq","defaultLastNPeriods","preserveFiltersWithDynamic","flatCriteria","getDatasetStructureCodelistsUrl","getDatasetStructureDynamicCodelistUrl","getDatasetStructureCodelistUrl","setDatasetStructureCriteria","resetDatasetStructureCriteria","showDatasetTerritory","hideDatasetTerritory","detailLevel","territories","fetchDatasetCacheInfo","getDatasetCacheInfoUrl","updateDatasetCacheTtl","ttl","getDatasetCacheUpdateUrl","PUT","clearCacheDataset","clearDatasetCacheUrl","deleteDatasetTemplate","id","getDeleteTemplateUrl","DELETE","fetchDatasetTerritoryDetailLevels","getDatasetDetailLevels","setDatasetTerritoryDetailLevelTree","detailLevelTree","setDatasetTerritoryDetailLevel","fetchDatasetTerritoryTerritories","getDatasetTerritories","setDatasetTerritoryTerritories","submitDatasetTerritoryTerritories","fetchDatasetTerritoryLastYear","CRITERIA_FILTER_TYPE_RANGE","to","lastTerritoryYear","moment","format","newCriteria","backupDatasetState","resetDatasetState","setDatasetViewerMode","viewerMode","setDatasetViewer","viewerIdx","setDatasetViewerTableVisibility","isVisible","setDatasetViewerMapVisibility","setDatasetViewerChartVisibility","setDatasetViewerChartType","chartType","submitDatasetTableLayout","layout","submitDatasetTableFilterTree","filterTree","submitDatasetMapLayout","submitDatasetChartLayout","submitDatasetChartFilterTree","setDatasetChartLayoutTerritoryDimValues","territoryDimValues","setDatasetLabelFormat","labelFormat","setDatasetVariation","variation","setDatasetTemporalDimOrder","temporalDimOrder","setDatasetChartSettings","chartSettings","setDatasetMapSettings","mapSettings","submitDatasetDownload","extension","zipped","params","DOWNLOAD_FORMAT_EXCEL","DOWNLOAD_FORMAT_CSV","getDatasetCustomDownloadUrl","getCustomExportRequestBody","formatParam","downloadFormats","param","getDatasetDownloadUrl","fileSave","name","submitDatasetWithMarginalDownload","getDatasetWithMarginalCustomDownloadUrl","getCustomExportRequestBodyWithMarginal","map","join","hideDatasetDownloadWarning","showDatasetViewTemplate","isView","hideDatasetViewTemplate","submitDatasetViewTemplate","viewTemplate","getCreateViewUrl","getCreateTemplateUrl","hideDatasetViewError","hideDatasetUnavailableViewWarning","setDatasetHtmlGeneratingTime","time","showDatasetSdmxQuery","hideDatasetSdmxQuery","fetchDatasetSdmxQuery","getDatasetSdmxQueryUrl","setDatasetIndicatorCreateVisibility","setDatasetIndicatorListVisibility","setDatasetAdditionalDatasetCreateVisibility","setDatasetAdditionalDatasetListVisibility","fetchDatasetAdditionalDatasetCatalog","getNodeCatalogUrl","changeDatasetAdditionalDataset","additionalDataset","fetchDatasetAdditionalDatasetStructure","submitDatasetAdditionalDataset","deleteDatasetAdditionalDataset","datasetIdx","setDatasetAdditionalDatasetCriteria","fetchDatasetIndicatorPreview","resetDatasetIndicatorPreview","publishDatasetIndicator","indicator","deleteDatasetIndicator","indicatorIdx","hideDatasetIndicatorWarning","setDatasetIndicatorArithmeticMeanVisibility","visible","setDatasetIndicatorArithmeticMeanValues","arithmeticMeanDims","arithmeticMeans","setDatasetIndicatorStandardDeviationVisibility","setDatasetIndicatorCoefficientOfVariationVisibility","submitReferenceMetadataDownload","getDatasetExportMetadataUrl","fetchDatasetStructureCodelistFull","missingFilterValueIds","hideDatasetStructureCodelistFull","setFullScreen","isFullscreen","SettingsDialog","children","onSubmit","onClose","open","maxWidth","hasSubmit","noMinHeight","customSubmitLabel","noFullScreen","useTranslation","dialogContent","style","minHeight","paddingBottom","onClick","disableEnforceFocus","fullWidth","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","keys","Object","module","exports","compose","withStyles","theme","root","display","flexDirection","justifyContent","alignItems","width","height","position","background","objectFit","zIndex","textContainer","color","textAlign","padding","fontSize","letterSpacing","slogan","fontWeight","buttonsContainer","marginTop","logo","top","maxHeight","extraLogos","right","connect","state","app","language","homeExtraLogos","appConfig","classes","showExtraLogos","Helmet","className","idx","src","href","alt","localizeI18nObj","target","rel","Typography","variant","Box","MetadataIcon","props","SvgIcon","transform","x","y","fontFamily","strokeWidth","withTranslation","metadataUrl","label","iconSize","useState","setVisibility","ev","stopPropagation","IconButton","size","DialogContent","border","DialogActions","Button","getDownloadButtonStyle","rdf","backgroundColor","html","csv","xml","json","xls","margin","outline","downloadChipDeleteIcon","counterAvatar","marginLeft","marginRight","attachedDataFiles","isDownloadModalOpen","setIsDownloadModalOpen","downloadModal","setDownloadModal","groupedAttachments","forEach","group","find","toLowerCase","urls","push","index","Chip","toUpperCase","deleteIcon","Avatar","onDelete","window","cursor","deleteIconSmall","Dialog","TransitionProps","onExited","List","key","ListItem","sectionTitle","marginBottom","sectionContent","source","description","note","attachments","Grid","container","spacing","item","xs","allowTarget","link","borderRadius","outlineOffset","linkEnabled","palette","primary","main","textDecoration","linkDisabled","linkContent","linkContentImage","linkContentText","linkContentTextIcon","linkContentTextText","linkContentSubText","text","textStyle","subText","subTextStyle","icon","image","imageStyle","disabled","card","list","getHref","hideLabelOnElemWithImage","sm","md","lg","xl","c","i","Card","CardActions","Page","transparent","isOldBrowserWarningVisible","handleScroll","scrollTop","pageYOffset","document","documentElement","setState","handleStyle","nodeHeaderHeight","getElementById","offsetHeight","setAttribute","closeWarning","scroll","left","behavior","isIE","documentMode","isEdge","StyleMedia","this","addEventListener","removeEventListener","oldBrowserWarning","Zoom","in","Fab","fab","ArrowUpward","childrenContainer","Component","bottom","appBar","lineHeight","UserErrors","errors","str","Alert","severity","getUserErrorsTranslations","Form","field","paper","tabContent","overflowY","overflowX","forwardRef","ref","config","useForm","register","handleSubmit","useImperativeHandle","submit","f","val","cancel","FormControl","TextField","error","email","helperText","message","required","inputRef","usersConfig","user","userErrors","dispatch","sendConfig","sendUserResetPasswordEmail","recoverPassword","secondary","onHide","onRegister","alert","alertSeverity","isRecoverPasswordModalOpen","setIsRecoverPasswordModalOpen","recoverPasswordFormRef","useRef","keyDownHandler","useCallback","evt","onEntered","userField","pswField","onExit","autoFocus","password","current","disclaimerLink","onCancel","isAnonymous","hub","types","defaultValues","isActive","organization","disclaimerAccepted","watch","setValue","showPassword","setShowPassword","showPasswordConfirm","setShowPasswordConfirm","isDisclaimerModalOpen","setIsDisclaimerModalOpen","data","emailConfirm","passwordConfirm","useEffect","validate","getTrimmedStr","FormControlLabel","control","Checkbox","checked","onChange","value","select","provider","SelectProps","SelectDisplayProps","MenuItem","firstName","lastName","InputProps","endAdornment","InputAdornment","Visibility","VisibilityOff","inputProps","autoComplete","preventDefault","FormHelperText","disclaimer","fetchConfig","fetchUsersConfigUser","sendConfigCreate","sendUsersConfigUserCreate","sendUsersConfigUserEdit","clearConfig","clearUsersConfigUser","userId","needConfig","setNeedConfig","typeOptions","showOldPassword","setShowOldPassword","showNewPassword","setShowNewPassword","showNewPasswordConfirm","setShowNewPasswordConfirm","oldPassword","newPassword","newPasswordConfirm","changeUserPassword","fetchUserEditUser","submitConfig","submitUserEditUser","clearUserEditUser","cb","cbParam","DASHBOARD_ELEM_TYPE_KEY","DASHBOARD_ELEM_VALUE_KEY","DASHBOARD_ELEM_WIDTH_KEY","DASHBOARD_ELEM_SHOW_TITLE_KEY","DASHBOARD_ELEM_ENABLE_FILTERS_KEY","DASHBOARD_ELEM_FILTER_DIMENSION_KEY","DASHBOARD_ELEM_TYPE_VALUE_VIEW","DASHBOARD_ELEM_TYPE_VALUE_TEXT","emptyDashboardElem","getViewIdxFromRowAndCol","rowIdx","colIdx","OTHER_CONFIG_VIEWS_FETCH","OTHER_CONFIG_VIEWS_CLEAR","OTHER_CONFIG_VIEW_DELETE","OTHER_CONFIG_DASHBOARDS_FETCH","OTHER_CONFIG_DASHBOARDS_CLEAR","OTHER_CONFIG_DASHBOARD_CREATE","OTHER_CONFIG_DASHBOARD_UPDATE","OTHER_CONFIG_DASHBOARD_CHANGE","OTHER_CONFIG_DASHBOARD_CREATE_SUBMIT","OTHER_CONFIG_DASHBOARD_UPDATE_SUBMIT","OTHER_CONFIG_DASHBOARD_HIDE","OTHER_CONFIG_DASHBOARD_DELETE","OTHER_CONFIG_DASHBOARD_VIEWS_FETCH","OTHER_CONFIG_DASHBOARD_VIEWS_CLEAR","OTHER_CONFIG_DASHBOARD_DATASET_FETCH","OTHER_CONFIG_DASHBOARD_DATASET_FILTER_SET","OTHER_CONFIG_DASHBOARD_DATASET_CLEAR","fetchOtherConfigViews","getViewsUrl","getNewDashboard","dashboard","dashboardId","dashboardConfig","newDashboard","_","cloneDeep","row","col","filterDimension","includes","newFilterLevels","labels","filterLevels","JSON","stringify","viewIds","getParamsStr","opts","paramsStrs","query","encodeURIComponent","filters","isA11y","getHomeInternalUrl","noLanguage","getNodeInternalUrl","getNodeCategoriesInternalUrl","getDatasetsInternalUrl","getDatasetInternalUrl","filter","el","getNodeDashboardsInternalUrl","goToHome","goToNode","goToDataset","goToDatasetsSearch","getDatasetsSearchInternalUrl","goToHubDashboards","goToNodeDashboards","goToDashboard","getDashboardInternalUrl","tableToolbar","views","otherConfig","fetchViews","clearViews","deleteView","getDeleteViewUrl","deleteOtherConfigView","nodes","onViewsClose","needViews","setNeedViews","deleteViewId","setDeleteViewId","deleteViewNodeId","setDeleteViewNodeId","columns","render","node","customFilterAndSearch","getI18nObjCustomFilterAndSearch","actions","tooltip","viewTemplateId","location","DeleteIcon","options","actionsColumnIndex","ConnectedComponent","textFieldProps","setLanguage","emptyValue","lang","merge","getInitialInternalValue","internalValue","setInternalValue","timeoutId","setTimeoutId","setValueForLanguage","newInternalValue","clearTimeout","setTimeout","callOnChange","startAdornment","I18nDelayedTextField","HtmlEditor","getInitState","handleEditorChange","bind","event","editor","getData","customConfig","defaultProtocol","decorators","defaultValue","attributes","minimalToolbar","toolbar","items","Editor","React","preToolbar","htmlEditorProps","res","I18nHtmlEditor","getDashboardDynamicFilterLabelTranslations","Region","Province","Municipality","translations","$","jQuery","getStrippedHtmlText","$span","get","innerHTML","sanitize","ADD_ATTR","textContent","innerText","remove","DashboardBuilderCol","onColRemove","onTypeReset","onViewReset","onTextEdit","onShowTitleChange","onEnableFiltersChange","onFilterDimensionChange","colContainer","viewContainer","view","input","selectTitle","onSelect","resetTitle","onReset","formLabel","labelPlacement","placeholder","multilineInput","multiline","rows","readOnly","Divider","divider","colActions","DashboardBuilderRow","onRowRemove","onColAdd","rowContainer","rowActions","rowAction","handleHeight","each","Math","max","outerHeight","css","verticalAlign","dashboardFilterConfig","onViewsHide","selectedRowIdx","setSelectedRowIdx","selectedColIdx","setSelectedColIdx","isEditTextVisible","setEditTextVisibility","tempTextValue","setTempTextValue","handleRowRemove","handleColAdd","totalWidth","floor","handleColRemove","handleTypeReset","handleViewReset","handleEditTextShow","handleEditTextHide","handleShowTitleChange","handleEnableFiltersChange","handleFilterDimensionChange","endIcon","onRowClick","rowData","handleViewSet","handleTextChange","FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_INIT","FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_SUCCESS","FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_ERROR","FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_RESET","errorFetchDashboardDatasetAsyncHandler","requestIds","DASHBOARD_VIEW_STATE_FETCHING","DASHBOARD_VIEW_STATE_ERROR","initialState","dashboards","fetchedDashboards","jsonStats","layouts","filterTrees","timePeriodsByFreq","dynamicViewPendingRequests","dashboardReducer","action","DASHBOARDS_DASHBOARDS_CLEAR","DASHBOARDS_DATASET_FILTER_APPLY","newFetchedDashboards","dynamic","currentDashboardJsonStats","currentDashboardLayouts","currentDashboardFilterTrees","currentDashboardTimePeriodsByFreq","viewIdx","isStaticView","jsonStat","isFetchingDynamicView","requestUuid","fetchedDashboard","static","dashboardJsonStats","dashboardLayouts","dashboardFilterTrees","dashboardTimePeriodsByFreq","DASHBOARDS_DATASET_FILTER_SET","getUpdatedLayout","dimension","REQUEST_SUCCESS","DASHBOARDS_DASHBOARD_FETCH","response","hasOwnProperty","split","getCriteriaObjectFromArray","parse","extra","REQUEST_ERROR","DimensionAttributeList","dimValuesAttributeList","dimVal","getFormattedDimensionValueLabel","attribute","getAttributeLabel","getAttributeValueLabel","attributeButton","attributeIcon","attributeIconAst","attributeIconChar","dimensionValues","datasetDimAttributeMap","disabledTooltip","dimValue","placement","role","valueId","valueLabel","isMultiSelectDim","dim","primaryDim","secondaryDim","appLanguage","hiddenDimensionValueLabels","itemWrapper","itemDisabled","pointerEvents","visibility","dimensionTitle","tooltipElement","hideMultiSelectDims","setTimeDim","visibleId","setVisibleId","setData","checkedKeys","setCheckedKeys","dimAttributeMap","setDimAttributeMap","getDimensionAttributeMap","concat","handleFilterClose","handleFilterSubmit","values","isArr","category","getFormattedName","withAttribute","MARGINAL_DIMENSION_KEY","hiddenLabels","marginal","marginalvalues","getMarginalDimensions","datasetid","dimensionvalues","getFormattedTooltip","dimLabel","getFormattedDimensionLabel","getTextWidthEl","appendTo","filtersValue","indexOf","getDimensionLabel","minWidth","getTextWidth","primaryDimValues","secondaryDimValues","getValueLabel","selected","InputLabel","Select","multiple","renderValue","onOpen","visibleIdx","getDimensionFilterValues","reverse","handleFilterOpen","getRowKey","dataIndex","LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH","renderText","renderTooltip","noFilter","noSort","rowSelection","selectedRowKeys","showHeader","getRowStyle","isValidIntegerInInclusiveRange","min","isNaN","test","int","parseInt","isNumeric","n","parseFloat","isFinite","getMaxTreeDepth","tree","childrenKey","recursive","getNodesAtDepth","depth","subTree","currDepth","getTreeFromArray","arr","parentKey","mappedArr","getNode","foundNodes","foundNodesInChild","result","getNodes","getFilteredTreeWithPaths","getMappedTree","TABLE_HEADER_MERGED","FILTER_TYPE_OBS","FILTER_TYPE_DIM","OBS_FILTER_OPERATOR_AND","OBS_FILTER_OPERATOR_EQUAL","OBS_FILTER_OPERATOR_NOT_EQUAL","OBS_FILTER_OPERATOR_GREATER_OR_EQUAL","OBS_FILTER_OPERATOR_GREATER","OBS_FILTER_OPERATOR_LESS_OR_EQUAL","OBS_FILTER_OPERATOR_LESS","DIM_FILTER_OPERATOR_EQUAL","DIM_FILTER_OPERATOR_NOT_EQUAL","DIM_FILTER_OPERATOR_STARTS_WITH","DIM_FILTER_OPERATOR_INCLUDES","DIM_FILTER_OPERATOR_NOT_INCLUDES","DIM_FILTER_OPERATOR_ENDS_WITH","DIM_VALUE_LABEL_MODIFIER_REMOVE","TABLE_SECTION_DIMENSIONS_SEPARATOR","filterIcon","getFirstIndex","bitSetArr","found","bitSet","getDimensionValueFromIdx","dimValuesMap","dimSpanMap","getTableHeaderDimensionValueCells","tableSupportStructures","valorizedCols","paginationParams","customLabelFormats","dimensionValueModifiers","firstColIdx","colCountFull","string","colCount","colPerPage","colSpanMax","colSpan","slice","cardinality","dimensionValue","cellText","replace","MARGINAL_ATTRIBUTE_KEY","htmlString","addClass","innerWidth","removeClass","empty","getTableHeaderIconCells","sortable","orderedCol","isOrderedAscending","filterable","isPreview","iconsWidth","getTableHeader","uuid","customDimensionLabels","decimalSeparator","showArithmeticMean","showStandardDeviation","showCoefficientOfVariation","showTrend","showCyclical","cols","thead","VARIATION_DIMENSION_KEY","getTableHtml","headerType","decimalPlaces","emptyChar","sectionRowsOrder","highlightedRowsDimValues","rowHover","isPointData","hierarchyOnlyAttributes","onPageGenerationComplete","orderedValorizedSectionRows","t0","performance","now","valorizedSectionRows","sectionRowCountFull","rowCountFull","sectionDimCombinations","indexesMap","obsAttributeMap","filteredRows","depths","sections","renderedRows","renderedCols","isOrderingRow","valorizedRows","sIdx","orderedValorizedRows","BitSet","b","set","firstRowIdx","rowStart","colStart","table","header","unmergedDims","arithmeticMeansFull","standardDeviationsFull","standardDeviations","coefficientOfVariationsFull","coefficientOfVariations","filteredCols","hasAttributes","colId","getFormattedValue","getMergedTableHeaderHtml","sectionsStarts","subHeaderHandled","isRenderedColHandled","rowCount","r","currentSectionIdx","nextSectionIdx","findIndex","sectionIdx","isEmpty","sectionRow","sectionLabel","currentSectionIdxClone","section","getSectionRow","sectionR","sortedSectionR","rowDimsValue","isSelectedRow","subHeader","rr","rowSpanMax","rowSpan","paddingLeft","dataObj","dataIndexArr","dataIdx","getDataIdxFromCoordinatesArray","obsAttributes","obsAttribute","getDataCell","colDimValues","rowPerPage","t1","timings","timeoutID","intervalID","SCROLLBARS_INTERVAL","isOnMouseDownOnSliderThumb","SLIDER_THICKNESS","SLIDER_RAIL_COLOR","CustomSlider","orientation","maxValue","onIncrement","ticks","isVerticalScrollbarVisible","onMouseUp","clearInterval","attr","handleChange","newValue","sliderId","step","ceil","containerRect","getBoundingClientRect","clientY","clientX","isEventInContainer","setInterval","sliderButton","onMouseDown","tabIndex","Slider","sliderRoot","rail","sliderRail","track","sliderTrack","opacity","spinnerOverlay","verticalValue","verticalMaxValue","verticalTicks","onVerticalScroll","horizontalValue","horizontalMaxValue","horizontalTicks","onHorizontalScroll","isHorizontalScrollbarVisible","disableWheelZoom","uuidv4","setRow","setCol","isPaginating","setIsPaginating","handleSliderScroll","isVertical","getIncrementedValue","prevValue","delta","isIncrement","limit","handleIncrement","prevRow","prevCol","handleWheelScroll","wheelDeltaY","wheelDelta","wheelDeltaX","isBetween","newRow","newCol","CircularProgress","emptyFilter","operator","entity1","filterValue","entity2","ObservationFilterForm","initialFilter","onApply","onRemove","setFilter","DimensionFilterForm","isFirstRender","scrollToRow","isFiltering","tableContainer","overflow","paddingRight","LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME","removeEmptyLines","tableHeaderType","dimensionFilterValues","firstRowDimValues","onFilter","scrollToLastRow","scrollToLastCol","invertedDims","hideHierarchyOnlyRows","enableMeasuresOfSynthesisAndVariability","onStructureGenerationComplete","setTableSupportStructures","htmlTable","setHtmlTable","visibleRowCount","setVisibleRowCount","visibleColCount","setVisibleColCount","order","setOrder","setFilters","filterColIdx","setFilterColIdx","filterDimId","setFilterDimId","anchorEl","setAnchorEl","setHorizontalScrollbarVisibility","setVerticalScrollbarVisibility","setAttributes","Date","date","setDate","Worker","worker","terminate","handleObservationFilterOpen","handleDimensionFilterOpen","dimId","handleFilterApply","newFilters","handleFilterRemove","isResizing","$attributeTooltip","$mergedHeaderTooltip","hover","$elem","rect","append","off","click","Number","dims","appendDim","datasetlabels","marginalDim","dir","prevOrder","isActiveAfterClick","handleScrollbar","updateVisibleColAndROwCount","$tableContainer","$table","element","elementRect","isElementVerticallyInContainer","isElementHorizontallyInContainer","func","newLayout","assign","onmessage","valorizedColsFromArr","valorizedColsArr","valorizedSectionRowsFromArr","valorizedSectionRowsArr","valorizedRowsArr","console","onerror","postMessage","onFilterComplete","newSectionRowsOrder","valueMatrix","s","sort","a","nextOrder","asc","valueSorter","prevPos","clonedI","getPreviewTableHtml","scrollLeft","dangerouslySetInnerHTML","__html","Popover","anchorOrigin","vertical","horizontal","transformOrigin","PaperProps","MAP_GEOMETRY_FETCH","MAP_GEOMETRY_SET","MAP_GEOMETRY_CHANGED_STATUS_SET","MAP_GEOMETRY_CLEAR","MAP_NO_GEOMETRY_WARNING_HIDE","fetchMapGeometry","mapStateUuid","timeDimValue","territoryDimCodelist","showSpinner","getGeometryUrl","geometryIds","setMapGeometryChangedStatus","changed","clearMapGeometry","getNutsLevelTranslations","getTimeDimValueFromLayout","timeDimValueYear","isValid","CustomSelect","labelWidth","setLabelWidth","whiteSpace","getOverlayTextStyle","solidOverlay","getOverlayImageStyle","isSettingsChanged","newSettings","prevSettings","isChanged","isEqual","callSetSettings","settings","setSettings","customIntervals","classificationMethod","MAP_CLASSIFICATION_METHOD_CUSTOM_INTERVALS","usePrevious","overlay","attributesGrid","attributesTitle","detailLevelSelectorWrapper","detailLevelSelector","withTheme","hubExtras","extras","themeConfig","isMultiViewer","defaultExtent","mapConfig","geometryBorderColor","levelsOrder","baseMap","BaseMap","mapCopyright","MapCopyright","mapLayer","MapLayer","mapLayersConfig","maps","onGeometryFetch","onGeometrySet","geometries","setMapGeometry","onGeometryChangedStatusSet","onGeometryClear","onWarningHide","hideMapNoGeometryWarning","externalMapId","mapId","defaultDetailLevel","onDetailLevelChange","disableDetailLevelSelector","initialBaseLayer","defaultSettings","onDataClick","disableZoomToClickedData","onDataSelect","selectedTerritoryId","filteredTerritoryIds","onSettingsShow","showSelection","disableBaseLayer","disableSettings","showSingleGeometry","latAttributeId","longAttributeId","srid","onRenderStart","onRenderFinish","geometriesYear","setMapId","legendTitle","prevJsonStat","prevLayout","isFetchEnabled","setIsFetchEnabled","fetchedGeometries","setFetchedGeometries","internalDetailLevels","setInternalDetailLevels","internalDetailLevel","setInternalDetailLevel","setGeometries","geometryMap","setGeometryMap","territoryMap","setTerritoryMap","filteredGeometries","setFilteredGeometries","setMapSettings","mapDefaultSettings","setMapDefaultSettings","isLayerRendered","setIsLayerRendered","geometryId","setGeometryId","dimensionValueTree","setDimensionValueTree","hideSpinner","fetchGeometry","uniqueId","filteredTerritoryDimValues","territoryDimIdx","coordinates","getCoordinatesArrayFromDataIdx","territoryDimValue","getTerritoriesWithValue","LMap","isInitialized","destroyMap","baseLayer","layers","MAP_LAYERS_NONE","MAP_LAYERS_ALL","credits","layer","mapOptions","showZoom","showScale","showBaseLayerRadio","onSettingsChange","onLegendCollapsedChange","isCollapsed","isLegendCollapsed","onBaseLayerChange","legendFontFamily","primaryColor","isBaseLayerRadioPopupClosable","mapTranslations","configure","from","apply","classification","equalInterval","naturalBreaks","quantile","customIntervalsFrom","customIntervalsTo","numberOfClasses","startColor","endColor","preview","collapse","uncollapse","allowedPaletteCardinality","invalidCustomIntervals","linearSelectionTooltip","polygonalSelectionTooltip","rectangularSelectionTooltip","circularSelectionTooltip","infos","diameter","round","toFixed","zoomIn","zoomOut","zoomHome","linearSelection","polygonalSelection","rectangularSelection","circularSelection","clearSelection","configureLayers","changeBaseLayer","abortSelection","expandSelectionButtons","collapseSelectionButtons","noBaseLayer","initMap","handleViewportChange","isJsonStatChanged","isTimeDimValueChanged","layoutDims","orderedDims","getFilterTreeFromJsonStat","enableLog","layoutGeometries","missingGeometryList","geometryMapByTerritoryId","g","getDimensionValuesIndexesMap","getObservationAttributeMap","VARIATION_VALUE_VALUE_KEY","geometry","dimValueArray","getCompleteValueDims","dimValueIndexArray","valueIdx","jsonStatValue","geom","dimAttributes","isGeomValid","long","lat","geoJson","wkt","identifier","level","nutsLevel","suffix","isTooltipClickable","territoryId","missingEntry","log","getLayoutGeometries","newDetailLevels","reduce","acc","levelOrder","MAX_SAFE_INTEGER","counter","getDetailLevelsFromGeometries","prevDetailLevel","newFilteredGeometries","setDataFilter","prevDefaultSettings","layerOptions","useGeoJSON","onDataRender","borderColor","valueFormatter","dataInfoDuration","isSelected","zoomToClickedData","geomId","onDataTooltipClick","onLocationChanged","extent","zoomLevel","updateLayer","getSettings","updateLayerSettings","geometryToZoom","zoomToData","unavailableMapErrorText","territoryDimMissing","fetchingGeometriesError","geometriesMissing","detailLevelMissing","isMapUnavailable","isDetailLevelSelectorVisible","debug","dl","isNoGeometryWarningVisible","Attribute","cardTitle","datasetAttributesCard","datasetAttributes","seriesAttributes","attributeGroup","CardHeader","disableTypography","dimensions","AttributeIcon","MissingModuleErrorBoundary","hasError","errorInfo","component","fallback","Module","setModule","lazy","ModuleMenuItemPlaceholder","getFilterCombinationCount","getColsSeparators","getInitialCsvParams","csvSeparator","colsSeparator","textQualifier","fontStyle","exportLabel","fieldLastRow","exportConfig","exportSettings","modulesConfig","nodeFormats","formats","isTableVisible","isMapVisible","isChartVisible","tableLayout","mapContainerId","mapLayout","chartContainerId","chartId","chartLayout","submitDownload","showAsBottomNavigation","shapefilesUrl","submitMetadataDownload","exportChartFormat","setExportChartFormat","exportMapFormat","setExportMapFormat","tempSettings","setTmpSettings","isExportExcelVisible","setExportExcelVisibility","singleSheet","setSingleSheet","isExportCsvVisible","setExportCsvVisibility","filteredDataset","setFilteredDataset","csvParams","setCsvParams","handleExportClick","DOWNLOAD_FORMAT_MAP_IMAGE","DOWNLOAD_FORMAT_MAP_PDF","handleExportMapShow","DOWNLOAD_FORMAT_CHART_IMAGE","DOWNLOAD_FORMAT_CHART_PDF","handleExportChartShow","DOWNLOAD_FORMAT_SHAPEFILES","handleExportExcelShow","handleExportCsvShow","DOWNLOAD_REFERENCE_METADATA","getDefaultSettings","showLegend","showTitle","showFilters","isLegendVisible","showDate","sheetOrientation","DefaultMapSheetOrientation","DefaultGraphSheetOrientation","logoURL","handleExportChartOrMapHide","handleExportExcelHide","handleExportCsvHide","information","placeholders","formatsTable","isDownloadFormatValid","viewers","DOWNLOAD_VIEWER_TABLE","formatsMap","DOWNLOAD_VIEWER_MAP","formatsChart","DOWNLOAD_VIEWER_CHART","formatsOthers","getButtonSelectItem","formatLabel","getMenuItem","floatingMenuOption","BottomNavigation","currentTarget","showLabels","BottomNavigationAction","keepMounted","Boolean","isModulePlaceholder","ariaLabel","ExportForm","onSettingsSet","$chartCanvas","$chartCanvasClone","$oldCanvas","oldCanvas","newCanvas","createElement","context","getContext","offsetWidth","drawImage","getClonedCanvas","$chartContainer","before","ChartJs","animation","duration","setChartStyle","exportViewerCanvas","$mapContainer","getCanvas","canvas","maxExcelSheets","sheetsLimit","additionParams","exportOnlyCurrentView","layoutForCsv","LABEL_FORMAT_SELECTOR_LABEL_FORMAT_ID","filterElement","isDimensionAllowed","useMemo","filtersValueInfo","filterDims","getFiltersValueInfo","dashboardElem","minDashboardWidth","is","$col","$header","$title","$controllers","$placeHolder","$staticFilters","$activeFilters","$view","outerWidth","paddingTop","viewContainerHeader","viewContainerHeaderTitle","viewContainerHeaderTitleAttributeIcon","viewContainerHeaderControllers","viewContainerHeaderStaticFilters","viewContainerHeaderActiveFilters","viewContainerHeaderPlaceholder","viewContainerView","attributeId","attributeAst","layoutObj","rowWithView","onDownloadSubmit","nodeExtras","setNodeExtras","getViewerIdxFromType","defaultView","isDetailLevelFilterEnabled","setFullscreen","isAttributesVisible","setAttributesVisibility","HierarchyOnlyAttributes","HideHierarchyOnlyRows","getDatasetAttributeMap","getSeriesAttributeMap","nodeMinimalInfo","handleFullscreen","toggleFullScreen","handleDownload","additionalParams","filterValues","getDataIds","exportParams","decimalNumber","emptyCellPlaceHolder","tableEmptyChar","customLabelFormat","hasVariation","showAttributeIcon","filterDim","staticFilters","TitleComponent","ControllersComponent","iconStyle","DownloadFormats","buttonStyle","StaticFiltersComponent","ActiveFiltersComponent","PlaceHolderComponent","TEMPORAL_DIM_ORDER_SELECTOR_VALUE_DESC","Dashboard","externalDashboard","onFilterSet","setDashboard","prevDashboard","getStaticDashboard","staticDashboard","initialDashboard","previewDialog","needDashboards","dashboardViews","fetchDashboards","getUserDashboardsUrl","clearDashboards","createDashboard","createOtherConfigDashboard","updateDashboard","getDashboardsUrl","updateOtherConfigDashboard","changeDashboard","changeOtherConfigDashboard","submitDashboardCreate","getCreateDashboardUrl","submitOtherConfigDashboardCreate","submitDashboardUpdate","getUpdateDashboardUrl","submitOtherConfigDashboardUpdate","deleteDashboard","getDeleteDashboardUrl","deleteOtherConfigDashboard","hideDashboard","fetchOtherConfigDashboardsDataset","setOtherConfigDashboardsDatasetFilter","clearDatasets","onDashboardsClose","deleteDashboardId","setDeleteDashboardId","updateDashboardId","setUpdateDashboardId","isPreviewVisible","setPreviewVisibility","handleDashboardClose","rightActions","startIcon","VisibilityIcon","EditIcon","validateI18nObj","requests","CRITERIA_FILTER_TYPE_CODES","request","placeholderId","moduleFallback","BASIC_LOGIN","providerId","supportedAuths","onLogin","fetchUser","onExternalLogin","loginCode","fetchExternalUser","onLogout","logoutUser","onLoginFormShow","showUserLoginForm","onLoginFormHide","hideUserLoginForm","onChangePasswordShow","showUserChangePasswordForm","onChangePasswordHide","hideUserChangePasswordForm","onRegisterModalShow","showUserRegisterModal","onRegisterModalHide","hideUserRegisterModal","onEditModalShow","showUserEditUserModal","onEditModalHide","hideUserEditUserModal","registerFormRef","changePasswordFormRef","editUserFormRef","viewsSettingsRef","dashboardsSettingsRef","isViewsOpen","setIsViewsOpen","isDashboardsOpen","setIsDashboardsOpen","loginHandler","localStorage","getItem","storageArea","removeItem","handleExternalLogin","loginURL","isAuthenticated","actionId","canDisplayUserViews","canManagePersonalDashboards","enableDashboard","option","removeEndIcon","isLoginDialogOpen","messageSeverity","isRegisterDialogOpen","isEditUserDialogOpen","isChangePasswordDialogOpen","getNodeId","catId","prevPath","ret","getSelectedNodeIds","getAllNodeIds","childrenCategories","CategoriesTree","onExpand","expanded","selectedCategoryPath","catalog","selectedDataset","initialPath","showDatasetList","showExpandControls","showCategoriesFirst","treeViewClasses","treeItemCategoryClasses","treeItemDatasetClasses","getDataset","cat","datasetLabel","uncategorizedDatasets","datasetSource","datasetDescription","datasetAttachments","isDatasetOnlyFile","catalogType","TreeItem","dataset","datasetClickableLabel","datasetIcon","datasetAction","content","treeItemContent","treeItemContentUnselectable","treeItemLabel","treeItemLabelDatasetSelected","treeItemLabelDataset","categoryGroups","hasCategorySchemes","categories","datasetIdentifiers","expandControls","expandControl","nodeIds","TreeView","defaultCollapseIcon","defaultExpandIcon","onNodeToggle","treeViewRoot","getTreeItems","nodeIcon","nodeLabel","nodeAction","treeItemRoot","treeItemLabelCategorySelected","treeItemLabelCategory","showDatasetListInCategoriesTree","datasetCount","rootDatasets","textTransform","HUB_CONFIG_FETCH","HUB_CONFIG_SEND","HUB_CONFIG_CLEAR","HUB_CONFIG_DASHBOARDS_FETCH","HUB_CONFIG_DASHBOARDS_FETCH_ALL","HUB_CONFIG_DASHBOARDS_DASHBOARD_ADD","HUB_CONFIG_DASHBOARDS_DASHBOARD_REMOVE","HUB_CONFIG_DASHBOARDS_ORDERS_SEND","HUB_CONFIG_DASHBOARDS_CLEAR","HUB_CONFIG_DASHBOARDS_CLEAR_ALL","fetchHubConfigDashboards","getHubDashboardsUrl","SPINNER_MESSAGE_ADD","SPINNER_MESSAGE_REMOVE","SPINNER_TIMEOUT_SET","SPINNER_TIMEOUT_CLEAR","SPINNER_FLUSH","addSpinnerMessage","uid","markSpinnerMessage","isError","flushSpinner","fileInput","baseURL","accept","onUpload","fileName","setFileName","substring","lastIndexOf","file","files","fileFormData","FormData","fetch","getFileUploadUrl","method","headers","Authorization","token","credentials","filePath","catch","show","htmlFor","buttonAction","typography","button","allDashboards","fetchAllDashboards","addDashboard","removeDashboard","sendDashboardsOrders","clearAllDashboards","needFetch","setNeedFetch","destroy","orderedDashboardsIds","assigned","AddIcon","tableData","ArrowDropUpIcon","rowIndex","ArrowDropDownIcon","FormLabelWithTooltip","tooltipOnRight","Tooltip","disclaimerLabel","paperHeader","appLanguages","tab","setTab","dashboardsManagerRef","createRef","mustChangeTabOnErrors","setMustChangeTabOnErrors","configExtras","pageSize","PageSize","treePageSize","TreePageSize","headerLogoSmallURL","HeaderLogoSmallURL","headerLogoAlt","HeaderLogoAlt","headerLogoHref","HeaderLogoHref","headerLogoTitle","clearedExtras","k","firstFieldWithErrors","supportedLanguages","Tabs","Tab","canManageAppDashboards","Autocomplete","freeSolo","renderTags","getTagProps","renderInput","maxObservationsAfterCriteria","maxCells","getMapLayerOptions","hubConfig","hubDashboards","getHubConfigGetUrl","getHubConfigPutUrl","sendHubConfig","getAddHubDashboardUrl","addHubConfigDashboardsDashboard","getRemoveHubDashboardUrl","removeHubConfigDashboardsDashboard","orderedDashboarIds","getOrderHubDashboardsUrl","NODES_CONFIG_NODES_FETCH","NODES_CONFIG_NODES_CLEAR","NODES_CONFIG_NODE_VISIBILITY_SET","NODES_CONFIG_NODE_ID_SET","NODES_CONFIG_NODE_FETCH","NODES_CONFIG_NODE_CLEAR","NODES_CONFIG_NODES_ORDER_SEND","NODES_CONFIG_NODE_DELETE","NODES_CONFIG_NODE_CREATE","NODES_CONFIG_NODE_EDIT","NODES_CONFIG_NODE_DASHBOARDS_FETCH","NODES_CONFIG_NODE_DASHBOARDS_FETCH_ALL","NODES_CONFIG_NODE_DASHBOARDS_DASHBOARD_ADD","NODES_CONFIG_NODE_DASHBOARDS_DASHBOARD_REMOVE","NODES_CONFIG_NODE_DASHBOARDS_ORDERS_SEND","NODES_CONFIG_NODE_DASHBOARDS_CLEAR","NODES_CONFIG_NODE_DASHBOARDS_CLEAR_ALL","fetchNodesConfigNodes","getNodesConfigUrl","fetchNodesConfigNodeDashboards","getNodeDashboardsUrl","ErrorBoundary","DefaultFallback","componentId","componentsVariant","ComponentVariant","setComponentVariant","CATALOG_NAVIGATION_MODE_TREE","CATALOG_NAVIGATION_MODE_GRID","CATALOG_NAVIGATION_MODE_LIST","warningAlert","subfield","initialNodeVisibility","active","NodeVisibility","Yes","dataAccess","NodeDataAccessibility","All","annotationConfig","showCategoryLevels","getI18nObjFromLanguages","catalogNavigationMode","hiddenAttributes","restDataResponseXml","supportPostFilters","supportPostFiltersStructure","enableEndpointV20","endpointV20","showHubDashboards","showVirtualDataflow","queryInfo","queryInfoBaseUrl","showOnlyFileDataflow","timePeriodRangeStart","timePeriodRangeEnd","hideLabelOnCategoryWithImage","TEMPORAL_DIM_ORDER_SELECTOR_VALUE_ASC","TEMPORAL_DIM_ORDER_SELECTOR_VALUE_UNSET","getValues","enableHttpAuth","enableProxy","isCriteriaSelectionModeDynamic","isLastNPeriodsDisabled","optimizeCallWithSoap","namespaceV20","namespaceV21","isPublic","defaultLastNPeriodsExtra","showHubDashboardsExtra","queryInfoExtra","queryInfoBaseUrlExtra","showOnlyFileDataflowExtra","timePeriodRangeStartExtra","timePeriodRangeEndExtra","hideLabelOnCategoryWithImageExtra","temporalDimOrderExtra","hierarchyOnlyAttributesExtra","hideHierarchyOnlyRowsExtra","supportedLanguagesExtra","defaultLanguageExtra","validator","isPort","agency","Profiled","Paper","criteriaSelectionMode","endPoint","subheader","radioValue","RadioGroup","Radio","authHttpUsername","proxyAddress","proxyPort","ttlCatalog","ttlDataflow","getOptionLabel","helper","match","inputVariant","nodesConfig","getNodeConfigGetUrl","fetchNodesConfigNode","getNodesConfigPostUrl","getNodesConfigPutUrl","DATAFLOW_CACHE_FETCH","DATAFLOW_CACHE_CLEAR","DATAFLOW_CACHE_UPDATE","DATAFLOW_CACHE_CREATE","DATAFLOW_CACHE_DELETE","DATAFLOW_CACHE_DELETE_ALL","DATAFLOW_CACHE_DELETE_CATALOG","fetchDataflowCache","getDataflowsCacheListUrl","cacheConfig","fetchCache","clearCache","updateCache","cacheId","getDataflowsCacheUpdateUrl","updateDataflowCache","createCache","getDataflowsCreateCacheUrl","oldData","createDataflowCache","deleteFromCache","dataflowId","deleteDataflowCache","deleteAllFromCache","getDataflowsClearAllCacheUrl","deleteAllDataflowCache","deleteCatalogCache","getClearNodeCatalogMemoryCacheUrl","hideEmptyDataflowCache","setEmptyDataflowCacheHidden","emptyRowsCounter","setEmptyRowsCounter","rowsCounter","setRowsCounter","cacheSize","editable","secondsToHms","onRowUpdate","newData","reject","onRowDelete","dataflow","localization","editRow","deleteText","editTooltip","deleteTooltip","NODE_TEMPLATES_CONFIG_FETCH","NODE_TEMPLATES_CONFIG_CLEAR","NODE_TEMPLATES_CONFIG_TEMPLATE_DELETE","fetchNodeTemplatesConfig","getNodeTemplatesUrl","templates","nodeTemplatesConfig","fetchTemplates","deleteTemplate","deleteNodeTemplatesConfigTemplate","clearTemplates","defaultNodeOpen","onTemplatesClose","needTemplates","setNeedTemplates","deleteTemplateId","setDeleteTemplateId","NODE_PERMISSIONS_CONFIG_FETCH","NODE_PERMISSIONS_CONFIG_CLEAR","NODE_PERMISSIONS_CONFIG_SEND","styles","getPermissions","permissions","modulesPermissions","permission","userVal","nodePermissions","p","sorting","nodePermissionsConfig","getNodePermissionsConfigGetUrl","fetchNodePermissionsConfig","getNodePermissionsConfigPutUrl","sendNodePermissionsConfig","getLabel","nodeDashboards","getAddNodeDashboardUrl","addNodesConfigDashboardsNodeDashboard","getRemoveNodeDashboardUrl","removeNodesConfigDashboardsNodeDashboard","dashboardsIds","getOrderNodeDashboardsUrl","sendNodesConfigDashboardsNodeOrders","isNodeVisible","setNodeVisibility","setNodesConfigNodeVisibility","setNodeId","setNodesConfigNodeId","sendOrders","orderedIds","getNodesOrderPutUrl","sendNodesConfigNodesOrder","deleteNode","getNodeDeleteUrl","onForce","deleteNodesConfigNode","onNodesClose","nodeDeleteFormNodeId","setNodeDeleteFormNodeId","cacheFormNodeId","setCacheFormNodeId","isCacheFormVisible","setCacheFormVisibility","templatesNodeId","setTemplatesNodeId","permissionsNodeId","setPermissionsNodeId","dashboardsNodeId","setDashboardsNodeId","nodeFormRef","cacheFormRef","templatesRef","permissionsRef","dashboardsRef","allowedNodes","canCreateNode","canSortNodes","canDisplayCacheSettingForm","canDisplayTemplatesSettingsForm","canDisplayPermissionsSettingsForm","canEditNode","canDeleteNodes","orderedNodes","orderedNodesIds","default","PersonIcon","canManageNodeDashboards","DashboardIcon","false","users","fetchUsersConfigUsers","deleteUser","deleteUsersConfigUser","clearUsersConfigUsers","onUserFormShow","showUserConfigForm","onUserFormHide","hideUserConfigForm","userDeleteFormUserId","setUserDeleteFormUserId","userFormRef","SettingsSelect","isAppOpen","isNodesOpen","isUsersOpen","appSettingsRef","nodesSettingsRef","usersSettingsRef","isLogDownloadOpen","logLimit","onAppOpen","onAppClose","showSnackbar","isAppSubmitSnackbarVisible","onNodesOpen","onUsersOpen","onUsersClose","onLogDownloadOpen","onLogDownloadClose","onLogLimitSet","onLogDownload","canDisplayAppSettingsForm","canDisplayUsersSettingsForm","canDisplayNodesSettingsForm","canGetQueryLog","Input","downloadQueryLog","onCacheClear","clearMemoryCache","renderRow","cloneElement","OuterElementContext","createContext","OuterElementType","outerProps","useContext","ListboxComponent","other","itemData","Children","toArray","itemCount","getChildSize","child","isValidElement","ListSubheader","gridRef","resetAfterIndex","useResetCache","Provider","outerElementType","innerElementType","itemSize","overscanCount","shape","borderWidth","inputRoot","inputInput","listbox","boxSizing","focus","preventScroll","disableListWrap","renderOption","searchText","inputValue","start","end","noWrap","substr","SEARCH_DIALOG_OPEN","SEARCH_DIALOG_CLOSE","openSearchDialog","DETAIL_LEVEL_SET","DETAIL_LEVEL_FILTERED_CATALOG_SET","setDetailLevel","isOpen","searchDialog","resetDetailLevel","dialogTop","trimmedValue","onDatasetBackup","useLocation","pathname","search","showAsIcon","badge","badgeActive","success","badgeIcon","getCustomA11yPath","getAdditionalA11yUrlParams","Badge","showZero","overlap","badgeContent","URLSearchParams","delete","additionalA11yUrlParams","paramsStr","toString","path","logoContainer","nameContainer","versionContainer","headerLogoURL","align","onSet","newVal","detailLevels","WINDOW_SCREEN_WIDTH_MD","Accordion","boxShadow","borderBottom","MuiAccordion","AccordionSummary","expandIcon","transition","MuiAccordionSummary","AccordionDetails","MuiAccordionDetails","NavigationDrawerButton","onNavigationDrawerOpen","NodeSelector","isDefaultUniqueNode","nodeSelector","No","HubLogo","img","onLoad","hubLogo","HubName","hubNameLink","hubName","SearchButton","noNode","modalWidth","LanguageButton","A11yButton","DashboardButton","AdminSettingButton","defaultAppConfigOpen","defaultNodesConfigOpen","defaultUsersConfigOpen","defaultNodeConfigOpen","canClearServerCache","canDisplayNewsManagerForm","defaultAppOpen","defaultNodesOpen","defaultUsersOpen","UserSettingsButton","InfoButton","onInfoOpen","TerritoryToolsButton","isCategoriesExpandedDefault","isDetailLevelsExpandedDefault","NodeHeader","isFirstRowCollapsed","enableHeaderAutoResponsiveness","areElementsOverlap","isCenterContainerCollapsed","centerContainerWidth","navigationDrawerBtnWidth","homeBtnWidth","territoryToolsBtnWidth","isNavigationDrawerOpen","isCategoriesExpanded","isDetailLevelsExpanded","onNavigationDrawerClose","onToolbarDrawerOpen","isToolbarDrawerOpen","onToolbarDrawerClose","isInfoOpen","onInfoClose","handleCategoriesExpand","handleDetailLevelsExpand","defaultTreeOpen","isDefault","filteredCatalog","emptyHeader","isSecondRowVisible","isThirdRowVisible","AppBar","firstRow","firstRowContainer","firstRowLeftContainer","hiddenContainer","wrap","firstRowCenterContainer","firstRowRightContainer","secondRow","thirdRow","Drawer","anchor","navigationDrawer","navigationDrawerHeader","navigationDrawerHeaderTitle","navigationDrawerDivider","hash","navigationDrawerLink","toolbarDrawer","direction","toolbarDrawerDivider","textOverflow","withRouter","getLocalizedFooter","footers","appLang","footerLang","footer","Home","info","nodesRef","isListMode","scrollIntoView","block","inline","getPageTitle","defaultUserConfigOpen","backgroundMediaURL","autoPlay","muted","loop","defaultBackground","scrollToRef","fullWidthContainer","Container","anchorContainer","sectiontitle","nodesContainer","nodesGridProps","light","mixins","HUB_FETCH","HUB_CLEAR","fetchHub","getHubMinimalInfoUrl","Node","setSearchButtonVisibility","isSearchVisible","onSearch","otherNodes","goToNodeCategories","NODE_FETCH","NODE_CLEAR","CATALOG_FETCH","CATALOG_CLEAR","fetchCatalog","resCount","checkbox","categoryGroupsWithCount","uncategorizedDatasetsCount","setExpanded","uncategorizedSelected","noCheckbox","flexWrap","count","getIdFromDatasetIdentifier","charCodeAt","descriptionTextWrapper","descriptionTextWrapperCollapsed","descriptionTextWrapperExpanded","descriptionText","descriptionIcon","isExpanded","onViewDataset","onCollapse","isMultiCategorized","textHeight","textWrapperHeight","referenceMetadata","scrollResultsToDatasetByParam","datasetIdParam","split2","decodeURIComponent","searchTitle","categoriesTitle","breadcrumbs","breadcrumbsSeparator","breadcrumbsLastElem","results","cardActions","categoriesTree","treeItemCategory","treeItemDataset","subCategories","filtersParams","isAccessible","onAccessibleDatasetFetch","expandedIndexes","setExpandedIndexes","setCatalogNavigationMode","categoryPathLabels","testDSForQuery","ds","keywords","keyword","testCatForFilters","dssForCount","dssForResults","searchRecursive","overrideCatSatisfyFilters","catSatisfyFilters","dssSatisfyQueryMap","recursiveCountAndFilterZero","visited","uniqueDssSatisfyQueryCount","dsId","categoryGroup","resultsMap","filteredDatasets","dls","detailsLevels","filteredSubCategories","categoriesWithImages","isTreeViewMode","catalogForTreeView","categorySchemaId","categoryId","nodeName","Breadcrumbs","separator","datasetsCount","FETCH_DATASET_ASYNC_HANDLER_INIT","FETCH_DATASET_ASYNC_HANDLER_SUCCESS","FETCH_DATASET_ASYNC_HANDLER_ERROR","errorFetchDatasetAsyncHandler","ACTION_EXTRAS","CURRENT_NODE_CONFIG","getActionExtras","getCurrentNodeConfig","actionDecoratorMiddlewareFactory","getState","next","decoratedAction","chartDefaultSettings","getDetailLevelTree","parentCategory","nameIdentifier","getDetailLevelFromTree","prefValue","getFilteredCatalog","LocalCategoryProvider","catalogSelection","GENERATING_HTML_TIME_KEY","OBSERVATION_COUNT_KEY","SERVER_TIMINGS_KEY","MAX_ALLOWED_CELLS","defaultIsTableVisible","defaultIsMapVisible","defaultIsChartVisible","isFirstFetch","datasetFetchStart","datasetFetchError","viewerModeBackup","isPartialData","isEmptyData","isTooBigData","isTooLongQuery","tableColCount","mapPointCount","isCriteriaVisible","isCriteriaAlertVisible","isObsCountWarningVisible","freqDim","pointDim","measureDim","CHART_TYPE_BAR","template","hasViewLayout","hasTemplateLayout","hasAnnotationLayout","tableFilterTree","mapFilterTree","chartFilterTree","initialCriteria","TABLE_EMPTY_CHAR_DEFAULT","enableCriteria","enableLayout","enableVariation","maxAllowedCells","codelists","codelistsLength","codelistFetchError","criteriaObsCount","isFetchStructureDisabled","isFetchDatasetDisabled","isDownloadWarningVisible","isUnavailableViewWarningVisible","backup","isViewVisible","isViewErrorVisible","viewErrorMessage","isTemplateVisible","isQueryVisible","structureQuery","dataQuery","isTerritoryVisible","territoryTree","isIndicatorCreateVisible","isIndicatorListVisible","indicatorPreview","missingIndicators","isAdditionalDatasetCreateVisible","isAdditionalDatasetListVisible","additionalDatasetCatalog","datasetCacheInfo","isTableEnabled","isMapEnabled","isChartEnabled","tableLockedDimensions","graphLockedDimensions","missingFilterValues","datasetReducer","storageKey","getDatasetStorageKey","sessionStorage","setItem","getViewTemplateBackupFromState","storedDatasets","tooMuchObs","newChartLayout","isResponseValid","isResponseNotValid","jsonStatIndicators","removeLastAD","removeLastInd","ViewerMode","MultiViewer","responseHeaders","backendtimers","isPayloadTooLarge","newIndicators","splice","isDatasetChanged","newAdditionalDatasets","REQUEST_INIT","criteriaView","VIEW_KEY","TEMPLATE_KEY","pointDataInfo","latitudeField","longitudeField","territorialDimension","timeDimension","freqDimension","measureDimension","DataStructureRef","isMultiViewerCompatible","SingleViewer","viewViewerMode","hasView","templateViewerMode","hasTemplate","storageItem","hasSessionBackup","sessionBackup","viewTemplateLayouts","structureCriteria","mapDetailLevel","disabledViewers","v","lockTableDimensions","lockGraphDimensions","getViewerIdxFromStructure","criteriaArr","layoutChart","getMapSettingsFromViewTemplateLayouts","getChartSettingsFromViewTemplateLayouts","maxTableCells","indicatorsDefinition","isMainDataset","isStrCaseInsensitiveEquals","isCreatingAdditionalDataset","additionalDatasetToUpdateIdx","ad","newCodelists","newCodelistLength","codelist","CRITERIA_FILTER_TYPE_PERIODS","period","getMinAndMax","newAdditionalDataset","catalogCategoryLayers","territoryCodelist","territoryCodelistValue","dimensionCodelist","getFreqFromCriteria","structureUrl","dataflowUrl","datasetMap","datasetUncategorized","catalogLayers","allDatasetIds","NSI_RESPONSE_DOWNLOAD_SIZE_KEY","TOTAL_KEY","getTimingsLabelTranslations","nsiResponse","nsiResponseDownload","getRow","isTitle","alertHeight","tabsHeight","viewer","viewerTable","viewerChart","tabId","setTabId","setChartType","hiddenDimensions","uniq","isTimeDimInTable","isTimeDimInChart","scrollButtons","titleTypographyProps","isValidTemplateDefaultView","disableTable","disableChart","disableMap","tableDefaultLayout","MultiViewerTemplateBuilder","timeDIm","isCopiedVisible","setCopiedVisibility","copy","prevVal","Snackbar","autoHideDuration","CleanIcon","fill","d","caheInfoContainer","titleContainer","valueContainer","onClearCacheDataset","onDeleteDatasetTemplate","templateId","onFetchDatasetCacheInfo","onUpdateCache","isModifyDialogVisible","setModifyDialogVisible","isTextFieldVisible","setTextFieldVisible","currentTtl","setCurrentTtl","validTtl","setValidTtl","isDeleteTemplateVisible","setDeleteTemplateVisibility","canShowManageCache","canManageCache","canShowManageTemplate","buttonSelectItems","onCloseDialog","cachedDataflow","hiddenLabel","number","onSaveTtl","titleAction","layoutIcon","onSetFullscreen","attachedFiles","onQueryShow","datasetAttributeMap","seriesAttributeMap","handleNotesShow","handleAttributesShow","handleTimingsShow","handleViewOpen","handleTemplateOpen","showQueryInfo","QueryInfo","actionsWidth","notes","canViewTemplateOrAnnotationIcon","canViewTimesLog","canUseDatasetTools","canSaveAsView","canSaveTemplate","canShare","notImplemented","attachedFile","pop","areNodesAllowedForSaveViewTemplate","datasetNodes","onMetadataShow","queryContainer","headerWrapper","selectorWrapper","selector","onViewTemplateShow","onViewTemplateHide","onViewTemplateSubmit","onViewErrorHide","onQueryHide","fetchQuery","setViewerMode","onRender","viewersFactory","tempView","setTempView","tempTemplate","setTempTemplate","setDatasetAttributeMap","setSeriesAttributeMap","setNotes","isTimingsVisible","setTimingsVisibility","isUpdatingView","setIsUpdatingView","viewerModeSelectorWidth","getCompleteViewTemplate","isUpdating","DECIMAL_SEPARATOR_DEFAULT","completeView","getViewTemplateLayoutsFromMapSettings","getViewTemplateLayoutsFromChartSettings","handleViewClose","completeTemplate","handleTemplateClose","handleNotesHide","handleAttributesHide","handleTimingsHide","TemplateDialogTitle","TemplateDialogActions","handleViewSubmit","hidden","TREE_NODE_KEY_OF_LEVEL_PREFIX","getKeys","idKey","treeActions","treeLevelSelector","paddings","treeNode","treeNodeCheckbox","treeNodeCheckboxPlaceholder","treeNodeLabel","levelTreeNodeLabel","treeNodeAction","treeNodeActionPlaceholder","showMoreNode","treeAction","labelKey","defaultExpandedKeys","selectable","singleSelect","selectOnNodeClick","getIsNodeSelectable","defaultSelectedKeys","hierarchicalSelect","hideSearchBar","hideCheckControls","hideExpandControls","hideDisabledCheckbox","showLevelSelector","showChildrenSelector","checkboxCheckedIcon","checkboxUncheckedIcon","treeActionsDirection","parsedHubExtras","filteredTree","setFilteredTree","levelTree","setLevelTree","setSearchText","expandedKeys","setExpandedKeys","levelTreeExpandedKeys","setLevelTreeExpandedKeys","selectedKeys","setSelectedKeys","showMoreKeyClicks","setShowMoreKeyClicks","lsExpandedKeys","actionHeight","levelSelectorHeight","nodeHeight","searchedStr","isSearchedNode","filteredTreeKeys","maxTreeDepth","flatLevelTree","Array","parent","handleSelect","selectedNode","newSelectedKeys","keysToAdd","keysToRemove","handleLevelTreeSelect","nodesAtDepthKeys","previouslyUnselectedKeys","getShowMoreNode","remaining","more","getTreeNode","isLevelTree","nodeKey","isNodeSelectable","isNodeSelected","some","hasChildrenSelector","checkedIcon","childrenKeys","isSelectable","onLabelClick","disableSelection","periods","year","FREQ_SEMESTER","S1","endOf","S2","FREQ_QUARTERLY","Q1","Q2","Q3","Q4","FREQ_MONTHLY","getYearsArray","startYear","endYear","startYearNumeric","endYearNumeric","getPeriod","dateMoment","getNewTimePeriodFromYear","timePeriod","minYear","maxYear","minPeriod","maxPeriod","isFrom","newDate","isSameOrAfter","minDate","isSameOrBefore","maxDate","fromDate","toDate","handleSetTimePeriodRange","newTimePeriod","onSetTimePeriod","setCriteriaValidity","selectContainer","formControl","timePeriodInput","lastPeriodsLabel","lastPeriodsInput","lastPeriodsMenu","isCriteriaValid","fromYear","toYear","fromPeriod","toPeriod","fromPeriods","toPeriods","selectorType","CRITERIA_FILTER_TYPE_EMPTY","handleSetTimePeriodPeriods","headerHeight","codelistHeaderHeight","codelistWarningsHeight","criteriaContainer","criteriaContainerDimension","codelistInfo","onlySelectedSwitch","missingValuesWarning","missingValuesWarningIcon","codelistContainer","emptyContainer","timePeriodContainer","tabLabel","lineClamp","boxOrient","fetchCodelist","onCriteriaObsCountWarningHide","fetchCodelistFull","onCodelistFullHide","hideTerritoryDim","territoryDimCriteria","showCodelistInfo","onSetCriteria","initialTimePeriod","defaultFreq","missingRange","isCallDisabled","setIsCallDisabled","criteriaBackup","setCriteriaBackup","tabIdBackup","setTabIdBackup","isTree","setIsTree","dataBackup","setDataBackup","checkedKeysSnapshot","setCheckedKeysSnapshot","setDefaultExpandedKeys","setTimePeriod","setMissingFilterValueIds","lastNotCodedFilter","setLastNotCodedFilter","treeKey","setTreeKey","prevTimeP","getTimePeriod","dataFlatValues","prevTree","newTree","lastValorizedDimension","isCheckDisabled","getTreeNodeIsSelectable","handleFetch","fullCriteria","handleCriteriaChange","newType","criteriaFilterTypes","newDimensionCriteria","prevTimePeriod","handleTimePeriodChange","timePeriodCriteria","newTabId","criteriaToRemove","handleTabChange","Switch","newCheckedKeys","CRITERIA_FILTER_TYPE_STRING","minWidthToContent","leftActions","sectionHeaderContainer","sectionHeaderContent","sectionHeaderIcon","sectionHeaderTitle","sectionContentWrapper","draggingHover","sectionItem","dimensionLabel","lockIcon","Icon","lockedDimensions","droppableId","provided","snapshot","isDraggingOver","innerRef","draggableId","isDragDisabled","draggableStyle","hasLockIcon","draggableProps","dragHandleProps","isDragging","userSelect","ERROR_SNACKBAR_SEVERITY_ERROR","ERROR_SNACKBAR_SEVERITY_WARNING","ERROR_SNACKBAR_SEVERITY_SUCCESS","ErrorSnackbar","setIsInitialized","setIsVisible","setMessage","setSeverity","ClickAwayListenerProps","onClickAway","onDragEnd","setDimensions","destination","newDimensions","startIndex","endIndex","removed","reorder","droppableSource","droppableDestination","move","layoutContainer","previewContainer","setLayout","layoutLockedDimensions","srcDimension","swapDimension","sourceArr","destinationArr","removedSrc","removedDst","swap","leftSection","rightSection","floatingMenuOptionSelected","navigationActionDisabled","templateLayouts","onFetchDatasetEnable","onViewerSet","onTableLayoutSet","onTableFilterTreeSet","onChartLayoutSet","onChartFilterTreeSet","onCriteriaShow","onCriteriaHide","tmpTableLayout","setTmpTableLayout","tmpChartLayout","setTmpChartLayout","isLayoutVisible","setLayoutVisibility","DefaultLastNPeriods","handleViewerSelect","handleLayoutClose","handleLayoutSubmit","newTableFilterTree","getInitialFiltersValue","newPrimaryDim","newSecondaryDim","prevPrimaryDim","prevSecondaryDim","isSecondaryDimChanged","newChartFilterTree","handleCriteriaClose","handleCriteriaSubmit","isCriteriaDisabled","isLayoutDisabled","isTableDisabled","isChartDisabled","isMapDisabled","criteriaContent","filteredDetailLevelTree","setFilteredDetailLevelTree","additionalDatasetsDLs","commonAdditionalDatasetsDLs","shift","every","checkedNode","checkedNodeKey","spinnerOverlayStyle","spinnerTextStyle","mapWrapper","mapPreviewSettings","mapTerritoryPreviewConfig","changedTerritories","isLayerReady","setIsLayerReady","disablePanAndZoom","paletteStartColor","geometryColor","paletteEndColor","onDataHover","selectedGeometryColor","selectedGeometryBorderColor","setDataStyle","maxMapPolygonCount","maxPolygonCount","fetchLastYear","fetchTerritories","setTerritories","setTree","mapTerritories","setMapTerritories","changedMapTerritories","setMapChangedTerritories","detailLevelSuffix","referenceYear","newExpandedKeys","parentId","territoryValues","newChangedTerritories","selectedTerritories","CalculateIcon","FlagIcon","FilterAltIcon","points","FileDownloadIcon","getMultiViewerInitialTableLayout","noAutocomplete","onKeyDown","ValidatorStates","ValidatorInputs","ValidatorFSM","KeypadValues","IndicatorCreateDialogKeypad","numberDisabled","operationDisabled","commaDisabled","leftParDisabled","rightParDisabled","Key","span","C","D","INDICATOR_PERCENTAGE_VARIATION","INDICATOR_AVERAGE_ANNUAL_PERCENTAGE_VARIATION","INDICATOR_AVERAGE_ANNUAL_GROWTH_RATE","YEAR_SELECT_WIDTH","years","combinations","variables","variablesDataset","formula","isExpressionVisible","setExpressionVisibility","fsmStates","setFsmStates","yearValues","setYearValues","variablesArr","setVariablesArr","aYear","aLetter","bYear","bLetter","handleClick","parentElement","baseVal","contains","handleFormulaChange","usedVariables","dimIdx","getDimensionValueLabel","avatar","Keypad","pressed","statistic","reversedYearValues","setReversedYearValues","statistics","setStatistics","setIndicators","startYearValues","setStartYearValues","endYearValues","setEndYearValues","handleStatisticChange","selectedStatistic","statisticKey","l","Set","allStatistics","variable","timeValue","noTimeCombinationArray","combinationLabelArray","dimArray","noTimeCombinationStr","datasetStatistics","dimensionsLabels","combination","variationAndGrowthRatesFormData","dimensionsValues","startYearIndex","startYearName","startVariable","endYearIndex","endYearName","endVariable","getIndicatorDefinition","TAB_ID_CALCULATOR","TAB_ID_STATISTICS","externalServices","onPreviewFetch","onPreviewReset","onPublish","isNameErrorVisible","setNameErrorVisibility","setCombinations","setVariables","setVariablesDataset","calculatorFormRef","variationAndGrowthRatesFormRef","variableDatasetMap","variableDatasetList","isIndicator","variableDatasetId","letters","String","fromCharCode","getStrFromIndex","handleClose","handlePreviewOpen","filteredVariablesDataset","newIndicator","handlePreviewClose","handlePublish","names","stringList","localizedName","isMultiLanguageNameUnique","Preview","setIndicatorIdx","currentNode","onADChange","fetchADStructure","onCriteriaReset","onDatasetSubmit","steps","stepContent","nodeSelect","setStep","selectedNodeId","setSelectedNodeId","goToStepData","goToStepFilters","Stepper","activeStep","nonLinear","alternativeLabel","Step","StepButton","setDatasetIdx","actionGroup","actionGroupBackground","actionDisabled","datasetSelector","territoryContent","stepContentFullHeight","menuItemTitle","onSetADCriteria","onTerritoryShow","onTerritoryHide","onTableVisibilitySet","onMapVisibilitySet","onChartVisibilitySet","onDetailLevelSet","onTerritoriesSet","onTerritoriesSubmit","onIndicatorCreateVisibilitySet","onIndicatorListVisibilitySet","onArithmeticMeanVisibilitySet","onStandardDeviationVisibilitySet","onCoefficientOfVariationVisibilitySet","onAdditionalDatasetCreateVisibilitySet","onAdditionalDatasetListVisibilitySet","fetchAdditionalDatasetCatalog","onDownloadReferenceMetadataSubmit","tmpDetailLevel","setTmpDetailLevel","tmpTerritories","setTmpTerritories","isTerritoryWarningVisible","setTerritoryWarningVisibility","indicatorsAnchorEl","setIndicatorsAnchorEl","additionalDatasetsAnchorEl","setAdditionalDatasetsAnchorEl","datasetToExportIdx","setDatasetToExportIdx","isFormatAvailableForMergedData","handleTerritoryClose","visibleViewerCount","datasetsWithMetadata","suffixToRemove","territoryFilterValues","marked","dataToExport","sidebar","nodeDecimalSeparator","maxTableColCount","maxMapPointCount","onCriteriaAlertHide","FONT_SIZE_SELECTOR_FONT_SIZE_SM","FONT_SIZE_SELECTOR_FONT_SIZE_MD","getFontSizeIcon","styleClasses","fontSizeIcon","fontSizeIconSm","fontSizeIconMd","fontSizeIconLg","fontSizeSelected","setFontSize","menuItem","setLabelFormat","VARIATION_VALUE_NONE_KEY","onVariationSet","setOpen","VARIATION_VALUE_TREND_KEY","VARIATION_VALUE_CYCLICAL_KEY","newSelected","getVariationValueLabels","MenuProps","stacked","legendPosition","showAxesLabel","customizeCategoryAxis","categoryAxisLabel","valueAxisLabel","dataLabelType","CHART_LEGEND_POSITION_TOP","CHART_LEGEND_POSITION_RIGHT","CHART_LEGEND_POSITION_BOTTOM","CHART_LEGEND_POSITION_lEFT","CHART_DATA_LABEL_TYPE_VALUE","CHART_DATA_LABEL_TYPE_NONE","setTemporalDimOrder","slider","colorContainer","colorPick","palettePreview","previewLabel","setSettingsValidity","paletteCardinality","tmpColor","setTmpColor","isStartColor","setIsStartColor","handleChooseColorOpen","handleChooseColorClose","previewColors","getColorPalette","previewGradientStr","colors","gradientStr","percStep","perc","getGradientStr","getPaletteConstraints","paletteCardinalityMin","paletteCardinalityMax","seriesMin","seriesMax","customIntervalValues","cardinalityValues","getMapClassificationMethodOptions","newCustomIntervalValues","getCustomIntervalValuesValidity","hex","newPaletteStartColor","newPaletteEndColor","newCustomInterval","$actions","$filters","$filtersAndActions","filtersWidth","alignSelf","viewerHeaderHeight","filtersAndActions","settingsTabs","settingsContent","onMapLayoutSet","onLabelFormatSet","onChartSettingsSet","chartSetting","onMapSettingsSet","onTimeSet","onTemporalDimOrderSet","isChartSettingVisible","setChartSettingsVisibility","chartSettingsTabId","setChartSettingsTabId","tmpChartSettings","setTmpChartSettings","isMapSettingVisible","setMapSettingsVisibility","tmpMapSettings","setTmpMapSettings","isMapSettingsValid","setMapSettingsValidity","onTablePageGenerationComplete","generatedTableStructure","handleFilterSelect","handleChartSettingsClose","handleMapSettingsOpen","handleMapSettingsClose","numberFormatter","getViewerTypeFromIdx","CHART_TYPE_LINE","dimTitle","dimTitleSpacer","dimSwapper","onLayoutSet","onTypeSet","CHART_TYPE_PYRAMID","getKeyFromFilter","filtersWrapper","tooltipTitle","filtersClickableIcon","float","setVisible","orderedFilters","dimValues","getCombinationArrays","orderedCombination","isFilterValid","currentDatasetId","currentValues","mapSettingsWidth","mapFiltersAndSettingsHeight","chartSettingsWidth","chartFiltersAndSettingsHeight","viewerHeader","maxChartTerritoryValueCount","chartConfig","maxTerritoryValueCount","onChartTerritoryDimValuesSet","onChartTypeSet","onIndicatorWarningHide","onArithmeticMeanValuesSet","tmpChartType","setTmpChartType","isMapRendering","setIsMapRendering","tableDimensionFilterValues","setTableDimensionFilterValues","tableHighlightedRowsDimValues","setTableHighlightedRowsDimValues","tableFirstRowDimValues","setTableFirstRowDimValues","setSelectedTerritoryId","setFilteredTerritoryIds","setDimensionValueModifiers","setReferenceYear","dispatchEvent","Event","tableStructures","renderedRow","onTableStructureGenerationComplete","handleMapSelect","terrDimValues","handleMapClick","handleTableRowClick","clickedRow","onMapRenderStart","onMapRenderFinish","handleTableFilter","filteredTerritories","filteredTerritory","leftPanelWidth","rightPanelWidth","leftPanelTopHeight","leftPanelBottomHeight","dimensionsFilter","singleViewer","multiViewer","controls","sheets","sheetContainer","sheet","onDatasetsChange","setDatasets","selectedIdx","setSelectedIdx","datasetToRemove","setDatasetToRemove","isScrollLeftDisabled","setIsScrollLeftDisabled","isScrollRightDisabled","setIsScrollRightDisabled","scrollWidth","clientWidth","newDatasets","newSelectedIdx","uniqWith","handleAddDataset","DataViewerFooter","footerHeight","sidebarWidth","page","tableConfig","maxColCount","maxPointCount","onDatasetFetch","onDownloadHide","onUnavailableViewHide","setMetadataUrl","handleMetadataOpen","handleMetadataClose","setHubExtras","newNodeExtras","newHubExtras","replaceAll","DatasetDomain","datasetDetailLevels","catalogDetailLevelTree","onDetailLevelTreeSet","fetchDetailLevels","onFetchStructureEnable","datasetDetailLevelTree","dsDatasetId","dsNodeCode","dsCategoryPath","dsViewId","onDatasetReset","fetchStructure","selectValues","setSelectValues","lastValorizedIdx","setLastValorizedIdx","onFilterApply","onFilterReset","isApplyDisabled","setIsApplyDisable","getLabelsMap","labelsMap","selects","lastLavorizableIdx","newSelectedValues","PENDING_REQUEST_ADD","PENDING_REQUESTS_CANCEL","PENDING_REQUESTS_CLEAR","cancelPendingRequests","requestUuids","dashboardsBreadcrumbsHeight","dashboardsTitleHeight","dashboardsFiltersHeight","dashboardsHeaderHeight","getIsFilterEnabled","hasDynamicView","fetchDashboard","fetchDashboardsDashboard","clearDashboardsDashboards","fetchDashboardsDataset","setDashboardsDatasetFilter","applyDashboardsDatasetFilter","submitDashboardDatasetDownload","dashboardTitle","commonsFilters","dashboardHeader","setFilterValue","allowedDashboards","setAllowedDashboards","tabIdx","setTabIdx","newAllowedDashboards","uniqBy","handleFetchDatasets","fetchStatic","fetchDynamic","dynamicFilterValue","addRequest","currentDashboardId","DashboardsDomain","cardContainer","useTheme","chunkSize","useMediaQuery","breakpoints","up","categoriesChunk","rootCategory","Link","fontSizes","Subtree","parentPath","ListItemText","categorySchemesTabs","categorySchemeTab","setCategorySchemeTab","uncategorizedCategory","goToDatasets","moduleId","moduleComponent","urlParam","categorizedDataset","uncategorizedDataset","getCategory","elem","categorySchema","fetchNode","getNodeUrl","clearNode","clearCatalog","accessibleDataset","setAccessibleDataset","nodeHavingCode","isFetchNodeEnabled","areNodeAndCatalogOk","exact","a11yParam","filtered","scrollToDatasetId","viewParam","fullPath","endsWith","nodeRoutes","route","APP_LANGUAGE_SET","APP_IS_A11Y_SET","setAppLanguage","DEFAULT_THEME","dark","contrastText","setIsOpen","DELETE_CONFLICT_MODAL_CLOSE","getObjectTranslation","deleteConflictModal","usedBy","setUserPassword","hideUserSetPasswordForm","setPasswordFormRef","isSetPasswordDialogOpen","setPasswordToken","progressContainer","progress","messagesContainer","messages","messageRow","spinner","isHandlerOn","setIsHandlerOn","LinearProgress","goHome","reload","CUSTOM_CSS_SELECTOR_PREFIX","CUSTOM_CSS_SELECTOR_NODE_PREFIX","CUSTOM_CSS_SELECTOR_A11Y_PREFIX","CUSTOM_CSS_SELECTOR_A11Y_NODE_PREFIX","getPath","isFetched","setIsFetched","setTheme","mounted","getCustomCssUrl","doc","implementation","createHTMLDocument","styleEl","appendChild","customTheme","cssRules","selectorText","colorString","rgb","pointer","prop","createTheme","class","CssBaseline","ThemeProvider","isA11yParam","ExternalLogin","close","textMain","textSecondary","justify","WithCustomThemeForNode","prefix","a11yPrefix","startsWith","WithCustomThemeNoNode","onUserSetPasswordFormShow","showUserSetPasswordForm","clearPendingRequests","onMailValidationSubmit","username","submitUserEmailConfirmation","getElementsByClassName","fullscreenIds","elementParent","classList","elementsToRemove","defaultNode","tokenParam","usernameParamBase64","usernameParam","atob","hubRoutes","hubReducer","nodeReducer","catalogReducer","appReducer","INIT","hubConfigReducer","spinnerReducer","timeout","configReducer","nodesConfigReducer","REQUEST_START","cacheReducer","newState","otherConfigReducer","viewLayout","viewLayouts","getFilteredTableLayout","getFilteredMapLayout","getFilteredChartLayout","FREQ_DIMENSION_KEY","timePeriodsByFreqTree","nodeTemplatesConfigReducer","usersConfigReducer","USER_CONFIG_FORM_SHOW","USER_CONFIG_FORM_HIDE","USERS_CONFIG_USERS_CLEAR","USERS_CONFIG_USER_CLEAR","USERS_CONFIG_USER_EDIT","USER_REGISTER_MODAL_HIDE","USERS_CONFIG_USERS_FETCH","USERS_CONFIG_USER_FETCH","USERS_CONFIG_USER_CREATE","haveError","USER_PASSWORD_SET","USER_PASSWORD_CHANGE","nodePermissionsConfigReducer","roles","UserRoles","Administrator","deleteConflictModalReducer","onDeleteConflictForce","appConfigReducer","dashboardConfigReducer","excludedRequestFromClear","pendingRequestReducer","newRequest","requestLabel","cancelTokenSource","newPendingRequests","mapsReducer","detailLevelReducer","searchDialogReducer","rootReducer","pendingRequest","userReducer","userMiddlewareFactory","USER_REFRESH","tokenReceivedTime","tokenTTL","getTime","clearUser","delayedRequest","USER_RESET_PASSWORD_EMAIL_SEND","USER_EMAIL_CONFIRMATION_SUBMIT","nodeLocalizedRequests","requestMiddlewareFactory","handleGenericError","requestAction","onGenericError","getHideErrorMessage","status","errorRequest","handleError","onManagedServerError","handleManagedServerError","startRequest","contentType","doNotTransformResponse","disableCache","axios","CancelToken","nodeSupportedLanguages","nodeDefaultLanguage","getRequestLanguage","withCredentials","transformResponse","responseType","cancelToken","onSuccess","successRequest","handleSuccess","isCancel","configMiddleware","USERS_CONFIG_USER_DELETE","USER_FETCH","USER_LOGOUT","i18nMiddleware","i18n","changeLanguage","requestSpinnerMiddlewareFactory","spinnerState","feedbackMiddlewareFactory","fetchDatasetAsyncHandlerMiddlewareFactory","spinnerUuid","cellCount","getJsonStatTableSize","latitudeId","longitudeId","latAttribute","series","longAttribute","latAttachedDims","relationship","longAttachedDims","territoryValueCount","getPointDataInitialTableLayout","getMultiViewerTableColCount","getInitialTableLayout","getPointDataInitialMapLayout","getInitialMapLayout","getPointDataInitialChartLayout","getMultiViewerInitialChartLayout","getInitialChartLayout","territoryDimLabel","myWorker","successFetchDatasetAsyncHandler","fetchDashboardDatasetAsyncHandlerMiddlewareFactory","DASHBOARDS_DATASET_FETCH","initFetchDashboardDatasetAsyncHandler","dashboardMaps","successFetchDashboardDatasetAsyncHandler","resetFetchDashboardDatasetAsyncHandler","a11yMiddleware","nodeMiddleware","detailLevelMiddleware","searchStr","keyVal","newUrl","history","replaceState","catalogDetailLevels","setDetailLevelFilteredCatalog","actionTransformerMiddleware","transformedAction","getRandomParam","random","configFiles","getAppConfigUrl","getDashboardConfigUrl","getMapLayersConfigUrl","getModulesConfigUrl","showError","hide","getUrlWithFinalSlash","init","configs","getInitConfigUrl","origBaseURL","mapValues","all","ok","responses","getHubLanguagesUrl","resources","translation","supportedAndTranslatedLanguages","enabledModules","modules","enabled","moduleConfigList","getCustomTranslationUrl","customTranslations","urlLang","getFooterHtmlUrl","use","initReactI18next","lng","returnEmptyString","interpolation","escapeValue","moduleReducerFiles","moduleReducerFile","moduleReducerList","moduleReducerMap","detailLevelParam","store","configureStore","reducer","middleware","showTranslatedGenericErrorFactory","fileSaveMiddleware","persistenceMiddleware","newAppConfig","configsToMerge","isArray","subKey","getThemeAppConfig","pwaManifestPath","initAction","ReactDOM","SanitizedHTML","AreaIcon","RadarIcon","PolarIcon","PyramidIcon","CHART_TYPE_HORIZONTAL_BAR","CHART_TYPE_AREA","CHART_TYPE_DOUGHNUT","CHART_TYPE_PIE","CHART_TYPE_RADAR","CHART_TYPE_POLAR_AREA","viewerType","DASHBOARDS_DATASET_DOWNLOAD_SUBMIT","toUpperCaseFirst","marginaldimensions","dimensionlabel","multiplier","offset","dimensionSize","treeRoute","dimValueIdx","currentLevel","iter","selectedPrimaryDim","selectedSecondaryDim","primDimKey","secDimKey","selectableValues","allValues","selectedVal","newColCount","newRowCount","geoDim","getFilteredLayout","initialLayout","isMultiViewerTable","dimArraysKey","tmpLayout","isLayoutValid","primDimVal","secDimVal","allSecondaryDimValues","withLabels","dimensionIdx","prevFilters","availableValue","incompleteValueDims","orderedDimValueTree","getAttributeObject","attributeIdx","attributeValueIdx","attributeValue","getAttributeObjects","attributeCoordinates","attributeObjList","coordinate","seriesIndexes","originalid","attributeObjects","observations","observation","observationIndexes","dataSet","datasetIndexes","dimsId","dimsValueId","attrs","mapClassificationMethod","mapPaletteStartColor","mapPaletteEndColor","mapPaletteCardinality","mapCustomIntervals","mapOpacity","mapIsLegendCollapsed","mapBaseLayer","chartStacked","chartLegendPosition","chartColors","chartShowAxesLabel","chartCustomizeCategoryAxis","chartCategoryAxisLabel","chartValueAxisLabel","chartDataLabelType","SORT_DIRECTION_ASC","SORT_DIRECTION_DESC","SortButtons","ROW_HEIGHT","CHECKBOX_WIDTH","DATA_INDEX_ACTIONS_OBJS","DATA_INDEX_FIXED_ACTIONS_OBJS","DATA_INDEX_CHECKED","DATA_INDEX_RENDERED","DEFAULT_PAGE_SIZE","getIndexesFromPaginationParams","pageNum","startIdx","stopIdx","selectedRowCount","tableActions","renderTableAction","hasToolbarActions","isLoading","isHidden","rowNumStart","rowNumEnd","FilterButton","InfiniteScrollTable","renderGridRow","colWidths","isPaginated","currentPageIndexes","queriedRows","sum","onSearchTextChange","onFiltersChange","onSortChange","getSelectedRowKeys","onRowSelectionChange","getCols","getNormalizedTableActions","renderActions","renderGridRowCols","renderFixedActions","renderHeaderCells","renderCheckboxTitle","renderCheckbox","getPopulatedRows","getColWidths","getQueriedRows","getRenderedRows","onRenderedRowsChange","getGridHeight","onWindowResize","getIsVerticalScrollbarVisible","gridKeyForRefresh","gridScrollbarWidth","getScrollBarWidth","sortCol","sortByDesc","populatedRows","resizeTimeout","pageRequestTimeout","pageRequestParams","viewStartIdx","viewEndIdx","viewIndexesUpdateTimeout","doNotCallOnChangeOnNextRenderedRowsChange","multilangStrDataIndexes","fixedActions","altActions","getIsAltRow","getActionsObjs","populatedRow","colTitleWidth","CELL_PADDING","widthToContent","isVariableSizeCol","variableSizeCols","colWidthsSum","availableWidth","widthToAdd","colWidth","colIndex","colsWidths","resRow","getFilteredGridRows","getSearchTextFilteredGridRows","getSortedGridRows","prevProps","isArrayPropertyChangedLazy","newCols","newPopulatedRows","newColWidths","newRenderedRows","newQueriedRows","newScrollTop","$grid","updateRenderedRows","_this","on","newScrollLeft","which","activeElement","newHeight","nextProps","nextState","nextContext","newPageRequestParams","applyQueryChange","newSearchText","colDataIndex","newSortCol","newSortByDesc","rowKey","getIsDisabledRow","onSelectAll","newSelectedRowKeys","selRowKey","titleRender","noSearchText","getNormalizedFixedActions","disableOnRowClickForCell","getNormalizedActions","getNormalizedAltActions","preHeaderHeight","withValuesFilter","isValuePassingSearchText","column","_a","_b","sorter","defaultSorter","cellData","isRowClickDisabled","colLeftAttr","rowStyle","columnWidths","checkboxProps","getCheckboxProps","overscanStartIdx","overscanEndIdx","pageRowsThird","MAX_PAGE_SIZE","newPaginationParams","maxIdx","minPageSize","maxPageSize","pageNumForMinPageSize","isInteger","minPageNum","maxPageNum","indexes","getPaginationParamsFromIndexes","rowNum","autoSearch","initialScrollOffset","onItemsRendered","visibleStartIndex","visibleStopIndex","overscanStartIndex","overscanStopIndex","prevProp","isDesc","normalize","withSize","MAP_CLASSIFICATION_METHOD_EQUAL_INTERVAL","MAP_CLASSIFICATION_METHOD_NATURAL_BREAKS","MAP_CLASSIFICATION_METHOD_QUANTILE","temp","widthWithScroll","customLangToCountry","langToCountry","setLangToCountry","langCode","CountryLanguage","getLanguageCountries","err","countries","code_2","iconValue","USER_ERRORS_INVALID_LOGIN","EMAIL_CONFIRMATION_SUCCESS","CHART_COLORS_ALL_DIMENSION_VALUES_KEY","getAllDimValuesLabel","getClearedColors","newColors","dimKey","dimValKey","Row","onColorEdit","onColorRemove","rowDimension","itemLabel","itemColor","defaultColor","scrollableRows","dimensionValuesFilter","setColors","isAddColorVisible","setAddColorVisibility","newDim","setNewDim","newDimVal","setNewDimVal","newColor","setNewColor","isDimension","setIsDimension","isColorPickerVisible","setColorPickerVisibility","tmpDim","setTmpDim","tmpDimVal","setTmpDimVal","handleAddColorClose","handleColorRemove","handleColorEdit","handleColorPickerClose","rgba","configFolderPath","getClearMemoryCacheUrl","isFull","force","getQueryLog","getTokenUrl","getRefreshTokenUrl","getRemoveTokenUrl","getExternalLoginUrl","getUsersConfigGetUrl","getUserConfigGetUrl","getUserConfigPostUrl","getUserConfigPutUrl","getUserDeleteUrl","getUserSendResetPasswordMailUrl","getUserResetPasswordUrl","getUserChangePasswordUrl","getUserVerifyMailUrl","getLocale","it","itLocale","en","enLocale","fr","frLocale","es","esLocale","pt","ptLocale","de","deLocale","openTo","utils","DateFnsUtils","locale","clearable","cancelLabel","clearLabel","okLabel","todayLabel","PageSection","gutterBottom","AutoSearchInput","tempValue","onClear","closeButton","PERSISTENCE_LOCAL_STORAGE_KEY","PERSISTENCE_ACTION_KEY","Selector","detailTitle","onDetail","PDF_ORIENTATION_HORIZONTAL","QUERY_LOG_DOWNLOAD","stringifyResponse","getNodeLatestNewsUrl","getAllNewsUrl","getDeleteNewsUrl","getNewsUrl","getSubmitNewsUrl","getExportNewsUrl","getGenericPermissionStr","NEWS_TYPE_DATA_UPDATES","NEWS_TYPE_NEW_FUNCTIONALITY","NEWS_TYPE_NEW_NODE","NEWS_TYPE_EVENT","getFormattedDate","dateStr","toLocaleDateString","day","month","canvasWidthPixel","canvasHeightPixel","onExportComplete","exportedContentW","imageContent","pdfContent","hasLogo","hasTitle","hasFilters","hasIndicatorNote","imageFilters","pdfFilters","addFilter","isLast","marginalDimIdx","noteLabel","noteValueLabel","html2canvas","imageContentCanvas","mergedCanvas","fillStyle","fillRect","download","toDataURL","removeChild","imgHeight","imgWidth","imgMargins","pageMargin","canvasWHRatio","freeSpaceHeight","pageLongSize","pageShortSize","scale","freeSpaceWidth","printPdf","pdfMake","vfs","pdfFonts","createPdf","pageMargins","pageOrientation","alignment","defaultStyle","bold","italic","italics","callback","Image","onload","dataURL","fit","addLogoFromUrl","getCustomExportCommonParams","origLayout","parameters","csvTextQualifier","invertTimeDimension","datasetAttributesLabel","seriesAttributesLabel","indicatorNote","excelLimitMessage","excelRowsLimitMessage","rowsLimit","maxRowsPerSheet","excelColumnsLimitMessage","colsLimit","maxColsPerSheet","observationValueLabel","variationLabel","trendLabel","cyclicalLabel","dataCriterias","marginalDefinition","indicatorDefinitions","dataflowItems","obj","pickBy","prefLang","langs","fromPairs","USER_CLEAR","USER_LOGIN_FORM_SHOW","USER_LOGIN_FORM_HIDE","USER_DELAYED_REQUEST_WHEN_TOKEN_EXPIRED_SET","USER_DELAYED_REQUEST_WHEN_TOKEN_EXPIRED_CLEAR","USER_SET_PASSWORD_FORM_SHOW","USER_SET_PASSWORD_FORM_HIDE","USER_CHANGE_PASSWORD_FORM_SHOW","USER_CHANGE_PASSWORD_FORM_HIDE","USER_REGISTER_MODAL_SHOW","USER_EDIT_USER_MODAL_SHOW","USER_EDIT_USER_MODAL_HIDE","USER_EDIT_USER_FETCH","USER_EDIT_USER_SUBMIT","USER_EDIT_USER_CLEAR","Email","Password","btoa","frequencies","timePeriodCodes","nodeConfig","nodeConfigMin","nodeConfigMax","add","getDefaultMaxPeriod","freqDimCodes","availableFreqValues","selectedFreqValues","timeDimCodes","minAndMax","criteriaObj","dimensionCriteria","alignContent","getPermissionStr","getIsUserAuthenticated","UserPermissions","ManageCache","ManageTemplate","ManageConfig","FILE_SAVE_GENERIC_ACTION_LABEL","partialcontent","FileSaver","saveAs","Blob","arrays","j","getNthValorizedElementIndexInBooleanArray","array","lastIdx","getColorLuminanceFromRgba","rgbaColor","rgbaArr","rgbArr","getL","pow","getLightOrDarkColorBasedOnContrastRatio","rgbaLightColor","rgbaDarkColor","colorL","lightColorL","elementId","elementParentId","elementToRemoveIds","fullscreen","after","el1Id","el2Id","el1","el2","domRect1","domRect2","str1","str2","indicatorJoinDimensions","targetValue","targetDimension","dataflowFormulaItems","filteredVariables","formulaItems","itemName","dataflowJoinDimensions","territoryDims","timeDims","Z","version","sources","mappings","sourcesContent","sourceRoot","media","sourceMap","updater","references","enumerable","highest","high","normal","low","lowest","w","once","listenTo","E","emitter","callbacks","z","stopListening","V","fire","R","u","delegate","stopDelegating","_addEventListener","childEvents","B","priority","_removeEventListener","K","configurable","property","toMany","_observable","_bindProperties","_to","_bindings","unbind","decorate","object","methodName","tt","Q","X","observable","properties","Y","et","command","Jt","re","dn","En","Pn","On","writable","Mn","Wn","qo","tr","Pr","ua","zn","added","as","using","plugin","m","missingPlugin","requiredBy","pluginItem","pluginName","plugin1","plugin2","quantity","uiLanguage","contentLanguage","Plugin","includeSelf","parentFirst","pattern","h","hc","Jc","tl","cl","Gc","Kl","Ll","$l","done","previousPosition","nextPosition","boundaries","ignoreElementEnd","fake","addedRange","intersectingRange","hd","fd","idProperty","wd","isMac","isWindows","isGecko","isSafari","isiOS","isAndroid","isBlink","features","isRegExpUnicodePropertySupported","ctrl","cmd","arrowleft","arrowup","arrowright","arrowdown","backspace","enter","space","esc","lu","breakAttributes","hu","firstIndex","lastIndexOld","lastIndexNew","howMany","Pu","injectType","Nu","inlineFillerPosition","withChildren","equal","insert","Ru","qu","Iu","Uu","lh","domElement","viewElement","backward","sh","Ju","startPosition","qn","capture","passive","_getProxyEmitter","_getAllProxyEmitters","yh","childList","characterData","characterDataOldValue","subtree","oldText","newText","oldChildren","newChildren","hh","useCapture","keyCode","altKey","ctrlKey","shiftKey","metaKey","oldSelection","newSelection","domSelection","newElement","tp","op","Cu","Zd","fp","hp","dp","viewportOffset","nodeList","stickiness","rootName","modelPosition","viewPosition","mapper","isPhantom","dispatcher","selection","markerName","markerRange","range","attributeKey","attributeOldValue","attributeNewValue","shallow","reconversion","changes","consumable","writer","convertItem","convertChildren","doNotAddConsumables","convertAttributes","canReuseView","directChange","attributeKeys","Zp","Jp","deletionPosition","ng","oldMarkers","preflight","Zg","elementName","modeOrFilter","Ug","$g","Ag","Cg","yg","gm","wm","schema","defer","commandName","qm","Sm","Tm","Bm","Pm","Im","Rm","zm","Vm","allowIn","allowContentOf","allowWhere","allowAttributes","allowAttributesOf","allowChildren","inheritTypesFrom","Om","Fm","Mm","getAttributeKeys","getAttribute","walker","viewItem","modelCursor","modelRange","cursorParent","renderingMode","isUndoable","ignoreWhitespaces","dispatchers","isDowncast","model","converterPriority","ub","db","sb","ab","rb","usingOperation","affectsData","Eb","Db","Tb","Sb","newMarkerData","oldMarkerData","oldRange","newRange","includeChangesInGraveyard","changeCount","operation","historyVersion","managedUsingOperations","Jb","Xb","tk","ignoreMarkers","uk","dk","hk","_k","bk","isLimit","isBlock","isObject","isInline","isContent","Pk","batch","doNotAutoparagraph","rk","lk","kk","sk","singleCharacters","isForward","unit","treatEmojiAsSingleUnit","Ak","Bk","lockId","originalName","editorUI","updateSourceElement","Zk","Ow","Hw","intoFragment","bindings","isApplying","revertData","Uw","eventNameOrFunction","if","valueIfTrue","s_","n_","o_","Xw","r_","tag","w_","ns","viewBox","y_","T_","tabindex","z_","Black","Grey","White","Red","Orange","Yellow","Green","Aquamarine","Turquoise","Blue","Purple","hasBorder","U_","focusables","focusTracker","keystrokeHandler","focusPrevious","focusNext","tv","selectstart","childView","dropdownPanel","sv","targetRect","positionedElementAncestor","viewportRect","limiterRect","fv","fitInViewport","positions","mv","south","southEast","southWest","southMiddleEast","southMiddleWest","north","northEast","northWest","northMiddleEast","northMiddleWest","removeItems","Av","mousedown","Kv","tooltipPosition","Bv","Fv","Hv","$v","Uv","Bw","activator","contextElements","Zv","Jv","Yv","Xv","iA","for","hA","bA","readonly","inputmode","change","EA","ariaDescribedById","inputMode","FA","limiter","withArrow","WA","northWestArrowSouthWest","northWestArrowSouthMiddleWest","northWestArrowSouth","northWestArrowSouthMiddleEast","northWestArrowSouthEast","northArrowSouthWest","northArrowSouthMiddleWest","northArrowSouth","northArrowSouthMiddleEast","northArrowSouthEast","northEastArrowSouthWest","northEastArrowSouthMiddleWest","northEastArrowSouth","northEastArrowSouthMiddleEast","northEastArrowSouthEast","southWestArrowNorthWest","southWestArrowNorthMiddleWest","southWestArrowNorth","southWestArrowNorthMiddleEast","southWestArrowNorthEast","southArrowNorthWest","southArrowNorthMiddleWest","southArrowNorth","southArrowNorthMiddleEast","southArrowNorthEast","southEastArrowNorthWest","southEastArrowNorthMiddleWest","southEastArrowNorth","southEastArrowNorthMiddleEast","southEastArrowNorthEast","viewportStickyNorth","$A","QA","viewportOffsetConfig","sC","mC","yC","OC","operationsA","operationsB","originalOperations","nextBaseVersionA","nextBaseVersionB","originalOperationsACount","originalOperationsBCount","qC","jC","side","wasInLeftElement","wasStartBeforeMergedElement","wasEndBeforeMergedElement","wasInRightElement","aIsStrong","aWasUndone","bWasUndone","abRelation","baRelation","forceWeakRemove","FC","uC","origin","originFocusTracker","originKeystrokeHandler","DC","isDirectHost","keepOnFocus","hostElement","SC","Wy","shouldGroupWhenFull","shouldToolbarGroupWhenFull","Gk","configuredOptions","tx","ex","isFormatting","center","enableActiveItemFocusOnDropdownOpen","isToggleable","copyOnEnter","upcastAlso","keystroke","dataTransfer","targetRanges","Tx","leaveUnmerged","Sx","isSoft","isTyping","doNotResetEntireContent","sequence","anchorNode","anchorOffset","focusNode","focusOffset","oldDescriptor","newDescriptor","Qx","fE","bE","xE","EE","yE","VE","leading","maxWait","trailing","KE","dD","lD","resultRange","insertions","deletions","firstChangeAt","hE","vD","RD","ID","ranges","isBackward","JD","useRelations","padWithNoOps","isUndo","lS","withText","colorDefinitions","removeButtonLabel","documentColorsLabel","documentColorsCount","dropdownView","componentName","dropdownLabel","inheritAllFrom","OS","qS","Paragraph","commandValue","Gv","isOn","pB","addTargetToExternalLinks","Downloadable","$D","lB","AB","toolbarId","getRelatedElement","balloonClassName","DB","widthPercents","WB","UB","YB","Pw","Iw","nP","listIndent","_P","listType","sameIndent","smallerIndent","EP","xP","foo","XP","TP","reversed","attributeName","addCommand","appliesToListItem","setAttributeOnDowncast","getAttributeOnUpcast","EI","PI","KI","parentCommandName","buttonLabel","buttonIcon","styleGridAriaLabel","styleDefinitions","listStyleCommand","enabledProperties","styleButtonViews","headingRows","headingColumns","hR","cell","Xx","rE","hasSelectionHandle","findOptimalPosition","at","copyStructureFromAbove","startRow","endRow","startColumn","endColumn","includeAllSlots","LR","uR","HR","jR","JR","qR","first","last","FR","NR","sz","colspan","az","rowspan","cellsToMove","cellsToTrim","hz","dz","lz","WR","newCellsSpan","updatedSpan","mergeWidth","mergeHeight","mz","Nz","asWidget","Az","Tz","Vz","Oz","Gz","bindIsOn","isEnabled","nV","iV","firstColumn","lastColumn","lastRow","cells","uV","gV","pV","fV","AV","DV","blur","none","solid","dotted","dashed","double","groove","ridge","inset","outset","_borderStyleValue","defaultColorValue","GV","_role","_ariaLabelledBy","YV","eO","rO","middle","borderStyle","horizontalAlignment","verticalAlignment","labelView","colorConfig","borderRowLabel","borderStyleDropdown","borderColorInput","borderWidthInput","backgroundRowLabel","backgroundInput","dimensionsLabel","widthInput","operatorLabel","heightInput","isCompact","LV","icons","propertyName","nameToValue","horizontalAlignmentToolbar","verticalAlignmentToolbar","alignmentLabel","saveButtonView","cancelButtonView","borderColors","backgroundColors","includeVerticalAlignmentProperty","includeHorizontalAlignmentProperty","includePaddingProperty","isRightToLeftContent","defaultTableCellProperties","mO","viewField","errorText","TO","BO","modelElement","modelAttribute","styleName","GO","ZO","reduceBoxSides","UO","valign","$O","SO","_F","vF","leftEdge","rightEdge","columnPosition","elements","modelTable","viewFigure","viewColgroup","viewLeftColumn","viewRightColumn","viewResizer","widths","viewFigureParentWidth","tableWidth","leftColumnWidth","rightColumnWidth","flags","isRightEdge","isTableCentered","isLtrContent","mF","bF","yF","includeAlignmentProperty","PO","NF","LF","WF","HF","qF","alignmentToolbar","defaultTableProperties","cM","contentToolbar","Intl","NumberFormat","getFormattedInt","valueStr","subStrs","sign","getRoundedNumber","thousandsSeparator","valParts","integerPart","decimalPart","repeat","prototype","trim","SECONDS_PER_DAY","SECONDS_PER_HOUR","totalSeconds","days","hours","minutes","seconds","wellFormattedTimeString","mins","sec","Call","refreshTokenExpiration","dictionary","Alignment","Background","Bold","Border","Cancel","Circle","Color","Column","Dashed","Decimal","Dimensions","Disc","Dotted","Double","Groove","Heading","Height","Inset","Italic","Justify","Next","None","Outset","Padding","Previous","Redo","Ridge","Save","Solid","Square","Strikethrough","Style","Underline","Undo","Unlink","Width","getPluralForm","CKEDITOR_TRANSLATIONS","PERCENTAGE_AXES_ID","VALUE_AXES_ID","CHART_DATA_LABEL_TYPE_PERCENTAGE","defaultChartSettings","getCompleteChartSettings","newChartSettings","getFilterDims","getChartType","getVariationChartType","isBarChart","isLineChart","isBarOrLineChart","getDimensionValueTree","defaultChartColor","primaryDimArr","originalPrimaryDimValues","secondaryDimArr","originalSecondaryDimValues","valorizedDataMap","secondaryDimValue","valorizedDataArr","reversedData","reversedDatasets","valorizedValues","secDimIdx","variations","getDataAndAttributes","dataAttributes","primaryDimValue","primDimIdx","filtersValueFull","variationDimValue","yAxisID","isVariation","availableTimePeriods","colorArr","getPrimaryDimValueColors","valIdx","getDatasetColors","getFill","lineTension","pointBackgroundColor","pointRadius","pointHoverRadius","pointBorderColor","pointBorderWidth","pointHoverBorderWidth","getOptions","primaryDimLabel","abs","xAxes","scaleLabel","labelString","gridLines","beginAtZero","axisDecimalPlaces","yAxes","isArithmeticMeanVisible","responsive","maintainAspectRatio","animationDuration","scales","legend","tooltips","tooltipItems","tooltipItem","datasetIndex","getValue","footerFontStyle","footerMarginTop","plugins","zoom","pan","datalabels","formatter","ctx","font","family","clamp","annotation","drawTime","events","annotations","meanIdx","secondaryDimValueLabel","scaleID","xAdjust","Chart","chartRef","gridLineWidth","legendBoxWidth","legendPadding","increaseLegendElementPadding","axis","lineWidth","boxWidth","afterFit","labelsBackup","update","externalChartSettings","defaults","global","defaultFontFamily","myChart","beforeDraw","chart","prevChartSettings","isInvalidPyramid","isChartEmpty","initRequestPayload","requestActionPayload","ButtonSelect","handleMenu","Item","isUnselectable","useStyles","makeStyles","fullScreen","disableEscapeKeyDown","onEnter","tableIcons","Add","Check","Clear","Delete","DetailPanel","Edit","Export","Filter","FirstPage","LastPage","NextPage","PreviousPage","ResetSearch","Search","SortArrow","ThirdStateCheck","ViewColumn","toolbarSearch","toolbarActions","components","toolbarRightActionsWidth","toolbarHeight","customProps","emptyDataSourceMessage","searchPlaceholder","searchTooltip","paging","draggable","searchFieldAlignment","mergedProps","Toolbar","toolbarProps","I18nTextField"],"mappings":"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","file":"static/js/main.6bf95091.chunk.js","sourcesContent":["import {initRequest, RequestMethod} from \"../../middlewares/request/requestActions\";\r\nimport {\r\n clearDatasetCacheUrl,\r\n getCreateTemplateUrl,\r\n getCreateViewUrl,\r\n getDatasetCacheInfoUrl,\r\n getDatasetCacheUpdateUrl,\r\n getDatasetCustomDownloadUrl,\r\n getDatasetDetailLevels,\r\n getDatasetDownloadUrl,\r\n getDatasetExportMetadataUrl,\r\n getDatasetSdmxQueryUrl,\r\n getDatasetStructureCodelistsUrl,\r\n getDatasetStructureCodelistUrl,\r\n getDatasetStructureDynamicCodelistUrl,\r\n getDatasetStructureUrl,\r\n getDatasetTerritories,\r\n getDatasetUrl,\r\n getDatasetWithIndicatorsUrl,\r\n getDatasetWithMarginalCustomDownloadUrl,\r\n getDatasetWithMarginalUrl,\r\n getDeleteTemplateUrl,\r\n getNodeCatalogUrl\r\n} from \"../../serverApi/urls\";\r\nimport {CRITERIA_FILTER_TYPE_RANGE, getCriteriaArrayFromObject} from \"../../utils/criteria\";\r\nimport {AdditionalDataset, Criteria, getIndicatorsDefinition, getMarginalDefinition, Indicator} from \"./constants\";\r\nimport moment from \"moment\";\r\nimport {\r\n DOWNLOAD_FORMAT_CSV,\r\n DOWNLOAD_FORMAT_EXCEL,\r\n downloadFormats,\r\n getCustomExportRequestBody,\r\n getCustomExportRequestBodyWithMarginal\r\n} from \"../../utils/download\";\r\n\r\nexport const DATASET_STRUCTURE_FETCH_ENABLE = \"dataset/structure/fetch/enable\";\r\nexport const DATASET_STRUCTURE_FETCH = \"dataset/structure/fetch\";\r\nexport const DATASET_FETCH_ENABLE = \"dataset/fetch/enable\";\r\nexport const DATASET_FETCH = \"dataset/fetch\";\r\nexport const DATASET_CRITERIA_SHOW = \"dataset/criteria/show\";\r\nexport const DATASET_CRITERIA_HIDE = \"dataset/criteria/hide\";\r\nexport const DATASET_CRITERIA_ALERT_HIDE = \"dataset/criteria/alert/hide\";\r\nexport const DATASET_CRITERIA_OBS_COUNT_WARNING_HIDE = \"dataset/criteria/obs/count/warning/hide\";\r\nexport const DATASET_STRUCTURE_CODELIST_FETCH = \"dataset/structure/codelist/fetch\";\r\nexport const DATASET_STRUCTURE_CRITERIA_SET = \"dataset/structure/criteria/set\";\r\nexport const DATASET_STRUCTURE_CRITERIA_RESET = \"dataset/structure/criteria/reset\";\r\n\r\nexport const DATASET_TERRITORY_SHOW = \"dataset/territory/show\";\r\nexport const DATASET_TERRITORY_HIDE = \"dataset/territory/hide\";\r\nexport const DATASET_TERRITORY_DETAIL_LEVELS_FETCH = \"dataset/territory/detail/levels/fetch\";\r\nexport const DATASET_TERRITORY_DETAIL_LEVEL_TREE_SET = \"dataset/territory/detail/level/tree/set\";\r\nexport const DATASET_TERRITORY_DETAIL_LEVEL_SET = \"dataset/territory/detail/level/set\";\r\nexport const DATASET_TERRITORY_TERRITORIES_FETCH = \"dataset/territory/territories/fetch\";\r\nexport const DATASET_TERRITORY_TERRITORIES_SET = \"dataset/territory/territories/set\";\r\nexport const DATASET_TERRITORY_TERRITORIES_SUBMIT = \"dataset/territory/territories/submit\";\r\nexport const DATASET_TERRITORY_LAST_YEAR_FETCH = \"dataset/territory/last/year/fetch\";\r\nexport const DATASET_CACHE_INFO_FETCH = \"dataset/cacheinfo/fetch\";\r\nexport const DATASET_CACHE_CLEAR = \"dataset/cache/clear\";\r\nexport const DATASET_DELETE_TEMPLATE = \"dataset/template/delete\";\r\nexport const DATASET_CACHE_INFO_TTL_UPDATE = \"dataset/cacheinfo/ttl/update\";\r\n\r\nexport const DATASET_STATE_BACKUP = \"dataset/state/backup\";\r\nexport const DATASET_STATE_RESET = \"dataset/state/reset\";\r\n\r\nexport const DATASET_VIEWER_MODE_SET = \"dataset/viewer/mode/set\";\r\n\r\nexport const DATASET_VIEWER_SET = \"dataset/viewer/set\";\r\nexport const DATASET_VIEWER_TABLE_VISIBILITY_SET = \"dataset/viewer/table/visibility/set\";\r\nexport const DATASET_VIEWER_MAP_VISIBILITY_SET = \"dataset/viewer/map/visibility/set\";\r\nexport const DATASET_VIEWER_CHART_VISIBILITY_SET = \"dataset/viewer/chart/visibility/set\";\r\nexport const DATASET_VIEWER_CHART_TYPE_SET = \"dataset/viewer/chart/type/set\";\r\n\r\nexport const DATASET_TABLE_LAYOUT_SUBMIT = \"dataset/table/layout/submit\";\r\nexport const DATASET_TABLE_FILTERS_TREE_SUBMIT = \"dataset/table/filters/tree/submit\";\r\nexport const DATASET_MAP_LAYOUT_SUBMIT = \"dataset/map/layout/submit\";\r\nexport const DATASET_CHART_LAYOUT_SUBMIT = \"dataset/chart/layout/submit\";\r\nexport const DATASET_CHART_FILTERS_TREE_SUBMIT = \"dataset/chart/filters/tree/submit\";\r\nexport const DATASET_CHART_LAYOUT_TERRITORY_DIM_VALUES_SET = \"dataset/chart/layout/territory/dim/values/set\";\r\n\r\nexport const DATASET_LABEL_FORMAT_SET = \"dataset/label/format/set\";\r\n\r\nexport const DATASET_VARIATION_SET = \"dataset/variation/set\";\r\n\r\nexport const DATASET_TEMPORAL_DIM_ORDER_SET = \"dataset/temporalDimOrder/set\";\r\n\r\nexport const DATASET_CHART_SETTINGS_SET = \"dataset/chart/settings/set\";\r\n\r\nexport const DATASET_MAP_SETTINGS_SET = \"dataset/map/settings/set\";\r\n\r\nexport const DATASET_DOWNLOAD_SUBMIT = \"dataset/download/submit\";\r\nexport const DATASET_DOWNLOAD_WARNING_HIDE = \"dataset/download/warning/hide\";\r\n\r\nexport const DATASET_VIEW_TEMPLATE_SHOW = \"dataset/view/template/show\";\r\nexport const DATASET_VIEW_TEMPLATE_HIDE = \"dataset/view/template/hide\";\r\nexport const DATASET_VIEW_TEMPLATE_SUBMIT = \"dataset/view/template/submit\";\r\nexport const DATASET_VIEW_ERROR_HIDE = \"dataset/view/error/hide\";\r\n\r\nexport const DATASET_UNAVAILABLE_VIEW_WARNING_HIDE = \"dataset/unavailable/view/warning/hide\";\r\n\r\nexport const DATASET_HTML_GENERATING_TIME_SET = \"dataset/html/generating/time/set\";\r\n\r\nexport const DATASET_SDMX_QUERY_SHOW = \"dataset/sdmx/query/show\";\r\nexport const DATASET_SDMX_QUERY_HIDE = \"dataset/sdmx/query/hide\";\r\nexport const DATASET_SDMX_QUERY_FETCH = \"dataset/sdmx/query/fetch\";\r\n\r\nexport const DATASET_INDICATOR_CREATE_VISIBILITY_SET = \"dataset/indicator/create/visibility/set\";\r\nexport const DATASET_INDICATOR_LIST_VISIBILITY_SET = \"dataset/indicator/list/visibility/set\";\r\nexport const DATASET_INDICATOR_PREVIEW_FETCH = \"dataset/indicator/preview/fetch\";\r\nexport const DATASET_INDICATOR_PREVIEW_RESET = \"dataset/indicator/preview/reset\";\r\nexport const DATASET_INDICATOR_PUBLISH = \"dataset/indicator/publish\";\r\nexport const DATASET_INDICATOR_DELETE = \"dataset/indicator/delete\";\r\nexport const DATASET_INDICATOR_WARNING_HIDE = \"dataset/indicator/warning/hide\";\r\nexport const DATASET_INDICATOR_ARITHMETIC_MEAN_VISIBILITY_SET = \"dataset/indicator/arithmeticMean/visibility/set\";\r\nexport const DATASET_INDICATOR_ARITHMETIC_MEAN_VALUES_SET = \"dataset/indicator/arithmeticMean/values/set\";\r\nexport const DATASET_INDICATOR_STANDARD_DEVIATION_VISIBILITY_SET = \"dataset/indicator/standardDeviation/visibility/set\";\r\nexport const DATASET_INDICATOR_COEFFICIENT_OF_VARIATION_VISIBILITY_SET = \"dataset/coefficientOfVariation/visibility/set\";\r\n\r\nexport const DATASET_ADDITIONAL_DATASET_CREATE_VISIBILITY_SET = \"dataset/additionalDataset/create/visibility/set\";\r\nexport const DATASET_ADDITIONAL_DATASET_LIST_VISIBILITY_SET = \"dataset/additionalDataset/list/visibility/set\";\r\nexport const DATASET_ADDITIONAL_DATASET_CATALOG_FETCH = \"dataset/additionalDataset/catalog/fetch\";\r\nexport const DATASET_ADDITIONAL_DATASET_CHANGE = \"dataset/additionalDataset/change\";\r\nexport const DATASET_ADDITIONAL_DATASET_STURCTURE_FETCH = \"dataset/additionalDataset/structure/fetch\";\r\nexport const DATASET_ADDITIONAL_DATASET_SUBMIT = \"dataset/additionalDataset/submit\";\r\nexport const DATASET_ADDITIONAL_DATASET_DELETE = \"dataset/additionalDataset/delete\";\r\nexport const DATASET_ADDITIONAL_DATASET_CRITERIA_SET = \"dataset/additionalDataset/criteria/set\";\r\n\r\nexport const DATASET_DOWNLOAD_METADATA_SUBMIT = \"dataset/download/metadata/submit\";\r\n\r\nexport const DATASET_STRUCTURE_CODELIST_FULL_FETCH = \"dataset/structure/codelist/full/fetch\";\r\nexport const DATASET_STRUCTURE_CODELIST_FULL_HIDE = \"dataset/structure/codelist/full/hide\";\r\n\r\nexport const DATASET_SET_FULLSCREEN = \"dataset/set/fullscreen\";\r\n\r\nexport const ALL_FULL = \"FullAll\";\r\nexport const ALL_PARTIAL = \"PartialAll\";\r\nexport const STEP_BY_STEP_FULL = \"FullStep\";\r\nexport const STEP_BY_STEP_PARTIAL = \"PartialStep\";\r\nexport const STEP_BY_STEP_DYNAMIC = \"Dynamic\";\r\n\r\nexport const CRITERIA_SELECTION_MODE_STEP_BY_STEP = \"stepByStep\";\r\nexport const CRITERIA_SELECTION_MODE_ALL = \"all\";\r\n\r\nexport const CRITERIA_SELECTION_TYPE_FULL = \"full\";\r\nexport const CRITERIA_SELECTION_TYPE_PARTIAL = \"partial\";\r\nexport const CRITERIA_SELECTION_TYPE_DYNAMIC = \"dynamic\";\r\n\r\nexport const enableDatasetStructureFetch = (nodeCode: string, categoryPath: string[], datasetId: string, viewId: string) => ({\r\n type: DATASET_STRUCTURE_FETCH_ENABLE,\r\n payload: {\r\n datasetId: datasetId,\r\n nodeCode: nodeCode,\r\n categoryPath: categoryPath,\r\n viewId: viewId\r\n }\r\n});\r\n\r\nexport const fetchDatasetStructure = (nodeId: number, datasetId: string, viewId: string, isMultiViewerTheme: boolean) => initRequest(\r\n DATASET_STRUCTURE_FETCH,\r\n getDatasetStructureUrl(nodeId, datasetId, viewId),\r\n RequestMethod.GET,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingDatasetStructure\")\r\n }),\r\n {\r\n nodeId: nodeId,\r\n datasetId: datasetId,\r\n viewId: viewId,\r\n isMultiViewerTheme: isMultiViewerTheme\r\n }\r\n);\r\n\r\nexport const enableDatasetFetch = (maxObservation?: number) => ({\r\n type: DATASET_FETCH_ENABLE,\r\n payload: {\r\n maxObservation\r\n }\r\n});\r\n\r\nexport const fetchDataset = (\r\n nodeId: number,\r\n nodeCode: string,\r\n datasetId: string,\r\n datasetTitle: string,\r\n criteria: {[key: string]: Criteria},\r\n timeDim: string,\r\n territoryDim: string | null,\r\n indicators: Indicator[],\r\n additionalDatasets: AdditionalDataset[],\r\n defaultLanguage: string,\r\n languages: string[],\r\n indicatorsBaseUrl?: string\r\n) => {\r\n\r\n let url, body, baseUrl = undefined;\r\n\r\n const datasets = [\r\n {\r\n nodeId: nodeId,\r\n nodeCode: nodeCode,\r\n datasetId: datasetId,\r\n datasetTitle: datasetTitle,\r\n criteria: criteria,\r\n timeDim: timeDim,\r\n territoryDim: territoryDim\r\n },\r\n ...additionalDatasets\r\n ];\r\n\r\n if (indicators.length > 0) {\r\n url = getDatasetWithIndicatorsUrl(false);\r\n body = getIndicatorsDefinition(indicators, datasets, timeDim, defaultLanguage, languages);\r\n baseUrl = indicatorsBaseUrl;\r\n\r\n } else if (additionalDatasets.length > 0) {\r\n url = getDatasetWithMarginalUrl();\r\n body = getMarginalDefinition(datasets);\r\n baseUrl = indicatorsBaseUrl;\r\n\r\n } else {\r\n url = getDatasetUrl(nodeId, datasetId);\r\n body = getCriteriaArrayFromObject(criteria)\r\n }\r\n\r\n return initRequest(\r\n DATASET_FETCH,\r\n url,\r\n RequestMethod.POST,\r\n body,\r\n t => ({\r\n onStart: additionalDatasets.length === 0\r\n ? t(\"scenes.dataset.actions.fetchingDataset\", {title: datasetTitle})\r\n : t(\"scenes.dataset.actions.fetchingMergedDatasets\")\r\n }),\r\n undefined,\r\n baseUrl,\r\n (statusCode: number) => (statusCode === 413 || statusCode === 414)\r\n );\r\n};\r\n\r\nexport const showDatasetCriteria = () => ({\r\n type: DATASET_CRITERIA_SHOW\r\n});\r\n\r\nexport const hideDatasetCriteria = () => ({\r\n type: DATASET_CRITERIA_HIDE\r\n});\r\n\r\nexport const hideDatasetCriteriaAlert = () => ({\r\n type: DATASET_CRITERIA_ALERT_HIDE\r\n});\r\n\r\nexport const hideDatasetCriteriaObsCountWarning = () => ({\r\n type: DATASET_CRITERIA_OBS_COUNT_WARNING_HIDE\r\n});\r\n\r\nexport const fetchDatasetStructureCodelist = (nodeId: number, nodeCode: string, datasetId: string, mode: string, type: string, dimensionId: string, criteria: {[key: string]: Criteria}, freq: string, defaultLastNPeriods: number, preserveFiltersWithDynamic: boolean) => {\r\n\r\n let flatCriteria = getCriteriaArrayFromObject(criteria);\r\n\r\n if (mode === CRITERIA_SELECTION_MODE_ALL) {\r\n return initRequest(\r\n DATASET_STRUCTURE_CODELIST_FETCH,\r\n getDatasetStructureCodelistsUrl(nodeId, datasetId, type === CRITERIA_SELECTION_TYPE_FULL),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingCodelists\")\r\n }),\r\n {\r\n nodeCode: nodeCode,\r\n datasetId: datasetId,\r\n defaultLastNPeriods: defaultLastNPeriods,\r\n freq: freq\r\n }\r\n );\r\n\r\n } else if (type === CRITERIA_SELECTION_TYPE_DYNAMIC) {\r\n return initRequest(\r\n DATASET_STRUCTURE_CODELIST_FETCH,\r\n getDatasetStructureDynamicCodelistUrl(nodeId, datasetId, dimensionId),\r\n RequestMethod.POST,\r\n flatCriteria,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingCodelist\")\r\n }),\r\n {\r\n nodeCode: nodeCode,\r\n datasetId: datasetId,\r\n defaultLastNPeriods: defaultLastNPeriods,\r\n preserveFiltersWithDynamic: preserveFiltersWithDynamic,\r\n freq: freq\r\n },\r\n undefined,\r\n (statusCode: number) => statusCode === 414\r\n );\r\n\r\n } else {\r\n return initRequest(\r\n DATASET_STRUCTURE_CODELIST_FETCH,\r\n getDatasetStructureCodelistUrl(nodeId, datasetId, dimensionId, type === CRITERIA_SELECTION_TYPE_FULL),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingCodelist\")\r\n }),\r\n {\r\n nodeCode: nodeCode,\r\n datasetId: datasetId,\r\n defaultLastNPeriods: defaultLastNPeriods,\r\n freq: freq\r\n }\r\n );\r\n }\r\n};\r\n\r\nexport const setDatasetStructureCriteria = (criteria: {[key: string]: Criteria}) => ({\r\n type: DATASET_STRUCTURE_CRITERIA_SET,\r\n criteria\r\n});\r\n\r\nexport const resetDatasetStructureCriteria = () => ({\r\n type: DATASET_STRUCTURE_CRITERIA_RESET\r\n});\r\n\r\nexport const showDatasetTerritory = () => ({\r\n type: DATASET_TERRITORY_SHOW\r\n});\r\n\r\nexport const hideDatasetTerritory = (detailLevel: number, territories: string[]) => ({\r\n type: DATASET_TERRITORY_HIDE,\r\n detailLevel,\r\n territories\r\n});\r\n\r\nexport const fetchDatasetCacheInfo = (nodeId: number, datasetId: string) => initRequest(\r\n DATASET_CACHE_INFO_FETCH,\r\n getDatasetCacheInfoUrl(nodeId, datasetId),\r\n RequestMethod.GET,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingDatasetCacheInfo\")\r\n })\r\n);\r\n\r\nexport const updateDatasetCacheTtl = (nodeId: number, datasetId: string, ttl: number) => initRequest(\r\n DATASET_CACHE_INFO_TTL_UPDATE,\r\n getDatasetCacheUpdateUrl(nodeId, datasetId),\r\n RequestMethod.PUT,\r\n {ttl: ttl},\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.cacheSettings.messages.updateDataflowCache.start\")\r\n }),\r\n {\r\n ttl: ttl,\r\n nodeId: nodeId,\r\n datasetId: datasetId\r\n }\r\n);\r\n\r\nexport const clearCacheDataset = (nodeId: number, datasetId: string) => initRequest(\r\n DATASET_CACHE_CLEAR,\r\n clearDatasetCacheUrl(nodeId, datasetId),\r\n RequestMethod.POST,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.clearCache\")\r\n })\r\n);\r\n\r\nexport const deleteDatasetTemplate = (nodeId: number, id: number) => initRequest(\r\n DATASET_DELETE_TEMPLATE,\r\n getDeleteTemplateUrl(nodeId, id),\r\n RequestMethod.DELETE,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.deletetemplate\")\r\n }),\r\n {\r\n nodeId\r\n }\r\n);\r\n\r\nexport const fetchDatasetTerritoryDetailLevels = (nodeId: number, datasetId: string, detailLevel: number) => initRequest(\r\n DATASET_TERRITORY_DETAIL_LEVELS_FETCH,\r\n getDatasetDetailLevels(nodeId, datasetId),\r\n RequestMethod.POST,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingDetailLevels\")\r\n }),\r\n {\r\n detailLevel: detailLevel\r\n }\r\n);\r\n\r\nexport const setDatasetTerritoryDetailLevelTree = (detailLevelTree: any) => ({\r\n type: DATASET_TERRITORY_DETAIL_LEVEL_TREE_SET,\r\n detailLevelTree\r\n});\r\n\r\nexport const setDatasetTerritoryDetailLevel = (detailLevel: number) => ({\r\n type: DATASET_TERRITORY_DETAIL_LEVEL_SET,\r\n detailLevel\r\n});\r\n\r\nexport const fetchDatasetTerritoryTerritories = (nodeId: number, datasetId: string, territoryDim: string, detailLevel: number) => initRequest(\r\n DATASET_TERRITORY_TERRITORIES_FETCH,\r\n getDatasetTerritories(nodeId, datasetId, territoryDim, detailLevel),\r\n RequestMethod.POST,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingTerritories\")\r\n })\r\n);\r\n\r\nexport const setDatasetTerritoryTerritories = (territories: string) => ({\r\n type: DATASET_TERRITORY_TERRITORIES_SET,\r\n territories\r\n});\r\n\r\nexport const submitDatasetTerritoryTerritories = (criteria: {[key: string]: Criteria}) => ({\r\n type: DATASET_TERRITORY_TERRITORIES_SUBMIT,\r\n payload: {\r\n criteria\r\n }\r\n});\r\n\r\nexport const fetchDatasetTerritoryLastYear = (nodeId: number, datasetId: string, timeDim: string, criteria: {[key: string]: Criteria}) => {\r\n\r\n if (criteria?.[timeDim]?.type === CRITERIA_FILTER_TYPE_RANGE && criteria?.[timeDim]?.to) {\r\n return {\r\n type: DATASET_TERRITORY_LAST_YEAR_FETCH,\r\n payload: {\r\n lastTerritoryYear: moment(criteria[timeDim].to).format(\"YYYY\")\r\n }\r\n };\r\n\r\n } else {\r\n const newCriteria = {\r\n ...criteria,\r\n [timeDim]: undefined\r\n };\r\n\r\n return initRequest(\r\n DATASET_TERRITORY_LAST_YEAR_FETCH,\r\n getDatasetStructureDynamicCodelistUrl(nodeId, datasetId, timeDim),\r\n RequestMethod.POST,\r\n getCriteriaArrayFromObject(newCriteria),\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingTimePeriod\")\r\n })\r\n );\r\n }\r\n};\r\n\r\nexport const backupDatasetState = () => ({\r\n type: DATASET_STATE_BACKUP\r\n});\r\n\r\nexport const resetDatasetState = () => ({\r\n type: DATASET_STATE_RESET\r\n});\r\n\r\nexport const setDatasetViewerMode = (viewerMode: string) => ({\r\n type: DATASET_VIEWER_MODE_SET,\r\n viewerMode\r\n});\r\n\r\nexport const setDatasetViewer = (viewerIdx: number) => ({\r\n type: DATASET_VIEWER_SET,\r\n viewerIdx\r\n});\r\n\r\nexport const setDatasetViewerTableVisibility = (isVisible: boolean) => ({\r\n type: DATASET_VIEWER_TABLE_VISIBILITY_SET,\r\n isVisible\r\n});\r\n\r\nexport const setDatasetViewerMapVisibility = (isVisible: boolean) => ({\r\n type: DATASET_VIEWER_MAP_VISIBILITY_SET,\r\n isVisible\r\n});\r\n\r\nexport const setDatasetViewerChartVisibility = (isVisible: boolean) => ({\r\n type: DATASET_VIEWER_CHART_VISIBILITY_SET,\r\n isVisible\r\n});\r\n\r\nexport const setDatasetViewerChartType = (chartType: string) => ({\r\n type: DATASET_VIEWER_CHART_TYPE_SET,\r\n chartType\r\n});\r\n\r\nexport const submitDatasetTableLayout = (layout: any) => ({\r\n type: DATASET_TABLE_LAYOUT_SUBMIT,\r\n layout\r\n});\r\n\r\nexport const submitDatasetTableFilterTree = (filterTree: any) => ({\r\n type: DATASET_TABLE_FILTERS_TREE_SUBMIT,\r\n filterTree\r\n});\r\n\r\nexport const submitDatasetMapLayout = (layout: any) => ({\r\n type: DATASET_MAP_LAYOUT_SUBMIT,\r\n layout\r\n});\r\n\r\nexport const submitDatasetChartLayout = (layout: any) => ({\r\n type: DATASET_CHART_LAYOUT_SUBMIT,\r\n layout\r\n});\r\n\r\nexport const submitDatasetChartFilterTree = (filterTree: any) => ({\r\n type: DATASET_CHART_FILTERS_TREE_SUBMIT,\r\n filterTree\r\n});\r\n\r\nexport const setDatasetChartLayoutTerritoryDimValues = (territoryDimValues: string[]) => ({\r\n type: DATASET_CHART_LAYOUT_TERRITORY_DIM_VALUES_SET,\r\n territoryDimValues\r\n});\r\n\r\nexport const setDatasetLabelFormat = (labelFormat: string) => ({\r\n type: DATASET_LABEL_FORMAT_SET,\r\n labelFormat\r\n});\r\n\r\nexport const setDatasetVariation = (variation: { [key: string]: boolean }) => ({\r\n type: DATASET_VARIATION_SET,\r\n variation\r\n});\r\n\r\nexport const setDatasetTemporalDimOrder = (temporalDimOrder: string) => ({\r\n type: DATASET_TEMPORAL_DIM_ORDER_SET,\r\n temporalDimOrder\r\n});\r\n\r\nexport const setDatasetChartSettings = (chartSettings: any) => ({\r\n type: DATASET_CHART_SETTINGS_SET,\r\n chartSettings\r\n});\r\n\r\nexport const setDatasetMapSettings = (mapSettings: any) => ({\r\n type: DATASET_MAP_SETTINGS_SET,\r\n mapSettings\r\n});\r\n\r\nexport const submitDatasetDownload = (\r\n nodeId: number,\r\n datasetId: string,\r\n datasetTitle: string,\r\n criteria: {[key: string]: Criteria},\r\n layout: any,\r\n format: string,\r\n extension: string,\r\n zipped: boolean,\r\n params: any,\r\n defaultLanguage: string,\r\n languages: string[],\r\n t: any\r\n) => {\r\n\r\n let url, body;\r\n\r\n if (format === DOWNLOAD_FORMAT_EXCEL || format === DOWNLOAD_FORMAT_CSV) {\r\n url = getDatasetCustomDownloadUrl(nodeId, format, zipped);\r\n body = getCustomExportRequestBody(datasetId, datasetTitle, criteria, layout, params, defaultLanguage, languages, t);\r\n\r\n } else {\r\n // @ts-ignore\r\n const formatParam = downloadFormats()[format]?.param || format;\r\n url = getDatasetDownloadUrl(nodeId, datasetId, formatParam, zipped);\r\n body = getCriteriaArrayFromObject(criteria);\r\n }\r\n\r\n const type = format === DOWNLOAD_FORMAT_EXCEL\r\n ? \"application/vnd.ms-excel\"\r\n : \"text/plain;charset=utf-8\";\r\n\r\n return initRequest(\r\n DATASET_DOWNLOAD_SUBMIT,\r\n url,\r\n RequestMethod.POST,\r\n body,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.downloadingDataset\")\r\n }),\r\n {\r\n fileSave: {\r\n name: `${datasetTitle} (${datasetId})`,\r\n extension: extension,\r\n type: type\r\n }\r\n },\r\n undefined,\r\n (statusCode: number) => statusCode === 406,\r\n undefined,\r\n undefined,\r\n true\r\n );\r\n};\r\n\r\nexport const submitDatasetWithMarginalDownload = (\r\n nodeId: number,\r\n nodeCode: string,\r\n datasetId: string,\r\n datasetTitle: string,\r\n criteria: {[key: string]: Criteria},\r\n timeDim: string,\r\n territoryDim: string,\r\n layout: any,\r\n indicators: Indicator[] | null,\r\n additionalDatasets: any[],\r\n format: string,\r\n extension: string,\r\n zipped: boolean,\r\n params: any,\r\n defaultLanguage: string,\r\n languages: string[],\r\n t: any,\r\n indicatorsBaseUrl?: string\r\n) => {\r\n\r\n const datasets = [\r\n {\r\n nodeId: nodeId,\r\n nodeCode: nodeCode,\r\n datasetId: datasetId,\r\n datasetTitle: datasetTitle,\r\n criteria: criteria,\r\n timeDim: timeDim,\r\n territoryDim: territoryDim,\r\n layout: layout\r\n },\r\n ...additionalDatasets\r\n ];\r\n\r\n let url, body, baseUrl = undefined;\r\n\r\n if (format === DOWNLOAD_FORMAT_EXCEL || format === DOWNLOAD_FORMAT_CSV) {\r\n url = getDatasetWithMarginalCustomDownloadUrl(format, zipped);\r\n body = getCustomExportRequestBodyWithMarginal(datasets, indicators, timeDim, layout, params, defaultLanguage, languages, t);\r\n baseUrl = indicatorsBaseUrl;\r\n\r\n } else {\r\n // @ts-ignore\r\n const formatParam = downloadFormats()[format]?.param || format;\r\n url = getDatasetDownloadUrl(nodeId, datasetId, formatParam, zipped);\r\n body = getCriteriaArrayFromObject(criteria);\r\n }\r\n\r\n const type = format === DOWNLOAD_FORMAT_EXCEL\r\n ? \"application/vnd.ms-excel\"\r\n : \"text/plain;charset=utf-8\";\r\n\r\n return initRequest(\r\n DATASET_DOWNLOAD_SUBMIT,\r\n url,\r\n RequestMethod.POST,\r\n body,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.downloadingDataset\")\r\n }),\r\n {\r\n fileSave: {\r\n name: datasets.map(({datasetId, datasetTitle}) => `${datasetTitle} (${datasetId})`).join(`, `),\r\n extension: extension,\r\n type: type\r\n }\r\n },\r\n baseUrl,\r\n (statusCode: number) => statusCode === 406,\r\n undefined,\r\n undefined,\r\n true\r\n );\r\n};\r\n\r\nexport const hideDatasetDownloadWarning = () => ({\r\n type: DATASET_DOWNLOAD_WARNING_HIDE\r\n});\r\n\r\nexport const showDatasetViewTemplate = (isView: boolean) => ({\r\n type: DATASET_VIEW_TEMPLATE_SHOW,\r\n isView\r\n});\r\n\r\nexport const hideDatasetViewTemplate = (isView: boolean) => ({\r\n type: DATASET_VIEW_TEMPLATE_HIDE,\r\n isView\r\n});\r\n\r\nexport const submitDatasetViewTemplate = (nodeId: number, viewTemplate: any, isView: boolean) => initRequest(\r\n DATASET_VIEW_TEMPLATE_SUBMIT,\r\n isView\r\n ? getCreateViewUrl(nodeId)\r\n : getCreateTemplateUrl(nodeId),\r\n RequestMethod.POST,\r\n viewTemplate,\r\n t => ({\r\n onStart: isView\r\n ? t(\"scenes.dataset.actions.savingView\")\r\n : t(\"scenes.dataset.actions.savingTemplate\")\r\n }),\r\n {\r\n isView: isView\r\n },\r\n undefined,\r\n (statusCode: number) => statusCode === 409,\r\n);\r\n\r\nexport const hideDatasetViewError = () => ({\r\n type: DATASET_VIEW_ERROR_HIDE\r\n});\r\n\r\nexport const hideDatasetUnavailableViewWarning = () => ({\r\n type: DATASET_UNAVAILABLE_VIEW_WARNING_HIDE\r\n});\r\n\r\nexport const setDatasetHtmlGeneratingTime = (time: number) => ({\r\n type: DATASET_HTML_GENERATING_TIME_SET,\r\n time\r\n});\r\n\r\nexport const showDatasetSdmxQuery = () => ({\r\n type: DATASET_SDMX_QUERY_SHOW\r\n});\r\n\r\nexport const hideDatasetSdmxQuery = () => ({\r\n type: DATASET_SDMX_QUERY_HIDE\r\n});\r\n\r\nexport const fetchDatasetSdmxQuery = (nodeId: number, datasetId: string, criteria: {[key: string]: Criteria}, datasetTitle: string) => initRequest(\r\n DATASET_SDMX_QUERY_FETCH,\r\n getDatasetSdmxQueryUrl(nodeId, datasetId),\r\n RequestMethod.POST,\r\n getCriteriaArrayFromObject(criteria),\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingDatasetSdmxQuery\", {title: datasetTitle})\r\n })\r\n);\r\n\r\nexport const setDatasetIndicatorCreateVisibility = (isVisible: boolean) => ({\r\n type: DATASET_INDICATOR_CREATE_VISIBILITY_SET,\r\n isVisible\r\n});\r\n\r\nexport const setDatasetIndicatorListVisibility = (isVisible: boolean) => ({\r\n type: DATASET_INDICATOR_LIST_VISIBILITY_SET,\r\n isVisible\r\n});\r\n\r\nexport const setDatasetAdditionalDatasetCreateVisibility = (isVisible: boolean) => ({\r\n type: DATASET_ADDITIONAL_DATASET_CREATE_VISIBILITY_SET,\r\n isVisible\r\n});\r\n\r\nexport const setDatasetAdditionalDatasetListVisibility = (isVisible: boolean) => ({\r\n type: DATASET_ADDITIONAL_DATASET_LIST_VISIBILITY_SET,\r\n isVisible\r\n});\r\n\r\nexport const fetchDatasetAdditionalDatasetCatalog = (nodeId: number) => initRequest(\r\n DATASET_ADDITIONAL_DATASET_CATALOG_FETCH,\r\n getNodeCatalogUrl(nodeId),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"domains.catalog.messages.fetch.start\")\r\n })\r\n);\r\n\r\nexport const changeDatasetAdditionalDataset = (additionalDataset: any) => ({\r\n type: DATASET_ADDITIONAL_DATASET_CHANGE,\r\n additionalDataset\r\n});\r\n\r\nexport const fetchDatasetAdditionalDatasetStructure = (nodeId: number, datasetId: string) => initRequest(\r\n DATASET_ADDITIONAL_DATASET_STURCTURE_FETCH,\r\n getDatasetStructureUrl(nodeId, datasetId),\r\n RequestMethod.GET,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingAdditionalDatasetStructure\")\r\n })\r\n);\r\n\r\nexport const submitDatasetAdditionalDataset = () => ({\r\n type: DATASET_ADDITIONAL_DATASET_SUBMIT\r\n});\r\n\r\nexport const deleteDatasetAdditionalDataset = (datasetIdx: number) => ({\r\n type: DATASET_ADDITIONAL_DATASET_DELETE,\r\n datasetIdx\r\n});\r\n\r\nexport const setDatasetAdditionalDatasetCriteria = (datasetIdx: number, criteria: {[key: string]: Criteria}) => ({\r\n type: DATASET_ADDITIONAL_DATASET_CRITERIA_SET,\r\n datasetIdx,\r\n criteria\r\n});\r\n\r\nexport const fetchDatasetIndicatorPreview = (\r\n nodeId: number,\r\n nodeCode: string,\r\n datasetId: string,\r\n criteria: {[key: string]: Criteria},\r\n timeDim: string,\r\n territoryDim: string,\r\n indicators: Indicator[],\r\n additionalDatasets: any[],\r\n defaultLanguage: string,\r\n languages: string[],\r\n indicatorsBaseUrl?: string\r\n) => {\r\n\r\n const datasets = [\r\n {\r\n nodeId: nodeId,\r\n nodeCode: nodeCode,\r\n datasetId: datasetId,\r\n criteria: criteria,\r\n timeDim: timeDim,\r\n territoryDim: territoryDim\r\n },\r\n ...additionalDatasets\r\n ];\r\n\r\n return initRequest(\r\n DATASET_INDICATOR_PREVIEW_FETCH,\r\n getDatasetWithIndicatorsUrl(true),\r\n RequestMethod.POST,\r\n getIndicatorsDefinition(indicators, datasets, timeDim, defaultLanguage, languages),\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingIndicatorPreview\")\r\n }),\r\n undefined,\r\n indicatorsBaseUrl\r\n );\r\n};\r\n\r\nexport const resetDatasetIndicatorPreview = () => ({\r\n type: DATASET_INDICATOR_PREVIEW_RESET,\r\n});\r\n\r\nexport const publishDatasetIndicator = (indicator: Indicator) => ({\r\n type: DATASET_INDICATOR_PUBLISH,\r\n indicator\r\n});\r\n\r\nexport const deleteDatasetIndicator = (indicatorIdx: number) => ({\r\n type: DATASET_INDICATOR_DELETE,\r\n indicatorIdx\r\n});\r\n\r\nexport const hideDatasetIndicatorWarning = () => ({\r\n type: DATASET_INDICATOR_WARNING_HIDE\r\n});\r\n\r\nexport const setDatasetIndicatorArithmeticMeanVisibility = (visible: boolean) => ({\r\n type: DATASET_INDICATOR_ARITHMETIC_MEAN_VISIBILITY_SET,\r\n visible\r\n});\r\n\r\nexport const setDatasetIndicatorArithmeticMeanValues = (arithmeticMeanDims: string[] | null, arithmeticMeans: {[key: string]: number} | null) => ({\r\n type: DATASET_INDICATOR_ARITHMETIC_MEAN_VALUES_SET,\r\n arithmeticMeanDims,\r\n arithmeticMeans\r\n});\r\n\r\nexport const setDatasetIndicatorStandardDeviationVisibility = (visible: boolean) => ({\r\n type: DATASET_INDICATOR_STANDARD_DEVIATION_VISIBILITY_SET,\r\n visible\r\n});\r\n\r\nexport const setDatasetIndicatorCoefficientOfVariationVisibility = (visible: boolean) => ({\r\n type: DATASET_INDICATOR_COEFFICIENT_OF_VARIATION_VISIBILITY_SET,\r\n visible\r\n});\r\n\r\nexport const submitReferenceMetadataDownload = (\r\n nodeId: number,\r\n datasetId: string,\r\n datasetTitle: string\r\n) => {\r\n\r\n return initRequest(\r\n DATASET_DOWNLOAD_METADATA_SUBMIT,\r\n getDatasetExportMetadataUrl(nodeId,datasetId),\r\n RequestMethod.POST,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.downloadingDatasetMetadata\")\r\n }),\r\n {\r\n fileSave: {\r\n name: `${datasetTitle} (${datasetId})`,\r\n extension: \"html\",\r\n type: \"text/html;charset=utf-8\"\r\n }\r\n }\r\n )\r\n};\r\n\r\nexport const fetchDatasetStructureCodelistFull = (nodeId: number, datasetId: string, dimensionId: string, missingFilterValueIds: string[]) => initRequest(\r\n DATASET_STRUCTURE_CODELIST_FULL_FETCH,\r\n getDatasetStructureCodelistUrl(nodeId, datasetId, dimensionId, true),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dataset.actions.fetchingCodelist\")\r\n }),\r\n {\r\n missingFilterValueIds: missingFilterValueIds\r\n }\r\n);\r\n\r\nexport const hideDatasetStructureCodelistFull = () => ({\r\n type: DATASET_STRUCTURE_CODELIST_FULL_HIDE\r\n});\r\n\r\nexport const setFullScreen = (isFullscreen : boolean) => ({\r\n type: DATASET_SET_FULLSCREEN,\r\n isFullscreen\r\n});","import React, {Fragment} from 'react';\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport {DialogActions} from \"@material-ui/core\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport FullscreenDialog from \"../fullscreen-dialog\";\r\n\r\nconst SettingsDialog = ({title, children, onSubmit, onClose, open, maxWidth, hasSubmit, noMinHeight, customSubmitLabel, noFullScreen}) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const dialogContent = (\r\n \r\n \r\n {title}\r\n \r\n \r\n {children}\r\n \r\n \r\n {hasSubmit\r\n ? (\r\n \r\n \r\n \r\n \r\n )\r\n : (\r\n \r\n )}\r\n \r\n \r\n )\r\n\r\n return noFullScreen\r\n ? (\r\n \r\n {dialogContent}\r\n \r\n )\r\n : (\r\n \r\n {dialogContent}\r\n \r\n );\r\n};\r\n\r\nexport default SettingsDialog;\r\n","var map = {\n\t\"./news/config.js\": [\n\t\t486,\n\t\t3\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 1022;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./news/state/reducer\": [\n\t\t489,\n\t\t2\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 1023;\nmodule.exports = webpackAsyncContext;","import React, {Fragment} from 'react'\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {Helmet} from \"react-helmet\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport {localizeI18nObj} from \"../../utils/i18n\";\r\nimport \"./style.css\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n position: \"relative\"\r\n },\r\n background: {\r\n \"&, & > *\": {\r\n position: \"fixed\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n objectFit: \"cover\",\r\n zIndex: -9999,\r\n }\r\n },\r\n textContainer: {\r\n color: \"white\",\r\n textAlign: \"center\",\r\n padding: 16,\r\n background: \"rgba(0,0,0,0.5)\"\r\n },\r\n title: {\r\n fontSize: 60,\r\n padding: 8,\r\n letterSpacing: 0\r\n },\r\n slogan: {\r\n fontSize: 24,\r\n fontWeight: 400,\r\n padding: 8,\r\n letterSpacing: 0\r\n },\r\n buttonsContainer: {\r\n marginTop: 24\r\n },\r\n logo: {\r\n position: \"absolute\",\r\n top: \"80%\",\r\n width: \"80%\",\r\n textAlign: \"center\",\r\n \"& > *\": {\r\n maxWidth: 340,\r\n maxHeight: 64\r\n }\r\n },\r\n extraLogos: {\r\n top: 24,\r\n right: 24,\r\n position: \"absolute\",\r\n \"& img\" : {\r\n maxHeight: 80\r\n }\r\n }\r\n});\r\n\r\nconst Hero = ({\r\n classes,\r\n defaultLanguage,\r\n languages,\r\n homeExtraLogos,\r\n title,\r\n slogan,\r\n logo,\r\n background,\r\n showExtraLogos = false,\r\n children\r\n }) =>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {showExtraLogos && (homeExtraLogos || []).map(({src, href, alt}, idx) =>\r\n \r\n \r\n {localizeI18nObj(alt,\r\n \r\n \r\n )}\r\n
\r\n {(title?.length > 0 || slogan?.length > 0) && (\r\n
\r\n {title?.length > 0 && (\r\n \r\n {title}\r\n \r\n )}\r\n {slogan?.length > 0 && (\r\n \r\n {slogan}\r\n \r\n )}\r\n
\r\n )}\r\n \r\n {children}\r\n \r\n \r\n {logo}\r\n \r\n
\r\n {background}\r\n
\r\n
\r\n
;\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(state => ({\r\n defaultLanguage: state.app.language,\r\n languages: state.app.languages,\r\n homeExtraLogos: state.appConfig.homeExtraLogos\r\n }))\r\n)(Hero);","import React from \"react\";\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\nconst MetadataIcon = ({style, ...props}) =>\r\n \r\n \r\n \r\n M\r\n \r\n \r\n ;\r\n\r\nexport default MetadataIcon;","import React, {Fragment, useState} from \"react\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport FullscreenDialog from \"../fullscreen-dialog\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport MetadataIcon from \"../custom-icons/MetadataIcon\";\r\n\r\nconst CatalogMetadataButton = ({\r\n t,\r\n metadataUrl,\r\n label,\r\n iconSize\r\n }) => {\r\n\r\n const [isVisible, setVisibility] = useState(false);\r\n\r\n const onOpen = () => {\r\n setVisibility(true);\r\n };\r\n\r\n const onClose = ev => {\r\n ev.stopPropagation();\r\n setVisibility(false);\r\n };\r\n\r\n if (!metadataUrl) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n ev.stopPropagation();\r\n onOpen();\r\n }}\r\n aria-label={label || t(\"components.catalogMetadataButton.label\")}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n \r\n {label || t(\"components.catalogMetadataButton.label\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n}\r\n\r\nexport default withTranslation()(CatalogMetadataButton);","const getDownloadButtonStyle = extension => {\r\n\r\n const styles = {\r\n rdf: {\r\n backgroundColor: \"#3f51b5\",\r\n color: \"white\"\r\n },\r\n html: {backgroundColor: \"#00bcd4\"},\r\n csv: {backgroundColor: \"#ffeb3b\"},\r\n xml: {backgroundColor: \"#ff5722\"},\r\n json: {backgroundColor: \"#ff9800\"},\r\n xls: {backgroundColor: \"#4caf50\"}\r\n };\r\n\r\n return styles[extension] || {};\r\n};\r\n\r\nexport default getDownloadButtonStyle;","import React, {Fragment, useState} from \"react\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport getDownloadButtonStyle from \"./getDownloadButtonStyle\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\n\r\nconst styles = () => ({\r\n root: {\r\n \"& > .MuiChip-root\": {\r\n margin: 8\r\n },\r\n \"& > .MuiChip-root:focus\": {\r\n outline: \"-webkit-focus-ring-color auto 1px\"\r\n }\r\n },\r\n downloadChipDeleteIcon: {\r\n backgroundColor: \"white\"\r\n },\r\n counterAvatar: {\r\n width: 16,\r\n height: 16,\r\n marginLeft: -4,\r\n marginRight: 4\r\n }\r\n});\r\n\r\nconst DatasetAttachments = ({\r\n classes,\r\n datasetTitle,\r\n attachedDataFiles\r\n }) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const [isDownloadModalOpen, setIsDownloadModalOpen] = useState(false);\r\n const [downloadModal, setDownloadModal] = useState(null);\r\n\r\n const groupedAttachments = [];\r\n (attachedDataFiles || []).forEach(({format, url}) => {\r\n const group = groupedAttachments.find(({extension}) => extension === format.toLowerCase());\r\n if (!group) {\r\n groupedAttachments.push({\r\n extension: format.toLowerCase(),\r\n urls: [url]\r\n });\r\n } else {\r\n group.urls.push(url);\r\n }\r\n });\r\n\r\n return (\r\n \r\n
\r\n {groupedAttachments.map((group, index) => (\r\n 1\r\n ? (\r\n \r\n {group.urls.length}\r\n \r\n )\r\n : null\r\n }\r\n onDelete={group.urls.length > 1\r\n ? e => {\r\n e.stopPropagation();\r\n setIsDownloadModalOpen(true);\r\n setDownloadModal(group);\r\n }\r\n : null\r\n }\r\n size=\"small\"\r\n onClick={e => {\r\n e.stopPropagation();\r\n if (group.urls.length > 1) {\r\n setIsDownloadModalOpen(true);\r\n setDownloadModal(group);\r\n } else {\r\n window.open(group.urls[0], \"_blank\");\r\n }\r\n }}\r\n style={{\r\n cursor: \"pointer\",\r\n ...getDownloadButtonStyle(group.extension)\r\n }}\r\n classes={{\r\n deleteIconSmall: classes.downloadChipDeleteIcon\r\n }}\r\n aria-label={\r\n t(\"scenes.results.datasetCard.downloadAria\", {\r\n title: datasetTitle,\r\n extension: group.extension.toUpperCase()\r\n })\r\n }\r\n />\r\n ))}\r\n
\r\n {groupedAttachments.length > 0 && (\r\n setIsDownloadModalOpen(false)}\r\n TransitionProps={{\r\n onExited: () => {\r\n setDownloadModal(null);\r\n }\r\n }}\r\n >\r\n \r\n \r\n {downloadModal?.urls.map((url, key) =>\r\n \r\n {url}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default withStyles(styles)(DatasetAttachments);","import React, {Fragment, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport InfoOutlinedIcon from \"@material-ui/icons/InfoOutlined\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport SanitizedHTML from \"../sanitized-html\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport DatasetAttachments from \"../dataset-attachments\";\r\n\r\nconst styles = theme => ({\r\n sectionTitle: {\r\n fontWeight: \"bold\",\r\n marginBottom: 8\r\n },\r\n sectionContent: {\r\n \"& p:first-child\": {\r\n marginTop: 0\r\n },\r\n \"& p:last-child\": {\r\n marginBottom: 0\r\n },\r\n \"& .MuiChip-root\": {\r\n margin: \"0 8px 0 0\"\r\n }\r\n }\r\n})\r\n\r\nconst CatalogInfoButton = ({\r\n t,\r\n classes,\r\n title,\r\n source,\r\n description,\r\n note,\r\n attachments\r\n }) => {\r\n\r\n const [isVisible, setVisibility] = useState(false);\r\n\r\n const onOpen = () => {\r\n setVisibility(true);\r\n };\r\n\r\n const onClose = ev => {\r\n ev.stopPropagation();\r\n setVisibility(false);\r\n };\r\n\r\n if (!source && !description && !note && !attachments) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n ev.stopPropagation();\r\n onOpen();\r\n }}\r\n aria-label={t(\"components.catalogInfoButton.action.ariaLabel\")}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"components.catalogInfoButton.dialog.title\", {datasetTitle: title})}\r\n \r\n \r\n \r\n {source && (\r\n \r\n \r\n {t(\"components.catalogInfoButton.dialog.content.source\")}:\r\n \r\n \r\n {source}\r\n \r\n \r\n )}\r\n {description && (\r\n \r\n \r\n {t(\"components.catalogInfoButton.dialog.content.description\")}:\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {note && (\r\n \r\n \r\n {t(\"components.catalogInfoButton.dialog.content.notes\")}:\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {attachments && (\r\n \r\n \r\n {t(\"components.catalogInfoButton.dialog.content.attachments\")}:\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withTranslation(),\r\n withStyles(styles)\r\n)(CatalogInfoButton);","import React from 'react';\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {Link} from 'react-router-dom';\r\n\r\nconst styles = theme => ({\r\n link: {\r\n borderRadius: 4,\r\n fontSize: 16,\r\n height: \"100%\",\r\n width: \"100%\",\r\n \"& > a\": {\r\n outlineOffset: -1,\r\n }\r\n },\r\n linkEnabled: {\r\n cursor: \"pointer\",\r\n \"& > a\": {\r\n color: theme.palette.primary.main,\r\n textDecoration: \"none\"\r\n },\r\n \"&:hover\": {\r\n background: \"#f5f5f5\",\r\n },\r\n \"&:hover > a\": {\r\n textDecoration: \"underline\"\r\n }\r\n },\r\n linkDisabled: {\r\n color: \"rgba(0, 0, 0, 0.42)\"\r\n },\r\n linkContent: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n linkContentImage: {\r\n \"& > img\": {\r\n height: \"100%\",\r\n width: \"100%\",\r\n objectFit: \"cover\"\r\n }\r\n },\r\n linkContentText: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n padding: 8,\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n },\r\n linkContentTextIcon: {\r\n marginRight: 8,\r\n display: \"flex\"\r\n },\r\n linkContentTextText: {\r\n display: \"flex\",\r\n width: \"100%\"\r\n },\r\n linkContentSubText: {}\r\n});\r\n\r\nconst CustomLink = ({\r\n classes,\r\n to = \"#\",\r\n text,\r\n textStyle,\r\n subText,\r\n subTextStyle,\r\n icon,\r\n image,\r\n imageStyle,\r\n onClick,\r\n disabled\r\n }) => {\r\n\r\n const linkContent = (\r\n
\r\n {image && (\r\n
\r\n \"\"/\r\n
\r\n )}\r\n
\r\n {icon && (\r\n
\r\n {icon}\r\n
\r\n )}\r\n {text && (\r\n
\r\n {text}\r\n
\r\n )}\r\n
\r\n
\r\n {subText}\r\n
\r\n
\r\n );\r\n\r\n return (\r\n
\r\n {disabled\r\n ? linkContent\r\n : (\r\n \r\n {linkContent}\r\n \r\n )\r\n }\r\n
\r\n )\r\n};\r\n\r\nexport default withStyles(styles)(CustomLink);\r\n","import React from 'react';\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardActions from '@material-ui/core/CardActions';\r\nimport CatalogMetadataButton from \"../catalog-metadata-button\";\r\nimport CatalogInfoButton from \"../catalog-info-button\";\r\nimport CustomLink from \"../custom-link\";\r\n\r\nconst styles = () => ({\r\n card: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\"\r\n }\r\n});\r\n\r\nconst CardsGrid = ({\r\n t,\r\n classes,\r\n list,\r\n getHref,\r\n onClick,\r\n imageStyle,\r\n hideLabelOnElemWithImage,\r\n icon,\r\n xs,\r\n sm,\r\n md,\r\n lg,\r\n xl\r\n }) =>\r\n \r\n {list.map((c, i) =>\r\n \r\n \r\n \r\n {(c.description || c.metadataUrl) && (\r\n \r\n {c.description && (\r\n \r\n )}\r\n {c.metadataUrl && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n )}\r\n ;\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(CardsGrid);","import React, {Component} from 'react';\r\nimport {compose} from \"redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport Zoom from \"@material-ui/core/Zoom\";\r\nimport Fab from \"@material-ui/core/Fab\";\r\nimport {ArrowUpward} from \"@material-ui/icons\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n fab: {\r\n position: 'fixed',\r\n right: 8,\r\n bottom: 55,\r\n height: '50px',\r\n width: '50px',\r\n zIndex: theme.zIndex.appBar\r\n },\r\n childrenContainer: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n oldBrowserWarning: {\r\n position: \"fixed\",\r\n bottom: 0,\r\n left: 0,\r\n zIndex: 1999,\r\n height: 48,\r\n width: \"100%\",\r\n background: \"rgba(0, 0, 0, 0.7)\",\r\n fontSize: 16,\r\n lineHeight: \"34px\",\r\n color: \"white\",\r\n padding: 8\r\n }\r\n});\r\n\r\nclass Page extends Component {\r\n\r\n state = {\r\n transparent: true,\r\n isOldBrowserWarningVisible: false\r\n };\r\n\r\n scrollTop() {\r\n window.scroll({top: 0, left: 0, behavior: 'smooth'});\r\n }\r\n\r\n handleScroll = () => {\r\n const {transparent} = this.state;\r\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n\r\n if (scrollTop > 50 && transparent) {\r\n this.setState({transparent: false});\r\n }\r\n\r\n if (scrollTop <= 50 && !transparent) {\r\n this.setState({transparent: true});\r\n }\r\n };\r\n\r\n handleStyle = () => {\r\n const nodeHeaderHeight = document.getElementById(\"node-header\")\r\n ? document.getElementById(\"node-header\").offsetHeight\r\n : 0;\r\n if (document.getElementById(\"main\")) {\r\n document.getElementById(\"main\").setAttribute(\"style\", `padding-top: ${nodeHeaderHeight}px`);\r\n }\r\n };\r\n\r\n closeWarning = () => {\r\n this.setState({isOldBrowserWarningVisible: false});\r\n }\r\n\r\n componentDidMount() {\r\n // Internet Explorer 6-11\r\n const isIE = !!document.documentMode;\r\n\r\n // Edge 20+\r\n const isEdge = !isIE && !!window.StyleMedia;\r\n\r\n this.setState({isOldBrowserWarningVisible: (isIE || isEdge)});\r\n\r\n window.scroll({top: 0, left: 0});\r\n\r\n window.addEventListener('scroll', this.handleScroll);\r\n\r\n window.addEventListener('resize', this.handleStyle);\r\n\r\n if (this.props.title && this.props.title.length > 0) {\r\n document.title = this.props.title;\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.props.title && this.props.title.length > 0) {\r\n document.title = this.props.title;\r\n }\r\n this.handleScroll();\r\n this.handleStyle();\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.handleScroll);\r\n window.removeEventListener('resize', this.handleStyle);\r\n }\r\n\r\n render() {\r\n\r\n const {classes, children, id, t} = this.props;\r\n const {transparent, isOldBrowserWarningVisible} = this.state;\r\n\r\n return (\r\n
\r\n {isOldBrowserWarningVisible && (\r\n
\r\n \r\n \r\n This browser in not completely supported, please consider to install the new version\r\n of Microsoft Edge\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {children}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(Page);","import Alert from \"@material-ui/lab/Alert\";\r\nimport {getUserErrorsTranslations} from \"../../constants/getUserErrorsTranslations\";\r\nimport React from \"react\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nconst UserErrors = ({errors}) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n return (errors !== null && errors !== undefined)\r\n ? (\r\n errors.map((str, index) =>\r\n \r\n {getUserErrorsTranslations(t)[str] || t(\"errors.user.generic\")}\r\n \r\n ))\r\n : null;\r\n}\r\n\r\nexport default UserErrors;","import React, {forwardRef, Fragment, useImperativeHandle} from 'react';\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport {useForm} from 'react-hook-form'\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {sendUserResetPasswordEmail} from \"../../../state/user/userActions\";\r\nimport UserErrors from \"../../user-errors\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: 440\r\n },\r\n field: {\r\n marginTop: theme.spacing(3)\r\n },\r\n paper: {\r\n marginTop: theme.spacing(2),\r\n padding: theme.spacing(3)\r\n },\r\n tabContent: {\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n height: \"calc(100% - 56px)\",\r\n marginTop: 8,\r\n padding: \"0 4px\"\r\n },\r\n title: {\r\n fontSize: 16\r\n }\r\n});\r\n\r\n\r\nconst Form = compose(withStyles(styles), forwardRef)(({classes, config, onSubmit}, ref) => {\r\n\r\n const {register, errors, handleSubmit} = useForm();\r\n\r\n const {t} = useTranslation();\r\n\r\n useImperativeHandle(ref, () => ({\r\n submit(f) {\r\n handleSubmit(val => {\r\n onSubmit(val);\r\n f(val);\r\n })();\r\n },\r\n cancel(f) {\r\n f();\r\n }\r\n }));\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n config: state.usersConfig.user,\r\n userErrors: state.usersConfig.userErrors\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n sendConfig: config => dispatch(sendUserResetPasswordEmail(config.email))\r\n});\r\n\r\nconst UserRecoverPasswordForm = ({config, sendConfig, userErrors}, ref) => {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef)(UserRecoverPasswordForm);\r\n","import React, {Fragment, useCallback, useRef, useState} from 'react';\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport {DialogActions, withStyles} from \"@material-ui/core\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport {useForm} from \"react-hook-form\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport SettingsDialog from \"../settings-dialog\";\r\nimport UserRecoverPasswordForm from \"./user-recover-password-form\";\r\nimport {getUserErrorsTranslations} from \"../../constants/getUserErrorsTranslations\";\r\n\r\nconst styles = theme => ({\r\n field: {\r\n marginTop: theme.spacing(3)\r\n },\r\n recoverPassword: {\r\n textDecoration: \"underline\",\r\n color: theme.palette.secondary.main,\r\n cursor: \"pointer\"\r\n }\r\n});\r\n\r\nconst UserLoginDialog = ({open, onSubmit, onHide, onRegister, classes, alert, alertSeverity = \"error\"}) => {\r\n\r\n const {register, errors, handleSubmit} = useForm();\r\n\r\n const {t} = useTranslation();\r\n\r\n const [isRecoverPasswordModalOpen, setIsRecoverPasswordModalOpen] = useState(false);\r\n\r\n const recoverPasswordFormRef = useRef();\r\n\r\n const keyDownHandler = useCallback(evt => {\r\n if (evt.key === \"Enter\") {\r\n handleSubmit(onSubmit)();\r\n }\r\n }, [handleSubmit, onSubmit]);\r\n\r\n return (\r\n {\r\n const userField = document.getElementById(\"user-login-form__text-field__email\");\r\n const pswField = document.getElementById(\"user-login-form__text-field__password\");\r\n userField.addEventListener(\"keydown\", keyDownHandler);\r\n pswField.addEventListener(\"keydown\", keyDownHandler);\r\n },\r\n onExit: () => {\r\n const userField = document.getElementById(\"user-login-form__text-field__email\");\r\n const pswField = document.getElementById(\"user-login-form__text-field__password\");\r\n userField.removeEventListener(\"keydown\", keyDownHandler);\r\n pswField.removeEventListener(\"keydown\", keyDownHandler);\r\n }\r\n }}\r\n >\r\n \r\n {t(\"components.userLoginDialog.title\")}\r\n \r\n \r\n {alert && (\r\n {getUserErrorsTranslations(t)[alert] || t(\"errors.user.generic\")}\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {errors.password?.message}\r\n setIsRecoverPasswordModalOpen(true)}\r\n className={classes.recoverPassword}\r\n style={{\r\n marginLeft: errors.password?.message ? 2 : 0\r\n }}>\r\n {t(\"components.userLoginDialog.recoverPassword\")}\r\n
\r\n \r\n }\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (recoverPasswordFormRef.current) {\r\n recoverPasswordFormRef.current.cancel(() => {\r\n setIsRecoverPasswordModalOpen(false);\r\n });\r\n } else {\r\n setIsRecoverPasswordModalOpen(false);\r\n }\r\n }}\r\n onSubmit={() => {\r\n if (recoverPasswordFormRef.current) {\r\n recoverPasswordFormRef.current.submit(() => {\r\n setIsRecoverPasswordModalOpen(false);\r\n });\r\n }\r\n }}\r\n hasSubmit\r\n noMinHeight\r\n noFullScreen\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withStyles(styles)(UserLoginDialog);\r\n","import React, {forwardRef, Fragment, useEffect, useImperativeHandle, useState} from 'react';\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {Checkbox, withStyles} from \"@material-ui/core\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport {useForm} from 'react-hook-form'\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {\r\n clearUsersConfigUser,\r\n fetchUsersConfigUser,\r\n sendUsersConfigUserCreate,\r\n sendUsersConfigUserEdit,\r\n} from \"../../../../state/usersConfig/usersConfigActions\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport {Visibility, VisibilityOff} from \"@material-ui/icons\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../../../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport SanitizedHTML from \"../../../sanitized-html\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {localizeI18nObj} from \"../../../../utils/i18n\";\r\nimport UserErrors from \"../../../user-errors\";\r\nimport {getTrimmedStr} from \"../../../../utils/formatters\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: 440\r\n },\r\n field: {\r\n marginTop: theme.spacing(3)\r\n },\r\n paper: {\r\n marginTop: theme.spacing(2),\r\n padding: theme.spacing(3)\r\n },\r\n tabContent: {\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n height: \"calc(100% - 56px)\",\r\n marginTop: 8,\r\n padding: \"0 4px\"\r\n },\r\n title: {\r\n fontSize: 16\r\n },\r\n disclaimerLink: {\r\n marginLeft: theme.spacing(1),\r\n color: theme.palette.secondary.main,\r\n textDecoration: \"underline\"\r\n }\r\n});\r\n\r\n\r\nconst Form = compose(withStyles(styles), forwardRef)(({\r\n classes,\r\n config,\r\n onSubmit,\r\n onCancel,\r\n isAnonymous,\r\n hub,\r\n types,\r\n languages,\r\n language\r\n }, ref) => {\r\n\r\n const {register, errors, handleSubmit, watch, setValue} = useForm({\r\n defaultValues: {\r\n isActive: true,\r\n type: types?.[0]?.id,\r\n organization: \"\",\r\n disclaimerAccepted: isAnonymous ? false : undefined,\r\n ...config\r\n }\r\n });\r\n\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [showPasswordConfirm, setShowPasswordConfirm] = useState(false);\r\n const [isDisclaimerModalOpen, setIsDisclaimerModalOpen] = useState(false);\r\n\r\n const {t} = useTranslation();\r\n\r\n useImperativeHandle(ref, () => ({\r\n submit(f) {\r\n handleSubmit(val => {\r\n const data = {\r\n ...config,\r\n ...val,\r\n type: val.type !== \"null\" ? val.type : null,\r\n disclaimerAccepted: undefined,\r\n emailConfirm: undefined,\r\n passwordConfirm: undefined\r\n };\r\n\r\n onSubmit(data);\r\n f(data);\r\n })();\r\n },\r\n cancel(f) {\r\n onCancel();\r\n f();\r\n }\r\n }));\r\n\r\n useEffect(() => {\r\n\r\n register(\"type\");\r\n\r\n if (isAnonymous) {\r\n register({\r\n name: \"disclaimerAccepted\"\r\n },\r\n {\r\n validate: val => val || t(\"scenes.usersSettings.userSettings.validation.mustAcceptDisclaimer\")\r\n });\r\n } else {\r\n register(\"isActive\");\r\n }\r\n\r\n }, [isAnonymous, register, t]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!config && (\r\n \r\n \r\n \r\n getTrimmedStr(val) === getTrimmedStr(watch('email')) ||\r\n t(\"scenes.usersSettings.userSettings.validation.emailsMustBeEqual\")\r\n })\r\n }\r\n error={!!errors.emailConfirm}\r\n helperText={errors.emailConfirm?.message}\r\n variant=\"outlined\"\r\n required\r\n />\r\n \r\n \r\n )}\r\n {!isAnonymous && (\r\n \r\n \r\n setValue('isActive', value)}\r\n />\r\n }\r\n />\r\n \r\n \r\n )}\r\n {types && types.length > 0 && (\r\n \r\n \r\n setValue('type', e.target.value)}\r\n value={watch(\"type\") || ''}\r\n helperText={errors.type?.message}\r\n error={!!errors.type}\r\n required\r\n disabled={!!config?.provider}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {types.map(({id, label}) =>\r\n \r\n {localizeI18nObj(label, language, languages)}\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!config && (\r\n \r\n \r\n \r\n \r\n setShowPassword(!showPassword)}\r\n >\r\n {showPassword ? : }\r\n \r\n \r\n )\r\n }}\r\n inputProps={{\r\n autoComplete: \"new-password\"\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n val === watch('password') ||\r\n t(\"scenes.usersSettings.userSettings.validation.passwordsMustBeEqual\")\r\n })\r\n }\r\n InputProps={{\r\n endAdornment: (\r\n \r\n setShowPasswordConfirm(!showPasswordConfirm)}\r\n >\r\n {showPasswordConfirm ? : }\r\n \r\n \r\n )\r\n }}\r\n inputProps={{\r\n autoComplete: \"new-password\"\r\n }}\r\n />\r\n \r\n \r\n {isAnonymous && (\r\n \r\n \r\n \r\n {t(\"scenes.usersSettings.userSettings.fields.disclaimerAccepted.label\")}\r\n {\r\n setIsDisclaimerModalOpen(true);\r\n ev.preventDefault();\r\n }}\r\n className={classes.disclaimerLink}\r\n >\r\n {t(\"scenes.usersSettings.userSettings.fields.disclaimerAccepted.link\")}\r\n
\r\n \r\n }\r\n control={\r\n setValue('disclaimerAccepted', value)}\r\n />\r\n }\r\n />\r\n {errors.disclaimerAccepted?.message && (\r\n \r\n {errors.disclaimerAccepted?.message}\r\n \r\n )}\r\n \r\n \r\n )}\r\n setIsDisclaimerModalOpen(false)}\r\n >\r\n setIsDisclaimerModalOpen(false)}>\r\n {t(\"scenes.usersSettings.userSettings.disclaimerModal.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n config: state.usersConfig.user,\r\n userErrors: state.usersConfig.userErrors,\r\n hub: state.hub,\r\n appConfig: state.appConfig,\r\n languages: state.app.languages,\r\n language: state.app.language\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchConfig: nodeId => dispatch(fetchUsersConfigUser(nodeId)),\r\n sendConfigCreate: (config, isAnonymous) => dispatch(sendUsersConfigUserCreate(config, isAnonymous)),\r\n sendConfig: config => dispatch(sendUsersConfigUserEdit(config)),\r\n clearConfig: () => dispatch(clearUsersConfigUser())\r\n});\r\n\r\nconst UserSettingsForm = ({\r\n config,\r\n userId,\r\n fetchConfig,\r\n sendConfigCreate,\r\n sendConfig,\r\n clearConfig,\r\n userErrors,\r\n isAnonymous,\r\n hub,\r\n appConfig,\r\n languages,\r\n language\r\n }, ref) => {\r\n\r\n const [needConfig, setNeedConfig] = useState(userId >= 0);\r\n\r\n useEffect(() => {\r\n\r\n if (needConfig) {\r\n setNeedConfig(false);\r\n fetchConfig(userId);\r\n }\r\n }, [config, needConfig, setNeedConfig, fetchConfig, userId]);\r\n\r\n return (userId === -1 || config) && (\r\n \r\n \r\n sendConfigCreate(config, isAnonymous)\r\n : sendConfig\r\n }\r\n onCancel={clearConfig}\r\n isAnonymous={isAnonymous}\r\n hub={hub}\r\n types={appConfig.user.typeOptions}\r\n languages={languages}\r\n language={language}\r\n />\r\n \r\n\r\n );\r\n};\r\n\r\nexport default compose(connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef)(UserSettingsForm);\r\n","import React, {forwardRef, Fragment, useImperativeHandle, useState} from 'react';\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport {useForm} from 'react-hook-form'\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport {Visibility, VisibilityOff} from \"@material-ui/icons\";\r\nimport {changeUserPassword} from \"../../../state/user/userActions\";\r\nimport UserErrors from \"../../user-errors\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: 440\r\n },\r\n field: {\r\n marginTop: theme.spacing(3)\r\n },\r\n paper: {\r\n marginTop: theme.spacing(2),\r\n padding: theme.spacing(3)\r\n },\r\n tabContent: {\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n height: \"calc(100% - 56px)\",\r\n marginTop: 8,\r\n padding: \"0 4px\"\r\n },\r\n title: {\r\n fontSize: 16\r\n }\r\n});\r\n\r\n\r\nconst Form = compose(withStyles(styles), forwardRef)(({classes, config, onSubmit}, ref) => {\r\n\r\n const {register, errors, handleSubmit, watch} = useForm();\r\n\r\n const [showOldPassword, setShowOldPassword] = useState(false);\r\n const [showNewPassword, setShowNewPassword] = useState(false);\r\n const [showNewPasswordConfirm, setShowNewPasswordConfirm] = useState(false);\r\n\r\n const {t} = useTranslation();\r\n\r\n useImperativeHandle(ref, () => ({\r\n submit(f) {\r\n handleSubmit(val => {\r\n onSubmit(val);\r\n f(val);\r\n })();\r\n },\r\n cancel(f) {\r\n f();\r\n }\r\n }));\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n setShowOldPassword(!showOldPassword)}\r\n >\r\n {showOldPassword ? : }\r\n \r\n \r\n )\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setShowNewPassword(!showNewPassword)}\r\n >\r\n {showNewPassword ? : }\r\n \r\n \r\n )\r\n }}\r\n inputProps={{\r\n autoComplete: \"new-password\"\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n val === watch('newPassword') ||\r\n t(\"components.userSelect.changePasswordModal.validation.newPasswordMustBeEqual\")\r\n })}\r\n InputProps={{\r\n endAdornment: (\r\n \r\n setShowNewPasswordConfirm(!showNewPasswordConfirm)}\r\n >\r\n {showNewPasswordConfirm ? : }\r\n \r\n \r\n )\r\n }}\r\n inputProps={{\r\n autoComplete: \"new-password\"\r\n }}\r\n />\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n config: state.usersConfig.user,\r\n userErrors: state.usersConfig.userErrors\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n sendConfig: config => dispatch(changeUserPassword(config.oldPassword, config.newPassword))\r\n});\r\n\r\nconst UserChangePasswordForm = ({config, sendConfig, userErrors}, ref) => {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef)(UserChangePasswordForm);\r\n","import React, {forwardRef, Fragment, useEffect, useImperativeHandle} from 'react';\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport {useForm} from 'react-hook-form'\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {localizeI18nObj} from \"../../../utils/i18n\";\r\nimport UserErrors from \"../../user-errors\";\r\nimport {clearUserEditUser, fetchUserEditUser, submitUserEditUser} from \"../../../state/user/userActions\";\r\nimport Call from \"../../../hocs/call\";\r\n\r\nconst Form = forwardRef(({\r\n hub,\r\n types,\r\n language,\r\n languages,\r\n config,\r\n onSubmit,\r\n onCancel\r\n }, ref) => {\r\n\r\n const {register, errors, handleSubmit, watch, setValue} = useForm({\r\n defaultValues: {\r\n type: types?.[0]?.id,\r\n organization: \"\",\r\n ...config\r\n }\r\n });\r\n\r\n const {t} = useTranslation();\r\n\r\n useImperativeHandle(ref, () => ({\r\n submit(f) {\r\n handleSubmit(val => {\r\n const data = {\r\n ...val,\r\n isActive: config.isActive,\r\n type: val.type !== \"null\" ? val.type : null\r\n };\r\n\r\n onSubmit(data);\r\n f(data);\r\n })();\r\n },\r\n cancel(f) {\r\n onCancel();\r\n f();\r\n }\r\n }));\r\n\r\n useEffect(() => {\r\n register(\"type\");\r\n }, [register]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {types && types.length > 0 && (\r\n \r\n \r\n setValue('type', e.target.value)}\r\n value={watch(\"type\") || ''}\r\n helperText={errors.type?.message}\r\n error={!!errors.type}\r\n required\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {types.map(({id, label}) =>\r\n \r\n {localizeI18nObj(label, language, languages)}\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n hub: state.hub,\r\n appConfig: state.appConfig,\r\n language: state.app.language,\r\n languages: state.app.languages,\r\n userId: state.user.userId,\r\n config: state.user.config,\r\n userErrors: state.user.userErrors\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchConfig: userId => dispatch(fetchUserEditUser(userId)),\r\n submitConfig: (userId, config) => dispatch(submitUserEditUser(userId, config)),\r\n clearConfig: () => dispatch(clearUserEditUser())\r\n});\r\n\r\nconst EditUserForm = ({\r\n config,\r\n userId,\r\n fetchConfig,\r\n submitConfig,\r\n clearConfig,\r\n userErrors,\r\n hub,\r\n appConfig,\r\n languages,\r\n language\r\n }, ref) =>\r\n \r\n {config\r\n ? (\r\n \r\n \r\n submitConfig(userId, config)}\r\n onCancel={clearConfig}\r\n hub={hub}\r\n types={appConfig.user.typeOptions}\r\n language={language}\r\n languages={languages}\r\n />\r\n \r\n )\r\n : \r\n }\r\n \r\n\r\n\r\nexport default compose(connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef)(EditUserForm);\r\n","export const DASHBOARD_ELEM_TYPE_KEY = \"type\";\r\nexport const DASHBOARD_ELEM_VALUE_KEY = \"value\";\r\nexport const DASHBOARD_ELEM_WIDTH_KEY = \"widthPercentage\";\r\nexport const DASHBOARD_ELEM_SHOW_TITLE_KEY = \"showTitle\";\r\nexport const DASHBOARD_ELEM_ENABLE_FILTERS_KEY = \"enableFilters\";\r\nexport const DASHBOARD_ELEM_FILTER_DIMENSION_KEY = \"filterDimension\";\r\n\r\nexport const DASHBOARD_ELEM_TYPE_VALUE_VIEW = \"view\";\r\nexport const DASHBOARD_ELEM_TYPE_VALUE_TEXT = \"text\";\r\n\r\nexport const emptyDashboardElem = {\r\n [DASHBOARD_ELEM_TYPE_KEY]: null,\r\n [DASHBOARD_ELEM_VALUE_KEY]: null,\r\n [DASHBOARD_ELEM_WIDTH_KEY]: 100,\r\n [DASHBOARD_ELEM_SHOW_TITLE_KEY]: true,\r\n [DASHBOARD_ELEM_ENABLE_FILTERS_KEY]: false,\r\n [DASHBOARD_ELEM_FILTER_DIMENSION_KEY]: null\r\n};\r\n\r\nexport const getViewIdxFromRowAndCol = (rowIdx, colIdx) => `${rowIdx}x${colIdx}`;\r\n\r\nexport const getFilterDimensionId = (layout, filterDimensionIds) => {\r\n const dimArraysKey = [\"rows\", \"cols\", \"filters\", \"sections\", \"primaryDim\", \"secondaryDim\", \"territoryDim\"];\r\n let viewDims = [];\r\n\r\n dimArraysKey.forEach(key => viewDims = viewDims.concat(layout[key] || []));\r\n\r\n return (filterDimensionIds.find(dimId => viewDims.includes(dimId)) || null);\r\n};","import {initRequest, RequestMethod} from \"../../middlewares/request/requestActions\";\r\nimport {\r\n getCreateDashboardUrl,\r\n getDashboardsUrl,\r\n getDatasetUrl,\r\n getDeleteDashboardUrl,\r\n getDeleteViewUrl,\r\n getUpdateDashboardUrl,\r\n getUserDashboardsUrl,\r\n getViewsUrl\r\n} from \"../../serverApi/urls\";\r\nimport {DASHBOARD_ELEM_FILTER_DIMENSION_KEY, DASHBOARD_ELEM_TYPE_KEY, DASHBOARD_ELEM_TYPE_VALUE_VIEW, DASHBOARD_ELEM_VALUE_KEY} from \"../../utils/dashboards\";\r\nimport {getCriteriaArrayFromObject} from \"../../utils/criteria\";\r\nimport _ from \"lodash\"\r\n\r\nexport const OTHER_CONFIG_VIEWS_FETCH = \"otherConfig/fetchViews\";\r\nexport const OTHER_CONFIG_VIEWS_CLEAR = \"otherConfig/clearViews\";\r\nexport const OTHER_CONFIG_VIEW_DELETE = \"otherConfig/deleteView\";\r\n\r\nexport const OTHER_CONFIG_DASHBOARDS_FETCH = \"otherConfig/fetchDashboards\";\r\nexport const OTHER_CONFIG_DASHBOARDS_CLEAR = \"otherConfig/clearDashboards\";\r\nexport const OTHER_CONFIG_DASHBOARDS_CLOSE = \"otherConfig/closeDashboards\";\r\n\r\nexport const OTHER_CONFIG_DASHBOARD_CREATE = \"otherConfig/dashboard/create\";\r\nexport const OTHER_CONFIG_DASHBOARD_UPDATE = \"otherConfig/dashboard/update\";\r\nexport const OTHER_CONFIG_DASHBOARD_CHANGE = \"otherConfig/dashboard/change\";\r\nexport const OTHER_CONFIG_DASHBOARD_CREATE_SUBMIT = \"otherConfig/dashboard/create/submit\";\r\nexport const OTHER_CONFIG_DASHBOARD_UPDATE_SUBMIT = \"otherConfig/dashboard/update/submit\";\r\nexport const OTHER_CONFIG_DASHBOARD_HIDE = \"otherConfig/dashboard/hide\";\r\nexport const OTHER_CONFIG_DASHBOARD_DELETE = \"otherConfig/dashboard/create\";\r\n\r\nexport const OTHER_CONFIG_DASHBOARD_VIEWS_FETCH = \"otherConfig/dashboard/views/fetch\";\r\nexport const OTHER_CONFIG_DASHBOARD_VIEWS_CLEAR = \"otherConfig/dashboard/views/clear\";\r\n\r\nexport const OTHER_CONFIG_DASHBOARD_DATASET_FETCH = \"otherConfig/dashboard/dataset/fetch\";\r\nexport const OTHER_CONFIG_DASHBOARD_DATASET_FILTER_SET = \"otherConfig/dashboard/dataset/filter/set\";\r\nexport const OTHER_CONFIG_DASHBOARD_DATASET_CLEAR = \"otherConfig/dashboard/dataset/clear\";\r\n\r\nexport const fetchOtherConfigViews = () => initRequest(\r\n OTHER_CONFIG_VIEWS_FETCH,\r\n getViewsUrl(),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.viewsConfig.messages.fetchViews.start\")\r\n })\r\n);\r\n\r\nexport const clearOtherConfigViews = () => ({\r\n type: OTHER_CONFIG_VIEWS_CLEAR\r\n});\r\n\r\nexport const deleteOtherConfigView = (nodeId: number, id: number) => initRequest(\r\n OTHER_CONFIG_VIEW_DELETE,\r\n getDeleteViewUrl(nodeId, id),\r\n RequestMethod.DELETE,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.viewsConfig.messages.deleteView.start\")\r\n })\r\n);\r\n\r\nexport const fetchOtherConfigDashboards = () => initRequest(\r\n OTHER_CONFIG_DASHBOARDS_FETCH,\r\n getUserDashboardsUrl(),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dashboardsSettings.messages.fetchDashboards.start\")\r\n })\r\n);\r\n\r\nexport const clearOtherConfigDashboards = () => ({\r\n type: OTHER_CONFIG_DASHBOARDS_CLEAR\r\n});\r\n\r\nexport const closeOtherConfigDashboard = () => ({\r\n type: OTHER_CONFIG_DASHBOARDS_CLOSE\r\n});\r\n\r\nexport const createOtherConfigDashboard = (dashboard: any) => ({\r\n type: OTHER_CONFIG_DASHBOARD_CREATE,\r\n payload: {\r\n dashboard: dashboard\r\n }\r\n});\r\n\r\nexport const updateOtherConfigDashboard = (dashboardId: number) => initRequest(\r\n OTHER_CONFIG_DASHBOARD_UPDATE,\r\n getDashboardsUrl(dashboardId),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dashboardsSettings.messages.fetchDashboard.start\")\r\n })\r\n);\r\n\r\nexport const changeOtherConfigDashboard = (dashboard: any) => ({\r\n type: OTHER_CONFIG_DASHBOARD_CHANGE,\r\n payload: {\r\n dashboard: dashboard\r\n }\r\n});\r\n\r\nconst getNewDashboard = (dashboard: any, dashboardId: number | null, dashboardConfig: any) => {\r\n const newDashboard = _.cloneDeep(dashboard);\r\n const ids: string[] = [];\r\n\r\n newDashboard.dashboardConfig.forEach((row: any, rowIdx: number) => {\r\n row.forEach((col: any, colIdx: number) => {\r\n const type = col[DASHBOARD_ELEM_TYPE_KEY];\r\n const value = col[DASHBOARD_ELEM_VALUE_KEY];\r\n const filterDimension = col[DASHBOARD_ELEM_FILTER_DIMENSION_KEY]\r\n\r\n if (type === DASHBOARD_ELEM_TYPE_VALUE_VIEW && value !== null && value !== undefined && !ids.includes(value)) {\r\n ids.push(value)\r\n }\r\n if (filterDimension === \"\") {\r\n newDashboard.dashboardConfig[rowIdx][colIdx].filterDimension = null;\r\n }\r\n });\r\n });\r\n\r\n let newFilterLevels = {};\r\n (dashboardConfig?.labels || []).forEach((label: string) => {\r\n newFilterLevels = {\r\n ...newFilterLevels,\r\n [label]: (newDashboard.filterLevels[label] || false)\r\n }\r\n });\r\n\r\n return {\r\n dashboardId: dashboardId,\r\n title: newDashboard.title,\r\n dashboardConfig: JSON.stringify(newDashboard.dashboardConfig),\r\n viewIds: ids,\r\n filterLevels: JSON.stringify(newFilterLevels)\r\n }\r\n};\r\n\r\nexport const submitOtherConfigDashboardCreate = (dashboard: any, dashboardConfig: any) => initRequest(\r\n OTHER_CONFIG_DASHBOARD_CREATE_SUBMIT,\r\n getCreateDashboardUrl(),\r\n RequestMethod.POST,\r\n getNewDashboard(dashboard, null, dashboardConfig),\r\n t => ({\r\n onStart: t(\"scenes.dashboardsSettings.messages.submitDashboardCreate.start\")\r\n })\r\n);\r\n\r\nexport const submitOtherConfigDashboardUpdate = (dashboardId: number, dashboard: any, dashboardConfig: any) => initRequest(\r\n OTHER_CONFIG_DASHBOARD_UPDATE_SUBMIT,\r\n getUpdateDashboardUrl(dashboardId),\r\n RequestMethod.PUT,\r\n getNewDashboard(dashboard, dashboardId, dashboardConfig),\r\n t => ({\r\n onStart: t(\"scenes.dashboardsSettings.messages.submitDashboardUpdate.start\")\r\n }),\r\n {\r\n dashboardId: dashboardId\r\n }\r\n);\r\n\r\nexport const deleteOtherConfigDashboard = (dashboardId: number) => initRequest(\r\n OTHER_CONFIG_DASHBOARD_DELETE,\r\n getDeleteDashboardUrl(dashboardId),\r\n RequestMethod.DELETE,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dashboardsSettings.messages.deleteDashboard.start\")\r\n })\r\n);\r\n\r\nexport const hideOtherConfigDashboard = () => ({\r\n type: OTHER_CONFIG_DASHBOARD_HIDE\r\n});\r\n\r\nexport const fetchOtherConfigDashboardViews = () => initRequest(\r\n OTHER_CONFIG_DASHBOARD_VIEWS_FETCH,\r\n getViewsUrl(),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.dashboardsSettings.messages.fetchDashboardViews.start\")\r\n })\r\n);\r\n\r\nexport const clearOtherConfigDashboardViews = () => ({\r\n type: OTHER_CONFIG_DASHBOARD_VIEWS_CLEAR\r\n});\r\n\r\nexport const fetchOtherConfigDashboardsDataset = (nodeId: number, datasetId: string, criteria: any, requestIds: string[]) => initRequest(\r\n OTHER_CONFIG_DASHBOARD_DATASET_FETCH,\r\n getDatasetUrl(nodeId, datasetId),\r\n RequestMethod.POST,\r\n getCriteriaArrayFromObject(criteria),\r\n t => ({\r\n onStart: t(\"scenes.dashboard.actions.fetchingDataset\")\r\n }),\r\n {\r\n requestIds: requestIds,\r\n },\r\n \"\",\r\n () => true,\r\n true\r\n);\r\n\r\nexport const setOtherConfigDashboardsDatasetFilter = (viewIdx: string, dimension: string, value: string) => ({\r\n type: OTHER_CONFIG_DASHBOARD_DATASET_FILTER_SET,\r\n payload: {\r\n viewIdx,\r\n dimension,\r\n value\r\n }\r\n});\r\n\r\nexport const clearOtherConfigDashboardsDataset = () => ({\r\n type: OTHER_CONFIG_DASHBOARD_DATASET_CLEAR\r\n});","const getParamsStr = (opts = {}) => {\r\n let paramsStrs = [];\r\n\r\n if (opts.viewId) {\r\n paramsStrs.push(\"view=\" + opts.viewId);\r\n }\r\n if (opts.query) {\r\n paramsStrs.push(\"q=\" + encodeURIComponent(opts.query));\r\n }\r\n if (opts.filters && opts.filters.length > 0) { // filters = c1/c2,c3/c4\r\n paramsStrs.push(\"c=\" + encodeURIComponent(opts.filters.map(f => encodeURIComponent(f.join(\"/\"))).join(\"//\")));\r\n }\r\n if (window.detailLevel !== null) {\r\n paramsStrs.push(\"t=\" + encodeURIComponent(window.detailLevel));\r\n }\r\n if (window.isA11y) {\r\n paramsStrs.push(\"accessible=true\");\r\n }\r\n\r\n if (paramsStrs.length > 0) {\r\n return \"?\" + paramsStrs.join(\"&\");\r\n } else {\r\n return \"\";\r\n }\r\n};\r\n\r\nexport const getHomeInternalUrl = noLanguage =>\r\n `/${noLanguage ? \"\" : window.language}${getParamsStr()}`;\r\n\r\nexport const getNodeInternalUrl = nodeCode =>\r\n `/${window.language}/${(nodeCode || \"\").toLowerCase()}${getParamsStr()}`;\r\n\r\nexport const getNodeCategoriesInternalUrl = nodeCode =>\r\n `/${window.language}/${(nodeCode || \"\").toLowerCase()}/categories${getParamsStr()}`;\r\n\r\nexport const getDatasetsInternalUrl = (nodeCode, categoryPath) =>\r\n `/${window.language}/${(nodeCode || \"\").toLowerCase()}/categories/${categoryPath.join(\"/\")}${getParamsStr()}`;\r\n\r\nexport const getDatasetInternalUrl = (nodeCode, categoryPath, datasetId, viewId) =>\r\n `/${window.language}/${(nodeCode || \"\").toLowerCase()}/${categoryPath.length > 0 ? (\"categories/\" + categoryPath.filter(el => el).join(\"/\") + \"/\") : \"\"}` + datasetId + getParamsStr({viewId});\r\n\r\nexport const getDatasetsSearchInternalUrl = (nodeCode, query, filters) =>\r\n `/${window.language}/${(nodeCode || \"\").toLowerCase()}/search${getParamsStr({query, filters})}`;\r\n\r\nexport const getHubDashboardsInternalUrl = () =>\r\n `/${window.language}/dashboards${getParamsStr()}`;\r\n\r\nexport const getNodeDashboardsInternalUrl = nodeCode =>\r\n `/${window.language}/${(nodeCode || \"\").toLowerCase()}/dashboards${getParamsStr()}`;\r\n\r\nexport const getDashboardInternalUrl = dashboardId =>\r\n `/${window.language}/dashboards/${dashboardId}${getParamsStr()}`;\r\n\r\nexport const goToHome = noLanguage => window.open(\"./#\" + getHomeInternalUrl(noLanguage), '_self');\r\nexport const goToNode = nodeCode => window.open(\"./#\" + getNodeInternalUrl(nodeCode), '_self');\r\nexport const goToNodeCategories = nodeCode => window.open(\"./#\" + getNodeCategoriesInternalUrl(nodeCode), '_self');\r\nexport const goToDatasets = (nodeCode, categoryPath) => window.open(\"./#\" + getDatasetsInternalUrl(nodeCode, categoryPath), '_self');\r\nexport const goToDataset = (nodeCode, categoryPath, datasetId, viewId) => window.open(\"./#\" + getDatasetInternalUrl(nodeCode, categoryPath, datasetId, viewId), '_self');\r\nexport const goToDatasetsSearch = (nodeCode, query, filters) => window.open(\"./#\" + getDatasetsSearchInternalUrl(nodeCode, query, filters), '_self');\r\nexport const goToHubDashboards = () => window.open(\"./#\" + getHubDashboardsInternalUrl(), '_self');\r\nexport const goToNodeDashboards = nodeCode => window.open(\"./#\" + getNodeDashboardsInternalUrl(nodeCode), '_self');\r\nexport const goToDashboard = dashboardId => window.open(\"./#\" + getDashboardInternalUrl(dashboardId), '_self');","import React, {forwardRef, Fragment, useEffect, useImperativeHandle, useState} from 'react';\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {connect} from \"react-redux\";\r\nimport {compose} from \"redux\";\r\nimport {Visibility} from \"@material-ui/icons\";\r\nimport {clearOtherConfigViews, deleteOtherConfigView, fetchOtherConfigViews} from \"../../../state/otherConfig/otherConfigActions\";\r\nimport {goToDataset} from \"../../../links\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport CustomMaterialTable from \"../../custom-material-table\";\r\nimport {getI18nObjCustomFilterAndSearch, localizeI18nObj} from \"../../../utils/i18n\";\r\n\r\nconst styles = theme => ({\r\n tableToolbar: {\r\n marginBottom: theme.spacing(1)\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n defaultLanguage: state.app.language,\r\n languages: state.app.languages,\r\n views: state.otherConfig.views\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchViews: () => dispatch(fetchOtherConfigViews()),\r\n clearViews: () => dispatch(clearOtherConfigViews()),\r\n deleteView: (nodeId, id) => dispatch(deleteOtherConfigView(nodeId, id))\r\n});\r\n\r\nconst UserViewsSettingsForm = ({\r\n classes,\r\n defaultLanguage,\r\n languages,\r\n views,\r\n fetchViews,\r\n clearViews,\r\n deleteView,\r\n nodes,\r\n onViewsClose\r\n }, ref) => {\r\n\r\n const [needViews, setNeedViews] = useState(true);\r\n const {t} = useTranslation();\r\n\r\n useEffect(() => {\r\n\r\n if (needViews) {\r\n setNeedViews(false);\r\n fetchViews();\r\n }\r\n }, [views, needViews, setNeedViews, fetchViews]);\r\n\r\n useImperativeHandle(ref, () => ({\r\n cancel(f) {\r\n clearViews();\r\n f();\r\n }\r\n }));\r\n\r\n const [deleteViewId, setDeleteViewId] = useState(null);\r\n const [deleteViewNodeId, setDeleteViewNodeId] = useState(null);\r\n\r\n return nodes && views && (\r\n \r\n nodes.find(node => node.nodeId === nodeId).code,\r\n customFilterAndSearch: (str, {nodeId}) =>\r\n nodes.find(node => node.nodeId === nodeId).code.toLowerCase()\r\n .includes(str.toLowerCase())\r\n },\r\n {field: \"datasetId\", title: t(\"scenes.viewsSettings.table.columns.viewDatasetId\")},\r\n {\r\n field: \"title\",\r\n title: t(\"scenes.viewsSettings.table.columns.viewTitle\"),\r\n render: ({title}) => localizeI18nObj(title, defaultLanguage, languages),\r\n customFilterAndSearch: getI18nObjCustomFilterAndSearch(defaultLanguage, languages)\r\n },\r\n ]}\r\n data={(views || []).filter(({nodeId}) => nodes.find(node => node.nodeId === nodeId))}\r\n actions={[\r\n {\r\n icon: Visibility,\r\n tooltip: t(\"scenes.viewsSettings.table.actions.viewView\"),\r\n onClick: (_, {nodeId, datasetId, viewTemplateId}) => {\r\n if (!window.location.href.toLowerCase().includes(`view=${viewTemplateId}`)) {\r\n goToDataset(nodes.find(node => node.nodeId === nodeId).code, [], datasetId, viewTemplateId);\r\n }\r\n onViewsClose();\r\n }\r\n },\r\n {\r\n icon: DeleteIcon,\r\n tooltip: t(\"scenes.viewsSettings.table.actions.deleteView\"),\r\n onClick: (_, {nodeId, viewTemplateId}) => {\r\n setDeleteViewId(viewTemplateId);\r\n setDeleteViewNodeId(nodeId);\r\n }\r\n }\r\n ]}\r\n options={{\r\n actionsColumnIndex: 3\r\n }}\r\n />\r\n\r\n {\r\n setDeleteViewId(null);\r\n setDeleteViewNodeId(null);\r\n }}\r\n >\r\n {\r\n setDeleteViewId(null);\r\n setDeleteViewNodeId(null);\r\n }}\r\n >\r\n {t(\"scenes.viewsSettings.modals.deleteView.title\")}\r\n \r\n \r\n {t(\"scenes.viewsSettings.modals.deleteView.content\")}\r\n \r\n \r\n {\r\n setDeleteViewId(null);\r\n setDeleteViewNodeId(null);\r\n }}\r\n >\r\n {t(\"commons.confirm.cancel\")}\r\n \r\n {\r\n deleteView(deleteViewNodeId, deleteViewId);\r\n setDeleteViewId(null);\r\n setDeleteViewNodeId(null);\r\n }}\r\n >\r\n {t(\"commons.confirm.confirm\")}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(withStyles(styles), connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef)(UserViewsSettingsForm);","import React, {useState} from 'react';\r\nimport {TextField} from \"@material-ui/core\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport I18nInputAdornmentSelect from \"../i18n-input-adornment-select\";\r\nimport {connect} from \"react-redux\";\r\nimport _ from \"lodash\";\r\n\r\nconst ON_CHANGE_TIMEOUT = 500;\r\n\r\nconst getInitialInternalValue = (value, languages) => {\r\n const emptyValue = {};\r\n languages.forEach(lang => emptyValue[lang] = \"\");\r\n\r\n return _.merge(emptyValue, value)\r\n};\r\n\r\nconst Component = ({\r\n textFieldProps,\r\n defaultLanguage,\r\n languages\r\n }) => {\r\n\r\n const [language, setLanguage] = useState(defaultLanguage);\r\n const [internalValue, setInternalValue] = useState(getInitialInternalValue(textFieldProps.value, languages));\r\n const [timeoutId, setTimeoutId] = useState(null);\r\n\r\n const callOnChange = value => {\r\n if (textFieldProps.onChange) {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId)\r\n }\r\n setTimeoutId(setTimeout(\r\n () => {\r\n textFieldProps.onChange(value);\r\n },\r\n ON_CHANGE_TIMEOUT\r\n ));\r\n }\r\n };\r\n\r\n const setValueForLanguage = value => {\r\n let newInternalValue = _.cloneDeep(internalValue);\r\n newInternalValue[language] = value;\r\n\r\n setInternalValue(newInternalValue);\r\n callOnChange(newInternalValue);\r\n };\r\n\r\n return (\r\n setValueForLanguage(target.value)}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n setLanguage(lang)}/>\r\n \r\n )\r\n }}\r\n >\r\n {textFieldProps.children}\r\n \r\n );\r\n};\r\n\r\nconst ConnectedComponent =\r\n connect(state => ({\r\n languages: state.app.languages,\r\n defaultLanguage: state.app.language\r\n }))(Component);\r\n\r\nconst I18nDelayedTextField = props =>\r\n ;\r\n\r\nexport default I18nDelayedTextField;","import React from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {CKEditor} from \"@ckeditor/ckeditor5-react\";\r\nimport Editor from \"ckeditor5-custom-build/build/ckeditor\";\r\nimport \"./style.css\";\r\n\r\nimport \"ckeditor5-custom-build/build/translations/it\";\r\nimport \"ckeditor5-custom-build/build/translations/fr\";\r\nimport \"ckeditor5-custom-build/build/translations/es\";\r\nimport \"ckeditor5-custom-build/build/translations/pt\";\r\nimport \"ckeditor5-custom-build/build/translations/de\";\r\n\r\nconst styles = theme => ({\r\n preToolbar: {\r\n marginBottom: theme.spacing(1)\r\n }\r\n});\r\n\r\nclass HtmlEditor extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = HtmlEditor.getInitState(props);\r\n this.handleEditorChange = this.handleEditorChange.bind(this);\r\n }\r\n\r\n static getInitState(props) {\r\n return {\r\n value: props ? (props.value || \"\") : \"\"\r\n };\r\n }\r\n\r\n static getDerivedStateFromProps(props) {\r\n if (props.value !== null && props.value !== undefined) {\r\n return {\r\n value: props.value\r\n };\r\n\r\n } else {\r\n return HtmlEditor.getInitState(props);\r\n }\r\n }\r\n\r\n handleEditorChange(event, editor) {\r\n const data = editor.getData();\r\n if (this.props.onChange) {\r\n this.props.onChange(data);\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const {\r\n value\r\n } = this.state;\r\n\r\n const {\r\n defaultLanguage,\r\n disabled,\r\n minimalToolbar\r\n } = this.props;\r\n\r\n const customConfig = {\r\n link: {\r\n defaultProtocol: \"http://\",\r\n decorators: [\r\n {\r\n mode: \"manual\",\r\n label: \"Open in a new tab\",\r\n defaultValue: true,\r\n attributes: {\r\n target: \"_blank\",\r\n rel: \"noopener noreferrer\"\r\n }\r\n }\r\n ]\r\n }\r\n };\r\n\r\n if (minimalToolbar) {\r\n customConfig.toolbar = {\r\n items: [\r\n \"bold\",\r\n \"italic\",\r\n \"underline\",\r\n \"strikethrough\",\r\n \"removeFormat\",\r\n \"|\",\r\n \"fontColor\",\r\n \"fontBackgroundColor\",\r\n \"|\",\r\n \"link\"\r\n ]\r\n };\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(state => ({\r\n defaultLanguage: state.app.language\r\n }))\r\n)(HtmlEditor);\r\n","import React, {Fragment, useState} from 'react';\r\nimport I18nInputAdornmentSelect from \"../i18n-input-adornment-select\";\r\nimport {connect} from \"react-redux\";\r\nimport HtmlEditor from \"../html-editor\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst Component = ({\r\n htmlEditorProps,\r\n defaultLanguage,\r\n languages\r\n }) => {\r\n\r\n const [language, setLanguage] = useState(defaultLanguage);\r\n\r\n return (\r\n \r\n \r\n \r\n setLanguage(lang)}/>\r\n \r\n \r\n {\r\n const res = {};\r\n languages.forEach(lang => {\r\n if (htmlEditorProps.value && htmlEditorProps.value[lang]) {\r\n res[lang] = htmlEditorProps.value[lang];\r\n }\r\n });\r\n res[language] = val;\r\n htmlEditorProps.onChange(res);\r\n }}\r\n\r\n />\r\n \r\n );\r\n};\r\n\r\nconst ConnectedComponent =\r\n connect(state => ({\r\n languages: state.app.languages,\r\n defaultLanguage: state.app.language\r\n }))(Component);\r\n\r\nconst I18nHtmlEditor = props =>\r\n ;\r\n\r\nexport default I18nHtmlEditor;","export const getDashboardDynamicFilterLabelTranslations = t => {\r\n\r\n const translations = t => ({\r\n Region: t('dashboards.dynamicFilterLabels.region'),\r\n Province: t('dashboards.dynamicFilterLabels.province'),\r\n Municipality: t('dashboards.dynamicFilterLabels.municipality'),\r\n });\r\n\r\n return translations(t !== undefined ? t : str => str);\r\n};","import React, {Fragment, useEffect, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport _ from \"lodash\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport CustomMaterialTable from \"../custom-material-table\";\r\nimport Selector from \"../selector\";\r\nimport {\r\n DASHBOARD_ELEM_ENABLE_FILTERS_KEY,\r\n DASHBOARD_ELEM_FILTER_DIMENSION_KEY,\r\n DASHBOARD_ELEM_SHOW_TITLE_KEY,\r\n DASHBOARD_ELEM_TYPE_KEY,\r\n DASHBOARD_ELEM_TYPE_VALUE_TEXT,\r\n DASHBOARD_ELEM_TYPE_VALUE_VIEW,\r\n DASHBOARD_ELEM_VALUE_KEY,\r\n DASHBOARD_ELEM_WIDTH_KEY,\r\n emptyDashboardElem\r\n} from \"../../utils/dashboards\";\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport I18nDelayedTextField from \"../i18n-delayed-text-field\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport I18nHtmlEditor from \"../i18n-html-editor\";\r\nimport {getI18nObjCustomFilterAndSearch, localizeI18nObj} from \"../../utils/i18n\";\r\nimport {getDashboardDynamicFilterLabelTranslations} from \"../../constants/getDashboardDynamicFilterLabelTranslations\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport {sanitize} from \"dompurify\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst MAX_VIEW_PER_ROW = 4;\r\n\r\nconst ROW_ACTION_WIDTH = 48;\r\n\r\nconst styles = theme => ({\r\n filterLevels: {\r\n fontSize: 16\r\n },\r\n rowContainer: {\r\n width: \"100%\",\r\n marginTop: 8\r\n },\r\n row: {\r\n width: `calc(100% - ${2 * ROW_ACTION_WIDTH}px)`,\r\n height: \"100%\",\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\"\r\n },\r\n rowActions: {\r\n width: (2 * ROW_ACTION_WIDTH),\r\n margin: \"5px 0\",\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\"\r\n },\r\n rowAction: {\r\n width: ROW_ACTION_WIDTH\r\n },\r\n colContainer: {\r\n border: \"1px solid rgba(0, 0, 0, 0.2)\",\r\n marginRight: 8,\r\n padding: \"16px 16px 0px 16px\",\r\n height: \"100%\",\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\"\r\n },\r\n col: {\r\n width: \"100%\",\r\n display: \"inline-block\"\r\n },\r\n divider: {\r\n margin: \"8px 0\"\r\n },\r\n colActions: {\r\n width: \"100%\",\r\n textAlign: \"center\",\r\n paddingBottom: 8,\r\n \"& button\": {\r\n padding: 8\r\n }\r\n },\r\n viewContainer: {\r\n width: \"100%\"\r\n },\r\n input: {\r\n width: \"100%\",\r\n \"& > div\": {\r\n width: \"100%\"\r\n },\r\n \"& input\": {\r\n padding: 12,\r\n height: 20\r\n }\r\n },\r\n multilineInput: {\r\n width: \"100%\",\r\n \"& > div\": {\r\n width: \"100%\",\r\n padding: 12\r\n },\r\n \"& textarea\": {\r\n padding: 0\r\n },\r\n \"& svg\": {\r\n cursor: \"pointer\",\r\n marginLeft: 4\r\n }\r\n },\r\n formLabel: {\r\n marginLeft: 0,\r\n marginRight: 0\r\n }\r\n});\r\n\r\nconst getStrippedHtmlText = html => {\r\n const $span = $('').get(0);\r\n\r\n $span.innerHTML = sanitize(html, {ADD_ATTR: [\"target\"]});\r\n const text = $span.textContent || $span.innerText || \"\";\r\n\r\n $($span).remove();\r\n\r\n return text;\r\n}\r\n\r\nconst DashboardBuilderCol = ({\r\n t,\r\n classes,\r\n defaultLanguage,\r\n languages,\r\n dashboard,\r\n rowIdx,\r\n colIdx,\r\n col,\r\n onColRemove,\r\n onTypeReset,\r\n fetchViews,\r\n onViewReset,\r\n onTextEdit,\r\n onShowTitleChange,\r\n onEnableFiltersChange,\r\n onFilterDimensionChange\r\n }) =>\r\n \r\n
\r\n {col[DASHBOARD_ELEM_TYPE_KEY] === null\r\n ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : (\r\n
\r\n {col[DASHBOARD_ELEM_TYPE_KEY] === DASHBOARD_ELEM_TYPE_VALUE_VIEW\r\n ? (\r\n \r\n \r\n view?.title ? localizeI18nObj(view.title, defaultLanguage, languages) : \"\"}\r\n className={classes.input}\r\n selectTitle={t(\"components.dashboardBuilder.actions.selectView\")}\r\n onSelect={() => fetchViews(rowIdx, colIdx)}\r\n resetTitle={t(\"components.dashboardBuilder.actions.deselectView\")}\r\n onReset={() => onViewReset(rowIdx, colIdx, col[DASHBOARD_ELEM_VALUE_KEY])}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {t(\"components.dashboardBuilder.actions.showTitle\") + \":\"}\r\n \r\n }\r\n labelPlacement=\"start\"\r\n control={\r\n onShowTitleChange(rowIdx, colIdx, checked)}\r\n />\r\n }\r\n />\r\n \r\n \r\n \r\n {t(\"components.dashboardBuilder.actions.enableFilters\") + \":\"}\r\n \r\n }\r\n labelPlacement=\"start\"\r\n style={{fontSize: 14}}\r\n control={\r\n onEnableFiltersChange(rowIdx, colIdx, checked)}\r\n />\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {t(\"components.dashboardBuilder.filterDimension.label\") + \":\"}\r\n \r\n \r\n onFilterDimensionChange(rowIdx, colIdx, target.value)}\r\n />\r\n \r\n \r\n )\r\n : (\r\n \r\n onTextEdit(rowIdx, colIdx, col[DASHBOARD_ELEM_VALUE_KEY])}/>\r\n \r\n )\r\n }}\r\n />\r\n )\r\n }\r\n
\r\n )\r\n }\r\n
\r\n \r\n
\r\n {col[DASHBOARD_ELEM_TYPE_KEY] !== null && (\r\n \r\n onTypeReset(rowIdx, colIdx)}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n onColRemove(rowIdx, colIdx)}\r\n disabled={dashboard.dashboardConfig[rowIdx].length === 1}\r\n >\r\n \r\n \r\n \r\n
\r\n ;\r\n\r\nconst DashboardBuilderRow = ({\r\n t,\r\n classes,\r\n defaultLanguage,\r\n languages,\r\n dashboard,\r\n row,\r\n rowIdx,\r\n onRowRemove,\r\n onColAdd,\r\n onColRemove,\r\n onTypeReset,\r\n fetchViews,\r\n onViewReset,\r\n onTextEdit,\r\n onShowTitleChange,\r\n onEnableFiltersChange,\r\n onFilterDimensionChange\r\n }) =>\r\n
\r\n
\r\n {row.map((col, idx) =>\r\n \r\n )}\r\n
\r\n
\r\n \r\n onColAdd(rowIdx)}\r\n disabled={row.length === MAX_VIEW_PER_ROW}\r\n >\r\n \r\n \r\n \r\n \r\n onRowRemove(rowIdx)}\r\n >\r\n \r\n \r\n \r\n
\r\n
;\r\n\r\nconst handleHeight = () => {\r\n $(\"#dashboard-builder__row-container\").children().each(function () {\r\n\r\n let maxHeight = 0;\r\n $(this).find(\".dashboard-builder__col\").each(function () {\r\n maxHeight = Math.max(maxHeight, $(this).outerHeight());\r\n });\r\n $(this).css({height: maxHeight + 48 + 17 + 16 + 2}); // col actions + divider + vertical paddings + border width\r\n\r\n $(this).find(\".dashboard-builder__col\").each(function () {\r\n $(this).css({margin: `${(maxHeight - $(this).outerHeight()) / 2}px 0`});\r\n });\r\n });\r\n}\r\n\r\nfunction DashboardBuilder(props) {\r\n const {\r\n classes,\r\n defaultLanguage,\r\n languages,\r\n dashboardFilterConfig,\r\n nodes,\r\n dashboard,\r\n onChange,\r\n views,\r\n fetchViews,\r\n onViewsHide\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [selectedRowIdx, setSelectedRowIdx] = useState(null);\r\n const [selectedColIdx, setSelectedColIdx] = useState(null);\r\n\r\n const [isEditTextVisible, setEditTextVisibility] = useState(false);\r\n const [tempTextValue, setTempTextValue] = useState(null);\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", handleHeight);\r\n return () => window.removeEventListener(\"resize\", handleHeight)\r\n }, []);\r\n\r\n useEffect(() => {\r\n handleHeight();\r\n });\r\n\r\n const handleRowAdd = () => {\r\n const newDashboard = _.cloneDeep(dashboard);\r\n newDashboard.dashboardConfig.push([emptyDashboardElem]);\r\n onChange(newDashboard);\r\n };\r\n\r\n const handleRowRemove = rowIdx => {\r\n let newDashboard = _.cloneDeep(dashboard);\r\n newDashboard.dashboardConfig = newDashboard.dashboardConfig.filter((_, idx) => idx !== rowIdx);\r\n onChange(newDashboard);\r\n };\r\n\r\n const handleColAdd = rowIdx => {\r\n let newDashboard = _.cloneDeep(dashboard);\r\n newDashboard.dashboardConfig[rowIdx].push(emptyDashboardElem);\r\n\r\n let totalWidth = 0;\r\n newDashboard.dashboardConfig[rowIdx] = newDashboard.dashboardConfig[rowIdx].map((col, colIdx) => {\r\n const width = colIdx < (newDashboard.dashboardConfig[rowIdx].length - 1)\r\n ? Math.floor(100 / newDashboard.dashboardConfig[rowIdx].length)\r\n : 0;\r\n totalWidth += width;\r\n\r\n return {\r\n ...col,\r\n [DASHBOARD_ELEM_WIDTH_KEY]: width || (100 - totalWidth)\r\n }\r\n });\r\n onChange(newDashboard);\r\n };\r\n\r\n const handleColRemove = (rowIdx, colIdx) => {\r\n let newDashboard = _.cloneDeep(dashboard);\r\n newDashboard.dashboardConfig[rowIdx] = newDashboard.dashboardConfig[rowIdx].filter((_, idx) => idx !== colIdx);\r\n newDashboard.dashboardConfig[rowIdx] = newDashboard.dashboardConfig[rowIdx].map(col => ({\r\n ...col,\r\n [DASHBOARD_ELEM_WIDTH_KEY]: (100 / newDashboard.dashboardConfig[rowIdx].length)\r\n }));\r\n onChange(newDashboard);\r\n };\r\n\r\n const handleTypeReset = (rowIdx, colIdx) => {\r\n let newDashboard = _.cloneDeep(dashboard);\r\n newDashboard.dashboardConfig[rowIdx][colIdx][DASHBOARD_ELEM_TYPE_KEY] = null;\r\n newDashboard.dashboardConfig[rowIdx][colIdx][DASHBOARD_ELEM_VALUE_KEY] = null;\r\n onChange(newDashboard);\r\n };\r\n\r\n const handleViewSet = (rowIdx, colIdx, view) => {\r\n let newDashboard = _.cloneDeep(dashboard);\r\n newDashboard.dashboardConfig[rowIdx][colIdx][DASHBOARD_ELEM_TYPE_KEY] = DASHBOARD_ELEM_TYPE_VALUE_VIEW;\r\n newDashboard.dashboardConfig[rowIdx][colIdx][DASHBOARD_ELEM_VALUE_KEY] = view.viewTemplateId;\r\n newDashboard.views[view.viewTemplateId] = view;\r\n onChange(newDashboard);\r\n onViewsHide();\r\n };\r\n\r\n const handleViewReset = (rowIdx, colIdx, viewId) => {\r\n let newDashboard = _.cloneDeep(dashboard);\r\n newDashboard.dashboardConfig[rowIdx][colIdx][DASHBOARD_ELEM_VALUE_KEY] = null;\r\n onChange(newDashboard);\r\n onViewsHide();\r\n };\r\n\r\n const handleEditTextShow = (rowIdx, colIdx, text) => {\r\n setSelectedRowIdx(rowIdx);\r\n setSelectedColIdx(colIdx);\r\n setTempTextValue(text);\r\n setEditTextVisibility(true);\r\n };\r\n\r\n const handleEditTextHide = () => {\r\n setSelectedRowIdx(null);\r\n setSelectedColIdx(null);\r\n setTempTextValue(null);\r\n setEditTextVisibility(false);\r\n };\r\n\r\n const handleTextChange = (rowIdx, colIdx, text) => {\r\n let newDashboard = _.cloneDeep(dashboard);\r\n newDashboard.dashboardConfig[rowIdx][colIdx][DASHBOARD_ELEM_TYPE_KEY] = DASHBOARD_ELEM_TYPE_VALUE_TEXT;\r\n newDashboard.dashboardConfig[rowIdx][colIdx][DASHBOARD_ELEM_VALUE_KEY] = text;\r\n onChange(newDashboard);\r\n setEditTextVisibility(false);\r\n };\r\n\r\n const handleShowTitleChange = (rowIdx, colIdx, value) => {\r\n let newDashboard = _.cloneDeep(dashboard);\r\n newDashboard.dashboardConfig[rowIdx][colIdx][DASHBOARD_ELEM_SHOW_TITLE_KEY] = value;\r\n onChange(newDashboard);\r\n };\r\n\r\n const handleEnableFiltersChange = (rowIdx, colIdx, value) => {\r\n let newDashboard = _.cloneDeep(dashboard);\r\n newDashboard.dashboardConfig[rowIdx][colIdx][DASHBOARD_ELEM_ENABLE_FILTERS_KEY] = value;\r\n onChange(newDashboard);\r\n };\r\n\r\n const handleFilterDimensionChange = (rowIdx, colIdx, value) => {\r\n let newDashboard = _.cloneDeep(dashboard);\r\n newDashboard.dashboardConfig[rowIdx][colIdx][DASHBOARD_ELEM_FILTER_DIMENSION_KEY] = value;\r\n onChange(newDashboard);\r\n };\r\n\r\n return (\r\n \r\n {dashboard && (\r\n \r\n \r\n \r\n onChange({...dashboard, title: value})}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {t(\"components.dashboardBuilder.filterLevels\")}:\r\n \r\n \r\n \r\n {(dashboardFilterConfig?.labels || []).map((label, idx) =>\r\n \r\n onChange({\r\n ...dashboard,\r\n filterLevels: {\r\n ...dashboard.filterLevels,\r\n [label]: checked\r\n }\r\n })}\r\n />\r\n }\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {(dashboard.dashboardConfig || []).map((row, idx) =>\r\n {\r\n fetchViews();\r\n setSelectedRowIdx(rowIdx);\r\n setSelectedColIdx(colIdx);\r\n }}\r\n onViewReset={handleViewReset}\r\n onTextEdit={handleEditTextShow}\r\n onShowTitleChange={handleShowTitleChange}\r\n onEnableFiltersChange={handleEnableFiltersChange}\r\n onFilterDimensionChange={handleFilterDimensionChange}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {t(\"components.dashboardBuilder.modals.views.title\")}\r\n \r\n \r\n nodes.find(node => node.nodeId === nodeId))}\r\n columns={[\r\n {\r\n field: \"nodeId\",\r\n title: t(\"components.dashboardBuilder.modals.views.columns.node\"),\r\n render: ({nodeId}) => nodes.find(node => node.nodeId === nodeId).code,\r\n customFilterAndSearch: (str, {nodeId}) =>\r\n nodes.find(node => node.nodeId === nodeId).code.toLowerCase()\r\n .includes(str.toLowerCase())\r\n },\r\n {\r\n field: \"datasetId\",\r\n title: t(\"scenes.viewsSettings.table.columns.viewDatasetId\")\r\n },\r\n {\r\n field: \"title\",\r\n title: t(\"scenes.viewsSettings.table.columns.viewTitle\"),\r\n render: ({title}) => localizeI18nObj(title, defaultLanguage, languages),\r\n customFilterAndSearch: getI18nObjCustomFilterAndSearch(defaultLanguage, languages)\r\n },\r\n ]}\r\n onRowClick={(event, rowData) => {\r\n handleViewSet(selectedRowIdx, selectedColIdx, rowData);\r\n setSelectedRowIdx(null);\r\n setSelectedColIdx(null);\r\n }}\r\n />\r\n \r\n \r\n {\r\n onViewsHide();\r\n setSelectedRowIdx(null);\r\n setSelectedColIdx(null);\r\n }}\r\n >\r\n {t(\"commons.confirm.cancel\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"components.dashboardBuilder.modals.text.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(state => ({\r\n languages: state.app.languages,\r\n defaultLanguage: state.app.language,\r\n dashboardFilterConfig: state.dashboardFilterConfig\r\n }))\r\n)(DashboardBuilder);","export const FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_INIT = \"fetch/dashboard/dataset/async/handler/init\"\r\nexport const FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_SUCCESS = \"fetch/dashboard/dataset/async/handler/success\"\r\nexport const FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_ERROR = \"fetch/dashboard/dataset/async/handler/error\"\r\nexport const FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_RESET = \"fetch/dashboard/dataset/async/handler/reset\"\r\n\r\nexport const initFetchDashboardDatasetAsyncHandler = (dashboardId, isFetchingDynamicView, requestUuid) => ({\r\n type: FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_INIT,\r\n payload: {\r\n dashboardId: dashboardId,\r\n isFetchingDynamicView: isFetchingDynamicView,\r\n requestUuid: requestUuid\r\n }\r\n});\r\n\r\nexport const successFetchDashboardDatasetAsyncHandler = (dashboardId, isFetchingDynamicView, dashboardJsonStats, dashboardLayouts, dashboardFilterTrees, dashboardTimePeriodsByFreq, dashboardMaps) => ({\r\n type: FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_SUCCESS,\r\n payload: {\r\n dashboardId: dashboardId,\r\n isFetchingDynamicView: isFetchingDynamicView,\r\n dashboardJsonStats: dashboardJsonStats,\r\n dashboardLayouts: dashboardLayouts,\r\n dashboardFilterTrees: dashboardFilterTrees,\r\n dashboardTimePeriodsByFreq: dashboardTimePeriodsByFreq,\r\n dashboardMaps: dashboardMaps,\r\n }\r\n});\r\n\r\nexport const errorFetchDashboardDatasetAsyncHandler = (dashboardId, requestIds) => ({\r\n type: FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_ERROR,\r\n payload: {\r\n dashboardId: dashboardId,\r\n requestIds: requestIds\r\n }\r\n});\r\n\r\nexport const resetFetchDashboardDatasetAsyncHandler = (dashboardId, requestIds) => ({\r\n type: FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_RESET,\r\n payload: {\r\n dashboardId: dashboardId,\r\n requestIds: requestIds\r\n }\r\n});","import {Reducer} from \"redux\";\r\nimport {REQUEST_ERROR, REQUEST_SUCCESS} from \"../../middlewares/request/requestActions\";\r\nimport {DASHBOARDS_DASHBOARD_FETCH, DASHBOARDS_DASHBOARDS_CLEAR, DASHBOARDS_DATASET_FILTER_APPLY, DASHBOARDS_DATASET_FILTER_SET} from \"./dashboardActions\";\r\nimport {DASHBOARD_ELEM_FILTER_DIMENSION_KEY, DASHBOARD_ELEM_TYPE_KEY, DASHBOARD_ELEM_TYPE_VALUE_VIEW, getViewIdxFromRowAndCol} from \"../../utils/dashboards\";\r\nimport {getCriteriaObjectFromArray} from \"../../utils/criteria\";\r\nimport {\r\n FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_ERROR,\r\n FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_INIT,\r\n FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_RESET,\r\n FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_SUCCESS\r\n} from \"../../middlewares/fetch-dashboard-dataset-async-handler/actions\";\r\nimport _ from \"lodash\";\r\nimport {getUpdatedLayout} from \"../../utils/jsonStat\";\r\n\r\nexport const DASHBOARD_VIEW_STATE_APPLY_FILTERS = \"DASHBOARD_VIEW_STATE_APPLY_FILTERS\"\r\nexport const DASHBOARD_VIEW_STATE_FETCHING = \"DASHBOARD_VIEW_STATE_FETCHING\"\r\nexport const DASHBOARD_VIEW_STATE_ERROR = \"DASHBOARD_VIEW_STATE_ERROR\"\r\n\r\ntype DashboardState = {\r\n dashboards: any | null,\r\n fetchedDashboards: { [key: string]: { [key: string]: boolean } },\r\n jsonStats: any | null,\r\n layouts: any | null,\r\n filterTrees: any | null,\r\n timePeriodsByFreq: any | null,\r\n dynamicViewPendingRequests: string[]\r\n}\r\n\r\nconst initialState = {\r\n dashboards: null,\r\n fetchedDashboards: {},\r\n jsonStats: null,\r\n layouts: null,\r\n filterTrees: null,\r\n timePeriodsByFreq: null,\r\n dynamicViewPendingRequests: []\r\n};\r\n\r\nconst dashboardReducer: Reducer = (\r\n state = initialState,\r\n action\r\n) => {\r\n switch (action.type) {\r\n case DASHBOARDS_DASHBOARDS_CLEAR: {\r\n return {\r\n ...initialState\r\n }\r\n }\r\n case DASHBOARDS_DATASET_FILTER_APPLY: {\r\n const newFetchedDashboards = _.cloneDeep(state.fetchedDashboards);\r\n Object.keys(newFetchedDashboards).forEach(id => newFetchedDashboards[id] = {\r\n ...newFetchedDashboards[id],\r\n dynamic: false\r\n });\r\n\r\n return {\r\n ...state,\r\n fetchedDashboards: newFetchedDashboards\r\n }\r\n }\r\n case FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_INIT: {\r\n let currentDashboardJsonStats = _.cloneDeep(state.jsonStats?.[action.payload.dashboardId]);\r\n let currentDashboardLayouts = _.cloneDeep(state.layouts?.[action.payload.dashboardId]);\r\n let currentDashboardFilterTrees = _.cloneDeep(state.filterTrees?.[action.payload.dashboardId]);\r\n let currentDashboardTimePeriodsByFreq = _.cloneDeep(state.timePeriodsByFreq?.[action.payload.dashboardId]);\r\n\r\n (state.dashboards?.[action.payload.dashboardId]?.dashboardConfig || []).forEach((row: any, rowIdx: number) => {\r\n row.forEach((col: any, colIdx: number) => {\r\n if (col[DASHBOARD_ELEM_TYPE_KEY] === DASHBOARD_ELEM_TYPE_VALUE_VIEW) {\r\n const viewIdx = getViewIdxFromRowAndCol(rowIdx, colIdx);\r\n const isStaticView = (col[DASHBOARD_ELEM_FILTER_DIMENSION_KEY] || \"\").length === 0;\r\n\r\n const jsonStat = currentDashboardJsonStats?.[viewIdx];\r\n currentDashboardJsonStats = {\r\n ...currentDashboardJsonStats,\r\n [viewIdx]: (isStaticView && jsonStat)\r\n ? jsonStat\r\n : DASHBOARD_VIEW_STATE_FETCHING\r\n }\r\n\r\n const layout = currentDashboardLayouts?.[viewIdx];\r\n currentDashboardLayouts = {\r\n ...currentDashboardLayouts,\r\n [viewIdx]: (isStaticView && jsonStat)\r\n ? layout\r\n : null\r\n }\r\n\r\n const filterTree = currentDashboardFilterTrees?.[viewIdx];\r\n currentDashboardFilterTrees = {\r\n ...currentDashboardFilterTrees,\r\n [viewIdx]: (isStaticView && jsonStat)\r\n ? filterTree\r\n : null\r\n }\r\n\r\n const timePeriodsByFreq = currentDashboardTimePeriodsByFreq?.[viewIdx];\r\n currentDashboardTimePeriodsByFreq = {\r\n ...currentDashboardTimePeriodsByFreq,\r\n [viewIdx]: timePeriodsByFreq || null\r\n }\r\n }\r\n });\r\n });\r\n\r\n const dynamicViewPendingRequests = [...state.dynamicViewPendingRequests];\r\n if (action.payload.isFetchingDynamicView) {\r\n dynamicViewPendingRequests.push(action.payload.requestUuid);\r\n }\r\n\r\n return {\r\n ...state,\r\n jsonStats: {\r\n ...state.jsonStats,\r\n [action.payload.dashboardId]: currentDashboardJsonStats\r\n },\r\n layouts: {\r\n ...state.layouts,\r\n [action.payload.dashboardId]: currentDashboardLayouts\r\n },\r\n filterTrees: {\r\n ...state.filterTrees,\r\n [action.payload.dashboardId]: currentDashboardFilterTrees\r\n },\r\n timePeriodsByFreq: {\r\n ...state.timePeriodsByFreq,\r\n [action.payload.dashboardId]: currentDashboardTimePeriodsByFreq\r\n },\r\n dynamicViewPendingRequests: dynamicViewPendingRequests\r\n }\r\n }\r\n case FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_SUCCESS: {\r\n\r\n const fetchedDashboard = state.fetchedDashboards[action.payload.dashboardId] || {};\r\n\r\n return (state.jsonStats && state.layouts && state.filterTrees && state.timePeriodsByFreq)\r\n ? {\r\n ...state,\r\n fetchedDashboards: {\r\n ...state.fetchedDashboards,\r\n [action.payload.dashboardId]: {\r\n static: !action.payload.isFetchingDynamicView ? true : fetchedDashboard.static,\r\n dynamic: action.payload.isFetchingDynamicView ? true : fetchedDashboard.dynamic\r\n }\r\n },\r\n jsonStats: {\r\n ...state.jsonStats,\r\n [action.payload.dashboardId]: {\r\n ...state.jsonStats[action.payload.dashboardId],\r\n ...action.payload.dashboardJsonStats\r\n }\r\n },\r\n layouts: {\r\n ...state.layouts,\r\n [action.payload.dashboardId]: {\r\n ...state.layouts[action.payload.dashboardId],\r\n ...action.payload.dashboardLayouts\r\n }\r\n },\r\n filterTrees: {\r\n ...state.filterTrees,\r\n [action.payload.dashboardId]: {\r\n ...state.filterTrees[action.payload.dashboardId],\r\n ...action.payload.dashboardFilterTrees\r\n }\r\n },\r\n timePeriodsByFreq: {\r\n ...state.timePeriodsByFreq,\r\n [action.payload.dashboardId]: {\r\n ...state.timePeriodsByFreq[action.payload.dashboardId],\r\n ...action.payload.dashboardTimePeriodsByFreq\r\n }\r\n }\r\n }\r\n : {\r\n ...state\r\n }\r\n }\r\n case FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_ERROR: {\r\n const jsonStats = _.cloneDeep(state.jsonStats);\r\n const layouts = _.cloneDeep(state.layouts);\r\n const filterTrees = _.cloneDeep(state.filterTrees);\r\n const timePeriodsByFreq = _.cloneDeep(state.timePeriodsByFreq);\r\n\r\n (action.payload.requestIds || []).forEach((id: string) => {\r\n if (jsonStats) {\r\n jsonStats[action.payload.dashboardId] = {\r\n ...jsonStats[action.payload.dashboardId],\r\n [id]: DASHBOARD_VIEW_STATE_ERROR\r\n }\r\n }\r\n if (layouts) {\r\n layouts[action.payload.dashboardId] = {\r\n ...layouts[action.payload.dashboardId],\r\n [id]: null\r\n }\r\n }\r\n if (filterTrees) {\r\n filterTrees[action.payload.dashboardId] = {\r\n ...filterTrees[action.payload.dashboardId],\r\n [id]: null\r\n }\r\n }\r\n if (timePeriodsByFreq) {\r\n timePeriodsByFreq[action.payload.dashboardId] = {\r\n ...timePeriodsByFreq[action.payload.dashboardId],\r\n [id]: null\r\n }\r\n }\r\n });\r\n\r\n return {\r\n ...state,\r\n jsonStats: jsonStats,\r\n layouts: layouts,\r\n filterTrees: filterTrees,\r\n timePeriodsByFreq: timePeriodsByFreq\r\n }\r\n }\r\n case FETCH_DASHBOARD_DATASET_ASYNC_HANDLER_RESET: {\r\n const jsonStats = _.cloneDeep(state.jsonStats);\r\n const layouts = _.cloneDeep(state.layouts);\r\n const filterTrees = _.cloneDeep(state.filterTrees);\r\n const timePeriodsByFreq = _.cloneDeep(state.timePeriodsByFreq);\r\n\r\n (action.payload.requestIds || []).forEach((id: string) => {\r\n if (jsonStats) {\r\n jsonStats[action.payload.dashboardId] = {\r\n ...jsonStats[action.payload.dashboardId],\r\n [id]: DASHBOARD_VIEW_STATE_FETCHING\r\n }\r\n }\r\n if (layouts) {\r\n layouts[action.payload.dashboardId] = {\r\n ...layouts[action.payload.dashboardId],\r\n [id]: null\r\n }\r\n }\r\n if (filterTrees) {\r\n filterTrees[action.payload.dashboardId] = {\r\n ...filterTrees[action.payload.dashboardId],\r\n [id]: null\r\n }\r\n }\r\n if (timePeriodsByFreq) {\r\n timePeriodsByFreq[action.payload.dashboardId] = {\r\n ...timePeriodsByFreq[action.payload.dashboardId],\r\n [id]: null\r\n }\r\n }\r\n });\r\n\r\n return {\r\n ...state,\r\n jsonStats: jsonStats,\r\n layouts: layouts,\r\n filterTrees: filterTrees,\r\n timePeriodsByFreq: timePeriodsByFreq\r\n }\r\n }\r\n case DASHBOARDS_DATASET_FILTER_SET: {\r\n return {\r\n ...state,\r\n layouts: {\r\n ...state.layouts,\r\n [action.payload.dashboardId]: {\r\n ...state.layouts[action.payload.dashboardId],\r\n [action.payload.viewIdx]: {\r\n ...state.layouts[action.payload.dashboardId][action.payload.viewIdx],\r\n layout: getUpdatedLayout(\r\n action.payload.dimension,\r\n action.payload.value,\r\n state.jsonStats[action.payload.dashboardId][action.payload.viewIdx],\r\n state.layouts[action.payload.dashboardId][action.payload.viewIdx].layout,\r\n state.filterTrees[action.payload.dashboardId][action.payload.viewIdx]\r\n )\r\n }\r\n }\r\n }\r\n }\r\n }\r\n case REQUEST_SUCCESS: {\r\n switch (action.payload.label) {\r\n case DASHBOARDS_DASHBOARD_FETCH: {\r\n const views = _.cloneDeep(action.payload.response.views);\r\n for (let key in views) {\r\n if (views.hasOwnProperty(key)) {\r\n views[key] = {\r\n ...views[key],\r\n datasetId: views[key].datasetId ? views[key].datasetId.split(\"+\").join(\",\") : undefined,\r\n criteria: getCriteriaObjectFromArray(views[key].criteria),\r\n layouts: JSON.parse(views[key].layouts)\r\n }\r\n }\r\n }\r\n\r\n return {\r\n ...state,\r\n dashboards: {\r\n ...state.dashboards,\r\n [action.payload.extra.dashboardId]: {\r\n ...action.payload.response,\r\n dashboardConfig: action.payload.response?.dashboardConfig\r\n ? JSON.parse(action.payload.response.dashboardConfig)\r\n : {},\r\n filterLevels: action.payload.response?.filterLevels\r\n ? JSON.parse(action.payload.response.filterLevels)\r\n : {},\r\n views: views\r\n }\r\n }\r\n }\r\n }\r\n default:\r\n return state\r\n }\r\n }\r\n case REQUEST_ERROR: {\r\n switch (action.payload.label) {\r\n case DASHBOARDS_DASHBOARD_FETCH: {\r\n return {\r\n ...state,\r\n dashboards: {\r\n ...state.dashboards,\r\n [action.payload.extra.dashboardId]: null\r\n }\r\n }\r\n }\r\n default:\r\n return state\r\n }\r\n }\r\n default:\r\n return state\r\n }\r\n};\r\n\r\nexport default dashboardReducer;","import React from \"react\";\r\nimport {getAttributeLabel, getAttributeValueLabel, getFormattedDimensionValueLabel} from \"../../utils/jsonStat\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport SanitizedHTML from \"../sanitized-html\";\r\n\r\nconst DimensionAttributeList = ({\r\n datasetId,\r\n jsonStat,\r\n dimension,\r\n dimValuesAttributeList,\r\n labelFormat,\r\n style\r\n }) =>\r\n
\r\n \r\n {(dimValuesAttributeList || []).map(({dimVal, attributes}) => (\r\n \r\n \r\n {dimension && (dimValuesAttributeList || []).length > 1 && (\r\n \r\n {getFormattedDimensionValueLabel(jsonStat, datasetId, dimension, dimVal, labelFormat) + \":\"}\r\n \r\n )}\r\n {(attributes || []).map((attribute, idx) => (\r\n \r\n ${getAttributeLabel(attribute, labelFormat)}: ${getAttributeValueLabel(attribute, labelFormat)}`}\r\n allowTarget\r\n />\r\n \r\n ))}\r\n \r\n \r\n ))}\r\n \r\n
;\r\n\r\nexport default DimensionAttributeList;","import React, {Fragment, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport DimensionAttributeList from \"../dimension-attribute-list\";\r\n\r\nconst styles = theme => ({\r\n attributeButton: {\r\n padding: \"0 2px 0 4px\",\r\n cursor: \"pointer\"\r\n },\r\n attributeIcon: {\r\n height: 18,\r\n lineHeight: \"18px\",\r\n borderRadius: 3\r\n },\r\n attributeIconAst: {\r\n fontFamily: \"Do Hyeon\"\r\n },\r\n attributeIconChar: {\r\n color: \"rgb(255, 255, 255)\",\r\n backgroundColor: \"rgb(108, 108, 108)\",\r\n marginLeft: 2,\r\n padding: \"0 4px\"\r\n }\r\n});\r\n\r\nconst DatasetFilterAttributeIcon = ({\r\n t,\r\n classes,\r\n datasetId,\r\n jsonStat,\r\n dimension,\r\n dimensionValues,\r\n datasetDimAttributeMap,\r\n labelFormat,\r\n disabled,\r\n disabledTooltip\r\n }) => {\r\n\r\n const [isVisible, setVisibility] = useState(false);\r\n\r\n const dimValuesAttributeList = [];\r\n (dimensionValues || []).forEach(dimValue => {\r\n if (datasetDimAttributeMap?.[dimension]?.[dimValue]) {\r\n dimValuesAttributeList.push({\r\n attributes: datasetDimAttributeMap[dimension][dimValue],\r\n dimVal: dimValue\r\n });\r\n }\r\n });\r\n\r\n return (\r\n \r\n {dimValuesAttributeList.length > 0 && (\r\n \r\n }\r\n placement=\"top\"\r\n open={disabledTooltip === true\r\n ? false\r\n : undefined\r\n }\r\n >\r\n setVisibility(true)\r\n : undefined\r\n }\r\n >\r\n {(\r\n dimValuesAttributeList.length === 1 &&\r\n dimValuesAttributeList[0].attributes.length === 1 &&\r\n dimValuesAttributeList[0].attributes[0].valueId !== dimValuesAttributeList[0].attributes[0].valueLabel &&\r\n dimValuesAttributeList[0].attributes[0].valueId.length <= 2\r\n )\r\n ? (\r\n \r\n {dimValuesAttributeList[0].attributes[0].valueId}\r\n \r\n )\r\n : (\r\n \r\n (*)\r\n \r\n )\r\n }\r\n
\r\n \r\n )}\r\n\r\n setVisibility(false)}\r\n >\r\n setVisibility(false)}>\r\n {t(\"components.attributeIcons.dialog.title\")}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n event.stopPropagation();\r\n setVisibility(false);\r\n }}\r\n >\r\n {t(\"commons.confirm.close\")}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(DatasetFilterAttributeIcon);","import React, {Fragment, useEffect, useState} from 'react';\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {getTextWidth} from \"../../utils/style\";\r\nimport InfiniteScrollTable from \"../infinite-scroll-table\";\r\nimport {\r\n getDimensionAttributeMap,\r\n getDimensionFilterValues,\r\n getDimensionLabel,\r\n getFormattedDimensionLabel,\r\n getFormattedDimensionValueLabel,\r\n getMarginalDimensions,\r\n MARGINAL_DIMENSION_KEY\r\n} from \"../../utils/jsonStat\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport DatasetFilterAttributeIcon from \"../dataset-filter-attribute-icon\";\r\nimport {localizeI18nObj} from \"../../utils/i18n\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport {LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH} from \"../label-format-selector/constants\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n maxWidth: \"100%\"\r\n },\r\n filter: {\r\n display: \"inline-block\",\r\n verticalAlign: \"bottom\",\r\n marginRight: 16,\r\n marginBottom: 8,\r\n maxWidth: \"100%\"\r\n },\r\n item: {\r\n fontSize: 14,\r\n maxWidth: \"100%\"\r\n },\r\n itemWrapper: {\r\n display: \"inline-block\",\r\n verticalAlign: \"bottom\",\r\n maxWidth: \"100%\"\r\n },\r\n itemDisabled: {\r\n pointerEvents: \"none\",\r\n '& > svg': {\r\n visibility: \"hidden\"\r\n }\r\n },\r\n dimensionTitle: {\r\n marginBottom: 4,\r\n fontSize: 13,\r\n color: theme.palette.primary.main\r\n },\r\n tooltip: {\r\n fontSize: 13\r\n },\r\n tooltipElement: {\r\n margin: \"4px 0\",\r\n fontWeight: \"normal\"\r\n }\r\n});\r\n\r\nconst isMultiSelectDim = (dim, layout) => (layout?.primaryDim?.[0] === dim || layout?.secondaryDim?.[0] === dim);\r\n\r\nfunction DatasetFilters(props) {\r\n const {\r\n classes,\r\n appLanguage,\r\n languages,\r\n hiddenDimensionValueLabels,\r\n jsonStat,\r\n layout,\r\n filterTree,\r\n labelFormat,\r\n onSelect,\r\n hideMultiSelectDims = false\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [timeDim, setTimeDim] = useState(null);\r\n\r\n const [visibleId, setVisibleId] = useState(null);\r\n const [data, setData] = useState(null);\r\n\r\n const [checkedKeys, setCheckedKeys] = useState(null);\r\n\r\n const [dimAttributeMap, setDimAttributeMap] = useState(null);\r\n\r\n useEffect(() => {\r\n setTimeDim(jsonStat.role?.time?.[0]);\r\n }, [jsonStat]);\r\n\r\n useEffect(() => {\r\n setDimAttributeMap(getDimensionAttributeMap(jsonStat, t));\r\n }, [jsonStat, t]);\r\n\r\n const filters = (layout?.primaryDim || []).concat((layout?.secondaryDim || [])).concat(layout?.filters || []);\r\n\r\n const handleFilterOpen = visibleIdx => {\r\n setVisibleId(visibleIdx);\r\n const data = getDimensionFilterValues(filters[visibleIdx], jsonStat, layout, filterTree, true);\r\n if (filters[visibleIdx] === timeDim) {\r\n data.reverse();\r\n }\r\n setData(data);\r\n\r\n const dim = filters[visibleIdx];\r\n if (isMultiSelectDim(dim, layout)) {\r\n if (checkedKeys === null && dim === layout?.primaryDim?.[0]) {\r\n setCheckedKeys(layout.primaryDimValues);\r\n } else if (checkedKeys === null && dim === layout?.secondaryDim?.[0]) {\r\n setCheckedKeys(layout.secondaryDimValues);\r\n }\r\n }\r\n };\r\n\r\n const handleFilterClose = () => {\r\n setVisibleId(null);\r\n setCheckedKeys(null);\r\n setData(null);\r\n };\r\n\r\n const handleFilterSubmit = (dimension, values, isArr) => {\r\n let data;\r\n if (isArr) {\r\n data = jsonStat.dimension[dimension].category.index.filter(dimVal => values.includes(dimVal));\r\n } else {\r\n data = values;\r\n }\r\n onSelect(dimension, data);\r\n handleFilterClose();\r\n };\r\n\r\n const getFormattedName = (dimension, value, labelFormat, withAttribute) => {\r\n let valueLabel;\r\n\r\n if (dimension !== MARGINAL_DIMENSION_KEY) {\r\n valueLabel = getFormattedDimensionValueLabel(jsonStat, null, dimension, value, labelFormat, t);\r\n\r\n } else {\r\n const localizedHiddenDimensionValueLabels = localizeI18nObj(hiddenDimensionValueLabels, appLanguage, languages) || [];\r\n const hiddenLabels = localizedHiddenDimensionValueLabels.map(label => label.toLowerCase());\r\n\r\n const marginal = jsonStat.extension.marginalvalues[value];\r\n valueLabel = marginal.label\r\n ? marginal.label\r\n : getMarginalDimensions(jsonStat, marginal.datasetid)\r\n .map(dim => getFormattedDimensionValueLabel(jsonStat, marginal.datasetid, dim, marginal.dimensionvalues[dim], labelFormat, t))\r\n .filter(label => !hiddenLabels.includes(label.toLowerCase()))\r\n .join(\", \");\r\n }\r\n\r\n const datasetId = jsonStat.extension.datasets[0];\r\n\r\n return !withAttribute\r\n ? valueLabel\r\n : (\r\n \r\n {valueLabel}\r\n {withAttribute && (\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n const getFormattedTooltip = (dimension, value, labelFormat) => {\r\n return (\r\n
\r\n {(() => {\r\n if (dimension !== MARGINAL_DIMENSION_KEY) {\r\n return getFormattedDimensionValueLabel(jsonStat, null, dimension, value, labelFormat, t);\r\n\r\n } else {\r\n const marginal = jsonStat.extension.marginalvalues[value];\r\n if (marginal.label) {\r\n return marginal.label;\r\n } else {\r\n return getMarginalDimensions(jsonStat, marginal.datasetid).map((dim, idx) => {\r\n const dimLabel = getFormattedDimensionLabel(jsonStat, marginal.datasetid, dim, labelFormat, t);\r\n const valueLabel = getFormattedDimensionValueLabel(jsonStat, marginal.datasetid, dim, marginal.dimensionvalues[dim], labelFormat, t);\r\n return (\r\n
\r\n {dimLabel}: {valueLabel}\r\n
\r\n )\r\n });\r\n }\r\n }\r\n })()}\r\n
\r\n )\r\n };\r\n\r\n return (\r\n \r\n
\r\n {(() => {\r\n const getTextWidthEl = $('').css({\r\n visibility: 'hidden',\r\n fontSize: 16\r\n }).appendTo('body').get(0);\r\n\r\n const select = [];\r\n filters.forEach((filter, idx) => {\r\n\r\n const {\r\n filtersValue\r\n } = layout;\r\n\r\n if (\r\n (isMultiSelectDim(filter, layout) && !hideMultiSelectDims) ||\r\n (!isMultiSelectDim(filter, layout) && jsonStat.size[jsonStat.id.indexOf(filter)] !== 1)\r\n ) {\r\n\r\n const dimLabel = getDimensionLabel(jsonStat, null, filter, t);\r\n const minWidth = getTextWidth(dimLabel, getTextWidthEl) + 1;\r\n\r\n const value = isMultiSelectDim(filter, layout)\r\n ? layout.primaryDim[0] === filter\r\n ? layout.primaryDimValues\r\n : layout.secondaryDimValues\r\n : filtersValue[filter];\r\n\r\n const datasetId = !isMultiSelectDim(filter, layout) && filter === MARGINAL_DIMENSION_KEY && jsonStat.extension.marginalvalues[value]?.datasetid\r\n ? jsonStat.extension.marginalvalues[value].datasetid\r\n : jsonStat?.extension?.datasets?.[0];\r\n\r\n const getValueLabel = value => isMultiSelectDim(filter, layout)\r\n ? jsonStat.size[jsonStat.id.indexOf(filter)] !== 1\r\n ? value.length === 1\r\n ? t(\"components.datasetFilters.selectedCount\", {selected: value.length})\r\n : t(\"components.datasetFilters.selectedCount_plural\", {selected: value.length})\r\n : getFormattedName(filter, value[0], labelFormat)\r\n : getFormattedName(filter, value, labelFormat);\r\n\r\n select.push(\r\n
\r\n {isMultiSelectDim(filter, layout) && (\r\n \r\n {layout.primaryDim[0] === filter\r\n ? t(\"components.datasetFilters.primaryDim\")\r\n : t(\"components.datasetFilters.secondaryDim\")\r\n }\r\n \r\n )}\r\n \r\n {dimLabel}\r\n \r\n getValueLabel(value)}\r\n className={`${classes.item} ${jsonStat.size[jsonStat.id.indexOf(filter)] === 1 ? classes.itemDisabled : \"\"}`}\r\n onOpen={() => jsonStat.size[jsonStat.id.indexOf(filter)] === 1\r\n ? null\r\n : handleFilterOpen(idx)\r\n }\r\n SelectDisplayProps={{\r\n \"aria-haspopup\": true,\r\n \"aria-label\": `${dimLabel}: ${getValueLabel(value)}`\r\n }}\r\n >\r\n {jsonStat.dimension[filter].category.index.map((el, idx) => (\r\n {el}\r\n ))}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n });\r\n\r\n $(getTextWidthEl).remove();\r\n\r\n return select\r\n })()}\r\n
\r\n \r\n \r\n {visibleId !== null\r\n ? !isMultiSelectDim(filters[visibleId], layout)\r\n ? t(\"components.datasetFilters.modals.title\", {dimension: getDimensionLabel(jsonStat, null, filters[visibleId], t)})\r\n : t(\"components.datasetFilters.modals.title_plural\", {dimension: getDimensionLabel(jsonStat, null, filters[visibleId], t)})\r\n : \"\"\r\n }\r\n \r\n \r\n {!isMultiSelectDim(filters[visibleId], layout)\r\n ? (\r\n id}\r\n showHeader={false}\r\n columns={[\r\n {\r\n title: \"\",\r\n dataIndex: 'label',\r\n render: (_, {id}) => getFormattedName(filters[visibleId], id, LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH, true),\r\n renderText: (_, {id}) => getFormattedName(filters[visibleId], id, LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH),\r\n renderTooltip: (_, {id}) => getFormattedTooltip(filters[visibleId], id, LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH),\r\n minWidth: 100\r\n }\r\n ]}\r\n onRowClick={rowData => handleFilterSubmit(filters[visibleId], rowData.id)}\r\n getRowStyle={rowData => ({\r\n background: rowData.id === layout.filtersValue[filters[visibleId]]\r\n ? \"#fff9e5\"\r\n : undefined\r\n })}\r\n height={400}\r\n />\r\n )\r\n : (\r\n id}\r\n columns={[\r\n {\r\n title: t(\"components.datasetFilters.table.columns.label.title\"),\r\n dataIndex: 'label',\r\n render: (_, {id}) => getFormattedName(filters[visibleId], id, LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH, true),\r\n renderText: (_, {id}) => getFormattedName(filters[visibleId], id, LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH),\r\n renderTooltip: (_, {id}) => getFormattedTooltip(filters[visibleId], id, LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH),\r\n minWidth: 100,\r\n noFilter: true,\r\n noSort: true\r\n }\r\n ]}\r\n rowSelection={{\r\n selectedRowKeys: checkedKeys,\r\n onChange: checkedKeys => setCheckedKeys(data.map(({id}) => id).filter(key => checkedKeys.includes(key)))\r\n }}\r\n height={400}\r\n />\r\n )\r\n }\r\n \r\n \r\n \r\n {isMultiSelectDim(filters[visibleId], layout) && (\r\n handleFilterSubmit(filters[visibleId], checkedKeys, true)}\r\n color=\"primary\"\r\n disabled={(checkedKeys || []).length < 1}\r\n >\r\n {t(\"commons.confirm.confirm\")}\r\n \r\n )}\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default compose(\r\n connect(({app, appConfig}) => ({\r\n appLanguage: app.language,\r\n languages: app.languages,\r\n hiddenDimensionValueLabels: appConfig.hiddenDimensionValueLabels\r\n })),\r\n withStyles(styles)\r\n)(DatasetFilters);","export const isValidIntegerInInclusiveRange = (val, min, max) => {\r\n if (val === null || val === undefined || val === \"\" || isNaN(val) || !(/^[+-]?[0-9]*$/gm).test(val)) {\r\n return false;\r\n }\r\n\r\n const int = parseInt(val, 10);\r\n return !((min !== null && min !== undefined && int < min) || (max !== null && max !== undefined && int > max));\r\n}\r\n\r\nexport const isNumeric = n => (!isNaN(parseFloat(n)) && isFinite(n));\r\n\r\nexport const isMultiLanguageNameUnique = (name, names) => {\r\n const stringList = [];\r\n\r\n names.forEach(name => Object.values(name).forEach(name => stringList.push(name)));\r\n\r\n return !Object.values(name).find(localizedName => stringList.includes(localizedName));\r\n};","import _ from \"lodash\"\r\n\r\nexport function getMaxTreeDepth(tree, childrenKey) {\r\n\r\n const recursive = node =>\r\n node\r\n ? 1 + Math.max(...(node[childrenKey] || []).map(recursive), 0)\r\n : 0;\r\n\r\n return tree\r\n ? Math.max(...tree.map(recursive), 0)\r\n : 0;\r\n}\r\n\r\nexport function getNodesAtDepth(tree, childrenKey, depth) {\r\n\r\n const res = [];\r\n\r\n const recursive = (subTree, currDepth) =>\r\n subTree\r\n ? (\r\n subTree.map(node => {\r\n if (depth === currDepth) {\r\n res.push(_.cloneDeep(node));\r\n }\r\n if (node[childrenKey] && node[childrenKey].length) {\r\n recursive(node[childrenKey], currDepth + 1);\r\n }\r\n return null;\r\n })\r\n )\r\n : [];\r\n\r\n recursive(tree, 1);\r\n\r\n return res;\r\n}\r\n\r\nexport function getTreeFromArray(arr, parentKey, childrenKey) {\r\n const mappedArr = {};\r\n const tree = [];\r\n\r\n // first map the nodes of the array to an object -> create a hash table.\r\n arr.forEach(el => {\r\n el[childrenKey] = [];\r\n mappedArr[el.id] = el;\r\n });\r\n\r\n arr.forEach(el => {\r\n if (el[parentKey]) {\r\n // if the element is not at the root level, add it to its parent array of children.\r\n mappedArr[el[parentKey]][childrenKey].push(el);\r\n } else {\r\n // if the element is at the root level, add it to first level elements array.\r\n tree.push(el);\r\n }\r\n });\r\n\r\n return tree;\r\n}\r\n\r\nexport function getNode(tree, childrenKey, test) {\r\n\r\n if (!(tree !== null && tree.length)) return null;\r\n\r\n const foundNodes = tree.filter(test);\r\n\r\n if (foundNodes.length) {\r\n return foundNodes[0];\r\n } else {\r\n const foundNodesInChild =\r\n tree\r\n .filter(node => node[childrenKey])\r\n .map(node => getNode(node[childrenKey], childrenKey, test))\r\n .filter(result => result !== null);\r\n\r\n if (foundNodesInChild.length) {\r\n return foundNodesInChild[0];\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport function getNodes(tree, childrenKey, test) {\r\n\r\n const res = [];\r\n\r\n const recursive = subTree =>\r\n subTree\r\n ? (\r\n subTree.map(node => {\r\n if (test && test(node)) {\r\n res.push(_.cloneDeep(node));\r\n }\r\n if (node[childrenKey] && node[childrenKey].length) {\r\n recursive(node[childrenKey]);\r\n }\r\n return null;\r\n })\r\n )\r\n : [];\r\n\r\n recursive(tree);\r\n\r\n return res;\r\n}\r\n\r\nexport function getFilteredTreeWithPaths(tree, childrenKey, test) {\r\n\r\n tree = _.cloneDeep(tree);\r\n\r\n tree = tree.map(subTree => {\r\n if (subTree[childrenKey]) {\r\n subTree[childrenKey] = getFilteredTreeWithPaths(subTree[childrenKey], childrenKey, test);\r\n }\r\n return subTree;\r\n });\r\n\r\n tree = tree.filter(node => (node[childrenKey] && node[childrenKey].length) || test(node));\r\n\r\n return tree;\r\n}\r\n\r\nexport function getMappedTree(tree, childrenKey, map) {\r\n\r\n tree = _.cloneDeep(tree);\r\n\r\n tree = tree.map((root, idx) => map(root, idx));\r\n\r\n tree = tree.map(subTree => {\r\n if (subTree[childrenKey]) {\r\n subTree[childrenKey] = getMappedTree(subTree[childrenKey], childrenKey, map);\r\n }\r\n return subTree;\r\n });\r\n\r\n return tree;\r\n}\r\n\r\nexport function getFilteredTree(tree, childrenKey, test) {\r\n\r\n tree = _.cloneDeep(tree);\r\n\r\n tree = tree.filter(test);\r\n\r\n tree = tree.map(subTree => {\r\n if (subTree[childrenKey]) {\r\n subTree[childrenKey] = getFilteredTree(subTree[childrenKey], childrenKey, test);\r\n }\r\n return subTree;\r\n });\r\n\r\n return tree;\r\n}\r\n\r\nexport function getMappedTreeDeptFirst(tree, childrenKey, map) {\r\n\r\n tree = _.cloneDeep(tree);\r\n\r\n tree = tree.map(node => {\r\n if (node[childrenKey]) {\r\n node[childrenKey] = getMappedTreeDeptFirst(node[childrenKey], childrenKey, map);\r\n }\r\n return map(node);\r\n });\r\n\r\n return tree;\r\n}","import {\r\n getCoordinatesArrayFromDataIdx,\r\n getDataIdxFromCoordinatesArray,\r\n getDimensionValuesIndexesMap,\r\n getFormattedDimensionLabel,\r\n getFormattedDimensionValueLabel,\r\n getMarginalDimensions,\r\n getObservationAttributeMap,\r\n MARGINAL_ATTRIBUTE_KEY,\r\n MARGINAL_DIMENSION_KEY,\r\n VARIATION_DIMENSION_KEY,\r\n VARIATION_VALUE_CYCLICAL_KEY,\r\n VARIATION_VALUE_TREND_KEY,\r\n VARIATION_VALUE_VALUE_KEY\r\n} from \"../../utils/jsonStat\";\r\nimport {getFormattedValue} from \"../../utils/formatters\";\r\nimport {getCombinationArrays} from \"../../utils/other\";\r\nimport _ from \"lodash\";\r\nimport {isNumeric} from \"../../utils/validator\";\r\nimport {getMappedTree} from \"../../utils/tree\";\r\nimport BitSet from \"bitset\";\r\n\r\nexport const TABLE_HEADER_NORMAL = \"TABLE_HEADER_NORMAL\";\r\nexport const TABLE_HEADER_MERGED = \"TABLE_HEADER_MERGED\";\r\n\r\nexport const FILTER_TYPE_OBS = \"FILTER_TYPE_OBS\";\r\nexport const FILTER_TYPE_DIM = \"FILTER_TYPE_DIM\";\r\n\r\nexport const OBS_FILTER_OPERATOR_AND = \"OBS_FILTER_OPERATOR_AND\";\r\nexport const OBS_FILTER_OPERATOR_OR = \"OBS_FILTER_OPERATOR_OR\";\r\nexport const OBS_FILTER_OPERATOR_EQUAL = \"OBS_FILTER_OPERATOR_EQUAL\";\r\nexport const OBS_FILTER_OPERATOR_NOT_EQUAL = \"OBS_FILTER_OPERATOR_NOT_EQUAL\";\r\nexport const OBS_FILTER_OPERATOR_GREATER_OR_EQUAL = \"OBS_FILTER_OPERATOR_GREATER_OR_EQUAL\";\r\nexport const OBS_FILTER_OPERATOR_GREATER = \"OBS_FILTER_OPERATOR_GREATER\";\r\nexport const OBS_FILTER_OPERATOR_LESS_OR_EQUAL = \"OBS_FILTER_OPERATOR_LESS_OR_EQUAL\";\r\nexport const OBS_FILTER_OPERATOR_LESS = \"OBS_FILTER_OPERATOR_LESS\";\r\n\r\nexport const DIM_FILTER_OPERATOR_EQUAL = \"DIM_FILTER_OPERATOR_EQUAL\";\r\nexport const DIM_FILTER_OPERATOR_NOT_EQUAL = \"DIM_FILTER_OPERATOR_NOT_EQUAL\";\r\nexport const DIM_FILTER_OPERATOR_STARTS_WITH = \"DIM_FILTER_OPERATOR_STARTS_WITH\";\r\nexport const DIM_FILTER_OPERATOR_INCLUDES = \"DIM_FILTER_OPERATOR_INCLUDES\";\r\nexport const DIM_FILTER_OPERATOR_NOT_INCLUDES = \"DIM_FILTER_OPERATOR_NOT_INCLUDES\";\r\nexport const DIM_FILTER_OPERATOR_ENDS_WITH = \"DIM_FILTER_OPERATOR_ENDS_WITH\";\r\n\r\nexport const DIM_VALUE_LABEL_MODIFIER_REMOVE = \"replace\";\r\nexport const DIM_VALUE_LABEL_MODIFIER_APPEND = \"append\";\r\nexport const DIM_VALUE_LABEL_MODIFIER_PREPEND = \"prepend\";\r\n\r\nconst willValuePassObsFilters = (value, filter, decimalSeparator, decimalPlaces) => {\r\n if (!isNumeric(value)) {\r\n return false;\r\n }\r\n\r\n const computeSingleEntity = (value, entity) => {\r\n if (!isNumeric(entity.filterValue)) {\r\n return false;\r\n }\r\n\r\n const formattedValue = getFormattedValue(value, decimalSeparator, decimalPlaces, \"\");\r\n const formattedFilterValue = getFormattedValue(entity.filterValue, decimalSeparator, decimalPlaces, \"\");\r\n\r\n if ((formattedValue || \"\").length === 0 || (formattedFilterValue || \"\").length === 0) {\r\n return false;\r\n }\r\n\r\n const thousandsSeparator = decimalSeparator === \".\" ? \",\" : \".\";\r\n\r\n const numericFormattedValue = Number(formattedValue.replaceAll(thousandsSeparator, \"\").replace(decimalSeparator, \".\"));\r\n const numericFormattedFilterValue = Number(formattedFilterValue.replaceAll(thousandsSeparator, \"\").replace(decimalSeparator, \".\"));\r\n\r\n switch (entity.operator) {\r\n case OBS_FILTER_OPERATOR_EQUAL: {\r\n return numericFormattedValue === numericFormattedFilterValue;\r\n }\r\n case OBS_FILTER_OPERATOR_NOT_EQUAL: {\r\n return numericFormattedValue !== numericFormattedFilterValue;\r\n }\r\n case OBS_FILTER_OPERATOR_GREATER_OR_EQUAL: {\r\n return numericFormattedValue >= numericFormattedFilterValue;\r\n }\r\n case OBS_FILTER_OPERATOR_GREATER: {\r\n return numericFormattedValue > numericFormattedFilterValue;\r\n }\r\n case OBS_FILTER_OPERATOR_LESS_OR_EQUAL: {\r\n return numericFormattedValue <= numericFormattedFilterValue;\r\n }\r\n case OBS_FILTER_OPERATOR_LESS: {\r\n return numericFormattedValue < numericFormattedFilterValue;\r\n }\r\n default: {\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n const isEntity1Valorized = (filter.entity1.filterValue || \"\").length > 0;\r\n const isEntity2Valorized = (filter.entity2.filterValue || \"\").length > 0;\r\n\r\n const isEntity1Passed = isEntity1Valorized && computeSingleEntity(value, filter.entity1);\r\n const isEntity2Passed = isEntity2Valorized && computeSingleEntity(value, filter.entity2);\r\n\r\n if (isEntity1Valorized && isEntity2Valorized) {\r\n if (filter.operator === OBS_FILTER_OPERATOR_AND) {\r\n return isEntity1Passed && isEntity2Passed;\r\n } else {\r\n return isEntity1Passed || isEntity2Passed;\r\n }\r\n } else if (isEntity1Valorized) {\r\n return isEntity1Passed;\r\n } else if (isEntity2Valorized) {\r\n return isEntity2Passed;\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nconst willValuePassDimFilters = (value, filter) => {\r\n const operator = filter.operator;\r\n const filterValue = (filter.filterValue || \"\").toLowerCase();\r\n\r\n if ((value || \"\").length === 0) {\r\n return false;\r\n }\r\n\r\n switch (operator) {\r\n case DIM_FILTER_OPERATOR_EQUAL: {\r\n return value.toLowerCase() === filterValue;\r\n }\r\n case DIM_FILTER_OPERATOR_NOT_EQUAL: {\r\n return value.toLowerCase() !== filterValue;\r\n }\r\n case DIM_FILTER_OPERATOR_STARTS_WITH: {\r\n return value.toLowerCase().startsWith(filterValue);\r\n }\r\n case DIM_FILTER_OPERATOR_INCLUDES: {\r\n return value.toLowerCase().includes(filterValue);\r\n }\r\n case DIM_FILTER_OPERATOR_NOT_INCLUDES: {\r\n return !value.toLowerCase().includes(filterValue);\r\n }\r\n case DIM_FILTER_OPERATOR_ENDS_WITH: {\r\n return value.toLowerCase().endsWith(filterValue);\r\n }\r\n default: {\r\n return false;\r\n }\r\n }\r\n};\r\n\r\nconst TABLE_PREVIEW_PLACEHOLDER = \"xxx\";\r\nconst TABLE_SECTION_DIMENSIONS_SEPARATOR_ICON = \"\";\r\nconst TABLE_SECTION_DIMENSIONS_SEPARATOR = `${TABLE_SECTION_DIMENSIONS_SEPARATOR_ICON}`;\r\n\r\nconst upIcon = \"\";\r\nconst downIcon = \"\";\r\nconst filterIcon = \"\";\r\n\r\nconst TABLE_HEADER_CELL_TEXT_MAX_ROW_COUNT = 2;\r\n\r\nconst getDimSpanMap = (jsonStat, arr, length) => {\r\n const obj = {};\r\n arr.forEach((el, idx) => {\r\n obj[el] = idx === 0\r\n ? length / jsonStat.size[jsonStat.id.indexOf(el)]\r\n : obj[arr[idx - 1]] / jsonStat.size[jsonStat.id.indexOf(el)];\r\n });\r\n\r\n return obj;\r\n};\r\n\r\nconst getDimValuesMap = (jsonStat, repCount, arr, length, dimsToInvert) => {\r\n const obj = {};\r\n\r\n arr.forEach(dim => {\r\n if (repCount[dim]) {\r\n obj[dim] = [];\r\n const dimValues = !dimsToInvert.includes(dim)\r\n ? jsonStat.dimension[dim].category.index\r\n : jsonStat.dimension[dim].category.index.slice().reverse();\r\n\r\n obj[dim] = [...dimValues];\r\n }\r\n });\r\n\r\n return obj;\r\n};\r\n\r\nconst getFirstIndex = (bitSetArr, n) => {\r\n let i = 0, c = 0, found = false;\r\n\r\n bitSetArr.forEach(bitSet => {\r\n if (!found) {\r\n for (let b of bitSet) {\r\n if (b) {\r\n if (c === n) {\r\n found = true;\r\n break;\r\n }\r\n c++;\r\n }\r\n i++;\r\n }\r\n }\r\n });\r\n\r\n return i;\r\n};\r\n\r\nconst getJsonStatLayoutObjects = (jsonStat, rows, cols, sections, dimsToInvert, isPreview) => {\r\n\r\n /** rows handling **/\r\n let sectionRowCountFull = 1;\r\n (rows || []).forEach(row => sectionRowCountFull *= jsonStat.size[jsonStat.id.indexOf(row)]);\r\n\r\n /** cols handling **/\r\n let colCountFull = 1;\r\n (cols || []).forEach(col => colCountFull *= jsonStat.size[jsonStat.id.indexOf(col)]);\r\n\r\n /** sections handling **/\r\n const sectionArray = [];\r\n (sections || []).forEach(section => {\r\n const array = !dimsToInvert.includes(section)\r\n ? jsonStat.dimension[section].category.index\r\n : jsonStat.dimension[section].category.index.slice().reverse();\r\n sectionArray.push(array);\r\n });\r\n const sectionDimCombinations = sectionArray.length > 0\r\n ? getCombinationArrays(sectionArray)\r\n : [];\r\n\r\n const indexesMap = getDimensionValuesIndexesMap(jsonStat);\r\n\r\n const dimSpanMap = {\r\n ...getDimSpanMap(jsonStat, rows, sectionRowCountFull),\r\n ...getDimSpanMap(jsonStat, cols, colCountFull)\r\n };\r\n\r\n let dimValuesMap = null;\r\n if (!isPreview) {\r\n dimValuesMap = {\r\n ...getDimValuesMap(jsonStat, dimSpanMap, rows, sectionRowCountFull, dimsToInvert),\r\n ...getDimValuesMap(jsonStat, dimSpanMap, cols, colCountFull, dimsToInvert)\r\n };\r\n }\r\n\r\n return {\r\n sectionRowCountFull,\r\n colCountFull,\r\n sectionDimCombinations,\r\n indexesMap,\r\n dimSpanMap,\r\n dimValuesMap\r\n };\r\n};\r\n\r\nexport const getCellAttributeIdsElem = (ids, htmlElemId, isDataCell) => {\r\n if (!ids || ids.length === 0) {\r\n return \"\";\r\n }\r\n\r\n return `(*)`;\r\n};\r\n\r\nexport const getDimensionValueFromIdx = (dim, idx, dimValuesMap, dimSpanMap) => dimValuesMap[dim][Math.floor(idx / dimSpanMap[dim]) % dimValuesMap[dim].length];\r\n\r\nexport const getTableSupportStructures = (\r\n jsonStat,\r\n layout,\r\n isPreview,\r\n removeEmptyLines,\r\n showTrend,\r\n showCyclical,\r\n externalDimensionFilterValues,\r\n filterable,\r\n filters,\r\n onFilterComplete,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n decimalSeparator,\r\n decimalPlaces,\r\n invertedDims,\r\n hierarchyOnlyAttributes,\r\n hideHierarchyOnlyRows,\r\n enableMeasuresOfSynthesisAndVariability\r\n) => {\r\n\r\n if (isPreview) {\r\n return null;\r\n }\r\n\r\n const {\r\n rows,\r\n cols,\r\n filters: layoutFilters,\r\n filtersValue,\r\n sections\r\n } = layout;\r\n\r\n const dimsToInvert = (invertedDims || []).filter(dimensionId => [...rows, ...cols, ...sections].includes(dimensionId));\r\n\r\n const {\r\n sectionRowCountFull,\r\n colCountFull,\r\n sectionDimCombinations,\r\n indexesMap,\r\n dimSpanMap,\r\n dimValuesMap\r\n } = getJsonStatLayoutObjects(jsonStat, rows, cols, sections, dimsToInvert, isPreview);\r\n\r\n const sectionIdxs = sectionDimCombinations.length > 0\r\n ? sectionDimCombinations.map((_, idx) => idx)\r\n : [0];\r\n\r\n const valueMatrix = {};\r\n\r\n const valorizedSectionRows = sectionIdxs.map(() => new BitSet());\r\n const valorizedCols = new BitSet();\r\n\r\n /** dimension attributes handling **/\r\n\r\n // commented because it is not possible to pass the t function to a worker\r\n // const dimAttributeMap = getDimensionAttributeMap(jsonStat, str => str, (ids, dim, dimValue) => getCellAttributeIdsElem(ids, `${dim},${dimValue}`, false));\r\n\r\n /** observation attributes handling **/\r\n\r\n const obsAttributeMap = getObservationAttributeMap(jsonStat, (ids, obsIdx) => getCellAttributeIdsElem(ids, obsIdx, true));\r\n\r\n /** empty rows & cols handling **/\r\n\r\n if (!removeEmptyLines) {\r\n valorizedSectionRows.forEach(valorizedRows => {\r\n valorizedRows.setRange(0, sectionRowCountFull, 1);\r\n });\r\n valorizedCols.setRange(0, colCountFull, 1);\r\n }\r\n\r\n const dimensionFilterValues = {};\r\n\r\n /** dimension filter from layout **/\r\n layoutFilters.forEach(dim => {\r\n dimensionFilterValues[dim] = {};\r\n dimensionFilterValues[dim][filtersValue[dim]] = 1;\r\n });\r\n\r\n /** dimension filter from variation selector **/\r\n if (jsonStat.id.includes(VARIATION_DIMENSION_KEY)) {\r\n dimensionFilterValues[VARIATION_DIMENSION_KEY] = {};\r\n dimensionFilterValues[VARIATION_DIMENSION_KEY][VARIATION_VALUE_VALUE_KEY] = 1;\r\n if (showTrend) {\r\n dimensionFilterValues[VARIATION_DIMENSION_KEY][VARIATION_VALUE_TREND_KEY] = 1;\r\n }\r\n if (showCyclical) {\r\n dimensionFilterValues[VARIATION_DIMENSION_KEY][VARIATION_VALUE_CYCLICAL_KEY] = 1;\r\n }\r\n }\r\n\r\n /** dimension filter from external filters **/\r\n Object.keys(externalDimensionFilterValues || {}).forEach(dim => {\r\n if ((externalDimensionFilterValues[dim] || []).length > 0) {\r\n dimensionFilterValues[dim] = externalDimensionFilterValues[dim].reduce((o, key) => Object.assign(o, {[key]: 1}), {});\r\n }\r\n });\r\n\r\n /** observation handling **/\r\n Object.keys(jsonStat.value).forEach(key => {\r\n const obsAttributes = obsAttributeMap[key] || [];\r\n const obsValue = jsonStat.value[key];\r\n\r\n const isHierarchicalOnlyObs = (\r\n (obsValue === null || obsValue === \"\") &&\r\n (obsAttributes.length === 1 && (hierarchyOnlyAttributes || []).includes(`${obsAttributes[0].id}+${obsAttributes[0].valueId}`)) &&\r\n (\r\n hideHierarchyOnlyRows ||\r\n !rows.find(row => Object.keys(jsonStat.dimension[row].category?.child || {}).length > 0) // there are no hierarchical dimensions in rows\r\n )\r\n );\r\n\r\n if (obsValue !== undefined && !isHierarchicalOnlyObs) {\r\n let coordinates = getCoordinatesArrayFromDataIdx(key, jsonStat.size);\r\n\r\n dimsToInvert.forEach(dim => {\r\n const dimIdx = jsonStat.id.indexOf(dim);\r\n coordinates[dimIdx] = jsonStat.size[dimIdx] - 1 - coordinates[dimIdx];\r\n });\r\n\r\n const obsDimValues = {};\r\n jsonStat.id.forEach((dim, dimIdx) => {\r\n obsDimValues[dim] = jsonStat.dimension[dim].category.index[coordinates[dimIdx]];\r\n });\r\n\r\n const isFiltered = jsonStat.id.find(dim => dimensionFilterValues[dim] && !dimensionFilterValues[dim][obsDimValues[dim]]) !== undefined;\r\n\r\n if (!isFiltered) {\r\n\r\n let secIdx = 0;\r\n if (sections.length > 0) {\r\n const sectionValueArray = new Array(sections.length);\r\n coordinates.forEach((val, idx) => {\r\n const dim = jsonStat.id[idx];\r\n if (sections.includes(dim)) {\r\n sectionValueArray[sections.indexOf(dim)] = jsonStat.dimension[dim].category.index[val];\r\n }\r\n });\r\n secIdx = sectionDimCombinations.findIndex(combination => combination.join(\"+\") === sectionValueArray.join(\"+\"));\r\n }\r\n\r\n let colIdx = 0;\r\n cols.forEach(col => {\r\n const val = coordinates[jsonStat.id.indexOf(col)];\r\n colIdx += val * dimSpanMap[col];\r\n });\r\n\r\n let rowIdx = 0;\r\n rows.forEach(row => {\r\n const val = coordinates[jsonStat.id.indexOf(row)];\r\n rowIdx += val * dimSpanMap[row];\r\n });\r\n\r\n valorizedSectionRows[secIdx].set(rowIdx, 1);\r\n\r\n valorizedCols.set(colIdx, 1);\r\n\r\n if (!valueMatrix[secIdx]) {\r\n valueMatrix[secIdx] = {};\r\n }\r\n if (!valueMatrix[secIdx][colIdx]) {\r\n valueMatrix[secIdx][colIdx] = {};\r\n }\r\n valueMatrix[secIdx][colIdx][rowIdx] = jsonStat.value[key];\r\n }\r\n }\r\n });\r\n\r\n /** table filters handling **/\r\n\r\n let filteredRows = null;\r\n if (filterable && !_.isEmpty(filters)) {\r\n const dimTableFilters = Object.fromEntries(Object.entries(filters || {}).filter(([key, val]) => val.type === FILTER_TYPE_DIM));\r\n const obsTableFilters = Object.fromEntries(Object.entries(filters || {}).filter(([key, val]) => val.type === FILTER_TYPE_OBS));\r\n\r\n filteredRows = {};\r\n\r\n valorizedSectionRows.forEach((valorizedRows, s) => {\r\n for (let r = 0; r < sectionRowCountFull; r++) {\r\n if (valorizedRows.get(r)) {\r\n let passFilter = true;\r\n\r\n /** dimension filters **/\r\n Object.keys(obsTableFilters).forEach(c => {\r\n const value = valueMatrix[s][c][r];\r\n\r\n passFilter = passFilter && willValuePassObsFilters(value, filters[c], decimalSeparator, decimalPlaces);\r\n });\r\n\r\n /** observation filters **/\r\n Object.keys(dimTableFilters).forEach(dim => {\r\n const dimValue = getDimensionValueFromIdx(dim, r, dimValuesMap, dimSpanMap);\r\n let dimValueLabel = getFormattedDimensionValueLabel(jsonStat, null, dim, dimValue, (customLabelFormats?.[dim] || labelFormat));\r\n dimValueLabel = dimValueLabel.replace((dimensionValueModifiers?.[dim]?.[DIM_VALUE_LABEL_MODIFIER_REMOVE] || \"\"), \"\");\r\n dimValueLabel = dimValueLabel + (dimensionValueModifiers?.[dim]?.[DIM_VALUE_LABEL_MODIFIER_APPEND] || \"\");\r\n dimValueLabel = (dimensionValueModifiers?.[dim]?.[DIM_VALUE_LABEL_MODIFIER_PREPEND] || \"\") + dimValueLabel;\r\n\r\n passFilter = passFilter && willValuePassDimFilters(dimValueLabel, filters[dim]);\r\n });\r\n\r\n if (passFilter) {\r\n const rowDimValues = rows.map(row => getDimensionValueFromIdx(row, r, dimValuesMap, dimSpanMap)).join(\"+\");\r\n filteredRows[rowDimValues] = 1;\r\n\r\n } else {\r\n valorizedRows.set(r, 0);\r\n Object.keys(valueMatrix[s]).forEach(c => delete valueMatrix[s][c][r]);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n /** order handling **/\r\n\r\n const sectionRowsOrder = {};\r\n valorizedSectionRows.forEach((valorizedRows, sIdx) => {\r\n sectionRowsOrder[sIdx] = {};\r\n for (let i = 0; i < sectionRowCountFull; i++) {\r\n if (valorizedRows.get(i)) {\r\n sectionRowsOrder[sIdx][i] = i;\r\n }\r\n }\r\n });\r\n\r\n /** hierarchical items handling **/\r\n\r\n const depths = {};\r\n rows.forEach(row => {\r\n const childMap = jsonStat.dimension[row].category?.child || {};\r\n\r\n const map = {};\r\n const tree = [];\r\n const depth = {};\r\n\r\n jsonStat.dimension[row].category.index.forEach(key => {\r\n map[key] = {\r\n id: key,\r\n children: []\r\n };\r\n });\r\n Object.keys(childMap).forEach(parent => {\r\n childMap[parent].forEach(child => {\r\n map[child] = {\r\n ...map[child],\r\n parent: parent\r\n };\r\n });\r\n });\r\n jsonStat.dimension[row].category.index.forEach(item => {\r\n const node = map[item];\r\n if (node.parent && map[node.parent]) {\r\n // if the element is not at the root level, add it to its parent array of children.\r\n map[node.parent].children.push(node);\r\n } else {\r\n // if the element is at the root level, add it to first level elements array.\r\n tree.push(node);\r\n }\r\n });\r\n\r\n tree.forEach(({id}) => depth[id] = 0);\r\n getMappedTree(tree, \"children\", node => {\r\n node.children.forEach(({id}) => {\r\n depth[id] = depth[node.id] + 1;\r\n });\r\n return node;\r\n });\r\n\r\n depths[row] = depth;\r\n });\r\n\r\n const valorizedSectionRowsArr = valorizedSectionRows.map(valorizedRows => valorizedRows.toArray());\r\n const valorizedColsArr = valorizedCols.toArray();\r\n\r\n /** row and col count handling **/\r\n\r\n let rowCount = 0;\r\n valorizedSectionRows.forEach(valorizedRows => rowCount += valorizedRows.cardinality());\r\n\r\n const colCount = valorizedCols.cardinality();\r\n\r\n /** measures of synthesis snd variability handling **/\r\n\r\n let arithmeticMeans = null;\r\n let standardDeviations = null;\r\n let coefficientOfVariations = null;\r\n\r\n if (enableMeasuresOfSynthesisAndVariability) {\r\n arithmeticMeans = {};\r\n standardDeviations = {};\r\n coefficientOfVariations = {};\r\n\r\n for (let c = 0; c < colCountFull; c++) {\r\n\r\n let arithmeticMean = null;\r\n let standardDeviation = null;\r\n let coefficientOfVariation = null;\r\n\r\n let summation;\r\n let count;\r\n\r\n if (valorizedCols.get(c)) {\r\n\r\n const colId = jsonStat.id.filter(dim => cols.includes(dim)).map(col => getDimensionValueFromIdx(col, c, dimValuesMap, dimSpanMap)).join(\"+\");\r\n\r\n /** computing arithmetic mean **/\r\n summation = 0;\r\n count = 0;\r\n sectionIdxs.forEach(s => {\r\n const numericValues = Object.values(valueMatrix[s][c]).filter(value => isNumeric(value));\r\n numericValues.forEach(val => summation += val);\r\n count += numericValues.length;\r\n });\r\n arithmeticMean = summation / count;\r\n\r\n /** computing standard deviation **/\r\n summation = 0;\r\n count = 0;\r\n sectionIdxs.forEach(s => {\r\n const numericValues = Object.values(valueMatrix[s][c]).filter(value => isNumeric(value));\r\n numericValues.forEach(val => summation += Math.pow((val - arithmeticMean), 2));\r\n count += numericValues.length;\r\n });\r\n standardDeviation = Math.sqrt(summation / count);\r\n\r\n /** computing coefficient of variation **/\r\n coefficientOfVariation = standardDeviation / Math.abs(arithmeticMean) * 100;\r\n\r\n arithmeticMeans[colId] = arithmeticMean;\r\n standardDeviations[colId] = standardDeviation;\r\n coefficientOfVariations[colId] = coefficientOfVariation;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n rowCount: rowCount,\r\n colCount: colCount,\r\n sectionRowCountFull: sectionRowCountFull,\r\n rowCountFull: (sectionDimCombinations && sectionDimCombinations.length > 0) ? sectionDimCombinations.length * sectionRowCountFull : sectionRowCountFull,\r\n colCountFull: colCountFull,\r\n dimSpanMap: dimSpanMap,\r\n dimValuesMap: dimValuesMap,\r\n sectionDimCombinations: sectionDimCombinations,\r\n indexesMap: indexesMap,\r\n valorizedSectionRowsArr: valorizedSectionRowsArr,\r\n valorizedColsArr: valorizedColsArr,\r\n dimAttributeMap: null, // dimAttributeMap -> commented because it is not possible to pass the t function to a worker\r\n obsAttributeMap: obsAttributeMap,\r\n isPreview: isPreview,\r\n showTrend: showTrend,\r\n showCyclical: showCyclical,\r\n valueMatrix: valueMatrix,\r\n sectionRowsOrder: sectionRowsOrder,\r\n filters: filters,\r\n filteredRows: filteredRows ? Object.keys(filteredRows) : null,\r\n depths: depths,\r\n customLabelFormats: customLabelFormats,\r\n dimensionValueModifiers: dimensionValueModifiers,\r\n arithmeticMeans: arithmeticMeans,\r\n standardDeviations: standardDeviations,\r\n coefficientOfVariations: coefficientOfVariations\r\n };\r\n};\r\n\r\nconst getTableRightPadding = () => ``;\r\n\r\nconst getTableHeaderRightPadding = () => ``;\r\n\r\nconst getTableHeaderDimensionValueCells = (\r\n tableSupportStructures,\r\n valorizedCols,\r\n paginationParams,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n fontSize,\r\n firstColIdx,\r\n getTextWidthEl,\r\n dimension,\r\n t\r\n) => {\r\n\r\n const {\r\n colCountFull,\r\n jsonStat,\r\n dimSpanMap,\r\n dimValuesMap,\r\n dimAttributeMap\r\n } = tableSupportStructures;\r\n\r\n const timeDim = jsonStat.role?.time?.[0];\r\n\r\n let string = \"\";\r\n\r\n let colCount = 0;\r\n let c = firstColIdx;\r\n while (c < colCountFull && colCount < paginationParams.colPerPage) {\r\n\r\n const colSpanMax = dimSpanMap[dimension] - (c % dimSpanMap[dimension]);\r\n\r\n const colSpan = valorizedCols.slice(c, c + Math.min(colSpanMax, paginationParams.colPerPage) - 1).cardinality();\r\n\r\n if (colSpan > 0) {\r\n\r\n const dimensionValue = getDimensionValueFromIdx(dimension, c, dimValuesMap, dimSpanMap);\r\n let cellText = getFormattedDimensionValueLabel(jsonStat, null, dimension, dimensionValue, (customLabelFormats?.[dimension] || labelFormat), t)\r\n .replace((dimensionValueModifiers?.[dimension]?.[DIM_VALUE_LABEL_MODIFIER_REMOVE] || \"\"), \"\");\r\n cellText = cellText + (dimensionValueModifiers?.[dimension]?.[DIM_VALUE_LABEL_MODIFIER_APPEND] || \"\");\r\n cellText = (dimensionValueModifiers?.[dimension]?.[DIM_VALUE_LABEL_MODIFIER_PREPEND] || \"\") + cellText;\r\n\r\n let datasetId;\r\n if (dimension === MARGINAL_DIMENSION_KEY) {\r\n const marginal = jsonStat.extension.marginalvalues[dimensionValue];\r\n datasetId = marginal.label\r\n ? MARGINAL_ATTRIBUTE_KEY\r\n : marginal.datasetid;\r\n } else {\r\n datasetId = jsonStat?.extension?.datasets?.[0];\r\n }\r\n\r\n const htmlString = dimAttributeMap?.[datasetId]?.[dimension]?.[dimensionValue]\r\n ? `(*)`\r\n : \"\";\r\n\r\n window.jQuery(getTextWidthEl).addClass(`c cf${fontSize} csh ${htmlString.length > 0 ? \"ca\" : \"\"}`);\r\n window.jQuery(`${cellText + htmlString}`).appendTo(getTextWidthEl);\r\n const minWidth = window.jQuery(getTextWidthEl).innerWidth();\r\n window.jQuery(getTextWidthEl).removeClass().empty();\r\n\r\n cellText += htmlString;\r\n\r\n string += (\r\n ` 0 ? \"ca\" : \"\"}\" colspan=\"${colSpan}\" style=\"white-space: ${dimension === timeDim ? \"nowrap\" : \"normal\"}; min-width: ${(minWidth / TABLE_HEADER_CELL_TEXT_MAX_ROW_COUNT) + 40}px\">` +\r\n cellText +\r\n ``\r\n );\r\n\r\n colCount += colSpan;\r\n }\r\n\r\n c += colSpanMax;\r\n }\r\n\r\n if (paginationParams) {\r\n string += getTableHeaderRightPadding();\r\n }\r\n\r\n return string;\r\n};\r\n\r\nconst getTableHeaderIconCells = (\r\n tableSupportStructures,\r\n valorizedCols,\r\n paginationParams,\r\n fontSize,\r\n firstColIdx,\r\n sortable,\r\n orderedCol,\r\n isOrderedAscending,\r\n filterable\r\n) => {\r\n\r\n const {\r\n colCountFull,\r\n isPreview,\r\n filters\r\n } = tableSupportStructures;\r\n\r\n let string = \"\";\r\n if (!isPreview) {\r\n\r\n let colCount = 0;\r\n for (let c = firstColIdx; (c < colCountFull && colCount < paginationParams.colPerPage); c++) {\r\n if (valorizedCols.get(c)) {\r\n\r\n let iconsWidth = 0 + (sortable ? 48 : 0) + (filterable ? 24 : 0);\r\n\r\n string += ``;\r\n\r\n string += \" \"; // needed to handle cell height\r\n\r\n string += `
`;\r\n if (sortable) {\r\n string +=\r\n `
${upIcon}
` +\r\n `
${downIcon}
`;\r\n }\r\n if (filterable) {\r\n string += `
${filterIcon}
`;\r\n }\r\n\r\n string += \"
\";\r\n\r\n string += \"\";\r\n\r\n colCount++;\r\n }\r\n }\r\n\r\n } else {\r\n string += ``;\r\n }\r\n\r\n if (paginationParams) {\r\n string += getTableHeaderRightPadding();\r\n }\r\n\r\n return string;\r\n};\r\n\r\nconst getTableHeader = (\r\n uuid,\r\n tableSupportStructures,\r\n valorizedCols,\r\n paginationParams,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n customDimensionLabels,\r\n fontSize,\r\n decimalSeparator,\r\n firstColIdx,\r\n sortable,\r\n orderedCol,\r\n isOrderedAscending,\r\n filterable,\r\n showArithmeticMean,\r\n showStandardDeviation,\r\n showCoefficientOfVariation,\r\n t\r\n) => {\r\n\r\n const {\r\n jsonStat,\r\n layout,\r\n isPreview,\r\n showTrend,\r\n showCyclical,\r\n filters\r\n } = tableSupportStructures;\r\n\r\n const {\r\n rows,\r\n cols\r\n } = layout;\r\n\r\n const getTextWidthEl = window.jQuery(\"\")\r\n .css({visibility: \"hidden\"})\r\n .appendTo(`#jsonstat-table__${uuid}`).get(0);\r\n\r\n let thead = ``;\r\n\r\n const filteredCols = cols.filter(col => col !== VARIATION_DIMENSION_KEY || showTrend || showCyclical);\r\n filteredCols.forEach((col, idx) => {\r\n thead += ``;\r\n\r\n const cellText = customDimensionLabels?.[col] || getFormattedDimensionLabel(jsonStat, null, col, labelFormat, t);\r\n\r\n window.jQuery(getTextWidthEl).addClass(`c cf${fontSize} ch`);\r\n window.jQuery(`${cellText}`).appendTo(getTextWidthEl);\r\n const minWidth = window.jQuery(getTextWidthEl).innerWidth();\r\n window.jQuery(getTextWidthEl).removeClass().empty();\r\n\r\n thead += `${cellText}`;\r\n\r\n if (!isPreview) {\r\n thead += getTableHeaderDimensionValueCells(\r\n tableSupportStructures,\r\n valorizedCols,\r\n paginationParams,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n fontSize,\r\n firstColIdx,\r\n getTextWidthEl,\r\n col,\r\n t\r\n );\r\n\r\n } else {\r\n for (let c = 0; c < 3; c++) {\r\n thead += `${TABLE_PREVIEW_PLACEHOLDER}`;\r\n }\r\n }\r\n\r\n thead += \"\";\r\n });\r\n\r\n thead += ``;\r\n if (rows.length > 0) {\r\n rows.forEach((row, idx) => {\r\n thead += ``;\r\n thead += customDimensionLabels?.[row] || getFormattedDimensionLabel(jsonStat, null, row, labelFormat, t);\r\n if (filterable) {\r\n thead += `
${filterIcon}
`;\r\n }\r\n thead += \"\";\r\n });\r\n } else {\r\n thead += \" \";\r\n }\r\n thead += getTableHeaderIconCells(\r\n tableSupportStructures,\r\n valorizedCols,\r\n paginationParams,\r\n fontSize,\r\n firstColIdx,\r\n sortable,\r\n orderedCol,\r\n isOrderedAscending,\r\n filterable\r\n );\r\n thead += \"\";\r\n\r\n thead += \"\";\r\n\r\n window.jQuery(getTextWidthEl).remove();\r\n\r\n return thead;\r\n};\r\n\r\nconst getMergedTableHeaderHtml = (\r\n uuid,\r\n tableSupportStructures,\r\n valorizedCols,\r\n paginationParams,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n customDimensionLabels,\r\n fontSize,\r\n decimalSeparator,\r\n firstColIdx,\r\n sortable,\r\n orderedCol,\r\n isOrderedAscending,\r\n filterable,\r\n showArithmeticMean,\r\n showStandardDeviation,\r\n showCoefficientOfVariation,\r\n t,\r\n unmergedDims,\r\n hiddenDimensionValueLabels\r\n) => {\r\n\r\n const {\r\n jsonStat,\r\n layout,\r\n colCountFull,\r\n dimSpanMap,\r\n dimValuesMap,\r\n dimAttributeMap,\r\n showTrend,\r\n showCyclical,\r\n filters,\r\n arithmeticMeans: arithmeticMeansFull,\r\n standardDeviations: standardDeviationsFull,\r\n coefficientOfVariations: coefficientOfVariationsFull\r\n } = tableSupportStructures;\r\n\r\n const {\r\n rows,\r\n cols\r\n } = layout;\r\n\r\n const hiddenLabels = (hiddenDimensionValueLabels || []).map(label => label.toLowerCase());\r\n\r\n const getTextWidthEl = window.jQuery(\"\")\r\n .css({visibility: \"hidden\"})\r\n .appendTo(`#jsonstat-table__${uuid}`).get(0);\r\n\r\n let thead = ``;\r\n\r\n thead += \"\";\r\n\r\n rows.forEach(dim => {\r\n const cellText = customDimensionLabels?.[dim] || getFormattedDimensionLabel(jsonStat, null, dim, labelFormat, t);\r\n\r\n window.jQuery(getTextWidthEl).addClass(`c cf${fontSize} ch`);\r\n window.jQuery(`${cellText}`).appendTo(getTextWidthEl);\r\n const minWidth = window.jQuery(getTextWidthEl).innerWidth();\r\n window.jQuery(getTextWidthEl).removeClass().empty();\r\n\r\n thead += ` 1 ? 1 : 0)}\" style=\"min-width: ${((minWidth / TABLE_HEADER_CELL_TEXT_MAX_ROW_COUNT) + 24) + \"px\"}\">${cellText}`;\r\n });\r\n\r\n (unmergedDims || []).forEach(dim => {\r\n thead += getTableHeaderDimensionValueCells(\r\n tableSupportStructures,\r\n valorizedCols,\r\n paginationParams,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n fontSize,\r\n firstColIdx,\r\n getTextWidthEl,\r\n dim,\r\n t\r\n );\r\n });\r\n\r\n thead += \"\";\r\n\r\n const arithmeticMeans = [];\r\n const standardDeviations = [];\r\n const coefficientOfVariations = [];\r\n\r\n const filteredCols = cols.filter(col => !(unmergedDims || []).includes(col) && (col !== VARIATION_DIMENSION_KEY || showTrend || showCyclical));\r\n if (filteredCols.length > 0) {\r\n\r\n thead += \"\";\r\n\r\n let colCount = 0;\r\n for (let c = firstColIdx; (c < colCountFull && colCount < paginationParams.colPerPage); c++) {\r\n if (valorizedCols.get(c)) {\r\n\r\n let cellText = \"\";\r\n let hasAttributes = false;\r\n\r\n filteredCols.forEach(col => {\r\n const dimValue = getDimensionValueFromIdx(col, c, dimValuesMap, dimSpanMap);\r\n if (col !== MARGINAL_DIMENSION_KEY) {\r\n const datasetId = jsonStat?.extension?.datasets?.[0];\r\n\r\n let valueLabel = getFormattedDimensionValueLabel(jsonStat, null, col, dimValue, (customLabelFormats?.[col] || labelFormat), t)\r\n .replace((dimensionValueModifiers?.[col]?.[DIM_VALUE_LABEL_MODIFIER_REMOVE] || \"\"), \"\");\r\n valueLabel = valueLabel + (dimensionValueModifiers?.[col]?.[DIM_VALUE_LABEL_MODIFIER_APPEND] || \"\");\r\n valueLabel = (dimensionValueModifiers?.[col]?.[DIM_VALUE_LABEL_MODIFIER_PREPEND] || \"\") + valueLabel;\r\n const htmlString = dimAttributeMap?.[datasetId]?.[col]?.[dimValue]\r\n ? `(*)`\r\n : \"\";\r\n if (htmlString.length > 0) {\r\n hasAttributes = true;\r\n }\r\n if (!hiddenLabels.includes(valueLabel.toLowerCase()) || htmlString.length > 0) {\r\n cellText += valueLabel;\r\n cellText += htmlString;\r\n cellText += \"
\";\r\n }\r\n\r\n } else {\r\n const marginal = jsonStat.extension.marginalvalues[dimValue];\r\n\r\n if (marginal.label) {\r\n const htmlString = dimAttributeMap?.[MARGINAL_ATTRIBUTE_KEY]?.[col]?.[dimValue]\r\n ? `(*)`\r\n : \"\";\r\n if (htmlString.length > 0) {\r\n hasAttributes = true;\r\n }\r\n cellText += marginal.label;\r\n cellText += htmlString;\r\n cellText += \"
\";\r\n\r\n } else {\r\n getMarginalDimensions(jsonStat, marginal.datasetid).forEach(dim => {\r\n let valueLabel = getFormattedDimensionValueLabel(jsonStat, marginal.datasetid, dim, marginal.dimensionvalues[dim], (customLabelFormats?.[dim] || labelFormat), t)\r\n .replace((dimensionValueModifiers?.[dim]?.[DIM_VALUE_LABEL_MODIFIER_REMOVE] || \"\"), \"\");\r\n valueLabel = valueLabel + (dimensionValueModifiers?.[dim]?.[DIM_VALUE_LABEL_MODIFIER_APPEND] || \"\");\r\n valueLabel = (dimensionValueModifiers?.[dim]?.[DIM_VALUE_LABEL_MODIFIER_PREPEND] || \"\") + valueLabel;\r\n const htmlString = dimAttributeMap?.[marginal.datasetid]?.[dim]?.[marginal.dimensionvalues[dim]]\r\n ? `(*)`\r\n : \"\";\r\n if (htmlString.length > 0) {\r\n hasAttributes = true;\r\n }\r\n if (!hiddenLabels.includes(valueLabel.toLowerCase()) || htmlString.length > 0) {\r\n cellText += valueLabel;\r\n cellText += htmlString;\r\n cellText += \"
\";\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n thead += ``;\r\n thead += cellText;\r\n thead += \"\";\r\n\r\n const colId = jsonStat.id.filter(dim => cols.includes(dim)).map(col => getDimensionValueFromIdx(col, c, dimValuesMap, dimSpanMap)).join(\"+\");\r\n\r\n arithmeticMeans.push(arithmeticMeansFull?.[colId] || null);\r\n standardDeviations.push(standardDeviationsFull?.[colId] || null);\r\n coefficientOfVariations.push(coefficientOfVariationsFull?.[colId] || null);\r\n\r\n colCount++;\r\n }\r\n }\r\n\r\n if (paginationParams) {\r\n thead += getTableHeaderRightPadding();\r\n }\r\n thead += \"\";\r\n }\r\n\r\n thead += ``;\r\n rows.forEach(row => {\r\n thead += \"\";\r\n thead += \" \"; // needed to handle cell height\r\n thead += \"
\";\r\n if (filterable) {\r\n thead += `
${filterIcon}
`;\r\n }\r\n thead += \"
\";\r\n thead += \"\";\r\n });\r\n thead += getTableHeaderIconCells(\r\n tableSupportStructures,\r\n valorizedCols,\r\n paginationParams,\r\n fontSize,\r\n firstColIdx,\r\n sortable,\r\n orderedCol,\r\n isOrderedAscending,\r\n filterable\r\n );\r\n thead += \"\";\r\n\r\n thead += \"\";\r\n\r\n window.jQuery(getTextWidthEl).remove();\r\n\r\n if (showArithmeticMean && arithmeticMeans.length > 0) {\r\n thead += ``;\r\n thead += `${t(\"commons.measuresOfSynthesisAndVariability.values.arithmeticMean\")}:`;\r\n arithmeticMeans.forEach(value => {\r\n thead += `${getFormattedValue(value, decimalSeparator, 2, \"\")}`;\r\n });\r\n thead += getTableRightPadding();\r\n thead += \"\";\r\n }\r\n\r\n if (showStandardDeviation && standardDeviations.length > 0) {\r\n thead += ``;\r\n thead += `${t(\"commons.measuresOfSynthesisAndVariability.values.standardDeviation\")}:`;\r\n standardDeviations.forEach(value => {\r\n thead += `${getFormattedValue(value, decimalSeparator, 2, \"\")}`;\r\n });\r\n thead += getTableRightPadding();\r\n thead += \"\";\r\n }\r\n\r\n if (showCoefficientOfVariation && coefficientOfVariations.length > 0) {\r\n thead += ``;\r\n thead += `${t(\"commons.measuresOfSynthesisAndVariability.values.coefficientOfVariation\")}:`;\r\n coefficientOfVariations.forEach(value => {\r\n thead += `${getFormattedValue(value, decimalSeparator, 2, \"\")}`;\r\n });\r\n thead += getTableRightPadding();\r\n thead += \"\";\r\n }\r\n\r\n return thead;\r\n};\r\n\r\nexport const getTableHtml = (\r\n uuid,\r\n tableSupportStructures,\r\n headerType,\r\n paginationParams,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n customDimensionLabels,\r\n fontSize,\r\n decimalSeparator,\r\n decimalPlaces,\r\n emptyChar,\r\n sortable,\r\n orderedCol,\r\n isOrderedAscending,\r\n sectionRowsOrder,\r\n filterable,\r\n highlightedRowsDimValues,\r\n rowHover,\r\n hiddenDimensionValueLabels,\r\n isPointData,\r\n showArithmeticMean,\r\n showStandardDeviation,\r\n showCoefficientOfVariation,\r\n hierarchyOnlyAttributes,\r\n onPageGenerationComplete,\r\n t\r\n) => {\r\n\r\n const t0 = performance.now();\r\n\r\n const {\r\n jsonStat,\r\n layout,\r\n valorizedCols,\r\n valorizedSectionRows,\r\n sectionRowCountFull,\r\n rowCountFull,\r\n colCountFull,\r\n dimSpanMap,\r\n dimValuesMap,\r\n sectionDimCombinations,\r\n indexesMap,\r\n dimAttributeMap,\r\n obsAttributeMap,\r\n filteredRows,\r\n depths\r\n } = tableSupportStructures;\r\n\r\n const {\r\n rows,\r\n cols,\r\n filtersValue,\r\n sections\r\n } = layout;\r\n\r\n const timeDim = jsonStat.role?.time?.[0];\r\n\r\n let renderedRows = [];\r\n let renderedCols = [];\r\n\r\n const isOrderingRow = orderedCol !== null;\r\n\r\n /** order **/\r\n\r\n let orderedValorizedSectionRows;\r\n if (isOrderingRow) {\r\n orderedValorizedSectionRows = valorizedSectionRows.map((valorizedRows, sIdx) => {\r\n const orderedValorizedRows = new BitSet();\r\n let i = 0;\r\n for (let b of valorizedRows) {\r\n if (b && sectionRowsOrder[sIdx][i] !== undefined) {\r\n orderedValorizedRows.set(sectionRowsOrder[sIdx][i], b);\r\n }\r\n i++;\r\n }\r\n return orderedValorizedRows;\r\n });\r\n\r\n } else {\r\n orderedValorizedSectionRows = valorizedSectionRows;\r\n }\r\n\r\n /** pagination **/\r\n\r\n const firstRowIdx = getFirstIndex(orderedValorizedSectionRows, paginationParams.rowStart);\r\n const firstColIdx = getFirstIndex([valorizedCols], paginationParams.colStart);\r\n\r\n /** HTML generating **/\r\n\r\n let table = ``;\r\n\r\n /** table head **/\r\n\r\n let header = \"\";\r\n switch (headerType) {\r\n case TABLE_HEADER_MERGED: {\r\n header += getMergedTableHeaderHtml(\r\n uuid,\r\n tableSupportStructures,\r\n valorizedCols,\r\n paginationParams,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n customDimensionLabels,\r\n fontSize,\r\n decimalSeparator,\r\n firstColIdx,\r\n sortable,\r\n orderedCol,\r\n isOrderedAscending,\r\n filterable,\r\n showArithmeticMean,\r\n showStandardDeviation,\r\n showCoefficientOfVariation,\r\n t,\r\n [timeDim],\r\n hiddenDimensionValueLabels\r\n );\r\n break;\r\n }\r\n default: {\r\n header += getTableHeader(\r\n uuid,\r\n tableSupportStructures,\r\n valorizedCols,\r\n paginationParams,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n customDimensionLabels,\r\n fontSize,\r\n decimalSeparator,\r\n firstColIdx,\r\n sortable,\r\n orderedCol,\r\n isOrderedAscending,\r\n filterable,\r\n showArithmeticMean,\r\n showStandardDeviation,\r\n showCoefficientOfVariation,\r\n t\r\n );\r\n break;\r\n }\r\n }\r\n table += header;\r\n\r\n /** table body **/\r\n\r\n table += \"\";\r\n\r\n const sectionsStarts = [0];\r\n sectionDimCombinations.forEach((_, idx) => {\r\n sectionsStarts.push(sectionsStarts[idx] + sectionRowCountFull);\r\n });\r\n\r\n const subHeaderHandled = {};\r\n rows.forEach(row => subHeaderHandled[row] = -1);\r\n\r\n const getSectionRow = sectionIdx => {\r\n if (orderedValorizedSectionRows[sectionIdx].isEmpty()) {\r\n return \"\";\r\n }\r\n\r\n let sectionRow = ``;\r\n let sectionLabel = \"\";\r\n const currentSectionIdxClone = sectionIdx;\r\n sections.forEach((section, idx) => {\r\n\r\n const datasetId = jsonStat?.extension?.datasets?.[0];\r\n const htmlString = dimAttributeMap?.[datasetId]?.[section]?.[sectionDimCombinations[currentSectionIdxClone][idx]]\r\n ? `(*)`\r\n : \"\";\r\n\r\n const dimension = section;\r\n const value = sectionDimCombinations[currentSectionIdxClone][idx];\r\n let valueLabel = getFormattedDimensionValueLabel(jsonStat, null, dimension, value, (customLabelFormats?.[dimension] || labelFormat))\r\n .replace((dimensionValueModifiers?.[dimension]?.[DIM_VALUE_LABEL_MODIFIER_REMOVE] || \"\"), \"\");\r\n valueLabel = valueLabel + (dimensionValueModifiers?.[dimension]?.[DIM_VALUE_LABEL_MODIFIER_APPEND] || \"\");\r\n valueLabel = (dimensionValueModifiers?.[dimension]?.[DIM_VALUE_LABEL_MODIFIER_PREPEND] || \"\") + valueLabel;\r\n\r\n sectionLabel += (\r\n ` 0 ? \"ca\" : \"\"}\" style=\"display: inline-block; vertical-align: middle;\">` +\r\n `${customDimensionLabels?.[section] || getFormattedDimensionLabel(jsonStat, null, section, labelFormat, t)}: ${valueLabel}` +\r\n htmlString +\r\n \"\"\r\n );\r\n sectionLabel += idx < (sections.length - 1) ? TABLE_SECTION_DIMENSIONS_SEPARATOR : \"\";\r\n });\r\n\r\n sectionRow += ``;\r\n\r\n sectionRow += getTableRightPadding();\r\n\r\n sectionRow += \"\";\r\n\r\n return sectionRow;\r\n };\r\n\r\n let isRenderedColHandled = false;\r\n\r\n let rowCount = 0;\r\n for (let r = firstRowIdx; (r < rowCountFull && rowCount < paginationParams.rowPerPage); r++) {\r\n\r\n let currentSectionIdx = 0;\r\n\r\n if (sections && sections.length > 0) {\r\n const nextSectionIdx = sectionsStarts.findIndex(val => val > r);\r\n currentSectionIdx = nextSectionIdx > -1\r\n ? (nextSectionIdx - 1)\r\n : sectionsStarts.length - 1;\r\n\r\n if (r === firstRowIdx || sectionsStarts.indexOf(r) > -1) {\r\n table += getSectionRow(currentSectionIdx);\r\n }\r\n }\r\n\r\n const sectionR = r % sectionRowCountFull;\r\n const sortedSectionR = sectionRowsOrder[currentSectionIdx][sectionR];\r\n\r\n if (orderedValorizedSectionRows[currentSectionIdx].get(sectionR)) {\r\n\r\n let rowDimsValue = [];\r\n rows.forEach(row => rowDimsValue.push(getDimensionValueFromIdx(row, sortedSectionR, dimValuesMap, dimSpanMap)));\r\n renderedRows.push(rowDimsValue.join(\"+\"));\r\n\r\n const isSelectedRow = (\r\n highlightedRowsDimValues &&\r\n !_.isEmpty(highlightedRowsDimValues) &&\r\n !rows.find(dim =>\r\n !!highlightedRowsDimValues?.[dim] &&\r\n getDimensionValueFromIdx(dim, sortedSectionR, dimValuesMap, dimSpanMap) !== highlightedRowsDimValues?.[dim]\r\n )\r\n ) || false;\r\n\r\n table += ``;\r\n\r\n let subHeader = \"\";\r\n\r\n if (rows.length > 0) {\r\n for (let rr = 0; rr < rows.length; rr++) {\r\n\r\n const datasetId = jsonStat?.extension?.datasets?.[0];\r\n const dimValue = rowDimsValue[rr];\r\n const htmlString = dimAttributeMap?.[datasetId]?.[rows[rr]]?.[dimValue]\r\n ? `(*)`\r\n : \"\";\r\n\r\n if (r > subHeaderHandled[rows[rr]]) {\r\n\r\n const rowSpanMax = isOrderingRow\r\n ? 1\r\n : dimSpanMap[rows[rr]] - (sortedSectionR % dimSpanMap[rows[rr]]);\r\n\r\n const rowSpan = orderedValorizedSectionRows[currentSectionIdx].slice(sectionR, sectionR + rowSpanMax - 1).cardinality();\r\n\r\n subHeaderHandled[rows[rr]] = r + (isOrderingRow ? 0 : ((dimSpanMap[rows[rr]] - (r % dimSpanMap[rows[rr]])) - 1));\r\n\r\n if (rowSpan > 0) {\r\n const dimension = rows[rr];\r\n const value = getDimensionValueFromIdx(dimension, sortedSectionR, dimValuesMap, dimSpanMap);\r\n let valueLabel = getFormattedDimensionValueLabel(jsonStat, null, dimension, value, (customLabelFormats?.[dimension] || labelFormat))\r\n .replace((dimensionValueModifiers?.[dimension]?.[DIM_VALUE_LABEL_MODIFIER_REMOVE] || \"\"), \"\");\r\n valueLabel = valueLabel + (dimensionValueModifiers?.[dimension]?.[DIM_VALUE_LABEL_MODIFIER_APPEND] || \"\");\r\n valueLabel = (dimensionValueModifiers?.[dimension]?.[DIM_VALUE_LABEL_MODIFIER_PREPEND] || \"\") + valueLabel;\r\n\r\n const paddingLeft = 8 + ((filteredRows || isOrderingRow) ? 0 : ((depths?.[dimension]?.[value] || 0) * 16));\r\n\r\n subHeader += (\r\n ``\r\n );\r\n }\r\n }\r\n }\r\n\r\n } else {\r\n subHeader += ``\r\n );\r\n };\r\n\r\n let colCount = 0;\r\n for (let c = firstColIdx; (c < colCountFull && colCount < paginationParams.colPerPage); c++) {\r\n if (valorizedCols.get(c)) {\r\n\r\n table += getDataCell(c, currentSectionIdx);\r\n if (!isRenderedColHandled) {\r\n let colDimValues = [];\r\n cols.forEach(col => colDimValues.push(getDimensionValueFromIdx(col, c, dimValuesMap, dimSpanMap)));\r\n renderedCols.push(colDimValues.join(\"+\"));\r\n }\r\n\r\n colCount++;\r\n }\r\n }\r\n isRenderedColHandled = true;\r\n\r\n table += getTableRightPadding();\r\n\r\n table += \"\";\r\n\r\n rowCount++;\r\n }\r\n }\r\n\r\n table += ``;\r\n\r\n table += \"\";\r\n\r\n table += \"
${sectionLabel}
0 ? \"ca\" : \"\"}\" ` +\r\n `rowspan=\"${rowSpan}\" ` +\r\n `style=\"white-space: ${dimension === timeDim ? \"nowrap\" : \"normal\"}; padding-left: ${paddingLeft}px !important;\" ` +\r\n `>` +\r\n valueLabel +\r\n htmlString +\r\n ``;\r\n }\r\n\r\n table += subHeader;\r\n\r\n const getDataCell = (c, currentSectionIdx) => {\r\n\r\n const dataObj = {\r\n ...filtersValue\r\n };\r\n rows.forEach(row => dataObj[row] = getDimensionValueFromIdx(row, sortedSectionR, dimValuesMap, dimSpanMap));\r\n cols.forEach(col => dataObj[col] = getDimensionValueFromIdx(col, c, dimValuesMap, dimSpanMap));\r\n sections.forEach((section, idx) => dataObj[section] = sectionDimCombinations[currentSectionIdx][idx]);\r\n\r\n const dataIndexArr = jsonStat.id.map(dim => indexesMap[dim][dataObj[dim]]);\r\n\r\n const dataIdx = getDataIdxFromCoordinatesArray(dataIndexArr, jsonStat.size);\r\n const value = jsonStat.value[dataIdx];\r\n\r\n let obsAttributes = obsAttributeMap?.[dataIdx] || [];\r\n obsAttributes = obsAttributes.filter(obsAttribute => !(hierarchyOnlyAttributes || []).includes(`${obsAttribute.id}+${obsAttribute.valueId}`));\r\n \r\n const htmlString = obsAttributes.length > 0\r\n ? `(*)`\r\n : \"\";\r\n\r\n return (\r\n ` 0 ? \"ca\" : \"\"}\">` +\r\n htmlString +\r\n getFormattedValue(value, decimalSeparator, decimalPlaces, emptyChar) +\r\n `
\";\r\n\r\n table += \"
\";\r\n if (headerType === TABLE_HEADER_MERGED) {\r\n table += \"
\";\r\n }\r\n\r\n const t1 = performance.now();\r\n\r\n if (onPageGenerationComplete) {\r\n onPageGenerationComplete({\r\n layout: layout,\r\n renderedRows: renderedRows,\r\n renderedCols: renderedCols,\r\n timings: (t1 - t0)\r\n });\r\n }\r\n\r\n return table;\r\n};\r\n\r\nexport const getPreviewTableHtml = (\r\n uuid,\r\n tableSupportStructures,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n customDimensionLabels\r\n) => {\r\n\r\n const {\r\n jsonStat,\r\n layout\r\n } = tableSupportStructures;\r\n\r\n const {\r\n rows,\r\n cols,\r\n sections\r\n } = layout;\r\n\r\n /** HTML generating **/\r\n\r\n let table = ``;\r\n\r\n /** table head **/\r\n\r\n table += getTableHeader(\r\n uuid,\r\n tableSupportStructures,\r\n null,\r\n null,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n customDimensionLabels\r\n );\r\n\r\n /** table body **/\r\n\r\n if (sections && sections.length > 0) {\r\n table += ``;\r\n let sectionLabel = \"\";\r\n sections.forEach((section, idx) => {\r\n sectionLabel += `${customDimensionLabels?.[section] || getFormattedDimensionLabel(jsonStat, null, section, labelFormat)}: ${TABLE_PREVIEW_PLACEHOLDER}`;\r\n sectionLabel += idx < (sections.length - 1) ? TABLE_SECTION_DIMENSIONS_SEPARATOR : \"\";\r\n });\r\n table += ``;\r\n table += \"\";\r\n }\r\n for (let r = 0; r < (rows.length > 0 ? 3 : 1); r++) {\r\n table += ``;\r\n if (rows.length > 0) {\r\n for (let rr = 0; rr < rows.length; rr++) {\r\n table += ``;\r\n }\r\n } else {\r\n table += ``;\r\n }\r\n for (let c = 0; c < (cols.length > 0 ? 3 : 1); c++) {\r\n table += `\";\r\n }\r\n\r\n table += \"\";\r\n\r\n table += \"
0 ? 3 : 1)}\">${sectionLabel}
xxx `;\r\n }\r\n table += \"
\";\r\n\r\n return table;\r\n};","import React, {useCallback, useEffect, useState} from 'react';\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {v4 as uuidv4} from 'uuid';\r\nimport Slider from \"@material-ui/core/Slider\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp';\r\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\r\nimport ArrowLeftIcon from '@material-ui/icons/ArrowLeft';\r\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nlet timeoutID = null;\r\nconst SCROLLBARS_TIMEOUT = 100;\r\nlet intervalID = null;\r\nconst SCROLLBARS_INTERVAL = 200;\r\n\r\nlet isOnMouseDownOnSliderThumb = null;\r\n\r\nconst WHEEL_DELTA = 1;\r\n\r\nconst SLIDER_THICKNESS = 32;\r\nconst SLIDER_MARGIN = 4;\r\n\r\nconst SLIDER_RAIL_COLOR = \"#cfcfcf\";\r\nconst SLIDER_THUMB_COLOR = \"#808080\";\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n sliderButton: {\r\n width: SLIDER_THICKNESS,\r\n height: SLIDER_THICKNESS,\r\n padding: 0,\r\n \"& svg\": {\r\n width: SLIDER_THICKNESS,\r\n height: SLIDER_THICKNESS,\r\n }\r\n },\r\n sliderRoot: {\r\n color: SLIDER_THUMB_COLOR\r\n },\r\n sliderTrack: {\r\n color: SLIDER_RAIL_COLOR,\r\n opacity: 1\r\n },\r\n sliderRail: {\r\n color: SLIDER_RAIL_COLOR,\r\n opacity: 1\r\n },\r\n spinnerOverlay: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0\r\n }\r\n});\r\n\r\nconst isEventInContainer = (ev, container) => {\r\n const containerRect = container.getBoundingClientRect();\r\n const BUFFER = 32;\r\n\r\n return (\r\n ev.clientY >= (containerRect.top - BUFFER) &&\r\n ev.clientY <= (containerRect.bottom + BUFFER) &&\r\n ev.clientX >= (containerRect.left - BUFFER) &&\r\n ev.clientX <= (containerRect.right + BUFFER)\r\n );\r\n};\r\n\r\nfunction CustomSlider(props) {\r\n const {\r\n uuid,\r\n classes,\r\n orientation,\r\n value,\r\n maxValue,\r\n onChange,\r\n onIncrement,\r\n ticks,\r\n isVerticalScrollbarVisible\r\n } = props;\r\n\r\n useEffect(() => {\r\n const onMouseUp = () => {\r\n clearInterval(intervalID);\r\n isOnMouseDownOnSliderThumb = null;\r\n }\r\n window.addEventListener(\"mouseup\", onMouseUp);\r\n return () => window.removeEventListener(\"mouseup\", onMouseUp);\r\n }, []);\r\n\r\n useEffect(() => {\r\n window.jQuery(\".MuiSlider-thumb\").attr(\"tabindex\", \"-1\");\r\n });\r\n\r\n const handleChange = (value, ev, newValue, sliderId) => {\r\n const step = Math.ceil(ticks / 10);\r\n\r\n if (ev.type === \"mousedown\") {\r\n\r\n isOnMouseDownOnSliderThumb = isEventInContainer(ev, $(`#${sliderId} span.MuiSlider-thumb`)[0]);\r\n\r\n if (newValue < value) {\r\n if ((value - step) > newValue) {\r\n onIncrement(false, step, newValue);\r\n clearInterval(intervalID);\r\n intervalID = setInterval(\r\n () => onIncrement(false, step, newValue),\r\n SCROLLBARS_INTERVAL\r\n );\r\n } else {\r\n onChange(newValue);\r\n }\r\n } else {\r\n if ((value + step) < newValue) {\r\n onIncrement(true, step, newValue);\r\n clearInterval(intervalID);\r\n intervalID = setInterval(\r\n () => onIncrement(true, step, newValue),\r\n SCROLLBARS_INTERVAL\r\n );\r\n } else {\r\n onChange(newValue);\r\n }\r\n }\r\n\r\n } else if (ev.type === \"mousemove\" && isOnMouseDownOnSliderThumb) {\r\n onChange(newValue);\r\n }\r\n };\r\n\r\n return orientation === \"vertical\"\r\n ? (\r\n
\r\n {\r\n if (value > 0) {\r\n onIncrement(false, 1);\r\n intervalID = setInterval(\r\n () => onIncrement(false, 1),\r\n SCROLLBARS_INTERVAL\r\n );\r\n }\r\n }}\r\n disabled={value === 0}\r\n tabIndex={-1}\r\n >\r\n \r\n \r\n {\r\n const invertedValue = (ticks - newValue);\r\n handleChange(value, ev, invertedValue, `sliders__custom-sliders__vertical__${uuid}`)\r\n }}\r\n classes={{\r\n root: classes.sliderRoot,\r\n rail: classes.sliderRail,\r\n track: classes.sliderTrack\r\n }}\r\n style={{\r\n height: `calc(100% - ${SLIDER_THICKNESS + SLIDER_THICKNESS + SLIDER_MARGIN + SLIDER_MARGIN}px)`,\r\n padding: \"0 15px\",\r\n margin: `${SLIDER_MARGIN}px 0`\r\n }}\r\n />\r\n {\r\n if (value < (maxValue - 1)) {\r\n onIncrement(true, 1);\r\n intervalID = setInterval(\r\n () => onIncrement(true, 1),\r\n SCROLLBARS_INTERVAL\r\n );\r\n }\r\n }}\r\n disabled={value >= (maxValue - 1)}\r\n tabIndex={-1}\r\n >\r\n \r\n \r\n
\r\n )\r\n : (\r\n
\r\n {\r\n onIncrement(false, 1);\r\n intervalID = setInterval(\r\n () => onIncrement(false, 1),\r\n SCROLLBARS_INTERVAL\r\n );\r\n }}\r\n disabled={value === 0}\r\n tabIndex={-1}\r\n >\r\n \r\n \r\n handleChange(value, ev, newValue, `sliders__custom-sliders__horizontal__${uuid}`)}\r\n classes={{\r\n root: classes.sliderRoot,\r\n rail: classes.sliderRail,\r\n track: classes.sliderTrack\r\n }}\r\n style={{\r\n width: `calc(100% - ${SLIDER_THICKNESS + SLIDER_THICKNESS + SLIDER_MARGIN + SLIDER_MARGIN + (isVerticalScrollbarVisible ? SLIDER_THICKNESS : 0)}px)`,\r\n padding: \"15px 0\",\r\n margin: `0 ${SLIDER_MARGIN}px`\r\n }}\r\n />\r\n {\r\n onIncrement(true, 1);\r\n intervalID = setInterval(\r\n () => onIncrement(true, 1),\r\n SCROLLBARS_INTERVAL\r\n );\r\n }}\r\n disabled={value >= (maxValue - 1)}\r\n tabIndex={-1}\r\n >\r\n \r\n \r\n {isVerticalScrollbarVisible && (\r\n
\r\n )}\r\n
\r\n )\r\n}\r\n\r\nfunction Scrollbars(props) {\r\n const {\r\n classes,\r\n children,\r\n verticalValue,\r\n verticalMaxValue,\r\n verticalTicks,\r\n onVerticalScroll,\r\n isVerticalScrollbarVisible,\r\n horizontalValue,\r\n horizontalMaxValue,\r\n horizontalTicks,\r\n onHorizontalScroll,\r\n isHorizontalScrollbarVisible,\r\n disableWheelZoom\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [uuid] = useState(uuidv4());\r\n\r\n const [row, setRow] = useState(verticalValue);\r\n const [col, setCol] = useState(horizontalValue);\r\n\r\n const [isPaginating, setIsPaginating] = useState(false);\r\n\r\n const handleSliderScroll = (value, isVertical) => {\r\n if (isVertical) {\r\n setRow(value);\r\n if (value !== row) {\r\n setIsPaginating(true);\r\n }\r\n } else {\r\n setCol(value);\r\n if (value !== col) {\r\n setIsPaginating(true);\r\n }\r\n }\r\n };\r\n\r\n const getIncrementedValue = (prevValue, delta, isIncrement, limit) => isIncrement\r\n ? (prevValue + delta) > limit\r\n ? limit\r\n : (prevValue + delta)\r\n : (prevValue - delta) < limit\r\n ? limit\r\n : (prevValue - delta);\r\n\r\n const handleIncrement = (isIncrement, isVertical, delta, limit) => isVertical\r\n ? setRow(prevRow => isIncrement\r\n ? getIncrementedValue(prevRow, delta, isIncrement, (limit || (verticalMaxValue - 1)))\r\n : getIncrementedValue(prevRow, delta, isIncrement, (limit || 0))\r\n )\r\n : setCol(prevCol => isIncrement\r\n ? getIncrementedValue(prevCol, delta, isIncrement, (limit || (horizontalMaxValue - 1)))\r\n : getIncrementedValue(prevCol, delta, isIncrement, (limit || 0))\r\n );\r\n\r\n const handleWheelScroll = useCallback(\r\n ev => {\r\n const isVertical = ev.wheelDeltaY !== 0;\r\n const wheelDelta = isVertical\r\n ? ev.wheelDeltaY > 0 ? -WHEEL_DELTA : WHEEL_DELTA\r\n : ev.wheelDeltaX > 0 ? -WHEEL_DELTA : WHEEL_DELTA\r\n\r\n const isBetween = (val, min, max) => (val >= min && val < max);\r\n\r\n if (isVertical) {\r\n setRow(prevRow => {\r\n const newRow = isBetween(prevRow + wheelDelta, 0, verticalMaxValue) ? (prevRow + wheelDelta) : prevRow\r\n return isVerticalScrollbarVisible\r\n ? newRow\r\n : prevRow\r\n });\r\n } else {\r\n setCol(prevCol => {\r\n const newCol = isBetween(prevCol + wheelDelta, 0, horizontalMaxValue) ? (prevCol + wheelDelta) : prevCol;\r\n return isHorizontalScrollbarVisible\r\n ? newCol\r\n : prevCol\r\n });\r\n }\r\n },\r\n [isVerticalScrollbarVisible, isHorizontalScrollbarVisible, verticalMaxValue, horizontalMaxValue, setRow, setCol],\r\n );\r\n\r\n useEffect(() => {\r\n if (!disableWheelZoom) {\r\n document.getElementById(`scrollbars-container__${uuid}`).addEventListener(\"wheel\", handleWheelScroll);\r\n }\r\n return () => document.getElementById(`scrollbars-container__${uuid}`).removeEventListener(\"wheel\", handleWheelScroll);\r\n }, [uuid, disableWheelZoom, handleWheelScroll]);\r\n\r\n useEffect(() => {\r\n if (timeoutID) {\r\n clearTimeout(timeoutID);\r\n }\r\n\r\n timeoutID = setTimeout(\r\n () => {\r\n onVerticalScroll(row);\r\n onHorizontalScroll(col);\r\n setIsPaginating(false);\r\n },\r\n SCROLLBARS_TIMEOUT\r\n );\r\n }, [row, col, onVerticalScroll, onHorizontalScroll, setIsPaginating]);\r\n\r\n useEffect(() => {\r\n setRow(verticalValue);\r\n setCol(horizontalValue);\r\n }, [verticalValue, horizontalValue, setRow, setCol]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
{children}
\r\n {isPaginating && (\r\n
\r\n }\r\n style={{\r\n color: \"#ffffff\",\r\n backgroundColor: \"rgba(0, 0, 0, 0.1)\"\r\n }}\r\n />\r\n
\r\n )}\r\n
\r\n {isVerticalScrollbarVisible && (\r\n handleSliderScroll(value, true)}\r\n onIncrement={(isIncrement, delta, limit) => handleIncrement(isIncrement, true, delta, limit)}\r\n ticks={verticalTicks}\r\n isVerticalScrollbarVisible={isVerticalScrollbarVisible}\r\n />\r\n )}\r\n
\r\n {\r\n isHorizontalScrollbarVisible && (\r\n handleSliderScroll(value, false)}\r\n onIncrement={(isIncrement, delta, limit) => handleIncrement(isIncrement, false, delta, limit)}\r\n ticks={horizontalTicks}\r\n isVerticalScrollbarVisible={isVerticalScrollbarVisible}\r\n />\r\n )\r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default withStyles(styles)(Scrollbars)","import React, {useEffect, useState} from 'react';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {isNumeric} from \"../../utils/validator\";\r\nimport {\r\n FILTER_TYPE_OBS,\r\n OBS_FILTER_OPERATOR_AND,\r\n OBS_FILTER_OPERATOR_EQUAL,\r\n OBS_FILTER_OPERATOR_GREATER,\r\n OBS_FILTER_OPERATOR_GREATER_OR_EQUAL,\r\n OBS_FILTER_OPERATOR_LESS,\r\n OBS_FILTER_OPERATOR_LESS_OR_EQUAL,\r\n OBS_FILTER_OPERATOR_NOT_EQUAL,\r\n OBS_FILTER_OPERATOR_OR\r\n} from \"./utils\";\r\n\r\nconst emptyFilter = {\r\n type: FILTER_TYPE_OBS,\r\n operator: OBS_FILTER_OPERATOR_AND,\r\n entity1: {\r\n operator: OBS_FILTER_OPERATOR_EQUAL,\r\n filterValue: \"\"\r\n },\r\n entity2: {\r\n operator: OBS_FILTER_OPERATOR_EQUAL,\r\n filterValue: \"\"\r\n }\r\n};\r\n\r\nconst ObservationFilterForm = ({\r\n initialFilter,\r\n onApply,\r\n onRemove\r\n }) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const [filter, setFilter] = useState(emptyFilter);\r\n\r\n useEffect(() => {\r\n if (initialFilter) {\r\n setFilter(initialFilter)\r\n }\r\n }, [initialFilter]);\r\n\r\n const handleApply = () => {\r\n if (isNumeric(filter.entity1.filterValue) && isNumeric(filter.entity2.filterValue)) {\r\n onApply(filter);\r\n\r\n } else if (isNumeric(filter.entity1.filterValue)) {\r\n onApply({\r\n ...emptyFilter,\r\n entity1: filter.entity1\r\n });\r\n\r\n } else if (isNumeric(filter.entity2.filterValue)) {\r\n onApply({\r\n ...emptyFilter,\r\n entity1: filter.entity2\r\n });\r\n\r\n } else {\r\n onRemove();\r\n }\r\n };\r\n\r\n const {\r\n operator,\r\n entity1,\r\n entity2\r\n } = filter;\r\n\r\n return filter && (\r\n \r\n \r\n {t(\"components.table.observationFilter.info\")}\r\n \r\n \r\n \r\n \r\n setFilter({\r\n ...filter,\r\n entity1: {\r\n ...filter.entity1,\r\n operator: target.value\r\n }\r\n })}\r\n SelectDisplayProps={{\"aria-haspopup\": true}}\r\n >\r\n {t(\"components.table.observationFilter.operator.equal\")}\r\n {t(\"components.table.observationFilter.operator.notEqual\")}\r\n {t(\"components.table.observationFilter.operator.greaterOrEqual\")}\r\n {t(\"components.table.observationFilter.operator.greater\")}\r\n {t(\"components.table.observationFilter.operator.lessOrEqual\")}\r\n {t(\"components.table.observationFilter.operator.less\")}\r\n \r\n \r\n \r\n setFilter({\r\n ...filter,\r\n entity1: {\r\n ...filter.entity1,\r\n filterValue: target.value\r\n }\r\n })}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n setFilter({\r\n ...filter,\r\n operator: target.value\r\n })}\r\n SelectDisplayProps={{\"aria-haspopup\": true}}\r\n >\r\n {t(\"components.table.observationFilter.operator.and\")}\r\n {t(\"components.table.observationFilter.operator.or\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setFilter({\r\n ...filter,\r\n entity2: {\r\n ...filter.entity2,\r\n operator: target.value\r\n }\r\n })}\r\n SelectDisplayProps={{\"aria-haspopup\": true}}\r\n >\r\n {t(\"components.table.observationFilter.operator.equal\")}\r\n {t(\"components.table.observationFilter.operator.notEqual\")}\r\n {t(\"components.table.observationFilter.operator.greaterOrEqual\")}\r\n {t(\"components.table.observationFilter.operator.greater\")}\r\n {t(\"components.table.observationFilter.operator.lessOrEqual\")}\r\n {t(\"components.table.observationFilter.operator.less\")}\r\n \r\n \r\n \r\n setFilter({\r\n ...filter,\r\n entity2: {\r\n ...filter.entity2,\r\n filterValue: target.value\r\n }\r\n })}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ObservationFilterForm;","import React, {useEffect, useState} from 'react';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {\r\n DIM_FILTER_OPERATOR_ENDS_WITH,\r\n DIM_FILTER_OPERATOR_EQUAL,\r\n DIM_FILTER_OPERATOR_INCLUDES,\r\n DIM_FILTER_OPERATOR_NOT_EQUAL,\r\n DIM_FILTER_OPERATOR_NOT_INCLUDES,\r\n DIM_FILTER_OPERATOR_STARTS_WITH,\r\n FILTER_TYPE_DIM\r\n} from \"./utils\";\r\n\r\nconst emptyFilter = {\r\n type: FILTER_TYPE_DIM,\r\n operator: DIM_FILTER_OPERATOR_EQUAL,\r\n filterValue: \"\"\r\n};\r\n\r\nconst DimensionFilterForm = ({\r\n initialFilter,\r\n onApply,\r\n onRemove\r\n }) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const [filter, setFilter] = useState(emptyFilter);\r\n\r\n useEffect(() => {\r\n if (initialFilter) {\r\n setFilter(initialFilter)\r\n }\r\n }, [initialFilter]);\r\n\r\n const handleApply = () => {\r\n if ((filter.filterValue || \"\").length > 0) {\r\n onApply(filter);\r\n\r\n } else {\r\n onRemove();\r\n }\r\n };\r\n\r\n const {\r\n operator,\r\n filterValue\r\n } = filter;\r\n\r\n return filter && (\r\n \r\n \r\n {t(\"components.table.dimensionFilter.info\")}\r\n \r\n \r\n \r\n \r\n setFilter({...filter, operator: target.value})}\r\n SelectDisplayProps={{\"aria-haspopup\": true}}\r\n >\r\n {t(\"components.table.dimensionFilter.operator.equal\")}\r\n {t(\"components.table.dimensionFilter.operator.notEqual\")}\r\n {t(\"components.table.dimensionFilter.operator.startsWith\")}\r\n {t(\"components.table.dimensionFilter.operator.endsWith\")}\r\n {t(\"components.table.dimensionFilter.operator.contains\")}\r\n {t(\"components.table.dimensionFilter.operator.notContains\")}\r\n \r\n \r\n \r\n setFilter({...filter, filterValue: target.value})}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default DimensionFilterForm;","import React, {Fragment, useCallback, useEffect, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {v4 as uuidv4} from \"uuid\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {getDimensionValueFromIdx, getPreviewTableHtml, getTableHtml, TABLE_HEADER_MERGED, TABLE_HEADER_NORMAL} from \"./utils\";\r\nimport \"./style.css\";\r\nimport Scrollbars from \"./Scrollbars\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME} from \"../label-format-selector/constants\";\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport {sanitize} from \"dompurify\";\r\nimport {\r\n getAttributeLabel,\r\n getAttributeValueLabel,\r\n getDimensionAttributeMap,\r\n getFormattedDimensionLabel,\r\n getFormattedDimensionValueLabel,\r\n getMarginalDimensions,\r\n MARGINAL_DIMENSION_KEY,\r\n VARIATION_DIMENSION_KEY\r\n} from \"../../utils/jsonStat\";\r\nimport _ from \"lodash\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport {localizeI18nObj} from \"../../utils/i18n\";\r\nimport Popover from \"@material-ui/core/Popover\";\r\nimport ObservationFilterForm from \"./ObservationFilterForm\";\r\nimport DimensionFilterForm from \"./DimensionFilterForm\";\r\nimport BitSet from \"bitset\";\r\nimport SanitizedHTML from \"../sanitized-html\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nexport const JSONSTAT_TABLE_FONT_SIZE_SM = \"s\";\r\nexport const JSONSTAT_TABLE_FONT_SIZE_MD = \"m\";\r\nexport const JSONSTAT_TABLE_FONT_SIZE_LG = \"l\";\r\n\r\nconst COLS_PER_PAGE = 30;\r\nconst ROWS_PER_PAGE = 50;\r\n\r\nconst SLIDER_SAFETY_MARGIN_PERCENTAGE = 20;\r\n\r\nlet isFirstRender = false;\r\nlet scrollToRow = false;\r\nlet isFiltering = false;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n tableContainer: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n table: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n filters: {\r\n width: 320,\r\n padding: 8,\r\n overflow: \"hidden\",\r\n \"& .MuiOutlinedInput-input\": {\r\n padding: 8\r\n },\r\n \"& .MuiSelect-outlined\": {\r\n paddingRight: 32\r\n }\r\n }\r\n});\r\n\r\nconst mapStateToProps = ({app, appConfig}) => ({\r\n appLanguage: app.language,\r\n languages: app.languages,\r\n hiddenDimensionValueLabels: appConfig.hiddenDimensionValueLabels\r\n});\r\n\r\nconst isElementVerticallyInContainer = (element, container) => {\r\n const containerRect = container.getBoundingClientRect();\r\n const elementRect = element.getBoundingClientRect();\r\n\r\n return (\r\n elementRect.top >= containerRect.top &&\r\n elementRect.bottom <= containerRect.bottom\r\n );\r\n};\r\n\r\nconst isElementHorizontallyInContainer = (element, container) => {\r\n const containerRect = container.getBoundingClientRect();\r\n const elementRect = element.getBoundingClientRect();\r\n\r\n return (\r\n elementRect.left >= containerRect.left &&\r\n elementRect.right <= containerRect.right\r\n );\r\n};\r\n\r\nconst valueSorter = (a, b, asc) => {\r\n if (a === b) {\r\n return 0;\r\n } else if (a === null || a === undefined || a === \"\") {\r\n return 1;\r\n } else if (b === null || b === undefined || b === \"\") {\r\n return -1;\r\n } else {\r\n return asc ? (a - b) : (b - a);\r\n }\r\n};\r\n\r\nfunction Table(props) {\r\n const {\r\n classes,\r\n\r\n appLanguage,\r\n languages,\r\n hiddenDimensionValueLabels,\r\n\r\n jsonStat,\r\n layout,\r\n labelFormat = LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME,\r\n customLabelFormats = null,\r\n dimensionValueModifiers = null,\r\n customDimensionLabels = null,\r\n fontSize = JSONSTAT_TABLE_FONT_SIZE_MD,\r\n isFullscreen,\r\n isPreview = false,\r\n removeEmptyLines = !isPreview,\r\n decimalSeparator,\r\n decimalPlaces,\r\n emptyChar,\r\n disableWheelZoom = false,\r\n showTrend = false,\r\n showCyclical = false,\r\n tableHeaderType = TABLE_HEADER_NORMAL,\r\n dimensionFilterValues,\r\n firstRowDimValues,\r\n highlightedRowsDimValues,\r\n rowHover = false,\r\n onRowClick,\r\n sortable = false,\r\n filterable = false,\r\n onFilter,\r\n scrollToLastRow = false,\r\n scrollToLastCol = false,\r\n isPointData = false,\r\n invertedDims,\r\n hierarchyOnlyAttributes,\r\n hideHierarchyOnlyRows,\r\n enableMeasuresOfSynthesisAndVariability = false,\r\n showArithmeticMean = false,\r\n showStandardDeviation = false,\r\n showCoefficientOfVariation = false,\r\n onPageGenerationComplete,\r\n onStructureGenerationComplete\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [uuid] = useState(uuidv4());\r\n\r\n const [tableSupportStructures, setTableSupportStructures] = useState(null);\r\n const [htmlTable, setHtmlTable] = useState(\"\");\r\n\r\n const [row, setRow] = useState(null);\r\n const [col, setCol] = useState(null);\r\n\r\n const [visibleRowCount, setVisibleRowCount] = useState(1);\r\n const [visibleColCount, setVisibleColCount] = useState(1);\r\n\r\n const [order, setOrder] = useState([null, true]); // [colIdx, isOrderedAscending]\r\n const [filters, setFilters] = useState({}); // map with colIdx as key and filterStr as value\r\n const [filterColIdx, setFilterColIdx] = useState(null);\r\n const [filterDimId, setFilterDimId] = useState(null);\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n const [isHorizontalScrollbarVisible, setHorizontalScrollbarVisibility] = useState(false);\r\n const [isVerticalScrollbarVisible, setVerticalScrollbarVisibility] = useState(false);\r\n\r\n const [attributes, setAttributes] = useState(null);\r\n\r\n const [date, setDate] = useState(Date.now()); // used to force table rerender when firstRow change, but it already corresponds to current first row of the rendered table\r\n\r\n const [worker] = useState(() => new Worker(\"./workers/getTableSupportStructuresWorker.js\"));\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (worker) {\r\n worker.terminate();\r\n }\r\n };\r\n }, [worker]);\r\n\r\n const handleObservationFilterOpen = useCallback((colIdx, anchorEl) => {\r\n setAnchorEl(anchorEl);\r\n setFilterColIdx(colIdx);\r\n }, []);\r\n\r\n const handleDimensionFilterOpen = useCallback((dimId, anchorEl) => {\r\n setAnchorEl(anchorEl);\r\n setFilterDimId(dimId);\r\n }, []);\r\n\r\n const handleFilterClose = useCallback(() => {\r\n setAnchorEl(null);\r\n setFilterColIdx(null);\r\n setFilterDimId(null);\r\n }, []);\r\n\r\n const handleFilterApply = useCallback(filter => {\r\n handleFilterClose();\r\n\r\n const newFilters = _.cloneDeep(filters);\r\n if (filterColIdx !== null) {\r\n newFilters[filterColIdx] = filter;\r\n }\r\n if (filterDimId !== null) {\r\n newFilters[filterDimId] = filter;\r\n }\r\n setFilters(newFilters);\r\n\r\n isFiltering = true;\r\n setRow(0);\r\n }, [filters, filterColIdx, filterDimId, handleFilterClose]);\r\n\r\n const handleFilterRemove = useCallback(() => {\r\n handleFilterClose();\r\n\r\n if ((filterColIdx !== null && filters[filterColIdx]) || (filterDimId !== null && filters[filterDimId])) {\r\n const newFilters = _.cloneDeep(filters);\r\n if (filterColIdx !== null) {\r\n delete newFilters[filterColIdx];\r\n }\r\n if (filterDimId !== null) {\r\n delete newFilters[filterDimId];\r\n }\r\n setFilters(newFilters);\r\n isFiltering = true;\r\n setRow(0);\r\n }\r\n }, [filters, filterColIdx, filterDimId, handleFilterClose]);\r\n\r\n const handleStyle = useCallback(isResizing => {\r\n if (!isPreview && tableSupportStructures) {\r\n if (!isResizing) {\r\n const $attributeTooltip = $(`#jsonstat-table__${uuid} #jsonstat-table__tooltip__attribute`);\r\n const $mergedHeaderTooltip = $(`#jsonstat-table__${uuid} #jsonstat-table__tooltip__merged-header`);\r\n\r\n /** attribute's tooltip handling **/\r\n $(`#jsonstat-table__${uuid} .ca .ct`)\r\n .hover(\r\n function() {\r\n $mergedHeaderTooltip.css({visibility: \"hidden\"});\r\n\r\n const $elem = $(this).get(0);\r\n const rect = $elem.getBoundingClientRect();\r\n\r\n let attributes;\r\n if ($elem.className.includes(\"ctd\")) {\r\n const dataIdx = $elem.id;\r\n attributes = tableSupportStructures.obsAttributeMap[dataIdx];\r\n } else {\r\n const datasetId = $elem.id.split(\":\")[0];\r\n const dim = $elem.id.split(\":\")[1];\r\n const dimVal = $elem.id.split(\":\")[2];\r\n attributes = tableSupportStructures.dimAttributeMap[datasetId][dim][dimVal];\r\n }\r\n\r\n const ATTRIBUTE_HEIGHT = 18;\r\n\r\n $attributeTooltip.empty();\r\n attributes.forEach(attribute => {\r\n $attributeTooltip.append($(\r\n `
  • ${getAttributeLabel(attribute, labelFormat)}: ${getAttributeValueLabel(attribute, labelFormat)}
  • `\r\n ));\r\n });\r\n\r\n const left = rect.x < (window.innerWidth / 4)\r\n ? (rect.right + 16)\r\n : (rect.left - $attributeTooltip.innerWidth() - 16);\r\n\r\n $attributeTooltip.css({\r\n visibility: \"visible\",\r\n top: rect.top - (ATTRIBUTE_HEIGHT * attributes.length) - 30,\r\n left: left\r\n });\r\n },\r\n function() {\r\n if ($mergedHeaderTooltip.children().length > 0) {\r\n $mergedHeaderTooltip.css({visibility: \"visible\"});\r\n }\r\n $attributeTooltip.attr(\"style\", \"\").empty();\r\n }\r\n )\r\n .off(\"click\")\r\n .click(\r\n function(ev) {\r\n ev.stopPropagation();\r\n\r\n const $elem = $(this).get(0);\r\n\r\n let attributes;\r\n if ($elem.className.includes(\"ctd\")) {\r\n const dataIdx = $elem.id;\r\n attributes = tableSupportStructures.obsAttributeMap[dataIdx];\r\n } else {\r\n const datasetId = $elem.id.split(\":\")[0];\r\n const dim = $elem.id.split(\":\")[1];\r\n const dimVal = $elem.id.split(\":\")[2];\r\n attributes = tableSupportStructures.dimAttributeMap[datasetId][dim][dimVal];\r\n }\r\n\r\n setAttributes(attributes);\r\n }\r\n );\r\n\r\n /** merged header tooltip handling **/\r\n if (tableHeaderType === TABLE_HEADER_MERGED) {\r\n $(`#jsonstat-table__${uuid} #h-1 th.c:not(.c-rb)`)\r\n .hover(\r\n function() {\r\n const {\r\n jsonStat,\r\n dimValuesMap,\r\n dimSpanMap\r\n } = tableSupportStructures;\r\n\r\n const $elem = $(this).get(0);\r\n const rect = $elem.getBoundingClientRect();\r\n\r\n const col = Number($elem.id.split(\"-\")[1]);\r\n const dims = $elem.id.split(\"-\")[3].split(\",\");\r\n\r\n const appendDim = (dim, value) =>\r\n $mergedHeaderTooltip.append($(`
  • ${dim}: ${value}
  • `));\r\n\r\n $mergedHeaderTooltip.empty();\r\n dims.forEach(dim => {\r\n const dimValue = getDimensionValueFromIdx(dim, col, dimValuesMap, dimSpanMap);\r\n if (dim !== MARGINAL_DIMENSION_KEY) {\r\n appendDim(\r\n getFormattedDimensionLabel(jsonStat, null, dim, labelFormat, t),\r\n getFormattedDimensionValueLabel(jsonStat, null, dim, dimValue, labelFormat, t)\r\n );\r\n\r\n } else {\r\n const marginal = jsonStat.extension.marginalvalues[dimValue];\r\n if (marginal.label) {\r\n appendDim(\r\n getFormattedDimensionLabel(jsonStat, null, dim, labelFormat, t),\r\n marginal.label\r\n );\r\n } else {\r\n if (jsonStat.extension.datasets.length > 1) {\r\n $mergedHeaderTooltip.append($(`
    ${jsonStat.extension.datasetlabels[marginal.datasetid]}
    `));\r\n }\r\n getMarginalDimensions(jsonStat, marginal.datasetid).forEach(marginalDim => {\r\n appendDim(\r\n getFormattedDimensionLabel(jsonStat, marginal.datasetid, marginalDim, labelFormat, t),\r\n getFormattedDimensionValueLabel(jsonStat, marginal.datasetid, marginalDim, marginal.dimensionvalues[marginalDim], labelFormat, t)\r\n );\r\n });\r\n }\r\n }\r\n });\r\n\r\n const left = rect.x < (window.innerWidth / 4)\r\n ? (rect.right + 16)\r\n : (rect.left - $mergedHeaderTooltip.innerWidth() - 16);\r\n\r\n $mergedHeaderTooltip.css({\r\n visibility: \"visible\",\r\n top: (rect.top - 32),\r\n left: left\r\n });\r\n },\r\n function() {\r\n $mergedHeaderTooltip.attr(\"style\", \"\").empty();\r\n }\r\n );\r\n }\r\n\r\n /** sorting handling **/\r\n $(`#jsonstat-table__${uuid} .c .table-icon.col-sort`)\r\n .off(\"click\")\r\n .click(\r\n function() {\r\n const $elem = $(this).get(0);\r\n\r\n const col = Number($elem.id.split(\"-\")[1]);\r\n const dir = $elem.className.includes(\"col-sort--a\");\r\n\r\n setOrder(prevOrder => {\r\n if (prevOrder[0] === col && prevOrder[1] === dir) {\r\n return [null, true];\r\n } else {\r\n return [col, dir];\r\n }\r\n });\r\n\r\n setRow(0);\r\n }\r\n );\r\n\r\n /** observation filters handling **/\r\n $(`#jsonstat-table__${uuid} .c.csh .table-icon.col-filter`)\r\n .off(\"click\")\r\n .click(\r\n function() {\r\n const $elem = $(this).get(0);\r\n const col = Number($elem.id.split(\"-\")[1]);\r\n handleObservationFilterOpen(col, $elem);\r\n }\r\n );\r\n\r\n /** dimension filters handling **/\r\n $(`#jsonstat-table__${uuid} .c.ch .table-icon.col-filter`)\r\n .off(\"click\")\r\n .click(\r\n function() {\r\n const $elem = $(this).get(0);\r\n const dim = $elem.id.split(\"-\")[1];\r\n handleDimensionFilterOpen(dim, $elem);\r\n }\r\n );\r\n\r\n /** hover and click on rows handling **/\r\n $(`#jsonstat-table__${uuid} tbody tr.jsonstat-table__body__row`)\r\n .off(\"click\")\r\n .click(\r\n function() {\r\n if (onRowClick) {\r\n const {layout, dimValuesMap, dimSpanMap} = tableSupportStructures;\r\n\r\n const $elem = $(this).get(0);\r\n const rowIdx = $elem.id.split(\"-\")[1];\r\n const isActiveAfterClick = !$elem.className.includes(\"jsonstat-table__body__row--selected\");\r\n\r\n const row = {};\r\n layout.rows.forEach(dim => {\r\n row[dim] = getDimensionValueFromIdx(dim, rowIdx, dimValuesMap, dimSpanMap);\r\n });\r\n\r\n onRowClick(row, isActiveAfterClick);\r\n }\r\n }\r\n );\r\n }\r\n }\r\n }, [uuid, tableSupportStructures, tableHeaderType, labelFormat, isPreview, handleObservationFilterOpen, handleDimensionFilterOpen, onRowClick, t]);\r\n\r\n const handleScrollbar = useCallback(updateVisibleColAndROwCount => {\r\n if (!isPreview) {\r\n let $tableContainer = $(`#jsonstat-table__${uuid}`);\r\n if ($tableContainer && tableSupportStructures) {\r\n const {rowCount, colCount} = tableSupportStructures;\r\n const $table = $(`#jsonstat-table__${uuid} table`);\r\n\r\n const isVerticalScrollbarVisible = row !== null && (\r\n row !== 0 ||\r\n rowCount > ROWS_PER_PAGE ||\r\n ($table.height() > $tableContainer.height())\r\n );\r\n setVerticalScrollbarVisibility(isVerticalScrollbarVisible);\r\n\r\n const isHorizontalScrollbarVisible = col !== null && (\r\n col !== 0 ||\r\n colCount > COLS_PER_PAGE ||\r\n ($table.width() > $tableContainer.width())\r\n );\r\n setHorizontalScrollbarVisibility(isHorizontalScrollbarVisible);\r\n\r\n if (updateVisibleColAndROwCount) {\r\n let visibleRowCount = 0;\r\n $(`#jsonstat-table__${uuid} tbody tr`).each((idx, el) => {\r\n if (isElementVerticallyInContainer(el, $tableContainer.get(0))) {\r\n visibleRowCount++;\r\n }\r\n });\r\n setVisibleRowCount(visibleRowCount);\r\n\r\n let visibleColCount = 0;\r\n $(`#jsonstat-table__${uuid} tbody tr:not(.rs):first td`).each((idx, el) => {\r\n if (isElementHorizontallyInContainer(el, $tableContainer.get(0))) {\r\n visibleColCount++;\r\n }\r\n });\r\n setVisibleColCount(visibleColCount);\r\n }\r\n }\r\n }\r\n }, [uuid, tableSupportStructures, row, col, isPreview]);\r\n\r\n /* resize handler */\r\n useEffect(() => {\r\n const func = () => {\r\n handleStyle(true);\r\n handleScrollbar(true);\r\n };\r\n window.addEventListener(\"resize\", func);\r\n return () => window.removeEventListener(\"resize\", func);\r\n }, [handleStyle, handleScrollbar]);\r\n\r\n /* generating support table structure */\r\n useEffect(() => {\r\n if (jsonStat && layout) {\r\n setTableSupportStructures(null);\r\n setHtmlTable(\"\");\r\n setHorizontalScrollbarVisibility(false);\r\n setVerticalScrollbarVisibility(false);\r\n\r\n const newLayout = Object.assign({}, layout);\r\n if (jsonStat.id.includes(VARIATION_DIMENSION_KEY)) {\r\n newLayout.cols = [...layout.cols, VARIATION_DIMENSION_KEY];\r\n }\r\n\r\n if (!isPreview) {\r\n worker.onmessage = event => {\r\n if (onFilter && isFiltering) {\r\n onFilter(event.data.filteredRows);\r\n isFiltering = false;\r\n }\r\n\r\n const valorizedColsFromArr = new BitSet(event.data.valorizedColsArr);\r\n const valorizedSectionRowsFromArr = event.data.valorizedSectionRowsArr.map(valorizedRowsArr => new BitSet(valorizedRowsArr));\r\n\r\n if (onStructureGenerationComplete) {\r\n onStructureGenerationComplete({\r\n arithmeticMeans: event.data.arithmeticMeans,\r\n arithmeticMeanDims: jsonStat.id.filter(dim => newLayout.cols.includes(dim))\r\n });\r\n }\r\n\r\n setTableSupportStructures({\r\n ...event.data,\r\n jsonStat,\r\n layout: newLayout,\r\n dimAttributeMap: getDimensionAttributeMap(jsonStat, t),\r\n valorizedCols: valorizedColsFromArr,\r\n valorizedColsFromArr: undefined,\r\n valorizedSectionRows: valorizedSectionRowsFromArr,\r\n valorizedSectionRowsFromArr: undefined\r\n });\r\n\r\n if (event.data.obsAttributeMap === null) {\r\n console.error(t(\"components.table.error.observationAttribute\"));\r\n }\r\n };\r\n worker.onerror = () => {\r\n setTableSupportStructures(null);\r\n };\r\n worker.postMessage({\r\n jsonStat,\r\n layout: newLayout,\r\n isPreview,\r\n removeEmptyLines,\r\n showTrend,\r\n showCyclical,\r\n dimensionFilterValues,\r\n filterable,\r\n filters,\r\n onFilterComplete: null,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n decimalSeparator,\r\n decimalPlaces,\r\n invertedDims,\r\n hierarchyOnlyAttributes,\r\n hideHierarchyOnlyRows,\r\n enableMeasuresOfSynthesisAndVariability\r\n });\r\n\r\n } else {\r\n setTableSupportStructures({\r\n jsonStat,\r\n layout: newLayout,\r\n isPreview: true\r\n });\r\n }\r\n\r\n setRow(null);\r\n setCol(null);\r\n isFirstRender = true;\r\n }\r\n }, [worker, jsonStat, layout, isPreview, removeEmptyLines, showTrend, showCyclical, dimensionFilterValues, filterable, onFilter, filters, labelFormat, customLabelFormats, dimensionValueModifiers, decimalSeparator, decimalPlaces, invertedDims, hierarchyOnlyAttributes, hideHierarchyOnlyRows, onStructureGenerationComplete, enableMeasuresOfSynthesisAndVariability, t]);\r\n\r\n /* handling scroll to row */\r\n useEffect(() => {\r\n if (firstRowDimValues !== null && firstRowDimValues !== undefined) {\r\n scrollToRow = true;\r\n }\r\n }, [firstRowDimValues]);\r\n\r\n /* generating html table */\r\n useEffect(() => {\r\n if (tableSupportStructures) {\r\n const {\r\n layout,\r\n dimValuesMap,\r\n dimSpanMap,\r\n valorizedSectionRows,\r\n valueMatrix,\r\n sectionRowsOrder\r\n } = tableSupportStructures;\r\n\r\n const {\r\n rows\r\n } = layout;\r\n\r\n const orderedCol = order[0];\r\n const isOrderedAscending = order[1];\r\n\r\n let newSectionRowsOrder;\r\n if (orderedCol !== null) {\r\n newSectionRowsOrder = {};\r\n Object.keys(sectionRowsOrder).forEach((s) => {\r\n newSectionRowsOrder[s] = {};\r\n const prevOrder = Object.keys(sectionRowsOrder[s]).sort((a, b) => a - b);\r\n const nextOrder = Object.keys(sectionRowsOrder[s]).sort((a, b) => {\r\n const aVal = valueMatrix?.[s]?.[orderedCol]?.[a];\r\n const bVal = valueMatrix?.[s]?.[orderedCol]?.[b];\r\n return valueSorter(aVal, bVal, isOrderedAscending);\r\n });\r\n prevOrder.forEach((prevPos, index) => {\r\n newSectionRowsOrder[s][prevPos] = Number(nextOrder[index]);\r\n });\r\n });\r\n } else {\r\n newSectionRowsOrder = sectionRowsOrder;\r\n }\r\n\r\n if (scrollToRow) {\r\n\r\n let i = 0, rowCount = 0, found = false;\r\n for (let b of valorizedSectionRows[0]) {\r\n if (b) {\r\n const clonedI = i;\r\n if (!rows.find(dim => firstRowDimValues[dim] && firstRowDimValues[dim] !== getDimensionValueFromIdx(dim, clonedI, dimValuesMap, dimSpanMap))) {\r\n found = true;\r\n break;\r\n }\r\n rowCount++;\r\n }\r\n i++;\r\n }\r\n\r\n setRow(found ? rowCount : 0);\r\n setCol(0);\r\n\r\n scrollToRow = false;\r\n\r\n setDate(Date.now());\r\n\r\n } else if (row === null || col === null) {\r\n\r\n if (row === null) {\r\n setRow(0);\r\n }\r\n if (col === null) {\r\n setCol(0);\r\n }\r\n\r\n } else {\r\n\r\n if (!isPreview) {\r\n setHtmlTable(getTableHtml(\r\n uuid,\r\n tableSupportStructures,\r\n tableHeaderType,\r\n {\r\n rowStart: row || 0,\r\n rowPerPage: ROWS_PER_PAGE,\r\n colStart: col || 0,\r\n colPerPage: COLS_PER_PAGE\r\n },\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n customDimensionLabels,\r\n fontSize,\r\n decimalSeparator,\r\n decimalPlaces,\r\n sanitize(emptyChar),\r\n sortable,\r\n orderedCol,\r\n isOrderedAscending,\r\n newSectionRowsOrder,\r\n filterable,\r\n highlightedRowsDimValues,\r\n rowHover,\r\n localizeI18nObj(hiddenDimensionValueLabels, appLanguage, languages),\r\n isPointData,\r\n showArithmeticMean,\r\n showStandardDeviation,\r\n showCoefficientOfVariation,\r\n hierarchyOnlyAttributes,\r\n onPageGenerationComplete,\r\n t\r\n ));\r\n\r\n } else {\r\n setHtmlTable(getPreviewTableHtml(\r\n uuid,\r\n tableSupportStructures,\r\n labelFormat,\r\n customLabelFormats,\r\n dimensionValueModifiers,\r\n customDimensionLabels\r\n ));\r\n }\r\n\r\n $(`#jsonstat-table__${uuid}`).scrollTop(0).scrollLeft(0);\r\n }\r\n }\r\n }, [tableSupportStructures, uuid, tableHeaderType, labelFormat, customLabelFormats, dimensionValueModifiers, customDimensionLabels, fontSize, decimalSeparator, decimalPlaces, emptyChar, sortable, isPreview, row, col, isFullscreen, order, firstRowDimValues, highlightedRowsDimValues, rowHover, appLanguage, languages, hiddenDimensionValueLabels, onPageGenerationComplete, t, date, filterable, isPointData, showArithmeticMean, showStandardDeviation, showCoefficientOfVariation, hierarchyOnlyAttributes]);\r\n\r\n /* exec style and scrollbar handler */\r\n useEffect(() => {\r\n if (htmlTable && htmlTable.length > 0) {\r\n handleStyle(false);\r\n handleScrollbar(isFirstRender);\r\n isFirstRender = false;\r\n }\r\n });\r\n\r\n return (\r\n \r\n\r\n
    \r\n {(tableSupportStructures && row !== null && col !== null)\r\n ? !isPreview\r\n ? (tableSupportStructures.colCount + tableSupportStructures.rowCount === 0)\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n \r\n \r\n )\r\n : (\r\n \r\n )\r\n : (\r\n }\r\n />\r\n )\r\n }\r\n
    \r\n\r\n setAttributes(null)}\r\n >\r\n setAttributes(null)}>\r\n {t(\"components.table.dialogs.attributes.title\")}\r\n \r\n \r\n \r\n {(attributes || []).map((attribute, idx) =>\r\n \r\n ${getAttributeLabel(attribute, labelFormat)}: ${getAttributeValueLabel(attribute, labelFormat)}`}\r\n allowTarget\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {filterColIdx !== null\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n \r\n\r\n
    \r\n );\r\n}\r\n\r\nexport default compose(\r\n connect(mapStateToProps),\r\n withStyles(styles)\r\n)(Table);","import {initRequest, RequestMethod} from \"../../middlewares/request/requestActions\";\r\nimport {getGeometryUrl} from \"../../serverApi/urls\";\r\n\r\nexport const MAP_GEOMETRY_FETCH = \"map/geometries/fetch\";\r\nexport const MAP_GEOMETRY_SET = \"map/geometries/set\";\r\nexport const MAP_GEOMETRY_CHANGED_STATUS_SET = \"map/geometries/changed/status/set\";\r\nexport const MAP_GEOMETRY_CLEAR = \"map/geometries/clear\";\r\nexport const MAP_NO_GEOMETRY_WARNING_HIDE = \"map/no/geometries/warning/hide\";\r\n\r\nexport const fetchMapGeometry = (\r\n mapStateUuid: string,\r\n nodeId: number,\r\n territoryDimValues: string[],\r\n format: string,\r\n detailLevel: number | null,\r\n timeDimValue: string | null,\r\n territoryDimCodelist: string | null,\r\n showSpinner: boolean = false\r\n) => {\r\n return initRequest(\r\n MAP_GEOMETRY_FETCH,\r\n getGeometryUrl(nodeId, format, detailLevel, timeDimValue, territoryDimCodelist),\r\n RequestMethod.POST,\r\n {\r\n geometryIds: territoryDimValues\r\n },\r\n showSpinner\r\n ? t => ({onStart: t(\"components.map.messages.fetchingGeometries\")})\r\n : undefined,\r\n {\r\n mapStateUuid\r\n },\r\n undefined,\r\n (statusCode: number) => statusCode === 404\r\n )\r\n};\r\n\r\nexport const setMapGeometry = (mapStateUuid: string, geometries: any) => ({\r\n type: MAP_GEOMETRY_SET,\r\n payload: {\r\n mapStateUuid,\r\n geometries\r\n }\r\n});\r\n\r\nexport const setMapGeometryChangedStatus = (mapStateUuid: string, changed: boolean) => ({\r\n type: MAP_GEOMETRY_CHANGED_STATUS_SET,\r\n payload: {\r\n mapStateUuid,\r\n changed\r\n }\r\n});\r\n\r\nexport const clearMapGeometry = (mapStateUuid: string) => ({\r\n type: MAP_GEOMETRY_CLEAR,\r\n payload: {\r\n mapStateUuid\r\n }\r\n});\r\n\r\nexport const hideMapNoGeometryWarning = (mapStateUuid: string) => ({\r\n type: MAP_NO_GEOMETRY_WARNING_HIDE,\r\n payload: {\r\n mapStateUuid\r\n }\r\n});","export const getNutsLevelTranslations = t => {\r\n\r\n const translations = t => ({\r\n \"0\": t(\"nutsLevel0\"),\r\n \"1\": t(\"nutsLevel1\"),\r\n \"2\": t(\"nutsLevel2\"),\r\n \"3\": t(\"nutsLevel3\"),\r\n \"4\": t(\"nutsLevel4\"),\r\n \"5\": t(\"nutsLevel5\"),\r\n \"6\": t(\"nutsLevel6\"),\r\n \"7\": t(\"nutsLevel7\"),\r\n \"8\": t(\"nutsLevel8\"),\r\n \"9\": t(\"nutsLevel9\"),\r\n \"10\": t(\"nutsLevel10\"),\r\n \"11\": t(\"nutsLevel11\"),\r\n \"12\": t(\"nutsLevel12\"),\r\n \"13\": t(\"nutsLevel13\"),\r\n \"14\": t(\"nutsLevel14\"),\r\n \"15\": t(\"nutsLevel15\"),\r\n \"16\": t(\"nutsLevel16\"),\r\n \"17\": t(\"nutsLevel17\"),\r\n \"18\": t(\"nutsLevel18\"),\r\n \"19\": t(\"nutsLevel19\")\r\n })\r\n\r\n return translations(t !== undefined ? t : str => str);\r\n};\r\n","import {\r\n getCompleteValueDims,\r\n getCoordinatesArrayFromDataIdx,\r\n getDataIdxFromCoordinatesArray,\r\n getDimensionAttributeMap,\r\n getDimensionValuesIndexesMap,\r\n getFormattedDimensionValueLabel,\r\n getObservationAttributeMap,\r\n VARIATION_DIMENSION_KEY,\r\n VARIATION_VALUE_VALUE_KEY\r\n} from \"../../utils/jsonStat\";\r\nimport moment from \"moment\";\r\nimport {isNumeric} from \"../../utils/validator\";\r\nimport {getNutsLevelTranslations} from \"../../constants/getNutsLevelTranslations\";\r\n\r\nexport const getDetailLevelsFromGeometries = (geometries, showSingleGeometry, levelsOrder, t) =>\r\n geometries\r\n .reduce((acc, geom) => {\r\n const level = geom.level;\r\n const levelOrder = (levelsOrder || []).indexOf(level);\r\n if (!acc[level]) {\r\n acc[level] = {\r\n value: level,\r\n label: getNutsLevelTranslations(t)[level],\r\n order: levelOrder > -1 ? levelOrder : Number.MAX_SAFE_INTEGER,\r\n counter: 0\r\n };\r\n }\r\n acc[level].counter++;\r\n return acc;\r\n }, [])\r\n .filter(val => showSingleGeometry || val.counter > 1)\r\n .sort((a, b) => a.order - b.order);\r\n\r\nexport const getLayoutGeometries = (\r\n geometries,\r\n jsonStat,\r\n layout,\r\n dimensionValueTree,\r\n labelFormat,\r\n isPointData,\r\n latAttributeId,\r\n longAttributeId,\r\n t,\r\n enableLog = false\r\n) => {\r\n const layoutGeometries = [];\r\n const geometryMap = {};\r\n const territoryMap = {};\r\n\r\n const missingGeometryList = [];\r\n\r\n const geometryMapByTerritoryId = {};\r\n (geometries || []).forEach(g => geometryMapByTerritoryId[g.id] = g);\r\n\r\n const datasetId = jsonStat?.extension?.datasets?.[0];\r\n\r\n const territoryDim = layout.territoryDim;\r\n const territoryDimValues = jsonStat.dimension[territoryDim].category.index;\r\n const indexesMap = getDimensionValuesIndexesMap(jsonStat);\r\n const obsAttributeMap = getObservationAttributeMap(jsonStat);\r\n const dimAttributeMap = getDimensionAttributeMap(jsonStat, t)[datasetId];\r\n\r\n let filtersValue = {...layout.filtersValue};\r\n if (jsonStat.id.includes(VARIATION_DIMENSION_KEY)) {\r\n filtersValue = {...filtersValue, [VARIATION_DIMENSION_KEY]: VARIATION_VALUE_VALUE_KEY};\r\n }\r\n\r\n const orderedDims = [layout.territoryDim, ...layout.filters, ...jsonStat.id.filter(dim => dim !== layout.territoryDim && !layout.filters.includes(dim))];\r\n\r\n territoryDimValues.forEach(territoryDimValue => {\r\n const geometry = geometryMapByTerritoryId[territoryDimValue];\r\n\r\n if (!geometry) {\r\n const missingEntry = {\r\n id: territoryDimValue,\r\n label: jsonStat.dimension[territoryDim].category.label[territoryDimValue]\r\n };\r\n missingGeometryList.push(missingEntry);\r\n\r\n } else {\r\n let dimValueArray = jsonStat.id.map(dim => {\r\n if (dim === territoryDim) {\r\n return territoryDimValue;\r\n } else if (filtersValue[dim]) {\r\n return filtersValue[dim];\r\n } else {\r\n return null;\r\n }\r\n });\r\n\r\n if (dimValueArray.findIndex(val => val === null) > -1 && dimensionValueTree) {\r\n dimValueArray = getCompleteValueDims(dimValueArray, jsonStat.id, orderedDims, dimensionValueTree);\r\n }\r\n\r\n if (dimValueArray) {\r\n const dimValueIndexArray = dimValueArray.map((value, idx) => indexesMap[jsonStat.id[idx]][value]);\r\n const valueIdx = getDataIdxFromCoordinatesArray(dimValueIndexArray, jsonStat.size);\r\n\r\n const jsonStatValue = jsonStat.value[valueIdx];\r\n const value = (jsonStatValue !== null && jsonStatValue !== \"\" && !isNaN(jsonStatValue))\r\n ? Number(jsonStatValue)\r\n : null;\r\n\r\n if (value !== null) {\r\n\r\n const obsAttributes = obsAttributeMap?.[valueIdx] || null;\r\n const dimAttributes = dimAttributeMap[territoryDim][territoryDimValue] || null;\r\n const hasAttributes = (obsAttributes || []).concat(dimAttributes || []).length > 0;\r\n\r\n let isGeomValid = true;\r\n let geom;\r\n if (!isPointData) {\r\n geom = geometry.geoJson || geometry.wkt;\r\n } else {\r\n const long = (dimAttributes || []).find(({id}) => id === longAttributeId)?.valueId;\r\n const lat = (dimAttributes || []).find(({id}) => id === latAttributeId)?.valueId;\r\n if (!isNumeric(long) || !isNumeric(lat)) {\r\n isGeomValid = false;\r\n }\r\n geom = {\r\n type: \"Point\",\r\n coordinates: [Number(long), Number(lat)]\r\n };\r\n }\r\n\r\n if (isGeomValid) {\r\n layoutGeometries.push({\r\n value: value,\r\n id: geometry.id,\r\n identifier: geometry.uniqueId,\r\n level: geometry.nutsLevel,\r\n geometry: geom,\r\n label: getFormattedDimensionValueLabel(jsonStat, null, territoryDim, territoryDimValue, labelFormat, t),\r\n suffix: hasAttributes\r\n ? t(\"components.map.tooltip.attributes.suffix\")\r\n : undefined,\r\n isTooltipClickable: hasAttributes\r\n });\r\n\r\n geometryMap[geometry.uniqueId] = {\r\n hasAttributes: hasAttributes,\r\n obsAttributes: obsAttributes,\r\n dimAttributes: dimAttributes,\r\n territoryId: territoryDimValue\r\n };\r\n\r\n territoryMap[geometry.id] = geometry.uniqueId;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (enableLog && missingGeometryList.length > 0) {\r\n console.log(\"missing ids:\", missingGeometryList);\r\n }\r\n\r\n return {\r\n layoutGeometries,\r\n geometryMap,\r\n territoryMap\r\n };\r\n};\r\n\r\nexport const getTimeDimValueFromLayout = (jsonStat, layout) => {\r\n const timeDim = jsonStat.role?.time?.[0];\r\n const timeDimValue = (timeDim && layout.filtersValue[timeDim]) ? layout.filtersValue[timeDim] : null;\r\n\r\n const timeDimValueYear = moment(timeDimValue);\r\n\r\n return timeDimValueYear.isValid()\r\n ? timeDimValueYear.format(\"YYYY\")\r\n : null;\r\n};\r\n\r\nexport const getTerritoriesWithValue = (jsonStat, territoryDim) => {\r\n const map = {};\r\n const territoryDimIdx = jsonStat.id.indexOf(territoryDim);\r\n\r\n Object.keys(jsonStat.value).forEach(key => {\r\n const val = jsonStat.value[key];\r\n if (val !== undefined && val !== null && val !== \"\") {\r\n const coordinates = getCoordinatesArrayFromDataIdx(key, jsonStat.size);\r\n const territoryDimValue = jsonStat.dimension[territoryDim].category.index[coordinates[territoryDimIdx]]\r\n map[territoryDimValue] = true;\r\n }\r\n });\r\n\r\n return Object.keys(map);\r\n};","import React, {useEffect, useState} from \"react\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {getTextWidth} from \"../../utils/style\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst CustomSelect = ({\r\n label,\r\n children,\r\n style,\r\n ...props\r\n }) => {\r\n\r\n const [labelWidth, setLabelWidth] = useState(0);\r\n\r\n useEffect(() => {\r\n const getTextWidthEl = $(\"\").css({\r\n visibility: \"hidden\",\r\n fontSize: 16,\r\n whiteSpace: \"nowrap\"\r\n }).appendTo(\"body\").get(0);\r\n\r\n const minWidth = getTextWidth(label, getTextWidthEl);\r\n setLabelWidth(minWidth);\r\n\r\n $(getTextWidthEl).remove();\r\n }, [label]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default CustomSelect;","import React, {Fragment, useCallback, useEffect, useRef, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {withTheme} from \"@material-ui/core/styles\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport \"./style.css\";\r\nimport {getFormattedValue} from \"../../utils/formatters\";\r\nimport Call from \"../../hocs/call/index\";\r\nimport {\r\n getAttributeLabel,\r\n getAttributeValueLabel,\r\n getFilterTreeFromJsonStat,\r\n VARIATION_DIMENSION_KEY\r\n} from \"../../utils/jsonStat\";\r\nimport {v4 as uuidv4} from \"uuid\";\r\nimport {connect} from \"react-redux\";\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {\r\n clearMapGeometry,\r\n fetchMapGeometry,\r\n hideMapNoGeometryWarning,\r\n setMapGeometry,\r\n setMapGeometryChangedStatus\r\n} from \"../../state/maps/mapsActions\";\r\nimport {\r\n MAP_CLASSIFICATION_METHOD_CUSTOM_INTERVALS,\r\n MAP_LAYERS_ALL,\r\n MAP_LAYERS_NONE\r\n} from \"./constants\";\r\nimport _ from \"lodash\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport ErrorIcon from \"@material-ui/icons/Error\";\r\nimport {localizeI18nObj} from \"../../utils/i18n\";\r\nimport {\r\n getDetailLevelsFromGeometries,\r\n getLayoutGeometries,\r\n getTerritoriesWithValue,\r\n getTimeDimValueFromLayout\r\n} from \"./utils\";\r\nimport {isValidIntegerInInclusiveRange} from \"../../utils/validator\";\r\nimport CustomSelect from \"../custom-select\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n position: \"relative\",\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n map: {\r\n position: \"absolute\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n zIndex: 0,\r\n filter: \"blur(0)\"\r\n },\r\n overlay: {\r\n position: \"absolute\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n zIndex: 2,\r\n visibility: \"hidden\"\r\n },\r\n attributesGrid: {\r\n display: \"table\",\r\n width: \"calc(100% + 24px)\",\r\n margin: \"-8px -12px\"\r\n },\r\n attributesTitle: {\r\n fontSize: 16,\r\n fontWeight: \"bold\"\r\n },\r\n detailLevelSelectorWrapper: {\r\n position: \"absolute\",\r\n zIndex: 1,\r\n top: 8,\r\n left: 8,\r\n padding: 8,\r\n background: \"rgba(255, 255, 255, 0.7)\"\r\n },\r\n detailLevelSelector: {}\r\n});\r\n\r\nconst getOverlayStyle = (theme, solidOverlay) => ({\r\n position: \"absolute\",\r\n zIndex: 3,\r\n color: \"white\",\r\n background: solidOverlay\r\n ? \"#F5F5F5\"\r\n : \"rgba(0, 0, 0, 0.1)\"\r\n});\r\n\r\nconst getOverlayTextStyle = (theme, solidOverlay) => ({\r\n fontWeight: solidOverlay\r\n ? \"normal\"\r\n : \"bold\",\r\n color: solidOverlay\r\n ? theme.palette.primary.main\r\n : \"white\"\r\n});\r\n\r\nconst getOverlayImageStyle = (theme, solidOverlay) => ({\r\n color: solidOverlay\r\n ? theme.palette.primary.main\r\n : \"white\"\r\n});\r\n\r\nconst mapStateToProps = state => {\r\n const hubExtras = JSON.parse(state.hub?.hub?.extras || \"{}\");\r\n return {\r\n isMultiViewerTheme: state.app.themeConfig.isMultiViewer,\r\n defaultLanguage: state.app.language,\r\n languages: state.app.languages,\r\n defaultExtent: state.appConfig.mapConfig.defaultExtent,\r\n geometryBorderColor: state.appConfig.mapConfig.geometryBorderColor,\r\n levelsOrder: state.appConfig.mapConfig.levelsOrder,\r\n baseMap: hubExtras?.BaseMap || null,\r\n mapCopyright: hubExtras?.MapCopyright || null,\r\n mapLayer: hubExtras?.MapLayer || null,\r\n mapLayersConfig: state.maps.mapLayersConfig,\r\n maps: state.maps.maps\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onGeometryFetch: (mapStateUuid, nodeId, territoryDimValues, format, detailLevel, timeDimValue, territoryDimCodelist) =>\r\n dispatch(fetchMapGeometry(mapStateUuid, nodeId, territoryDimValues, format, detailLevel, timeDimValue, territoryDimCodelist)),\r\n onGeometrySet: (mapStateUuid, geometries) => dispatch(setMapGeometry(mapStateUuid, geometries)),\r\n onGeometryChangedStatusSet: (mapStateUuid, changed) => dispatch(setMapGeometryChangedStatus(mapStateUuid, changed)),\r\n onGeometryClear: mapStateUuid => dispatch(clearMapGeometry(mapStateUuid)),\r\n onWarningHide: mapStateUuid => dispatch(hideMapNoGeometryWarning(mapStateUuid))\r\n});\r\n\r\nconst isSettingsChanged = (newSettings, prevSettings) => {\r\n let isChanged = false;\r\n\r\n if (!prevSettings) {\r\n return true;\r\n }\r\n\r\n for (let key in newSettings) {\r\n if (newSettings.hasOwnProperty(key)) {\r\n if (!_.isEqual((newSettings?.[key] || null), (prevSettings?.[key] || null))) {\r\n isChanged = true;\r\n }\r\n }\r\n }\r\n\r\n return isChanged;\r\n};\r\n\r\nconst callSetSettings = (settings, setSettings) => {\r\n\r\n const newSettings = {\r\n ..._.cloneDeep(settings),\r\n customIntervals: settings?.classificationMethod !== undefined\r\n ? settings.classificationMethod === MAP_CLASSIFICATION_METHOD_CUSTOM_INTERVALS\r\n ? settings.customIntervals\r\n : null\r\n : undefined\r\n };\r\n\r\n Object.keys(newSettings).forEach(key => {\r\n if (newSettings[key] === undefined || newSettings[key] === null) {\r\n delete newSettings[key];\r\n }\r\n });\r\n\r\n setSettings(newSettings);\r\n};\r\n\r\nfunction usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n\r\nfunction Map(props) {\r\n const {\r\n classes,\r\n theme,\r\n\r\n isMultiViewerTheme,\r\n defaultLanguage,\r\n languages,\r\n defaultExtent,\r\n geometryBorderColor,\r\n levelsOrder,\r\n baseMap,\r\n mapCopyright,\r\n mapLayer,\r\n mapLayersConfig,\r\n maps,\r\n\r\n onGeometryFetch,\r\n onGeometrySet,\r\n onGeometryChangedStatusSet,\r\n onGeometryClear,\r\n onWarningHide,\r\n\r\n isMultiViewer = false,\r\n mapId: externalMapId,\r\n nodeId,\r\n jsonStat,\r\n layout,\r\n labelFormat,\r\n decimalSeparator,\r\n decimalPlaces,\r\n isFullscreen,\r\n detailLevel,\r\n defaultDetailLevel = null,\r\n onDetailLevelChange,\r\n disableDetailLevelSelector,\r\n territoryDimCodelist,\r\n initialBaseLayer,\r\n defaultSettings,\r\n settings,\r\n setSettings,\r\n onDataClick,\r\n disableZoomToClickedData = false,\r\n onDataSelect,\r\n selectedTerritoryId,\r\n filteredTerritoryIds,\r\n onSettingsShow,\r\n showSelection = false,\r\n disableBaseLayer = false,\r\n disableSettings = false,\r\n showSingleGeometry = false,\r\n disableWheelZoom = false,\r\n isPointData = false,\r\n latAttributeId,\r\n longAttributeId,\r\n srid,\r\n onRenderStart,\r\n onRenderFinish,\r\n geometriesYear = null\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n const [mapId, setMapId] = useState(null);\r\n\r\n const [legendTitle] = useState(null);\r\n\r\n const prevJsonStat = usePrevious(jsonStat);\r\n const prevLayout = usePrevious(layout);\r\n\r\n const [isFetchEnabled, setIsFetchEnabled] = useState(true);\r\n const [fetchedGeometries, setFetchedGeometries] = useState(null);\r\n\r\n const [internalDetailLevels, setInternalDetailLevels] = useState(null);\r\n const [internalDetailLevel, setInternalDetailLevel] = useState(!isMultiViewer ? defaultDetailLevel : null);\r\n\r\n const [geometries, setGeometries] = useState(null);\r\n const [geometryMap, setGeometryMap] = useState(null);\r\n const [territoryMap, setTerritoryMap] = useState(null);\r\n\r\n const [filteredGeometries, setFilteredGeometries] = useState(null);\r\n\r\n const [mapSettings, setMapSettings] = useState(null);\r\n const [mapDefaultSettings, setMapDefaultSettings] = useState(null);\r\n\r\n const [isLayerRendered, setIsLayerRendered] = useState(false);\r\n\r\n const [geometryId, setGeometryId] = useState(null);\r\n\r\n const [dimensionValueTree, setDimensionValueTree] = useState(null);\r\n\r\n const showSpinner = useCallback(() => {\r\n $(`#${mapId}__wrapper > .map__overlay > div`).addClass(\"map__overlay--visible\");\r\n if (onRenderStart) {\r\n onRenderStart();\r\n }\r\n }, [mapId, onRenderStart]);\r\n\r\n const hideSpinner = useCallback(() => {\r\n $(`#${mapId}__wrapper > .map__overlay > div`).removeClass(\"map__overlay--visible\");\r\n if (onRenderFinish) {\r\n onRenderFinish();\r\n }\r\n }, [mapId, onRenderFinish]);\r\n\r\n const fetchGeometry = useCallback((cbParam) => {\r\n const {\r\n nodeId,\r\n detailLevel,\r\n territoryDimCodelist,\r\n jsonStat,\r\n layout,\r\n mapStateUuid\r\n } = cbParam;\r\n\r\n const territoryDim = layout.territoryDim;\r\n const territoryDimValues = jsonStat.dimension[territoryDim].category.index;\r\n const timeDimValue = geometriesYear !== null\r\n ? geometriesYear\r\n : getTimeDimValueFromLayout(jsonStat, layout);\r\n\r\n const format = isMultiViewerTheme ? \"geojson\" : \"wkt\";\r\n\r\n if (isPointData) {\r\n const geometries = territoryDimValues.map((value, idx) => ({\r\n id: value,\r\n uniqueId: (idx + 1)\r\n }));\r\n onGeometrySet(mapStateUuid, geometries);\r\n\r\n } else if (isMultiViewer) {\r\n onGeometryFetch(mapStateUuid, nodeId, territoryDimValues, format, detailLevel, timeDimValue, territoryDimCodelist);\r\n\r\n } else {\r\n const filteredTerritoryDimValues = getTerritoriesWithValue(jsonStat, territoryDim);\r\n onGeometryFetch(mapStateUuid, nodeId, filteredTerritoryDimValues, format);\r\n }\r\n }, [isMultiViewerTheme, isPointData, isMultiViewer, onGeometryFetch, onGeometrySet, geometriesYear]);\r\n\r\n // handle mapId and destroy map on component unmount\r\n useEffect(() => {\r\n const mapId = (externalMapId || uuidv4());\r\n setMapId(mapId);\r\n\r\n window[`${mapId}_isFirstRender`] = true;\r\n window[`${mapId}_areGeometriesUpdated`] = false;\r\n window[`${mapId}_areGeometriesChanged`] = true;\r\n\r\n return () => {\r\n if (window.document.getElementById(mapId) && window.LMap.isInitialized(mapId)) {\r\n window.LMap.destroyMap(mapId);\r\n }\r\n onGeometryClear(mapId);\r\n setIsFetchEnabled(true);\r\n\r\n window[`${mapId}_isFirstRender`] = true;\r\n window[`${mapId}_areGeometriesUpdated`] = false;\r\n window[`${mapId}_areGeometriesChanged`] = true;\r\n };\r\n }, [externalMapId, onGeometryClear]);\r\n\r\n // init map\r\n useEffect(() => {\r\n if (mapId && !window.LMap.isInitialized(mapId)) {\r\n\r\n let baseLayer, layers;\r\n\r\n if (mapLayer === MAP_LAYERS_NONE) {\r\n baseLayer = null;\r\n layers = null;\r\n } else if (mapLayer === MAP_LAYERS_ALL) {\r\n baseLayer = initialBaseLayer;\r\n layers = mapLayersConfig;\r\n } else {\r\n baseLayer = mapLayer;\r\n layers = mapLayersConfig.filter(({id}) => id === mapLayer);\r\n }\r\n\r\n if (layers) {\r\n layers = layers.map(({name, credits, ...layer}) => ({\r\n ...layer,\r\n name: localizeI18nObj(name, defaultLanguage, languages),\r\n credits: localizeI18nObj(credits, defaultLanguage, languages)\r\n }));\r\n }\r\n\r\n const mapOptions = {\r\n showZoom: true,\r\n showScale: isMultiViewer,\r\n baseLayer: baseLayer,\r\n layers: layers,\r\n defaultExtent: defaultExtent,\r\n showBaseLayerRadio: (!disableBaseLayer && mapLayer === MAP_LAYERS_ALL && (layers || []).length > 1),\r\n showSelection: showSelection,\r\n disableWheelZoom: disableWheelZoom,\r\n onSettingsChange: settings => {\r\n if (setSettings) {\r\n callSetSettings(settings, setSettings);\r\n }\r\n },\r\n onLegendCollapsedChange: isCollapsed => {\r\n if (setSettings) {\r\n callSetSettings(({isLegendCollapsed: isCollapsed}), setSettings);\r\n }\r\n },\r\n onBaseLayerChange: baseLayer => {\r\n if (setSettings) {\r\n callSetSettings(({baseLayer: baseLayer}), setSettings);\r\n }\r\n },\r\n onSettingsShow: settings => {\r\n if (onSettingsShow) {\r\n onSettingsShow(settings);\r\n }\r\n },\r\n legendFontFamily: \"Roboto\",\r\n primaryColor: theme.palette.primary.main,\r\n isBaseLayerRadioPopupClosable: true\r\n };\r\n\r\n const mapTranslations = {\r\n configure: t(\"components.map.translation.configure\"),\r\n opacity: t(\"components.map.translation.opacity\"),\r\n from: t(\"components.map.translation.from\"),\r\n to: t(\"components.map.translation.to\"),\r\n cancel: t(\"components.map.translation.cancel\"),\r\n apply: t(\"components.map.translation.apply\"),\r\n classification: t(\"components.map.translation.classification\"),\r\n equalInterval: t(\"components.map.translation.equalInterval\"),\r\n naturalBreaks: t(\"components.map.translation.naturalBreaks\"),\r\n quantile: t(\"components.map.translation.quantile\"),\r\n customIntervals: t(\"components.map.translation.customIntervals\"),\r\n customIntervalsFrom: t(\"components.map.translation.customIntervalsFrom\"),\r\n customIntervalsTo: t(\"components.map.translation.customIntervalsTo\"),\r\n numberOfClasses: t(\"components.map.translation.numberOfClasses\"),\r\n startColor: t(\"components.map.translation.startColor\"),\r\n endColor: t(\"components.map.translation.endColor\"),\r\n preview: t(\"components.map.translation.preview\"),\r\n collapse: t(\"components.map.translation.collapse\"),\r\n uncollapse: t(\"components.map.translation.uncollapse\"),\r\n allowedPaletteCardinality: ({min, max}) =>\r\n t(\"components.map.translation.allowedPaletteCardinality\", {min: min, max: max}),\r\n invalidCustomIntervals: t(\"components.map.translation.invalidCustomIntervals\"),\r\n linearSelectionTooltip: step => {\r\n if (step === 0) {\r\n return t(\"components.map.translation.linearSelectionTooltip.step0\");\r\n } else {\r\n return t(\"components.map.translation.linearSelectionTooltip.steps\");\r\n }\r\n },\r\n polygonalSelectionTooltip: step => {\r\n if (step === 0) {\r\n return t(\"components.map.translation.polygonalSelectionTooltip.step0\");\r\n } else if (step === 1) {\r\n return t(\"components.map.translation.polygonalSelectionTooltip.step1\");\r\n } else {\r\n return t(\"components.map.translation.polygonalSelectionTooltip.steps\");\r\n }\r\n },\r\n rectangularSelectionTooltip: step => {\r\n if (step === 0) {\r\n return t(\"components.map.translation.rectangularSelectionTooltip.step0\");\r\n } else {\r\n return t(\"components.map.translation.rectangularSelectionTooltip.steps\");\r\n }\r\n },\r\n circularSelectionTooltip: (step, infos) => {\r\n if (step === 0) {\r\n return t(\"components.map.translation.circularSelectionTooltip.step0\");\r\n } else {\r\n if (infos && infos.diameter) {\r\n const formatter = diameter => {\r\n if (diameter < 1000) {\r\n return Math.round(diameter) + \" m\";\r\n } else if (diameter < 10000) {\r\n return (diameter / 1000).toFixed(1) + \" km\";\r\n } else {\r\n return Math.round(diameter / 1000) + \" km\";\r\n }\r\n };\r\n return t(\"components.map.translation.circularSelectionTooltip.stepsWithDiameter\", {diameter: formatter(infos.diameter)});\r\n } else {\r\n return t(\"components.map.translation.circularSelectionTooltip.steps\");\r\n }\r\n }\r\n },\r\n zoomIn: t(\"components.map.translation.zoomIn\"),\r\n zoomOut: t(\"components.map.translation.zoomOut\"),\r\n zoomHome: t(\"components.map.translation.zoomHome\"),\r\n linearSelection: t(\"components.map.translation.linearSelection\"),\r\n polygonalSelection: t(\"components.map.translation.polygonalSelection\"),\r\n rectangularSelection: t(\"components.map.translation.rectangularSelection\"),\r\n circularSelection: t(\"components.map.translation.circularSelection\"),\r\n clearSelection: t(\"components.map.translation.clearSelection\"),\r\n configureLayers: t(\"components.map.translation.configureLayers\"),\r\n changeBaseLayer: t(\"components.map.translation.changeBaseLayer\"),\r\n abortSelection: t(\"components.map.translation.abortSelection\"),\r\n expandSelectionButtons: t(\"components.map.translation.expandSelectionButtons\"),\r\n collapseSelectionButtons: t(\"components.map.translation.collapseSelectionButtons\"),\r\n noBaseLayer: t(\"components.map.translation.noBaseLayer\")\r\n };\r\n\r\n window.LMap.initMap(mapId, mapOptions, mapTranslations);\r\n }\r\n }, [mapId, defaultLanguage, languages, defaultExtent, isMultiViewerTheme, isMultiViewer, baseMap, mapCopyright, mapLayer, mapLayersConfig, initialBaseLayer, disableWheelZoom, disableBaseLayer, showSelection, setSettings, onSettingsShow, t, theme.palette.primary.main]);\r\n\r\n // handle fullscreen\r\n useEffect(() => {\r\n if (mapId) {\r\n window.LMap.handleViewportChange(mapId);\r\n }\r\n }, [mapId, isFullscreen]);\r\n\r\n // handle resize\r\n useEffect(() => {\r\n if (mapId) {\r\n const func = () => window.LMap.handleViewportChange(mapId);\r\n window.addEventListener(\"resize\", func);\r\n return () => {\r\n window.removeEventListener(\"resize\", func);\r\n };\r\n }\r\n }, [mapId]);\r\n\r\n // handle jsonStat or time dimension value changes\r\n useEffect(() => {\r\n if (mapId) {\r\n\r\n showSpinner();\r\n\r\n const isJsonStatChanged = !_.isEqual(prevJsonStat, jsonStat);\r\n\r\n const isTimeDimValueChanged = (isMultiViewer && geometriesYear === null)\r\n ? getTimeDimValueFromLayout(jsonStat, prevLayout) !== getTimeDimValueFromLayout(jsonStat, layout)\r\n : false;\r\n\r\n if (isJsonStatChanged || isTimeDimValueChanged) {\r\n setGeometries(null);\r\n setGeometryMap(null);\r\n setTerritoryMap(null);\r\n\r\n setFilteredGeometries(null);\r\n\r\n setIsFetchEnabled(true);\r\n\r\n window[`${mapId}_areGeometriesUpdated`] = false;\r\n }\r\n\r\n const dims = jsonStat.id.filter(dim => dim !== VARIATION_DIMENSION_KEY);\r\n const layoutDims = [layout.territoryDim, ...layout.filters];\r\n\r\n if (dims.length !== layoutDims.length && (isJsonStatChanged || !dimensionValueTree)) {\r\n const orderedDims = [...layoutDims, ...dims.filter(dim => !layoutDims.includes(dim))];\r\n setDimensionValueTree(getFilterTreeFromJsonStat(orderedDims, jsonStat));\r\n }\r\n }\r\n }, [mapId, prevJsonStat, jsonStat, prevLayout, layout, dimensionValueTree, isPointData, isMultiViewer, geometriesYear, showSpinner]);\r\n\r\n // handle new fetched geometries\r\n useEffect(() => {\r\n if (mapId && maps?.[mapId]?.changed === true) {\r\n const geometries = maps[mapId].geometries;\r\n\r\n setFetchedGeometries(geometries);\r\n onGeometryChangedStatusSet(mapId, false);\r\n\r\n setIsFetchEnabled(false);\r\n\r\n window[`${mapId}_areGeometriesUpdated`] = true;\r\n }\r\n }, [mapId, maps, onGeometryChangedStatusSet]);\r\n\r\n // filtering geometries by layout\r\n useEffect(() => {\r\n if (window[`${mapId}_areGeometriesUpdated`] && fetchedGeometries !== null) {\r\n\r\n showSpinner();\r\n\r\n const {\r\n layoutGeometries,\r\n geometryMap,\r\n territoryMap\r\n } = getLayoutGeometries(fetchedGeometries, jsonStat, layout, dimensionValueTree, labelFormat, isPointData, latAttributeId, longAttributeId, t);\r\n\r\n setGeometries(layoutGeometries);\r\n setGeometryMap(geometryMap);\r\n setTerritoryMap(territoryMap);\r\n\r\n setFilteredGeometries(null);\r\n\r\n if (!isMultiViewer) {\r\n const newDetailLevels = getDetailLevelsFromGeometries(layoutGeometries, showSingleGeometry, levelsOrder, t);\r\n\r\n setInternalDetailLevels(newDetailLevels);\r\n setInternalDetailLevel(prevDetailLevel => (prevDetailLevel !== null && newDetailLevels.map(({value}) => value).includes(prevDetailLevel))\r\n ? prevDetailLevel\r\n : newDetailLevels[0]?.value >= 0\r\n ? newDetailLevels[0].value\r\n : null\r\n );\r\n }\r\n\r\n if (onDataSelect && !window[`${mapId}_isFirstRender`]) {\r\n onDataSelect(null);\r\n }\r\n }\r\n }, [mapId, isMultiViewer, fetchedGeometries, jsonStat, layout, dimensionValueTree, labelFormat, isPointData, latAttributeId, longAttributeId, t, showSingleGeometry, onDataSelect, showSpinner, levelsOrder]);\r\n\r\n // filtering geometries (already filtered by layout) by detail level\r\n useEffect(() => {\r\n if (mapId && (geometries || []).length > 0) {\r\n\r\n showSpinner();\r\n\r\n const newFilteredGeometries = geometries.filter(({level}) => isMultiViewer || level === internalDetailLevel)\r\n setFilteredGeometries(newFilteredGeometries);\r\n\r\n window[`${mapId}_areGeometriesChanged`] = true;\r\n }\r\n }, [mapId, isMultiViewer, geometries, internalDetailLevel, showSpinner]);\r\n\r\n // handle external geometries filter\r\n useEffect(() => {\r\n if (mapId && territoryMap && isLayerRendered && filteredTerritoryIds !== undefined) {\r\n let geometryIds;\r\n if (filteredTerritoryIds === null) {\r\n geometryIds = null;\r\n } else {\r\n geometryIds = (filteredTerritoryIds || []).map(territoryId => territoryMap[territoryId]).filter(el => el);\r\n }\r\n window.LMap.setDataFilter(mapId, geometryIds);\r\n }\r\n }, [mapId, territoryMap, isLayerRendered, filteredTerritoryIds]);\r\n\r\n // handle map default settings\r\n useEffect(() => {\r\n setMapDefaultSettings(prevDefaultSettings => prevDefaultSettings === null\r\n ? (defaultSettings || {})\r\n : prevDefaultSettings\r\n );\r\n }, [defaultSettings]);\r\n\r\n // handle map settings\r\n useEffect(() => {\r\n setMapSettings(prevSettings => isSettingsChanged(settings, prevSettings)\r\n ? settings\r\n : prevSettings\r\n );\r\n }, [settings]);\r\n\r\n // add or update layer with filtered geometries\r\n useEffect(() => {\r\n if (filteredGeometries !== null && mapSettings !== null && mapDefaultSettings !== null) {\r\n\r\n let newSettings = {};\r\n if (window[`${mapId}_isFirstRender`]) {\r\n newSettings = {...newSettings, ...mapDefaultSettings};\r\n }\r\n newSettings = {...newSettings, ...mapSettings};\r\n\r\n setTimeout(\r\n () => {\r\n if (!window[`${mapId}_areGeometriesChanged`]) {\r\n window.LMap.updateLayerSettings(mapId, newSettings);\r\n\r\n } else {\r\n setIsLayerRendered(false);\r\n const layerOptions = {\r\n srid: `EPSG:${srid || 4326}`,\r\n useGeoJSON: isMultiViewerTheme,\r\n settings: newSettings,\r\n onDataRender: () => {\r\n setTimeout(() => {\r\n window[`${mapId}_isFirstRender`] = false;\r\n hideSpinner();\r\n setIsLayerRendered(true);\r\n }, 500);\r\n },\r\n borderColor: geometryBorderColor,\r\n valueFormatter: val => getFormattedValue(val, decimalSeparator, decimalPlaces, \"\"),\r\n disableSettings: disableSettings,\r\n dataInfoDuration: 1000,\r\n onDataClick: (id, isActive, isSelected) => {\r\n if (id) {\r\n if (onDataClick) {\r\n onDataClick(geometryMap[id], isActive, isSelected);\r\n }\r\n } else {\r\n if (onDataClick) {\r\n onDataClick(null, isActive, isSelected);\r\n }\r\n }\r\n },\r\n zoomToClickedData: !disableZoomToClickedData,\r\n onDataSelect: selected => {\r\n if (onDataSelect) {\r\n const territoryDimValues = [];\r\n (selected || []).forEach(geomId => territoryDimValues.push(geometryMap[geomId].territoryId));\r\n if (territoryDimValues.length > 0) {\r\n onDataSelect(territoryDimValues);\r\n } else {\r\n onDataSelect(null);\r\n }\r\n }\r\n },\r\n onDataTooltipClick: id => {\r\n if (geometryMap[id].hasAttributes) {\r\n setGeometryId(id);\r\n }\r\n },\r\n onLocationChanged: (extent, zoomLevel) => {\r\n // console.log(\"onLocationChanged\") ;\r\n // console.log('extent : ', extent);\r\n // console.log('zoomLevel : ', zoomLevel);\r\n }\r\n };\r\n window.LMap.updateLayer(mapId, filteredGeometries, legendTitle, layerOptions);\r\n\r\n if (setSettings) {\r\n const settings = window.LMap.getSettings(mapId);\r\n if (isSettingsChanged(newSettings, settings)) {\r\n callSetSettings(settings, setSettings);\r\n }\r\n }\r\n\r\n window[`${mapId}_areGeometriesChanged`] = false;\r\n }\r\n },\r\n 0\r\n );\r\n }\r\n }, [mapId, isMultiViewerTheme, srid, filteredGeometries, geometryMap, mapSettings, mapDefaultSettings, geometryBorderColor, decimalPlaces, decimalSeparator, disableZoomToClickedData, onDataClick, onDataSelect, disableSettings, legendTitle, setSettings, hideSpinner]);\r\n\r\n // handle zoom to data\r\n useEffect(() => {\r\n if (isLayerRendered && filteredGeometries !== null) {\r\n const geometryToZoom = (filteredGeometries.find(({id}) => id === selectedTerritoryId) || {}).identifier || null;\r\n window.LMap.zoomToData(mapId, geometryToZoom);\r\n }\r\n }, [mapId, isLayerRendered, filteredGeometries, selectedTerritoryId]);\r\n\r\n if (!mapId) {\r\n return ;\r\n }\r\n\r\n const territoryDim = layout?.territoryDim;\r\n\r\n const territoryDimMissing = !territoryDim || !jsonStat.dimension[territoryDim];\r\n const fetchingGeometriesError = maps[mapId]?.error;\r\n const geometriesMissing = filteredGeometries !== null && filteredGeometries.length === 0;\r\n const detailLevelMissing = isPointData\r\n ? false\r\n : isMultiViewer\r\n ? !isValidIntegerInInclusiveRange(detailLevel)\r\n : (internalDetailLevels !== null && internalDetailLevels.length === 0);\r\n\r\n const isMapUnavailable = territoryDimMissing || fetchingGeometriesError || geometriesMissing || detailLevelMissing;\r\n\r\n const isDetailLevelSelectorVisible = !isMultiViewer &&\r\n (internalDetailLevels || []).length > 0 &&\r\n internalDetailLevel !== null &&\r\n internalDetailLevel >= 0;\r\n\r\n let unavailableMapErrorText;\r\n if (isMapUnavailable) {\r\n showSpinner();\r\n if (territoryDimMissing) {\r\n console.debug(\"missing territory dimension\");\r\n unavailableMapErrorText = t(\"components.map.noTerritoryDimension\");\r\n } else if (fetchingGeometriesError) {\r\n unavailableMapErrorText = t(\"components.map.fetchingGeometriesError\");\r\n } else if (geometriesMissing) {\r\n unavailableMapErrorText = t(\"components.map.noDataToDisplay\");\r\n } else if (detailLevelMissing) {\r\n console.debug(\"missing detail level\");\r\n unavailableMapErrorText = t(\"components.map.noDetailLevel\");\r\n } else {\r\n unavailableMapErrorText = null;\r\n }\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n : isFetchEnabled\r\n ? \r\n : null\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n {(internalDetailLevels || []).length > 0 && (\r\n \r\n {\r\n const dl = ev.target.value;\r\n setInternalDetailLevel(dl);\r\n if (onDetailLevelChange) {\r\n onDetailLevelChange(dl);\r\n }\r\n }}\r\n disabled={disableDetailLevelSelector || (internalDetailLevels || []).length === 1}\r\n >\r\n {(internalDetailLevels || []).map((val, idx) =>\r\n {val.label}\r\n )}\r\n \r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n\r\n setGeometryId(null)}\r\n >\r\n setGeometryId(null)}>\r\n {t(\"components.map.dialogs.attributes.title\")}\r\n \r\n \r\n \r\n {geometryMap?.[geometryId]?.obsAttributes && (\r\n \r\n \r\n \r\n {t(\"components.map.dialogs.attributes.content.obsAttributes.title\")}\r\n \r\n {geometryMap[geometryId].obsAttributes.map((attribute, idx) =>\r\n \r\n {getAttributeLabel(attribute, labelFormat)}: {getAttributeValueLabel(attribute, labelFormat)}\r\n \r\n )}\r\n \r\n \r\n )}\r\n {geometryMap?.[geometryId]?.dimAttributes && (\r\n \r\n \r\n \r\n {t(\"components.map.dialogs.attributes.content.dimAttributes.title\")}\r\n \r\n {geometryMap[geometryId].dimAttributes.map((attribute, idx) =>\r\n \r\n {getAttributeLabel(attribute, labelFormat)}: {getAttributeValueLabel(attribute, labelFormat)}\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n onWarningHide(mapId)}\r\n >\r\n onWarningHide(mapId)}>\r\n {t(\"components.map.dialogs.noGeometry.title\")}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTheme,\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(Map);\r\n","import React from \"react\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardHeader from \"@material-ui/core/CardHeader\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {getAttributeLabel, getAttributeValueLabel} from \"../../utils/jsonStat\";\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n cardTitle: {\r\n fontSize: 17,\r\n fontWeight: \"bold\"\r\n },\r\n datasetAttributesCard: {\r\n background: \"#F5F5F5\"\r\n },\r\n datasetAttributes: {\r\n margin: 0,\r\n padding: \"0 16px 16px\"\r\n },\r\n seriesAttributes: {\r\n margin: 0,\r\n padding: \"0 0 16px\"\r\n },\r\n attributeGroup: {\r\n margin: 0,\r\n padding: \"0 16px\"\r\n }\r\n});\r\n\r\nconst Attribute = ({attribute, labelFormat, list}) =>\r\n \r\n {`${list ? \"- \" : \"\"}${getAttributeLabel(attribute, labelFormat)}: ${getAttributeValueLabel(attribute, labelFormat)}`}\r\n ;\r\n\r\nfunction AttributeList(props) {\r\n\r\n const {\r\n classes,\r\n datasetAttributes,\r\n seriesAttributes,\r\n labelFormat\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n return (\r\n
    \r\n {datasetAttributes.length > 0 && (\r\n \r\n \r\n {t(\"components.attributeList.datasetInformation.title\")}:\r\n
    \r\n }\r\n disableTypography\r\n />\r\n \r\n {datasetAttributes.map((attribute, idx) =>\r\n \r\n )}\r\n \r\n \r\n )}\r\n {seriesAttributes.length > 0 && (\r\n \r\n \r\n {t(\"components.attributeList.seriesInformation.title\")}:\r\n \r\n }\r\n disableTypography\r\n />\r\n \r\n {seriesAttributes.map(({dimensions, attributes}, idx) =>\r\n \r\n \r\n {dimensions.map(({id, value}, idx) =>\r\n
    \r\n {id}: {value}{idx < dimensions.length - 1 ? \",\" : \"\"}\r\n
    \r\n )}\r\n
    \r\n {attributes.map((attribute, idx) =>\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n
    \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default withStyles(styles)(AttributeList)","import React from \"react\";\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\nconst AttributeIcon = props =>\r\n \r\n \r\n \r\n (*)\r\n \r\n \r\n ;\r\n\r\nexport default AttributeIcon;","import React from 'react';\r\n\r\nclass MissingModuleErrorBoundary extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {hasError: false};\r\n }\r\n\r\n componentDidCatch(error, errorInfo) {\r\n console.log(error, errorInfo);\r\n this.setState({hasError: true});\r\n }\r\n\r\n render() {\r\n return this.state.hasError\r\n ? null\r\n : this.props.children;\r\n }\r\n}\r\n\r\nexport default MissingModuleErrorBoundary;","import React, {lazy, Suspense, useEffect, useState} from \"react\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport ErrorBoundary from \"./ErrorBoundary\";\r\n\r\nconst ModuleLoader = ({\r\n t,\r\n id,\r\n component,\r\n fallback = \"\",\r\n ...props\r\n }) => {\r\n\r\n const [Module, setModule] = useState(null);\r\n\r\n useEffect(() => {\r\n const Module = lazy(() => import(`../../modules/${id}/${component}`));\r\n setModule(Module);\r\n }, [id, component]);\r\n\r\n return Module && (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default withTranslation()(ModuleLoader);","import React from \"react\";\r\nimport ModuleLoader from \"../module-loader\";\r\n\r\nconst ModuleMenuItemPlaceholder = ({\r\n module\r\n }) => (\r\n \r\n);\r\n\r\nexport default ModuleMenuItemPlaceholder;","import React, {Fragment, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport ButtonSelect from \"../button-select\";\r\nimport GetAppIcon from \"@material-ui/icons/GetApp\";\r\nimport {\r\n DOWNLOAD_FORMAT_CHART_IMAGE,\r\n DOWNLOAD_FORMAT_CHART_PDF,\r\n DOWNLOAD_FORMAT_CSV,\r\n DOWNLOAD_FORMAT_EXCEL,\r\n DOWNLOAD_FORMAT_MAP_IMAGE,\r\n DOWNLOAD_FORMAT_MAP_PDF,\r\n DOWNLOAD_FORMAT_SHAPEFILES,\r\n DOWNLOAD_REFERENCE_METADATA,\r\n DOWNLOAD_VIEWER_CHART,\r\n DOWNLOAD_VIEWER_MAP,\r\n DOWNLOAD_VIEWER_TABLE,\r\n downloadFormats,\r\n exportViewerCanvas,\r\n isDownloadFormatValid\r\n} from \"../../utils/download\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport ExportForm from \"./ExportForm\";\r\nimport BottomNavigation from \"@material-ui/core/BottomNavigation\";\r\nimport BottomNavigationAction from \"@material-ui/core/BottomNavigationAction\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {connect} from \"react-redux\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport {getTextWidth} from \"../../utils/style\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {\r\n LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH,\r\n LABEL_FORMAT_SELECTOR_LABEL_FORMAT_ID,\r\n LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME\r\n} from \"../label-format-selector/constants\";\r\nimport ModuleMenuItemPlaceholder from \"../module-menu-item-placeholder\";\r\nimport \"./style.css\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n divider: {\r\n width: \"100%\",\r\n color: \"gray\",\r\n fontStyle: \"italic\",\r\n fontSize: 14\r\n },\r\n exportLabel: {\r\n padding: \"12px 12px 12px 0\"\r\n },\r\n alert: {\r\n marginBottom: 12\r\n },\r\n field: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n fieldLastRow: {\r\n marginBottom: 0\r\n }\r\n});\r\n\r\nconst getFilterCombinationCount = (jsonStat, filters) => {\r\n return (jsonStat && filters)\r\n ? filters.reduce((acc, dim) => acc * jsonStat.size[jsonStat.id.indexOf(dim)], 1)\r\n : 0\r\n};\r\n\r\nconst COLS_SEPARATOR_COMMA = \",\";\r\nconst COLS_SEPARATOR_SEMICOLON = \";\";\r\nconst COLS_SEPARATOR_PIPE = \"|\";\r\nconst COLS_SEPARATOR_TAB = \"\\t\";\r\n\r\nconst getColsSeparators = t => ([\r\n {\r\n value: COLS_SEPARATOR_COMMA,\r\n label: t ? t(\"scenes.dataViewer.dialogs.exportCsv.colsSeparator.values.comma\") : \"Comma (,)\"\r\n },\r\n {\r\n value: COLS_SEPARATOR_SEMICOLON,\r\n label: t ? t(\"scenes.dataViewer.dialogs.exportCsv.colsSeparator.values.semicolon\") : \"Semicolon (;)\"\r\n },\r\n {\r\n value: COLS_SEPARATOR_PIPE,\r\n label: t ? t(\"scenes.dataViewer.dialogs.exportCsv.colsSeparator.values.pipe\") : \"Pipe (|)\"\r\n },\r\n {\r\n value: COLS_SEPARATOR_TAB,\r\n label: t ? t(\"scenes.dataViewer.dialogs.exportCsv.colsSeparator.values.tab\") : \"Tab ( )\"\r\n }\r\n]);\r\n\r\nconst getInitialCsvParams = csvSeparator => ({\r\n labelFormat: LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH,\r\n colsSeparator: (csvSeparator && getColsSeparators().map(({value}) => value).includes(csvSeparator))\r\n ? csvSeparator\r\n : COLS_SEPARATOR_COMMA,\r\n textQualifier: \"\"\r\n});\r\n\r\nconst getClonedCanvas = $oldCanvas => {\r\n const oldCanvas = $oldCanvas.get(0);\r\n\r\n // create a new canvas\r\n const newCanvas = document.createElement(\"canvas\");\r\n const context = newCanvas.getContext(\"2d\");\r\n\r\n // set dimensions\r\n newCanvas.width = oldCanvas.width;\r\n newCanvas.height = oldCanvas.height;\r\n newCanvas.style.width = oldCanvas.offsetWidth + 'px';\r\n newCanvas.style.height = oldCanvas.offsetHeight + 'px';\r\n\r\n // apply the old canvas to the new one\r\n context.drawImage(oldCanvas, 0, 0);\r\n\r\n // return the new canvas\r\n return $(newCanvas);\r\n};\r\n\r\nconst ExportButton = ({\r\n classes,\r\n t,\r\n exportConfig,\r\n exportSettings,\r\n modulesConfig,\r\n icon,\r\n formats: nodeFormats,\r\n jsonStat,\r\n viewerIdx,\r\n isTableVisible,\r\n isMapVisible,\r\n isChartVisible,\r\n tableLayout,\r\n mapContainerId,\r\n mapId,\r\n mapLayout,\r\n mapSettings,\r\n chartContainerId,\r\n chartId,\r\n chartLayout,\r\n chartSettings,\r\n labelFormat,\r\n datasetTitle,\r\n submitDownload,\r\n showAsBottomNavigation = false,\r\n shapefilesUrl,\r\n submitMetadataDownload,\r\n disabled,\r\n ...props\r\n }) => {\r\n\r\n const [exportChartFormat, setExportChartFormat] = useState(null);\r\n const [exportMapFormat, setExportMapFormat] = useState(null);\r\n const [tempSettings, setTmpSettings] = useState(null);\r\n\r\n const [isExportExcelVisible, setExportExcelVisibility] = useState(false);\r\n const [singleSheet, setSingleSheet] = useState(true);\r\n\r\n const [isExportCsvVisible, setExportCsvVisibility] = useState(false);\r\n const [filteredDataset, setFilteredDataset] = useState(true);\r\n const [csvParams, setCsvParams] = useState(getInitialCsvParams(exportConfig?.csvSeparator));\r\n\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n const handleExportClick = (format, extension) => {\r\n if (format) {\r\n if (format === DOWNLOAD_FORMAT_MAP_IMAGE || format === DOWNLOAD_FORMAT_MAP_PDF) {\r\n handleExportMapShow(format, extension);\r\n } else if (format === DOWNLOAD_FORMAT_CHART_IMAGE || format === DOWNLOAD_FORMAT_CHART_PDF) {\r\n handleExportChartShow(format, extension);\r\n } else if (format === DOWNLOAD_FORMAT_SHAPEFILES) {\r\n window.open(shapefilesUrl);\r\n } else if (format === DOWNLOAD_FORMAT_EXCEL && getFilterCombinationCount(jsonStat, tableLayout?.filters) > 1) {\r\n handleExportExcelShow();\r\n } else if (format === DOWNLOAD_FORMAT_CSV) {\r\n handleExportCsvShow();\r\n } else if (format === DOWNLOAD_REFERENCE_METADATA) {\r\n submitMetadataDownload();\r\n } else {\r\n submitDownload(format, extension);\r\n }\r\n setAnchorEl(null);\r\n }\r\n };\r\n\r\n const getDefaultSettings = (format, extension, showLegend) => ({\r\n showTitle: true,\r\n title: datasetTitle,\r\n showFilters: true,\r\n extension: extension,\r\n isLegendVisible: showLegend,\r\n showLegend: showLegend,\r\n showDate: (format === DOWNLOAD_FORMAT_MAP_PDF || format === DOWNLOAD_FORMAT_CHART_PDF) ? true : undefined,\r\n sheetOrientation: format === DOWNLOAD_FORMAT_MAP_PDF\r\n ? exportSettings.DefaultMapSheetOrientation\r\n : exportSettings.DefaultGraphSheetOrientation,\r\n logoURL: exportSettings.logoURL\r\n });\r\n\r\n const handleExportChartShow = (format, extension) => {\r\n setTmpSettings(getDefaultSettings(format, extension));\r\n setExportChartFormat(format);\r\n };\r\n\r\n const handleExportMapShow = (format, extension) => {\r\n setTmpSettings(getDefaultSettings(format, extension, !mapSettings?.isLegendCollapsed));\r\n setExportMapFormat(format);\r\n };\r\n\r\n const handleExportChartOrMapHide = () => {\r\n setExportChartFormat(null);\r\n setExportMapFormat(null);\r\n setTmpSettings(null);\r\n };\r\n\r\n const handleExportChartOrMapSubmit = () => {\r\n\r\n const {\r\n showTitle,\r\n title,\r\n showFilters,\r\n extension,\r\n showLegend,\r\n showDate,\r\n sheetOrientation,\r\n logoURL\r\n } = tempSettings;\r\n\r\n if (exportChartFormat) {\r\n\r\n const $chartCanvas = $(`#${chartId}`);\r\n const $chartCanvasClone = getClonedCanvas($chartCanvas);\r\n const $chartContainer = $(`#${chartContainerId}`);\r\n\r\n $chartContainer.before($chartCanvasClone);\r\n $chartContainer.css({visibility: \"hidden\"});\r\n $chartContainer.addClass(exportChartFormat === DOWNLOAD_FORMAT_CHART_PDF ? \"export-chart--pdf\" : \"\");\r\n\r\n window.ChartJs[chartId].options.animation.duration = 0;\r\n window.ChartJs.setChartStyle(\r\n chartId,\r\n exportChartFormat === DOWNLOAD_FORMAT_CHART_PDF ? 48 : undefined,\r\n exportChartFormat === DOWNLOAD_FORMAT_CHART_PDF ? 3 : undefined,\r\n exportChartFormat === DOWNLOAD_FORMAT_CHART_PDF ? 100 : undefined,\r\n exportChartFormat === DOWNLOAD_FORMAT_CHART_PDF ? 50 : undefined,\r\n exportChartFormat === DOWNLOAD_FORMAT_CHART_PDF,\r\n exportChartFormat === DOWNLOAD_FORMAT_CHART_PDF ? 8 : undefined,\r\n exportChartFormat === DOWNLOAD_FORMAT_CHART_PDF ? 16 : undefined,\r\n exportChartFormat === DOWNLOAD_FORMAT_CHART_PDF ? 4 : undefined\r\n );\r\n\r\n setTimeout(\r\n () => {\r\n exportViewerCanvas(\r\n $chartCanvas.get(0),\r\n $chartContainer.width(),\r\n $chartContainer.height(),\r\n exportChartFormat,\r\n `${datasetTitle}.${extension}`,\r\n showTitle === true ? title : null,\r\n showFilters === true ? chartLayout : null,\r\n showFilters === true ? jsonStat : null,\r\n showDate === true ? showDate : false,\r\n sheetOrientation,\r\n logoURL,\r\n labelFormat,\r\n t,\r\n () => {\r\n $chartContainer.removeClass(\"export-chart--pdf\");\r\n\r\n window.ChartJs.setChartStyle(chartId);\r\n window.ChartJs[chartId].options.animation.duration = 1000;\r\n\r\n setTimeout(\r\n () => {\r\n $chartContainer.css({visibility: \"visible\"});\r\n $chartCanvasClone.remove();\r\n },\r\n 100\r\n );\r\n }\r\n );\r\n\r\n setExportChartFormat(null);\r\n setExportMapFormat(null);\r\n setTmpSettings(null);\r\n },\r\n 100\r\n );\r\n\r\n } else if (exportMapFormat) {\r\n\r\n const $mapContainer = $(`#${mapContainerId}`);\r\n\r\n window.LMap.getCanvas(\r\n mapId,\r\n canvas => {\r\n exportViewerCanvas(\r\n canvas,\r\n $mapContainer.width(),\r\n $mapContainer.height(),\r\n exportMapFormat,\r\n `${datasetTitle}.${extension}`,\r\n showTitle === true ? title : null,\r\n showFilters === true ? mapLayout : null,\r\n showFilters === true ? jsonStat : null,\r\n showDate === true ? showDate : false,\r\n sheetOrientation,\r\n logoURL,\r\n labelFormat,\r\n t\r\n );\r\n },\r\n null,\r\n !showLegend\r\n );\r\n\r\n setExportChartFormat(null);\r\n setExportMapFormat(null);\r\n setTmpSettings(null);\r\n }\r\n };\r\n\r\n const handleExportExcelShow = () => {\r\n setSingleSheet(true);\r\n setExportExcelVisibility(true);\r\n };\r\n\r\n const handleExportExcelHide = () => {\r\n setExportExcelVisibility(false);\r\n };\r\n\r\n const handleExportExcelSubmit = () => {\r\n const additionParams = {\r\n exportOnlyCurrentView: singleSheet\r\n };\r\n submitDownload(DOWNLOAD_FORMAT_EXCEL, downloadFormats()[DOWNLOAD_FORMAT_EXCEL].extension, additionParams);\r\n handleExportExcelHide();\r\n };\r\n\r\n const handleExportCsvShow = () => {\r\n setFilteredDataset(true);\r\n setExportCsvVisibility(true);\r\n setCsvParams(getInitialCsvParams(exportConfig?.csvSeparator));\r\n };\r\n\r\n const handleExportCsvHide = () => {\r\n setExportCsvVisibility(false);\r\n };\r\n\r\n const handleExportCsvSubmit = () => {\r\n const additionParams = {\r\n exportOnlyCurrentView: filteredDataset,\r\n ...csvParams\r\n };\r\n submitDownload(DOWNLOAD_FORMAT_CSV, downloadFormats()[DOWNLOAD_FORMAT_CSV].extension, additionParams);\r\n handleExportCsvHide();\r\n };\r\n\r\n const information = [];\r\n\r\n if (submitMetadataDownload || (modulesConfig.placeholders?.[\"export-button-menu\"] || []).length > 0) {\r\n information.push({\r\n label: t(\"components.exportButton.sections.information\"),\r\n className: classes.divider\r\n });\r\n if (submitMetadataDownload) {\r\n information.push({\r\n label: t(\"commons.downloadFormat.referencemetadata\"),\r\n \"data-value\": {format: DOWNLOAD_REFERENCE_METADATA, extension: \"\"},\r\n format: DOWNLOAD_REFERENCE_METADATA,\r\n extension: \"\"\r\n });\r\n }\r\n }\r\n\r\n const formats = [];\r\n\r\n const formatsTable = (nodeFormats || []).filter(format => isDownloadFormatValid(format) && (downloadFormats()[format].viewers || []).includes(DOWNLOAD_VIEWER_TABLE));\r\n if (isTableVisible && formatsTable.length > 0) {\r\n formats.push({\r\n label: t(\"components.exportButton.sections.table\"),\r\n className: classes.divider\r\n });\r\n formatsTable.forEach(format => {\r\n const {label, extension} = downloadFormats(t)[format];\r\n formats.push({\r\n label: label,\r\n \"data-value\": {format, extension},\r\n format: format,\r\n extension: extension\r\n });\r\n });\r\n }\r\n\r\n const formatsMap = (nodeFormats || []).filter(format => isDownloadFormatValid(format) && (downloadFormats()[format].viewers || []).includes(DOWNLOAD_VIEWER_MAP));\r\n if (isMapVisible && formatsMap.length > 0) {\r\n formats.push({\r\n label: t(\"components.exportButton.sections.map\"),\r\n className: classes.divider\r\n });\r\n formatsMap.forEach(format => {\r\n const {label, extension} = downloadFormats(t)[format];\r\n formats.push({\r\n label: label,\r\n \"data-value\": {format, extension},\r\n format: format,\r\n extension: extension\r\n });\r\n });\r\n if (shapefilesUrl) {\r\n formats.push({\r\n label: t(\"components.exportButton.shapefiles\"),\r\n \"data-value\": {format: DOWNLOAD_FORMAT_SHAPEFILES},\r\n format: DOWNLOAD_FORMAT_SHAPEFILES\r\n });\r\n }\r\n }\r\n\r\n const formatsChart = (nodeFormats || []).filter(format => isDownloadFormatValid(format) && (downloadFormats()[format].viewers || []).includes(DOWNLOAD_VIEWER_CHART));\r\n if (isChartVisible && formatsChart.length > 0) {\r\n formats.push({\r\n label: t(\"components.exportButton.sections.chart\"),\r\n className: classes.divider\r\n });\r\n formatsChart.forEach(format => {\r\n const {label, extension} = downloadFormats(t)[format];\r\n formats.push({\r\n label: label,\r\n \"data-value\": {format, extension},\r\n format: format,\r\n extension: extension\r\n });\r\n });\r\n }\r\n\r\n const formatsOthers = (nodeFormats || []).filter(format => isDownloadFormatValid(format) && !downloadFormats()[format].viewers);\r\n if (formatsOthers.length > 0) {\r\n formats.push({\r\n label: t(\"components.exportButton.sections.others\"),\r\n className: classes.divider\r\n });\r\n formatsOthers.forEach(format => {\r\n const {label, extension} = downloadFormats(t)[format];\r\n formats.push({\r\n label: label,\r\n \"data-value\": {format, extension},\r\n format: format,\r\n extension: extension\r\n });\r\n });\r\n }\r\n\r\n if (formats.length === 0) {\r\n return ;\r\n }\r\n\r\n const getButtonSelectItem = (format, idx) => (\r\n \r\n {format.label}\r\n \r\n );\r\n\r\n const getMenuItem = (label, format, extension, idx) => format\r\n ? (\r\n handleExportClick(format, extension)}\r\n >\r\n {label}\r\n \r\n )\r\n : (\r\n \r\n {label}\r\n \r\n );\r\n\r\n return (\r\n \r\n {!showAsBottomNavigation\r\n ? (\r\n }\r\n ariaLabel={t(\"components.exportButton.export.ariaLabel\")}\r\n tooltip={t(\"components.exportButton.export.tooltip\")}\r\n color=\"default\"\r\n onChange={({format, extension}) => handleExportClick(format, extension)}\r\n disabled={disabled}\r\n >\r\n {[\r\n ...information.map((format, idx) => getButtonSelectItem(format, `information-${idx}`)),\r\n ...(modulesConfig.placeholders?.[\"export-button-menu\"] || []).map((module, idx) => (\r\n \r\n )),\r\n ...formats.map((format, idx) => getButtonSelectItem(format, `format-${idx}`))\r\n ]}\r\n \r\n )\r\n : (\r\n \r\n setAnchorEl(currentTarget)}\r\n showLabels\r\n >\r\n }\r\n role={props.role || undefined}\r\n disabled={disabled}\r\n />\r\n \r\n\r\n setAnchorEl(null)}\r\n >\r\n {[\r\n ...information.map(({label, format, extension}, idx) => getMenuItem(label, format, extension, `information-${idx}`)),\r\n ...(modulesConfig.placeholders?.[\"export-button-menu\"] || []).map((module, idx) => (\r\n setAnchorEl(null)}\r\n >\r\n \r\n \r\n )),\r\n ...formats.map(({label, format, extension}, idx) => getMenuItem(label, format, extension, `format-${idx}`))\r\n ]}\r\n \r\n \r\n )\r\n }\r\n\r\n \r\n \r\n {(exportChartFormat === DOWNLOAD_FORMAT_CHART_IMAGE || exportMapFormat === DOWNLOAD_FORMAT_MAP_IMAGE)\r\n ? t(\"components.exportButton.exportImage.title\")\r\n : (exportChartFormat === DOWNLOAD_FORMAT_CHART_PDF || exportMapFormat === DOWNLOAD_FORMAT_MAP_PDF)\r\n ? t(\"components.exportButton.exportPdf.title\")\r\n : \"\"\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.dialogs.exportExcel.title\")}\r\n \r\n \r\n {singleSheet === false && (getFilterCombinationCount(jsonStat, tableLayout?.filters) > exportConfig?.maxExcelSheets) && (\r\n \r\n {t(\"scenes.dataViewer.dialogs.exportExcel.warning\", {sheetsLimit: exportConfig?.maxExcelSheets})}\r\n \r\n )}\r\n {(() => {\r\n const label = t(\"scenes.dataViewer.dialogs.exportExcel.export.label\") + \":\";\r\n\r\n const getTextWidthEl = $(``).css({visibility: 'hidden'}).appendTo('body').get(0);\r\n const labelWidth = getTextWidth(label, getTextWidthEl);\r\n $(getTextWidthEl).remove();\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n setSingleSheet(ev.target.value)}\r\n SelectDisplayProps={{\"aria-haspopup\": true}}\r\n >\r\n {t(\"scenes.dataViewer.dialogs.exportExcel.export.values.singleSheet\")}\r\n {t(\"scenes.dataViewer.dialogs.exportExcel.export.values.multiSheet\")}\r\n \r\n \r\n )\r\n })()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.dialogs.exportCsv.title\")}\r\n \r\n \r\n {(() => {\r\n const layoutForCsv = viewerIdx === 0\r\n ? tableLayout\r\n : viewerIdx === 1\r\n ? mapLayout\r\n : chartLayout;\r\n\r\n return jsonStat && (\r\n \r\n {(\r\n getFilterCombinationCount(jsonStat, layoutForCsv?.filters) > 1 ||\r\n (layoutForCsv?.primaryDim?.[0] !== undefined && layoutForCsv.primaryDimValues.length < jsonStat.size[jsonStat.id.indexOf(layoutForCsv.primaryDim[0])]) ||\r\n (layoutForCsv?.secondaryDim?.[0] !== undefined && layoutForCsv.secondaryDimValues.length < jsonStat.size[jsonStat.id.indexOf(layoutForCsv.secondaryDim[0])])\r\n ) && (\r\n \r\n \r\n setFilteredDataset(ev.target.value)}\r\n variant=\"outlined\"\r\n SelectProps={{\"aria-haspopup\": true}}\r\n >\r\n {t(\"scenes.dataViewer.dialogs.exportCsv.export.values.filtered\")}\r\n {t(\"scenes.dataViewer.dialogs.exportCsv.export.values.full\")}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n setCsvParams({...csvParams, labelFormat: ev.target.value})}\r\n variant=\"outlined\"\r\n SelectProps={{\"aria-haspopup\": true}}\r\n >\r\n {t(\"scenes.dataViewer.dialogs.exportCsv.labelFormat.values.both\")}\r\n {t(\"scenes.dataViewer.dialogs.exportCsv.labelFormat.values.name\")}\r\n {t(\"scenes.dataViewer.dialogs.exportCsv.labelFormat.values.id\")}\r\n \r\n \r\n \r\n \r\n \r\n setCsvParams({...csvParams, colsSeparator: ev.target.value})}\r\n variant=\"outlined\"\r\n SelectProps={{\"aria-haspopup\": true}}\r\n >\r\n {getColsSeparators(t).map(({value, label}, idx) => (\r\n {label}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n (ev.target.value || \"\").length <= 1\r\n ? setCsvParams({...csvParams, textQualifier: ev.target.value})\r\n : null\r\n }\r\n variant=\"outlined\"\r\n error={csvParams?.colsSeparator === csvParams?.textQualifier}\r\n helperText={csvParams?.colsSeparator === csvParams?.textQualifier\r\n ? t(\"scenes.dataViewer.dialogs.exportCsv.textQualifier.helperText\")\r\n : null\r\n }\r\n />\r\n \r\n \r\n \r\n )\r\n })()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default compose(\r\n withTranslation(),\r\n withStyles(styles),\r\n connect(state => ({\r\n exportConfig: state.hub.hub.exportConfig,\r\n exportSettings: state.appConfig.exportSettings,\r\n modulesConfig: state.app.modulesConfig\r\n }))\r\n)(ExportButton);","import React, {useMemo} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {getDimensionAttributeMap, getFiltersValueInfo} from \"../../utils/jsonStat\";\r\nimport DatasetFilterAttributeIcon from \"../dataset-filter-attribute-icon\";\r\n\r\nconst styles = theme => ({\r\n filters: {\r\n fontSize: 14\r\n },\r\n filter: {\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\"\r\n },\r\n filterElement: {\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\"\r\n }\r\n});\r\n\r\nconst DatasetStaticFilters = ({\r\n t,\r\n classes,\r\n jsonStat,\r\n layout,\r\n labelFormat,\r\n isDimensionAllowed\r\n }) => {\r\n\r\n const dimAttributeMap = useMemo(() => getDimensionAttributeMap(jsonStat, t), [jsonStat, t]);\r\n\r\n const filtersValueInfo = useMemo(() => {\r\n if (!layout || !jsonStat) {\r\n return {};\r\n } else {\r\n const filterDims = layout.filters.filter(dim => !isDimensionAllowed || isDimensionAllowed(dim));\r\n return getFiltersValueInfo(filterDims, layout.filtersValue, jsonStat, labelFormat, t);\r\n }\r\n }, [layout, isDimensionAllowed, jsonStat, labelFormat, t]);\r\n\r\n return (\r\n
    \r\n {(filtersValueInfo?.values || []).map(({dim, dimLabel, value, valueLabel}, idx, arr) => (\r\n \r\n \r\n {dimLabel}: \r\n \r\n \r\n {valueLabel}\r\n \r\n \r\n \r\n \r\n \r\n {idx < arr.length - 1 ? \",\" : \"\"} \r\n \r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default compose(\r\n withTranslation(),\r\n withStyles(styles)\r\n)(DatasetStaticFilters);","import React, {Fragment, useCallback, useEffect, useMemo, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport withTheme from \"@material-ui/core/styles/withTheme\";\r\nimport {\r\n DASHBOARD_ELEM_ENABLE_FILTERS_KEY,\r\n DASHBOARD_ELEM_FILTER_DIMENSION_KEY,\r\n DASHBOARD_ELEM_SHOW_TITLE_KEY,\r\n DASHBOARD_ELEM_TYPE_KEY,\r\n DASHBOARD_ELEM_TYPE_VALUE_TEXT,\r\n DASHBOARD_ELEM_TYPE_VALUE_VIEW,\r\n DASHBOARD_ELEM_VALUE_KEY,\r\n DASHBOARD_ELEM_WIDTH_KEY,\r\n getViewIdxFromRowAndCol\r\n} from \"../../utils/dashboards\";\r\nimport {getViewerIdxFromType} from \"../data-viewer/constant\";\r\nimport {localizeI18nObj} from \"../../utils/i18n\";\r\nimport SanitizedHTML from \"../sanitized-html\";\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport {DASHBOARD_VIEW_STATE_APPLY_FILTERS, DASHBOARD_VIEW_STATE_ERROR, DASHBOARD_VIEW_STATE_FETCHING} from \"../../state/dashboard/dashboardReducer\";\r\nimport {getDatasetAttributeMap, getSeriesAttributeMap, VARIATION_DIMENSION_KEY} from \"../../utils/jsonStat\";\r\nimport DatasetFilters from \"../dataset-filters\";\r\nimport Table from \"../table\";\r\nimport Map from \"../map\";\r\nimport Chart from \"../chart\";\r\nimport _ from \"lodash\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport FullscreenIcon from \"@material-ui/icons/Fullscreen\";\r\nimport FullscreenExitIcon from \"@material-ui/icons/FullscreenExit\";\r\nimport {v4 as uuidv4} from \"uuid\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport AttributeList from \"../attribute-list\";\r\nimport AttributeIcon from \"../custom-icons/AttributeIcon\";\r\nimport ExportButton from \"../export-button\";\r\nimport {LABEL_FORMAT_SELECTOR_LABEL_FORMAT_ID} from \"../label-format-selector/constants\";\r\nimport {toggleFullScreen} from \"../../utils/other\";\r\nimport {TEMPORAL_DIM_ORDER_SELECTOR_VALUE_DESC} from \"../temporal-dim-order-selector/constants\";\r\nimport DatasetStaticFilters from \"../dataset-static-filters\";\r\nimport {DOWNLOAD_FORMAT_CSV, DOWNLOAD_FORMAT_EXCEL} from \"../../utils/download\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst VIEW_FIXED_HEIGHT = 580;\r\n\r\nconst styles = theme => ({\r\n col: {\r\n display: \"inline-block\",\r\n verticalAlign: \"top\",\r\n padding: 8\r\n },\r\n viewContainer: {\r\n position: \"relative\",\r\n padding: 16,\r\n background: \"#FFFFFF !important\"\r\n },\r\n viewContainerHeader: {},\r\n viewContainerHeaderTitle: {\r\n minHeight: 48,\r\n paddingBottom: 8,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n fontSize: 18,\r\n \"& > button\": {\r\n marginLeft: 4\r\n }\r\n },\r\n viewContainerHeaderTitleAttributeIcon: {\r\n \"& text > tspan\": {\r\n fontWeight: \"normal !important\"\r\n }\r\n },\r\n viewContainerHeaderControllers: {\r\n position: \"absolute\",\r\n top: 16,\r\n right: 24,\r\n display: \"flex\",\r\n \"& > *\": {\r\n marginLeft: 4\r\n }\r\n },\r\n viewContainerHeaderStaticFilters: {\r\n paddingBottom: 8,\r\n },\r\n viewContainerHeaderActiveFilters: {\r\n paddingBottom: 8,\r\n },\r\n viewContainerHeaderPlaceholder: {\r\n paddingBottom: 8\r\n },\r\n viewContainerView: {\r\n width: \"100%\",\r\n position: \"relative\"\r\n },\r\n attributeId: {\r\n cursor: \"default\",\r\n fontSize: 13,\r\n color: \"rgb(255, 255, 255)\",\r\n backgroundColor: \"rgb(108, 108, 108)\",\r\n borderRadius: 3,\r\n padding: \"0 4px\",\r\n marginLeft: 4\r\n },\r\n attributeAst: {\r\n cursor: \"default\",\r\n fontSize: 15,\r\n color: theme.palette.primary.main,\r\n fontFamily: \"Do Hyeon\",\r\n marginLeft: 4\r\n }\r\n});\r\n\r\nconst handleStyle = (dashboardId, viewIdx, dashboardElem, minDashboardWidth) => {\r\n const $viewContainer = $(`#dashboard__${dashboardId}__view-container__${viewIdx}`);\r\n\r\n if ($viewContainer.is(\":visible\")) {\r\n\r\n const $col = $(`#dashboard__${dashboardId}__col__${viewIdx}`);\r\n const $header = $(`#dashboard__${dashboardId}__view-container__${viewIdx}__header`);\r\n const $title = $(`#dashboard__${dashboardId}__view-container__${viewIdx}__header__title`);\r\n const $controllers = $(`#dashboard__${dashboardId}__view-container__${viewIdx}__header__controllers`);\r\n const $placeHolder = $(`#dashboard__${dashboardId}__view-container__${viewIdx}__header__placeholder`);\r\n const $staticFilters = $(`#dashboard__${dashboardId}__view-container__${viewIdx}__header__static-filters`);\r\n const $activeFilters = $(`#dashboard__${dashboardId}__view-container__${viewIdx}__header__active-filters`);\r\n const $view = $(`#dashboard__${dashboardId}__view-container__${viewIdx}__view`);\r\n\r\n $col.css({\r\n width: `${window.innerWidth > minDashboardWidth ? dashboardElem[DASHBOARD_ELEM_WIDTH_KEY] : 100}%`\r\n });\r\n\r\n if ($title.length) {\r\n $title.css({\r\n maxWidth: `calc(100% - ${$controllers.outerWidth() || 0}px)`,\r\n minHeight: $controllers.outerHeight()\r\n });\r\n $staticFilters.css({\r\n width: \"100%\"\r\n });\r\n $activeFilters.css({\r\n width: \"100%\"\r\n });\r\n\r\n } else if ($staticFilters.length) {\r\n $staticFilters.css({\r\n maxWidth: `calc(100% - ${$controllers.outerWidth() || 0}px)`,\r\n minHeight: $controllers.outerHeight(),\r\n paddingTop: 12\r\n });\r\n $activeFilters.css({\r\n width: \"100%\"\r\n });\r\n\r\n } else if ($activeFilters.length) {\r\n $activeFilters.css({\r\n maxWidth: `calc(100% - ${$controllers.outerWidth() || 0}px)`,\r\n minHeight: $controllers.outerHeight(),\r\n paddingTop: 12\r\n });\r\n\r\n } else {\r\n $placeHolder.css({\r\n maxWidth: `calc(100% - ${$controllers.outerWidth() || 0}px)`,\r\n minHeight: $controllers.outerHeight()\r\n });\r\n }\r\n\r\n $view.css({\r\n height: `calc(100% - ${$header.outerHeight() || 0}px)`\r\n });\r\n }\r\n};\r\n\r\nfunction DashboardCol(props) {\r\n\r\n const {\r\n t,\r\n classes,\r\n theme,\r\n hub,\r\n defaultLanguage,\r\n languages,\r\n minDashboardWidth,\r\n dashboardId,\r\n dashboard,\r\n filterValue,\r\n rowIdx,\r\n colIdx,\r\n dashboardElem,\r\n jsonStat,\r\n layout: layoutObj,\r\n filterTree,\r\n timePeriodsByFreq,\r\n rowWithView,\r\n onSelect,\r\n onDownloadSubmit\r\n } = props;\r\n\r\n const [chartId] = useState(\"chart__\" + uuidv4());\r\n const [mapId] = useState(\"map__\" + uuidv4());\r\n\r\n const [nodeExtras, setNodeExtras] = useState({});\r\n\r\n const [view] = useState(_.cloneDeep((dashboard.views || {})[dashboardElem[DASHBOARD_ELEM_VALUE_KEY]]));\r\n const [viewIdx] = useState(getViewIdxFromRowAndCol(rowIdx, colIdx));\r\n const [viewerIdx] = useState(view ? getViewerIdxFromType(view.defaultView) : null);\r\n\r\n const [isDetailLevelFilterEnabled] = useState(Object.values(dashboard?.filterLevels || {}).filter(val => val).length > 0);\r\n\r\n const [isFullscreen, setFullscreen] = useState(false);\r\n const [isAttributesVisible, setAttributesVisibility] = useState(false);\r\n\r\n const [hierarchyOnlyAttributes] = useState(nodeExtras?.HierarchyOnlyAttributes || []);\r\n const [hideHierarchyOnlyRows] = useState(nodeExtras?.HideHierarchyOnlyRows || false);\r\n\r\n const datasetAttributes = useMemo(() => {\r\n return (jsonStat && layoutObj && view?.datasetId)\r\n ? getDatasetAttributeMap(jsonStat)?.[view.datasetId] || []\r\n : [];\r\n }, [jsonStat, layoutObj, view?.datasetId]);\r\n\r\n const seriesAttributes = useMemo(() => {\r\n return (jsonStat && layoutObj && view?.datasetId)\r\n ? getSeriesAttributeMap(jsonStat, layoutObj.labelFormat)[view.datasetId] || []\r\n : [];\r\n }, [jsonStat, layoutObj, view?.datasetId]);\r\n\r\n useEffect(() => {\r\n const nodeMinimalInfo = view ? hub.nodes.find(({nodeId}) => nodeId === view.nodeId) : {};\r\n if (nodeMinimalInfo?.extras) {\r\n const nodeExtras = {};\r\n nodeMinimalInfo.extras.forEach(({key, value}) => {\r\n try {\r\n nodeExtras[key] = JSON.parse(value);\r\n } catch (e) {\r\n nodeExtras[key] = value;\r\n }\r\n });\r\n setNodeExtras(nodeExtras);\r\n }\r\n }, [hub, view]);\r\n\r\n useEffect(() => {\r\n const func = () => handleStyle(dashboardId, viewIdx, dashboardElem, minDashboardWidth);\r\n window.addEventListener(\"resize\", func);\r\n return () => window.removeEventListener(\"resize\", func)\r\n }, [dashboardId, viewIdx, dashboardElem, minDashboardWidth]);\r\n\r\n useEffect(() => {\r\n handleStyle(dashboardId, viewIdx, dashboardElem, minDashboardWidth);\r\n });\r\n\r\n const handleFullscreen = useCallback(() => {\r\n toggleFullScreen(\r\n `dashboard__${dashboardId}__view-container__${viewIdx}`,\r\n `dashboard__${dashboardId}__col__${viewIdx}`,\r\n [],\r\n !isFullscreen\r\n );\r\n handleStyle(dashboardId, viewIdx, dashboardElem, minDashboardWidth);\r\n setFullscreen(!isFullscreen);\r\n }, [dashboardId, dashboardElem, viewIdx, isFullscreen, minDashboardWidth]);\r\n\r\n const handleDownload = useCallback((format, extension, additionalParams) => {\r\n const timeDim = jsonStat.role?.time?.[0];\r\n const newCriteria = {...view.criteria};\r\n\r\n if (format !== DOWNLOAD_FORMAT_CSV && format !== DOWNLOAD_FORMAT_EXCEL) {\r\n Object.keys(layoutObj.layout.filtersValue).forEach(key => {\r\n if (key !== timeDim) {\r\n newCriteria[key] = {\r\n id: key,\r\n filterValues: [layoutObj.layout.filtersValue[key]]\r\n };\r\n }\r\n });\r\n const primaryDim = layoutObj.layout?.primaryDim?.[0] || null;\r\n if (primaryDim && primaryDim !== timeDim) {\r\n newCriteria[primaryDim] = {\r\n id: primaryDim,\r\n filterValues: layoutObj.layout.primaryDimValues\r\n };\r\n }\r\n const secondaryDim = layoutObj.layout?.secondaryDim?.[0] || null;\r\n if (secondaryDim && secondaryDim !== timeDim) {\r\n newCriteria[secondaryDim] = {\r\n id: secondaryDim,\r\n filterValues: layoutObj.layout.secondaryDimValues\r\n };\r\n }\r\n }\r\n\r\n if (viewerIdx === 1 && layoutObj.layout?.territoryDim) {\r\n if ((format !== DOWNLOAD_FORMAT_CSV && format !== DOWNLOAD_FORMAT_EXCEL) || additionalParams?.exportOnlyCurrentView === true) {\r\n const territoryDim = layoutObj.layout.territoryDim;\r\n newCriteria[territoryDim] = {\r\n id: territoryDim,\r\n filterValues: window.LMap.getDataIds(mapId)\r\n };\r\n }\r\n }\r\n\r\n const exportParams = {\r\n decimalNumber: view.decimalNumber,\r\n decimalSeparator: localizeI18nObj(view.decimalSeparator, defaultLanguage, languages),\r\n emptyCellPlaceHolder: layoutObj.tableEmptyChar,\r\n labelFormat: layoutObj.labelFormat,\r\n customLabelFormat: {\r\n [timeDim]: LABEL_FORMAT_SELECTOR_LABEL_FORMAT_ID\r\n },\r\n hasVariation: jsonStat.id.includes(VARIATION_DIMENSION_KEY),\r\n showTrend: layoutObj?.showTrend,\r\n showCyclical: layoutObj?.showCyclical,\r\n temporalDimOrder: layoutObj?.temporalDimOrder,\r\n exportConfig: hub.hub.exportConfig,\r\n ...additionalParams\r\n };\r\n\r\n onDownloadSubmit(\r\n view.nodeId,\r\n view.datasetId,\r\n localizeI18nObj(view.title, defaultLanguage, languages),\r\n newCriteria,\r\n layoutObj.layout,\r\n format,\r\n extension,\r\n false,\r\n exportParams,\r\n defaultLanguage,\r\n languages,\r\n t\r\n );\r\n }, [hub, view, jsonStat, layoutObj, mapId, viewerIdx, onDownloadSubmit, defaultLanguage, languages, t]);\r\n\r\n const showAttributeIcon = datasetAttributes.concat(seriesAttributes).length > 0;\r\n\r\n return (\r\n minDashboardWidth ? dashboardElem[DASHBOARD_ELEM_WIDTH_KEY] : 100}%`\r\n }}\r\n >\r\n \r\n {(() => {\r\n if (dashboardElem[DASHBOARD_ELEM_TYPE_KEY] === DASHBOARD_ELEM_TYPE_VALUE_TEXT) {\r\n return (\r\n \r\n )\r\n\r\n } else if (view === null || view === undefined) {\r\n return (\r\n \r\n )\r\n\r\n } else if (jsonStat !== null && jsonStat !== undefined) {\r\n\r\n if (jsonStat === DASHBOARD_VIEW_STATE_APPLY_FILTERS) {\r\n return (\r\n \r\n )\r\n\r\n } else if (jsonStat === DASHBOARD_VIEW_STATE_FETCHING) {\r\n return (\r\n }\r\n />\r\n )\r\n\r\n } else if (jsonStat === DASHBOARD_VIEW_STATE_ERROR) {\r\n return (\r\n \r\n )\r\n\r\n } else if (jsonStat === \"\") {\r\n return (\r\n \r\n )\r\n\r\n } else if (layoutObj) {\r\n try {\r\n\r\n let layout = {...layoutObj.layout};\r\n\r\n const filterDim = dashboardElem[DASHBOARD_ELEM_FILTER_DIMENSION_KEY];\r\n if (filterDim && filterValue && (jsonStat.dimension[filterDim]?.category?.index || []).includes(filterValue)) {\r\n if ((layout.filters || []).includes(filterDim)) {\r\n layout.filtersValue = {\r\n ...layout.filtersValue,\r\n [filterDim]: filterValue\r\n };\r\n } else if ((layout.primaryDim || []).includes(filterDim)) {\r\n layout.primaryDimValues = [filterValue];\r\n } else if ((layout.secondaryDim || []).includes(filterDim)) {\r\n layout.secondaryDimValues = [filterValue];\r\n }\r\n }\r\n\r\n let staticFilters = [];\r\n layout.filters.forEach(dim => {\r\n if (!dashboardElem[DASHBOARD_ELEM_ENABLE_FILTERS_KEY] || jsonStat.size[jsonStat.id.indexOf(dim)] === 1) {\r\n staticFilters.push(dim);\r\n }\r\n });\r\n\r\n const TitleComponent = (\r\n \r\n {localizeI18nObj(view.title, defaultLanguage, languages)}\r\n {showAttributeIcon && (\r\n \r\n setAttributesVisibility(true)}\r\n className={classes.viewContainerHeaderTitleAttributeIcon}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n const ControllersComponent = (\r\n \r\n {showAttributeIcon && !dashboardElem[DASHBOARD_ELEM_SHOW_TITLE_KEY] && (\r\n \r\n setAttributesVisibility(true)}\r\n iconStyle={{fontWeight: \"normal\"}}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {isFullscreen ? : }\r\n \r\n \r\n = 2}\r\n tableLayout={layoutObj?.layout}\r\n mapId={mapId}\r\n mapContainerId={`dashboard__${dashboardId}__view-container__${viewIdx}__view`}\r\n mapLayout={layoutObj?.layout}\r\n mapSettings={layoutObj?.mapSettings}\r\n chartId={chartId}\r\n chartContainerId={`dashboard__${dashboardId}__view-container__${viewIdx}__view`}\r\n chartLayout={layoutObj?.layout}\r\n chartSettings={layoutObj?.chartSettings}\r\n labelFormat={layoutObj?.labelFormat}\r\n datasetTitle={localizeI18nObj(view?.title, defaultLanguage, languages)}\r\n submitDownload={handleDownload}\r\n buttonStyle={{color: theme.palette.primary.main}}\r\n />\r\n \r\n );\r\n\r\n const StaticFiltersComponent = (\r\n \r\n staticFilters.includes(dim)}\r\n />\r\n \r\n );\r\n\r\n const ActiveFiltersComponent = (\r\n \r\n onSelect(dashboardId, viewIdx, dimension, value)}\r\n />\r\n \r\n );\r\n\r\n const PlaceHolderComponent = (\r\n \r\n );\r\n\r\n const decimalSeparator = localizeI18nObj(view.decimalSeparator, defaultLanguage, languages);\r\n const decimalPlaces = view.decimalNumber;\r\n\r\n const timeDim = jsonStat.role?.time?.[0] || null;\r\n const invertedDims = (layoutObj.temporalDimOrder === TEMPORAL_DIM_ORDER_SELECTOR_VALUE_DESC && !layout.filters.includes(timeDim))\r\n ? [timeDim]\r\n : null;\r\n\r\n return (\r\n \r\n \r\n {dashboardElem[DASHBOARD_ELEM_SHOW_TITLE_KEY]\r\n ? (\r\n \r\n {TitleComponent}\r\n {ControllersComponent}\r\n {staticFilters.length > 0 && StaticFiltersComponent}\r\n {dashboardElem[DASHBOARD_ELEM_ENABLE_FILTERS_KEY] && filterTree && ActiveFiltersComponent}\r\n \r\n )\r\n : staticFilters.length > 0 ?\r\n (\r\n \r\n {StaticFiltersComponent}\r\n {ControllersComponent}\r\n {dashboardElem[DASHBOARD_ELEM_ENABLE_FILTERS_KEY] && filterTree && ActiveFiltersComponent}\r\n \r\n )\r\n : dashboardElem[DASHBOARD_ELEM_ENABLE_FILTERS_KEY] && filterTree\r\n ? (\r\n \r\n {ActiveFiltersComponent}\r\n {ControllersComponent}\r\n \r\n )\r\n : (\r\n \r\n {PlaceHolderComponent}\r\n {ControllersComponent}\r\n \r\n )\r\n }\r\n \r\n \r\n {viewerIdx === 0\r\n ? (\r\n \r\n )\r\n : viewerIdx === 1\r\n ? (\r\n 0 && isDetailLevelFilterEnabled}\r\n disableWheelZoom\r\n />\r\n )\r\n : (\r\n \r\n )\r\n }\r\n \r\n setAttributesVisibility(false)}\r\n >\r\n setAttributesVisibility(false)}>\r\n {t(\"components.dashboard.dialogs.attributes.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n } catch (e) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n } else {\r\n return \r\n }\r\n } else {\r\n return \r\n }\r\n })()}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default compose(\r\n withTranslation(),\r\n withStyles(styles),\r\n withTheme,\r\n connect(state => ({\r\n hub: state.hub,\r\n defaultLanguage: state.app.language,\r\n languages: state.app.languages,\r\n minDashboardWidth: state.appConfig.minDashboardWidth\r\n }))\r\n)(DashboardCol);","import React from \"react\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {DASHBOARD_ELEM_FILTER_DIMENSION_KEY, DASHBOARD_ELEM_TYPE_KEY, DASHBOARD_ELEM_TYPE_VALUE_VIEW, getViewIdxFromRowAndCol} from \"../../utils/dashboards\";\r\nimport DashboardCol from \"./DashboardCol\";\r\n\r\nconst styles = theme => ({\r\n row: {\r\n width: \"100%\"\r\n }\r\n});\r\n\r\nconst DashboardRow = ({\r\n classes,\r\n dashboardId,\r\n dashboard,\r\n filterValue,\r\n row,\r\n rowIdx,\r\n jsonStats,\r\n layouts,\r\n filterTrees,\r\n timePeriodsByFreq,\r\n onSelect,\r\n onDownloadSubmit\r\n }) => {\r\n const rowWithView = row.find(dashboardElem => dashboardElem[DASHBOARD_ELEM_TYPE_KEY] === DASHBOARD_ELEM_TYPE_VALUE_VIEW) || false;\r\n\r\n return (\r\n
    \r\n {row.map((col, idx) => {\r\n const viewIdx = getViewIdxFromRowAndCol(rowIdx, idx);\r\n return (\r\n \r\n )\r\n })}\r\n
    \r\n )\r\n};\r\n\r\n\r\nexport default withStyles(styles)(DashboardRow);","import React, {Fragment, useEffect, useState} from \"react\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport _ from \"lodash\";\r\nimport DashboardRow from \"./DashboardRow\";\r\nimport CustomEmpty from \"../custom-empty\";\r\n\r\nfunction Dashboard(props) {\r\n const {\r\n dashboardId,\r\n dashboard: externalDashboard,\r\n filterValue,\r\n jsonStats,\r\n layouts,\r\n filterTrees,\r\n timePeriodsByFreq,\r\n onFilterSet,\r\n onDownloadSubmit\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n const [dashboard, setDashboard] = useState(externalDashboard);\r\n\r\n useEffect(() => {\r\n setDashboard(prevDashboard => {\r\n if (_.isEqual(prevDashboard, externalDashboard)) {\r\n return prevDashboard\r\n } else {\r\n return externalDashboard\r\n }\r\n });\r\n }, [externalDashboard]);\r\n\r\n return (\r\n \r\n {dashboard\r\n ? (\r\n \r\n {(dashboard.dashboardConfig || []).map((row, idx) =>\r\n \r\n )}\r\n \r\n )\r\n : (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default Dashboard;","import React, {forwardRef, Fragment, useEffect, useImperativeHandle, useState} from 'react';\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {connect} from \"react-redux\";\r\nimport {compose} from \"redux\";\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport {\r\n changeOtherConfigDashboard,\r\n clearOtherConfigDashboards,\r\n clearOtherConfigDashboardsDataset,\r\n clearOtherConfigDashboardViews,\r\n closeOtherConfigDashboard,\r\n createOtherConfigDashboard,\r\n deleteOtherConfigDashboard,\r\n fetchOtherConfigDashboards,\r\n fetchOtherConfigDashboardsDataset,\r\n fetchOtherConfigDashboardViews,\r\n hideOtherConfigDashboard,\r\n setOtherConfigDashboardsDatasetFilter,\r\n submitOtherConfigDashboardCreate,\r\n submitOtherConfigDashboardUpdate,\r\n updateOtherConfigDashboard\r\n} from \"../../../state/otherConfig/otherConfigActions\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport {goToDashboard} from \"../../../links\";\r\nimport DashboardBuilder from \"../../dashboard-builder\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport CustomMaterialTable from \"../../custom-material-table\";\r\nimport {getI18nObjCustomFilterAndSearch, localizeI18nObj, validateI18nObj} from \"../../../utils/i18n\";\r\nimport Call from \"../../../hocs/call\";\r\nimport Dashboard from \"../../dashboard\";\r\nimport {\r\n DASHBOARD_ELEM_FILTER_DIMENSION_KEY,\r\n DASHBOARD_ELEM_TYPE_KEY,\r\n DASHBOARD_ELEM_TYPE_VALUE_VIEW,\r\n DASHBOARD_ELEM_VALUE_KEY,\r\n getViewIdxFromRowAndCol\r\n} from \"../../../utils/dashboards\";\r\nimport _ from \"lodash\"\r\nimport FullscreenDialog from \"../../fullscreen-dialog\";\r\nimport {CRITERIA_FILTER_TYPE_CODES} from '../../../utils/criteria';\r\n\r\nconst styles = theme => ({\r\n tableToolbar: {\r\n marginBottom: theme.spacing(1)\r\n },\r\n previewDialog: {\r\n \"& .MuiDialogTitle-root, & .MuiDialogContent-root, & .MuiDialogActions-root\": {\r\n background: \"#f5f5f5\"\r\n }\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n defaultLanguage: state.app.language,\r\n languages: state.app.languages,\r\n dashboardFilterConfig: state.dashboardFilterConfig,\r\n needDashboards: state.otherConfig.needDashboards,\r\n dashboards: state.otherConfig.dashboards,\r\n dashboard: state.otherConfig.dashboard,\r\n dashboardViews: state.otherConfig.dashboardViews,\r\n dashboardJsonStats: state.otherConfig.dashboardJsonStats,\r\n dashboardLayouts: state.otherConfig.dashboardLayouts,\r\n dashboardFilterTrees: state.otherConfig.dashboardFilterTrees,\r\n dashboardTimePeriodsByFreq: state.otherConfig.dashboardTimePeriodsByFreq,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchDashboards: () => dispatch(fetchOtherConfigDashboards()),\r\n clearDashboards: () => dispatch(clearOtherConfigDashboards()),\r\n createDashboard: dashboard => dispatch(createOtherConfigDashboard(dashboard)),\r\n updateDashboard: dashboardId => dispatch(updateOtherConfigDashboard(dashboardId)),\r\n changeDashboard: dashboard => dispatch(changeOtherConfigDashboard(dashboard)),\r\n submitDashboardCreate: (dashboard, dashboardConfig) => dispatch(submitOtherConfigDashboardCreate(dashboard, dashboardConfig)),\r\n submitDashboardUpdate: (dashboardId, dashboard, dashboardConfig) => dispatch(submitOtherConfigDashboardUpdate(dashboardId, dashboard, dashboardConfig)),\r\n deleteDashboard: dashboardId => dispatch(deleteOtherConfigDashboard(dashboardId)),\r\n hideDashboard: () => dispatch(hideOtherConfigDashboard()),\r\n fetchViews: () => dispatch(fetchOtherConfigDashboardViews()),\r\n clearViews: () => dispatch(clearOtherConfigDashboardViews()),\r\n onClose: () => dispatch(closeOtherConfigDashboard()),\r\n fetchDataset: (nodeId, datasetId, criteria, requestIds) => dispatch(fetchOtherConfigDashboardsDataset(nodeId, datasetId, criteria, requestIds)),\r\n onFilterSet: (dashboardId, viewIdx, dimension, value) =>\r\n dispatch(setOtherConfigDashboardsDatasetFilter(viewIdx, dimension, value)),\r\n clearDatasets: () => dispatch(clearOtherConfigDashboardsDataset()),\r\n});\r\n\r\nconst getStaticDashboard = dashboard => {\r\n if (!dashboard) {\r\n return null\r\n }\r\n\r\n const staticDashboard = _.cloneDeep(dashboard);\r\n staticDashboard.dashboardConfig.forEach(row => {\r\n row.forEach(col => {\r\n col[DASHBOARD_ELEM_FILTER_DIMENSION_KEY] = null\r\n });\r\n });\r\n\r\n return staticDashboard\r\n};\r\n\r\nconst initialDashboard = {\r\n title: {},\r\n dashboardConfig: [],\r\n viewIds: [],\r\n views: {},\r\n filterLevels: {}\r\n};\r\n\r\nconst UserDashboardsSettingsForm = ({\r\n classes,\r\n defaultLanguage,\r\n languages,\r\n dashboardFilterConfig,\r\n nodes,\r\n needDashboards,\r\n dashboards,\r\n dashboard,\r\n fetchDashboards,\r\n clearDashboards,\r\n createDashboard,\r\n updateDashboard,\r\n changeDashboard,\r\n submitDashboardCreate,\r\n submitDashboardUpdate,\r\n deleteDashboard,\r\n hideDashboard,\r\n dashboardViews,\r\n fetchViews,\r\n clearViews,\r\n onClose,\r\n dashboardJsonStats,\r\n dashboardLayouts,\r\n dashboardFilterTrees,\r\n dashboardTimePeriodsByFreq,\r\n onFilterSet,\r\n fetchDataset,\r\n clearDatasets,\r\n onDashboardsClose\r\n }, ref) => {\r\n\r\n const [deleteDashboardId, setDeleteDashboardId] = useState(null);\r\n const [updateDashboardId, setUpdateDashboardId] = useState(null);\r\n\r\n const [isPreviewVisible, setPreviewVisibility] = useState(false);\r\n\r\n const {t} = useTranslation();\r\n\r\n useEffect(() => {\r\n fetchDashboards();\r\n }, [fetchDashboards]);\r\n\r\n useEffect(() => {\r\n if (needDashboards) {\r\n fetchDashboards();\r\n }\r\n }, [dashboards, needDashboards, fetchDashboards]);\r\n\r\n useImperativeHandle(ref, () => ({\r\n cancel(f) {\r\n clearDashboards();\r\n onClose();\r\n f();\r\n }\r\n }));\r\n\r\n const handleFetchDatasets = () => {\r\n const requests = [];\r\n \r\n const isDetailLevelFilterEnabled = Object.values(dashboard?.filterLevels || {}).filter(val => val).length > 0;\r\n \r\n dashboard.dashboardConfig.forEach((row, rowIdx) => {\r\n row.forEach((col, colIdx) => {\r\n if (col[DASHBOARD_ELEM_TYPE_KEY] === DASHBOARD_ELEM_TYPE_VALUE_VIEW) {\r\n\r\n const view = dashboard.views[col[DASHBOARD_ELEM_VALUE_KEY]];\r\n\r\n let newCriteria = view.criteria;\r\n\r\n const filterDimension = col[DASHBOARD_ELEM_FILTER_DIMENSION_KEY];\r\n\r\n if ((filterDimension || \"\").length > 0 && isDetailLevelFilterEnabled) {\r\n newCriteria = {\r\n ...newCriteria,\r\n [filterDimension]: {\r\n ...newCriteria[filterDimension],\r\n id: filterDimension,\r\n type: CRITERIA_FILTER_TYPE_CODES,\r\n filterValues: dashboardFilterConfig?.defaultValue ? [dashboardFilterConfig.defaultValue] : []\r\n }\r\n };\r\n }\r\n\r\n const request = requests.find(({nodeId, datasetId, criteria}) => {\r\n return (\r\n nodeId === view.nodeId &&\r\n datasetId === view.datasetId &&\r\n _.isEqual(criteria, newCriteria)\r\n )\r\n });\r\n\r\n if (request === undefined) {\r\n requests.push({\r\n nodeId: view.nodeId,\r\n datasetId: view.datasetId.split(\"+\").join(\",\"),\r\n criteria: newCriteria,\r\n requestIds: [getViewIdxFromRowAndCol(rowIdx, colIdx)]\r\n });\r\n } else {\r\n request.requestIds.push(getViewIdxFromRowAndCol(rowIdx, colIdx));\r\n }\r\n }\r\n });\r\n });\r\n requests.forEach(({nodeId, datasetId, criteria, requestIds}) => fetchDataset(nodeId, datasetId, criteria, requestIds));\r\n };\r\n\r\n const handleDashboardClose = () => {\r\n hideDashboard();\r\n setUpdateDashboardId(null);\r\n };\r\n\r\n const handleDashboardSubmit = () => {\r\n if (updateDashboardId) {\r\n submitDashboardUpdate(updateDashboardId, dashboard, dashboardFilterConfig)\r\n } else {\r\n submitDashboardCreate(dashboard, dashboardFilterConfig);\r\n handleDashboardClose();\r\n }\r\n };\r\n\r\n return dashboards && (\r\n \r\n }\r\n onClick={() => createDashboard(initialDashboard)}\r\n >\r\n {t(\"scenes.dashboardsSettings.createDashboard\")}\r\n \r\n }\r\n columns={[\r\n {\r\n field: \"title\",\r\n title: t(\"scenes.dashboardsSettings.table.columns.dashboardTitle\"),\r\n render: ({title}) => localizeI18nObj(title, defaultLanguage, languages),\r\n customFilterAndSearch: getI18nObjCustomFilterAndSearch(defaultLanguage, languages)\r\n }\r\n ]}\r\n data={dashboards}\r\n actions={[\r\n {\r\n icon: VisibilityIcon,\r\n tooltip: t(\"scenes.dashboardsSettings.table.actions.viewDashboard\"),\r\n onClick: (_, {dashboardId}) => window.location.href.toLowerCase().includes(`/dashboards/${dashboardId}`)\r\n ? onDashboardsClose()\r\n : goToDashboard(dashboardId)\r\n },\r\n {\r\n icon: EditIcon,\r\n tooltip: t(\"scenes.dashboardsSettings.table.actions.editDashboard\"),\r\n onClick: (_, {dashboardId}) => {\r\n updateDashboard(dashboardId);\r\n setUpdateDashboardId(dashboardId);\r\n }\r\n },\r\n {\r\n icon: DeleteIcon,\r\n tooltip: t(\"scenes.dashboardsSettings.table.actions.deleteDashboard\"),\r\n onClick: (_, {dashboardId}) => setDeleteDashboardId(dashboardId)\r\n }\r\n ]}\r\n options={{\r\n actionsColumnIndex: 1\r\n }}\r\n />\r\n\r\n setDeleteDashboardId(null)}\r\n >\r\n setDeleteDashboardId(null)}>\r\n {t(\"scenes.dashboardsSettings.modals.deleteDashboard.title\")}\r\n \r\n \r\n {t(\"scenes.dashboardsSettings.modals.deleteDashboard.content\")}\r\n \r\n \r\n setDeleteDashboardId(null)}\r\n >\r\n {t(\"commons.confirm.cancel\")}\r\n \r\n {\r\n deleteDashboard(deleteDashboardId);\r\n setDeleteDashboardId(null);\r\n }}\r\n >\r\n {t(\"commons.confirm.confirm\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {updateDashboardId\r\n ? t(\"scenes.dashboardsSettings.modals.updateDashboard.title\")\r\n : t(\"scenes.dashboardsSettings.modals.createDashboard.title\")\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"commons.confirm.close\")}\r\n \r\n setPreviewVisibility(true)}\r\n >\r\n {t(\"commons.confirm.preview\")}\r\n \r\n \r\n {t(\"commons.confirm.save\")}\r\n \r\n \r\n \r\n\r\n setPreviewVisibility(false)}\r\n className={classes.previewDialog}\r\n >\r\n setPreviewVisibility(false)}>\r\n {t(\"components.dashboardBuilder.modals.preview.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setPreviewVisibility(false);\r\n clearDatasets();\r\n }}\r\n >\r\n {t(\"commons.confirm.close\")}\r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default compose(withStyles(styles), connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef)(UserDashboardsSettingsForm);","import React from \"react\";\r\nimport {connect} from \"react-redux\";\r\nimport ModuleLoader from \"../module-loader\";\r\n\r\nconst mapStateToProps = state => ({\r\n modulesConfig: state.app.modulesConfig\r\n});\r\n\r\nconst ModulesPlaceholder = ({\r\n modulesConfig,\r\n id: placeholderId,\r\n moduleFallback,\r\n className,\r\n style\r\n }) =>\r\n \r\n {(modulesConfig.placeholders?.[placeholderId] || []).map((module, idx) =>\r\n
    \r\n \r\n
    \r\n )}\r\n ;\r\n\r\nexport default connect(mapStateToProps)(ModulesPlaceholder);","import React, {Fragment, useEffect, useRef, useState} from 'react';\r\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {connect} from \"react-redux\";\r\nimport {\r\n fetchExternalUser,\r\n fetchUser,\r\n hideUserChangePasswordForm,\r\n hideUserEditUserModal,\r\n hideUserLoginForm,\r\n hideUserRegisterModal,\r\n logoutUser,\r\n showUserChangePasswordForm,\r\n showUserEditUserModal,\r\n showUserLoginForm,\r\n showUserRegisterModal\r\n} from \"../../state/user/userActions\";\r\nimport UserLoginDialog from \"../user-login-dialog\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport UserSettingsForm from \"../settings-select/users-settings-form/user-settings-form\";\r\nimport SettingsDialog from \"../settings-dialog\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport ButtonSelect from \"../button-select\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {compose} from \"redux\";\r\nimport UserChangePasswordForm from \"./user-change-password-form\";\r\nimport EditUserForm from \"./edit-user-form\";\r\nimport {canDisplayUserViews, canManagePersonalDashboards} from \"../../utils/user\";\r\nimport UserViewsSettingsForm from \"../settings-select/user-views-settings-form\";\r\nimport UserDashboardsSettingsForm from \"../settings-select/user-dashboards-settings-form\";\r\nimport ModuleMenuItemPlaceholder from \"../module-menu-item-placeholder\";\r\nimport ModulesPlaceholder from \"../modules-placeholder\";\r\n\r\nimport themeConfig from \"../../config/theme/config.json\";\r\n\r\nconst mapStateToProps = state => ({\r\n modulesConfig: state.app.modulesConfig,\r\n user: state.user,\r\n supportedAuths: state.hub.supportedAuths\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onLogin: (email, password) => dispatch(fetchUser(email, password)),\r\n onExternalLogin: (providerId, loginCode) => dispatch(fetchExternalUser(providerId, loginCode)),\r\n onLogout: userId => dispatch(logoutUser(userId)),\r\n onLoginFormShow: () => dispatch(showUserLoginForm()),\r\n onLoginFormHide: () => dispatch(hideUserLoginForm()),\r\n onChangePasswordShow: () => dispatch(showUserChangePasswordForm()),\r\n onChangePasswordHide: () => dispatch(hideUserChangePasswordForm()),\r\n onRegisterModalShow: () => dispatch(showUserRegisterModal()),\r\n onRegisterModalHide: () => dispatch(hideUserRegisterModal()),\r\n onEditModalShow: () => dispatch(showUserEditUserModal()),\r\n onEditModalHide: () => dispatch(hideUserEditUserModal())\r\n});\r\n\r\nconst styles = () => ({\r\n email: {\r\n cursor: \"initial\",\r\n color: \"gray\"\r\n },\r\n divider: {\r\n width: \"100%\",\r\n color: \"gray\",\r\n fontStyle: \"italic\",\r\n fontSize: 14\r\n },\r\n});\r\n\r\nconst BASIC_LOGIN = \"Base\";\r\nlet providerId = null;\r\n\r\nconst UserSelect = ({\r\n classes,\r\n modulesConfig,\r\n user,\r\n supportedAuths,\r\n onLogin,\r\n onExternalLogin,\r\n onLogout,\r\n onLoginFormShow,\r\n onLoginFormHide,\r\n onChangePasswordShow,\r\n onChangePasswordHide,\r\n onRegisterModalShow,\r\n onRegisterModalHide,\r\n onEditModalShow,\r\n onEditModalHide,\r\n nodes,\r\n disabled\r\n }) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const registerFormRef = useRef();\r\n const changePasswordFormRef = useRef();\r\n const editUserFormRef = useRef();\r\n const viewsSettingsRef = useRef();\r\n const dashboardsSettingsRef = useRef();\r\n\r\n const [isViewsOpen, setIsViewsOpen] = useState(false);\r\n const [isDashboardsOpen, setIsDashboardsOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n function loginHandler(e) {\r\n const loginCode = localStorage.getItem(\"loginCode\");\r\n if (e.storageArea === localStorage && loginCode && providerId) {\r\n onExternalLogin(providerId, loginCode);\r\n localStorage.removeItem(\"loginCode\");\r\n providerId = null;\r\n }\r\n }\r\n\r\n window.addEventListener('storage', loginHandler);\r\n return () => {\r\n window.removeEventListener('storage', loginHandler);\r\n }\r\n }, [onExternalLogin]);\r\n\r\n const onDashboardsOpen = () => {\r\n setIsDashboardsOpen(true);\r\n };\r\n\r\n const onDashboardsClose = () => {\r\n setIsDashboardsOpen(false);\r\n };\r\n\r\n const onViewsOpen = () => {\r\n setIsViewsOpen(true);\r\n };\r\n\r\n const onViewsClose = () => {\r\n setIsViewsOpen(false);\r\n };\r\n\r\n const handleExternalLogin = (provider, loginURL) => {\r\n providerId = provider;\r\n localStorage.removeItem(\"loginCode\");\r\n window.open(loginURL, \"\", \"width=720,height=720\");\r\n };\r\n\r\n return (\r\n \r\n {(() => {\r\n if (user.isAuthenticated) {\r\n return (\r\n \r\n }\r\n ariaLabel={t(\"components.header.actions.user.ariaLabel\")}\r\n tooltip={t(\"components.header.actions.user.title\")}\r\n onChange={actionId => {\r\n switch (actionId) {\r\n case \"views\":\r\n onViewsOpen();\r\n break;\r\n case \"dashboards\":\r\n onDashboardsOpen();\r\n break;\r\n case \"changePassword\":\r\n onChangePasswordShow();\r\n break;\r\n case \"editUser\":\r\n onEditModalShow();\r\n break;\r\n case \"logout\":\r\n onLogout(user.userId);\r\n break;\r\n default:\r\n break;\r\n }\r\n }}\r\n >\r\n {[\r\n \r\n {user.email}\r\n ,\r\n (canDisplayUserViews(user) || (canManagePersonalDashboards(user) && themeConfig.enableDashboard))\r\n ? (\r\n \r\n {t(\"components.userSelect.userObjects\")}\r\n \r\n )\r\n : null,\r\n canDisplayUserViews(user)\r\n ? (\r\n \r\n {t(\"components.userSelect.views\")}\r\n \r\n )\r\n : null,\r\n (canManagePersonalDashboards(user) && themeConfig.enableDashboard)\r\n ? (\r\n \r\n {t(\"components.userSelect.dashboards\")}\r\n \r\n )\r\n : null,\r\n ...(modulesConfig.placeholders?.[\"user-select-menu\"] || []).map((module, idx) => (\r\n \r\n )), \r\n \r\n {t(\"components.userSelect.accountSettings\")}\r\n ,\r\n user.provider\r\n ? null\r\n : (\r\n \r\n {t(\"components.userSelect.changePassword\")}\r\n \r\n ),\r\n user.provider ?\r\n null\r\n : (\r\n \r\n {t(\"components.userSelect.editUser\")}\r\n \r\n ),\r\n \r\n {t(\"components.userSelect.logout\")}\r\n \r\n ]}\r\n \r\n \r\n )\r\n\r\n } else if ((supportedAuths || []).length === 1) {\r\n const provider = supportedAuths[0];\r\n return (\r\n provider.identifier === BASIC_LOGIN\r\n ? onLoginFormShow()\r\n : handleExternalLogin(provider.identifier, provider.loginURL)\r\n }\r\n >\r\n {t(\"components.userSelect.login\")}\r\n \r\n );\r\n\r\n } else if ((supportedAuths || []).length > 1) {\r\n return (\r\n identifier === BASIC_LOGIN\r\n ? onLoginFormShow()\r\n : handleExternalLogin(identifier, loginURL)\r\n }\r\n removeEndIcon\r\n >\r\n {supportedAuths.map(({identifier, label, loginURL}) => (\r\n
    \r\n {identifier === BASIC_LOGIN\r\n ? t(\"components.userSelect.loginWithBasicAuth\")\r\n : t(\"components.userSelect.loginWith\", {provider: (label || identifier)})\r\n }\r\n
    \r\n ))}\r\n \r\n )\r\n }\r\n })()}\r\n\r\n onLogin(email, password)}\r\n onRegister={() => onRegisterModalShow()}\r\n onHide={onLoginFormHide}\r\n alert={user.message}\r\n alertSeverity={user.messageSeverity}\r\n />\r\n\r\n {\r\n if (registerFormRef.current) {\r\n registerFormRef.current.cancel(() => {\r\n onRegisterModalHide();\r\n });\r\n } else {\r\n onRegisterModalHide();\r\n }\r\n }}\r\n onSubmit={() => {\r\n if (registerFormRef.current) {\r\n registerFormRef.current.submit(() => {\r\n });\r\n }\r\n }}\r\n hasSubmit\r\n customSubmitLabel={t(\"components.userSelect.registerModal.submit.label\")}\r\n >\r\n \r\n \r\n\r\n {\r\n if (editUserFormRef.current) {\r\n editUserFormRef.current.cancel(() => {\r\n onEditModalHide();\r\n });\r\n } else {\r\n onEditModalHide();\r\n }\r\n }}\r\n onSubmit={() => {\r\n if (editUserFormRef.current) {\r\n editUserFormRef.current.submit(() => {\r\n });\r\n }\r\n }}\r\n hasSubmit\r\n noMinHeight\r\n noFullScreen\r\n >\r\n \r\n \r\n\r\n {\r\n if (changePasswordFormRef.current) {\r\n changePasswordFormRef.current.cancel(() => {\r\n onChangePasswordHide();\r\n });\r\n } else {\r\n onChangePasswordHide();\r\n }\r\n }}\r\n onSubmit={() => {\r\n if (changePasswordFormRef.current) {\r\n changePasswordFormRef.current.submit(() => {\r\n });\r\n }\r\n }}\r\n hasSubmit\r\n noMinHeight\r\n noFullScreen\r\n >\r\n \r\n \r\n\r\n {\r\n if (viewsSettingsRef.current) {\r\n viewsSettingsRef.current.cancel(() => {\r\n onViewsClose();\r\n });\r\n } else {\r\n onViewsClose();\r\n }\r\n }}\r\n >\r\n \r\n \r\n\r\n {\r\n if (dashboardsSettingsRef.current) {\r\n dashboardsSettingsRef.current.cancel(() => {\r\n onDashboardsClose();\r\n });\r\n } else {\r\n onDashboardsClose();\r\n }\r\n }}\r\n >\r\n \r\n \r\n\r\n \r\n\r\n
    \r\n );\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(UserSelect);","import React, {Component, Fragment} from 'react';\r\nimport TreeView from '@material-ui/lab/TreeView';\r\nimport TreeItem from '@material-ui/lab/TreeItem';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {getDatasetInternalUrl, getDatasetsInternalUrl} from \"../../links\";\r\nimport FolderOpenIcon from '@material-ui/icons/FolderOpen';\r\nimport StorageIcon from '@material-ui/icons/Storage';\r\nimport FolderIcon from '@material-ui/icons/Folder';\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {compose} from \"redux\";\r\nimport CatalogInfoButton from \"../catalog-info-button\";\r\nimport CatalogMetadataButton from \"../catalog-metadata-button\";\r\nimport CustomLink from \"../custom-link\";\r\nimport ListIcon from '@material-ui/icons/List';\r\nimport {connect} from \"react-redux\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport HeightIcon from \"@material-ui/icons/Height\";\r\nimport VerticalAlignCenterIcon from \"@material-ui/icons/VerticalAlignCenter\";\r\n\r\nconst styles = theme => ({\r\n treeViewRoot: {\r\n color: theme.palette.primary.main\r\n },\r\n treeItemRoot: {\r\n \"&:focus > .MuiTreeItem-content .MuiTreeItem-label\": {\r\n outline: \"-webkit-focus-ring-color auto 1px\",\r\n outlineOffset: -1\r\n }\r\n },\r\n treeItemContent: {\r\n cursor: \"default\"\r\n },\r\n treeItemContentUnselectable: {\r\n cursor: \"default\",\r\n \"& > .MuiTreeItem-label\": {\r\n background: \"unset !important\"\r\n }\r\n },\r\n treeItemLabel: {\r\n paddingLeft: 0\r\n },\r\n treeItemLabelCategory: {\r\n cursor: \"pointer\",\r\n backgroundColor: \"inherit !important\",\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.04) !important\"\r\n }\r\n },\r\n treeItemLabelCategorySelected: {\r\n cursor: \"pointer\",\r\n backgroundColor: \"rgba(0, 41, 90, 0.2) !important\",\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(0, 41, 90, 0.2) !important\"\r\n }\r\n },\r\n treeItemLabelDataset: {\r\n width: \"unset\",\r\n backgroundColor: \"inherit !important\",\r\n \"& .custom-link--enabled:hover\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.04) !important\"\r\n }\r\n },\r\n treeItemLabelDatasetSelected: {\r\n width: \"unset\",\r\n backgroundColor: \"rgba(0, 41, 90, 0.2) !important\",\r\n \"& .custom-link--enabled:hover\": {\r\n backgroundColor: \"rgba(0, 41, 90, 0.2) !important\"\r\n }\r\n },\r\n node: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: 8\r\n },\r\n nodeIcon: {\r\n marginRight: 8\r\n },\r\n nodeLabel: {},\r\n nodeAction: {\r\n marginLeft: 8,\r\n \"& button\": {\r\n padding: 4\r\n }\r\n },\r\n dataset: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n datasetIcon: {},\r\n datasetLabel: {},\r\n datasetAction: {\r\n marginLeft: 4,\r\n \"& button\": {\r\n padding: 4\r\n }\r\n },\r\n expandControls: {\r\n marginBottom: 2\r\n },\r\n expandControl: {\r\n padding: 8\r\n },\r\n datasetClickableLabel: {\r\n textTransform: \"none\",\r\n fontStyle: \"italic\",\r\n fontWeight: \"normal\",\r\n fontSize: 16\r\n }\r\n});\r\n\r\nconst getNodeId = (catId, prevPath) => {\r\n let ret = \"\";\r\n\r\n if ((prevPath || []).length > 0) {\r\n ret += prevPath.join(\"+\");\r\n }\r\n\r\n if (catId) {\r\n ret += \"+\" + catId\r\n }\r\n\r\n return ret;\r\n};\r\n\r\nconst getSelectedNodeIds = categoryPath => {\r\n const ret = [];\r\n\r\n categoryPath.forEach((category, idx) => {\r\n ret.push(getNodeId(category, categoryPath.slice(0, idx)));\r\n });\r\n\r\n return ret\r\n}\r\n\r\nconst getAllNodeIds = (tree, prevPath) => {\r\n\r\n const res = [];\r\n\r\n const recursive = (subTree, prevPath) => subTree\r\n ? (\r\n subTree.map(node => {\r\n res.push(getNodeId(node.id, prevPath));\r\n if (node.childrenCategories && node.childrenCategories.length) {\r\n recursive(node.childrenCategories, [...prevPath, node.id]);\r\n }\r\n return null;\r\n })\r\n )\r\n : [];\r\n\r\n recursive(tree, prevPath);\r\n\r\n return res;\r\n};\r\n\r\nclass CategoriesTree extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n expanded: getSelectedNodeIds(props.selectedCategoryPath || []),\r\n selected: getSelectedNodeIds(props.selectedCategoryPath || [])\r\n };\r\n this.onExpand = this.onExpand.bind(this);\r\n }\r\n\r\n onExpand = expanded => this.setState({expanded});\r\n\r\n render() {\r\n\r\n const {\r\n t,\r\n classes,\r\n themeConfig,\r\n node,\r\n catalog,\r\n selectedDataset,\r\n onClick,\r\n onClose,\r\n initialPath = [],\r\n showDatasetList = false,\r\n showExpandControls = false,\r\n showCategoriesFirst = false,\r\n treeViewClasses = \"\",\r\n treeItemCategoryClasses = \"\",\r\n treeItemDatasetClasses = \"\"\r\n } = this.props;\r\n\r\n const {\r\n expanded,\r\n selected\r\n } = this.state;\r\n\r\n const getDataset = (datasetId, cat, prevPath) => {\r\n const nodeId = getNodeId(cat?.id, prevPath) + \"-\" + datasetId;\r\n\r\n const datasetLabel = catalog?.datasets?.[datasetId]\r\n ? catalog?.datasets?.[datasetId].title\r\n : catalog.uncategorizedDatasets.find(({identifier}) => identifier === datasetId) !== undefined\r\n ? catalog.uncategorizedDatasets.find(({identifier}) => identifier === datasetId).title\r\n : datasetId;\r\n const datasetSource = catalog?.datasets?.[datasetId]\r\n ? catalog?.datasets?.[datasetId].source\r\n : catalog.uncategorizedDatasets.find(({identifier}) => identifier === datasetId) !== undefined\r\n ? catalog.uncategorizedDatasets.find(({identifier}) => identifier === datasetId).source\r\n : null;\r\n const datasetDescription = catalog?.datasets?.[datasetId]\r\n ? catalog?.datasets?.[datasetId].description\r\n : catalog.uncategorizedDatasets.find(({identifier}) => identifier === datasetId) !== undefined\r\n ? catalog.uncategorizedDatasets.find(({identifier}) => identifier === datasetId).description\r\n : null;\r\n const datasetAttachments = catalog?.datasets?.[datasetId]\r\n ? catalog?.datasets?.[datasetId].attachedDataFiles\r\n : catalog.uncategorizedDatasets.find(({identifier}) => identifier === datasetId) !== undefined\r\n ? catalog.uncategorizedDatasets.find(({identifier}) => identifier === datasetId).attachedDataFiles\r\n : null;\r\n\r\n const isDatasetOnlyFile = catalog?.datasets?.[datasetId]\r\n ? catalog?.datasets?.[datasetId].catalogType === \"ONLY_FILE\"\r\n : catalog.uncategorizedDatasets.find(({identifier}) => identifier === datasetId) !== undefined\r\n ? catalog.uncategorizedDatasets.find(({identifier}) => identifier === datasetId).catalogType === \"ONLY_FILE\"\r\n : false;\r\n\r\n return (\r\n \r\n {onClick\r\n ? (\r\n !isDatasetOnlyFile\r\n ? onClick(datasetId)\r\n : null\r\n }\r\n disabled={isDatasetOnlyFile}\r\n classes={{label: classes.datasetClickableLabel}}\r\n startIcon={}\r\n >\r\n {datasetLabel}\r\n \r\n )\r\n : (\r\n \r\n {datasetLabel}\r\n \r\n }\r\n icon={\r\n \r\n }\r\n onClick={onClose}\r\n disabled={isDatasetOnlyFile}\r\n />\r\n )\r\n }\r\n {(datasetSource || datasetDescription || datasetAttachments) && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n }\r\n classes={{\r\n root: `categories-tree__tree-item--dataset ${treeItemDatasetClasses}`,\r\n content: `${classes.treeItemContent} ${isDatasetOnlyFile ? classes.treeItemContentUnselectable : \"\"}`,\r\n label: `${classes.treeItemLabel} ${datasetId === selectedDataset ? classes.treeItemLabelDatasetSelected : classes.treeItemLabelDataset}`\r\n }}\r\n />\r\n );\r\n }\r\n\r\n const getTreeItems = (tree, prevPath) => tree.map(cat => {\r\n const nodeId = getNodeId(cat.id, prevPath);\r\n return (\r\n \r\n {(expanded.includes(getNodeId(cat.id, prevPath)))\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n \r\n {cat.label}\r\n \r\n {cat.description && (\r\n
    \r\n \r\n
    \r\n )}\r\n {cat.metadataUrl && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n }\r\n /* TODO: inefficente */\r\n classes={{\r\n root: `categories-tree__tree-item--category ${classes.treeItemRoot} ${treeItemCategoryClasses}`,\r\n content: classes.treeItemContent,\r\n label: `${classes.treeItemLabel} ${selected.includes(getNodeId(cat.id, prevPath)) ? classes.treeItemLabelCategorySelected : classes.treeItemLabelCategory}`\r\n }}\r\n tabIndex={0}\r\n >\r\n {((cat.datasetIdentifiers && cat.datasetIdentifiers.length > 0) || (cat.childrenCategories && cat.childrenCategories.length > 0)) && (\r\n \r\n {showCategoriesFirst && cat.childrenCategories && cat.childrenCategories.length > 0 && (\r\n getTreeItems(cat.childrenCategories, [...prevPath, cat.id])\r\n )}\r\n {(cat.datasetIdentifiers || []).length === 0\r\n ? null\r\n : (themeConfig.showDatasetListInCategoriesTree || showDatasetList)\r\n ? cat.datasetIdentifiers.map(datasetId => getDataset(datasetId, cat, prevPath))\r\n : (\r\n \r\n {t(\"components.categoriesTree.goToData\", {datasetCount: cat.datasetIdentifiers.length})}\r\n \r\n }\r\n icon={}\r\n onClick={onClose}\r\n />\r\n }\r\n classes={{\r\n root: `categories-tree__tree-item--dataset ${treeItemDatasetClasses}`,\r\n content: classes.treeItemContent,\r\n label: `${classes.treeItemLabel} ${classes.treeItemLabelDataset}`\r\n }}\r\n />\r\n )\r\n }\r\n {!showCategoriesFirst && cat.childrenCategories && cat.childrenCategories.length > 0 && (\r\n getTreeItems(cat.childrenCategories, [...prevPath, cat.id])\r\n )}\r\n \r\n )}\r\n \r\n )\r\n });\r\n\r\n let tree = catalog.categoryGroups.length > 0\r\n ? catalog.hasCategorySchemes\r\n ? catalog.categoryGroups.map(({id, label, categories}) => ({id, label, childrenCategories: categories}))\r\n : catalog.categoryGroups[0].categories\r\n : null;\r\n\r\n if (catalog.uncategorizedDatasets && catalog.uncategorizedDatasets.length > 0) {\r\n tree = [\r\n ...(tree || []),\r\n {\r\n id: \"uncategorized\",\r\n label: t(\"commons.catalog.uncategorized\"),\r\n childrenCategories: [],\r\n datasetIdentifiers: catalog.uncategorizedDatasets.map(({identifier}) => identifier)\r\n }\r\n ];\r\n }\r\n\r\n return (\r\n \r\n {showExpandControls && catalog.categoryGroups.length > 0 && (\r\n \r\n \r\n \r\n {\r\n let nodeIds = [];\r\n if (catalog.hasCategorySchemes) {\r\n catalog.categoryGroups.forEach(({id, label, categories}) => {\r\n nodeIds = [...nodeIds, ...getAllNodeIds([{id, label, childrenCategories: categories}], initialPath), \"uncategorized\"];\r\n });\r\n } else {\r\n nodeIds = [...getAllNodeIds(catalog.categoryGroups[0].categories, initialPath), \"uncategorized\"];\r\n }\r\n this.onExpand(nodeIds);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.onExpand([])}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {tree && (\r\n }\r\n defaultExpandIcon={}\r\n expanded={expanded}\r\n onNodeToggle={(_, nodeIds) => this.onExpand(nodeIds)}\r\n classes={{\r\n root: `categories-tree__tree-view ${classes.treeViewRoot} ${treeViewClasses}`\r\n }}\r\n >\r\n {getTreeItems(tree, initialPath)}\r\n {(catalog?.rootDatasets || []).map(({identifier}) => getDataset(identifier, null, initialPath))}\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation(),\r\n connect(state => ({\r\n themeConfig: state.app.themeConfig\r\n }))\r\n)(CategoriesTree);","import {initRequest, RequestMethod} from \"../../middlewares/request/requestActions\";\r\nimport {\r\n getAddHubDashboardUrl,\r\n getHubConfigGetUrl,\r\n getHubConfigPutUrl,\r\n getHubDashboardsUrl,\r\n getOrderHubDashboardsUrl,\r\n getRemoveHubDashboardUrl,\r\n getUserDashboardsUrl\r\n} from \"../../serverApi/urls\";\r\n\r\nexport const HUB_CONFIG_FETCH = \"hubConfig/fetch\";\r\nexport const HUB_CONFIG_SEND = \"hubConfig/send\";\r\nexport const HUB_CONFIG_CLEAR = \"hubConfig/clear\";\r\nexport const HUB_CONFIG_DASHBOARDS_FETCH = \"hubConfig/dashboards/fetch\";\r\nexport const HUB_CONFIG_DASHBOARDS_FETCH_ALL = \"hubConfig/dashboards/fetchAll\";\r\nexport const HUB_CONFIG_DASHBOARDS_DASHBOARD_ADD = \"hubConfig/dashboards/addDashboard\";\r\nexport const HUB_CONFIG_DASHBOARDS_DASHBOARD_REMOVE = \"hubConfig/dashboards/removeDashboard\";\r\nexport const HUB_CONFIG_DASHBOARDS_ORDERS_SEND = \"hubConfig/dashboards/sendOrders\";\r\nexport const HUB_CONFIG_DASHBOARDS_CLEAR = \"hubConfig/dashboards/clear\";\r\nexport const HUB_CONFIG_DASHBOARDS_CLEAR_ALL = \"hubConfig/dashboards/clearAll\";\r\nexport const HUB_CONFIG_CLOSE = \"hubConfig/close\";\r\n\r\nexport const fetchHubConfig = () => initRequest(\r\n HUB_CONFIG_FETCH,\r\n getHubConfigGetUrl(),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.appSettings.messages.fetchConfig.start\")\r\n })\r\n);\r\n\r\nexport const sendHubConfig = (config: any) => initRequest(\r\n HUB_CONFIG_SEND,\r\n getHubConfigPutUrl(),\r\n RequestMethod.PUT,\r\n config,\r\n t => ({\r\n onStart: t(\"scenes.appSettings.messages.sendConfig.start\")\r\n })\r\n);\r\n\r\nexport const clearHubConfig = () => ({\r\n type: HUB_CONFIG_CLEAR\r\n});\r\n\r\nexport const fetchHubConfigDashboards = () => initRequest(\r\n HUB_CONFIG_DASHBOARDS_FETCH,\r\n getHubDashboardsUrl(),\r\n RequestMethod.GET,\r\n null,\r\n t => ({\r\n onStart: t(\"scenes.appSettings.messages.fetchDashboards.start\")\r\n })\r\n);\r\n\r\nexport const fetchAllHubConfigDashboards = () => initRequest(\r\n HUB_CONFIG_DASHBOARDS_FETCH_ALL,\r\n getUserDashboardsUrl(),\r\n RequestMethod.GET,\r\n null,\r\n t => ({\r\n onStart: t(\"scenes.appSettings.messages.fetchAllDashboards.start\")\r\n })\r\n);\r\n\r\nexport const addHubConfigDashboardsDashboard = (dashboardId: number) => initRequest(\r\n HUB_CONFIG_DASHBOARDS_DASHBOARD_ADD,\r\n getAddHubDashboardUrl(dashboardId),\r\n RequestMethod.POST,\r\n null,\r\n t => ({\r\n onStart: t(\"scenes.appSettings.messages.addDashboard.start\")\r\n })\r\n);\r\n\r\nexport const removeHubConfigDashboardsDashboard = (dashboardId: number) => initRequest(\r\n HUB_CONFIG_DASHBOARDS_DASHBOARD_REMOVE,\r\n getRemoveHubDashboardUrl(dashboardId),\r\n RequestMethod.DELETE,\r\n null,\r\n t => ({\r\n onStart:t(\"scenes.appSettings.messages.removeDashboard.start\")\r\n })\r\n);\r\n\r\nexport const sendHubConfigDashboardsOrders = (orderedDashboardsIds: number[]) => initRequest(\r\n HUB_CONFIG_DASHBOARDS_ORDERS_SEND,\r\n getOrderHubDashboardsUrl(),\r\n RequestMethod.POST,\r\n orderedDashboardsIds,\r\n t => ({\r\n onStart: t(\"scenes.appSettings.messages.sendDashboardsOrders.start\")\r\n })\r\n)\r\n\r\nexport const clearHubConfigDashboards = () => ({\r\n type: HUB_CONFIG_DASHBOARDS_CLEAR\r\n});\r\n\r\nexport const clearAllHubConfigDashboards = () => ({\r\n type: HUB_CONFIG_DASHBOARDS_CLEAR_ALL\r\n});\r\n\r\nexport const closeHubConfig = () => ({\r\n type: HUB_CONFIG_CLOSE\r\n});","export const SPINNER_MESSAGE_ADD = \"spinner/addMessage\";\r\nexport const SPINNER_MESSAGE_REMOVE = \"spinner/removeMessage\";\r\nexport const SPINNER_TIMEOUT_SET = \"spinner/setTimeout\";\r\nexport const SPINNER_TIMEOUT_CLEAR = \"spinner/clearTimeout\";\r\nexport const SPINNER_FLUSH = \"spinner/flush\";\r\n\r\nexport const addSpinnerMessage = (uid: any, message: any) => ({\r\n type: SPINNER_MESSAGE_ADD,\r\n payload: {\r\n uid,\r\n message\r\n }\r\n});\r\n\r\nexport const markSpinnerMessage = (uid: any, isError?: boolean) => ({\r\n type: SPINNER_MESSAGE_REMOVE,\r\n payload: {\r\n uid,\r\n isError\r\n }\r\n});\r\n\r\nexport const setSpinnerTimeout = (timeout: any) => ({\r\n type: SPINNER_TIMEOUT_SET,\r\n payload: {\r\n timeout\r\n }\r\n});\r\n\r\nexport const clearSpinnerTimeout = () => ({\r\n type: SPINNER_TIMEOUT_CLEAR\r\n});\r\n\r\nexport const flushSpinner = () => ({\r\n type: SPINNER_FLUSH\r\n});\r\n\r\n\r\n","import React, {Fragment, useEffect, useState} from \"react\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CancelIcon from \"@material-ui/icons/Cancel\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport PublishIcon from \"@material-ui/icons/Publish\";\r\nimport {v4 as uuidv4} from \"uuid\";\r\nimport {connect} from \"react-redux\";\r\nimport {getFileUploadUrl} from \"../../serverApi/urls\";\r\nimport {compose} from \"redux\";\r\nimport {\r\n addSpinnerMessage,\r\n markSpinnerMessage,\r\n} from \"../../state/spinner/spinnerActions\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nconst styles = theme => ({\r\n startAdornment: {\r\n marginRight: theme.spacing(2),\r\n },\r\n fileInput: {\r\n display: \"none\",\r\n },\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n baseURL: state.config.baseURL,\r\n user: state.user,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n addSpinnerMessage: (uuid, message) =>\r\n dispatch(addSpinnerMessage(uuid, message)),\r\n markSpinnerMessage: (uuid, isError) =>\r\n dispatch(markSpinnerMessage(uuid, isError)),\r\n});\r\n\r\nexport const getFileName = (formData) => {\r\n\r\n if (formData !== null) {\r\n const files = formData.get(\"files\");\r\n if (files) {\r\n return files.name;\r\n }\r\n }\r\n return \"\";\r\n};\r\n\r\nconst FileInput = ({\r\n label,\r\n value,\r\n onChange,\r\n accept = \"image/*, video/*\",\r\n classes,\r\n baseURL,\r\n error,\r\n helperText,\r\n required,\r\n addSpinnerMessage,\r\n markSpinnerMessage,\r\n user,\r\n onUpload,\r\n}) => {\r\n const [id] = useState(uuidv4());\r\n const [fileName, setFileName] = useState(null);\r\n const {t} = useTranslation();\r\n\r\n useEffect(() => {\r\n setFileName(value?.substring(value.lastIndexOf(\"/\") + 1) || \"\");\r\n }, [value]);\r\n\r\n return (\r\n \r\n {\r\n const file = e.target.files[0];\r\n\r\n let fileFormData = new FormData();\r\n fileFormData.append(\"files\", file);\r\n\r\n if (onUpload) {\r\n onUpload(fileFormData);\r\n\r\n } else {\r\n const uuid = uuidv4();\r\n\r\n addSpinnerMessage(\r\n uuid,\r\n t(\"components.fileInput.messages.upload.start\")\r\n );\r\n\r\n fetch(baseURL + getFileUploadUrl(), {\r\n method: \"POST\",\r\n body: fileFormData,\r\n headers: {\r\n Authorization: user.token ? `bearer ${user.token}` : undefined,\r\n },\r\n credentials: \"include\",\r\n })\r\n .then(res => res.json())\r\n .then(res => {\r\n markSpinnerMessage(uuid);\r\n const filePath = res[0];\r\n if (onChange) {\r\n onChange(filePath);\r\n }\r\n setFileName(filePath.substring(filePath.lastIndexOf(\"/\") + 1));\r\n })\r\n .catch(() => {\r\n markSpinnerMessage(uuid, true);\r\n window.error.show(\r\n t(\"components.fileInput.messages.upload.error\")\r\n );\r\n });\r\n }\r\n }}\r\n disabled={!!value}\r\n />\r\n \r\n \r\n \r\n ),\r\n endAdornment: value && (\r\n \r\n {\r\n setFileName(\"\");\r\n if (onUpload) {\r\n onUpload(null);\r\n }\r\n if (onChange) {\r\n onChange(\"\");\r\n }\r\n const input = document.getElementById(id);\r\n input.value = null;\r\n }}\r\n >\r\n \r\n \r\n \r\n ),\r\n }}\r\n error={error}\r\n required={required}\r\n helperText={helperText}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(FileInput);\r\n","import React, {forwardRef, Fragment, useEffect, useImperativeHandle, useState} from 'react';\r\nimport {connect} from \"react-redux\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport {compose} from \"redux\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport ArrowDropUpIcon from \"@material-ui/icons/ArrowDropUp\";\r\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport CustomMaterialTable from \"../custom-material-table\";\r\nimport {getI18nObjCustomFilterAndSearch, localizeI18nObj} from \"../../utils/i18n\";\r\nimport \"./style.css\";\r\nimport FullscreenDialog from \"../fullscreen-dialog\";\r\n\r\nconst styles = theme => ({\r\n tableToolbar: {\r\n marginBottom: theme.spacing(1)\r\n },\r\n buttonAction: {\r\n ...theme.typography.button\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n languages: state.app.languages,\r\n defaultLanguage: state.app.language\r\n});\r\n\r\nconst DashboardsManager = ({\r\n classes,\r\n defaultLanguage,\r\n languages,\r\n dashboards,\r\n allDashboards,\r\n fetchDashboards,\r\n fetchAllDashboards,\r\n addDashboard,\r\n removeDashboard,\r\n sendDashboardsOrders,\r\n clearDashboards,\r\n clearAllDashboards\r\n }, ref) => {\r\n\r\n const [needFetch, setNeedFetch] = useState(true);\r\n const {t} = useTranslation();\r\n\r\n useEffect(() => {\r\n if (needFetch) {\r\n setNeedFetch(false);\r\n fetchDashboards();\r\n }\r\n }, [dashboards, needFetch, setNeedFetch, fetchDashboards]);\r\n\r\n useImperativeHandle(ref, () => ({\r\n destroy(f) {\r\n clearDashboards();\r\n if (f) {\r\n f();\r\n }\r\n }\r\n }));\r\n\r\n const orderedDashboardsIds = (dashboards || []).map(({dashboardId}) => dashboardId);\r\n\r\n const moveUp = rowIndex =>\r\n sendDashboardsOrders([\r\n ...orderedDashboardsIds.slice(0, rowIndex - 1),\r\n orderedDashboardsIds[rowIndex],\r\n orderedDashboardsIds[rowIndex - 1],\r\n ...orderedDashboardsIds.slice(rowIndex + 1)\r\n ]);\r\n\r\n const moveDown = rowIndex =>\r\n sendDashboardsOrders([\r\n ...orderedDashboardsIds.slice(0, rowIndex),\r\n orderedDashboardsIds[rowIndex + 1],\r\n orderedDashboardsIds[rowIndex],\r\n ...orderedDashboardsIds.slice(rowIndex + 2)\r\n ]);\r\n\r\n return dashboards !== null && (\r\n \r\n clearAllDashboards()}\r\n >\r\n clearAllDashboards()}>\r\n {t(\"components.dashboardsManager.modals.addDashboard.title\")}\r\n \r\n \r\n {allDashboards !== null && (\r\n localizeI18nObj(title, defaultLanguage, languages),\r\n customFilterAndSearch: getI18nObjCustomFilterAndSearch(defaultLanguage, languages)\r\n }\r\n ]}\r\n data={allDashboards}\r\n actions={[\r\n ({dashboardId}) => {\r\n const assigned = !!dashboards.find(dashboard => dashboard.dashboardId === dashboardId)\r\n return ({\r\n icon: AddIcon,\r\n tooltip:\r\n assigned\r\n ? t(\"components.dashboardsManager.modals.addDashboard.table.actions.addDashboard.tooltip.assigned\")\r\n : t(\"components.dashboardsManager.modals.addDashboard.table.actions.addDashboard.tooltip.notAssigned\"),\r\n onClick: (_, {dashboardId}) => addDashboard(dashboardId),\r\n disabled: assigned\r\n });\r\n }\r\n ]}\r\n options={{\r\n actionsColumnIndex: 2\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n }\r\n onClick={() => fetchAllDashboards()}\r\n >\r\n {t(\"components.dashboardsManager.addDashboard\")}\r\n \r\n }\r\n columns={[\r\n {\r\n field: \"title\",\r\n title: t(\"components.dashboardsManager.table.columns.dashboardTitle\"),\r\n render: ({title}) => localizeI18nObj(title, defaultLanguage, languages),\r\n customFilterAndSearch: getI18nObjCustomFilterAndSearch(defaultLanguage, languages)\r\n }\r\n ]}\r\n data={dashboards}\r\n actions={[\r\n ({tableData}) => ({\r\n icon: ArrowDropUpIcon,\r\n tooltip: t(\"components.dashboardsManager.table.actions.dashboardOrderMoveUp\"),\r\n onClick: (_, {tableData}) => moveUp(tableData.id), // tableData.id is the rowIndex\r\n disabled: tableData.id === 0\r\n }),\r\n ({tableData}) => ({\r\n icon: ArrowDropDownIcon,\r\n tooltip: t(\"components.dashboardsManager.table.actions.dashboardOrderMoveDown\"),\r\n onClick: (_, {tableData}) => moveDown(tableData.id), // tableData.id is the rowIndex\r\n disabled: tableData.id === dashboards.length - 1\r\n }),\r\n {\r\n icon: DeleteIcon,\r\n tooltip: t(\"components.dashboardsManager.table.actions.removeDashboard\"),\r\n onClick: (_, {dashboardId}) => removeDashboard(dashboardId)\r\n }\r\n ]}\r\n options={{\r\n actionsColumnIndex: 2\r\n }}\r\n />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps, null, null, {forwardRef: true}),\r\n forwardRef\r\n)(DashboardsManager);","import React from \"react\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport withTheme from \"@material-ui/core/styles/withTheme\";\r\n\r\nconst InfoTooltip = ({children, theme}) => {\r\n\r\n return children\r\n ? (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n : (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withTheme(InfoTooltip);","import React, {Fragment} from 'react';\r\nimport InfoTooltip from \"../info-tooltip\";\r\n\r\nconst FormLabelWithTooltip = ({children, tooltip, tooltipOnRight}) => {\r\n\r\n const Tooltip = () =>\r\n \r\n \r\n {tooltip}\r\n \r\n
    ;\r\n\r\n return (\r\n \r\n {!tooltipOnRight && }\r\n \r\n {children}\r\n \r\n {tooltipOnRight && }\r\n \r\n );\r\n};\r\n\r\nexport default FormLabelWithTooltip;","import React, {forwardRef, Fragment, useEffect, useImperativeHandle, useState} from 'react';\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport {useForm} from 'react-hook-form'\r\nimport {compose} from \"redux\";\r\nimport {\r\n addHubConfigDashboardsDashboard,\r\n clearAllHubConfigDashboards,\r\n clearHubConfig,\r\n clearHubConfigDashboards,\r\n closeHubConfig,\r\n fetchAllHubConfigDashboards,\r\n fetchHubConfig,\r\n fetchHubConfigDashboards,\r\n removeHubConfigDashboardsDashboard,\r\n sendHubConfig,\r\n sendHubConfigDashboardsOrders\r\n} from \"../../../state/hubConfig/hubConfigActions\";\r\nimport {connect} from \"react-redux\";\r\nimport FileInput from \"../../file-input\";\r\nimport DashboardsManager from \"../../dashboards-manager\";\r\nimport {canManageAppDashboards} from \"../../../utils/user\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport I18nTextField from \"../../i18n-text-field\";\r\nimport {localizeI18nObj} from \"../../../utils/i18n\";\r\nimport I18nHtmlEditor from \"../../i18n-html-editor\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {isValidIntegerInInclusiveRange} from \"../../../utils/validator\";\r\nimport {getMapLayerOptions} from \"../../map/constants\";\r\nimport FormLabelWithTooltip from \"../../form-label-with-tooltip\";\r\n\r\nimport themeConfig from \"../../../config/theme/config.json\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: \"100%\"\r\n },\r\n field: {\r\n marginTop: theme.spacing(3)\r\n },\r\n tabContent: {\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n height: \"calc(100% - 56px)\",\r\n marginTop: 8,\r\n padding: \"0 4px\"\r\n },\r\n disclaimerLabel: {\r\n fontSize: \"1rem\",\r\n marginTop: theme.spacing(3)\r\n },\r\n paper: {\r\n marginTop: theme.spacing(2),\r\n padding: theme.spacing(3)\r\n },\r\n paperHeader: {\r\n padding: 0\r\n },\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n config: state.hubConfig.hub,\r\n user: state.user,\r\n dashboards: state.hubConfig.hubDashboards,\r\n allDashboards: state.hubConfig.allDashboards,\r\n mapLayersConfig: state.maps.mapLayersConfig,\r\n appLanguage: state.app.language,\r\n appLanguages: state.app.languages\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n clearConfig: () => dispatch(clearHubConfig()),\r\n fetchConfig: () => dispatch(fetchHubConfig()),\r\n sendConfig: config => dispatch(sendHubConfig(config)),\r\n fetchDashboards: () => dispatch(fetchHubConfigDashboards()),\r\n fetchAllDashboards: () => dispatch(fetchAllHubConfigDashboards()),\r\n clearDashboards: () => dispatch(clearHubConfigDashboards()),\r\n clearAllDashboards: () => dispatch(clearAllHubConfigDashboards()),\r\n addDashboard: dashboardId => dispatch(addHubConfigDashboardsDashboard(dashboardId)),\r\n removeDashboard: dashboardId => dispatch(removeHubConfigDashboardsDashboard(dashboardId)),\r\n sendDashboardsOrders: orderedDashboarIds => dispatch(sendHubConfigDashboardsOrders(orderedDashboarIds)),\r\n onClose: () => dispatch(closeHubConfig())\r\n});\r\n\r\nconst Form = compose(withStyles(styles), forwardRef)(({\r\n classes,\r\n config,\r\n onSubmit,\r\n onCancel,\r\n user,\r\n dashboards,\r\n allDashboards,\r\n mapLayersConfig,\r\n appLanguage,\r\n appLanguages,\r\n fetchDashboards,\r\n fetchAllDashboards,\r\n clearDashboards,\r\n clearAllDashboards,\r\n addDashboard,\r\n removeDashboard,\r\n sendDashboardsOrders\r\n }, ref) => {\r\n\r\n const [tab, setTab] = useState(\"general\");\r\n const dashboardsManagerRef = React.createRef();\r\n const {t} = useTranslation();\r\n\r\n const [mustChangeTabOnErrors, setMustChangeTabOnErrors] = useState(true);\r\n\r\n const configExtras = config.extras ? JSON.parse(config.extras) : {};\r\n\r\n const {register, errors, handleSubmit, watch, setValue} = useForm({\r\n defaultValues: {\r\n ...config,\r\n pageSize: configExtras.PageSize,\r\n mapLayer: configExtras.MapLayer,\r\n treePageSize: configExtras.TreePageSize,\r\n headerLogoSmallURL: configExtras.HeaderLogoSmallURL,\r\n headerLogoAlt: configExtras.HeaderLogoAlt,\r\n headerLogoHref: configExtras.HeaderLogoHref,\r\n headerLogoTitle: configExtras.headerLogoTitle\r\n }\r\n });\r\n\r\n useImperativeHandle(ref, () => ({\r\n submit(f) {\r\n setMustChangeTabOnErrors(true)\r\n handleSubmit(val => {\r\n const data = {\r\n ...config,\r\n ...val,\r\n pageSize: undefined,\r\n mapLayer: undefined,\r\n treePageSize: undefined,\r\n headerLogoSmallURL: undefined,\r\n headerLogoAlt: undefined,\r\n headerLogoHref: undefined,\r\n headerLogoTitle: undefined\r\n };\r\n\r\n const extras = {\r\n ...JSON.parse(data.extras || \"{}\"),\r\n PageSize: val.pageSize,\r\n MapLayer: val.mapLayer,\r\n TreePageSize: val.treePageSize,\r\n HeaderLogoSmallURL: val.headerLogoSmallURL,\r\n HeaderLogoAlt: val.headerLogoAlt,\r\n HeaderLogoHref: val.headerLogoHref,\r\n headerLogoTitle: val.headerLogoTitle\r\n };\r\n\r\n const clearedExtras = Object.keys(extras)\r\n .filter((k) => extras[k] !== null && extras[k] !== undefined)\r\n .reduce((a, k) => ({...a, [k]: extras[k]}), {});\r\n\r\n data.extras = JSON.stringify(clearedExtras);\r\n\r\n onSubmit(data);\r\n f(data);\r\n if (dashboardsManagerRef.current) {\r\n dashboardsManagerRef.current.destroy();\r\n }\r\n })();\r\n },\r\n cancel(f) {\r\n onCancel();\r\n f();\r\n if (dashboardsManagerRef.current) {\r\n dashboardsManagerRef.current.destroy();\r\n }\r\n }\r\n }));\r\n\r\n /* custom register */\r\n useEffect(() => {\r\n register({\r\n name: 'title'\r\n });\r\n register({\r\n name: 'slogan'\r\n });\r\n register({\r\n name: 'supportedLanguages'\r\n }, {\r\n validate: val => val.length > 0 || t(\"commons.validation.required\")\r\n });\r\n register({\r\n name: 'defaultLanguage'\r\n }, {\r\n required: t(\"commons.validation.required\")\r\n });\r\n register({\r\n name: 'maxObservationsAfterCriteria'\r\n }, {\r\n required: t(\"commons.validation.required\"),\r\n min: {\r\n value: 1,\r\n message: t(\"commons.validation.positiveInteger\")\r\n }\r\n })\r\n register({\r\n name: \"maxCells\"\r\n }, {\r\n required: t(\"commons.validation.required\"),\r\n min: {\r\n value: 1,\r\n message: t(\"commons.validation.positiveInteger\")\r\n }\r\n })\r\n register({\r\n name: 'backgroundMediaURL'\r\n });\r\n register({\r\n name: 'logoURL'\r\n });\r\n register({\r\n name: 'headerLogoURL'\r\n });\r\n register({\r\n name: 'headerLogoSmallURL'\r\n });\r\n register({\r\n name: 'headerLogoAlt'\r\n });\r\n register({\r\n name: 'headerLogoHref'\r\n });\r\n register({\r\n name: 'headerLogoTitle'\r\n });\r\n register({\r\n name: 'description'\r\n });\r\n register({\r\n name: 'pageSize'\r\n }, {\r\n validate: val => !val || val > 0 || t(\"commons.validation.positiveInteger\")\r\n });\r\n register({\r\n name: \"disclaimer\"\r\n });\r\n register({\r\n name: \"mapLayer\"\r\n }, {\r\n required: t(\"commons.validation.required\")\r\n });\r\n register({\r\n name: \"treePageSize\"\r\n }, {\r\n validate: val => !val || (isValidIntegerInInclusiveRange(val, 1) || t(\"commons.validation.positiveInteger\"))\r\n });\r\n }, [register, t]);\r\n\r\n /* switch to first tab with errors */\r\n if (Object.keys(errors).length > 0 && mustChangeTabOnErrors) {\r\n\r\n setMustChangeTabOnErrors(false);\r\n\r\n const firstFieldWithErrors = Object.keys(errors)[0];\r\n\r\n if (\r\n firstFieldWithErrors === \"title\" ||\r\n firstFieldWithErrors === \"slogan\" ||\r\n firstFieldWithErrors === \"supportedLanguages\" ||\r\n firstFieldWithErrors === \"defaultLanguage\" ||\r\n firstFieldWithErrors === \"maxObservationsAfterCriteria\" ||\r\n firstFieldWithErrors === \"maxCells\" ||\r\n firstFieldWithErrors === \"treePageSize\" ||\r\n firstFieldWithErrors === \"backgroundMediaURL\" ||\r\n firstFieldWithErrors === \"logoURL\" ||\r\n firstFieldWithErrors === \"headerLogoURL\"\r\n ) {\r\n if (tab !== \"general\") {\r\n setTab(\"general\")\r\n }\r\n\r\n } else if (\r\n firstFieldWithErrors === \"description\"\r\n ) {\r\n if (tab !== \"infos\") {\r\n setTab(\"infos\")\r\n }\r\n\r\n } else if (\r\n firstFieldWithErrors === \"disclaimer\"\r\n ) {\r\n if (tab !== \"users\") {\r\n setTab(\"users\")\r\n }\r\n\r\n } else if (\r\n firstFieldWithErrors === \"mapLayer\"\r\n ) {\r\n if (tab !== \"map\") {\r\n setTab(\"map\")\r\n }\r\n }\r\n }\r\n\r\n const defaultLanguage = watch('defaultLanguage');\r\n const supportedLanguages = watch('supportedLanguages');\r\n\r\n return (\r\n \r\n \r\n {\r\n setTab(tab)\r\n }}\r\n >\r\n \r\n \r\n \r\n {canManageAppDashboards(user) && themeConfig.enableDashboard && (\r\n \r\n )}\r\n \r\n \r\n
    \r\n {tab === \"general\" && (\r\n \r\n \r\n setValue('title', value)}\r\n />\r\n \r\n \r\n setValue('slogan', value)}\r\n />\r\n \r\n \r\n value.map((option, index) => (\r\n \r\n ))\r\n }\r\n required\r\n onChange={(e, val) => {\r\n setValue('supportedLanguages', val);\r\n if (defaultLanguage && !val.includes(defaultLanguage)) {\r\n setValue('defaultLanguage', \"\");\r\n }\r\n }}\r\n renderInput={params => (\r\n \r\n \r\n {t(\"scenes.appSettings.fields.supportedLanguages.helper.text\")}\r\n \r\n {t(\"scenes.appSettings.fields.supportedLanguages.helper.linkText\")}\r\n \r\n \r\n )}\r\n />\r\n \r\n )}\r\n />\r\n \r\n setValue('defaultLanguage', e.target.value)}\r\n value={watch(\"defaultLanguage\") || ''}\r\n error={!!errors.defaultLanguage}\r\n helperText={errors.defaultLanguage?.message || t(\"scenes.appSettings.fields.defaultLanguage.helper\")}\r\n variant=\"outlined\"\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {supportedLanguages.map((val, index) =>\r\n {val}\r\n )}\r\n \r\n \r\n \r\n setValue('maxObservationsAfterCriteria', target.value)}\r\n />\r\n \r\n \r\n setValue('maxCells', target.value)}\r\n />\r\n \r\n \r\n setValue('treePageSize', target.value)}\r\n />\r\n \r\n {/*\r\n setValue('pageSize', Number(target.value))}\r\n />\r\n */}\r\n \r\n setValue('backgroundMediaURL', value)}\r\n />\r\n \r\n \r\n setValue('logoURL', value)}\r\n />\r\n \r\n \r\n setValue('headerLogoURL', value)}\r\n />\r\n \r\n \r\n setValue('headerLogoSmallURL', value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.appSettings.fields.headerLogoAlt.label\")}\r\n \r\n }\r\n error={!!errors.headerLogoAlt}\r\n helperText={errors.headerLogoAlt?.message}\r\n variant=\"outlined\"\r\n value={watch('headerLogoAlt') || {}}\r\n onChange={value => setValue('headerLogoAlt', value)}\r\n />\r\n \r\n \r\n setValue('headerLogoHref', target.value)}\r\n />\r\n \r\n \r\n setValue('headerLogoTitle', value)}\r\n />\r\n \r\n \r\n )}\r\n {tab === \"infos\" && (\r\n setValue('description', val)}\r\n />\r\n )}\r\n {tab === \"users\" && (\r\n \r\n {/*\r\n value.map((option, index) => (\r\n \r\n ))\r\n }\r\n required\r\n onChange={(e, val) => setValue('userTypes', val)}\r\n renderInput={params => (\r\n \r\n \r\n \r\n )}\r\n />*/}\r\n
    \r\n {t(\"scenes.appSettings.fields.disclaimer.label\")}:\r\n
    \r\n setValue('disclaimer', val)}\r\n />\r\n
    \r\n )}\r\n {tab === \"dashboards\" && canManageAppDashboards(user) && themeConfig.enableDashboard && (\r\n \r\n )}\r\n {tab === \"map\" && (\r\n \r\n setValue(\"mapLayer\", e.target.value)}\r\n value={watch(\"mapLayer\") || \"\"}\r\n error={!!errors.mapLayer}\r\n variant=\"outlined\"\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {getMapLayerOptions(t).map(({value, label}, idx) =>\r\n {label}\r\n )}\r\n {(mapLayersConfig || []).map(({id, name}, idx) =>\r\n \r\n {name\r\n ? localizeI18nObj(name, appLanguage, appLanguages)\r\n : id\r\n }\r\n \r\n )}\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n});\r\n\r\nconst AppSettingsForm = ({\r\n config,\r\n fetchConfig,\r\n sendConfig,\r\n clearConfig,\r\n user,\r\n dashboards,\r\n allDashboards,\r\n mapLayersConfig,\r\n appLanguage,\r\n appLanguages,\r\n fetchDashboards,\r\n fetchAllDashboards,\r\n clearDashboards,\r\n clearAllDashboards,\r\n addDashboard,\r\n removeDashboard,\r\n sendDashboardsOrders,\r\n onClose\r\n }, ref) => {\r\n\r\n const [needConfig, setNeedConfig] = useState(true);\r\n\r\n useEffect(() => {\r\n\r\n if (needConfig) {\r\n setNeedConfig(false);\r\n fetchConfig();\r\n }\r\n }, [config, needConfig, setNeedConfig, fetchConfig]);\r\n\r\n return config && (\r\n {\r\n clearConfig();\r\n onClose();\r\n }}\r\n user={user}\r\n dashboards={dashboards}\r\n allDashboards={allDashboards}\r\n mapLayersConfig={mapLayersConfig}\r\n appLanguage={appLanguage}\r\n appLanguages={appLanguages}\r\n fetchDashboards={fetchDashboards}\r\n fetchAllDashboards={fetchAllDashboards}\r\n clearDashboards={clearDashboards}\r\n clearAllDashboards={clearAllDashboards}\r\n addDashboard={addDashboard}\r\n removeDashboard={removeDashboard}\r\n sendDashboardsOrders={sendDashboardsOrders}\r\n />\r\n );\r\n\r\n};\r\n\r\nexport default compose(connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef)(AppSettingsForm);","import {initRequest, RequestMethod} from \"../../middlewares/request/requestActions\";\r\nimport {\r\n getAddNodeDashboardUrl,\r\n getNodeConfigGetUrl,\r\n getNodeDashboardsUrl,\r\n getNodeDeleteUrl,\r\n getNodesConfigPostUrl,\r\n getNodesConfigPutUrl,\r\n getNodesConfigUrl,\r\n getNodesOrderPutUrl,\r\n getOrderNodeDashboardsUrl,\r\n getRemoveNodeDashboardUrl,\r\n getUserDashboardsUrl\r\n} from \"../../serverApi/urls\";\r\n\r\nexport const NODES_CONFIG_NODES_FETCH = \"nodesConfig/fetchNodes\";\r\nexport const NODES_CONFIG_NODES_CLEAR = \"nodesConfig/clearNodes\";\r\nexport const NODES_CONFIG_NODE_VISIBILITY_SET = \"nodesConfig/nodeVisibilitySet\";\r\nexport const NODES_CONFIG_NODE_ID_SET = \"nodesConfig/nodeIdSet\";\r\nexport const NODES_CONFIG_NODE_FETCH = \"nodesConfig/fetchNode\";\r\nexport const NODES_CONFIG_NODE_CLEAR = \"nodesConfig/clearNode\";\r\nexport const NODES_CONFIG_NODES_ORDER_SEND = \"nodesConfig/sendNodesOrder\";\r\nexport const NODES_CONFIG_NODE_DELETE = \"nodesConfig/deleteNode\";\r\nexport const NODES_CONFIG_NODE_CREATE = \"nodesConfig/createNode\";\r\nexport const NODES_CONFIG_NODE_EDIT = \"nodesConfig/editNode\";\r\nexport const NODES_CONFIG_NODE_DASHBOARDS_FETCH = \"nodesConfig/nodeDashboards/fetch\";\r\nexport const NODES_CONFIG_NODE_DASHBOARDS_FETCH_ALL = \"nodesConfig/nodeDashboards/fetchAll\";\r\nexport const NODES_CONFIG_NODE_DASHBOARDS_DASHBOARD_ADD = \"nodesConfig/nodeDashboards/addDashboard\";\r\nexport const NODES_CONFIG_NODE_DASHBOARDS_DASHBOARD_REMOVE = \"nodesConfig/nodeDashboards/removeDashboard\";\r\nexport const NODES_CONFIG_NODE_DASHBOARDS_ORDERS_SEND = \"nodesConfig/nodeDashboards/sendOrders\";\r\nexport const NODES_CONFIG_NODE_DASHBOARDS_CLEAR = \"nodesConfig/nodeDashboards/clear\";\r\nexport const NODES_CONFIG_NODE_DASHBOARDS_CLEAR_ALL = \"nodesConfig/nodeDashboards/clearAll\";\r\nexport const NODES_CONFIG_CLOSE = \"nodesConfig/close\";\r\n\r\nexport const fetchNodesConfigNodes = () => initRequest(\r\n NODES_CONFIG_NODES_FETCH,\r\n getNodesConfigUrl(),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.fetchNodes.start\")\r\n })\r\n);\r\n\r\nexport const clearNodesConfigNodes = () => ({\r\n type: NODES_CONFIG_NODES_CLEAR\r\n});\r\n\r\nexport const setNodesConfigNodeVisibility = (visible: boolean) => ({\r\n type: NODES_CONFIG_NODE_VISIBILITY_SET,\r\n visible\r\n});\r\n\r\nexport const setNodesConfigNodeId = (nodeId: number) => ({\r\n type: NODES_CONFIG_NODE_ID_SET,\r\n nodeId\r\n});\r\n\r\nexport const sendNodesConfigNodesOrder = (orderedIds: number[]) => initRequest(\r\n NODES_CONFIG_NODES_ORDER_SEND,\r\n getNodesOrderPutUrl(),\r\n RequestMethod.PUT,\r\n orderedIds,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.sendNodesOrder.start\")\r\n })\r\n);\r\n\r\nexport const deleteNodesConfigNode = (nodeId: number) => initRequest(\r\n NODES_CONFIG_NODE_DELETE,\r\n getNodeDeleteUrl(nodeId),\r\n RequestMethod.DELETE,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.deleteNode.start\")\r\n }),\r\n {\r\n nodeId,\r\n onForce: () => initRequest(\r\n NODES_CONFIG_NODE_DELETE,\r\n getNodeDeleteUrl(nodeId, true),\r\n RequestMethod.DELETE,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.deleteNode.start\")\r\n }),\r\n {\r\n nodeId\r\n }\r\n )\r\n }\r\n);\r\n\r\nexport const fetchNodesConfigNode = (nodeId: number) => initRequest(\r\n NODES_CONFIG_NODE_FETCH,\r\n getNodeConfigGetUrl(nodeId),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.fetchNode.start\")\r\n })\r\n);\r\n\r\nexport const clearNodesConfigNode = () => ({\r\n type: NODES_CONFIG_NODE_CLEAR\r\n});\r\n\r\nexport const sendNodesConfigNodeCreate = (node: any) => initRequest(\r\n NODES_CONFIG_NODE_CREATE,\r\n getNodesConfigPostUrl(),\r\n RequestMethod.POST,\r\n node,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.sendNodeCreate.start\")\r\n })\r\n);\r\n\r\nexport const sendNodesConfigNodeEdit = (node: any) => initRequest(\r\n NODES_CONFIG_NODE_EDIT,\r\n getNodesConfigPutUrl(node.nodeId),\r\n RequestMethod.PUT,\r\n node,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.sendNodeEdit.start\")\r\n }),\r\n {\r\n nodeId: node.nodeId\r\n }\r\n);\r\n\r\nexport const fetchNodesConfigNodeDashboards = (nodeId: number) => initRequest(\r\n NODES_CONFIG_NODE_DASHBOARDS_FETCH,\r\n getNodeDashboardsUrl(nodeId),\r\n RequestMethod.GET,\r\n null,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.fetchNodeDashboards.start\")\r\n }),\r\n {\r\n nodeId\r\n }\r\n);\r\n\r\nexport const fetchAllNodeConfigDashboards = () => initRequest(\r\n NODES_CONFIG_NODE_DASHBOARDS_FETCH_ALL,\r\n getUserDashboardsUrl(),\r\n RequestMethod.GET,\r\n null,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.fetchAllDashboards.start\")\r\n })\r\n);\r\n\r\nexport const addNodesConfigDashboardsNodeDashboard = (nodeId: number, dashboardId: number) => initRequest(\r\n NODES_CONFIG_NODE_DASHBOARDS_DASHBOARD_ADD,\r\n getAddNodeDashboardUrl(nodeId, dashboardId),\r\n RequestMethod.POST,\r\n null,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.addNodeDashboard.start\")\r\n }),\r\n {\r\n nodeId\r\n }\r\n);\r\n\r\nexport const removeNodesConfigDashboardsNodeDashboard = (nodeId: number, dashboardId: number) => initRequest(\r\n NODES_CONFIG_NODE_DASHBOARDS_DASHBOARD_REMOVE,\r\n getRemoveNodeDashboardUrl(nodeId, dashboardId),\r\n RequestMethod.DELETE,\r\n null,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.removeNodeDashboard.start\")\r\n }),\r\n {\r\n nodeId\r\n }\r\n);\r\n\r\nexport const sendNodesConfigDashboardsNodeOrders = (nodeId: number, orderedDashboardsIds: number[]) => initRequest(\r\n NODES_CONFIG_NODE_DASHBOARDS_ORDERS_SEND,\r\n getOrderNodeDashboardsUrl(nodeId),\r\n RequestMethod.POST,\r\n orderedDashboardsIds,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.messages.sendNodeDashboardsOrders.start\")\r\n }),\r\n {\r\n nodeId\r\n }\r\n)\r\n\r\nexport const clearNodesConfigNodeDashboards = () => ({\r\n type: NODES_CONFIG_NODE_DASHBOARDS_CLEAR\r\n});\r\n\r\nexport const clearAllNodesConfigNodeDashboards = () => ({\r\n type: NODES_CONFIG_NODE_DASHBOARDS_CLEAR_ALL\r\n});\r\n\r\nexport const closeNodesConfig = () => ({\r\n type: NODES_CONFIG_CLOSE\r\n});","import React from \"react\";\r\n\r\nclass ErrorBoundary extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {hasError: false};\r\n }\r\n\r\n componentDidCatch() {\r\n const {\r\n component,\r\n variant\r\n } = this.props;\r\n\r\n console.error(`Error loading variant \"${variant}\" for component \"${component}\"`);\r\n\r\n this.setState({hasError: true});\r\n }\r\n\r\n render() {\r\n return this.state.hasError\r\n ? null\r\n : this.props.children;\r\n }\r\n}\r\n\r\nexport default ErrorBoundary;","import React, {lazy, Suspense, useEffect, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {connect} from \"react-redux\";\r\nimport ErrorBoundary from \"./ErrorBoundary\";\r\nimport CustomEmpty from \"../custom-empty\";\r\n\r\nconst DefaultFallback = ({t}) => (\r\n \r\n);\r\n\r\nconst ComponentVariantLoader = ({\r\n t,\r\n themeConfig,\r\n componentId,\r\n fallback = ,\r\n ...props\r\n }) => {\r\n\r\n const [variant] = useState(themeConfig.componentsVariant?.[componentId] || \"default\");\r\n const [ComponentVariant, setComponentVariant] = useState(null);\r\n\r\n useEffect(() => {\r\n const ComponentVariant = lazy(() => import(`../../components-lazy/${componentId}/${variant}`));\r\n setComponentVariant(ComponentVariant);\r\n }, [variant, componentId]);\r\n\r\n return ComponentVariant && (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default compose(\r\n withTranslation(),\r\n connect(state => ({\r\n themeConfig: state.app.themeConfig\r\n }))\r\n)(ComponentVariantLoader);","import React, {forwardRef, Fragment, useEffect, useImperativeHandle, useState} from 'react';\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {Checkbox, withStyles} from \"@material-ui/core\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport CardHeader from \"@material-ui/core/CardHeader\";\r\nimport {useForm} from 'react-hook-form'\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport {compose} from \"redux\";\r\nimport validator from \"validator\";\r\nimport {connect} from \"react-redux\";\r\nimport {clearNodesConfigNode, fetchNodesConfigNode, sendNodesConfigNodeCreate, sendNodesConfigNodeEdit} from \"../../../../state/nodesConfig/nodesConfigActions\";\r\nimport {ALL_FULL, ALL_PARTIAL, STEP_BY_STEP_DYNAMIC, STEP_BY_STEP_FULL, STEP_BY_STEP_PARTIAL} from \"../../../../state/dataset/datasetActions\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport FileInput from \"../../../file-input\";\r\nimport FormLabelWithTooltip from \"../../../form-label-with-tooltip\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport I18nTextField from \"../../../i18n-text-field\";\r\nimport {getI18nObjFromLanguages, validateI18nObj} from \"../../../../utils/i18n\";\r\nimport I18nHtmlEditor from \"../../../i18n-html-editor\";\r\nimport {downloadFormats} from \"../../../../utils/download\";\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport {isValidIntegerInInclusiveRange} from \"../../../../utils/validator\";\r\nimport moment from \"moment\";\r\nimport CustomDatePicker from \"../../../custom-date-picker\";\r\nimport {\r\n TEMPORAL_DIM_ORDER_SELECTOR_VALUE_ASC,\r\n TEMPORAL_DIM_ORDER_SELECTOR_VALUE_DESC,\r\n TEMPORAL_DIM_ORDER_SELECTOR_VALUE_UNSET\r\n} from \"../../../temporal-dim-order-selector/constants\";\r\nimport ComponentVariantLoader from \"../../../component-variant-loader\";\r\nimport {NodeDataAccessibility, NodeVisibility} from \"../../../../model/IHubMinimalNode.d.ts\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: \"100%\"\r\n },\r\n field: {\r\n marginTop: theme.spacing(3)\r\n },\r\n warningAlert: {\r\n marginTop: 8\r\n },\r\n subfield: {\r\n marginLeft: theme.spacing(6),\r\n width: `calc(100% - ${theme.spacing(6)}px)`\r\n },\r\n paper: {\r\n marginTop: theme.spacing(2),\r\n padding: theme.spacing(3)\r\n },\r\n paperHeader: {\r\n padding: 0\r\n },\r\n tabContent: {\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n height: \"calc(100% - 56px)\",\r\n marginTop: 8,\r\n padding: \"0 4px\"\r\n },\r\n title: {\r\n fontSize: 16\r\n }\r\n});\r\n\r\nexport const CATALOG_NAVIGATION_MODE_TREE = \"Tree\";\r\nexport const CATALOG_NAVIGATION_MODE_GRID = \"Card\";\r\nexport const CATALOG_NAVIGATION_MODE_LIST = \"List\";\r\n\r\nconst Form = compose(withStyles(styles), forwardRef)(({classes, config, initialNodeVisibility, languages, hub, onSubmit, onCancel}, ref) => {\r\n\r\n const [tab, setTab] = useState(\"general\");\r\n const [mustChangeTabOnErrors, setMustChangeTabOnErrors] = useState(true);\r\n const {t} = useTranslation();\r\n\r\n const {register, errors, handleSubmit, watch, getValues, setValue} = useForm({\r\n defaultValues: {\r\n active: false,\r\n ...config,\r\n visible: NodeVisibility.Yes,\r\n dataAccess: NodeDataAccessibility.All,\r\n ...config,\r\n annotationConfig:\r\n config?.extras?.find(({key}) => key === \"AnnotationConfig\")\r\n ? JSON.parse(config.extras.find(({key}) => key === \"AnnotationConfig\").value)\r\n : {\r\n \"ORDER\": \"ORDER\",\r\n \"ORDER_CATEGORY\": \"ORDER\",\r\n \"ORDER_CODELIST\": \"ORDER\",\r\n \"NOT_DISPLAYED\": \"NOT_DISPLAYED\",\r\n \"DEFAULT\": \"DEFAULT\",\r\n \"TIME_PERIOD_START\": \"TIME_PERIOD_START\",\r\n \"TIME_PERIOD_END\": \"TIME_PERIOD_END\",\r\n \"LASTNPERIOD\": \"LASTNPERIOD\",\r\n \"LAYOUT_ROW\": \"LAYOUT_ROW\",\r\n \"LAYOUT_COLUMN\": \"LAYOUT_COLUMN\",\r\n \"LAYOUT_FILTER\": \"LAYOUT_FILTER\",\r\n \"LAYOUT_ROW_SECTION\": \"LAYOUT_ROW_SECTION\",\r\n \"LAYOUT_CHART_PRIMARY_DIM\": \"LAYOUT_CHART_PRIMARY_DIM\",\r\n \"LAYOUT_CHART_SECONDARY_DIM\": \"LAYOUT_CHART_SECONDARY_DIM\",\r\n \"LAYOUT_CHART_FILTER\": \"LAYOUT_CHART_FILTER\",\r\n \"CRITERIA_SELECTION\": \"CRITERIA_SELECTION\",\r\n \"ATTACHED_DATA_FILES\": \"ATTACHED_DATA_FILES\",\r\n \"LAYOUT_DECIMAL_SEPARATOR\": \"LAYOUT_DECIMAL_SEPARATOR\",\r\n \"LAYOUT_NUMBER_OF_DECIMALS\": \"LAYOUT_NUMBER_OF_DECIMALS\",\r\n \"LAYOUT_EMPTY_CELL_PLACEHOLDER\": \"LAYOUT_EMPTY_CELL_PLACEHOLDER\",\r\n \"DATAFLOW_NOTES\": \"DATAFLOW_NOTES\",\r\n \"DATAFLOW_SOURCE\": \"DATAFLOW_SOURCE\",\r\n \"METADATA_URL\": \"METADATA_URL\",\r\n \"KEYWORDS\": \"KEYWORDS\",\r\n \"DEFAULT_VIEW\": \"DEFAULT_VIEW\",\r\n \"GEO_ID\": \"GEO_ID\",\r\n \"LAST_UPDATE\": \"LAST_UPDATE\",\r\n \"VIRTUAL_DATAFLOW_NODE\": \"VIRTUAL_DATAFLOW_NODE\",\r\n \"DATAFLOW_CATALOG_TYPE\": \"DATAFLOW_CATALOG_TYPE\",\r\n \"DATAFLOW_HIDDEN\": \"DATAFLOW_HIDDEN\",\r\n \"DISABLED_VIEWERS\": \"DISABLED_VIEWERS\",\r\n \"TABLE_LOCKED_DIMS\": \"TABLE_LOCKED_DIMS\",\r\n \"GRAPH_LOCKED_DIMS\": \"GRAPH_LOCKED_DIMS\",\r\n \"TEMPORAL_DIM_ORDER\": \"TEMPORAL_DIM_ORDER\"\r\n },\r\n showCategoryLevels: config?.showCategoryLevels || 1,\r\n decimalNumber: (config?.decimalNumber === null || config?.decimalNumber === undefined || config?.decimalNumber < 0)\r\n ? \"\"\r\n : config?.decimalNumber,\r\n decimalSeparator: config?.decimalSeparator || getI18nObjFromLanguages(languages, \",\"),\r\n catalogNavigationMode: config?.catalogNavigationMode || \"List\",\r\n hiddenAttributes:\r\n config?.extras?.find(({key}) => key === \"HiddenAttributes\")\r\n ? JSON.parse(config.extras.find(({key}) => key === \"HiddenAttributes\").value)\r\n : [],\r\n pageSize:\r\n config?.extras?.find(({key}) => key === \"PageSize\")\r\n ? JSON.parse(config.extras.find(({key}) => key === \"PageSize\").value)\r\n : \"\",\r\n restDataResponseXml:\r\n config?.extras?.find(({key}) => key === \"RestDataResponseXml\") && (\r\n config.extras.find(({key}) => key === \"RestDataResponseXml\").value === \"false\" ||\r\n config.extras.find(({key}) => key === \"RestDataResponseXml\").value === \"true\"\r\n )\r\n ? config.extras.find(({key}) => key === \"RestDataResponseXml\").value\r\n : \"\",\r\n downloadFormats:\r\n config?.extras?.find(({key}) => key === \"DownloadFormats\")\r\n ? JSON.parse(config.extras.find(({key}) => key === \"DownloadFormats\").value)\r\n : [],\r\n supportPostFilters:\r\n config?.extras?.find(({key}) => key === \"SupportPostFilters\") && (\r\n config.extras.find(({key}) => key === \"SupportPostFilters\").value === \"false\" ||\r\n config.extras.find(({key}) => key === \"SupportPostFilters\").value === \"true\"\r\n )\r\n ? JSON.parse(config.extras.find(({key}) => key === \"SupportPostFilters\").value)\r\n : false,\r\n supportPostFiltersStructure:\r\n config?.extras?.find(({key}) => key === \"SupportPostFiltersStructure\") && (\r\n config.extras.find(({key}) => key === \"SupportPostFiltersStructure\").value === \"false\" ||\r\n config.extras.find(({key}) => key === \"SupportPostFiltersStructure\").value === \"true\"\r\n )\r\n ? JSON.parse(config.extras.find(({key}) => key === \"SupportPostFiltersStructure\").value)\r\n : false,\r\n enableEndpointV20:\r\n config?.extras?.find(({key}) => key === \"EnableEndPointV20\") && (\r\n config.extras.find(({key}) => key === \"EnableEndPointV20\").value === \"false\" ||\r\n config.extras.find(({key}) => key === \"EnableEndPointV20\").value === \"true\"\r\n )\r\n ? JSON.parse(config.extras.find(({key}) => key === \"EnableEndPointV20\").value)\r\n : false,\r\n endpointV20:\r\n config?.extras?.find(({key}) => key === \"EndPointV20\")\r\n ? config.extras.find(({key}) => key === \"EndPointV20\").value || \"\"\r\n : \"\",\r\n defaultLastNPeriods:\r\n config?.extras?.find(({key}) => key === \"DefaultLastNPeriods\")\r\n ? config.extras.find(({key}) => key === \"DefaultLastNPeriods\").value || \"\"\r\n : \"\",\r\n showHubDashboards:\r\n config?.extras?.find(({key}) => key === \"ShowHubDashboards\") && (\r\n config.extras.find(({key}) => key === \"ShowHubDashboards\").value === \"false\" ||\r\n config.extras.find(({key}) => key === \"ShowHubDashboards\").value === \"true\"\r\n )\r\n ? JSON.parse(config.extras.find(({key}) => key === \"ShowHubDashboards\").value)\r\n : false,\r\n showVirtualDataflow:\r\n config?.extras?.find(({key}) => key === \"ShowVirtualDataflow\") && (\r\n config.extras.find(({key}) => key === \"ShowVirtualDataflow\").value === \"false\" ||\r\n config.extras.find(({key}) => key === \"ShowVirtualDataflow\").value === \"true\"\r\n )\r\n ? JSON.parse(config.extras.find(({key}) => key === \"ShowVirtualDataflow\").value)\r\n : false,\r\n queryInfo:\r\n config?.extras?.find(({key}) => key === \"QueryInfo\") && (\r\n config.extras.find(({key}) => key === \"QueryInfo\").value === \"false\" ||\r\n config.extras.find(({key}) => key === \"QueryInfo\").value === \"true\"\r\n )\r\n ? JSON.parse(config.extras.find(({key}) => key === \"QueryInfo\").value)\r\n : false,\r\n queryInfoBaseUrl:\r\n config?.extras?.find(({key}) => key === \"QuerySDMXBaseUrl\")\r\n ? config.extras.find(({key}) => key === \"QuerySDMXBaseUrl\").value || \"\"\r\n : \"\",\r\n showOnlyFileDataflow:\r\n config?.extras?.find(({key}) => key === \"ShowOnlyFileDataflow\") && (\r\n config.extras.find(({key}) => key === \"ShowOnlyFileDataflow\").value === \"false\" ||\r\n config.extras.find(({key}) => key === \"ShowOnlyFileDataflow\").value === \"true\"\r\n )\r\n ? JSON.parse(config.extras.find(({key}) => key === \"ShowOnlyFileDataflow\").value)\r\n : true,\r\n timePeriodRangeStart:\r\n config?.extras?.find(({key}) => key === \"TimePeriodRangeStart\")\r\n ? config.extras.find(({key}) => key === \"TimePeriodRangeStart\").value || null\r\n : null,\r\n timePeriodRangeEnd:\r\n config?.extras?.find(({key}) => key === \"TimePeriodRangeEnd\")\r\n ? config.extras.find(({key}) => key === \"TimePeriodRangeEnd\").value || null\r\n : null,\r\n hideLabelOnCategoryWithImage:\r\n config?.extras?.find(({key}) => key === \"HideLabelOnCategoryWithImage\") && (\r\n config.extras.find(({key}) => key === \"HideLabelOnCategoryWithImage\").value === \"false\" ||\r\n config.extras.find(({key}) => key === \"HideLabelOnCategoryWithImage\").value === \"true\"\r\n )\r\n ? JSON.parse(config.extras.find(({key}) => key === \"HideLabelOnCategoryWithImage\").value)\r\n : false,\r\n temporalDimOrder:\r\n config?.extras?.find(({key}) => key === \"TemporalDimOrder\") && (\r\n config.extras.find(({key}) => key === \"TemporalDimOrder\").value === TEMPORAL_DIM_ORDER_SELECTOR_VALUE_ASC ||\r\n config.extras.find(({key}) => key === \"TemporalDimOrder\").value === TEMPORAL_DIM_ORDER_SELECTOR_VALUE_DESC\r\n )\r\n ? config.extras.find(({key}) => key === \"TemporalDimOrder\").value\r\n : TEMPORAL_DIM_ORDER_SELECTOR_VALUE_UNSET,\r\n hierarchyOnlyAttributes:\r\n config?.extras?.find(({key}) => key === \"HierarchyOnlyAttributes\")\r\n ? JSON.parse(config.extras.find(({key}) => key === \"HierarchyOnlyAttributes\").value)\r\n : [],\r\n hideHierarchyOnlyRows:\r\n config?.extras?.find(({key}) => key === \"HideHierarchyOnlyRows\") && (\r\n config.extras.find(({key}) => key === \"HideHierarchyOnlyRows\").value === \"false\" ||\r\n config.extras.find(({key}) => key === \"HideHierarchyOnlyRows\").value === \"true\"\r\n )\r\n ? JSON.parse(config.extras.find(({key}) => key === \"HideHierarchyOnlyRows\").value)\r\n : false,\r\n supportedLanguages:\r\n (config?.extras?.find(({key}) => key === \"SupportedLanguages\")\r\n ? JSON.parse(config.extras.find(({key}) => key === \"SupportedLanguages\").value)\r\n : []\r\n ).filter(lang => hub.supportedLanguages.includes(lang)),\r\n defaultLanguage:\r\n (config?.extras?.find(({key}) => key === \"DefaultLanguage\") && hub.supportedLanguages.includes(config.extras.find(({key}) => key === \"DefaultLanguage\").value))\r\n ? (config.extras.find(({key}) => key === \"DefaultLanguage\").value || null)\r\n : null\r\n }\r\n });\r\n\r\n const enableHttpAuth = watch(\"enableHttpAuth\");\r\n const enableProxy = watch(\"enableProxy\");\r\n const supportPostFiltersStructure = watch(\"supportPostFiltersStructure\");\r\n const enableEndpointV20 = watch(\"enableEndpointV20\");\r\n const isCriteriaSelectionModeDynamic = (watch(\"criteriaSelectionMode\") || '') === STEP_BY_STEP_DYNAMIC;\r\n const isLastNPeriodsDisabled = (\r\n (watch(\"criteriaSelectionMode\") || '') !== STEP_BY_STEP_DYNAMIC &&\r\n (watch(\"criteriaSelectionMode\") || '') !== STEP_BY_STEP_PARTIAL &&\r\n (watch(\"criteriaSelectionMode\") || '') !== ALL_PARTIAL\r\n );\r\n const supportedLanguages = getValues(\"supportedLanguages\");\r\n const defaultLanguage = getValues(\"defaultLanguage\");\r\n\r\n useImperativeHandle(ref, () => ({\r\n submit(f) {\r\n setMustChangeTabOnErrors(true);\r\n handleSubmit(val => {\r\n const data = {\r\n ...config,\r\n ...val,\r\n type: \"SDMX-REST\",\r\n decimalNumber: (val?.decimalNumber === null || val?.decimalNumber === undefined || val?.decimalNumber === \"\")\r\n ? -1\r\n : val?.decimalNumber,\r\n annotationConfig: undefined,\r\n restDataResponseXml: undefined,\r\n optimizeCallWithSoap: undefined,\r\n namespaceV20: undefined,\r\n namespaceV21: undefined,\r\n hiddenAttributes: undefined,\r\n pageSize: undefined,\r\n downloadFormats: undefined,\r\n supportPostFilters: undefined,\r\n supportPostFiltersStructure: undefined,\r\n enableEndpointV20: undefined,\r\n endpointV20: undefined,\r\n defaultLastNPeriods: undefined,\r\n showHubDashboards: undefined,\r\n showVirtualDataflow: undefined,\r\n queryInfo: undefined,\r\n queryInfoBaseUrl: undefined,\r\n showOnlyFileDataflow: undefined,\r\n timePeriodRangeStart: undefined,\r\n timePeriodRangeEnd: undefined,\r\n hideLabelOnCategoryWithImage: undefined,\r\n temporalDimOrder: undefined,\r\n hierarchyOnlyAttributes: undefined,\r\n hideHierarchyOnlyRows: undefined,\r\n supportedLanguages: undefined,\r\n defaultLanguage: undefined\r\n };\r\n\r\n if (data.extras?.find(({key}) => key === \"AnnotationConfig\")) {\r\n data.extras.find(({key}) => key === \"AnnotationConfig\").value = JSON.stringify(val.annotationConfig)\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"AnnotationConfig\",\r\n value: JSON.stringify(val.annotationConfig),\r\n isPublic: false\r\n });\r\n }\r\n\r\n if (data.extras?.find(({key}) => key === \"RestDataResponseXml\")) {\r\n data.extras.find(({key}) => key === \"RestDataResponseXml\").value = val.restDataResponseXml\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"RestDataResponseXml\",\r\n value: val.restDataResponseXml,\r\n isPublic: false\r\n });\r\n }\r\n\r\n if (data.extras?.find(({key}) => key === \"SupportPostFilters\")) {\r\n data.extras.find(({key}) => key === \"SupportPostFilters\").value = JSON.stringify(val.supportPostFilters)\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"SupportPostFilters\",\r\n value: JSON.stringify(val.supportPostFilters),\r\n isPublic: false\r\n });\r\n }\r\n\r\n if (data.extras?.find(({key}) => key === \"SupportPostFiltersStructure\")) {\r\n data.extras.find(({key}) => key === \"SupportPostFiltersStructure\").value = JSON.stringify(val.supportPostFiltersStructure)\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"SupportPostFiltersStructure\",\r\n value: JSON.stringify(val.supportPostFiltersStructure),\r\n isPublic: false\r\n });\r\n }\r\n\r\n if (data.extras?.find(({key}) => key === \"HiddenAttributes\")) {\r\n data.extras.find(({key}) => key === \"HiddenAttributes\").value = JSON.stringify(val.hiddenAttributes)\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"HiddenAttributes\",\r\n value: JSON.stringify(val.hiddenAttributes),\r\n isPublic: true\r\n });\r\n }\r\n\r\n if (data.extras?.find(({key}) => key === \"PageSize\")) {\r\n data.extras.find(({key}) => key === \"PageSize\").value = JSON.stringify(val.pageSize)\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"PageSize\",\r\n value: JSON.stringify(val.pageSize),\r\n isPublic: true\r\n });\r\n }\r\n\r\n if (data.extras?.find(({key}) => key === \"DownloadFormats\")) {\r\n data.extras.find(({key}) => key === \"DownloadFormats\").value = JSON.stringify(val.downloadFormats)\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"DownloadFormats\",\r\n value: JSON.stringify(val.downloadFormats),\r\n isPublic: true\r\n });\r\n }\r\n\r\n if (data.extras?.find(({key}) => key === \"EnableEndPointV20\")) {\r\n data.extras.find(({key}) => key === \"EnableEndPointV20\").value = JSON.stringify(val.enableEndpointV20)\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"EnableEndPointV20\",\r\n value: JSON.stringify(val.enableEndpointV20),\r\n isPublic: false\r\n });\r\n }\r\n\r\n if (data.extras?.find(({key}) => key === \"EndPointV20\")) {\r\n data.extras.find(({key}) => key === \"EndPointV20\").value = val.endpointV20\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"EndPointV20\",\r\n value: val.endpointV20 || \"\",\r\n isPublic: false\r\n });\r\n }\r\n\r\n const defaultLastNPeriodsExtra = data.extras?.find(({key}) => key === \"DefaultLastNPeriods\");\r\n const defaultLastNPeriodsExtraPublic = true;\r\n if (defaultLastNPeriodsExtra) {\r\n defaultLastNPeriodsExtra.value = val.defaultLastNPeriods;\r\n defaultLastNPeriodsExtra.isPublic = defaultLastNPeriodsExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"DefaultLastNPeriods\",\r\n value: val.defaultLastNPeriods,\r\n isPublic: defaultLastNPeriodsExtraPublic\r\n });\r\n }\r\n\r\n const showHubDashboardsExtra = data.extras?.find(({key}) => key === \"ShowHubDashboards\");\r\n const showHubDashboardsExtraPublic = true;\r\n if (showHubDashboardsExtra) {\r\n showHubDashboardsExtra.value = JSON.stringify(val.showHubDashboards);\r\n showHubDashboardsExtra.isPublic = showHubDashboardsExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"ShowHubDashboards\",\r\n value: JSON.stringify(val.showHubDashboards),\r\n isPublic: showHubDashboardsExtraPublic\r\n });\r\n }\r\n\r\n if (data.extras?.find(({key}) => key === \"ShowVirtualDataflow\")) {\r\n data.extras.find(({key}) => key === \"ShowVirtualDataflow\").value = JSON.stringify(val.showVirtualDataflow)\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"ShowVirtualDataflow\",\r\n value: JSON.stringify(val.showVirtualDataflow),\r\n isPublic: false\r\n });\r\n }\r\n\r\n const queryInfoExtra = data.extras?.find(({key}) => key === \"QueryInfo\");\r\n const queryInfoExtraPublic = true;\r\n if (queryInfoExtra) {\r\n queryInfoExtra.value = JSON.stringify(val.queryInfo);\r\n queryInfoExtra.isPublic = queryInfoExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"QueryInfo\",\r\n value: JSON.stringify(val.queryInfo),\r\n isPublic: queryInfoExtraPublic\r\n });\r\n }\r\n\r\n const queryInfoBaseUrlExtra = data.extras?.find(({key}) => key === \"QuerySDMXBaseUrl\");\r\n const queryInfoBaseUrlExtraPublic = false;\r\n if (queryInfoBaseUrlExtra) {\r\n queryInfoBaseUrlExtra.value = val.queryInfoBaseUrl;\r\n queryInfoBaseUrlExtra.isPublic = queryInfoBaseUrlExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"QuerySDMXBaseUrl\",\r\n value: val.queryInfoBaseUrl,\r\n isPublic: queryInfoBaseUrlExtraPublic\r\n });\r\n }\r\n\r\n const showOnlyFileDataflowExtra = data.extras?.find(({key}) => key === \"ShowOnlyFileDataflow\");\r\n const showOnlyFileDataflowExtraPublic = false;\r\n if (showOnlyFileDataflowExtra) {\r\n showOnlyFileDataflowExtra.value = JSON.stringify(val.showOnlyFileDataflow);\r\n showOnlyFileDataflowExtra.isPublic = showOnlyFileDataflowExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"ShowOnlyFileDataflow\",\r\n value: JSON.stringify(val.showOnlyFileDataflow),\r\n isPublic: showOnlyFileDataflowExtraPublic\r\n });\r\n }\r\n\r\n const timePeriodRangeStartExtra = data.extras?.find(({key}) => key === \"TimePeriodRangeStart\");\r\n const timePeriodRangeStartExtraPublic = true;\r\n if (timePeriodRangeStartExtra) {\r\n timePeriodRangeStartExtra.value = val.timePeriodRangeStart;\r\n timePeriodRangeStartExtra.isPublic = timePeriodRangeStartExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"TimePeriodRangeStart\",\r\n value: val.timePeriodRangeStart,\r\n isPublic: timePeriodRangeStartExtraPublic\r\n });\r\n }\r\n\r\n const timePeriodRangeEndExtra = data.extras?.find(({key}) => key === \"TimePeriodRangeEnd\");\r\n const timePeriodRangeEndExtraPublic = true;\r\n if (timePeriodRangeEndExtra) {\r\n timePeriodRangeEndExtra.value = val.timePeriodRangeEnd;\r\n timePeriodRangeEndExtra.isPublic = timePeriodRangeEndExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"TimePeriodRangeEnd\",\r\n value: val.timePeriodRangeEnd,\r\n isPublic: timePeriodRangeEndExtraPublic\r\n });\r\n }\r\n\r\n const hideLabelOnCategoryWithImageExtra = data.extras?.find(({key}) => key === \"HideLabelOnCategoryWithImage\");\r\n const hideLabelOnCategoryWithImageExtraPublic = true;\r\n if (hideLabelOnCategoryWithImageExtra) {\r\n hideLabelOnCategoryWithImageExtra.value = JSON.stringify(val.hideLabelOnCategoryWithImage);\r\n hideLabelOnCategoryWithImageExtra.isPublic = hideLabelOnCategoryWithImageExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"HideLabelOnCategoryWithImage\",\r\n value: JSON.stringify(val.hideLabelOnCategoryWithImage),\r\n isPublic: hideLabelOnCategoryWithImageExtraPublic\r\n });\r\n }\r\n\r\n const temporalDimOrderExtra = data.extras?.find(({key}) => key === \"TemporalDimOrder\");\r\n const temporalDimOrderExtraPublic = false;\r\n if (temporalDimOrderExtra) {\r\n if (val.temporalDimOrder !== TEMPORAL_DIM_ORDER_SELECTOR_VALUE_UNSET) {\r\n temporalDimOrderExtra.value = val.temporalDimOrder;\r\n temporalDimOrderExtra.isPublic = temporalDimOrderExtraPublic;\r\n } else {\r\n data.extras = data.extras.filter(({key}) => key !== \"TemporalDimOrder\")\r\n }\r\n } else if (val.temporalDimOrder !== TEMPORAL_DIM_ORDER_SELECTOR_VALUE_UNSET) {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"TemporalDimOrder\",\r\n value: val.temporalDimOrder,\r\n isPublic: temporalDimOrderExtraPublic\r\n });\r\n }\r\n\r\n const hierarchyOnlyAttributesExtra = data.extras?.find(({key}) => key === \"HierarchyOnlyAttributes\");\r\n const hierarchyOnlyAttributesExtraPublic = true;\r\n if (hierarchyOnlyAttributesExtra) {\r\n hierarchyOnlyAttributesExtra.value = JSON.stringify(val.hierarchyOnlyAttributes);\r\n hierarchyOnlyAttributesExtra.isPublic = hierarchyOnlyAttributesExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"HierarchyOnlyAttributes\",\r\n value: JSON.stringify(val.hierarchyOnlyAttributes),\r\n isPublic: hierarchyOnlyAttributesExtraPublic\r\n });\r\n }\r\n\r\n const hideHierarchyOnlyRowsExtra = data.extras?.find(({key}) => key === \"HideHierarchyOnlyRows\");\r\n const hideHierarchyOnlyRowsExtraPublic = true;\r\n if (hideHierarchyOnlyRowsExtra) {\r\n hideHierarchyOnlyRowsExtra.value = JSON.stringify(val.hideHierarchyOnlyRows);\r\n hideHierarchyOnlyRowsExtra.isPublic = hideHierarchyOnlyRowsExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"HideHierarchyOnlyRows\",\r\n value: JSON.stringify(val.hideHierarchyOnlyRows),\r\n isPublic: hideHierarchyOnlyRowsExtraPublic\r\n });\r\n }\r\n\r\n const supportedLanguagesExtra = data.extras?.find(({key}) => key === \"SupportedLanguages\");\r\n const supportedLanguagesExtraPublic = true;\r\n if (supportedLanguagesExtra) {\r\n supportedLanguagesExtra.value = JSON.stringify(val.supportedLanguages);\r\n supportedLanguagesExtra.isPublic = supportedLanguagesExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"SupportedLanguages\",\r\n value: JSON.stringify(val.supportedLanguages),\r\n isPublic: supportedLanguagesExtraPublic\r\n });\r\n }\r\n\r\n const defaultLanguageExtra = data.extras?.find(({key}) => key === \"DefaultLanguage\");\r\n const defaultLanguageExtraPublic = true;\r\n if (defaultLanguageExtra) {\r\n defaultLanguageExtra.value = val.defaultLanguage;\r\n defaultLanguageExtra.isPublic = defaultLanguageExtraPublic;\r\n } else {\r\n data.extras = data.extras || [];\r\n data.extras.push({\r\n key: \"DefaultLanguage\",\r\n value: val.defaultLanguage,\r\n isPublic: defaultLanguageExtraPublic\r\n });\r\n }\r\n \r\n onSubmit(data);\r\n f(data);\r\n })();\r\n },\r\n cancel(f) {\r\n onCancel();\r\n f();\r\n }\r\n }));\r\n\r\n /* custom register */\r\n useEffect(() => {\r\n\r\n register({\r\n name: \"code\"\r\n }, {\r\n required: t(\"commons.validation.required\"),\r\n });\r\n register({\r\n name: \"title\"\r\n });\r\n register({\r\n name: \"agency\"\r\n }, {\r\n required: t(\"commons.validation.required\")\r\n })\r\n register({name: 'active'});\r\n register({name: 'visible'});\r\n register({name: 'dataAccess'});\r\n register({name: 'default'});\r\n register({name: \"slogan\"});\r\n register({name: 'backgroundMediaURL'});\r\n register({name: 'logo'});\r\n register({name: 'description'});\r\n register({\r\n name: 'criteriaSelectionMode'\r\n }, {\r\n required: t(\"commons.validation.required\")\r\n });\r\n register({\r\n name: \"endPoint\"\r\n }, {\r\n required: t(\"commons.validation.required\")\r\n });\r\n register({\r\n name: \"supportPostFilters\"\r\n });\r\n register({\r\n name: \"supportPostFiltersStructure\"\r\n });\r\n register({\r\n name: \"enableEndpointV20\"\r\n });\r\n register({\r\n name: \"endpointV20\"\r\n }, {\r\n validate: val => getValues(\"enableEndpointV20\")\r\n ? (val || \"\").length > 0 || t(\"commons.validation.required\")\r\n : true\r\n });\r\n register({\r\n name: \"enableHttpAuth\"\r\n });\r\n register({\r\n name: \"authHttpUsername\"\r\n }, {\r\n validate: val => getValues(\"enableHttpAuth\")\r\n ? (val || \"\").length > 0 || t(\"commons.validation.required\")\r\n : true\r\n });\r\n register({\r\n name: \"authHttpPassword\"\r\n });\r\n register({\r\n name: \"authHttpDomain\"\r\n });\r\n register({\r\n name: \"enableProxy\"\r\n });\r\n register({\r\n name: \"proxyAddress\"\r\n }, {\r\n validate: val => getValues(\"enableProxy\")\r\n ? (val || \"\").length > 0 || t(\"commons.validation.required\")\r\n : true\r\n });\r\n register({\r\n name: \"proxyPort\"\r\n }, {\r\n validate: val => getValues(\"enableProxy\")\r\n ? (isValidIntegerInInclusiveRange(val) && validator.isPort(val + \"\")) || t(\"scenes.nodeSettings.fields.proxyPort.validation\")\r\n : true\r\n });\r\n register({name: \"proxyUsername\"});\r\n register({name: \"proxyPassword\"});\r\n register({name: 'annotationConfig.ORDER'});\r\n register({name: 'annotationConfig.ORDER_CATEGORY'});\r\n register({name: 'annotationConfig.ORDER_CODELIST'});\r\n register({name: 'annotationConfig.NOT_DISPLAYED'});\r\n register({name: 'annotationConfig.DEFAULT'});\r\n register({name: 'annotationConfig.TIME_PERIOD_START'});\r\n register({name: 'annotationConfig.TIME_PERIOD_END'});\r\n register({name: 'annotationConfig.LASTNPERIOD'});\r\n register({name: 'annotationConfig.LAYOUT_ROW'});\r\n register({name: 'annotationConfig.LAYOUT_COLUMN'});\r\n register({name: 'annotationConfig.LAYOUT_FILTER'});\r\n register({name: 'annotationConfig.LAYOUT_ROW_SECTION'});\r\n register({name: 'annotationConfig.LAYOUT_CHART_PRIMARY_DIM'});\r\n register({name: 'annotationConfig.LAYOUT_CHART_SECONDARY_DIM'});\r\n register({name: 'annotationConfig.LAYOUT_CHART_FILTER'});\r\n register({name: 'annotationConfig.CRITERIA_SELECTION'});\r\n register({name: 'annotationConfig.ATTACHED_DATA_FILES'});\r\n register({name: 'annotationConfig.LAYOUT_DECIMAL_SEPARATOR'});\r\n register({name: 'annotationConfig.LAYOUT_NUMBER_OF_DECIMALS'});\r\n register({name: 'annotationConfig.LAYOUT_EMPTY_CELL_PLACEHOLDER'});\r\n register({name: 'annotationConfig.DATAFLOW_NOTES'});\r\n register({name: 'annotationConfig.DATAFLOW_SOURCE'});\r\n register({name: 'annotationConfig.METADATA_URL'});\r\n register({name: 'annotationConfig.KEYWORDS'});\r\n register({name: 'annotationConfig.DEFAULT_VIEW'});\r\n register({name: 'annotationConfig.GEO_ID'});\r\n register({name: 'annotationConfig.LAST_UPDATE'});\r\n register({name: 'annotationConfig.VIRTUAL_DATAFLOW_NODE'});\r\n register({name: 'annotationConfig.DATAFLOW_CATALOG_TYPE'});\r\n register({name: 'annotationConfig.DATAFLOW_HIDDEN'});\r\n register({name: 'annotationConfig.DISABLED_VIEWERS'});\r\n register({name: 'annotationConfig.TABLE_LOCKED_DIMS'});\r\n register({name: 'annotationConfig.GRAPH_LOCKED_DIMS'});\r\n register({name: 'annotationConfig.TEMPORAL_DIM_ORDER'});\r\n register({\r\n name: \"ttlCatalog\"\r\n }, {\r\n validate: val =>\r\n (val || \"\").length === 0 ||\r\n isValidIntegerInInclusiveRange(val, -1) ||\r\n t(\"scenes.nodeSettings.validation.ttlCatalog\")\r\n });\r\n register({\r\n name: \"ttlDataflow\"\r\n }, {\r\n validate: val =>\r\n (val || \"\").length === 0 ||\r\n isValidIntegerInInclusiveRange(val, -1) ||\r\n t(\"scenes.nodeSettings.validation.ttlDataflow\")\r\n });\r\n register({name: 'showDataflowUncategorized'});\r\n register({name: 'showDataflowNotInProduction'});\r\n register({\r\n name: 'showCategoryLevels'\r\n }, {\r\n required: t(\"commons.validation.required\")\r\n });\r\n register({\r\n name: \"decimalNumber\"\r\n }, {\r\n validate: val =>\r\n (val || \"\").length === 0 ||\r\n isValidIntegerInInclusiveRange(val, 0, 20) ||\r\n t(\"commons.validation.inRange\", {min: 0, max: 20})\r\n });\r\n register({\r\n name: 'decimalSeparator'\r\n }, {\r\n validate: val => validateI18nObj(val) || t(\"commons.validation.requiredAnyLanguage\")\r\n });\r\n register({name: 'labelDimensionTerritorials'});\r\n register({name: 'categorySchemaExcludes'});\r\n register({\r\n name: 'catalogNavigationMode'\r\n }, {\r\n required: t(\"commons.validation.required\")\r\n });\r\n register({name: 'hiddenAttributes'});\r\n register({\r\n name: 'pageSize'\r\n }, {\r\n validate: val => !val || val > 0 || t(\"commons.validation.positiveInteger\")\r\n });\r\n register({\r\n name: 'restDataResponseXml'\r\n }, {\r\n required: t(\"commons.validation.required\")\r\n });\r\n register({name: 'downloadFormats'});\r\n register({\r\n name: 'defaultLastNPeriods'\r\n }, {\r\n validate: val => !val || val > 0 || t(\"commons.validation.positiveInteger\")\r\n });\r\n register({name: 'showHubDashboards'});\r\n register({name: 'showVirtualDataflow'});\r\n register({name: 'queryInfo'});\r\n register({name: 'queryInfoBaseUrl'});\r\n register({name: 'showOnlyFileDataflow'});\r\n register({name: 'timePeriodRangeStart'});\r\n register({name: 'timePeriodRangeEnd'});\r\n register({name: 'hideLabelOnCategoryWithImage'});\r\n register({name: 'temporalDimOrder'});\r\n register({name: 'hierarchyOnlyAttributes'});\r\n register({name: 'hideHierarchyOnlyRows'});\r\n register({name: \"supportedLanguages\"});\r\n register({\r\n name: \"defaultLanguage\"\r\n }, {\r\n validate: val => (getValues(\"supportedLanguages\") || []).length > 0\r\n ? (val || \"\").length > 0 || t(\"commons.validation.required\")\r\n : true\r\n });\r\n }, [register, getValues, t]);\r\n\r\n /* switch to first tab with errors */\r\n if (Object.keys(errors).length > 0 && mustChangeTabOnErrors) {\r\n\r\n setMustChangeTabOnErrors(false);\r\n\r\n const firstFieldWithErrors = Object.keys(errors)[0];\r\n\r\n if (\r\n firstFieldWithErrors === \"code\" ||\r\n firstFieldWithErrors === \"agency\" ||\r\n firstFieldWithErrors === \"title\" ||\r\n firstFieldWithErrors === \"slogan\" ||\r\n firstFieldWithErrors === \"supportedLanguages\" ||\r\n firstFieldWithErrors === \"defaultLanguage\"\r\n ) {\r\n if (tab !== \"general\") {\r\n setTab(\"general\")\r\n }\r\n\r\n } else if (\r\n firstFieldWithErrors === \"showCategoryLevels\" ||\r\n firstFieldWithErrors === \"decimalNumber\" ||\r\n firstFieldWithErrors === \"decimalSeparator\" ||\r\n firstFieldWithErrors === \"labelDimensionTerritorials\" ||\r\n firstFieldWithErrors === \"categorySchemaExcludes\" ||\r\n firstFieldWithErrors === \"catalogNavigationMode\" ||\r\n firstFieldWithErrors === \"hiddenAttributes\" ||\r\n firstFieldWithErrors === \"pageSize\" ||\r\n firstFieldWithErrors === \"downloadFormats\" ||\r\n firstFieldWithErrors === \"defaultLastNPeriods\" ||\r\n firstFieldWithErrors === \"timePeriodRangeStart\" ||\r\n firstFieldWithErrors === \"timePeriodRangeEnd\" ||\r\n firstFieldWithErrors === \"hideLabelOnCategoryWithImage\" ||\r\n firstFieldWithErrors === \"temporalDimOrder\" ||\r\n firstFieldWithErrors === \"hierarchyOnlyAttributes\" ||\r\n firstFieldWithErrors === \"hideHierarchyOnlyRows\"\r\n ) {\r\n if (tab !== \"view\") {\r\n setTab(\"view\")\r\n }\r\n\r\n } else if (\r\n firstFieldWithErrors === \"ttlCatalog\" ||\r\n firstFieldWithErrors === \"ttlDataflow\"\r\n ) {\r\n if (tab !== \"cache\") {\r\n setTab(\"cache\")\r\n }\r\n\r\n } else if (firstFieldWithErrors) {\r\n if (tab !== \"endpoint\") {\r\n setTab(\"endpoint\");\r\n }\r\n\r\n }\r\n }\r\n\r\n return (\r\n \r\n setTab(tab)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.code.label\")}\r\n \r\n }\r\n required\r\n error={!!errors.code}\r\n helperText={errors.code?.message}\r\n value={watch('code') || \"\"}\r\n onChange={({target}) => setValue('code', (target.value || \"\").toUpperCase())}\r\n inputProps={{\r\n style: {textTransform: \"uppercase\"}\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n setValue('title', value)}\r\n />\r\n \r\n \r\n \r\n \r\n setValue('agency', target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.active.label\")}\r\n \r\n }\r\n control={\r\n setValue('active', value)}\r\n />\r\n }\r\n />\r\n \r\n \r\n {\r\n setValue(\"visible\", visible);\r\n setValue(\"dataAccess\", dataAccess);\r\n if (visible !== NodeVisibility.Yes) {\r\n setValue(\"default\", false);\r\n }\r\n }}\r\n />\r\n \r\n {initialNodeVisibility === NodeVisibility.Profiled && watch(\"visible\") !== NodeVisibility.Profiled && (\r\n \r\n {t(\"scenes.nodeSettings.fields.visible.warning.label\")}\r\n \r\n )}\r\n \r\n setValue('default', value)}\r\n disabled={watch(\"visible\") !== NodeVisibility.Yes}\r\n />\r\n }\r\n />\r\n \r\n \r\n setValue('slogan', value)}\r\n />\r\n \r\n \r\n value.map((option, index) => (\r\n \r\n ))\r\n }\r\n onChange={(e, val) => {\r\n setValue(\"supportedLanguages\", val);\r\n if (defaultLanguage && !val.includes(defaultLanguage)) {\r\n setValue(\"defaultLanguage\", null);\r\n }\r\n }}\r\n renderInput={params => (\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n 0}\r\n label={t(\"scenes.nodeSettings.fields.defaultLanguage.label\")}\r\n onChange={e => setValue(\"defaultLanguage\", e.target.value)}\r\n value={watch(\"defaultLanguage\") || \"\"}\r\n error={!!errors.defaultLanguage}\r\n helperText={errors.defaultLanguage?.message}\r\n variant=\"outlined\"\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n disabled={(supportedLanguages || []).length === 0}\r\n >\r\n {supportedLanguages.map((val, index) =>\r\n {val}\r\n )}\r\n \r\n \r\n \r\n setValue('backgroundMediaURL', value)}\r\n />\r\n \r\n \r\n setValue('logo', value)}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n setValue('description', val)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n SDMX-REST\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.criteriaSelectionMode.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n onChange={e => setValue('criteriaSelectionMode', e.target.value)}\r\n value={watch(\"criteriaSelectionMode\") || ''}\r\n helperText={errors.criteriaSelectionMode?.message}\r\n error={!!errors.criteriaSelectionMode}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n ALL_FULL\r\n ALL_PARTIAL\r\n STEP_BY_STEP_FULL\r\n STEP_BY_STEP_PARTIAL\r\n STEP_BY_STEP_DYNAMIC\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setValue('endPoint', target.value)}\r\n />\r\n \r\n \r\n setValue('restDataResponseXml', target.value)}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n XML\r\n JSON\r\n \r\n \r\n \r\n setValue('supportPostFilters', value)}\r\n />\r\n }\r\n />\r\n \r\n {isCriteriaSelectionModeDynamic && (\r\n \r\n \r\n {t(\"scenes.nodeSettings.tabs.endpoint.cards.structureFilters.label\")}\r\n \r\n }\r\n className={classes.paperHeader}\r\n />\r\n \r\n {(() => {\r\n let radioValue;\r\n if (supportPostFiltersStructure && enableEndpointV20) {\r\n radioValue = null;\r\n } else if (supportPostFiltersStructure) {\r\n radioValue = \"supportPostFiltersStructure\";\r\n } else if (enableEndpointV20) {\r\n radioValue = \"enableEndpointV20\";\r\n } else {\r\n radioValue = \"GET\";\r\n }\r\n\r\n return (\r\n {\r\n switch (event.target.value) {\r\n case \"supportPostFiltersStructure\": {\r\n setValue('supportPostFiltersStructure', true);\r\n setValue('enableEndpointV20', false);\r\n break;\r\n }\r\n case \"enableEndpointV20\": {\r\n setValue('supportPostFiltersStructure', false);\r\n setValue('enableEndpointV20', true);\r\n break;\r\n }\r\n default: {\r\n setValue('supportPostFiltersStructure', false);\r\n setValue('enableEndpointV20', false);\r\n }\r\n }\r\n }}\r\n >\r\n }\r\n label={t(\"scenes.nodeSettings.fields.structureFilters.default.label\")}\r\n />\r\n }\r\n label={t(\"scenes.nodeSettings.fields.structureFilters.supportPostFiltersStructure.label\")}\r\n />\r\n }\r\n label={\r\n \r\n {t(\"scenes.nodeSettings.fields.structureFilters.enableEndpointV20.label\")}\r\n \r\n }\r\n />\r\n \r\n )\r\n })()}\r\n \r\n {enableEndpointV20 && (\r\n \r\n setValue('endpointV20', target.value)}\r\n />\r\n \r\n )}\r\n \r\n )}\r\n \r\n {/*\r\n \r\n \r\n setValue('optimizeCallWithSoap', value)}\r\n />\r\n }\r\n />\r\n \r\n {optimizeCallWithSoap && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n */}\r\n \r\n \r\n \r\n setValue('enableHttpAuth', value)}\r\n />\r\n }\r\n />\r\n \r\n {enableHttpAuth && (\r\n \r\n \r\n \r\n setValue('authHttpUsername', target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n setValue('authHttpPassword', target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setValue('authHttpDomain', target.value)}\r\n />\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n setValue('enableProxy', value)}\r\n />\r\n }\r\n />\r\n \r\n {enableProxy && (\r\n \r\n \r\n \r\n setValue('proxyAddress', target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n setValue('proxyPort', target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setValue('proxyUsername', target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n setValue('proxyPassword', e.target.value)}\r\n />\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.ORDER.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.ORDER') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.ORDER', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.ORDER_CATEGORY.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.ORDER_CATEGORY') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.ORDER_CATEGORY', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.ORDER_CODELIST.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.ORDER_CODELIST') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.ORDER_CODELIST', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.NOT_DISPLAYED.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.NOT_DISPLAYED') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.NOT_DISPLAYED', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.DEFAULT.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.DEFAULT') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.DEFAULT', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.TIME_PERIOD_START.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.TIME_PERIOD_START') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.TIME_PERIOD_START', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.TIME_PERIOD_END.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.TIME_PERIOD_END') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.TIME_PERIOD_END', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LASTNPERIOD.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LASTNPERIOD') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LASTNPERIOD', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LAYOUT_ROW.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LAYOUT_ROW') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LAYOUT_ROW', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LAYOUT_COLUMN.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LAYOUT_COLUMN') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LAYOUT_COLUMN', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LAYOUT_FILTER.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LAYOUT_FILTER') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LAYOUT_FILTER', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LAYOUT_ROW_SECTION.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LAYOUT_ROW_SECTION') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LAYOUT_ROW_SECTION', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LAYOUT_CHART_PRIMARY_DIM.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LAYOUT_CHART_PRIMARY_DIM') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LAYOUT_CHART_PRIMARY_DIM', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LAYOUT_CHART_SECONDARY_DIM.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LAYOUT_CHART_SECONDARY_DIM') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LAYOUT_CHART_SECONDARY_DIM', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LAYOUT_CHART_FILTER.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LAYOUT_CHART_FILTER') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LAYOUT_CHART_FILTER', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.CRITERIA_SELECTION.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.CRITERIA_SELECTION') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.CRITERIA_SELECTION', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.ATTACHED_DATA_FILES.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.ATTACHED_DATA_FILES') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.ATTACHED_DATA_FILES', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LAYOUT_DECIMAL_SEPARATOR.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LAYOUT_DECIMAL_SEPARATOR') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LAYOUT_DECIMAL_SEPARATOR', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LAYOUT_NUMBER_OF_DECIMALS.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LAYOUT_NUMBER_OF_DECIMALS') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LAYOUT_NUMBER_OF_DECIMALS', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LAYOUT_EMPTY_CELL_PLACEHOLDER.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LAYOUT_EMPTY_CELL_PLACEHOLDER') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LAYOUT_EMPTY_CELL_PLACEHOLDER', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.DATAFLOW_NOTES.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.DATAFLOW_NOTES') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.DATAFLOW_NOTES', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.DATAFLOW_SOURCE.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.DATAFLOW_SOURCE') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.DATAFLOW_SOURCE', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.METADATA_URL.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.METADATA_URL') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.METADATA_URL', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.KEYWORDS.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.KEYWORDS') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.KEYWORDS', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.DEFAULT_VIEW.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.DEFAULT_VIEW') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.DEFAULT_VIEW', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.GEO_ID.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.GEO_ID') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.GEO_ID', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.LAST_UPDATE.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.LAST_UPDATE') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.LAST_UPDATE', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.VIRTUAL_DATAFLOW_NODE.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.VIRTUAL_DATAFLOW_NODE') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.VIRTUAL_DATAFLOW_NODE', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.DATAFLOW_CATALOG_TYPE.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.DATAFLOW_CATALOG_TYPE') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.DATAFLOW_CATALOG_TYPE', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.DATAFLOW_HIDDEN.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.DATAFLOW_HIDDEN') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.DATAFLOW_HIDDEN', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.DISABLED_VIEWERS.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.DISABLED_VIEWERS') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.DISABLED_VIEWERS', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.TABLE_LOCKED_DIMS.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.TABLE_LOCKED_DIMS') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.TABLE_LOCKED_DIMS', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.GRAPH_LOCKED_DIMS.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.GRAPH_LOCKED_DIMS') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.GRAPH_LOCKED_DIMS', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.annotations.TEMPORAL_DIM_ORDER.label\")}\r\n \r\n }\r\n variant=\"outlined\"\r\n value={watch('annotationConfig.TEMPORAL_DIM_ORDER') || \"\"}\r\n onChange={({target}) => setValue('annotationConfig.TEMPORAL_DIM_ORDER', target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.catalogCacheValidity.label\")}\r\n \r\n }\r\n error={!!errors.ttlCatalog}\r\n value={watch('ttlCatalog') !== null && watch('ttlCatalog') !== undefined\r\n ? watch('ttlCatalog')\r\n : \"\"\r\n }\r\n onChange={({target}) => setValue('ttlCatalog', target.value)}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.dataflowCacheValidity.label\")}\r\n \r\n }\r\n error={!!errors.ttlDataflow}\r\n value={watch('ttlDataflow') !== null && watch('ttlDataflow') !== undefined\r\n ? watch('ttlDataflow')\r\n : \"\"\r\n }\r\n onChange={({target}) => setValue('ttlDataflow', target.value)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n setValue('showDataflowUncategorized', value)}\r\n />\r\n }\r\n />\r\n \r\n \r\n setValue('showDataflowNotInProduction', value)}\r\n />\r\n }\r\n />\r\n \r\n \r\n setValue('showVirtualDataflow', value)}\r\n />\r\n }\r\n />\r\n \r\n \r\n setValue('showOnlyFileDataflow', value)}\r\n />\r\n }\r\n />\r\n \r\n \r\n setValue('showCategoryLevels', e.target.value)}\r\n value={watch(\"showCategoryLevels\") || ''}\r\n error={!!errors.showCategoryLevels}\r\n helperText={errors.showCategoryLevels?.message}\r\n variant=\"outlined\"\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n 1\r\n 5\r\n \r\n \r\n \r\n setValue('hideLabelOnCategoryWithImage', value)}\r\n />\r\n }\r\n />\r\n \r\n \r\n value.map((option, index) => (\r\n \r\n ))\r\n }\r\n onChange={(e, val) => setValue('categorySchemaExcludes', val)}\r\n renderInput={params => (\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n setValue('catalogNavigationMode', e.target.value)}\r\n value={watch(\"catalogNavigationMode\") || ''}\r\n required\r\n variant=\"outlined\"\r\n error={!!errors.catalogNavigationMode}\r\n helperText={errors.catalogNavigationMode?.message}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n \r\n {t(\"scenes.nodeSettings.fields.catalogNavigationMode.values.tree\")}\r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.catalogNavigationMode.values.grid\")}\r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.catalogNavigationMode.values.list\")}\r\n \r\n \r\n \r\n downloadFormats(t)[option]?.label || \"\"}\r\n value={watch('downloadFormats') || []}\r\n renderTags={(value, getTagProps) =>\r\n value.map((option, index) => (\r\n \r\n ))\r\n }\r\n onChange={(e, val) => setValue('downloadFormats', val)}\r\n renderInput={params => (\r\n \r\n \r\n \r\n )}\r\n />\r\n {/*\r\n setValue('showHubDashboards', value)}\r\n />\r\n }\r\n />\r\n */}\r\n \r\n \r\n \r\n \r\n setValue('decimalNumber', target.value)}\r\n />\r\n \r\n \r\n setValue('decimalSeparator', value)}\r\n value={watch(\"decimalSeparator\") || ''}\r\n helper={t(\"scenes.nodeSettings.fields.decimalSeparator.helper\")}\r\n error={!!errors.decimalSeparator}\r\n helperText={errors.decimalSeparator?.message}\r\n variant=\"outlined\"\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n Dot\r\n Comma\r\n \r\n \r\n \r\n value.map((option, index) => (\r\n \r\n ))\r\n }\r\n onChange={(e, val) => setValue('labelDimensionTerritorials', val)}\r\n renderInput={params => (\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n value.map((option, index) => (\r\n \r\n ))\r\n }\r\n onChange={(e, val) => setValue('hiddenAttributes', val)}\r\n renderInput={params => (\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n setValue(\"temporalDimOrder\", ev.target.value)}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n \r\n {t(\"scenes.nodeSettings.fields.temporalDimOrder.values.unset\")}\r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.temporalDimOrder.values.asc\")}\r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.temporalDimOrder.values.desc\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n setValue('queryInfo', value)}\r\n />\r\n }\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.queryInfoBaseUrl.label\")}\r\n \r\n }\r\n value={watch('queryInfoBaseUrl') || \"\"}\r\n onChange={({target}) => setValue('queryInfoBaseUrl', target.value)}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.defaultLastNPeriods.label\")}\r\n \r\n }\r\n onChange={e => {\r\n if (e.target.value.match(/^[0-9]*$/gm)) {\r\n setValue('defaultLastNPeriods', e.target.value);\r\n }\r\n }}\r\n value={watch(\"defaultLastNPeriods\") || ''}\r\n variant=\"outlined\"\r\n error={!!errors.defaultLastNPeriods}\r\n helperText={errors.defaultLastNPeriods?.message}\r\n disabled={isLastNPeriodsDisabled}\r\n />\r\n \r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.timePeriodRange.label\")}:\r\n \r\n \r\n \r\n setValue('timePeriodRangeStart', date ? moment(date).format(\"YYYY-MM-DD\") : null)}\r\n />\r\n \r\n \r\n \r\n \r\n setValue('timePeriodRangeEnd', date ? moment(date).format(\"YYYY-MM-DD\") : null)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n value.map((option, index) => (\r\n \r\n ))\r\n }\r\n onChange={(e, val) => setValue('hierarchyOnlyAttributes', val)}\r\n renderInput={params => (\r\n \r\n \r\n {t(\"scenes.nodeSettings.fields.hierarchyOnlyAttributes.label\")}\r\n \r\n }\r\n placeholder={t(\"scenes.nodeSettings.fields.hierarchyOnlyAttributes.placeholder\")}\r\n variant=\"outlined\"\r\n />\r\n \r\n )}\r\n />\r\n \r\n setValue('hideHierarchyOnlyRows', value)}\r\n />\r\n }\r\n />\r\n \r\n \r\n \r\n {/*\r\n setValue('pageSize', Number(target.value))}\r\n />\r\n */}\r\n \r\n\r\n \r\n \r\n\r\n
    \r\n
    \r\n );\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n config: state.nodesConfig.node,\r\n initialNodeVisibility: state.nodesConfig.initialNodeVisibility,\r\n languages: state.app.languages,\r\n hub: state.hub?.hub\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchConfig: nodeId => dispatch(fetchNodesConfigNode(nodeId)),\r\n sendConfigCreate: config => dispatch(sendNodesConfigNodeCreate(config)),\r\n sendConfig: config => dispatch(sendNodesConfigNodeEdit(config)),\r\n clearConfig: () => dispatch(clearNodesConfigNode())\r\n});\r\n\r\nconst NodeSettingsForm = ({config, initialNodeVisibility, languages, hub, nodeId, fetchConfig, sendConfigCreate, sendConfig, clearConfig}, ref) => {\r\n\r\n const [needConfig, setNeedConfig] = useState(nodeId !== null);\r\n\r\n useEffect(() => {\r\n\r\n if (needConfig) {\r\n setNeedConfig(false);\r\n fetchConfig(nodeId);\r\n }\r\n }, [config, needConfig, setNeedConfig, fetchConfig, nodeId]);\r\n\r\n return ((nodeId === null || config) && (\r\n \r\n ));\r\n};\r\n\r\nexport default compose(connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef)(NodeSettingsForm);\r\n","import {initRequest, RequestMethod} from \"../../middlewares/request/requestActions\";\r\nimport {\r\n clearDatasetCacheUrl,\r\n getClearNodeCatalogMemoryCacheUrl,\r\n getDataflowsCacheListUrl,\r\n getDataflowsCacheUpdateUrl,\r\n getDataflowsClearAllCacheUrl,\r\n getDataflowsCreateCacheUrl\r\n} from \"../../serverApi/urls\";\r\n\r\nexport const DATAFLOW_CACHE_FETCH = \"cache/fetch\";\r\nexport const DATAFLOW_CACHE_CLEAR = \"cache/clear\";\r\nexport const DATAFLOW_CACHE_UPDATE = \"cache/update\";\r\nexport const DATAFLOW_CACHE_CREATE = \"cache/create\";\r\nexport const DATAFLOW_CACHE_DELETE = \"cache/delete\";\r\nexport const DATAFLOW_CACHE_DELETE_ALL = \"cache/deleteAll\";\r\nexport const DATAFLOW_CACHE_DELETE_CATALOG = \"cache/deleteCatalog\";\r\n\r\n\r\nexport const fetchDataflowCache = (nodeId: number) => initRequest(\r\n DATAFLOW_CACHE_FETCH,\r\n getDataflowsCacheListUrl(nodeId),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.cacheSettings.messages.fetchDataflowCache.start\")\r\n })\r\n);\r\n\r\nexport const updateDataflowCache = (nodeId: number, cacheId: string, ttl: number) => initRequest(\r\n DATAFLOW_CACHE_UPDATE,\r\n getDataflowsCacheUpdateUrl(nodeId, cacheId),\r\n RequestMethod.PUT,\r\n {ttl: ttl},\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.cacheSettings.messages.updateDataflowCache.start\")\r\n }),\r\n {\r\n ttl: ttl,\r\n nodeId: nodeId,\r\n cacheId: cacheId\r\n }\r\n);\r\n\r\nexport const createDataflowCache = (nodeId: number, data:any) => initRequest(\r\n DATAFLOW_CACHE_CREATE,\r\n getDataflowsCreateCacheUrl(nodeId),\r\n RequestMethod.POST,\r\n data,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.cacheSettings.messages.createDataflowCache.start\")\r\n }),\r\n {\r\n oldData: data,\r\n }\r\n);\r\n\r\nexport const deleteDataflowCache = (nodeId: number, dataflowId: string) => initRequest(\r\n DATAFLOW_CACHE_DELETE,\r\n clearDatasetCacheUrl(nodeId, dataflowId.split(\"+\").join(\",\")),\r\n RequestMethod.POST,\r\n {},\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.cacheSettings.messages.deleteDataflowCache.start\")\r\n }),\r\n {\r\n nodeId: nodeId,\r\n dataflowId: dataflowId\r\n }\r\n);\r\n\r\nexport const clearDataflowCache = () => ({\r\n type: DATAFLOW_CACHE_CLEAR\r\n});\r\n\r\nexport const deleteAllDataflowCache = (nodeId: number) => initRequest(\r\n DATAFLOW_CACHE_DELETE_ALL,\r\n getDataflowsClearAllCacheUrl(nodeId),\r\n RequestMethod.POST,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.cacheSettings.messages.deleteAllDataflowCache.start\")\r\n }),\r\n {\r\n nodeId\r\n }\r\n);\r\n\r\nexport const deleteCatalogCache = (nodeId: number) => initRequest(\r\n DATAFLOW_CACHE_DELETE_CATALOG,\r\n getClearNodeCatalogMemoryCacheUrl(nodeId),\r\n RequestMethod.POST,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.cacheSettings.messages.deleteCatalogCache.start\")\r\n }),\r\n {\r\n nodeId\r\n }\r\n);\r\n","import React, {forwardRef, useEffect, useImperativeHandle, useState} from 'react';\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {\r\n clearDataflowCache,\r\n createDataflowCache,\r\n deleteAllDataflowCache,\r\n deleteCatalogCache,\r\n deleteDataflowCache,\r\n fetchDataflowCache,\r\n updateDataflowCache\r\n} from \"../../../../state/cache/cacheActions\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport {Checkbox, withStyles, withTheme} from \"@material-ui/core\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport CustomMaterialTable from \"../../../custom-material-table\";\r\nimport {isValidIntegerInInclusiveRange} from \"../../../../utils/validator\";\r\nimport { secondsToHms } from '../../../../utils/formatters';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: 440\r\n },\r\n field: {\r\n marginTop: theme.spacing(3)\r\n },\r\n paper: {\r\n marginTop: theme.spacing(2),\r\n padding: theme.spacing(3)\r\n },\r\n tabContent: {\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n height: \"calc(100% - 56px)\",\r\n marginTop: 8,\r\n padding: \"0 4px\"\r\n },\r\n title: {\r\n fontSize: 16\r\n }\r\n});\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n config: state.cacheConfig\r\n});\r\n\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchCache: nodeId => dispatch(fetchDataflowCache(nodeId)),\r\n clearCache: () => dispatch(clearDataflowCache()),\r\n updateCache: (nodeId, cacheId, ttl) => dispatch(updateDataflowCache(nodeId, cacheId, ttl)),\r\n createCache: (nodeId, data) => dispatch(createDataflowCache(nodeId, data)),\r\n deleteFromCache: (nodeId, dataflowId) => dispatch(deleteDataflowCache(nodeId, dataflowId)),\r\n deleteAllFromCache: (nodeId) => dispatch(deleteAllDataflowCache(nodeId)),\r\n deleteCatalogCache: (nodeId) => dispatch(deleteCatalogCache(nodeId))\r\n});\r\n\r\nconst CacheSettingsForm = ({\r\n classes,\r\n config,\r\n nodeId,\r\n fetchCache,\r\n createCache,\r\n updateCache,\r\n clearCache,\r\n deleteFromCache,\r\n deleteAllFromCache,\r\n deleteCatalogCache\r\n }, ref) => {\r\n//const CacheSettingsForm = compose(withStyles(styles), forwardRef)(({classes, config, nodeId, fetchCache, updateCache, clearCache, deleteFromCache}, ref) => {\r\n\r\n const [needConfig, setNeedConfig] = useState(nodeId !== null && (!config || config.length === 0));\r\n const [hideEmptyDataflowCache, setEmptyDataflowCacheHidden] = useState(true);\r\n const [emptyRowsCounter, setEmptyRowsCounter] = useState(0);\r\n const [rowsCounter, setRowsCounter] = useState(0);\r\n const {t} = useTranslation();\r\n\r\n useEffect(() => {\r\n\r\n if (!config || config.length === 0) {\r\n setRowsCounter(0);\r\n setEmptyRowsCounter(0);\r\n return;\r\n }\r\n setRowsCounter(config.length);\r\n setEmptyRowsCounter(config.filter(val => val?.cacheSize === 0).length);\r\n }, [config]);\r\n\r\n useEffect(() => {\r\n if (needConfig) {\r\n setNeedConfig(false);\r\n fetchCache(nodeId);\r\n }\r\n\r\n\r\n }, [config, fetchCache, nodeId, needConfig, setNeedConfig]);\r\n /*\r\n const {register, errors, handleSubmit, watch, setValue} = useForm({\r\n defaultValues: {\r\n ...config\r\n }\r\n });\r\n */\r\n\r\n useImperativeHandle(ref, () => ({\r\n submit(f) {\r\n f();\r\n },\r\n cancel(f) {\r\n clearCache();\r\n f();\r\n }\r\n }));\r\n\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/**/}\r\n \r\n \r\n \r\n \r\n setEmptyDataflowCacheHidden(value)}\r\n />\r\n }\r\n />\r\n {/**/}\r\n {/* { (!hideEmptyDataflowCache? \"Hide\" : \"Show\") + \" cache entries which size is 0 Kb.\" }*/}\r\n {/**/}\r\n \r\n \r\n \r\n \r\n secondsToHms(rowData.ttl, t)\r\n },\r\n {\r\n title: t(\"scenes.nodeSettings.cacheSettings.table.dataflowFiles\"),\r\n field: \"cachedDataflow\",\r\n type: \"numeric\",\r\n editable: 'never'\r\n },\r\n {\r\n title: t(\"scenes.nodeSettings.cacheSettings.table.dataflowSize\"),\r\n field: \"cacheSize\",\r\n type: \"numeric\",\r\n editable: 'never',\r\n render: rowData => rowData.cacheSize + \" Kb\"\r\n },\r\n {\r\n title: t(\"scenes.nodeSettings.cacheSettings.table.dataflowAccess\"),\r\n field: \"cachedDataAccess\",\r\n type: \"numeric\",\r\n editable: 'never'\r\n }\r\n\r\n ]}\r\n data={config?.filter(val => !hideEmptyDataflowCache || val.cacheSize > 0) || []}\r\n editable={{\r\n onRowUpdate: (newData, oldData) =>\r\n new Promise((resolve, reject) => {\r\n if ((newData.ttl || \"\").length > 0 && !isValidIntegerInInclusiveRange(newData.ttl, -1)) { // invalid ttl\r\n window.error.show(t(\"scenes.nodeSettings.cacheSettings.invalidTtl.label\"));\r\n reject();\r\n return;\r\n }\r\n\r\n if (newData.ttl === oldData.ttl) { // no update is needed here\r\n resolve();\r\n return;\r\n }\r\n\r\n const dataUpdate = [...config];\r\n const index = oldData.tableData.id;\r\n dataUpdate[index] = newData;\r\n\r\n if (!newData.id || newData.id === '00000000-0000-0000-0000-000000000000') {\r\n createCache(nodeId, newData);\r\n } else {\r\n updateCache(nodeId, newData.id, newData.ttl)\r\n }\r\n\r\n resolve();\r\n }),\r\n onRowDelete: dataflow =>\r\n new Promise((resolve, reject) => {\r\n deleteFromCache(nodeId, dataflow.dataflowId)\r\n resolve();\r\n }),\r\n }}\r\n /*actions={[\r\n {\r\n icon: EditIcon,\r\n tooltip: 'Edit node',\r\n onClick: (_, {id}) => {window.notImplemented.show();}\r\n },\r\n {\r\n icon: DeleteIcon,\r\n tooltip: 'Delete node',\r\n onClick: (_, {id}) => {window.notImplemented.show();}\r\n }]}\r\n */\r\n options={{\r\n actionsColumnIndex: -1,\r\n //maxBodyHeight: 400\r\n }}\r\n localization={{\r\n body: {\r\n editRow: {\r\n deleteText: t(\"scenes.nodesSettings.cacheSettings.modals.deleteDataflowCache.title\")\r\n },\r\n editTooltip: t(\"scenes.nodeSettings.cacheSettings.table.actions.editRow\"),\r\n deleteTooltip: t(\"scenes.nodeSettings.cacheSettings.table.actions.deleteRow\")\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n );\r\n};\r\n\r\nexport default compose(withStyles(styles), withTheme, compose(connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}),\r\n forwardRef))(CacheSettingsForm);\r\n","import {initRequest, RequestMethod} from \"../../middlewares/request/requestActions\";\r\nimport {getDeleteTemplateUrl, getNodeTemplatesUrl} from \"../../serverApi/urls\";\r\n\r\nexport const NODE_TEMPLATES_CONFIG_FETCH = \"nodeTemplatesConfig/fetch\";\r\nexport const NODE_TEMPLATES_CONFIG_CLEAR = \"nodeTemplatesConfig/clear\";\r\nexport const NODE_TEMPLATES_CONFIG_TEMPLATE_DELETE = \"nodeTemplatesConfig/deleteTemplate\";\r\n\r\nexport const fetchNodeTemplatesConfig = (nodeId: number) => initRequest(\r\n NODE_TEMPLATES_CONFIG_FETCH,\r\n getNodeTemplatesUrl(nodeId),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.templatesSettings.fetchConfig.start\")\r\n })\r\n);\r\n\r\nexport const clearNodeTemplatesConfig = () => ({\r\n type: NODE_TEMPLATES_CONFIG_CLEAR\r\n});\r\n\r\nexport const deleteNodeTemplatesConfigTemplate = (nodeId: number, id: number) => initRequest(\r\n NODE_TEMPLATES_CONFIG_TEMPLATE_DELETE,\r\n getDeleteTemplateUrl(nodeId, id),\r\n RequestMethod.DELETE,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.templatesSettings.deleteTemplate.start\")\r\n }),\r\n {\r\n nodeId\r\n }\r\n);","import React, {forwardRef, Fragment, useEffect, useImperativeHandle, useState} from 'react';\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../../../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {connect} from \"react-redux\";\r\nimport {compose} from \"redux\";\r\nimport {Visibility} from \"@material-ui/icons\";\r\nimport {\r\n clearNodeTemplatesConfig,\r\n deleteNodeTemplatesConfigTemplate,\r\n fetchNodeTemplatesConfig\r\n} from \"../../../../state/noteTemplatesConfig/nodeTemplatesConfigActions\";\r\nimport {goToDataset} from \"../../../../links\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport CustomMaterialTable from \"../../../custom-material-table\";\r\nimport {getI18nObjCustomFilterAndSearch, localizeI18nObj} from \"../../../../utils/i18n\";\r\n\r\nconst styles = theme => ({\r\n tableToolbar: {\r\n marginBottom: theme.spacing(1)\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n defaultLanguage: state.app.language,\r\n languages: state.app.languages,\r\n templates: state.nodeTemplatesConfig.templates\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchTemplates: nodeId => dispatch(fetchNodeTemplatesConfig(nodeId)),\r\n deleteTemplate: (nodeId, id) => dispatch(deleteNodeTemplatesConfigTemplate(nodeId, id)),\r\n clearTemplates: () => dispatch(clearNodeTemplatesConfig())\r\n});\r\n\r\nconst TemplatesSettingsForm = ({\r\n classes,\r\n defaultLanguage,\r\n languages,\r\n nodes,\r\n nodeId,\r\n defaultNodeOpen,\r\n templates,\r\n fetchTemplates,\r\n deleteTemplate,\r\n clearTemplates,\r\n onTemplatesClose\r\n }, ref) => {\r\n\r\n const [needTemplates, setNeedTemplates] = useState(true);\r\n\r\n const {t} = useTranslation();\r\n\r\n useEffect(() => {\r\n\r\n if (needTemplates) {\r\n setNeedTemplates(false);\r\n fetchTemplates(nodeId);\r\n }\r\n }, [templates, needTemplates, setNeedTemplates, fetchTemplates, nodeId]);\r\n\r\n useImperativeHandle(ref, () => ({\r\n cancel(f) {\r\n clearTemplates();\r\n f();\r\n }\r\n }));\r\n\r\n const [deleteTemplateId, setDeleteTemplateId] = useState(null);\r\n\r\n return templates && (\r\n \r\n localizeI18nObj(title, defaultLanguage, languages),\r\n customFilterAndSearch: getI18nObjCustomFilterAndSearch(defaultLanguage, languages)\r\n }\r\n ]}\r\n data={(templates || []).filter(({nodeId}) => nodes.find(node => node.nodeId === nodeId))}\r\n actions={[\r\n {\r\n icon: Visibility,\r\n tooltip: t(\"scenes.nodeSettings.templatesSettings.table.actions.viewData\"),\r\n onClick: (_, {nodeId, datasetId}) => {\r\n const nodeCode = nodes.find(node => node.nodeId === nodeId).code.toLowerCase();\r\n return (window.location.href.toLowerCase().includes(nodeCode) && window.location.href.toLowerCase().includes(datasetId.toLowerCase()))\r\n ? onTemplatesClose()\r\n : goToDataset(nodeCode, [], datasetId)\r\n }\r\n\r\n },\r\n {\r\n icon: DeleteIcon,\r\n tooltip: t(\"scenes.nodeSettings.templatesSettings.table.actions.deleteTemplate\"),\r\n onClick: (_, {viewTemplateId}) => setDeleteTemplateId(viewTemplateId)\r\n }\r\n ]}\r\n options={{\r\n actionsColumnIndex: 3\r\n }}\r\n />\r\n\r\n setDeleteTemplateId(null)}\r\n >\r\n setDeleteTemplateId(null)}>\r\n {t(\"scenes.nodeSettings.templatesSettings.modals.deleteTemplate.title\")}\r\n \r\n \r\n {t(\"scenes.nodeSettings.templatesSettings.modals.deleteTemplate.content\")}\r\n \r\n \r\n setDeleteTemplateId(null)}\r\n >\r\n {t(\"commons.confirm.cancel\")}\r\n \r\n {\r\n deleteTemplate(nodeId, deleteTemplateId);\r\n setDeleteTemplateId(null);\r\n }}\r\n >\r\n {t(\"commons.confirm.confirm\")}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(withStyles(styles), connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef)(TemplatesSettingsForm);","import {initRequest, RequestMethod} from \"../../middlewares/request/requestActions\";\r\nimport {getNodePermissionsConfigGetUrl, getNodePermissionsConfigPutUrl} from \"../../serverApi/urls\";\r\n\r\nexport const NODE_PERMISSIONS_CONFIG_FETCH = \"nodePermissionsConfig/fetch\";\r\nexport const NODE_PERMISSIONS_CONFIG_CLEAR = \"nodePermissionsConfig/clear\";\r\nexport const NODE_PERMISSIONS_CONFIG_SEND = \"nodePermissionsConfig/send\";\r\n\r\nexport const fetchNodePermissionsConfig = (nodeId: number) => initRequest(\r\n NODE_PERMISSIONS_CONFIG_FETCH,\r\n getNodePermissionsConfigGetUrl(nodeId),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.permissionsSettings.fetchConfig.start\")\r\n })\r\n);\r\n\r\nexport const sendNodePermissionsConfig = (nodeId: number, config: any) => initRequest(\r\n NODE_PERMISSIONS_CONFIG_SEND,\r\n getNodePermissionsConfigPutUrl(nodeId),\r\n RequestMethod.PUT,\r\n config,\r\n t => ({\r\n onStart: t(\"scenes.nodesSettings.permissionsSettings.sendConfig.start\")\r\n })\r\n);\r\n\r\nexport const clearNodePermissionsConfig = () => ({\r\n type: NODE_PERMISSIONS_CONFIG_CLEAR\r\n});\r\n","import React, {forwardRef, Fragment, useEffect, useImperativeHandle, useState} from 'react';\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {\r\n clearNodePermissionsConfig,\r\n fetchNodePermissionsConfig,\r\n sendNodePermissionsConfig\r\n} from \"../../../../state/nodePermissionsConfig/nodePermissionsConfigActions\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport {useForm} from \"react-hook-form\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport CustomMaterialTable from \"../../../custom-material-table\";\r\nimport {NodeDataAccessibility, NodeVisibility} from \"../../../../model/IHubMinimalNode.d.ts\";\r\n\r\nconst styles = theme => ({\r\n tableToolbar: {\r\n marginBottom: theme.spacing(1)\r\n },\r\n buttonAction: {\r\n ...theme.typography.button\r\n }\r\n});\r\n\r\nconst getPermissions = (visible, dataAccess, t) => {\r\n const permissions = [];\r\n\r\n if (visible === NodeVisibility.Profiled && dataAccess === NodeDataAccessibility.Profiled) {\r\n permissions.push({\r\n id: \"ViewNode\",\r\n label: t ? t(\"scenes.nodeSettings.permissions.table.columns.viewNode\") : \"ViewNode\"\r\n });\r\n }\r\n\r\n permissions.push(\r\n {\r\n id: \"ManageCache\",\r\n label: t ? t(\"scenes.nodeSettings.permissions.table.columns.manageCache\") : \"ManageCache\"\r\n },\r\n {\r\n id: \"ManageTemplate\",\r\n label: t ? t(\"scenes.nodeSettings.permissions.table.columns.manageTemplate\") : \"ManageTemplate\"\r\n },\r\n {\r\n id: \"ManageConfig\",\r\n label: t ? t(\"scenes.nodeSettings.permissions.table.columns.manageConfig\") : \"ManageConfig\"\r\n }\r\n );\r\n\r\n return permissions;\r\n};\r\n\r\nconst Form = compose(withStyles(styles), forwardRef)(({classes, config, modulesPermissions, nodeId, node, onSubmit, onCancel}, ref) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const {register, handleSubmit, watch, setValue} = useForm({\r\n defaultValues: {\r\n config: config?.map((user, index) => {\r\n let res = {...user};\r\n getPermissions(node.visible, node.dataAccess, t).concat(modulesPermissions).forEach(({id}) => {\r\n res[id] = config[index].permission.includes(`${id}_SingleNode_${nodeId}`) === true;\r\n });\r\n return res;\r\n })\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (config) {\r\n config.forEach((user, index) =>\r\n getPermissions(node.visible, node.dataAccess, t).concat(modulesPermissions).forEach(({id}) =>\r\n register({name: `config[${index}].${id}`})\r\n )\r\n )\r\n }\r\n }, [register, config, modulesPermissions, node, t]);\r\n\r\n useImperativeHandle(ref, () => ({\r\n submit(f) {\r\n handleSubmit(val => {\r\n\r\n const data = val.config.map((userVal, index) => {\r\n let res = {\r\n userId: config[index].userId,\r\n nodePermissions: []\r\n };\r\n getPermissions(node.visible, node.dataAccess, t).concat(modulesPermissions).map(({id}) => id).forEach(p => {\r\n if (userVal[p] === true) {\r\n res.nodePermissions.push(p);\r\n }\r\n });\r\n res.tableData = undefined;\r\n return res;\r\n });\r\n\r\n onSubmit(nodeId, data);\r\n f(data);\r\n })();\r\n },\r\n cancel(f) {\r\n onCancel();\r\n f();\r\n }\r\n }));\r\n\r\n return config && (\r\n \r\n ({\r\n title: label,\r\n render: ({tableData}) =>\r\n setValue(`config[${tableData.id}].${id}`, value)}\r\n />,\r\n sorting: false\r\n }))\r\n ]}\r\n data={config}\r\n />\r\n \r\n );\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n config: state.nodePermissionsConfig.permissions,\r\n modulesConfig: state.app.modulesConfig,\r\n nodes: state.nodesConfig.nodes\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchConfig: nodeId => dispatch(fetchNodePermissionsConfig(nodeId)),\r\n sendConfig: (nodeId, config) => dispatch(sendNodePermissionsConfig(nodeId, config)),\r\n clearConfig: () => dispatch(clearNodePermissionsConfig())\r\n});\r\n\r\nconst PermissionsSettingsForm = ({config, modulesConfig, nodes, nodeId, fetchConfig, sendConfig, clearConfig}, ref) => {\r\n\r\n const [needConfig, setNeedConfig] = useState(nodeId !== null);\r\n\r\n const {t} = useTranslation();\r\n\r\n useEffect(() => {\r\n if (needConfig) {\r\n setNeedConfig(false);\r\n fetchConfig(nodeId);\r\n }\r\n }, [config, needConfig, setNeedConfig, fetchConfig, nodeId]);\r\n\r\n return ((nodeId === null || config) && (\r\n node.nodeId === nodeId)}\r\n config={nodeId === null ? undefined : config}\r\n modulesPermissions={modulesConfig.permissions.map(({id, getLabel}) => ({\r\n id: id,\r\n label: getLabel(t)\r\n }))}\r\n ref={ref}\r\n onSubmit={sendConfig}\r\n onCancel={clearConfig}\r\n />\r\n ));\r\n};\r\n\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef\r\n)(PermissionsSettingsForm);","import React, {forwardRef} from 'react';\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport DashboardsManager from \"../../../dashboards-manager\";\r\nimport {\r\n addNodesConfigDashboardsNodeDashboard,\r\n clearAllNodesConfigNodeDashboards,\r\n clearNodesConfigNodeDashboards,\r\n fetchAllNodeConfigDashboards,\r\n fetchNodesConfigNodeDashboards,\r\n removeNodesConfigDashboardsNodeDashboard,\r\n sendNodesConfigDashboardsNodeOrders\r\n} from \"../../../../state/nodesConfig/nodesConfigActions\";\r\n\r\nconst mapStateToProps = state => ({\r\n config: state.hubConfig.hub,\r\n user: state.user,\r\n dashboards: state.nodesConfig.nodeDashboards,\r\n allDashboards: state.nodesConfig.allDashboards\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchDashboards: nodeId => dispatch(fetchNodesConfigNodeDashboards(nodeId)),\r\n fetchAllDashboards: () => dispatch(fetchAllNodeConfigDashboards()),\r\n clearDashboards: () => dispatch(clearNodesConfigNodeDashboards()),\r\n clearAllDashboards: () => dispatch(clearAllNodesConfigNodeDashboards()),\r\n addDashboard: (nodeId, dashboardId) => dispatch(addNodesConfigDashboardsNodeDashboard(nodeId, dashboardId)),\r\n removeDashboard: (nodeId, dashboardId) => dispatch(removeNodesConfigDashboardsNodeDashboard(nodeId, dashboardId)),\r\n sendDashboardsOrders: (nodeId, dashboardsIds) => dispatch(sendNodesConfigDashboardsNodeOrders(nodeId, dashboardsIds))\r\n});\r\n\r\nconst DashboardsSettingsForm = ({\r\n dashboards,\r\n allDashboards,\r\n fetchDashboards,\r\n fetchAllDashboards,\r\n clearDashboards,\r\n clearAllDashboards,\r\n addDashboard,\r\n removeDashboard,\r\n sendDashboardsOrders,\r\n nodeId\r\n }, ref) =>\r\n fetchDashboards(nodeId)}\r\n fetchAllDashboards={fetchAllDashboards}\r\n clearDashboards={clearDashboards}\r\n clearAllDashboards={clearAllDashboards}\r\n addDashboard={dashboardId => addDashboard(nodeId, dashboardId)}\r\n removeDashboard={dashboardId => removeDashboard(nodeId, dashboardId)}\r\n sendDashboardsOrders={dashboardsIds => sendDashboardsOrders(nodeId, dashboardsIds)}\r\n ref={ref}\r\n />;\r\n\r\nexport default compose(connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef)(DashboardsSettingsForm);","import React, {forwardRef, Fragment, useEffect, useImperativeHandle, useRef, useState} from 'react';\r\nimport NodeSettingsForm from \"./node-settings-form\";\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport {Box, withStyles} from \"@material-ui/core\";\r\nimport SettingsDialog from \"../../settings-dialog\";\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp';\r\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {\r\n clearNodesConfigNodes,\r\n closeNodesConfig,\r\n deleteNodesConfigNode,\r\n fetchNodesConfigNodes,\r\n sendNodesConfigNodesOrder,\r\n setNodesConfigNodeId,\r\n setNodesConfigNodeVisibility\r\n} from \"../../../state/nodesConfig/nodesConfigActions\";\r\nimport {connect} from \"react-redux\";\r\nimport {compose} from \"redux\";\r\nimport CacheSettingsForm from \"./cache-setting-form/index\";\r\nimport TemplatesSettingsForm from \"./templates-settings-form\";\r\nimport {\r\n canCreateNode,\r\n canDeleteNodes,\r\n canDisplayCacheSettingForm,\r\n canDisplayPermissionsSettingsForm,\r\n canDisplayTemplatesSettingsForm,\r\n canEditNode,\r\n canManageNodeDashboards,\r\n canSortNodes\r\n} from \"../../../utils/user\";\r\nimport PermissionsSettingsForm from \"./permissions-settings-form\";\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport DashboardIcon from \"@material-ui/icons/Dashboard\";\r\nimport DashboardsSettingsForm from \"./dashboards-settings-form\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport CustomMaterialTable from \"../../custom-material-table\";\r\nimport {getI18nObjCustomFilterAndSearch, localizeI18nObj} from \"../../../utils/i18n\";\r\nimport \"./style.css\";\r\nimport {NodeVisibility} from \"../../../model/IHubMinimalNode.d.ts\";\r\n\r\nimport themeConfig from \"../../../config/theme/config.json\";\r\n\r\nconst styles = theme => ({\r\n tableToolbar: {\r\n marginBottom: theme.spacing(1)\r\n },\r\n buttonAction: {\r\n ...theme.typography.button\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n config: state.nodesConfig.nodes,\r\n isNodeVisible: state.nodesConfig.isNodeVisible,\r\n nodeId: state.nodesConfig.nodeId,\r\n user: state.user,\r\n language: state.app.language,\r\n languages: state.app.languages\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setNodeVisibility: visible => dispatch(setNodesConfigNodeVisibility(visible)),\r\n setNodeId: nodeId => dispatch(setNodesConfigNodeId(nodeId)),\r\n fetchConfig: () => dispatch(fetchNodesConfigNodes()),\r\n sendOrders: orderedIds => dispatch(sendNodesConfigNodesOrder(orderedIds)),\r\n deleteNode: nodeId => dispatch(deleteNodesConfigNode(nodeId)),\r\n clearConfig: () => dispatch(clearNodesConfigNodes()),\r\n onClose: () => dispatch(closeNodesConfig())\r\n});\r\n\r\nconst NodesSettingsForm = ({\r\n classes,\r\n defaultNodeOpen,\r\n config,\r\n isNodeVisible,\r\n nodeId,\r\n setNodeVisibility,\r\n setNodeId,\r\n fetchConfig,\r\n sendOrders,\r\n deleteNode,\r\n clearConfig,\r\n nodes,\r\n user,\r\n onClose,\r\n language,\r\n languages,\r\n onNodesClose\r\n }, ref) => {\r\n\r\n const [needConfig, setNeedConfig] = useState(true);\r\n const {t} = useTranslation();\r\n\r\n useEffect(() => {\r\n\r\n if (needConfig) {\r\n setNeedConfig(false);\r\n fetchConfig();\r\n }\r\n }, [config, needConfig, setNeedConfig, fetchConfig]);\r\n\r\n useImperativeHandle(ref, () => ({\r\n cancel(f) {\r\n clearConfig();\r\n onClose();\r\n f();\r\n }\r\n }));\r\n\r\n const [nodeDeleteFormNodeId, setNodeDeleteFormNodeId] = useState(null);\r\n const [cacheFormNodeId, setCacheFormNodeId] = useState(null);\r\n const [isCacheFormVisible, setCacheFormVisibility] = useState(false);\r\n const [templatesNodeId, setTemplatesNodeId] = useState(null);\r\n const [permissionsNodeId, setPermissionsNodeId] = useState(null);\r\n const [dashboardsNodeId, setDashboardsNodeId] = useState(null);\r\n\r\n const nodeFormRef = useRef();\r\n const cacheFormRef = useRef();\r\n const templatesRef = useRef();\r\n const permissionsRef = useRef();\r\n const dashboardsRef = useRef();\r\n\r\n const allowedNodes = (config || []).filter(({nodeId}) =>\r\n canCreateNode(user) ||\r\n canSortNodes(user) ||\r\n canDisplayCacheSettingForm(user, nodeId) ||\r\n canDisplayTemplatesSettingsForm(user, nodeId) ||\r\n canDisplayPermissionsSettingsForm(user) ||\r\n canEditNode(user, nodeId) ||\r\n canDeleteNodes(user)\r\n );\r\n const orderedNodes = (allowedNodes || []).sort((a, b) => a.order - b.order)\r\n const orderedNodesIds = orderedNodes.map(({nodeId}) => nodeId);\r\n\r\n const moveUp = rowIndex =>\r\n sendOrders([\r\n ...orderedNodesIds.slice(0, rowIndex - 1),\r\n orderedNodesIds[rowIndex],\r\n orderedNodesIds[rowIndex - 1],\r\n ...orderedNodesIds.slice(rowIndex + 1)\r\n ]);\r\n\r\n const moveDown = rowIndex =>\r\n sendOrders([\r\n ...orderedNodesIds.slice(0, rowIndex),\r\n orderedNodesIds[rowIndex + 1],\r\n orderedNodesIds[rowIndex],\r\n ...orderedNodesIds.slice(rowIndex + 2)\r\n ]);\r\n\r\n return config && (\r\n \r\n \r\n }\r\n onClick={() => {\r\n setNodeId(null);\r\n setNodeVisibility(true);\r\n setCacheFormVisibility(false);\r\n }}\r\n >\r\n {t(\"scenes.nodesSettings.createNode\")}\r\n \r\n )\r\n : null\r\n }\r\n columns={[\r\n {\r\n field: \"code\",\r\n title: t(\"scenes.nodesSettings.table.columns.nodeCode\")\r\n },\r\n {\r\n field: \"title\",\r\n title: t(\"scenes.nodesSettings.table.columns.nodeName\"),\r\n render: ({title}) => localizeI18nObj(title, language, languages),\r\n customFilterAndSearch: getI18nObjCustomFilterAndSearch(language, languages)\r\n },\r\n {\r\n field: \"active\",\r\n title: t(\"scenes.nodesSettings.table.columns.isNodeActive.title\"),\r\n render: ({active}) =>\r\n active\r\n ? t(\"scenes.nodesSettings.table.columns.isNodeActive.values.true\")\r\n : t(\"scenes.nodesSettings.table.columns.isNodeActive.values.false\")\r\n },\r\n {\r\n field: \"visible\",\r\n title: t(\"scenes.nodesSettings.table.columns.isNodeVisible.title\"),\r\n render: ({visible}) =>\r\n visible === NodeVisibility.Yes\r\n ? t(\"scenes.nodesSettings.table.columns.isNodeVisible.values.true\")\r\n : t(\"scenes.nodesSettings.table.columns.isNodeVisible.values.false\")\r\n },\r\n {\r\n field: \"default\",\r\n title: t(\"scenes.nodesSettings.table.columns.isNodeDefault.title\"),\r\n render: node =>\r\n node.default\r\n ? t(\"scenes.nodesSettings.table.columns.isNodeDefault.values.true\")\r\n : t(\"scenes.nodesSettings.table.columns.isNodeDefault.values.false\")\r\n }\r\n ]}\r\n data={orderedNodes}\r\n actions={[\r\n ({tableData}) =>\r\n canSortNodes(user)\r\n ? {\r\n icon: ArrowDropUpIcon,\r\n tooltip: t(\"scenes.nodesSettings.table.actions.nodeOrderMoveUp\"),\r\n onClick: (_, {tableData}) => moveUp(tableData.id), // tableData.id is the rowIndex\r\n disabled: tableData.id === 0\r\n }\r\n : null,\r\n ({tableData}) =>\r\n canSortNodes(user)\r\n ? {\r\n icon: ArrowDropDownIcon,\r\n tooltip: t(\"scenes.nodesSettings.table.actions.nodeOrderMoveDown\"),\r\n onClick: (_, {tableData}) => moveDown(tableData.id), // tableData.id is the rowIndex\r\n disabled: tableData.id === config.length - 1\r\n }\r\n : null,\r\n ({nodeId}) =>\r\n canDisplayCacheSettingForm(user, nodeId)\r\n ? {\r\n icon: () =>\r\n
    \r\n {t(\"scenes.nodesSettings.table.actions.nodeDataflowsCache.label\")}\r\n
    ,\r\n tooltip: t(\"scenes.nodesSettings.table.actions.nodeDataflowsCache.tooltip\"),\r\n onClick: (_, {nodeId}) => {\r\n setCacheFormNodeId(nodeId);\r\n setNodeVisibility(false);\r\n setCacheFormVisibility(true);\r\n }\r\n }\r\n : null,\r\n ({nodeId}) =>\r\n canDisplayTemplatesSettingsForm(user, nodeId)\r\n ? {\r\n icon: () =>\r\n
    \r\n {t(\"scenes.nodesSettings.table.actions.nodeTemplates.label\")}\r\n
    ,\r\n tooltip: t(\"scenes.nodesSettings.table.actions.nodeTemplates.tooltip\"),\r\n onClick: (_, {nodeId}) => {\r\n setTemplatesNodeId(nodeId);\r\n }\r\n }\r\n : null,\r\n () =>\r\n canDisplayPermissionsSettingsForm(user)\r\n ? {\r\n icon: PersonIcon,\r\n tooltip: t(\"scenes.nodesSettings.table.actions.nodePermissions\"),\r\n onClick: (_, {nodeId}) => {\r\n setPermissionsNodeId(nodeId);\r\n }\r\n }\r\n : null,\r\n ({nodeId}) =>\r\n (canManageNodeDashboards(user, nodeId) && themeConfig.enableDashboard)\r\n ? {\r\n icon: DashboardIcon,\r\n tooltip: t(\"scenes.nodesSettings.table.actions.nodeDashboards\"),\r\n onClick: (_, {nodeId}) => {\r\n setDashboardsNodeId(nodeId);\r\n }\r\n }\r\n : null,\r\n ({nodeId}) =>\r\n canEditNode(user, nodeId)\r\n ? {\r\n icon: EditIcon,\r\n tooltip: t(\"scenes.nodesSettings.table.actions.editNode\"),\r\n onClick: (_, {nodeId}) => {\r\n setNodeId(nodeId);\r\n setNodeVisibility(true);\r\n setCacheFormVisibility(false);\r\n }\r\n }\r\n : null,\r\n () =>\r\n canDeleteNodes(user)\r\n ? {\r\n icon: DeleteIcon,\r\n tooltip: t(\"scenes.nodesSettings.table.actions.deleteNode\"),\r\n onClick: (_, {nodeId}) => setNodeDeleteFormNodeId(nodeId)\r\n }\r\n : null\r\n ]}\r\n options={{\r\n actionsColumnIndex: 5\r\n }}\r\n />\r\n
    \r\n {\r\n if (nodeFormRef.current) {\r\n nodeFormRef.current.cancel(() => {\r\n setNodeVisibility(false);\r\n setNodeId(null);\r\n });\r\n } else {\r\n setNodeVisibility(false);\r\n setNodeId(null);\r\n }\r\n }}\r\n onSubmit={() => {\r\n if (nodeFormRef.current) {\r\n nodeFormRef.current.submit(() => {\r\n // setNodeVisibility(false);\r\n // setNodeId(null);\r\n });\r\n } else {\r\n // setNodeVisibility(false);\r\n // setNodeId(null);\r\n }\r\n }}\r\n hasSubmit\r\n >\r\n \r\n \r\n\r\n node.nodeId === cacheFormNodeId)?.code})}\r\n open={isCacheFormVisible}\r\n onClose={() => {\r\n if (cacheFormRef.current) {\r\n cacheFormRef.current.cancel(() => {\r\n setCacheFormVisibility(false);\r\n setCacheFormNodeId(null);\r\n });\r\n } else {\r\n setCacheFormVisibility(false);\r\n setCacheFormNodeId(null);\r\n }\r\n }}\r\n onSubmit={() => {\r\n if (cacheFormRef.current) {\r\n cacheFormRef.current.submit(() => {\r\n setCacheFormVisibility(false);\r\n setCacheFormNodeId(null);\r\n });\r\n } else {\r\n setCacheFormVisibility(false);\r\n setCacheFormNodeId(null);\r\n }\r\n }}\r\n false\r\n >\r\n \r\n \r\n\r\n node.nodeId === templatesNodeId)?.code})}\r\n open={templatesNodeId !== null}\r\n onClose={() => {\r\n if (templatesRef.current) {\r\n templatesRef.current.cancel(() => setTemplatesNodeId(null));\r\n } else {\r\n setTemplatesNodeId(null);\r\n }\r\n }}\r\n >\r\n {\r\n setTemplatesNodeId(null);\r\n onNodesClose();\r\n }}\r\n />\r\n \r\n\r\n node.nodeId === permissionsNodeId)?.code})}\r\n open={permissionsNodeId !== null}\r\n onClose={() => {\r\n if (permissionsRef.current) {\r\n permissionsRef.current.cancel(() => {\r\n setPermissionsNodeId(null);\r\n });\r\n } else {\r\n setPermissionsNodeId(null);\r\n }\r\n }}\r\n onSubmit={() => {\r\n if (permissionsRef.current) {\r\n permissionsRef.current.submit(() => {\r\n setPermissionsNodeId(null);\r\n });\r\n } else {\r\n setPermissionsNodeId(null);\r\n }\r\n }}\r\n hasSubmit\r\n >\r\n \r\n \r\n\r\n node.nodeId === dashboardsNodeId)?.code})}\r\n open={dashboardsNodeId !== null && themeConfig.enableDashboard}\r\n onClose={() => {\r\n if (dashboardsRef.current) {\r\n dashboardsRef.current.destroy(() => {\r\n setDashboardsNodeId(null);\r\n });\r\n } else {\r\n setDashboardsNodeId(null);\r\n }\r\n }}\r\n onSubmit={() => {\r\n if (dashboardsRef.current) {\r\n dashboardsRef.current.destroy(() => {\r\n setDashboardsNodeId(null);\r\n });\r\n } else {\r\n setDashboardsNodeId(null);\r\n }\r\n }}\r\n >\r\n \r\n \r\n\r\n {\r\n setNodeDeleteFormNodeId(null);\r\n setCacheFormNodeId(null);\r\n }}\r\n >\r\n {\r\n setNodeDeleteFormNodeId(null);\r\n setCacheFormNodeId(null);\r\n }}\r\n >\r\n {t(\"scenes.nodesSettings.modals.nodeDelete.title\")}\r\n \r\n \r\n {t(\"scenes.nodesSettings.modals.nodeDelete.content\")}\r\n \r\n \r\n {\r\n setNodeDeleteFormNodeId(null);\r\n setCacheFormNodeId(null);\r\n }}\r\n >\r\n {t(\"commons.confirm.cancel\")}\r\n \r\n {\r\n deleteNode(nodeDeleteFormNodeId);\r\n setNodeDeleteFormNodeId(null);\r\n setCacheFormNodeId(null);\r\n }}\r\n >\r\n {t(\"commons.confirm.confirm\")}\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default compose(withStyles(styles), connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}), forwardRef)(NodesSettingsForm);","import React, {forwardRef, useEffect, useImperativeHandle, useRef, useState} from 'react';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport SettingsDialog from \"../../settings-dialog\";\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {compose} from \"redux\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport UserSettingsForm from \"./user-settings-form\";\r\nimport {connect} from \"react-redux\";\r\nimport {\r\n clearUsersConfigUsers,\r\n deleteUsersConfigUser,\r\n fetchUsersConfigUsers,\r\n hideUserConfigForm,\r\n showUserConfigForm\r\n} from \"../../../state/usersConfig/usersConfigActions\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport CustomMaterialTable from \"../../custom-material-table\";\r\nimport \"./style.css\";\r\nimport {localizeI18nObj} from \"../../../utils/i18n\";\r\n\r\nconst styles = theme => ({\r\n tableToolbar: {\r\n marginBottom: theme.spacing(1)\r\n },\r\n buttonAction: {\r\n ...theme.typography.button\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n config: state.usersConfig.users,\r\n userErrors: state.usersConfig.userErrors,\r\n userId: state.usersConfig.userId,\r\n appConfig: state.appConfig,\r\n languages: state.app.languages,\r\n language: state.app.language\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchConfig: () => dispatch(fetchUsersConfigUsers()),\r\n deleteUser: userId => dispatch(deleteUsersConfigUser(userId)),\r\n clearConfig: () => dispatch(clearUsersConfigUsers()),\r\n onUserFormShow: userId => dispatch(showUserConfigForm(userId)),\r\n onUserFormHide: () => dispatch(hideUserConfigForm())\r\n});\r\n\r\nconst UsersSettingsForm = ({\r\n classes,\r\n config,\r\n fetchConfig,\r\n deleteUser,\r\n clearConfig,\r\n users,\r\n userErrors,\r\n userId,\r\n onUserFormShow,\r\n onUserFormHide,\r\n appConfig,\r\n languages,\r\n language\r\n }, ref) => {\r\n\r\n const [needConfig, setNeedConfig] = useState(true);\r\n\r\n useEffect(() => {\r\n\r\n if (needConfig) {\r\n setNeedConfig(false);\r\n fetchConfig();\r\n }\r\n }, [config, needConfig, setNeedConfig, fetchConfig]);\r\n\r\n useImperativeHandle(ref, () => ({\r\n cancel(f) {\r\n clearConfig();\r\n f();\r\n }\r\n }));\r\n\r\n const [userDeleteFormUserId, setUserDeleteFormUserId] = useState(null);\r\n\r\n const userFormRef = useRef();\r\n\r\n const {t} = useTranslation();\r\n\r\n return config && (\r\n
    \r\n }\r\n onClick={() => onUserFormShow(-1)}\r\n >\r\n {t(\"scenes.usersSettings.createUser\")}\r\n \r\n }\r\n columns={[\r\n {field: \"firstName\", title: t(\"scenes.usersSettings.table.columns.userFirstName\")},\r\n {field: \"lastName\", title: t(\"scenes.usersSettings.table.columns.userLastName\")},\r\n {\r\n field: \"type\",\r\n title: t(\"scenes.usersSettings.table.columns.type\"),\r\n render: ({type}) => localizeI18nObj(appConfig.user.typeOptions?.find(({id}) => type === id)?.label, language, languages)\r\n },\r\n {field: \"organization\", title: t(\"scenes.usersSettings.table.columns.userOrganization\")},\r\n {field: \"providerLabel\", title: t(\"scenes.usersSettings.table.columns.userProvider\")},\r\n {field: \"email\", title: t(\"scenes.usersSettings.table.columns.userEmail\")},\r\n {\r\n field: \"isActive\",\r\n title: t(\"scenes.usersSettings.table.columns.isActive.title\"),\r\n render: ({isActive}) =>\r\n isActive\r\n ? t(\"scenes.usersSettings.table.columns.isActive.values.true\")\r\n : t(\"scenes.usersSettings.table.columns.isActive.values.false\")\r\n }\r\n ]}\r\n data={config}\r\n actions={[\r\n {\r\n icon: EditIcon,\r\n tooltip: t(\"scenes.usersSettings.table.actions.editUser\"),\r\n onClick: (_, {userId}) => {\r\n onUserFormShow(userId);\r\n }\r\n },\r\n {\r\n icon: DeleteIcon,\r\n tooltip: t(\"scenes.usersSettings.table.actions.deleteUser\"),\r\n onClick: (_, {userId}) => {\r\n setUserDeleteFormUserId(userId);\r\n }\r\n }\r\n ]}\r\n options={{\r\n actionsColumnIndex: 5\r\n }}\r\n />\r\n {\r\n if (userFormRef.current) {\r\n userFormRef.current.cancel(() => {\r\n onUserFormHide();\r\n });\r\n } else {\r\n onUserFormHide();\r\n }\r\n }}\r\n onSubmit={() => {\r\n if (userFormRef.current) {\r\n userFormRef.current.submit(() => {\r\n });\r\n }\r\n }}\r\n hasSubmit\r\n >\r\n \r\n \r\n\r\n setUserDeleteFormUserId(null)}\r\n >\r\n setUserDeleteFormUserId(null)}>\r\n {t(\"scenes.usersSettings.modals.deleteUser.title\")}\r\n \r\n \r\n {t(\"scenes.usersSettings.modals.deleteUser.content\")}\r\n \r\n \r\n setUserDeleteFormUserId(null)}\r\n >\r\n {t(\"commons.confirm.cancel\")}\r\n \r\n {\r\n deleteUser(userDeleteFormUserId);\r\n setUserDeleteFormUserId(null);\r\n }}\r\n >\r\n {t(\"commons.confirm.confirm\")}\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps, mapDispatchToProps, null, {forwardRef: true}),\r\n forwardRef\r\n)(UsersSettingsForm);","import React, {Fragment} from \"react\";\r\nimport ButtonSelect from \"../button-select\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport SettingsDialog from \"../settings-dialog\";\r\nimport AppSettingsForm from \"./app-settings-form\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport NodesSettingsForm from \"./nodes-settings-form\";\r\nimport {connect} from \"react-redux\";\r\nimport {compose} from \"redux\";\r\nimport {clearMemoryCache, downloadQueryLog} from \"./actions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport UsersSettingsForm from \"./users-settings-form\";\r\nimport {\r\n canDisplayAppSettingsForm,\r\n canDisplayNodesSettingsForm,\r\n canDisplayUsersSettingsForm,\r\n canGetQueryLog\r\n} from \"../../utils/user\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport ModulesPlaceholder from \"../modules-placeholder\";\r\nimport ModuleMenuItemPlaceholder from \"../module-menu-item-placeholder\";\r\n\r\nconst styles = theme => ({\r\n option: {\r\n width: \"100%\"\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n modulesConfig: state.app.modulesConfig,\r\n user: state.user\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onLogDownload: limit => dispatch(downloadQueryLog(limit)),\r\n onCacheClear: () => dispatch(clearMemoryCache())\r\n});\r\n\r\nclass SettingsSelect extends React.Component {\r\n\r\n state = {\r\n isAppOpen: false,\r\n isNodesOpen: false,\r\n isUsersOpen: false,\r\n appSettingsRef: React.createRef(),\r\n nodesSettingsRef: React.createRef(),\r\n usersSettingsRef: React.createRef(),\r\n isLogDownloadOpen: false,\r\n logLimit: 5\r\n };\r\n\r\n onAppOpen = () => this.setState({\r\n ...this.state,\r\n isAppOpen: true\r\n });\r\n\r\n onAppClose = showSnackbar => this.setState({\r\n ...this.state,\r\n isAppOpen: false,\r\n isAppSubmitSnackbarVisible: showSnackbar || false\r\n });\r\n\r\n onNodesOpen = () => this.setState({\r\n ...this.state,\r\n isNodesOpen: true\r\n });\r\n\r\n onNodesClose = () => this.setState({\r\n ...this.state,\r\n isNodesOpen: false\r\n });\r\n\r\n onUsersOpen = () => this.setState({\r\n ...this.state,\r\n isUsersOpen: true\r\n });\r\n\r\n onUsersClose = () => this.setState({\r\n ...this.state,\r\n isUsersOpen: false\r\n });\r\n\r\n onLogDownloadOpen = () => this.setState({\r\n ...this.state,\r\n isLogDownloadOpen: true\r\n });\r\n\r\n onLogDownloadClose = () => this.setState({\r\n ...this.state,\r\n isLogDownloadOpen: false,\r\n logLimit: 5\r\n });\r\n\r\n onLogLimitSet = logLimit => {\r\n if (!isNaN(logLimit)) {\r\n this.setState({\r\n ...this.state,\r\n logLimit: logLimit\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n\r\n const {\r\n classes,\r\n onLogDownload,\r\n nodes,\r\n user,\r\n t,\r\n modulesConfig\r\n } = this.props;\r\n\r\n const {\r\n isAppOpen,\r\n isNodesOpen,\r\n isUsersOpen,\r\n appSettingsRef,\r\n nodesSettingsRef,\r\n usersSettingsRef,\r\n isLogDownloadOpen,\r\n logLimit\r\n } = this.state;\r\n\r\n return (\r\n \r\n }\r\n ariaLabel={t(\"components.header.actions.settings.ariaLabel\")}\r\n tooltip={t(\"components.header.actions.settings.title\")}\r\n >\r\n {[\r\n canDisplayAppSettingsForm(user)\r\n ? (\r\n \r\n {t(\"components.header.settings.app\")}\r\n \r\n )\r\n : null,\r\n canDisplayUsersSettingsForm(user)\r\n ? (\r\n \r\n {t(\"components.header.settings.users\")}\r\n \r\n )\r\n : null,\r\n canDisplayNodesSettingsForm(user)\r\n ? (\r\n \r\n {t(\"components.header.settings.nodes\")}\r\n \r\n )\r\n : null,\r\n ...(modulesConfig.placeholders?.[\"settings-select-menu\"] || []).map((module, idx) => (\r\n \r\n )),\r\n canGetQueryLog(user)\r\n ? (\r\n \r\n {t(\"components.header.settings.queriesLog\")}\r\n \r\n )\r\n : null\r\n /*\r\n canClearServerCache(user)\r\n ? (\r\n \r\n {_t(\"components.header.settings.clearServerCache\")}\r\n \r\n )\r\n : null\r\n */\r\n ]}\r\n \r\n\r\n {\r\n if (appSettingsRef.current) {\r\n appSettingsRef.current.cancel(() => this.onAppClose());\r\n } else {\r\n this.onAppClose();\r\n }\r\n }}\r\n onSubmit={() => {\r\n if (appSettingsRef.current) {\r\n appSettingsRef.current.submit(() => {\r\n this.onAppClose();\r\n });\r\n } else {\r\n this.onAppClose();\r\n }\r\n }}\r\n hasSubmit\r\n >\r\n \r\n \r\n\r\n {\r\n if (nodesSettingsRef.current) {\r\n nodesSettingsRef.current.cancel(() => this.onNodesClose());\r\n } else {\r\n this.onNodesClose();\r\n }\r\n }}\r\n >\r\n \r\n \r\n\r\n {\r\n if (usersSettingsRef.current) {\r\n usersSettingsRef.current.cancel(() => this.onUsersClose());\r\n } else {\r\n this.onUsersClose();\r\n }\r\n }}\r\n >\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    {t(\"components.header.settings.queriesLogModal.content\")}:
    \r\n
    \r\n \r\n this.onLogLimitSet(ev.target.value)}\r\n style={{width: \"100%\"}}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n {\r\n this.onLogDownloadClose();\r\n onLogDownload(logLimit);\r\n }}\r\n color=\"primary\"\r\n >\r\n {t(\"commons.confirm.download\")}\r\n \r\n \r\n \r\n\r\n \r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default compose(\r\n connect(mapStateToProps, mapDispatchToProps),\r\n withStyles(styles),\r\n withTranslation()\r\n)(SettingsSelect);","import React, {useRef, useEffect} from 'react';\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport ListSubheader from \"@material-ui/core/ListSubheader\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport {VariableSizeList} from \"react-window\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\n\r\n/* Based on https://material-ui.com/components/autocomplete/#virtualization */\r\n\r\nconst styles = theme => ({\r\n button: {\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: \"#f5f5f5\",\r\n borderColor: theme.palette.primary.main,\r\n borderWidth: 1,\r\n position: \"relative\",\r\n height: 35,\r\n },\r\n icon: {\r\n width: theme.spacing(6),\r\n height: 35,\r\n position: 'absolute',\r\n pointerEvents: 'none',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n inputRoot: {\r\n color: 'inherit',\r\n position: 'absolute',\r\n width: `calc(100% - ${theme.spacing(6)})`,\r\n left: theme.spacing(6)\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n },\r\n listbox: {\r\n overflowX: \"hidden\",\r\n boxSizing: \"border-box\",\r\n \"& ul\": {\r\n padding: 0,\r\n margin: 0\r\n }\r\n }\r\n});\r\n\r\nconst LISTBOX_PADDING = 8; // px\r\n\r\nfunction renderRow(props) {\r\n const {data, index, style} = props;\r\n return React.cloneElement(data[index], {\r\n style: {\r\n ...style,\r\n top: style.top + LISTBOX_PADDING\r\n }\r\n });\r\n}\r\n\r\nconst OuterElementContext = React.createContext({});\r\n\r\nconst OuterElementType = React.forwardRef((props, ref) => {\r\n const outerProps = React.useContext(OuterElementContext);\r\n return
    ;\r\n});\r\n\r\nfunction useResetCache(data) {\r\n const ref = React.useRef(null);\r\n React.useEffect(() => {\r\n if (ref.current != null) {\r\n ref.current.resetAfterIndex(0, true);\r\n }\r\n }, [data]);\r\n return ref;\r\n}\r\n\r\n// Adapter for react-window\r\nconst ListboxComponent = React.forwardRef(function ListboxComponent(props, ref) {\r\n const {children, ...other} = props;\r\n const itemData = React.Children.toArray(children);\r\n const itemCount = itemData.length;\r\n const itemSize = 36;\r\n\r\n const getChildSize = (child) => {\r\n if (React.isValidElement(child) && child.type === ListSubheader) {\r\n return 48;\r\n }\r\n\r\n return itemSize;\r\n };\r\n\r\n const getHeight = () => {\r\n if (itemCount > 8) {\r\n return 8 * itemSize;\r\n }\r\n return itemData.map(getChildSize).reduce((a, b) => a + b, 0);\r\n };\r\n\r\n const gridRef = useResetCache(itemCount);\r\n\r\n return (\r\n
    \r\n \r\n getChildSize(itemData[index])}\r\n overscanCount={5}\r\n itemCount={itemCount}\r\n >\r\n {renderRow}\r\n \r\n \r\n
    \r\n );\r\n});\r\n\r\nconst AutocompleteSearchInput = ({classes, query = \"\", options, onSubmit}) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const inputRef = useRef();\r\n\r\n useEffect(() => {\r\n inputRef.current.focus({preventScroll: true});\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n {\r\n const searchText = state?.inputValue || \"\";\r\n const start = (option || \"\").toLowerCase().indexOf(searchText.toLowerCase());\r\n const end = start + searchText.length;\r\n\r\n return (\r\n \r\n \r\n {option.substr(0, start)}\r\n {option.substr(start, end - start)}\r\n {option.substr(end)}\r\n \r\n \r\n )\r\n }}\r\n onChange={(event, newValue) => {\r\n setTimeout(\r\n () => {\r\n onSubmit(newValue);\r\n },\r\n 1\r\n );\r\n }}\r\n renderInput={(params) => (\r\n \r\n \r\n ,\r\n inputRef: inputRef\r\n }}\r\n />\r\n )}\r\n />\r\n
    \r\n );\r\n};\r\n\r\nexport default withStyles(styles)(AutocompleteSearchInput);","export const SEARCH_DIALOG_OPEN = \"searchDialog/open\";\r\nexport const SEARCH_DIALOG_CLOSE = \"searchDialog/close\";\r\n\r\nexport const openSearchDialog = () => ({\r\n type: SEARCH_DIALOG_OPEN\r\n});\r\n\r\nexport const closeSearchDialog = () => ({\r\n type: SEARCH_DIALOG_CLOSE\r\n});","export const DETAIL_LEVEL_SET = \"detailLevel/set\";\r\nexport const DETAIL_LEVEL_FILTERED_CATALOG_SET = \"detailLevel/setFilteredCatalog\";\r\n\r\nexport const setDetailLevel = (detailLevel: number) => ({\r\n type: DETAIL_LEVEL_SET,\r\n payload: {\r\n detailLevel\r\n }\r\n});\r\n\r\nexport const setDetailLevelFilteredCatalog = (filteredCatalog: any) => ({\r\n type: DETAIL_LEVEL_FILTERED_CATALOG_SET,\r\n payload: {\r\n filteredCatalog\r\n }\r\n});","import React, {Fragment, useState} from 'react';\r\nimport {connect} from \"react-redux\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport {v4 as uuidv4} from 'uuid';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport AutocompleteSearchInput from \"../autocomplete-search-input\";\r\nimport {getTrimmedStr} from \"../../utils/formatters\";\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\n\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {closeSearchDialog, openSearchDialog} from \"../../state/search-dialog/searchDialogActions\";\r\nimport {setDetailLevel} from \"../../state/detailLevel/detailLevelActions\";\r\n\r\nconst SearchDialog = ({dialogTop, query, onSubmit, catalog, isOpen, onOpen, onClose, resetDetailLevel}) => {\r\n\r\n const [uuid] = useState(uuidv4());\r\n\r\n const {t} = useTranslation();\r\n\r\n const datasets = Object.keys(catalog?.datasets || {}).map(key => catalog.datasets[key].title);\r\n const uncategorizedDatasets = (catalog?.uncategorizedDatasets || []).map(({title}) => title);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {\r\n const trimmedValue = getTrimmedStr(value);\r\n if (trimmedValue.length > 0) {\r\n onClose();\r\n onSubmit(trimmedValue);\r\n resetDetailLevel();\r\n }\r\n }}\r\n options={datasets.concat(uncategorizedDatasets)}\r\n />\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default connect(\r\n state => ({\r\n catalog: state.catalog,\r\n isOpen: state.searchDialog.isOpen\r\n }),\r\n dispatch => ({\r\n onOpen: () => dispatch(openSearchDialog()),\r\n onClose: () => dispatch(closeSearchDialog()),\r\n resetDetailLevel: () => dispatch(setDetailLevel(null))\r\n })\r\n)(SearchDialog);","import React from 'react';\r\nimport I18nInputAdornmentSelect from \"../i18n-input-adornment-select\";\r\nimport {connect} from \"react-redux\";\r\nimport {useLocation} from \"react-router\";\r\nimport {backupDatasetState} from \"../../state/dataset/datasetActions\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nconst mapStateToProps = state => ({\r\n language: state.app.language\r\n});\r\nconst mapDispatchToProps = dispatch => ({\r\n onDatasetBackup: () => dispatch(backupDatasetState())\r\n});\r\n\r\nconst AppLanguageSelect = ({language, onDatasetBackup}) => {\r\n\r\n const location = useLocation();\r\n const {t} = useTranslation();\r\n\r\n return (\r\n {\r\n if (val !== language) {\r\n onDatasetBackup();\r\n\r\n const url = location.pathname.includes(language)\r\n ? \"./#\" + location.pathname.replace(language, val) + location.search\r\n : `./#/${val}`;\r\n window.open(url, \"_self\");\r\n }\r\n }}\r\n ariaLabel={t(\"components.header.actions.appLanguage.ariaLabel\")}\r\n tooltip={t(\"components.header.actions.appLanguage.title\")}\r\n showAsIcon\r\n />\r\n );\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AppLanguageSelect);","import React from 'react';\r\nimport {connect} from \"react-redux\";\r\nimport ButtonSelect from \"../button-select\";\r\nimport AccessibilityNewIcon from '@material-ui/icons/AccessibilityNew';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Badge from \"@material-ui/core/Badge\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {compose} from \"redux\";\r\nimport CheckIcon from '@material-ui/icons/Check';\r\nimport {useLocation} from \"react-router\";\r\n\r\nconst styles = theme => ({\r\n badge: {\r\n padding: 0,\r\n width: 12,\r\n height: 12,\r\n minWidth: 0\r\n },\r\n badgeActive: {\r\n padding: 0,\r\n width: 12,\r\n height: 12,\r\n minWidth: 0,\r\n backgroundColor: theme.palette.success.main,\r\n },\r\n badgeIcon: {\r\n fontSize: 12\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n isA11y: state.app.isA11y\r\n});\r\n\r\nconst A11ySelect = ({classes, isA11y, getCustomA11yPath, getAdditionalA11yUrlParams}) => {\r\n\r\n const location = useLocation();\r\n const {t} = useTranslation();\r\n\r\n return (\r\n : undefined}\r\n classes={{\r\n badge: isA11y ? classes.badgeActive : classes.badge\r\n }}\r\n >\r\n \r\n \r\n }\r\n onChange={val => {\r\n\r\n if (val !== isA11y) {\r\n\r\n const params = new URLSearchParams(location.search);\r\n\r\n if (val) {\r\n params.set(\"accessible\", \"true\");\r\n } else {\r\n params.delete(\"accessible\")\r\n }\r\n\r\n if (getAdditionalA11yUrlParams) {\r\n const additionalA11yUrlParams = getAdditionalA11yUrlParams(val);\r\n if (additionalA11yUrlParams && Object.keys(additionalA11yUrlParams).length > 0) {\r\n Object.keys(additionalA11yUrlParams).forEach(key => params.set(key, additionalA11yUrlParams[key]));\r\n }\r\n }\r\n\r\n const paramsStr = params.toString();\r\n\r\n const path = getCustomA11yPath\r\n ? (getCustomA11yPath(val) || location.pathname)\r\n : location.pathname;\r\n\r\n window.open(\r\n \"./#\" + path + (paramsStr.length > 0 ? \"?\" : \"\") + paramsStr,\r\n \"_self\"\r\n );\r\n }\r\n }}\r\n ariaLabel={t(\"components.header.actions.a11y.ariaLabel\")}\r\n tooltip={t(\"components.header.actions.a11y.title\")}\r\n >\r\n {t(\"components.a11ySelect.disable\")}\r\n {t(\"components.a11ySelect.enable\")}\r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps)\r\n)(A11ySelect);","import React from 'react'\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport {getTrimmedStr} from \"../../utils/formatters\";\r\nimport ComponentVariantLoader from \"../component-variant-loader\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: 480\r\n },\r\n logoContainer: {\r\n height: 64,\r\n background: theme.palette.primary.main,\r\n padding: 16\r\n },\r\n logo: {\r\n height: 32,\r\n display: \"block\",\r\n margin: \"auto\"\r\n },\r\n nameContainer: {\r\n padding: \"24px 16px\"\r\n },\r\n textContainer: {\r\n padding: 8\r\n },\r\n versionContainer: {\r\n padding: 8\r\n },\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n baseURL: state.config.baseURL\r\n});\r\n\r\nconst AppInfo = ({\r\n t,\r\n classes,\r\n baseURL,\r\n hub\r\n }) =>\r\n \r\n {hub.headerLogoURL && (\r\n \r\n \"\"\r\n \r\n )}\r\n \r\n \r\n {hub.name}\r\n \r\n \r\n {getTrimmedStr(t(\"components.appInfo.content\")).length > 0 && (\r\n \r\n {t(\"components.appInfo.content\")}\r\n \r\n )}\r\n \r\n {t(\"components.appInfo.poweredBy\") + \": \"}\r\n \r\n \r\n \r\n \r\n ;\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation(),\r\n connect(mapStateToProps)\r\n)(AppInfo);","import React from 'react';\r\nimport {MenuItem, Select} from \"@material-ui/core\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {setDetailLevel} from \"../../state/detailLevel/detailLevelActions\";\r\n\r\nconst mapStateToProps = state => ({\r\n value: state.detailLevel.detailLevel,\r\n catalog: state.catalog\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onSet: value => dispatch(setDetailLevel(value))\r\n});\r\n\r\nconst DetailLevelSelect = ({value, catalog, onSet, onChange, t, variant}) =>\r\n {\r\n const newVal = e.target.value;\r\n if (newVal !== value) {\r\n onSet(newVal !== \"all\" ? newVal : null);\r\n onChange && onChange(newVal !== \"all\" ? newVal : null);\r\n }\r\n }}\r\n variant={variant || undefined}\r\n fullWidth\r\n SelectDisplayProps={{\"aria-haspopup\": true}}\r\n >\r\n \r\n {t('components.detailLevelSelect.options.all')}\r\n \r\n {catalog && catalog.detailLevels.map(({id, label}) =>\r\n \r\n {label}\r\n \r\n )}\r\n ;\r\n\r\nexport default compose(\r\n withTranslation(),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(DetailLevelSelect);","import React, {Fragment} from \"react\";\r\nimport MenuBookIcon from \"@material-ui/icons/MenuBook\";\r\nimport ButtonSelect from \"../button-select\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {connect} from \"react-redux\";\r\nimport ModulesPlaceholder from \"../modules-placeholder\";\r\nimport ModuleMenuItemPlaceholder from \"../module-menu-item-placeholder\";\r\n\r\nconst mapStateToProps = ({app}) => ({\r\n modulesConfig: app.modulesConfig\r\n});\r\n\r\nconst TerritoryTools = ({\r\n t,\r\n modulesConfig\r\n }) => {\r\n\r\n return (modulesConfig.placeholders?.[\"territory-tools-menu\"] || []).length === 0\r\n ? null\r\n : (\r\n \r\n }\r\n ariaLabel={t(\"components.header.actions.territoryTools.ariaLabel\")}\r\n tooltip={t(\"components.header.actions.territoryTools.title\")}\r\n >\r\n {(modulesConfig.placeholders?.[\"territory-tools-menu\"] || []).map((module, idx) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withTranslation(),\r\n connect(mapStateToProps)\r\n)(TerritoryTools);","export const WINDOW_SCREEN_WIDTH_SM = 768;\r\nexport const WINDOW_SCREEN_WIDTH_MD = 1024;\r\n\r\nexport const MERGED_DATASETS_TITLE_SEPARATOR = \"|\";","import {withStyles} from \"@material-ui/core\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport React, {Component, Fragment} from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport UserSelect from \"../user-select\";\r\nimport Drawer from \"@material-ui/core/Drawer\";\r\nimport ChevronLeftIcon from \"@material-ui/icons/ChevronLeft\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport CategoriesTree from \"../categories-tree\";\r\nimport {withRouter} from \"react-router\";\r\nimport SettingsSelect from \"../settings-select\";\r\nimport SearchDialog from \"../search-dialog\";\r\nimport ButtonSelect from \"../button-select\";\r\nimport {getHomeInternalUrl, getNodeDashboardsInternalUrl, getNodeInternalUrl, goToDatasetsSearch, goToHome, goToNode, goToNodeDashboards} from \"../../links\";\r\nimport HomeIcon from \"@material-ui/icons/Home\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport DashboardIcon from \"@material-ui/icons/Dashboard\";\r\nimport {canClearServerCache, canDisplayAppSettingsForm, canDisplayNodesSettingsForm, canDisplayUsersSettingsForm, canGetQueryLog} from \"../../utils/user\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport AppLanguageSelect from \"../app-language-select\";\r\nimport A11ySelect from \"../a11y-select\";\r\nimport HelpIcon from \"@material-ui/icons/Help\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport AppInfo from \"../app-info\";\r\nimport DetailLevelSelect from \"../detail-level-select\";\r\nimport CustomLink from \"../custom-link\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {localizeI18nObj} from \"../../utils/i18n\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport MuiAccordion from \"@material-ui/core/Accordion\";\r\nimport MuiAccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport MuiAccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport TerritoryTools from \"../territory-tools/TerritoryTools\";\r\nimport ModulesPlaceholder from \"../modules-placeholder\";\r\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport {areElementsOverlap} from \"../../utils/other\";\r\nimport {WINDOW_SCREEN_WIDTH_MD, WINDOW_SCREEN_WIDTH_SM} from \"../../utils/constants\";\r\nimport {canDisplayNewsManagerForm} from \"../../modules/news/constants\";\r\nimport {NodeVisibility} from \"../../model/IHubMinimalNode.d.ts\";\r\n\r\nimport themeConfig from \"../../config/theme/config.json\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n position: \"fixed\",\r\n width: \"100%\",\r\n zIndex: theme.zIndex.appBar\r\n },\r\n firstRow: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n minHeight: 64\r\n },\r\n firstRowContainer: {\r\n position: \"absolute\",\r\n padding: \"0 8px\"\r\n },\r\n firstRowLeftContainer: {\r\n left: 0\r\n },\r\n firstRowCenterContainer: {\r\n cursor: \"pointer\"\r\n },\r\n firstRowRightContainer: {\r\n right: 0\r\n },\r\n hiddenContainer: {\r\n visibility: \"hidden\"\r\n },\r\n secondRow: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n \"& $hubName\": {\r\n height: \"unset\",\r\n padding: 0,\r\n fontSize: 24\r\n }\r\n },\r\n thirdRow: {\r\n paddingLeft: 12\r\n },\r\n nodeSelector: {\r\n fontSize: 20,\r\n fontWeight: 500,\r\n textTransform: \"none\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n hubLogo: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: 8,\r\n \"& img\": {\r\n height: 32\r\n }\r\n },\r\n hubName: {\r\n height: 48,\r\n padding: 8,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n whiteSpace: \"nowrap\",\r\n textOverflow: \"ellipsis\",\r\n overflow: \"hidden\"\r\n },\r\n hubNameLink: {\r\n fontSize: 20,\r\n fontWeight: 500,\r\n color: theme.palette.secondary.main,\r\n textDecoration: \"none\"\r\n },\r\n navigationDrawer: {\r\n width: 520,\r\n maxWidth: \"100%\"\r\n },\r\n navigationDrawerHeader: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n padding: \"0 16px\"\r\n },\r\n navigationDrawerHeaderTitle: {\r\n fontSize: 20,\r\n fontWeight: 500,\r\n padding: \"16px 0\"\r\n },\r\n navigationDrawerDivider: {\r\n margin: \"0 8px 8px\"\r\n },\r\n navigationDrawerLink: {\r\n margin: \"1px 4px\",\r\n \"& div.custom-link--disabled\": {\r\n padding: \"4px 8px\"\r\n },\r\n \"& div.custom-link--enabled > a > div\": {\r\n padding: \"4px 8px\"\r\n }\r\n },\r\n toolbarDrawer: {\r\n overflow: \"hidden\",\r\n padding: 8\r\n },\r\n toolbarDrawerDivider: {\r\n width: \"100%\",\r\n margin: \"4px 0\"\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n baseURL: state.config.baseURL,\r\n enableHeaderAutoResponsiveness: state.appConfig.enableHeaderAutoResponsiveness,\r\n user: state.user,\r\n filteredCatalog: state.detailLevel.filteredCatalog,\r\n isA11y: state.app.isA11y,\r\n defaultLanguage: state.app.language,\r\n languages: state.app.languages\r\n});\r\n\r\nconst Accordion = withStyles({\r\n root: {\r\n boxShadow: \"none\",\r\n \"&:not(:last-child)\": {\r\n borderBottom: 0\r\n },\r\n \"&:before\": {\r\n display: \"none\"\r\n },\r\n \"&$expanded\": {\r\n margin: 0\r\n }\r\n },\r\n expanded: {}\r\n})(MuiAccordion);\r\n\r\nconst AccordionSummary = withStyles({\r\n root: {\r\n fontSize: 16,\r\n minHeight: 48,\r\n margin: \"0 4px\",\r\n padding: \"0 4px\",\r\n \"&$expanded\": {\r\n minHeight: 48\r\n },\r\n \"&:hover\": {\r\n backgroundColor: \"#f5f5f5\"\r\n },\r\n \"&:focus\": {\r\n outline: \"-webkit-focus-ring-color auto 1px\",\r\n outlineOffset: -1\r\n },\r\n \"&:focus:hover\": {\r\n backgroundColor: \"#f5f5f5\"\r\n },\r\n \"&:focus:not(:hover)\": {\r\n backgroundColor: \"#ffffff\"\r\n }\r\n },\r\n content: {\r\n margin: 12,\r\n \"&$expanded\": {\r\n margin: 12\r\n }\r\n },\r\n expanded: {},\r\n expandIcon: {\r\n transition: \"none\",\r\n margin: 0\r\n }\r\n})(MuiAccordionSummary);\r\n\r\nconst AccordionDetails = withStyles({\r\n root: {\r\n display: \"block\"\r\n }\r\n})(MuiAccordionDetails);\r\n\r\nconst NavigationDrawerButton = ({\r\n t,\r\n onNavigationDrawerOpen\r\n }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst NodeSelector = ({\r\n t,\r\n classes,\r\n isDefaultUniqueNode,\r\n node,\r\n nodes\r\n }) => {\r\n if (!isDefaultUniqueNode) {\r\n return (\r\n \r\n \r\n {node?.name || node?.code}\r\n \r\n }\r\n onChange={code => goToNode(code.toLowerCase())}\r\n tooltip={node?.name}\r\n buttonStyle={{maxWidth: \"100%\"}}\r\n ariaLabel={t(\"components.header.actions.nodeSelector.ariaLabel\")}\r\n >\r\n {nodes\r\n .filter(({visible}) => visible !== NodeVisibility.No)\r\n .sort((a, b) => a.order - b.order)\r\n .map(({code, name}, i) =>\r\n \r\n {name || code}\r\n \r\n )\r\n }\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nconst HubLogo = ({\r\n classes,\r\n hub,\r\n headerLogoTitle,\r\n headerLogoHref,\r\n baseURL,\r\n headerLogoAlt,\r\n handleStyle,\r\n headerLogoSmallURL,\r\n isCollapsed\r\n }) => {\r\n if ((!isCollapsed && hub.headerLogoURL) || (isCollapsed && headerLogoSmallURL)) {\r\n\r\n const img = (\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n {headerLogoHref.length > 0\r\n ? (\r\n \r\n \r\n {img}\r\n \r\n \r\n )\r\n : (\r\n \r\n \r\n {img}\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nconst HubName = ({\r\n classes,\r\n hub\r\n }) => {\r\n if ((hub.name || \"\").length > 0) {\r\n return (\r\n \r\n \r\n \r\n {hub.name}\r\n \r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nconst SearchButton = ({\r\n noNode,\r\n query,\r\n node\r\n }) => {\r\n if (!noNode) {\r\n return (\r\n \r\n goToDatasetsSearch(node.code, value)}\r\n />\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nconst LanguageButton = () => (\r\n \r\n \r\n \r\n);\r\n\r\nconst A11yButton = ({\r\n getAdditionalA11yUrlParams,\r\n getCustomA11yPath\r\n }) => (\r\n \r\n \r\n \r\n);\r\n\r\nconst DashboardButton = ({\r\n t,\r\n noNode,\r\n isA11y,\r\n node\r\n }) => {\r\n if (!noNode && !isA11y && node && node.dashboards && node.dashboards.length > 0 && themeConfig.enableDashboard) {\r\n return (\r\n \r\n \r\n goToNodeDashboards(node.code)}\r\n color=\"inherit\"\r\n aria-label={t(\"components.header.actions.dashboard.ariaLabel\")}\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nconst AdminSettingButton = ({\r\n user,\r\n defaultAppConfigOpen,\r\n defaultNodesConfigOpen,\r\n defaultUsersConfigOpen,\r\n defaultNodeConfigOpen,\r\n nodes\r\n }) => {\r\n if (\r\n canDisplayAppSettingsForm(user) ||\r\n canDisplayUsersSettingsForm(user) ||\r\n canDisplayNodesSettingsForm(user) ||\r\n canGetQueryLog(user) ||\r\n canClearServerCache(user) ||\r\n canDisplayNewsManagerForm(user)\r\n ) {\r\n return (\r\n \r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nconst UserSettingsButton = ({\r\n nodes,\r\n disabled\r\n }) => (\r\n \r\n \r\n \r\n);\r\n\r\nconst InfoButton = ({\r\n t,\r\n onInfoOpen\r\n }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst TerritoryToolsButton = () => (\r\n \r\n \r\n \r\n);\r\n\r\nconst isCategoriesExpandedDefault = true;\r\nconst isDetailLevelsExpandedDefault = true;\r\n\r\nclass NodeHeader extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const hubExtras = JSON.parse(props.hub.extras || \"{}\");\r\n\r\n this.state = {\r\n isNavigationDrawerOpen: props.defaultTreeOpen || false,\r\n isToolbarDrawerOpen: false,\r\n isInfoOpen: false,\r\n headerLogoSmallURL: hubExtras.HeaderLogoSmallURL || \"\",\r\n headerLogoAlt: localizeI18nObj(hubExtras.HeaderLogoAlt, props.defaultLanguage, props.languages) || \"\",\r\n headerLogoHref: hubExtras.HeaderLogoHref || \"\",\r\n headerLogoTitle: localizeI18nObj(hubExtras.headerLogoTitle, props.defaultLanguage, props.languages) || \"\",\r\n isCategoriesExpanded: isCategoriesExpandedDefault,\r\n isDetailLevelsExpanded: isDetailLevelsExpandedDefault,\r\n isFirstRowCollapsed: false,\r\n isCenterContainerCollapsed: false\r\n };\r\n this.handleStyle = this.handleStyle.bind(this);\r\n this.handleCategoriesExpand = this.handleCategoriesExpand.bind(this);\r\n this.handleDetailLevelsExpand = this.handleDetailLevelsExpand.bind(this);\r\n }\r\n\r\n handleStyle = () => {\r\n\r\n const isFirstRowCollapsed = this.props.enableHeaderAutoResponsiveness\r\n ? (\r\n areElementsOverlap(\"node-header__first-row__center-container\", \"node-header__first-row__left-container\") ||\r\n areElementsOverlap(\"node-header__first-row__center-container\", \"node-header__first-row__right-container\")\r\n )\r\n : window.innerWidth < WINDOW_SCREEN_WIDTH_MD;\r\n\r\n const isCenterContainerCollapsed = this.props.enableHeaderAutoResponsiveness\r\n ? (\r\n areElementsOverlap(\"node-header__first-row__center-container\", \"node-header__first-row__left-container--collapsed\") ||\r\n areElementsOverlap(\"node-header__first-row__center-container\", \"node-header__first-row__right-container--collapsed\")\r\n )\r\n : window.innerWidth < WINDOW_SCREEN_WIDTH_SM;\r\n\r\n if (!this.props.enableHeaderAutoResponsiveness) {\r\n const centerContainerWidth = $(\"#node-header__first-row__center-container\").outerWidth(true) || 0;\r\n const navigationDrawerBtnWidth = $(\"#node-header__first-row__left-container .navigation-drawer-btn\").outerWidth(true) || 0;\r\n const homeBtnWidth = $(\"#node-header__first-row__left-container .home-btn\").outerWidth(true) || 0;\r\n const territoryToolsBtnWidth = $(\"#node-header__first-row__left-container .territory-tools-btn\").outerWidth(true) || 0;\r\n\r\n $(\"#node-header__first-row__left-container .node-selector\").css({\r\n maxWidth: `calc(50vw - ${(centerContainerWidth / 2) + navigationDrawerBtnWidth + homeBtnWidth + territoryToolsBtnWidth + 16}px)`\r\n });\r\n }\r\n\r\n if (this.state.isFirstRowCollapsed !== isFirstRowCollapsed) {\r\n this.setState({\r\n isFirstRowCollapsed: isFirstRowCollapsed\r\n });\r\n }\r\n\r\n if (this.state.isCenterContainerCollapsed !== isCenterContainerCollapsed) {\r\n this.setState({\r\n isCenterContainerCollapsed: isCenterContainerCollapsed\r\n });\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n this.handleStyle();\r\n window.addEventListener(\"resize\", this.handleStyle);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.handleStyle);\r\n }\r\n\r\n componentDidUpdate() {\r\n this.handleStyle();\r\n }\r\n\r\n onNavigationDrawerOpen = () => {\r\n this.setState({\r\n isNavigationDrawerOpen: true,\r\n isCategoriesExpanded: isCategoriesExpandedDefault,\r\n isDetailLevelsExpanded: isDetailLevelsExpandedDefault\r\n });\r\n };\r\n\r\n onNavigationDrawerClose = () => {\r\n this.setState({\r\n isNavigationDrawerOpen: false,\r\n isCategoriesExpanded: isCategoriesExpandedDefault,\r\n isDetailLevelsExpanded: isDetailLevelsExpandedDefault\r\n });\r\n };\r\n\r\n onToolbarDrawerOpen = () => {\r\n this.setState({\r\n isToolbarDrawerOpen: true\r\n });\r\n };\r\n\r\n onToolbarDrawerClose = () => {\r\n this.setState({\r\n isToolbarDrawerOpen: false\r\n });\r\n };\r\n\r\n onInfoOpen = () => {\r\n this.setState({\r\n isInfoOpen: true\r\n });\r\n };\r\n\r\n onInfoClose = () => {\r\n this.setState({\r\n isInfoOpen: false\r\n });\r\n };\r\n\r\n handleCategoriesExpand = () => {\r\n this.setState({\r\n isCategoriesExpanded: !this.state.isCategoriesExpanded\r\n });\r\n };\r\n\r\n handleDetailLevelsExpand = () => {\r\n this.setState({\r\n isDetailLevelsExpanded: !this.state.isDetailLevelsExpanded\r\n });\r\n };\r\n\r\n render() {\r\n\r\n const {\r\n classes,\r\n selectedCategoryPath,\r\n selectedDataset,\r\n title,\r\n defaultAppConfigOpen,\r\n defaultUsersConfigOpen,\r\n defaultNodesConfigOpen,\r\n defaultNodeConfigOpen,\r\n nodes,\r\n noNode,\r\n catalog,\r\n node,\r\n query,\r\n hub,\r\n baseURL,\r\n user,\r\n isA11y,\r\n isDefault,\r\n filteredCatalog,\r\n getCustomA11yPath,\r\n getAdditionalA11yUrlParams,\r\n t,\r\n enableHeaderAutoResponsiveness,\r\n emptyHeader\r\n } = this.props;\r\n\r\n const {\r\n isNavigationDrawerOpen,\r\n isToolbarDrawerOpen,\r\n isInfoOpen,\r\n headerLogoSmallURL,\r\n headerLogoAlt,\r\n headerLogoHref,\r\n headerLogoTitle,\r\n isCategoriesExpanded,\r\n isDetailLevelsExpanded,\r\n isFirstRowCollapsed,\r\n isCenterContainerCollapsed\r\n } = this.state;\r\n\r\n const isDefaultUniqueNode = (!noNode && isDefault && node)\r\n ? nodes.filter(n => n.code.toLowerCase() !== node.code.toLowerCase()).length === 0\r\n : false;\r\n\r\n const nodeMinimalInfo = (!noNode && node)\r\n ? (nodes || []).find(({code}) => code.toLowerCase() === node.code.toLowerCase())\r\n : null;\r\n\r\n const isSecondRowVisible = isCenterContainerCollapsed;\r\n const isThirdRowVisible = isFirstRowCollapsed && !noNode && !isDefaultUniqueNode && !emptyHeader;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n {(enableHeaderAutoResponsiveness || !isFirstRowCollapsed) && (\r\n \r\n \r\n {!emptyHeader && (\r\n \r\n {node?.visible !== NodeVisibility.No\r\n ? !noNode\r\n ? (\r\n \r\n \r\n \r\n \r\n goToNode((node?.code || \"\").toLowerCase())}\r\n aria-label={t(\"components.header.actions.nodeHome.ariaLabel\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : \r\n : (\r\n \r\n \r\n goToHome()}\r\n aria-label={t(\"components.header.actions.home.ariaLabel\")}\r\n >\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n )}\r\n \r\n
    \r\n )}\r\n {(enableHeaderAutoResponsiveness || isFirstRowCollapsed) && (\r\n \r\n {!noNode && !emptyHeader && node?.visible !== NodeVisibility.No && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n )}\r\n {(enableHeaderAutoResponsiveness || !isCenterContainerCollapsed) && (\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n {(enableHeaderAutoResponsiveness || isCenterContainerCollapsed) && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {(enableHeaderAutoResponsiveness || !isFirstRowCollapsed) && (\r\n \r\n {!emptyHeader && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {(enableHeaderAutoResponsiveness || isFirstRowCollapsed) && (\r\n \r\n {!emptyHeader && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {isSecondRowVisible && (\r\n
    \r\n \r\n
    \r\n )}\r\n {isThirdRowVisible && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n\r\n {!noNode && !emptyHeader && (\r\n \r\n \r\n \r\n )}\r\n\r\n {!emptyHeader && (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation(),\r\n connect(mapStateToProps),\r\n withRouter\r\n)(NodeHeader);","import React from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport SanitizedHTML from \"../sanitized-html\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\n\r\nconst styles = theme => ({\r\n footer: {\r\n margin: \"auto 16px 0 16px\",\r\n paddingTop: 16\r\n }\r\n});\r\n\r\nconst getLocalizedFooter = (footers, appLang, languages) => {\r\n const footerLangs = [appLang, \"default\", ...languages];\r\n const footerLang = footerLangs.find(lang => footers[lang]);\r\n\r\n return footerLang\r\n ? footers[footerLang]\r\n : null;\r\n};\r\n\r\nconst Footer = ({\r\n t,\r\n classes,\r\n appLanguage,\r\n languages,\r\n footers\r\n }) =>\r\n
    \r\n \r\n \r\n
    ;\r\n\r\nexport default compose(\r\n connect(state => ({\r\n appLanguage: state.app.language,\r\n languages: state.app.languages,\r\n footers: state.app.footers\r\n })),\r\n withStyles(styles),\r\n withTranslation()\r\n)(Footer);","import React, {Component, Fragment} from 'react';\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Hero from \"../hero\";\r\nimport CardsGrid from \"../cards-grid\";\r\nimport PageSection from \"../page-section\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Page from \"../page\";\r\nimport NodeHeader from \"../node-header\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport {getNodeInternalUrl, goToHubDashboards} from \"../../links\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport SanitizedHTML from \"../sanitized-html\";\r\nimport {HashLink} from 'react-router-hash-link';\r\nimport {withRouter} from \"react-router\";\r\nimport {getPageTitle} from \"../../utils/other\";\r\nimport Footer from \"../footer\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport {NodeVisibility} from \"../../model/IHubMinimalNode.d.ts\";\r\n\r\nimport themeConfig from \"../../config/theme/config.json\";\r\n\r\nconst styles = theme => ({\r\n defaultBackground: {\r\n backgroundColor: theme.palette.primary.light\r\n },\r\n main: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n fullWidthContainer: {\r\n backgroundColor: \"#f5f5f5\",\r\n width: \"100%\"\r\n },\r\n container: {\r\n paddingTop: theme.spacing(3)\r\n },\r\n anchorContainer: {\r\n position: \"relative\"\r\n },\r\n anchor: {\r\n position: \"absolute\",\r\n top: -theme.mixins.toolbar.minHeight\r\n },\r\n section: {\r\n paddingTop: theme.spacing(3)\r\n },\r\n nodesContainer: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n hub: state.hub,\r\n baseURL: state.config.baseURL,\r\n isA11y: state.app.isA11y\r\n});\r\n\r\nclass Home extends Component {\r\n\r\n info = React.createRef();\r\n nodesRef = React.createRef();\r\n\r\n state = {\r\n isListMode: true,\r\n };\r\n\r\n scrollToRef(ref) {\r\n ref.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"start\",\r\n inline: \"nearest\"\r\n });\r\n ref.current.focus({preventScroll: true});\r\n }\r\n\r\n /* onListModeToggle = () => {\r\n this.setState({isListMode: !this.state.isListMode});\r\n };*/\r\n\r\n render() {\r\n\r\n const {classes, hub, baseURL, isA11y, t, location} = this.props;\r\n // const {isListMode} = this.state;\r\n\r\n const params = new URLSearchParams(location.search);\r\n params.set(\"accessible\", \"true\");\r\n const paramsStr = params.toString();\r\n const path = location.pathname;\r\n\r\n return (\r\n \r\n {!isA11y && (\r\n 0 ? \"?\" : \"\") + paramsStr}\r\n target=\"_self\"\r\n className=\"skip-link sr-only\"\r\n >\r\n {t(\"commons.hashLinks.accessible\")}\r\n \r\n )}\r\n \r\n {t(\"commons.hashLinks.main\")}\r\n \r\n {hub.hub.description && hub.hub.description.length > 0 && (\r\n \r\n {t(\"commons.hashLinks.hubInformation\")}\r\n \r\n )}\r\n \r\n {t(\"commons.hashLinks.nodes\")}\r\n \r\n \r\n {t(\"commons.hashLinks.footer\")}\r\n \r\n \r\n \r\n
    \r\n }\r\n background={hub.hub.backgroundMediaURL\r\n ? hub.hub.backgroundMediaURL.match(/\\.(jpeg|jpg|gif|png|JPEG|JPG|GIF|PNG|svg|SVG)$/)\r\n ?
    \r\n : (\r\n \r\n )\r\n :
    \r\n }\r\n showExtraLogos\r\n >\r\n \r\n {hub.hub.description && hub.hub.description.length > 0 && (\r\n \r\n this.scrollToRef(this.info)}\r\n id=\"infos-btn\"\r\n >\r\n {t(\"scenes.hub.informations\")}\r\n \r\n \r\n )}\r\n \r\n this.scrollToRef(this.nodesRef)}\r\n >\r\n {t(\"scenes.hub.nodes\")}\r\n \r\n \r\n {!isA11y && hub.hub.dashboards && hub.hub.dashboards.length > 0 && themeConfig.enableDashboard && (\r\n \r\n \r\n {t(\"scenes.hub.dashboards\")}\r\n \r\n \r\n )}\r\n \r\n \r\n
    \r\n \r\n {hub.hub.description && hub.hub.description.length > 0 && (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation(),\r\n connect(mapStateToProps),\r\n withRouter\r\n)(Home);","import {initRequest} from \"../../middlewares/request/requestActions\";\r\nimport {getHubMinimalInfoUrl} from \"../../serverApi/urls\";\r\n\r\nexport const HUB_FETCH = \"hub/fetch\";\r\nexport const HUB_CLEAR = \"hub/clear\";\r\n\r\nexport const fetchHub = () => initRequest(\r\n HUB_FETCH,\r\n getHubMinimalInfoUrl(),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"domains.hub.messages.fetch.start\")\r\n })\r\n);\r\n\r\nexport const clearHub = () => ({\r\n type: HUB_CLEAR\r\n})","import React, {Component, Fragment} from \"react\";\r\nimport Hero from \"../hero\";\r\nimport CardsGrid from \"../cards-grid\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport PageSection from \"../page-section\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport NodeHeader from \"../node-header\";\r\nimport Page from \"../page\";\r\nimport {getNodeInternalUrl, goToNodeCategories, goToNodeDashboards} from \"../../links\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport {connect} from \"react-redux\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport SanitizedHTML from \"../sanitized-html\";\r\nimport {HashLink} from \"react-router-hash-link\";\r\nimport {withRouter} from \"react-router\";\r\nimport {openSearchDialog} from \"../../state/search-dialog/searchDialogActions\";\r\nimport {getPageTitle} from \"../../utils/other\";\r\nimport Footer from \"../footer\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport ModulesPlaceholder from \"../modules-placeholder\";\r\nimport {WINDOW_SCREEN_WIDTH_MD} from \"../../utils/constants\";\r\nimport {NodeVisibility} from \"../../model/IHubMinimalNode.d.ts\";\r\n\r\nimport themeConfig from \"../../config/theme/config.json\";\r\n\r\nconst styles = theme => ({\r\n main: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n fullWidthContainer: {\r\n backgroundColor: \"#f5f5f5\",\r\n width: \"100%\"\r\n },\r\n container: {\r\n paddingTop: theme.spacing(3)\r\n },\r\n anchorContainer: {\r\n position: \"relative\"\r\n },\r\n anchor: {\r\n position: \"absolute\",\r\n top: -theme.mixins.toolbar.minHeight\r\n },\r\n section: {\r\n paddingTop: theme.spacing(3)\r\n },\r\n nodesContainer: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n isA11y: state.app.isA11y,\r\n baseURL: state.config.baseURL\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onSearch: () => dispatch(openSearchDialog())\r\n});\r\n\r\nclass Node extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isSearchVisible: false\r\n };\r\n }\r\n\r\n setSearchButtonVisibility = () => {\r\n if (this.state.isSearchVisible !== (window.innerWidth > WINDOW_SCREEN_WIDTH_MD)) {\r\n this.setState({isSearchVisible: window.innerWidth > WINDOW_SCREEN_WIDTH_MD});\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n this.setSearchButtonVisibility();\r\n window.addEventListener(\"resize\", this.setSearchButtonVisibility);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.setSearchButtonVisibility);\r\n };\r\n\r\n info = React.createRef();\r\n nodes = React.createRef();\r\n\r\n scrollToRef(ref) {\r\n ref.current.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"start\",\r\n inline: \"nearest\"\r\n });\r\n ref.current.focus({preventScroll: true});\r\n }\r\n\r\n render() {\r\n\r\n const {\r\n isSearchVisible\r\n } = this.state;\r\n\r\n const {\r\n classes,\r\n defaultTreeOpen,\r\n defaultNodeConfigOpen,\r\n defaultAppConfigOpen,\r\n defaultUserConfigOpen,\r\n defaultNodesConfigOpen,\r\n node,\r\n nodeCode,\r\n hub,\r\n catalog,\r\n baseURL,\r\n isDefault,\r\n isA11y,\r\n t,\r\n location,\r\n onSearch\r\n } = this.props;\r\n\r\n const nodeMinimalInfo = hub.nodes.find(({code}) => code.toLowerCase() === nodeCode.toLowerCase());\r\n\r\n const otherNodes = hub.nodes.filter(n => n.code.toLowerCase() !== nodeCode.toLowerCase() && n.visible !== NodeVisibility.No);\r\n\r\n const params = new URLSearchParams(location.search);\r\n params.set(\"accessible\", \"true\");\r\n const paramsStr = params.toString();\r\n const path = location.pathname;\r\n\r\n return (\r\n \r\n {!isA11y && (\r\n 0 ? \"?\" : \"\") + paramsStr}\r\n target=\"_self\"\r\n className=\"skip-link sr-only\"\r\n >\r\n {t(\"commons.hashLinks.accessible\")}\r\n \r\n )}\r\n \r\n {t(\"commons.hashLinks.main\")}\r\n \r\n {node && node.description && node.description.length > 0 && (\r\n \r\n {t(\"commons.hashLinks.nodeInformation\")}\r\n \r\n )}\r\n {isDefault && otherNodes.length > 0 && (\r\n \r\n {t(\"commons.hashLinks.otherNodes\")}\r\n \r\n )}\r\n \r\n {t(\"commons.hashLinks.footer\")}\r\n \r\n \r\n \r\n
    \r\n }\r\n background={nodeMinimalInfo.backgroundMediaURL\r\n ? nodeMinimalInfo.backgroundMediaURL.match(/\\.(jpeg|jpg|gif|png|JPEG|JPG|GIF|PNG|svg|SVG)$/)\r\n ?
    \r\n : (\r\n \r\n )\r\n :
    \r\n }\r\n showExtraLogos={isDefault}\r\n >\r\n \r\n {node && node.description && node.description.length > 0 && (\r\n \r\n this.scrollToRef(this.info)}\r\n id=\"infos-btn\"\r\n >\r\n {t(\"scenes.node.informations\")}\r\n \r\n \r\n )}\r\n {catalog && !catalog.isEmpty && (\r\n \r\n goToNodeCategories(nodeCode)}\r\n >\r\n {t(\"scenes.node.explore\")}\r\n \r\n \r\n )}\r\n {!isA11y && nodeMinimalInfo.dashboards && nodeMinimalInfo.dashboards.length > 0 && themeConfig.enableDashboard && (\r\n \r\n goToNodeDashboards(nodeCode)}\r\n >\r\n {t(\"scenes.node.dashboards\")}\r\n \r\n \r\n )}\r\n {isDefault && otherNodes.length > 0 && (\r\n \r\n this.scrollToRef(this.nodes)}\r\n >\r\n {t(\"scenes.node.otherNodes\")}\r\n \r\n \r\n )}\r\n {catalog && isSearchVisible && (\r\n \r\n \r\n {t(\"scenes.node.search\")}\r\n \r\n \r\n )}\r\n \r\n \r\n
    \r\n \r\n {node && node.description && node.description.length > 0 && (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n {isDefault && otherNodes.length > 0 && (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation(),\r\n connect(mapStateToProps, mapDispatchToProps),\r\n withRouter\r\n)(Node);","import {initRequest} from '../../middlewares/request/requestActions';\r\nimport {getNodeUrl} from '../../serverApi/urls';\r\n\r\nexport const NODE_FETCH = \"node/fetch\";\r\nexport const NODE_CLEAR = \"node/clear\";\r\n\r\nexport const fetchNode = (nodeId: number, nodeCode: string) =>\r\n initRequest(\r\n NODE_FETCH,\r\n getNodeUrl(nodeId),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"domains.node.messages.fetch.start\")\r\n }),\r\n {\r\n nodeId,\r\n nodeCode\r\n }\r\n );\r\n\r\nexport const clearNode = () => ({\r\n type: NODE_CLEAR\r\n})\r\n\r\n","import {initRequest} from \"../../middlewares/request/requestActions\";\r\nimport {getNodeCatalogUrl} from \"../../serverApi/urls\";\r\n\r\nexport const CATALOG_FETCH = \"catalog/fetch\";\r\nexport const CATALOG_CLEAR = \"catalog/clear\";\r\n\r\nexport const fetchCatalog = (nodeId: number, nodeCode: string) => initRequest(\r\n CATALOG_FETCH,\r\n getNodeCatalogUrl(nodeId),\r\n undefined,\r\n undefined,\r\n t => ({\r\n onStart: t(\"domains.catalog.messages.fetch.start\")\r\n }),\r\n {\r\n nodeId,\r\n nodeCode\r\n }\r\n);\r\n\r\nexport const clearCatalog = () => ({\r\n type: CATALOG_CLEAR\r\n})","import React, {useEffect, useState} from \"react\";\r\nimport TreeItem from \"@material-ui/lab/TreeItem\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport TreeView from \"@material-ui/lab/TreeView\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport {goToDatasetsSearch} from \"../../links\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {compose} from \"redux\";\r\n\r\nconst styles = () => ({\r\n container: {\r\n background: \"#F5F5F5\",\r\n paddingTop: 8,\r\n paddingBottom: 8\r\n },\r\n nodeIcon: {\r\n marginTop: 5\r\n },\r\n item: {\r\n background: \"none !important\"\r\n },\r\n resCount: {\r\n fontWeight: \"bold\",\r\n marginLeft: 4\r\n },\r\n checkbox: {\r\n padding: 0,\r\n transform: \"translateY(-2px)\"\r\n }\r\n});\r\n\r\nfunction ResultTree(props) {\r\n const {\r\n classes,\r\n catalog,\r\n query,\r\n node,\r\n filters = [],\r\n categoryGroupsWithCount,\r\n uncategorizedDatasetsCount,\r\n t\r\n } = props;\r\n\r\n const [expanded, setExpanded] = useState([]);\r\n\r\n useEffect(() => {\r\n setExpanded(((\r\n catalog.hasCategorySchemes\r\n ? categoryGroupsWithCount\r\n : categoryGroupsWithCount?.[0]?.categories\r\n ) || []).map(({id}) => id));\r\n }, [catalog, categoryGroupsWithCount]);\r\n\r\n const getTreeItems = (tree, prevPath, noCheckbox = false) =>\r\n tree.map((cat, i) => {\r\n\r\n const selected = !!filters.find(filter => filter.includes(cat.id));\r\n\r\n return (\r\n \r\n {!noCheckbox && (\r\n \r\n \r\n {\r\n goToDatasetsSearch(\r\n node.code,\r\n query,\r\n selected\r\n ? filters.filter(path => !path.includes(cat.id))\r\n : [...filters, [...prevPath, cat.id]]\r\n );\r\n e.stopPropagation();\r\n }}\r\n />\r\n \r\n )}\r\n \r\n {cat.label}\r\n {!noCheckbox && (\r\n ({cat.count})\r\n )}\r\n \r\n \r\n }\r\n classes={{\r\n label: classes.item\r\n }}\r\n >\r\n {cat.categories && cat.categories.length > 0 && getTreeItems(cat.categories, [...prevPath, cat.id])}\r\n \r\n );\r\n });\r\n\r\n const uncategorizedSelected = !!filters.find(filter => filter.includes(\"uncategorized\"));\r\n\r\n return (\r\n \r\n {categoryGroupsWithCount.length > 0 && (\r\n }\r\n defaultExpandIcon={}\r\n key={query ? `result-tree-categories-${query}` : 'result-tree-categories'}\r\n expanded={expanded}\r\n onNodeToggle={(_, nodeIds) => setExpanded(nodeIds)}\r\n >\r\n {getTreeItems(\r\n catalog.hasCategorySchemes\r\n ? categoryGroupsWithCount\r\n : categoryGroupsWithCount[0].categories,\r\n [],\r\n catalog.hasCategorySchemes\r\n )}\r\n \r\n )}\r\n {uncategorizedDatasetsCount > 0 && (\r\n }\r\n defaultExpandIcon={}\r\n key={query ? `result-tree-uncategorized-${query}` : 'result-tree-uncategorized'}\r\n >\r\n \r\n \r\n \r\n {\r\n goToDatasetsSearch(\r\n node.code,\r\n query,\r\n uncategorizedSelected\r\n ? filters.filter(path => JSON.stringify(path) !== JSON.stringify([\"uncategorized\"]))\r\n : [...filters, [\"uncategorized\"]]\r\n );\r\n e.stopPropagation();\r\n }}\r\n />\r\n \r\n \r\n {t(\"commons.catalog.uncategorized\")} ({uncategorizedDatasetsCount})
    \r\n \r\n \r\n }\r\n classes={{label: classes.item}}\r\n />\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(ResultTree);","import React, {Fragment, useEffect} from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport ExpandLessIcon from \"@material-ui/icons/ExpandLess\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport SanitizedHTML from \"../sanitized-html\";\r\nimport CatalogInfoButton from \"../catalog-info-button\";\r\nimport CatalogMetadataButton from \"../catalog-metadata-button\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\nimport CustomLink from \"../custom-link\";\r\nimport StorageIcon from \"@material-ui/icons/Storage\";\r\nimport DatasetAttachments from \"../dataset-attachments\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = () => ({\r\n dataset: {\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n },\r\n actions: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: \"8px 16px\",\r\n \"& > button\": {\r\n padding: 8\r\n }\r\n },\r\n description: {\r\n width: \"100%\",\r\n padding: \"16px !important\"\r\n },\r\n descriptionTextWrapper: {\r\n fontSize: 16\r\n },\r\n descriptionTextWrapperCollapsed: {\r\n maxHeight: 48,\r\n overflow: \"hidden\"\r\n },\r\n descriptionTextWrapperExpanded: {\r\n minHeight: 48\r\n },\r\n descriptionText: {\r\n \"& > p\": {\r\n margin: 0\r\n }\r\n },\r\n descriptionIcon: {\r\n display: \"none\",\r\n justifyContent: \"flex-end\"\r\n }\r\n});\r\n\r\n// based on https://stackoverflow.com/a/7616484\r\nconst getIdFromDatasetIdentifier = identifier => {\r\n if (!identifier) {\r\n return undefined;\r\n }\r\n\r\n let hash = 0, i, chr;\r\n if (identifier.length === 0) return hash;\r\n for (i = 0; i < identifier.length; i++) {\r\n chr = identifier.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // convert to 32bit integer\r\n }\r\n return \"id__\" + hash;\r\n};\r\n\r\nconst handleStyle = (dataset, isExpanded) => {\r\n const textHeight = $(`#${getIdFromDatasetIdentifier(dataset.identifier)}__description__text`).outerHeight() || 0;\r\n const textWrapperHeight = $(`#${getIdFromDatasetIdentifier(dataset.identifier)}__description__text-wrapper`).outerHeight() || 0;\r\n $(`#${getIdFromDatasetIdentifier(dataset.identifier)}__description__icon`).css({\r\n display: (textHeight > textWrapperHeight || isExpanded) ? \"flex\" : \"none\"\r\n });\r\n};\r\n\r\nconst DatasetCard = ({\r\n dataset,\r\n classes,\r\n isExpanded,\r\n onViewDataset,\r\n onExpand,\r\n onCollapse,\r\n onClick,\r\n xs,\r\n md,\r\n isMultiCategorized\r\n }) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n useEffect(() => {\r\n const f = () => handleStyle(dataset, isExpanded);\r\n f();\r\n window.addEventListener(\"resize\", f);\r\n return () => window.removeEventListener(\"resize\", f);\r\n }, [dataset, isExpanded]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n {dataset.title}\r\n {isMultiCategorized && (\r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n icon={}\r\n textStyle={{\r\n fontSize: 18,\r\n minHeight: 48,\r\n padding: \"16px 16px 0 16px\"\r\n }}\r\n subText={dataset.source}\r\n subTextStyle={{\r\n fontSize: 14,\r\n fontWeight: \"normal\",\r\n color: \"rgba(0, 0, 0, 0.54)\",\r\n padding: \"0 16px 16px 16px\"\r\n }}\r\n disabled={dataset.catalogType === \"ONLY_FILE\"}\r\n />\r\n {(dataset.attachedDataFiles || dataset.note || dataset.referenceMetadata) && (\r\n
    \r\n \r\n {dataset.note && (\r\n \r\n )}\r\n {dataset.referenceMetadata && (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n {dataset.description && (\r\n
    \r\n \r\n {dataset.description && (\r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n {isExpanded\r\n ? \r\n : \r\n }\r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default withStyles(styles)(DatasetCard);","export const scrollResultsToDatasetByParam = () => {\r\n let datasetIdParam;\r\n\r\n const split = window.location.hash.split(\"datasetId=\");\r\n if (split && split.length === 2 && split[1].length > 0) {\r\n const split2 = split[1].split(\"&\");\r\n if (split2[0] && split2[0].length > 0) {\r\n datasetIdParam = decodeURIComponent(split2[0]);\r\n }\r\n }\r\n\r\n if (datasetIdParam) {\r\n const element = document.getElementById(encodeURIComponent(datasetIdParam));\r\n if (element) {\r\n element.scrollIntoView();\r\n }\r\n }\r\n};","import React, {Fragment, useEffect, useState} from 'react';\r\nimport NodeHeader from \"../node-header\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Page from \"../page\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport {getDatasetInternalUrl, getDatasetsInternalUrl, getHomeInternalUrl, getNodeCategoriesInternalUrl, getNodeInternalUrl} from \"../../links\";\r\nimport CardActions from '@material-ui/core/CardActions';\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport ListIcon from '@material-ui/icons/List';\r\nimport GridOnIcon from '@material-ui/icons/GridOn';\r\nimport Breadcrumbs from \"@material-ui/core/Breadcrumbs\";\r\nimport ResultTree from \"./ResultTree\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {compose} from \"redux\";\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport DatasetCard from \"./DatasetCard\";\r\nimport {scrollResultsToDatasetByParam} from \"./utils\";\r\nimport {withRouter} from \"react-router\";\r\nimport {HashLink} from 'react-router-hash-link';\r\nimport DetailLevelSelect from \"../detail-level-select\";\r\nimport {connect} from \"react-redux\";\r\nimport {getFilteredTreeWithPaths, getMappedTree} from \"../../utils/tree\";\r\nimport CatalogInfoButton from \"../catalog-info-button\";\r\nimport CatalogMetadataButton from \"../catalog-metadata-button\";\r\nimport {getPageTitle} from \"../../utils/other\";\r\nimport Footer from \"../footer\";\r\nimport CustomLink from \"../custom-link\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport CategoriesTree from \"../categories-tree\";\r\nimport {\r\n CATALOG_NAVIGATION_MODE_GRID,\r\n CATALOG_NAVIGATION_MODE_LIST,\r\n CATALOG_NAVIGATION_MODE_TREE\r\n} from \"../settings-select/nodes-settings-form/node-settings-form\";\r\n\r\nconst styles = theme => ({\r\n fullWidthContainer: {\r\n width: \"100%\",\r\n minHeight: \"100%\",\r\n backgroundColor: \"#f5f5f5\",\r\n display: \"flex\",\r\n flexDirection: \"column\"\r\n },\r\n toolbar: {\r\n minHeight: 48,\r\n marginTop: theme.spacing(3)\r\n },\r\n searchTitle: {\r\n fontSize: 24,\r\n fontWeight: 400,\r\n letterSpacing: 0,\r\n whiteSpace: \"pre-wrap\"\r\n },\r\n categoriesTitle: {\r\n fontSize: 28,\r\n fontWeight: 300,\r\n letterSpacing: 0,\r\n paddingBottom: 8,\r\n position: \"relative\",\r\n width: \"calc(100% - 96px)\",\r\n zIndex: 2\r\n },\r\n breadcrumbs: {\r\n minHeight: 48,\r\n padding: \"8px 0\",\r\n display: \"flex\"\r\n },\r\n breadcrumbsSeparator: {\r\n margin: \"0 4px\"\r\n },\r\n breadcrumbsLastElem: {\r\n color: theme.palette.primary.main,\r\n padding: 4\r\n },\r\n detailLevels: {\r\n padding: \"8px 4px\"\r\n },\r\n results: {\r\n marginTop: 8\r\n },\r\n row: {\r\n marginBottom: theme.spacing(1)\r\n },\r\n card: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\"\r\n },\r\n cardActions: {\r\n padding: \"4px 8px\"\r\n },\r\n divider: {\r\n margin: \"16px 0\"\r\n },\r\n categoriesTree: {\r\n marginTop: -52,\r\n zIndex: 1\r\n },\r\n treeItemCategory: {\r\n \"& .categories-tree__tree-item__node__icon\": {\r\n width: 32,\r\n height: 32\r\n }\r\n },\r\n treeItemDataset: {\r\n \"& .categories-tree__tree-item__dataset__icon\": {\r\n margin: \"0 6px\"\r\n }\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n filteredCatalog: state.detailLevel.filteredCatalog,\r\n detailLevel: state.detailLevel.detailLevel\r\n});\r\n\r\nconst Results = ({\r\n classes,\r\n query,\r\n hub,\r\n catalog,\r\n node,\r\n nodeCode,\r\n isDefault,\r\n categoryPath,\r\n subCategories,\r\n filters,\r\n filtersParams,\r\n t,\r\n location,\r\n detailLevel,\r\n filteredCatalog,\r\n datasets,\r\n isAccessible,\r\n onAccessibleDatasetFetch\r\n }) => {\r\n\r\n const [expandedIndexes, setExpandedIndexes] = useState([]);\r\n\r\n const [catalogNavigationMode, setCatalogNavigationMode] = useState(\r\n hub.nodes\r\n .find(({code}) => code.toLowerCase() === nodeCode.toLowerCase())\r\n .catalogNavigationMode\r\n );\r\n\r\n useEffect(() => {\r\n setExpandedIndexes([]);\r\n }, [categoryPath]);\r\n\r\n useEffect(() => scrollResultsToDatasetByParam());\r\n\r\n const nodeMinimalInfo = hub.nodes.find(({code}) => code.toLowerCase() === nodeCode.toLowerCase());\r\n\r\n const nodeExtras = nodeMinimalInfo?.extras || [];\r\n const hideLabelOnCategoryWithImage = JSON.parse(nodeExtras.find(({key}) => key === \"HideLabelOnCategoryWithImage\")?.value || \"[]\");\r\n\r\n if (filteredCatalog) {\r\n\r\n let categoryPathLabels = [];\r\n if (categoryPath) {\r\n if (categoryPath[0] === \"uncategorized\") {\r\n categoryPathLabels = [t(\"commons.catalog.uncategorized\")];\r\n } else {\r\n\r\n let category;\r\n\r\n if (catalog.hasCategorySchemes) {\r\n category = catalog.categoryGroups.find(({id}) => id === categoryPath[0]);\r\n } else {\r\n category = catalog.categoryGroups[0].categories.find(({id}) => id === categoryPath[0]);\r\n }\r\n\r\n categoryPathLabels.push(category.label);\r\n for (let i = 1; i < categoryPath.length; i++) {\r\n category = (category.childrenCategories || category.categories).find(({id}) => id === categoryPath[i]);\r\n categoryPathLabels.push(category.label);\r\n }\r\n }\r\n }\r\n\r\n let categoryGroupsWithCount, uncategorizedDatasetsCount;\r\n\r\n if (query) {\r\n const testDSForQuery = ds =>\r\n (ds.title || \"\").toLowerCase().includes(query.toLowerCase()) ||\r\n !!ds.keywords?.find(keyword => keyword.toLowerCase().includes(query.toLowerCase()));\r\n\r\n const testCatForFilters = cat => filters.length === 0 || filters.includes(cat.id);\r\n\r\n const dssForCount = []; // satisfy only query (necessary to display count numbers)\r\n const dssForResults = []; // satisfy query and filters\r\n\r\n if (filteredCatalog.uncategorizedDatasets && filteredCatalog.uncategorizedDatasets.length > 0) {\r\n filteredCatalog.uncategorizedDatasets.forEach(ds => {\r\n\r\n ds.categoryPath = [\"uncategorized\"];\r\n\r\n if (testDSForQuery(ds)) {\r\n dssForCount.push(ds);\r\n if (filters.length === 0 || filters.includes(\"uncategorized\")) {\r\n dssForResults.push(ds);\r\n }\r\n }\r\n });\r\n }\r\n\r\n const searchRecursive = (categories, categoryPath, overrideCatSatisfyFilters = false) => {\r\n\r\n categories.forEach(c => {\r\n\r\n const catSatisfyFilters = overrideCatSatisfyFilters || testCatForFilters(c);\r\n\r\n c.datasetIdentifiers.forEach(id => {\r\n const ds = {\r\n ...catalog.datasets[id],\r\n identifier: id,\r\n categoryPath: [...categoryPath, c.id]\r\n };\r\n if (testDSForQuery(ds)) {\r\n dssForCount.push(ds);\r\n if (catSatisfyFilters) {\r\n dssForResults.push(ds);\r\n }\r\n }\r\n });\r\n\r\n searchRecursive(c.childrenCategories, [...categoryPath, c.id], catSatisfyFilters);\r\n });\r\n };\r\n\r\n if (filteredCatalog.hasCategorySchemes) {\r\n // with category schemes\r\n filteredCatalog.categoryGroups.forEach(group => searchRecursive(group.categories, [group.id]));\r\n } else if (filteredCatalog.categoryGroups.length === 1) {\r\n // no category schemes\r\n searchRecursive(filteredCatalog.categoryGroups[0].categories, []);\r\n }\r\n\r\n const dssSatisfyQueryMap = {};\r\n dssForCount.forEach(ds => dssSatisfyQueryMap[ds.identifier] = ds);\r\n\r\n const recursiveCountAndFilterZero = (tree, visited) => tree\r\n .map(node => {\r\n const children = recursiveCountAndFilterZero(node.childrenCategories, visited).filter(({count}) => count > 0);\r\n\r\n const uniqueDssSatisfyQueryCount = node.datasetIdentifiers?.filter(dsId => {\r\n if (dssSatisfyQueryMap[dsId] !== undefined) {\r\n if (visited[dsId]) {\r\n return false;\r\n } else {\r\n visited[dsId] = true;\r\n return true;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }).length || 0;\r\n\r\n return ({\r\n ...node,\r\n childrenCategories: node.childrenCategories ? children : undefined,\r\n count: children.reduce((acc, node) => acc + node.count, 0) + uniqueDssSatisfyQueryCount\r\n });\r\n })\r\n .filter(({count}) => count > 0);\r\n\r\n categoryGroupsWithCount = filteredCatalog.categoryGroups\r\n .map(categoryGroup => {\r\n const categories = (categoryGroup?.categories || [])\r\n .map(category => {\r\n const visited = {};\r\n const childrenCategories = recursiveCountAndFilterZero(category.childrenCategories, visited);\r\n return {\r\n ...category,\r\n childrenCategories: childrenCategories,\r\n count: childrenCategories.reduce((acc, node) => acc + node.count, 0) +\r\n (category.datasetIdentifiers?.filter(dsId => dssSatisfyQueryMap[dsId] !== undefined).length || 0)\r\n };\r\n })\r\n .filter(({count}) => count > 0);\r\n return {\r\n ...categoryGroup,\r\n categories: categories,\r\n count: categories.reduce((acc, node) => acc + node.count, 0)\r\n };\r\n })\r\n .filter(({count}) => count > 0);\r\n\r\n uncategorizedDatasetsCount =\r\n filteredCatalog.uncategorizedDatasets\r\n .filter(({identifier}) => dssSatisfyQueryMap[identifier] !== undefined)\r\n .length;\r\n\r\n // remove duplicates from results ( O(2n) )\r\n const resultsMap = {};\r\n dssForResults.forEach(ds => resultsMap[ds.identifier] = ds);\r\n\r\n datasets = Object.keys(resultsMap).map(id => resultsMap[id]);\r\n }\r\n\r\n const filteredDatasets = detailLevel\r\n ? datasets.filter(({detailsLevels: dls}) => (detailLevel == null || (dls || []).includes(detailLevel)))\r\n : datasets;\r\n\r\n const filteredSubCategories =\r\n detailLevel !== null && subCategories\r\n ? getFilteredTreeWithPaths(\r\n getMappedTree(subCategories, \"childrenCategories\", cat => ({\r\n ...cat,\r\n datasetIdentifiers: (cat.datasetIdentifiers || []).filter(id => (catalog.datasets[id].detailsLevels || []).includes(detailLevel))\r\n })),\r\n \"childrenCategories\",\r\n ({datasetIdentifiers}) => datasetIdentifiers && datasetIdentifiers.length > 0\r\n )\r\n : subCategories;\r\n\r\n const categoriesWithImages = (filteredSubCategories || []).find(({image}) => !!image) !== undefined;\r\n\r\n const params = new URLSearchParams(location.search);\r\n params.set(\"accessible\", \"true\");\r\n const paramsStr = params.toString();\r\n const path = location.pathname;\r\n\r\n const isTreeViewMode = catalogNavigationMode === CATALOG_NAVIGATION_MODE_TREE && (\r\n (catalog.hasCategorySchemes && (categoryPath || []).length === 2) ||\r\n (!catalog.hasCategorySchemes && (categoryPath || []).length === 1)\r\n );\r\n\r\n let catalogForTreeView = null;\r\n\r\n if (isTreeViewMode) {\r\n const categorySchemaId = catalog.hasCategorySchemes\r\n ? categoryPath[0]\r\n : filteredCatalog.categoryGroups[0].id;\r\n const categoryId = catalog.hasCategorySchemes\r\n ? categoryPath[1]\r\n : categoryPath[0];\r\n\r\n const categoryGroup = filteredCatalog.categoryGroups.find(({id}) => id === categorySchemaId);\r\n\r\n catalogForTreeView = {\r\n ...filteredCatalog,\r\n hasCategorySchemes: false,\r\n categoryGroups: categoryGroup\r\n ? [{\r\n ...categoryGroup,\r\n categories: categoryGroup.categories.find(({id}) => id === categoryId).childrenCategories\r\n }]\r\n : [],\r\n uncategorizedDatasets: null,\r\n rootDatasets: filteredDatasets\r\n };\r\n }\r\n\r\n return (\r\n \r\n {!isAccessible && (\r\n 0 ? \"?\" : \"\") + paramsStr}\r\n target=\"_self\"\r\n className=\"skip-link sr-only\"\r\n >\r\n {t(\"commons.hashLinks.accessible\")}\r\n \r\n )}\r\n \r\n {t(\"commons.hashLinks.main\")}\r\n \r\n \r\n {t(\"commons.hashLinks.footer\")}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n {query\r\n ? (\r\n \r\n {t(\"scenes.results.searchTitle\", {query})}\r\n \r\n )\r\n : (\r\n \r\n \r\n {(hub.nodes || []).length > 1 && (\r\n \r\n )}\r\n \r\n {categoryPath.map((id, idx) => {\r\n if (idx < categoryPath.length - 1 && id !== \"uncategorized\") {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {categoryPathLabels[idx]}\r\n \r\n );\r\n }\r\n })}\r\n \r\n )\r\n }\r\n \r\n {!isAccessible && catalogNavigationMode !== CATALOG_NAVIGATION_MODE_TREE && (\r\n \r\n {filteredDatasets.length > 0 && (\r\n \r\n setCatalogNavigationMode(catalogNavigationMode === CATALOG_NAVIGATION_MODE_LIST\r\n ? CATALOG_NAVIGATION_MODE_GRID\r\n : CATALOG_NAVIGATION_MODE_LIST\r\n )}\r\n aria-label={catalogNavigationMode === CATALOG_NAVIGATION_MODE_LIST\r\n ? t(\"components.results.actions.listModeToggle.grid.ariaLabel\")\r\n : t(\"components.results.actions.listModeToggle.list.ariaLabel\")\r\n }\r\n >\r\n {catalogNavigationMode === CATALOG_NAVIGATION_MODE_LIST\r\n ? \r\n : \r\n }\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {!query && (\r\n \r\n {categoryPathLabels[categoryPath.length - 1]}\r\n \r\n )}\r\n {catalog.detailLevels.length > 0 && (\r\n \r\n \r\n \r\n {t(\"components.results.detailLevelSelectTitle\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {query && (\r\n \r\n \r\n \r\n )}\r\n \r\n {!query\r\n ? (\r\n \r\n \r\n {filteredDatasets.length > 0 && !isTreeViewMode && (\r\n \r\n )}\r\n \r\n )\r\n : (filteredDatasets && filteredDatasets.length > 0 && (\r\n \r\n {filteredDatasets.length > 1\r\n ? t(\"scenes.results.datasetsCount.plural\", {datasetsCount: filteredDatasets.length})\r\n : t(\"scenes.results.datasetsCount.singular\", {datasetsCount: filteredDatasets.length})\r\n }:\r\n \r\n ))\r\n }\r\n {isTreeViewMode\r\n ? null\r\n : filteredDatasets.length > 0\r\n ? (\r\n \r\n )\r\n : (query || !filteredSubCategories || !filteredSubCategories.length)\r\n ? (\r\n \r\n )\r\n : null\r\n }\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation(),\r\n withRouter,\r\n connect(mapStateToProps)\r\n)(Results);","export const FETCH_DATASET_ASYNC_HANDLER_INIT = \"fetch/dataset/async/handler/init\"\r\nexport const FETCH_DATASET_ASYNC_HANDLER_SUCCESS = \"fetch/dataset/async/handler/success\"\r\nexport const FETCH_DATASET_ASYNC_HANDLER_ERROR = \"fetch/dataset/async/handler/error\"\r\n\r\nexport const initFetchDatasetAsyncHandler = () => ({\r\n type: FETCH_DATASET_ASYNC_HANDLER_INIT\r\n});\r\n\r\nexport const successFetchDatasetAsyncHandler = (\r\n response,\r\n statusCode,\r\n responseHeaders,\r\n isPointData,\r\n pointDim,\r\n cellCount,\r\n isTooBigData,\r\n isEmptyData,\r\n isPartialData,\r\n tableColCount,\r\n mapPointCount,\r\n isResponseNotValid,\r\n tableLayout,\r\n tableFilterTree,\r\n mapLayout,\r\n mapFilterTree,\r\n chartLayout,\r\n chartFilterTree,\r\n timePeriodsByFreq,\r\n worker\r\n) => ({\r\n type: FETCH_DATASET_ASYNC_HANDLER_SUCCESS,\r\n payload: {\r\n response,\r\n statusCode,\r\n responseHeaders,\r\n isPointData,\r\n pointDim,\r\n cellCount,\r\n isTooBigData,\r\n isEmptyData,\r\n isPartialData,\r\n tableColCount,\r\n mapPointCount,\r\n isResponseNotValid,\r\n tableLayout,\r\n tableFilterTree,\r\n mapLayout,\r\n mapFilterTree,\r\n chartLayout,\r\n chartFilterTree,\r\n timePeriodsByFreq,\r\n worker\r\n }\r\n});\r\n\r\nexport const errorFetchDatasetAsyncHandler = statusCode => ({\r\n type: FETCH_DATASET_ASYNC_HANDLER_ERROR,\r\n payload: {\r\n statusCode\r\n }\r\n});","const ACTION_EXTRAS = 'ACTION_EXTRAS';\r\nconst CURRENT_NODE_CONFIG = 'CURRENT_NODE_CONFIG';\r\n\r\nexport const getActionExtras = action => action[ACTION_EXTRAS];\r\nexport const getCurrentNodeConfig = action => action[CURRENT_NODE_CONFIG];\r\n\r\nconst actionDecoratorMiddlewareFactory = t => ({getState}) => next => action => {\r\n\r\n const state = getState();\r\n\r\n let decoratedAction = {\r\n ...action,\r\n [ACTION_EXTRAS]: {\r\n language: state?.app?.language,\r\n languages: state?.app?.languages,\r\n t: t,\r\n mapDefaultSettings: state?.appConfig?.mapDefaultSettings,\r\n chartDefaultSettings: state?.appConfig?.chartDefaultSettings\r\n },\r\n [CURRENT_NODE_CONFIG]: state?.node\r\n }\r\n\r\n return next(decoratedAction);\r\n\r\n};\r\n\r\nexport default actionDecoratorMiddlewareFactory;\r\n","import {getFilteredTreeWithPaths, getMappedTree, getNodes} from \"./tree\";\r\nimport {IDataset} from \"../model/IDataset\";\r\nimport {ICategoryGroup} from \"../model/ICategoryGroup\";\r\nimport {ICategory} from \"../model/ICategory\";\r\nimport {ICategoryProvider} from \"../model/ICategoryProvider\";\r\n\r\nexport const getDetailLevelTree = (tree: any, t: any) => getMappedTree(tree, \"layers\", (node: any, idx: number) => ({\r\n ...node,\r\n key: (node.id || `root_${idx}`).toString(),\r\n label: node.parentCategory\r\n ? t(`detailLevels.${node.parentCategory}.values.${node.nameIdentifier}`) /* i18next-extract-disable-line */\r\n : t(`detailLevels.${node.category}.label`), /* i18next-extract-disable-line */\r\n layers: (node.layers || [])\r\n .map((child: any) => ({...child, parentCategory: node.category || null}))\r\n .sort(((a: any, b: any) => (a.order - b.order) || (a.id - b.id)))\r\n}));\r\n\r\nexport const getDetailLevelFromTree = (tree: any, prefValue: number | null = null) => {\r\n const nodes = getNodes(tree, \"layers\", (node: any) => (node.id !== null && node.id !== undefined)).map(({id}) => id);\r\n if (nodes.length > 0) {\r\n if (prefValue !== null) {\r\n return nodes.includes(prefValue)\r\n ? prefValue\r\n : null;\r\n } else if (nodes.includes(3)) {\r\n return 3;\r\n } else {\r\n return nodes[0];\r\n }\r\n }\r\n};\r\n\r\nexport const getFilteredCatalog = (catalog: ICategoryProvider, filter: (id: string, dataset: IDataset) => boolean) => {\r\n const datasets: {[key: string]: IDataset} = {};\r\n Object.keys(catalog.datasets)\r\n .filter(id => filter(id, catalog.datasets[id]))\r\n .forEach(id => datasets[id] = catalog.datasets[id]);\r\n\r\n const categoryGroups = (catalog.categoryGroups || [])\r\n .map((group: ICategoryGroup) => ({\r\n ...group,\r\n categories: getFilteredTreeWithPaths(\r\n getMappedTree(group.categories, \"childrenCategories\", (cat: ICategory) => ({\r\n ...cat,\r\n datasetIdentifiers: (cat.datasetIdentifiers || []).filter(id => filter(id, catalog.datasets[id]))\r\n })),\r\n \"childrenCategories\",\r\n (cat: ICategory) => cat.datasetIdentifiers && cat.datasetIdentifiers.length > 0\r\n )\r\n }))\r\n .filter((group: ICategoryGroup) => group.categories && group.categories.length > 0);\r\n\r\n const uncategorizedDatasets = (catalog.uncategorizedDatasets || [])\r\n .filter((dataset: IDataset) => filter(dataset.identifier, dataset));\r\n\r\n return {\r\n ...catalog,\r\n categoryGroups: categoryGroups,\r\n datasets: datasets,\r\n uncategorizedDatasets: uncategorizedDatasets,\r\n isEmpty: Object.keys(datasets).length === 0 && (uncategorizedDatasets || []).length === 0\r\n };\r\n};","import {ICategoryProvider} from \"./ICategoryProvider\";\r\nimport {ICategoryGroup} from \"./ICategoryGroup\";\r\nimport {IDataset} from \"./IDataset\";\r\nimport {getNodes} from \"../utils/tree\";\r\nimport {getDetailLevelTree} from \"../utils/catalog\";\r\n\r\nexport class LocalCategoryProvider implements ICategoryProvider {\r\n\r\n categoryGroups: Array;\r\n\r\n datasets: {[key: string]: IDataset};\r\n\r\n uncategorizedDatasets: IDataset[];\r\n\r\n hasCategorySchemes: boolean;\r\n\r\n isEmpty: boolean;\r\n\r\n nodeId: number;\r\n\r\n detailLevelTree: any = [];\r\n\r\n detailLevels: number[] = [];\r\n\r\n constructor(categories: Array, datasets: {[key: string]: IDataset}, uncategorizedDatasets: IDataset[] = [], nodeId: number = -1, detailLevelTree: any = [], t: any) {\r\n this.categoryGroups = categories || [];\r\n this.datasets = datasets || {};\r\n this.uncategorizedDatasets = uncategorizedDatasets || [];\r\n this.hasCategorySchemes = this.categoryGroups.length > 1;\r\n this.isEmpty = Object.keys(this.datasets).length === 0 && this.uncategorizedDatasets.length === 0;\r\n\r\n this.nodeId = nodeId || -1;\r\n\r\n const tree = getDetailLevelTree(detailLevelTree, t);\r\n this.detailLevelTree = tree;\r\n this.detailLevels = getNodes(tree, \"layers\", (node: any) => node.catalogSelection)\r\n .sort(((a, b) => (a.order - b.order) || (a.id - b.id)));\r\n }\r\n}","import {Reducer} from \"@reduxjs/toolkit\";\r\nimport {REQUEST_ERROR, REQUEST_INIT, REQUEST_SUCCESS} from \"../../middlewares/request/requestActions\";\r\nimport {\r\n ALL_FULL,\r\n ALL_PARTIAL,\r\n CRITERIA_SELECTION_MODE_ALL,\r\n CRITERIA_SELECTION_MODE_STEP_BY_STEP,\r\n CRITERIA_SELECTION_TYPE_DYNAMIC,\r\n CRITERIA_SELECTION_TYPE_FULL,\r\n CRITERIA_SELECTION_TYPE_PARTIAL,\r\n DATASET_ADDITIONAL_DATASET_CATALOG_FETCH,\r\n DATASET_ADDITIONAL_DATASET_CHANGE,\r\n DATASET_ADDITIONAL_DATASET_CREATE_VISIBILITY_SET,\r\n DATASET_ADDITIONAL_DATASET_CRITERIA_SET,\r\n DATASET_ADDITIONAL_DATASET_DELETE,\r\n DATASET_ADDITIONAL_DATASET_LIST_VISIBILITY_SET,\r\n DATASET_ADDITIONAL_DATASET_STURCTURE_FETCH,\r\n DATASET_ADDITIONAL_DATASET_SUBMIT,\r\n DATASET_CACHE_INFO_FETCH,\r\n DATASET_CACHE_INFO_TTL_UPDATE,\r\n DATASET_CHART_FILTERS_TREE_SUBMIT,\r\n DATASET_CHART_LAYOUT_SUBMIT,\r\n DATASET_CHART_LAYOUT_TERRITORY_DIM_VALUES_SET,\r\n DATASET_CHART_SETTINGS_SET,\r\n DATASET_CRITERIA_ALERT_HIDE,\r\n DATASET_CRITERIA_HIDE,\r\n DATASET_CRITERIA_OBS_COUNT_WARNING_HIDE,\r\n DATASET_CRITERIA_SHOW,\r\n DATASET_DELETE_TEMPLATE,\r\n DATASET_DOWNLOAD_SUBMIT,\r\n DATASET_DOWNLOAD_WARNING_HIDE,\r\n DATASET_FETCH_ENABLE,\r\n DATASET_HTML_GENERATING_TIME_SET,\r\n DATASET_INDICATOR_ARITHMETIC_MEAN_VALUES_SET,\r\n DATASET_INDICATOR_ARITHMETIC_MEAN_VISIBILITY_SET,\r\n DATASET_INDICATOR_COEFFICIENT_OF_VARIATION_VISIBILITY_SET,\r\n DATASET_INDICATOR_CREATE_VISIBILITY_SET,\r\n DATASET_INDICATOR_DELETE,\r\n DATASET_INDICATOR_LIST_VISIBILITY_SET,\r\n DATASET_INDICATOR_PREVIEW_FETCH,\r\n DATASET_INDICATOR_PREVIEW_RESET,\r\n DATASET_INDICATOR_PUBLISH,\r\n DATASET_INDICATOR_STANDARD_DEVIATION_VISIBILITY_SET,\r\n DATASET_INDICATOR_WARNING_HIDE,\r\n DATASET_LABEL_FORMAT_SET,\r\n DATASET_MAP_LAYOUT_SUBMIT,\r\n DATASET_MAP_SETTINGS_SET,\r\n DATASET_SDMX_QUERY_FETCH,\r\n DATASET_SDMX_QUERY_HIDE,\r\n DATASET_SDMX_QUERY_SHOW,\r\n DATASET_SET_FULLSCREEN,\r\n DATASET_STATE_BACKUP,\r\n DATASET_STATE_RESET,\r\n DATASET_STRUCTURE_CODELIST_FETCH,\r\n DATASET_STRUCTURE_CODELIST_FULL_FETCH,\r\n DATASET_STRUCTURE_CODELIST_FULL_HIDE,\r\n DATASET_STRUCTURE_CRITERIA_RESET,\r\n DATASET_STRUCTURE_CRITERIA_SET,\r\n DATASET_STRUCTURE_FETCH,\r\n DATASET_STRUCTURE_FETCH_ENABLE,\r\n DATASET_TABLE_FILTERS_TREE_SUBMIT,\r\n DATASET_TABLE_LAYOUT_SUBMIT,\r\n DATASET_TEMPORAL_DIM_ORDER_SET,\r\n DATASET_TERRITORY_DETAIL_LEVEL_SET,\r\n DATASET_TERRITORY_DETAIL_LEVEL_TREE_SET,\r\n DATASET_TERRITORY_DETAIL_LEVELS_FETCH,\r\n DATASET_TERRITORY_HIDE,\r\n DATASET_TERRITORY_LAST_YEAR_FETCH,\r\n DATASET_TERRITORY_SHOW,\r\n DATASET_TERRITORY_TERRITORIES_FETCH,\r\n DATASET_TERRITORY_TERRITORIES_SET,\r\n DATASET_TERRITORY_TERRITORIES_SUBMIT,\r\n DATASET_UNAVAILABLE_VIEW_WARNING_HIDE,\r\n DATASET_VARIATION_SET,\r\n DATASET_VIEW_ERROR_HIDE,\r\n DATASET_VIEW_TEMPLATE_HIDE,\r\n DATASET_VIEW_TEMPLATE_SHOW,\r\n DATASET_VIEW_TEMPLATE_SUBMIT,\r\n DATASET_VIEWER_CHART_TYPE_SET,\r\n DATASET_VIEWER_CHART_VISIBILITY_SET,\r\n DATASET_VIEWER_MAP_VISIBILITY_SET,\r\n DATASET_VIEWER_MODE_SET,\r\n DATASET_VIEWER_SET,\r\n DATASET_VIEWER_TABLE_VISIBILITY_SET,\r\n STEP_BY_STEP_FULL,\r\n STEP_BY_STEP_PARTIAL\r\n} from \"./datasetActions\";\r\nimport {getNodes, getTreeFromArray} from \"../../utils/tree\";\r\nimport {LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME} from \"../../components/label-format-selector/constants\";\r\nimport {getViewerIdxFromStructure, getViewerIdxFromType} from \"../../components/data-viewer/constant\";\r\nimport {localizeI18nObj} from \"../../utils/i18n\";\r\nimport {\r\n FETCH_DATASET_ASYNC_HANDLER_ERROR,\r\n FETCH_DATASET_ASYNC_HANDLER_INIT,\r\n FETCH_DATASET_ASYNC_HANDLER_SUCCESS\r\n} from \"../../middlewares/fetch-dataset-async-handler/actions\";\r\nimport {\r\n CRITERIA_FILTER_TYPE_CODES,\r\n CRITERIA_FILTER_TYPE_PERIODS,\r\n CRITERIA_FILTER_TYPE_RANGE,\r\n getCriteriaObjectFromArray,\r\n getFreqFromCriteria,\r\n getMinAndMax\r\n} from \"../../utils/criteria\";\r\nimport _ from \"lodash\";\r\nimport {CHART_TYPE_BAR} from \"../../components/chart\";\r\nimport {TABLE_EMPTY_CHAR_DEFAULT} from \"../../utils/formatters\";\r\nimport {getDatasetStorageKey, isStrCaseInsensitiveEquals} from \"../../utils/other\";\r\nimport {AdditionalDataset, Criteria, DatasetState, getViewTemplateBackupFromState, Indicator, ViewerMode} from \"./constants\";\r\nimport {getChartSettingsFromViewTemplateLayouts, getMapSettingsFromViewTemplateLayouts} from \"../../utils/viewTemplate\";\r\nimport {getActionExtras, getCurrentNodeConfig} from \"../../middlewares/action-decorator/actionDecoratorMiddlewareFactory\";\r\nimport {getDetailLevelFromTree, getDetailLevelTree, getFilteredCatalog} from \"../../utils/catalog\";\r\nimport {isValidIntegerInInclusiveRange} from \"../../utils/validator\";\r\nimport moment from \"moment\";\r\nimport {TEMPORAL_DIM_ORDER_SELECTOR_VALUE_ASC} from \"../../components/temporal-dim-order-selector/constants\";\r\nimport {LocalCategoryProvider} from \"../../model/LocalCategoryProvider\";\r\nimport {IDataset} from \"../../model/IDataset\";\r\nimport {ICategoryProvider} from \"../../model/ICategoryProvider\";\r\n\r\nexport const GENERATING_HTML_TIME_KEY = \"generatingHtml\";\r\nexport const OBSERVATION_COUNT_KEY = \"observationCount\";\r\nexport const SERVER_TIMINGS_KEY = \"serverTimings\";\r\n\r\nconst MAX_ALLOWED_CELLS = 1000000;\r\n\r\nconst defaultIsTableVisible = true;\r\nconst defaultIsMapVisible = true;\r\nconst defaultIsChartVisible = false;\r\n\r\nconst initialState = {\r\n datasetId: null,\r\n nodeCode: null,\r\n categoryPath: null,\r\n viewId: null,\r\n dataset: null,\r\n isFirstFetch: false,\r\n datasetFetchStart: false,\r\n datasetFetchError: false,\r\n viewerMode: null,\r\n viewerModeBackup: null,\r\n isPartialData: false,\r\n isEmptyData: false,\r\n isTooBigData: false,\r\n isPointData: false,\r\n latAttributeId: null,\r\n longAttributeId: null,\r\n srid: null,\r\n isTooLongQuery: false,\r\n tableColCount: null,\r\n mapPointCount: null,\r\n isCriteriaVisible: false,\r\n isCriteriaAlertVisible: false,\r\n isObsCountWarningVisible: false,\r\n dimensions: null,\r\n territoryDimCodelist: null,\r\n territoryDim: null,\r\n timeDim: null,\r\n freqDim: null,\r\n pointDim: null,\r\n measureDim: null,\r\n mode: null,\r\n type: null,\r\n viewerIdx: null,\r\n isTableVisible: defaultIsTableVisible,\r\n isMapVisible: defaultIsMapVisible,\r\n isChartVisible: defaultIsChartVisible,\r\n chartType: CHART_TYPE_BAR,\r\n view: null,\r\n template: null,\r\n hasViewLayout: false,\r\n hasTemplateLayout: false,\r\n hasAnnotationLayout: false,\r\n tableLayout: null,\r\n mapLayout: null,\r\n chartLayout: null,\r\n tableFilterTree: null,\r\n mapFilterTree: null,\r\n chartFilterTree: null,\r\n timePeriodsByFreq: null,\r\n labelFormat: null,\r\n temporalDimOrder: null,\r\n showTrend: false,\r\n showCyclical: false,\r\n criteria: {},\r\n initialCriteria: {},\r\n decimalSeparator: null,\r\n decimalPlaces: null,\r\n tableEmptyChar: TABLE_EMPTY_CHAR_DEFAULT,\r\n chartSettings: {},\r\n mapSettings: {},\r\n enableCriteria: true,\r\n enableLayout: true,\r\n enableVariation: false,\r\n maxAllowedCells: MAX_ALLOWED_CELLS,\r\n codelists: null,\r\n codelistsLength: null,\r\n codelistFetchError: false,\r\n criteriaObsCount: null,\r\n timings: null,\r\n isFetchStructureDisabled: true,\r\n isFetchDatasetDisabled: true,\r\n isDownloadWarningVisible: false,\r\n isUnavailableViewWarningVisible: false,\r\n backup: false,\r\n isViewVisible: false,\r\n isViewErrorVisible: false,\r\n viewErrorMessage: null,\r\n isTemplateVisible: false,\r\n isQueryVisible: false,\r\n structureQuery: null,\r\n dataQuery: null,\r\n isTerritoryVisible: false,\r\n detailLevelTree: null,\r\n detailLevel: null,\r\n territoryTree: null,\r\n territories: null,\r\n lastTerritoryYear: null,\r\n isIndicatorCreateVisible: false,\r\n isIndicatorListVisible: false,\r\n indicators: [],\r\n indicatorPreview: null,\r\n missingIndicators: null,\r\n showArithmeticMean: false,\r\n arithmeticMeans: null,\r\n arithmeticMeanDims: null,\r\n showStandardDeviation: false,\r\n showCoefficientOfVariation: false,\r\n isAdditionalDatasetCreateVisible: false,\r\n isAdditionalDatasetListVisible: false,\r\n additionalDatasets: [],\r\n additionalDatasetCatalog: null,\r\n additionalDataset: null,\r\n datasetCacheInfo: null,\r\n isFullscreen: false,\r\n isTableEnabled: true,\r\n isMapEnabled: true,\r\n isChartEnabled: true,\r\n tableLockedDimensions: null,\r\n graphLockedDimensions: null,\r\n missingFilterValues: null,\r\n geometriesYear: null\r\n};\r\n\r\nconst datasetReducer: Reducer = (\r\n state = initialState,\r\n action\r\n) => {\r\n switch (action.type) {\r\n case DATASET_STATE_BACKUP: {\r\n let backup = false;\r\n const storageKey = getDatasetStorageKey(state);\r\n if (state.dataset !== null) {\r\n sessionStorage.setItem(storageKey, JSON.stringify(getViewTemplateBackupFromState(state)));\r\n backup = true;\r\n }\r\n return {\r\n ...state,\r\n backup: backup,\r\n viewerModeBackup: state.viewerMode\r\n };\r\n }\r\n case DATASET_STATE_RESET: {\r\n const storageKey = getDatasetStorageKey(state);\r\n const storedDatasets = JSON.parse(sessionStorage.getItem(\"datasets\") || \"[]\");\r\n if (storedDatasets.includes(storageKey)) {\r\n sessionStorage.setItem(storageKey, JSON.stringify(getViewTemplateBackupFromState(state)));\r\n }\r\n return {\r\n ...initialState,\r\n backup: state.backup,\r\n viewerMode: state.viewerModeBackup,\r\n viewerModeBackup: null\r\n };\r\n }\r\n case DATASET_VIEWER_MODE_SET: {\r\n return {\r\n ...initialState,\r\n viewerMode: action.viewerMode,\r\n isFetchStructureDisabled: false,\r\n datasetId: state.datasetId,\r\n nodeCode: state.nodeCode,\r\n categoryPath: state.categoryPath,\r\n viewId: state.viewId,\r\n detailLevelTree: state.detailLevelTree,\r\n detailLevel: state.detailLevel\r\n };\r\n }\r\n case DATASET_STRUCTURE_FETCH_ENABLE: {\r\n return {\r\n ...initialState,\r\n isFetchStructureDisabled: false,\r\n datasetId: action.payload.datasetId,\r\n nodeCode: action.payload.nodeCode,\r\n categoryPath: action.payload.categoryPath,\r\n viewId: (action.payload.viewId || null),\r\n detailLevelTree: state.detailLevelTree,\r\n detailLevel: state.detailLevel,\r\n backup: state.backup\r\n };\r\n }\r\n case DATASET_FETCH_ENABLE: {\r\n const tooMuchObs = (\r\n state.criteriaObsCount !== null &&\r\n action.payload.maxObservation !== undefined &&\r\n state.criteriaObsCount > action.payload.maxObservation\r\n );\r\n\r\n return {\r\n ...state,\r\n isFetchDatasetDisabled: tooMuchObs,\r\n criteriaObsCount: tooMuchObs ? state.criteriaObsCount : null,\r\n isObsCountWarningVisible: tooMuchObs\r\n };\r\n }\r\n case DATASET_CRITERIA_SHOW: {\r\n return {\r\n ...state,\r\n isCriteriaVisible: true\r\n };\r\n }\r\n case DATASET_CRITERIA_HIDE: {\r\n return {\r\n ...state,\r\n isCriteriaVisible: false,\r\n criteria: state.initialCriteria,\r\n codelists: null\r\n }\r\n }\r\n case DATASET_TERRITORY_SHOW: {\r\n return {\r\n ...state,\r\n isTerritoryVisible: true,\r\n lastTerritoryYear: null\r\n };\r\n }\r\n case DATASET_TERRITORY_HIDE: {\r\n return {\r\n ...state,\r\n isTerritoryVisible: false,\r\n criteria: state.initialCriteria,\r\n detailLevel: action.detailLevel,\r\n territories: action.territories,\r\n lastTerritoryYear: null\r\n };\r\n }\r\n case DATASET_TERRITORY_DETAIL_LEVEL_SET: {\r\n let detailLevel = state.detailLevel;\r\n let territories = state.territories;\r\n\r\n if (detailLevel !== action.detailLevel) {\r\n detailLevel = action.detailLevel;\r\n territories = null;\r\n }\r\n\r\n return {\r\n ...state,\r\n detailLevel: detailLevel,\r\n territories: territories\r\n };\r\n }\r\n case DATASET_TERRITORY_DETAIL_LEVEL_TREE_SET: {\r\n return {\r\n ...state,\r\n detailLevelTree: action.detailLevelTree\r\n }\r\n }\r\n case DATASET_TERRITORY_TERRITORIES_SET: {\r\n return {\r\n ...state,\r\n territories: action.territories\r\n };\r\n }\r\n case DATASET_TERRITORY_TERRITORIES_SUBMIT: {\r\n return {\r\n ...state,\r\n isTerritoryVisible: false,\r\n initialCriteria: action.payload.criteria,\r\n criteria: action.payload.criteria,\r\n isFetchDatasetDisabled: false\r\n };\r\n }\r\n case DATASET_TERRITORY_LAST_YEAR_FETCH: {\r\n return {\r\n ...state,\r\n lastTerritoryYear: action.payload.lastTerritoryYear\r\n };\r\n }\r\n case DATASET_CRITERIA_ALERT_HIDE: {\r\n return {\r\n ...state,\r\n isCriteriaAlertVisible: false\r\n };\r\n }\r\n case DATASET_CRITERIA_OBS_COUNT_WARNING_HIDE: {\r\n return {\r\n ...state,\r\n isObsCountWarningVisible: false\r\n };\r\n }\r\n case DATASET_STRUCTURE_CRITERIA_SET: {\r\n return {\r\n ...state,\r\n criteria: action.criteria,\r\n criteriaObsCount: null\r\n }\r\n }\r\n case DATASET_STRUCTURE_CRITERIA_RESET: {\r\n return {\r\n ...state,\r\n codelists: null,\r\n codelistsLength: null,\r\n codelistFetchError: false,\r\n criteriaObsCount: null\r\n }\r\n }\r\n case DATASET_VIEWER_SET: {\r\n return {\r\n ...state,\r\n viewerIdx: action.viewerIdx,\r\n isTableVisible: action.viewerIdx === 0,\r\n isMapVisible: action.viewerIdx === 1,\r\n isChartVisible: action.viewerIdx >= 2\r\n };\r\n }\r\n case DATASET_VIEWER_TABLE_VISIBILITY_SET: {\r\n return {\r\n ...state,\r\n isTableVisible: action.isVisible\r\n };\r\n }\r\n case DATASET_VIEWER_MAP_VISIBILITY_SET: {\r\n return {\r\n ...state,\r\n isMapVisible: action.isVisible\r\n };\r\n }\r\n case DATASET_VIEWER_CHART_VISIBILITY_SET: {\r\n return {\r\n ...state,\r\n isChartVisible: action.isVisible\r\n };\r\n }\r\n case DATASET_VIEWER_CHART_TYPE_SET: {\r\n return {\r\n ...state,\r\n chartType: action.chartType\r\n };\r\n }\r\n case DATASET_TABLE_LAYOUT_SUBMIT: {\r\n return {\r\n ...state,\r\n tableLayout: action.layout\r\n };\r\n }\r\n case DATASET_TABLE_FILTERS_TREE_SUBMIT: {\r\n return {\r\n ...state,\r\n tableFilterTree: action.filterTree\r\n };\r\n }\r\n case DATASET_MAP_LAYOUT_SUBMIT: {\r\n return {\r\n ...state,\r\n mapLayout: action.layout\r\n };\r\n }\r\n case DATASET_CHART_LAYOUT_SUBMIT: {\r\n return {\r\n ...state,\r\n chartLayout: action.layout\r\n };\r\n }\r\n case DATASET_CHART_FILTERS_TREE_SUBMIT: {\r\n return {\r\n ...state,\r\n chartFilterTree: action.filterTree\r\n };\r\n }\r\n case DATASET_CHART_LAYOUT_TERRITORY_DIM_VALUES_SET: {\r\n\r\n const territoryDim = state.isPointData\r\n ? state.pointDim\r\n : state.territoryDim;\r\n const primaryDim = state.chartLayout.primaryDim?.[0] || null;\r\n const secondaryDim = state.chartLayout.secondaryDim?.[0] || null;\r\n\r\n let newChartLayout = state.chartLayout;\r\n\r\n if (territoryDim && primaryDim && secondaryDim) {\r\n newChartLayout = {\r\n ...state.chartLayout,\r\n primaryDimValues: primaryDim === territoryDim\r\n ? action.territoryDimValues\r\n : state.dataset.dimension[primaryDim].category.index,\r\n secondaryDimValues: secondaryDim === territoryDim\r\n ? action.territoryDimValues\r\n : state.dataset.dimension[secondaryDim].category.index\r\n };\r\n }\r\n\r\n return {\r\n ...state,\r\n chartLayout: newChartLayout\r\n };\r\n }\r\n case DATASET_LABEL_FORMAT_SET: {\r\n return {\r\n ...state,\r\n labelFormat: action.labelFormat\r\n };\r\n }\r\n case DATASET_VARIATION_SET: {\r\n return {\r\n ...state,\r\n showTrend: action.variation?.showTrend || false,\r\n showCyclical: action.variation?.showCyclical || false\r\n };\r\n }\r\n case DATASET_TEMPORAL_DIM_ORDER_SET: {\r\n return {\r\n ...state,\r\n temporalDimOrder: action.temporalDimOrder\r\n };\r\n }\r\n case DATASET_CHART_SETTINGS_SET: {\r\n return {\r\n ...state,\r\n chartSettings: {\r\n ...state.chartSettings,\r\n ...action.chartSettings\r\n }\r\n };\r\n }\r\n case DATASET_MAP_SETTINGS_SET: {\r\n return {\r\n ...state,\r\n mapSettings: {\r\n ...state.mapSettings,\r\n ...action.mapSettings\r\n }\r\n };\r\n }\r\n case DATASET_DOWNLOAD_WARNING_HIDE: {\r\n return {\r\n ...state,\r\n isDownloadWarningVisible: false\r\n };\r\n }\r\n case DATASET_UNAVAILABLE_VIEW_WARNING_HIDE: {\r\n return {\r\n ...state,\r\n isUnavailableViewWarningVisible: false\r\n };\r\n }\r\n case DATASET_HTML_GENERATING_TIME_SET: {\r\n return {\r\n ...state,\r\n timings: {\r\n ...state.timings,\r\n [GENERATING_HTML_TIME_KEY]: action.time\r\n }\r\n };\r\n }\r\n case FETCH_DATASET_ASYNC_HANDLER_INIT: {\r\n return {\r\n ...state,\r\n isFetchDatasetDisabled: true,\r\n datasetFetchStart: true,\r\n datasetFetchError: false\r\n };\r\n }\r\n case FETCH_DATASET_ASYNC_HANDLER_SUCCESS: {\r\n if (action.payload.worker) {\r\n action.payload.worker.terminate();\r\n }\r\n\r\n const isResponseValid = !action.payload.isResponseNotValid;\r\n\r\n const tableLayout = isResponseValid ? action.payload.tableLayout : state.tableLayout;\r\n const mapLayout = isResponseValid ? action.payload.mapLayout : state.mapLayout;\r\n const chartLayout = isResponseValid ? action.payload.chartLayout : state.chartLayout;\r\n\r\n let missingIndicators = null;\r\n if (isResponseValid && state.indicators.length > 0) {\r\n const jsonStatIndicators = Object.values(action.payload.response?.extension?.marginalvalues || {})\r\n .map((value: any) => value.label || null)\r\n .filter((label: string) => label !== null);\r\n missingIndicators = state.indicators\r\n .map((indicator: Indicator) => localizeI18nObj(indicator.title, getActionExtras(action).language, getActionExtras(action).languages))\r\n .filter((label: string) => !jsonStatIndicators.includes(label))\r\n .map((label: string) => `\"${label}\"`);\r\n }\r\n\r\n let removeLastAD = false;\r\n if (!isResponseValid && state.isAdditionalDatasetCreateVisible) {\r\n removeLastAD = true;\r\n }\r\n\r\n let removeLastInd = false;\r\n if (!isResponseValid && state.isIndicatorCreateVisible) {\r\n removeLastInd = true;\r\n }\r\n\r\n return {\r\n ...state,\r\n dataset: isResponseValid ? action.payload.response : state.dataset,\r\n isFirstFetch: false,\r\n datasetFetchStart: false,\r\n datasetFetchError: false,\r\n\r\n isTooBigData: action.payload.isTooBigData,\r\n isEmptyData: action.payload.isEmptyData,\r\n isPartialData: action.payload.isPartialData,\r\n tableColCount: action.payload.tableColCount,\r\n mapPointCount: action.payload.mapPointCount,\r\n\r\n isPointData: action.payload.isPointData,\r\n pointDim: action.payload.pointDim,\r\n\r\n enableCriteria: state.viewerMode === ViewerMode.MultiViewer ? true : state.enableCriteria,\r\n isCriteriaVisible: state.isCriteriaVisible && !isResponseValid,\r\n isCriteriaAlertVisible: !isResponseValid,\r\n\r\n isTerritoryVisible: state.isTerritoryVisible && !isResponseValid,\r\n\r\n tableLayout: tableLayout,\r\n mapLayout: mapLayout,\r\n chartLayout: chartLayout,\r\n\r\n isTableVisible: tableLayout\r\n ? state.isTableVisible !== null\r\n ? state.isTableVisible\r\n : defaultIsTableVisible\r\n : null,\r\n isMapVisible: mapLayout\r\n ? state.isMapVisible !== null\r\n ? state.isMapVisible\r\n : defaultIsMapVisible\r\n : null,\r\n isChartVisible: chartLayout\r\n ? state.isChartVisible !== null\r\n ? state.isChartVisible\r\n : defaultIsChartVisible\r\n : null,\r\n\r\n tableFilterTree: isResponseValid ? action.payload.tableFilterTree : state.tableFilterTree,\r\n mapFilterTree: isResponseValid ? action.payload.mapFilterTree : state.mapFilterTree,\r\n chartFilterTree: isResponseValid ? action.payload.chartFilterTree : state.chartFilterTree,\r\n timePeriodsByFreq: isResponseValid ? action.payload.timePeriodsByFreq : state.timePeriodsByFreq,\r\n\r\n initialCriteria: isResponseValid ? state.criteria : state.initialCriteria,\r\n\r\n codelists: isResponseValid ? null : state.codelists,\r\n\r\n timings: {\r\n [OBSERVATION_COUNT_KEY]: action.payload.response?.value ? Object.keys(action.payload.response.value).length : null,\r\n [SERVER_TIMINGS_KEY]: action.payload.responseHeaders.backendtimers\r\n ? JSON.parse(action.payload.responseHeaders.backendtimers)\r\n : null\r\n },\r\n\r\n structureQuery: null,\r\n dataQuery: null,\r\n\r\n isIndicatorCreateVisible: isResponseValid ? false : state.isIndicatorCreateVisible,\r\n indicators: removeLastInd\r\n ? state.indicators.slice(0, -1)\r\n : state.indicators,\r\n missingIndicators: (missingIndicators && missingIndicators.length > 0) ? missingIndicators : null,\r\n\r\n isAdditionalDatasetCreateVisible: isResponseValid ? false : state.isAdditionalDatasetCreateVisible,\r\n additionalDatasets: removeLastAD\r\n ? state.additionalDatasets.slice(0, -1)\r\n : state.additionalDatasets,\r\n additionalDatasetCatalog: isResponseValid ? null : state.additionalDatasetCatalog,\r\n additionalDataset: isResponseValid ? null : state.additionalDataset\r\n };\r\n }\r\n case FETCH_DATASET_ASYNC_HANDLER_ERROR: {\r\n const isPayloadTooLarge = action.payload.statusCode === 413;\r\n const isTooLongQuery = action.payload.statusCode === 414;\r\n\r\n return {\r\n ...state,\r\n dataset: null,\r\n datasetFetchStart: false,\r\n datasetFetchError: true,\r\n isPartialData: false,\r\n isEmptyData: false,\r\n isTooBigData: isPayloadTooLarge,\r\n isTooLongQuery: isTooLongQuery,\r\n isCriteriaAlertVisible: (isPayloadTooLarge || isTooLongQuery)\r\n };\r\n }\r\n case DATASET_VIEW_TEMPLATE_SHOW: {\r\n return {\r\n ...state,\r\n isViewVisible: action.isView ? true : state.isViewVisible,\r\n isTemplateVisible: !action.isView ? true : state.isTemplateVisible\r\n };\r\n }\r\n case DATASET_VIEW_TEMPLATE_HIDE: {\r\n return {\r\n ...state,\r\n isViewVisible: action.isView ? false : state.isViewVisible,\r\n isTemplateVisible: !action.isView ? false : state.isTemplateVisible\r\n };\r\n }\r\n case DATASET_VIEW_ERROR_HIDE: {\r\n return {\r\n ...state,\r\n isViewErrorVisible: false,\r\n viewErrorMessage: null\r\n };\r\n }\r\n case DATASET_SDMX_QUERY_SHOW: {\r\n return {\r\n ...state,\r\n isQueryVisible: true\r\n };\r\n }\r\n case DATASET_SDMX_QUERY_HIDE: {\r\n return {\r\n ...state,\r\n isQueryVisible: false\r\n };\r\n }\r\n case DATASET_INDICATOR_CREATE_VISIBILITY_SET:\r\n return {\r\n ...state,\r\n isIndicatorCreateVisible: action.isVisible\r\n };\r\n case DATASET_INDICATOR_LIST_VISIBILITY_SET:\r\n return {\r\n ...state,\r\n isIndicatorListVisible: action.isVisible\r\n };\r\n case DATASET_INDICATOR_PREVIEW_RESET:\r\n return {\r\n ...state,\r\n indicatorPreview: null\r\n };\r\n case DATASET_INDICATOR_PUBLISH:\r\n return {\r\n ...state,\r\n indicators: [...state.indicators, action.indicator],\r\n isFetchDatasetDisabled: false\r\n };\r\n case DATASET_INDICATOR_DELETE:\r\n const newIndicators = [...state.indicators];\r\n newIndicators.splice(action.indicatorIdx, 1);\r\n\r\n return {\r\n ...state,\r\n indicators: newIndicators,\r\n isFetchDatasetDisabled: false\r\n };\r\n case DATASET_INDICATOR_WARNING_HIDE:\r\n return {\r\n ...state,\r\n missingIndicators: null\r\n };\r\n case DATASET_INDICATOR_ARITHMETIC_MEAN_VISIBILITY_SET:\r\n return {\r\n ...state,\r\n showArithmeticMean: action.visible\r\n };\r\n case DATASET_INDICATOR_ARITHMETIC_MEAN_VALUES_SET:\r\n return {\r\n ...state,\r\n arithmeticMeans: action.arithmeticMeans,\r\n arithmeticMeanDims: action.arithmeticMeanDims\r\n };\r\n case DATASET_INDICATOR_STANDARD_DEVIATION_VISIBILITY_SET:\r\n return {\r\n ...state,\r\n showStandardDeviation: action.visible\r\n };\r\n case DATASET_INDICATOR_COEFFICIENT_OF_VARIATION_VISIBILITY_SET:\r\n return {\r\n ...state,\r\n showCoefficientOfVariation: action.visible\r\n };\r\n case DATASET_ADDITIONAL_DATASET_CREATE_VISIBILITY_SET:\r\n return {\r\n ...state,\r\n isAdditionalDatasetCreateVisible: action.isVisible,\r\n additionalDatasetCatalog: null,\r\n additionalDataset: null\r\n };\r\n case DATASET_ADDITIONAL_DATASET_LIST_VISIBILITY_SET:\r\n return {\r\n ...state,\r\n isAdditionalDatasetListVisible: action.isVisible\r\n };\r\n case DATASET_ADDITIONAL_DATASET_CHANGE: {\r\n const isDatasetChanged = (\r\n (action.additionalDataset?.nodeCode && state.additionalDataset?.nodeCode !== action.additionalDataset.nodeCode) ||\r\n (action.additionalDataset?.datasetId && state.additionalDataset?.datasetId !== action.additionalDataset.datasetId)\r\n );\r\n\r\n return {\r\n ...state,\r\n additionalDataset: isDatasetChanged\r\n ? {\r\n ...action.additionalDataset\r\n }\r\n : {\r\n ...state.additionalDataset,\r\n ...action.additionalDataset\r\n }\r\n };\r\n }\r\n case DATASET_ADDITIONAL_DATASET_SUBMIT:\r\n return {\r\n ...state,\r\n additionalDatasets: state.additionalDataset !== null\r\n ? [...state.additionalDatasets, state.additionalDataset]\r\n : state.additionalDatasets,\r\n isFetchDatasetDisabled: false\r\n };\r\n case DATASET_ADDITIONAL_DATASET_DELETE:\r\n const newAdditionalDatasets = [...state.additionalDatasets];\r\n newAdditionalDatasets.splice(action.datasetIdx, 1);\r\n\r\n return {\r\n ...state,\r\n additionalDatasets: newAdditionalDatasets,\r\n isFetchDatasetDisabled: false\r\n };\r\n case DATASET_ADDITIONAL_DATASET_CRITERIA_SET: {\r\n const newAdditionalDatasets = [...state.additionalDatasets];\r\n newAdditionalDatasets[action.datasetIdx].criteria = action.criteria;\r\n\r\n return {\r\n ...state,\r\n additionalDatasets: newAdditionalDatasets\r\n };\r\n }\r\n case DATASET_STRUCTURE_CODELIST_FULL_HIDE: {\r\n return {\r\n ...state,\r\n missingFilterValues: null\r\n };\r\n }\r\n case DATASET_SET_FULLSCREEN: {\r\n return {\r\n ...state,\r\n isFullscreen: action.isFullscreen\r\n };\r\n }\r\n case REQUEST_INIT: {\r\n switch (action.payload.label) {\r\n case DATASET_STRUCTURE_FETCH: {\r\n return {\r\n ...state,\r\n isFetchStructureDisabled: true,\r\n isFirstFetch: true\r\n };\r\n }\r\n case DATASET_STRUCTURE_CODELIST_FETCH: {\r\n return {\r\n ...state,\r\n criteriaObsCount: null,\r\n codelistFetchError: false\r\n };\r\n }\r\n case DATASET_TERRITORY_TERRITORIES_FETCH: {\r\n return {\r\n ...state,\r\n territoryTree: null\r\n };\r\n }\r\n case DATASET_ADDITIONAL_DATASET_CATALOG_FETCH: {\r\n return {\r\n ...state,\r\n additionalDatasetCatalog: null\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n }\r\n case REQUEST_SUCCESS: {\r\n switch (action.payload.label) {\r\n case DATASET_STRUCTURE_FETCH: {\r\n const {\r\n language,\r\n languages\r\n } = getActionExtras(action);\r\n\r\n const criteriaView = action.payload.response.criteriaView;\r\n\r\n const VIEW_KEY = \"view\";\r\n const TEMPLATE_KEY = \"template\";\r\n\r\n const dimensions = (action.payload.response?.criteria || []);\r\n\r\n const latAttributeId = action.payload.response?.pointDataInfo?.latitudeField || null;\r\n const longAttributeId = action.payload.response?.pointDataInfo?.longitudeField || null;\r\n const srid = action.payload.response?.pointDataInfo?.srid || null;\r\n\r\n const isPointData = latAttributeId !== null && longAttributeId !== null && srid !== null;\r\n\r\n const territoryDim = action.payload.response?.territorialDimension || null;\r\n const timeDim = action.payload.response?.timeDimension || null;\r\n const freqDim = action.payload.response?.freqDimension || null;\r\n const measureDim = action.payload.response?.measureDimension || null;\r\n\r\n const territoryDimCodelist = territoryDim\r\n ? dimensions.find((dim: any) => dim.id === territoryDim)?.extra?.DataStructureRef || null\r\n : null;\r\n\r\n const isMultiViewerCompatible = timeDim !== null && ((territoryDim !== null && (state.detailLevelTree || []).length > 0) || isPointData);\r\n\r\n let viewerMode = state.viewerMode\r\n ? state.viewerMode\r\n : action.payload.extra.isMultiViewerTheme\r\n ? ViewerMode.MultiViewer\r\n : ViewerMode.SingleViewer;\r\n if (viewerMode === ViewerMode.MultiViewer && !isMultiViewerCompatible) {\r\n viewerMode = ViewerMode.Error; // = ViewerMode.SingleViewer // data viewer temporarily disabled in case of data incompatibility with MultiViewer mode\r\n }\r\n\r\n const viewViewerMode = action.payload.response[VIEW_KEY]?.mode || ViewerMode.SingleViewer;\r\n const hasView = !!action.payload.response[VIEW_KEY] && viewViewerMode === viewerMode;\r\n const view = hasView\r\n ? {\r\n ...action.payload.response[VIEW_KEY],\r\n layouts: JSON.parse(action.payload.response[VIEW_KEY].layouts)\r\n }\r\n : null;\r\n\r\n const templateViewerMode = action.payload.response[TEMPLATE_KEY]?.mode || ViewerMode.SingleViewer;\r\n const hasTemplate = !!action.payload.response[TEMPLATE_KEY] && templateViewerMode === viewerMode;\r\n const template = hasTemplate\r\n ? {\r\n ...action.payload.response[TEMPLATE_KEY],\r\n layouts: JSON.parse(action.payload.response[TEMPLATE_KEY].layouts)\r\n }\r\n : null;\r\n\r\n const storageKey = getDatasetStorageKey(state);\r\n const storageItem = sessionStorage.getItem(storageKey);\r\n const hasSessionBackup = storageItem !== null && storageItem !== \"\";\r\n const sessionBackup = hasSessionBackup\r\n ? {\r\n ...JSON.parse(storageItem || \"{}\"),\r\n layouts: JSON.parse(JSON.parse(storageItem || \"{}\").layouts)\r\n }\r\n : null;\r\n\r\n let viewTemplate = sessionBackup || view || template || null;\r\n let viewTemplateLayouts = null;\r\n\r\n if (viewTemplate) {\r\n viewTemplate = {\r\n ...viewTemplate,\r\n decimalSeparator: hasTemplate ? template.decimalSeparator : null,\r\n decimalNumber: hasTemplate ? template.decimalNumber : null,\r\n enableCriteria: hasTemplate ? template.enableCriteria : true,\r\n enableLayout: hasTemplate ? template.enableLayout : true,\r\n enableVariation: hasTemplate ? template.enableVariation : false\r\n };\r\n viewTemplateLayouts = {\r\n ...template?.layouts || {},\r\n ...view?.layouts || {},\r\n ...sessionBackup?.layouts || {}\r\n };\r\n }\r\n\r\n let structureCriteria = (action.payload.response.filters || []).length > 0\r\n ? action.payload.response.filters\r\n : null;\r\n\r\n let criteria = {};\r\n\r\n let isCriteriaVisible = false;\r\n let isTerritoryVisible = false;\r\n\r\n let tableLayout = (viewTemplateLayouts && viewTemplateLayouts?.tableLayout)\r\n ? viewTemplateLayouts.tableLayout\r\n : null;\r\n let mapLayout = ((territoryDim || isPointData) && viewTemplateLayouts && viewTemplateLayouts?.mapLayout)\r\n ? viewTemplateLayouts.mapLayout\r\n : null;\r\n let chartLayout = (viewTemplateLayouts && viewTemplateLayouts?.chartLayout)\r\n ? viewTemplateLayouts.chartLayout\r\n : null;\r\n\r\n let detailLevel = state.detailLevel;\r\n let territories = null;\r\n if (viewTemplateLayouts) {\r\n detailLevel = (viewTemplateLayouts.detailLevel !== null && viewTemplateLayouts.detailLevel !== undefined)\r\n ? viewTemplateLayouts.detailLevel\r\n : (viewTemplateLayouts.mapDetailLevel !== null && viewTemplateLayouts.mapDetailLevel !== undefined)\r\n ? viewTemplateLayouts.mapDetailLevel\r\n : null;\r\n territories = viewTemplateLayouts.territories;\r\n }\r\n\r\n let enableCriteria = (viewTemplate?.enableCriteria !== false && dimensions.length > 0);\r\n\r\n let isFetchDatasetDisabled = false;\r\n\r\n const disabledViewers = (action.payload.response?.disabledViewers || []).map((v: string) => v.toLowerCase());\r\n\r\n let isTableEnabled = !disabledViewers.includes(\"table\");\r\n let isMapEnabled = !disabledViewers.includes(\"map\");\r\n let isChartEnabled = !disabledViewers.includes(\"graph\");\r\n\r\n let viewerIdx = null;\r\n\r\n let isTableVisible = null;\r\n let isMapVisible = null;\r\n let isChartVisible = null;\r\n\r\n let chartType = null;\r\n\r\n let tableLockedDimensions = (hasTemplate && template.layouts?.lockTableDimensions && (template.layouts?.tableLockedDimensions || []).length > 0)\r\n ? template.layouts?.tableLockedDimensions\r\n : action.payload.response?.tableLockedDimensions || [];\r\n\r\n let graphLockedDimensions = (hasTemplate && template.layouts?.lockGraphDimensions && (template.layouts?.graphLockedDimensions || []).length > 0)\r\n ? template.layouts?.graphLockedDimensions\r\n : action.payload.response?.graphLockedDimensions || [];\r\n\r\n switch (viewerMode) {\r\n case ViewerMode.SingleViewer: {\r\n\r\n if (viewTemplate) {\r\n viewerIdx = getViewerIdxFromType(viewTemplate.defaultView);\r\n if (viewerIdx !== null && viewerIdx === 0) {\r\n isTableEnabled = true;\r\n } else if (viewerIdx !== null && viewerIdx === 1) {\r\n isMapEnabled = true;\r\n } else if (viewerIdx !== null && viewerIdx >= 2) {\r\n isChartEnabled = true;\r\n }\r\n } else if (action.payload.response.defaultView) {\r\n viewerIdx = getViewerIdxFromStructure(action.payload.response.defaultView);\r\n if (viewerIdx !== null && viewerIdx === 0) {\r\n isTableEnabled = true;\r\n } else if (viewerIdx !== null && viewerIdx === 1) {\r\n isMapEnabled = true;\r\n } else if (viewerIdx !== null && viewerIdx >= 2) {\r\n isChartEnabled = true;\r\n }\r\n } else if (isTableEnabled) {\r\n viewerIdx = 0;\r\n } else if (isMapEnabled) {\r\n viewerIdx = 1;\r\n } else if (isChartEnabled) {\r\n viewerIdx = 2;\r\n }\r\n\r\n isTableVisible = viewerIdx !== null && viewerIdx === 0;\r\n isMapVisible = viewerIdx !== null && viewerIdx === 1;\r\n isChartVisible = viewerIdx !== null && viewerIdx >= 2;\r\n\r\n const criteriaArr = viewTemplate?.criteria || structureCriteria;\r\n criteria = getCriteriaObjectFromArray(criteriaArr);\r\n\r\n isCriteriaVisible = !criteriaArr;\r\n isTerritoryVisible = false;\r\n\r\n if (!tableLayout && action.payload.response?.layout) {\r\n tableLayout = action.payload.response.layout;\r\n }\r\n if (!chartLayout && action.payload.response?.layoutChart) {\r\n chartLayout = {\r\n ...action.payload.response.layoutChart,\r\n filters: undefined\r\n };\r\n }\r\n\r\n break;\r\n }\r\n case ViewerMode.MultiViewer: {\r\n\r\n criteria = getCriteriaObjectFromArray(viewTemplate?.criteria);\r\n\r\n isCriteriaVisible = false;\r\n isTerritoryVisible = territoryDim && !viewTemplate;\r\n\r\n if (isTerritoryVisible) {\r\n enableCriteria = false;\r\n }\r\n\r\n isTableVisible = (viewTemplateLayouts && viewTemplateLayouts?.isTableVisible !== null && viewTemplateLayouts?.isTableVisible !== undefined)\r\n ? viewTemplateLayouts.isTableVisible\r\n : state.isTableVisible;\r\n isMapVisible = (viewTemplateLayouts && viewTemplateLayouts?.isMapVisible !== null && viewTemplateLayouts?.isMapVisible !== undefined)\r\n ? viewTemplateLayouts.isMapVisible\r\n : state.isMapVisible;\r\n isChartVisible = (viewTemplateLayouts && viewTemplateLayouts?.isChartVisible !== null && viewTemplateLayouts?.isChartVisible !== undefined)\r\n ? viewTemplateLayouts.isChartVisible\r\n : state.isChartVisible;\r\n\r\n chartType = (viewTemplateLayouts && viewTemplateLayouts?.chartType !== null && viewTemplateLayouts?.chartType !== undefined)\r\n ? viewTemplateLayouts.chartType\r\n : state.chartType;\r\n\r\n break;\r\n }\r\n default: {\r\n\r\n isCriteriaVisible = false;\r\n isTerritoryVisible = false;\r\n isFetchDatasetDisabled = true;\r\n break;\r\n }\r\n }\r\n const mapSettings = {\r\n ...getActionExtras(action).mapDefaultSettings,\r\n ...getMapSettingsFromViewTemplateLayouts(viewTemplateLayouts)\r\n };\r\n\r\n const chartSettings = {\r\n ...getActionExtras(action).chartDefaultSettings,\r\n ...getChartSettingsFromViewTemplateLayouts(viewTemplateLayouts)\r\n };\r\n\r\n if (hasSessionBackup && state.backup) {\r\n sessionStorage.removeItem(getDatasetStorageKey(state));\r\n }\r\n\r\n return {\r\n ...state,\r\n backup: false,\r\n hasViewLayout: hasView,\r\n hasTemplateLayout: hasTemplate,\r\n hasAnnotationLayout: !!action.payload.response.layout,\r\n viewerMode: viewerMode,\r\n isPointData: isPointData,\r\n latAttributeId: latAttributeId,\r\n longAttributeId: longAttributeId,\r\n srid: srid,\r\n isTableVisible: isTableVisible,\r\n isMapVisible: isMapVisible,\r\n isChartVisible: isChartVisible,\r\n chartType: chartType,\r\n view: view,\r\n template: template,\r\n dimensions: dimensions,\r\n territoryDimCodelist: territoryDimCodelist,\r\n territoryDim: territoryDim,\r\n timeDim: timeDim,\r\n freqDim: freqDim,\r\n measureDim: measureDim,\r\n detailLevel: detailLevel,\r\n territories: territories,\r\n mode: (criteriaView === ALL_FULL || criteriaView === ALL_PARTIAL)\r\n ? CRITERIA_SELECTION_MODE_ALL\r\n : CRITERIA_SELECTION_MODE_STEP_BY_STEP,\r\n type: (criteriaView === ALL_FULL || criteriaView === STEP_BY_STEP_FULL)\r\n ? CRITERIA_SELECTION_TYPE_FULL\r\n : (criteriaView === ALL_PARTIAL || criteriaView === STEP_BY_STEP_PARTIAL)\r\n ? CRITERIA_SELECTION_TYPE_PARTIAL\r\n : CRITERIA_SELECTION_TYPE_DYNAMIC,\r\n codelistsLength: state.codelistsLength ? state.codelistsLength : action.payload.response.criteria.map(() => null),\r\n isCriteriaVisible: isCriteriaVisible,\r\n isTerritoryVisible: isTerritoryVisible,\r\n viewerIdx: viewerIdx,\r\n isUnavailableViewWarningVisible: (!!action.payload.extra?.viewId && !action.payload.response?.[VIEW_KEY]),\r\n tableLayout: tableLayout,\r\n mapLayout: mapLayout,\r\n chartLayout: chartLayout,\r\n labelFormat: (viewTemplateLayouts?.labelFormat || LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME),\r\n temporalDimOrder: (viewTemplateLayouts?.temporalDimOrder || action.payload.response.temporalDimOrder || TEMPORAL_DIM_ORDER_SELECTOR_VALUE_ASC),\r\n showTrend: (viewTemplateLayouts?.showTrend || false),\r\n showCyclical: (viewTemplateLayouts?.showCyclical || false),\r\n criteria: criteria,\r\n initialCriteria: criteria,\r\n decimalSeparator: (Object.keys(viewTemplate?.decimalSeparator || {}).length > 0)\r\n ? localizeI18nObj(viewTemplate.decimalSeparator, language, languages)\r\n : action.payload.response.decimalSeparator,\r\n decimalPlaces: (viewTemplate?.decimalNumber !== null && viewTemplate?.decimalNumber !== undefined && viewTemplate?.decimalNumber !== -1)\r\n ? viewTemplate?.decimalNumber\r\n : action.payload.response.decimalPlaces,\r\n tableEmptyChar: (viewTemplateLayouts?.tableEmptyChar !== null && viewTemplateLayouts?.tableEmptyChar !== undefined)\r\n ? viewTemplateLayouts?.tableEmptyChar\r\n : action.payload.response.emptyCellPlaceHolder,\r\n chartSettings: chartSettings,\r\n mapSettings: mapSettings,\r\n enableCriteria: enableCriteria,\r\n enableLayout: viewTemplate?.enableLayout !== false,\r\n enableVariation: viewTemplate?.enableVariation === true,\r\n isFetchDatasetDisabled: isFetchDatasetDisabled || isCriteriaVisible || isTerritoryVisible,\r\n maxAllowedCells: (action.payload.response.maxTableCells || MAX_ALLOWED_CELLS),\r\n indicators: (viewTemplate?.indicatorsDefinition !== null && viewTemplate?.indicatorsDefinition !== undefined)\r\n ? JSON.parse(viewTemplate.indicatorsDefinition)\r\n : [],\r\n showArithmeticMean: !!viewTemplateLayouts?.showArithmeticMean,\r\n showStandardDeviation: !!viewTemplateLayouts?.showStandardDeviation,\r\n showCoefficientOfVariation: !!viewTemplateLayouts?.showCoefficientOfVariation,\r\n additionalDatasets: (viewTemplate?.additionalDatasets !== null && viewTemplate?.additionalDatasets !== undefined)\r\n ? JSON.parse(viewTemplate.additionalDatasets)\r\n : [],\r\n isTableEnabled: isTableEnabled,\r\n isMapEnabled: isMapEnabled,\r\n isChartEnabled: isChartEnabled,\r\n tableLockedDimensions: tableLockedDimensions,\r\n graphLockedDimensions: graphLockedDimensions,\r\n geometriesYear: action.payload.response?.geometriesYear || null\r\n };\r\n }\r\n case DATASET_STRUCTURE_CODELIST_FETCH: {\r\n\r\n const isMainDataset =\r\n isStrCaseInsensitiveEquals(state.nodeCode, action.payload.extra.nodeCode) &&\r\n isStrCaseInsensitiveEquals(state.datasetId, action.payload.extra.datasetId);\r\n\r\n const isCreatingAdditionalDataset =\r\n isStrCaseInsensitiveEquals(state.additionalDataset?.nodeCode, action.payload.extra.nodeCode) &&\r\n isStrCaseInsensitiveEquals(state.additionalDataset?.datasetId, action.payload.extra.datasetId);\r\n\r\n const additionalDatasetToUpdateIdx = state.additionalDatasets.findIndex((ad: AdditionalDataset) =>\r\n isStrCaseInsensitiveEquals(ad.nodeCode, action.payload.extra.nodeCode) &&\r\n isStrCaseInsensitiveEquals(ad.datasetId, action.payload.extra.datasetId)\r\n );\r\n\r\n let dimensions: any[] | null;\r\n let timeDim: string | null;\r\n let freqDim: string | null;\r\n let codelistsLength: (number | null)[] | null;\r\n let criteria: {[key: string]: Criteria};\r\n\r\n if (isMainDataset) {\r\n dimensions = state.dimensions;\r\n timeDim = state.timeDim;\r\n freqDim = state.freqDim;\r\n codelistsLength = state.codelistsLength;\r\n criteria = state.criteria;\r\n\r\n } else if (isCreatingAdditionalDataset && state.additionalDataset) {\r\n dimensions = state.additionalDataset.dimensions;\r\n timeDim = state.additionalDataset.timeDim;\r\n freqDim = state.additionalDataset.freqDim;\r\n codelistsLength = state.additionalDataset.codelistsLength;\r\n criteria = state.additionalDataset.criteria;\r\n\r\n } else if (additionalDatasetToUpdateIdx !== -1 && state.additionalDatasets[additionalDatasetToUpdateIdx]) {\r\n dimensions = state.additionalDatasets[additionalDatasetToUpdateIdx].dimensions;\r\n timeDim = state.additionalDatasets[additionalDatasetToUpdateIdx].timeDim;\r\n freqDim = state.additionalDatasets[additionalDatasetToUpdateIdx].freqDim;\r\n codelistsLength = state.additionalDatasets[additionalDatasetToUpdateIdx].codelistsLength;\r\n criteria = state.additionalDatasets[additionalDatasetToUpdateIdx].criteria;\r\n\r\n } else {\r\n return state;\r\n }\r\n\r\n const newCodelists: {[key: string]: any[]} = {};\r\n const newCodelistLength = codelistsLength ? [...codelistsLength] : (dimensions || []).map(() => null);\r\n const newCriteria: {[key: string]: Criteria} = _.cloneDeep(criteria);\r\n\r\n (dimensions || []).forEach((dimension, idx) => {\r\n\r\n const codelist = action.payload.response.criteria.find(({id}: any) => id === dimension.id);\r\n\r\n if (codelist) {\r\n\r\n const values = (codelist.values || []).map((code: any) => ({\r\n ...code,\r\n label: `[${code.id}] ${code.name}`\r\n }));\r\n\r\n newCodelists[dimension.id] = getTreeFromArray(values, \"parentId\", \"children\");\r\n\r\n if (!timeDim || dimension.id !== timeDim) {\r\n newCodelistLength[idx] = values.length;\r\n\r\n if (values.length === 1) {\r\n newCriteria[dimension.id] = {\r\n id: dimension.id,\r\n type: CRITERIA_FILTER_TYPE_CODES,\r\n filterValues: [values[0].id],\r\n period: undefined,\r\n from: undefined,\r\n to: undefined\r\n };\r\n }\r\n\r\n } else if (!newCriteria[timeDim]) {\r\n if (\r\n freqDim &&\r\n isValidIntegerInInclusiveRange(action.payload.extra.defaultLastNPeriods, 1) &&\r\n state.type === CRITERIA_SELECTION_TYPE_PARTIAL\r\n ) {\r\n newCriteria[timeDim] = {\r\n id: timeDim,\r\n type: CRITERIA_FILTER_TYPE_PERIODS,\r\n period: action.payload.extra.defaultLastNPeriods,\r\n filterValues: undefined,\r\n from: undefined,\r\n to: undefined\r\n };\r\n\r\n } else {\r\n const {min, max} = getMinAndMax(values, action.payload.extra.freq, getCurrentNodeConfig(action));\r\n\r\n newCriteria[timeDim] = {\r\n id: timeDim,\r\n type: CRITERIA_FILTER_TYPE_RANGE,\r\n from: min,\r\n to: max,\r\n filterValues: undefined,\r\n period: undefined\r\n };\r\n }\r\n }\r\n }\r\n });\r\n\r\n const newAdditionalDataset: AdditionalDataset | null = _.cloneDeep(state.additionalDataset);\r\n if (isCreatingAdditionalDataset && newAdditionalDataset) {\r\n newAdditionalDataset.criteria = newCriteria;\r\n newAdditionalDataset.codelists = newCodelists;\r\n newAdditionalDataset.codelistsLength = newCodelistLength;\r\n }\r\n\r\n const newAdditionalDatasets: AdditionalDataset[] = _.cloneDeep(state.additionalDatasets);\r\n if (additionalDatasetToUpdateIdx !== -1 && newAdditionalDatasets[additionalDatasetToUpdateIdx]) {\r\n newAdditionalDatasets[additionalDatasetToUpdateIdx].criteria = newCriteria;\r\n newAdditionalDatasets[additionalDatasetToUpdateIdx].codelists = newCodelists;\r\n newAdditionalDatasets[additionalDatasetToUpdateIdx].codelistsLength = newCodelistLength;\r\n }\r\n\r\n return {\r\n ...state,\r\n criteria: isMainDataset ? newCriteria : state.criteria,\r\n codelists: isMainDataset ? newCodelists : state.codelists,\r\n codelistsLength: isMainDataset ? newCodelistLength : state.codelistsLength,\r\n additionalDataset: newAdditionalDataset,\r\n additionalDatasets: newAdditionalDatasets\r\n };\r\n }\r\n case DATASET_CACHE_INFO_FETCH: {\r\n return {\r\n ...state,\r\n datasetCacheInfo: action.payload.response\r\n };\r\n }\r\n case DATASET_CACHE_INFO_TTL_UPDATE: {\r\n const datasetCacheInfo = state.datasetCacheInfo;\r\n datasetCacheInfo.ttl = action.payload.response.ttl;\r\n return {\r\n ...state,\r\n datasetCacheInfo: datasetCacheInfo\r\n };\r\n }\r\n case DATASET_DELETE_TEMPLATE: {\r\n return {\r\n ...initialState,\r\n isFetchStructureDisabled: false,\r\n datasetId: state.datasetId,\r\n nodeCode: state.nodeCode,\r\n categoryPath: state.categoryPath,\r\n viewId: state.viewId,\r\n detailLevelTree: state.detailLevelTree,\r\n detailLevel: state.detailLevel\r\n };\r\n }\r\n case DATASET_TERRITORY_DETAIL_LEVELS_FETCH: {\r\n const {t} = getActionExtras(action);\r\n const detailLevelTree = getDetailLevelTree((action.payload.response?.catalogCategoryLayers || []), t);\r\n\r\n return {\r\n ...state,\r\n detailLevelTree: detailLevelTree,\r\n detailLevel: getDetailLevelFromTree(detailLevelTree, action.payload.extra.detailLevel)\r\n };\r\n }\r\n case DATASET_TERRITORY_TERRITORIES_FETCH: {\r\n\r\n const territoryCodelist = action.payload.response.criteria[0] || {};\r\n const territoryCodelistValue = territoryCodelist.values ? territoryCodelist.values : [];\r\n\r\n const territoryTree = getTreeFromArray((territoryCodelistValue || []), \"parentId\", \"children\");\r\n const territories = (state.territories || []).length === 0\r\n ? getNodes(territoryTree, \"children\", () => true).map(({id}) => id)\r\n : state.territories;\r\n\r\n return {\r\n ...state,\r\n territoryTree: territoryTree,\r\n territories: territories\r\n };\r\n }\r\n case DATASET_TERRITORY_LAST_YEAR_FETCH: {\r\n const dimensionCodelist = action.payload.response.criteria[0] || {};\r\n const freq = getFreqFromCriteria(state.criteria);\r\n const {max} = getMinAndMax(dimensionCodelist.values, freq, getCurrentNodeConfig(action));\r\n\r\n return {\r\n ...state,\r\n lastTerritoryYear: max\r\n ? moment(max).format(\"YYYY\")\r\n : null\r\n };\r\n }\r\n case DATASET_VIEW_TEMPLATE_SUBMIT: {\r\n return action.payload.extra.isView\r\n ? {\r\n ...state,\r\n isViewVisible: false,\r\n isTemplateVisible: false\r\n }\r\n : {\r\n ...initialState,\r\n isFetchStructureDisabled: false,\r\n datasetId: state.datasetId,\r\n nodeCode: state.nodeCode,\r\n categoryPath: state.categoryPath,\r\n viewId: state.viewId,\r\n detailLevelTree: state.detailLevelTree,\r\n detailLevel: state.detailLevel\r\n };\r\n }\r\n case DATASET_SDMX_QUERY_FETCH: {\r\n return {\r\n ...state,\r\n structureQuery: action.payload.response?.structureUrl || null,\r\n dataQuery: action.payload.response?.dataflowUrl || null\r\n };\r\n }\r\n case DATASET_INDICATOR_PREVIEW_FETCH: {\r\n return {\r\n ...state,\r\n indicatorPreview: (action.payload.response?.id || []).length > 0\r\n ? action.payload.response\r\n : \"\"\r\n };\r\n }\r\n case DATASET_ADDITIONAL_DATASET_CATALOG_FETCH: {\r\n const t = getActionExtras(action)?.t;\r\n\r\n const catalog = new LocalCategoryProvider(\r\n action.payload.response.categoryGroups,\r\n action.payload.response.datasetMap,\r\n action.payload.response.datasetUncategorized,\r\n action.payload.extra.nodeId,\r\n action.payload.response.catalogLayers,\r\n t\r\n );\r\n\r\n const allDatasetIds = [state.datasetId, ...state.additionalDatasets.map(({datasetId}) => datasetId)];\r\n const filter = (datasetId: string, dataset: IDataset) => !!(!allDatasetIds.includes(datasetId) && state.detailLevel !== null && (dataset.detailsLevels || []).includes(state.detailLevel))\r\n\r\n const filteredCatalog: ICategoryProvider = getFilteredCatalog(catalog, filter);\r\n\r\n return {\r\n ...state,\r\n additionalDatasetCatalog: filteredCatalog\r\n }\r\n }\r\n case DATASET_ADDITIONAL_DATASET_STURCTURE_FETCH: {\r\n return {\r\n ...state,\r\n additionalDataset: {\r\n ...state.additionalDataset,\r\n dimensions: (action.payload.response?.criteria || []),\r\n timeDim: action.payload.response.timeDimension,\r\n freqDim: action.payload.response.freqDimension,\r\n territoryDim: action.payload.response.territorialDimension,\r\n codelists: null,\r\n codelistsLength: null,\r\n criteria: {},\r\n detailLevels: (state.additionalDatasetCatalog && state.additionalDataset)\r\n ? state.additionalDatasetCatalog.datasets[state.additionalDataset.datasetId]\r\n ? state.additionalDatasetCatalog.datasets[state.additionalDataset.datasetId].detailsLevels\r\n : state.additionalDatasetCatalog.uncategorizedDatasets.find((dataset: any) => dataset.identifier === state.additionalDataset?.datasetId)?.detailsLevels || []\r\n : []\r\n }\r\n }\r\n }\r\n case DATASET_STRUCTURE_CODELIST_FULL_FETCH: {\r\n const codelist = (action.payload.response.criteria[0] || {}).values || [];\r\n return {\r\n ...state,\r\n missingFilterValues: codelist.filter((code: any) => action.payload.extra.missingFilterValueIds.includes(code.id))\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n }\r\n case REQUEST_ERROR: {\r\n switch (action.payload.label) {\r\n case DATASET_STRUCTURE_FETCH: {\r\n return {\r\n ...initialState,\r\n viewerMode: ViewerMode.Error,\r\n datasetId: state.datasetId,\r\n nodeCode: state.nodeCode,\r\n categoryPath: state.categoryPath,\r\n viewId: state.viewId,\r\n detailLevelTree: state.detailLevelTree,\r\n detailLevel: state.detailLevel,\r\n enableCriteria: false,\r\n enableLayout: false\r\n };\r\n }\r\n case DATASET_STRUCTURE_CODELIST_FETCH: {\r\n const isTooLongQuery = action.payload.statusCode === 414;\r\n\r\n return {\r\n ...state,\r\n isTooLongQuery: isTooLongQuery,\r\n isCriteriaAlertVisible: isTooLongQuery,\r\n codelistFetchError: true\r\n };\r\n }\r\n case DATASET_DOWNLOAD_SUBMIT: {\r\n return {\r\n ...state,\r\n isDownloadWarningVisible: action.payload.statusCode === 406\r\n };\r\n }\r\n case DATASET_CACHE_INFO_FETCH: {\r\n return {\r\n ...state,\r\n datasetCacheInfo: null\r\n };\r\n }\r\n case DATASET_TERRITORY_DETAIL_LEVELS_FETCH: {\r\n return {\r\n ...state,\r\n detailLevelTree: [],\r\n detailLevel: null\r\n };\r\n }\r\n case DATASET_VIEW_TEMPLATE_SUBMIT: {\r\n return {\r\n ...state,\r\n isViewErrorVisible: !!(action.payload.extra.isView && action.payload.statusCode === 409 && action.payload.response),\r\n viewErrorMessage: action.payload.response\r\n };\r\n }\r\n case DATASET_SDMX_QUERY_FETCH: {\r\n return {\r\n ...state,\r\n isQueryVisible: false,\r\n structureQuery: null,\r\n dataQuery: null\r\n };\r\n }\r\n case DATASET_INDICATOR_PREVIEW_FETCH: {\r\n return {\r\n ...state,\r\n indicatorPreview: \"\"\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default datasetReducer;","export const NSI_RESPONSE_DOWNLOAD_SIZE_KEY = \"nsiResponseDownloadSize\";\r\nexport const TOTAL_KEY = \"total\";\r\n\r\nexport const getTimingsLabelTranslations = t => {\r\n\r\n const translations = t => ({\r\n nsiResponse: t(\"timings.nsiResponse\"),\r\n nsiResponseDownload: t(\"timings.nsiResponseDownload\"),\r\n [NSI_RESPONSE_DOWNLOAD_SIZE_KEY]: t(\"timings.nsiResponseDownloadSize\"),\r\n jsonToJsonStat: t(\"timings.jsonToJsonStat\"),\r\n xmlToJsonStat: t(\"timings.xmlToJsonStat\"),\r\n others: t(\"timings.others\"),\r\n [TOTAL_KEY]: t(\"timings.total\"),\r\n cacheRead: t(\"timings.cacheRead\"),\r\n variation: t(\"timings.variation\"),\r\n filterDataCache: t(\"timings.filterDataCache\")\r\n });\r\n\r\n return translations(t !== undefined ? t : str => str);\r\n};","import React, {Fragment} from 'react';\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport {GENERATING_HTML_TIME_KEY, OBSERVATION_COUNT_KEY, SERVER_TIMINGS_KEY} from \"../../state/dataset/datasetReducer\";\r\nimport {\r\n getTimingsLabelTranslations,\r\n NSI_RESPONSE_DOWNLOAD_SIZE_KEY,\r\n TOTAL_KEY\r\n} from \"../../constants/getTimingsLabelTranslation\";\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n divider: {\r\n margin: \"16px 0\"\r\n }\r\n});\r\n\r\nconst getRow = (label, value, isTitle) => (\r\n \r\n \r\n {label}\r\n \r\n {value && (\r\n {value}\r\n )}\r\n \r\n);\r\n\r\nconst DataViewerTimings = ({\r\n t,\r\n classes,\r\n timings\r\n }) => {\r\n const rows = [];\r\n\r\n if (timings) {\r\n if (timings[GENERATING_HTML_TIME_KEY] !== null && timings[GENERATING_HTML_TIME_KEY] !== undefined) {\r\n rows.push(getRow(t(\"timings.observationCount\"), timings[OBSERVATION_COUNT_KEY], true));\r\n rows.push();\r\n }\r\n\r\n /** server side **/\r\n if (timings[SERVER_TIMINGS_KEY]) {\r\n\r\n rows.push(getRow(t(\"timings.serverTimings\"), null, true));\r\n\r\n for (const key in timings[SERVER_TIMINGS_KEY]) {\r\n if (timings[SERVER_TIMINGS_KEY].hasOwnProperty(key)) {\r\n if (key !== TOTAL_KEY && key !== NSI_RESPONSE_DOWNLOAD_SIZE_KEY) {\r\n rows.push(getRow(getTimingsLabelTranslations(t)[key] || key, timings[SERVER_TIMINGS_KEY][key]))\r\n }\r\n }\r\n }\r\n rows.push(getRow(getTimingsLabelTranslations(t)[TOTAL_KEY] || TOTAL_KEY, timings[SERVER_TIMINGS_KEY][TOTAL_KEY], true));\r\n rows.push();\r\n\r\n if (timings[SERVER_TIMINGS_KEY][NSI_RESPONSE_DOWNLOAD_SIZE_KEY]) {\r\n rows.push(getRow(getTimingsLabelTranslations(t)[NSI_RESPONSE_DOWNLOAD_SIZE_KEY] || NSI_RESPONSE_DOWNLOAD_SIZE_KEY, timings[SERVER_TIMINGS_KEY][NSI_RESPONSE_DOWNLOAD_SIZE_KEY], true));\r\n rows.push();\r\n }\r\n }\r\n\r\n /** client side **/\r\n if (timings[GENERATING_HTML_TIME_KEY] !== null && timings[GENERATING_HTML_TIME_KEY] !== undefined) {\r\n rows.push(getRow(t(\"timings.clientTimings\"), null, true));\r\n rows.push(getRow(t(\"timings.generatingHtml\"), `${timings[GENERATING_HTML_TIME_KEY]}ms`));\r\n }\r\n }\r\n\r\n return (\r\n \r\n {rows}\r\n \r\n )\r\n}\r\n\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(DataViewerTimings)","import React from 'react';\r\nimport {withTranslation} from \"react-i18next\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport I18nTextField from \"../i18n-text-field\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport {CRITERIA_FILTER_TYPE_PERIODS} from \"../../utils/criteria\";\r\n\r\nconst ViewBuilder = ({\r\n t,\r\n view,\r\n onChange,\r\n criteria,\r\n timeDim\r\n }) => {\r\n\r\n if (!view) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {criteria?.[timeDim]?.type === CRITERIA_FILTER_TYPE_PERIODS && (\r\n \r\n {t(\"scenes.dataViewer.warnings.viewTemplateLastNPeriods.label\")}\r\n \r\n )}\r\n \r\n \r\n onChange({...view, title: value})}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withTranslation()(ViewBuilder);","import React, {Fragment, useEffect, useState} from 'react';\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport I18nTextField from \"../../i18n-text-field\";\r\nimport Table from \"../../table\";\r\nimport {localizeI18nObj} from \"../../../utils/i18n\";\r\nimport CustomEmpty from \"../../custom-empty\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardHeader from \"@material-ui/core/CardHeader\";\r\nimport {v4 as uuidv4} from 'uuid';\r\nimport Chart from \"../../chart\";\r\nimport Map from \"../../map\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport _ from \"lodash\";\r\nimport {VARIATION_DIMENSION_KEY} from \"../../../utils/jsonStat\";\r\nimport {isValidIntegerInInclusiveRange} from \"../../../utils/validator\";\r\nimport {getChartSettingsFromViewTemplateLayouts, getMapSettingsFromViewTemplateLayouts} from \"../../../utils/viewTemplate\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport {CRITERIA_FILTER_TYPE_PERIODS} from \"../../../utils/criteria\";\r\nimport {isValidTemplateDefaultView} from \"../constant\";\r\nimport {\r\n TEMPORAL_DIM_ORDER_SELECTOR_VALUE_ASC,\r\n TEMPORAL_DIM_ORDER_SELECTOR_VALUE_DESC,\r\n TEMPORAL_DIM_ORDER_SELECTOR_VALUE_UNSET\r\n} from \"../../temporal-dim-order-selector/constants\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n card: {\r\n padding: theme.spacing(2)\r\n },\r\n viewer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n position: \"relative\"\r\n },\r\n viewerTable: {\r\n width: \"100%\",\r\n height: \"calc(100% - 16px - 64px)\",\r\n marginTop: 16\r\n },\r\n viewerChart: {\r\n width: \"100%\",\r\n height: \"calc(100% - 16px - 64px)\",\r\n position: \"relative\",\r\n marginTop: 16\r\n },\r\n tabContent: {\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n height: \"calc(100% - 48px)\",\r\n paddingTop: 16\r\n }\r\n});\r\n\r\nconst handleStyle = () => {\r\n const alertHeight = $(\"#template-builder__alert\").outerHeight(true) || 0;\r\n const tabsHeight = $(\"#template-builder__tabs\").outerHeight(true) || 0;\r\n $(\"#template-builder__tab-content\").height(`calc(100% - ${alertHeight + tabsHeight}px)`);\r\n};\r\n\r\nfunction SingleViewerTemplateBuilder(props) {\r\n const {\r\n classes,\r\n defaultLanguage,\r\n languages,\r\n nodeId,\r\n template,\r\n onChange,\r\n viewers,\r\n jsonStat,\r\n timePeriodsByFreq,\r\n labelFormat,\r\n tableLayout,\r\n chartLayout,\r\n mapLayout,\r\n criteria,\r\n timeDim,\r\n isTableEnabled,\r\n isMapEnabled,\r\n isChartEnabled\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [tabId, setTabId] = useState(0);\r\n\r\n const [mapId] = useState(\"map__\" + uuidv4());\r\n\r\n const [chartType, setChartType] = useState(\"bar\");\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", handleStyle);\r\n return () => window.removeEventListener(\"resize\", handleStyle)\r\n }, []);\r\n\r\n useEffect(() => {\r\n handleStyle();\r\n });\r\n\r\n if (!template) {\r\n return ;\r\n }\r\n\r\n const hiddenDimensions = _.uniq([\r\n ...(jsonStat?.id || []).filter(dim => dim !== VARIATION_DIMENSION_KEY),\r\n ...(template?.hiddenDimensions || [])\r\n ]);\r\n\r\n const tableLockedDimensions = _.uniq([\r\n ...(jsonStat?.id || []).filter(dim => dim !== VARIATION_DIMENSION_KEY),\r\n ...(template?.layouts?.tableLockedDimensions || [])\r\n ]);\r\n\r\n const graphLockedDimensions = _.uniq([\r\n ...(jsonStat?.id || []).filter(dim => dim !== VARIATION_DIMENSION_KEY),\r\n ...(template?.layouts?.graphLockedDimensions || [])\r\n ]);\r\n\r\n const mapSettings = getMapSettingsFromViewTemplateLayouts(template.layouts);\r\n const chartSettings = getChartSettingsFromViewTemplateLayouts(template.layouts);\r\n\r\n const isTimeDimInTable = !tableLayout.filters.includes(timeDim);\r\n const isTimeDimInChart = !chartLayout.filters.includes(timeDim);\r\n\r\n return (\r\n \r\n {criteria?.[timeDim]?.type === CRITERIA_FILTER_TYPE_PERIODS && (\r\n \r\n {t(\"scenes.dataViewer.warnings.viewTemplateLastNPeriods.label\")}\r\n \r\n )}\r\n \r\n {\r\n if (newValue === 0) {\r\n document.getElementById(\"template-builder__tab-content\").style.overflowY = \"auto\";\r\n } else {\r\n document.getElementById(\"template-builder__tab-content\").style.overflowY = \"hidden\";\r\n }\r\n setTabId(newValue);\r\n }}\r\n >\r\n \r\n \r\n \r\n {mapLayout && }\r\n \r\n \r\n
    \r\n {tabId === 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n onChange({...template, title: value})}\r\n />\r\n \r\n \r\n \r\n \r\n onChange({...template, defaultView: ev.target.value})}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n error={!isValidTemplateDefaultView(template, isTableEnabled, isMapEnabled, isChartEnabled)}\r\n helperText={!isValidTemplateDefaultView(template, isTableEnabled, isMapEnabled, isChartEnabled)\r\n ? t(\"scenes.dataViewer.templateBuilder.tabs.options.cards.general.form.invalidDefaultView\")\r\n : null\r\n }\r\n >\r\n {viewers.map(({type, title}, idx) =>\r\n {title}\r\n )}\r\n \r\n \r\n \r\n \r\n onChange({...template, enableCriteria: value})}\r\n />\r\n }\r\n />\r\n \r\n \r\n onChange({...template, enableLayout: value})}\r\n />\r\n }\r\n />\r\n \r\n \r\n onChange({...template, enableVariation: value})}\r\n />\r\n }\r\n />\r\n \r\n \r\n {isTableEnabled && (\r\n \r\n onChange({\r\n ...template,\r\n layouts: {\r\n ...template.layouts,\r\n disableTable: value\r\n }\r\n })}\r\n />\r\n }\r\n />\r\n \r\n )}\r\n {isChartEnabled && (\r\n \r\n onChange({\r\n ...template,\r\n layouts: {\r\n ...template.layouts,\r\n disableChart: value\r\n }\r\n })}\r\n />\r\n }\r\n />\r\n \r\n )}\r\n {isMapEnabled && (\r\n \r\n onChange({\r\n ...template,\r\n layouts: {\r\n ...template.layouts,\r\n disableMap: value\r\n }\r\n })}\r\n />\r\n }\r\n />\r\n \r\n )}\r\n !el) || []).length * 3)}/>\r\n \r\n \r\n onChange({...template, decimalNumber: ev.target.value})}\r\n error={(template.decimalNumber || \"\").length > 0 && !isValidIntegerInInclusiveRange(template.decimalNumber, 0, 20)}\r\n helperText={(template.decimalNumber || \"\").length > 0 && !isValidIntegerInInclusiveRange(template.decimalNumber, 0, 20)\r\n ? t(\"commons.validation.inRange\", {min: 0, max: 20})\r\n : null\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n onChange({...template, decimalSeparator: value})}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n \r\n {t(\"scenes.dataViewer.templateBuilder.tabs.options.cards.general.form.decimalSeparator.values.dot\")}\r\n \r\n \r\n {t(\"scenes.dataViewer.templateBuilder.tabs.options.cards.general.form.decimalSeparator.values.comma\")}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n onChange({...template, hiddenDimensions: values})\r\n }}\r\n renderInput={params => (\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n onChange({\r\n ...template,\r\n layouts: {\r\n ...template.layouts,\r\n temporalDimOrder: ev.target.value !== TEMPORAL_DIM_ORDER_SELECTOR_VALUE_UNSET\r\n ? ev.target.value\r\n : null\r\n }\r\n })}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n \r\n {t(\"scenes.dataViewer.templateBuilder.tabs.options.cards.general.form.temporalDimOrder.values.unset\")}\r\n \r\n \r\n {t(\"scenes.dataViewer.templateBuilder.tabs.options.cards.general.form.temporalDimOrder.values.asc\")}\r\n \r\n \r\n {t(\"scenes.dataViewer.templateBuilder.tabs.options.cards.general.form.temporalDimOrder.values.desc\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onChange({\r\n ...template,\r\n layouts: {\r\n ...template.layouts,\r\n tableEmptyChar: ev.target.value\r\n }\r\n })}\r\n />\r\n \r\n \r\n \r\n onChange({\r\n ...template,\r\n layouts: {\r\n ...template.layouts,\r\n lockTableDimensions: value\r\n }\r\n })}\r\n />\r\n }\r\n />\r\n \r\n \r\n onChange({\r\n ...template,\r\n layouts: {\r\n ...template.layouts,\r\n tableLockedDimensions: values\r\n }\r\n })}\r\n renderInput={params => (\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onChange({\r\n ...template,\r\n layouts: {\r\n ...template.layouts,\r\n lockGraphDimensions: value\r\n }\r\n })}\r\n />\r\n }\r\n />\r\n \r\n \r\n onChange({\r\n ...template,\r\n layouts: {\r\n ...template.layouts,\r\n graphLockedDimensions: values\r\n }\r\n })}\r\n renderInput={params => (\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n {tabId === 1 && jsonStat && tableLayout && (\r\n
    \r\n {isTableEnabled && !template.layouts.disableTable\r\n ? (\r\n \r\n \r\n onChange({\r\n ...template,\r\n layouts: {\r\n ...template.layouts,\r\n tableDefaultLayout: ev.target.value,\r\n tableLayout: ev.target.value === \"custom\"\r\n ? tableLayout\r\n : null\r\n }\r\n })}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n \r\n {t(\"scenes.dataViewer.templateBuilder.tabs.table.form.defaultLayout.values.custom\")}\r\n \r\n \r\n {t(\"scenes.dataViewer.templateBuilder.tabs.table.form.defaultLayout.values.default\")}\r\n \r\n \r\n \r\n
    \r\n {template.layouts.tableDefaultLayout === \"custom\"\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n )\r\n : (\r\n \r\n )\r\n }\r\n
    \r\n )}\r\n {tabId === 2 && jsonStat && chartLayout && (\r\n
    \r\n {isChartEnabled && !template.layouts.disableChart\r\n ? (\r\n \r\n \r\n setChartType(ev.target.value)}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {viewers.slice(2).map(({type, title}, idx) =>\r\n {title}\r\n )}\r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n : (\r\n \r\n )}\r\n
    \r\n )}\r\n {tabId === 3 && jsonStat && mapLayout && (\r\n
    \r\n {isMapEnabled && !template.layouts.disableMap\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default withStyles(styles)(SingleViewerTemplateBuilder);","import React, {Fragment} from 'react';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport I18nTextField from \"../../i18n-text-field\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport {CRITERIA_FILTER_TYPE_PERIODS} from \"../../../utils/criteria\";\r\n\r\nfunction MultiViewerTemplateBuilder(props) {\r\n const {\r\n template,\r\n onChange,\r\n criteria,\r\n timeDIm\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n if (!template) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n {criteria?.[timeDIm]?.type === CRITERIA_FILTER_TYPE_PERIODS && (\r\n \r\n {t(\"scenes.dataViewer.warnings.viewTemplateLastNPeriods.label\")}\r\n \r\n )}\r\n \r\n \r\n onChange({...template, title: value})}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default MultiViewerTemplateBuilder;","import React, {useState} from \"react\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport copy from \"copy-to-clipboard\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport CardHeader from \"@material-ui/core/CardHeader\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport Alert from '@material-ui/lab/Alert';\r\n\r\nconst styles = theme => ({\r\n paper: {\r\n padding: theme.spacing(3)\r\n },\r\n paperHeader: {\r\n fontSize: 17,\r\n fontWeight: \"bold\",\r\n padding: \"0 0 16px 0\"\r\n }\r\n});\r\n\r\nconst Query = ({classes, title, query}) => {\r\n\r\n const [isCopiedVisible, setCopiedVisibility] = useState(false);\r\n\r\n const {t} = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {query}\r\n \r\n \r\n {\r\n copy(query);\r\n setCopiedVisibility(prevVal => !prevVal);\r\n }}\r\n >\r\n {t(\"commons.confirm.copy\")}\r\n \r\n \r\n \r\n setCopiedVisibility(prevVal => !prevVal)}\r\n >\r\n setCopiedVisibility(prevVal => !prevVal)}>\r\n {t(\"components.query.alert.queryCopied.label\")}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default withStyles(styles)(Query);","import React from 'react';\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\nconst CleanIcon = props =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\nexport default CleanIcon;","import React, {Fragment, useEffect, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport { Button, Dialog, DialogActions, DialogContent, Grid, IconButton, InputAdornment, TextField, Tooltip, withStyles} from \"@material-ui/core\";\r\nimport ButtonSelect from \"../button-select\";\r\nimport CleanIcon from \"../custom-icons/CleanIcon\";\r\nimport {\r\n canDisplayTemplatesSettingsForm,\r\n canManageCache,\r\n} from \"../../utils/user\";\r\nimport {connect} from \"react-redux\";\r\nimport { clearCacheDataset, deleteDatasetTemplate, fetchDatasetCacheInfo, updateDatasetCacheTtl} from \"../../state/dataset/datasetActions\";\r\nimport Call from \"../../hocs/call\";\r\nimport { secondsToHms } from \"../../utils/formatters\";\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport DoneIcon from '@material-ui/icons/Done';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { isValidIntegerInInclusiveRange } from \"../../utils/validator\";\r\nimport FormLabelWithTooltip from \"../form-label-with-tooltip\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\n\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n divider: {\r\n width: \"100%\",\r\n color: \"gray\",\r\n fontStyle: \"italic\",\r\n fontSize: 14,\r\n },\r\n option: {\r\n width: \"100%\",\r\n },\r\n caheInfoContainer: {\r\n '& > *': {\r\n marginBottom: theme.spacing(2)\r\n },\r\n '& > *:last-child': {\r\n marginBottom: 0\r\n }\r\n },\r\n titleContainer: {\r\n fontWeight: \"bold\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n valueContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n user: state.user,\r\n nodeId: state.node?.nodeId,\r\n template: state.dataset.template,\r\n datasetId: state.dataset.datasetId,\r\n datasetCacheInfo: state.dataset.datasetCacheInfo\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onClearCacheDataset: (nodeId, datasetId) => dispatch(clearCacheDataset(nodeId, datasetId)),\r\n onDeleteDatasetTemplate: (nodeId, templateId) => dispatch(deleteDatasetTemplate(nodeId, templateId)),\r\n onFetchDatasetCacheInfo: ({nodeId, datasetId}) => dispatch(fetchDatasetCacheInfo(nodeId, datasetId)),\r\n onUpdateCache: (nodeId, datasetId, ttl) => dispatch(updateDatasetCacheTtl(nodeId, datasetId, ttl)),\r\n});\r\n\r\nconst DatasetViewerTools = (\r\n {t, \r\n classes, \r\n user, \r\n nodeId, \r\n template,\r\n datasetId,\r\n datasetCacheInfo,\r\n onClearCacheDataset,\r\n onDeleteDatasetTemplate,\r\n onFetchDatasetCacheInfo,\r\n onUpdateCache\r\n }) => {\r\n\r\n\r\n const [isModifyDialogVisible, setModifyDialogVisible] = useState(false);\r\n const [isTextFieldVisible, setTextFieldVisible] = useState(false);\r\n const [currentTtl, setCurrentTtl] = useState(\"\");\r\n const [validTtl, setValidTtl] = useState(\"\");\r\n \r\n const [isDeleteTemplateVisible, setDeleteTemplateVisibility] = useState(false);\r\n\r\n useEffect(() => {\r\n if (datasetCacheInfo !== null) {\r\n setValidTtl(datasetCacheInfo.ttl);\r\n }\r\n }, [datasetCacheInfo]);\r\n\r\n const canShowManageCache = canManageCache(user, nodeId);\r\n const canShowManageTemplate = template != null && canDisplayTemplatesSettingsForm(user, nodeId);\r\n const canShowAll = canShowManageCache && canShowManageTemplate;\r\n\r\n const buttonSelectItems = [];\r\n\r\n let ariaLabel = null;\r\n let tooltip = null;\r\n\r\n if (canShowAll) {\r\n ariaLabel = t(\"scenes.dataViewer.header.action.cachetemplate.label\");\r\n tooltip = t(\"scenes.dataViewer.header.action.cachetemplate.tooltip\");\r\n } else if (canShowManageCache) {\r\n ariaLabel = t(\"scenes.dataViewer.header.action.cache.label\");\r\n tooltip = t(\"scenes.dataViewer.header.action.cache.tooltip\");\r\n } else if (canShowManageTemplate) {\r\n ariaLabel = t(\"scenes.dataViewer.header.action.template.label\");\r\n tooltip = t(\"scenes.dataViewer.header.action.template.tooltip\");\r\n }\r\n if (canShowManageCache) {\r\n buttonSelectItems.push(\r\n
    \r\n {t(\"scenes.dataViewer.header.action.cache.title\")}\r\n
    \r\n );\r\n buttonSelectItems.push(\r\n \r\n {t(\"scenes.dataViewer.header.action.cache.values.modifyvalidity\")}\r\n \r\n );\r\n buttonSelectItems.push(\r\n \r\n {t(\"scenes.dataViewer.header.action.cache.values.invalidate\")}\r\n \r\n );\r\n }\r\n\r\n if (canShowManageTemplate) {\r\n buttonSelectItems.push(\r\n
    \r\n {t(\"scenes.dataViewer.header.action.template.title\")}\r\n
    \r\n );\r\n buttonSelectItems.push(\r\n \r\n {t(\"scenes.dataViewer.header.action.template.delete\")}\r\n \r\n );\r\n }\r\n\r\n const onShowModifyControl = () => {\r\n setCurrentTtl(validTtl);\r\n setTextFieldVisible(true);\r\n }\r\n\r\n const onHideModifyControl = () => {\r\n setTextFieldVisible(false);\r\n }\r\n\r\n const onCloseDialog = () => {\r\n setTextFieldVisible(false);\r\n setModifyDialogVisible(false)\r\n }\r\n\r\n const onOpenDialog = () => {\r\n setTextFieldVisible(false);\r\n setModifyDialogVisible(true); \r\n }\r\n\r\n const onSaveTtl = (nodeId,datasetId, ttl) => {\r\n if ((ttl || \"\").length > 0 && !isValidIntegerInInclusiveRange(ttl, -1)) {\r\n window.error.show(t(\"scenes.nodeSettings.cacheSettings.invalidTtl.label\"));\r\n return;\r\n }\r\n onUpdateCache(nodeId,datasetId,ttl); \r\n setValidTtl(ttl); \r\n setTextFieldVisible(false);\r\n }\r\n\r\n return buttonSelectItems.length > 0 && (\r\n \r\n }\r\n ariaLabel={ariaLabel}\r\n tooltip={tooltip}\r\n color=\"default\"\r\n onChange={actionId => {\r\n switch (actionId) {\r\n case \"modifyCacheValidity\":\r\n onOpenDialog() \r\n break;\r\n case \"invalidateCache\":\r\n onClearCacheDataset(nodeId,datasetId);\r\n break;\r\n case \"deleteTemplate\":\r\n setDeleteTemplateVisibility(true);\r\n break;\r\n default:\r\n break;\r\n }\r\n }}\r\n >\r\n {buttonSelectItems}\r\n \r\n\r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.header.action.cache.values.modifyvalidity\")}\r\n \r\n\r\n \r\n \r\n {datasetCacheInfo && (\r\n \r\n \r\n {t(\"scenes.nodeSettings.cacheSettings.table.dataflowFiles\")}\r\n \r\n \r\n {t(\"scenes.nodeSettings.cacheSettings.table.dataflowSize\")}\r\n \r\n \r\n \r\n {t(\"scenes.dataViewer.header.action.cache.dataflowValidity\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {datasetCacheInfo.cachedDataflow}\r\n \r\n \r\n {`${datasetCacheInfo.cacheSize} Kb`}\r\n \r\n \r\n {\r\n isTextFieldVisible \r\n ? ( \r\n setCurrentTtl( ev.target.value)}\r\n InputProps={{\r\n endAdornment: \r\n {t(\"scenes.dataViewer.header.action.cache.seconds\")}\r\n ,\r\n }}\r\n error={(currentTtl || \"\").length > 0 && !isValidIntegerInInclusiveRange(currentTtl, -1)}\r\n helperText={(currentTtl|| \"\").length > 0 && !isValidIntegerInInclusiveRange(currentTtl, -1)\r\n ? t(\"commons.validation.integerGreaterThanOrEmpty\", {number: -1})\r\n : null} \r\n />\r\n ) \r\n : (secondsToHms(validTtl,t)) \r\n } \r\n \r\n \r\n {\r\n isTextFieldVisible\r\n ? (\r\n \r\n \r\n \r\n \r\n onSaveTtl(nodeId,datasetId,currentTtl)}\r\n disabled={(currentTtl || \"\").length > 0 && !isValidIntegerInInclusiveRange(currentTtl, -1)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onHideModifyControl()}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : (\r\n \r\n \r\n onShowModifyControl()}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n )} \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n setDeleteTemplateVisibility(false)}\r\n >\r\n setDeleteTemplateVisibility(false)}>\r\n {t(\"scenes.dataViewer.header.dialogs.deleteTemplate.title\")}\r\n \r\n \r\n setDeleteTemplateVisibility(false)}\r\n >\r\n {t(\"commons.confirm.cancel\")}\r\n \r\n {\r\n setDeleteTemplateVisibility(false);\r\n onDeleteDatasetTemplate(nodeId, template.viewTemplateId);\r\n }}\r\n >\r\n {t(\"commons.confirm.confirm\")}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation(),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(DatasetViewerTools);\r\n","import React, {Fragment, useEffect} from 'react';\r\nimport {withTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport ShareIcon from '@material-ui/icons/Share';\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\r\nimport AccessTimeIcon from '@material-ui/icons/AccessTime';\r\nimport FullscreenIcon from '@material-ui/icons/Fullscreen';\r\nimport FullscreenExitIcon from '@material-ui/icons/FullscreenExit';\r\nimport ButtonSelect from \"../../button-select\";\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport {\r\n canSaveAsView,\r\n canSaveTemplate,\r\n canShare,\r\n canUseDatasetTools,\r\n canViewTemplateOrAnnotationIcon,\r\n canViewTimesLog\r\n} from \"../../../utils/user\";\r\nimport DeveloperModeIcon from '@material-ui/icons/DeveloperMode';\r\nimport AttributeIcon from \"../../custom-icons/AttributeIcon\";\r\nimport ExportButton from \"../../export-button\";\r\nimport DatasetStaticFilters from \"../../dataset-static-filters\";\r\nimport {LABEL_FORMAT_SELECTOR_LABEL_FORMAT_ID} from \"../../label-format-selector/constants\";\r\nimport {DOWNLOAD_FORMAT_EXCEL} from \"../../../utils/download\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport DatasetViewerTools from '../DatasetViewerTools';\r\nimport {toggleFullScreen} from \"../../../utils/other\";\r\nimport {setFullScreen} from \"../../../state/dataset/datasetActions\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n color: theme.palette.primary.main\r\n },\r\n titleContainer: {\r\n paddingTop: 7,\r\n minHeight: 48\r\n },\r\n title: {\r\n display: \"unset\",\r\n fontSize: 28,\r\n fontWeight: 300,\r\n letterSpacing: 0,\r\n marginRight: 4\r\n },\r\n titleAction: {\r\n marginTop: -10\r\n },\r\n layoutIcon: {\r\n width: 48,\r\n height: 48,\r\n padding: 12,\r\n color: \"rgba(0, 0, 0, 0.54)\"\r\n },\r\n action: {\r\n height: 40,\r\n \"& button\": {\r\n padding: 8\r\n }\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n isFullscreen: state.dataset.isFullscreen,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onSetFullscreen: (isFullscreen) => dispatch(setFullScreen(isFullscreen))\r\n});\r\n\r\nfunction SingleViewerHeader(props) {\r\n\r\n const {\r\n t,\r\n classes,\r\n\r\n exportConfig,\r\n user,\r\n defaultLanguage,\r\n languages,\r\n nodeId,\r\n nodeCode,\r\n datasetMap,\r\n datasetId,\r\n nodeExtras,\r\n datasetTitle,\r\n viewId,\r\n attachedFiles,\r\n chartId,\r\n mapId,\r\n jsonStat,\r\n viewerIdx,\r\n timeDim,\r\n isTableVisible,\r\n isMapVisible,\r\n isChartVisible,\r\n hasViewLayout,\r\n hasTemplateLayout,\r\n hasAnnotationLayout,\r\n tableLayout,\r\n mapLayout,\r\n chartLayout,\r\n criteria,\r\n labelFormat,\r\n temporalDimOrder,\r\n enableVariation,\r\n showTrend,\r\n showCyclical,\r\n decimalSeparator,\r\n decimalPlaces,\r\n tableEmptyChar,\r\n chartSettings,\r\n mapSettings,\r\n timings,\r\n onDownloadSubmit,\r\n onQueryShow,\r\n\r\n datasetAttributeMap,\r\n seriesAttributeMap,\r\n handleNotesShow,\r\n handleAttributesShow,\r\n handleTimingsShow,\r\n handleViewOpen,\r\n handleTemplateOpen,\r\n\r\n isFullscreen,\r\n onSetFullscreen\r\n } = props;\r\n\r\n const downloadFormats = nodeExtras?.DownloadFormats;\r\n const showQueryInfo = nodeExtras?.QueryInfo;\r\n\r\n useEffect(() => {\r\n const actionsWidth = $(\"#data-viewer__header__header__single-viewer__actions\").outerWidth(true);\r\n $(\"#data-viewer__header__header__single-viewer__title\").width(`calc(100% - ${actionsWidth}px - 8px)`);\r\n });\r\n\r\n const notes = datasetMap[datasetId]?.notes || [];\r\n const datasetAttributes = datasetAttributeMap?.[`${nodeCode},${datasetId}`] || [];\r\n const seriesAttributes = seriesAttributeMap?.[`${nodeCode},${datasetId}`] || [];\r\n\r\n const handleFullscreen = () => {\r\n toggleFullScreen(\r\n \"data-viewer\",\r\n \"data-viewer__wrapper\",\r\n [\"data-viewer__page__sidebar\", \"data-viewer__footer\"],\r\n !isFullscreen\r\n );\r\n onSetFullscreen(!isFullscreen);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {datasetTitle}\r\n \r\n {notes.length > 0 && (\r\n \r\n handleNotesShow(notes)}\r\n className={classes.titleAction}\r\n >\r\n \r\n \r\n \r\n )}\r\n {datasetAttributes.concat(seriesAttributes).length > 0 && (\r\n \r\n handleAttributesShow({\r\n datasetAttributes: datasetAttributes,\r\n seriesAttributes: seriesAttributes\r\n })}\r\n className={classes.titleAction}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {(() => {\r\n if (canViewTemplateOrAnnotationIcon(user, nodeId)) {\r\n\r\n let title = null;\r\n if (hasViewLayout) {\r\n title = t(\"scenes.dataViewer.header.action.hasViewLayout.tooltip\");\r\n } else if (hasTemplateLayout) {\r\n title = t(\"scenes.dataViewer.header.action.hasTemplateLayout.tooltip\");\r\n } else if (hasAnnotationLayout) {\r\n title = t(\"scenes.dataViewer.header.action.hasAnnotationLayout.tooltip\");\r\n }\r\n\r\n if (title) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n })()}\r\n {canViewTimesLog(user, nodeId) && (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n {canUseDatasetTools(user) && (\r\n \r\n \r\n \r\n )}\r\n {(canSaveAsView(user) || canSaveTemplate(user, nodeId)) && (\r\n \r\n }\r\n ariaLabel={t(\"scenes.dataViewer.header.action.save.label\")}\r\n tooltip={t(\"scenes.dataViewer.header.action.save.tooltip\")}\r\n color=\"default\"\r\n disabled={!tableLayout && !chartLayout && !mapLayout}\r\n >\r\n {canSaveAsView(user) && (\r\n
    handleViewOpen(false)}>\r\n {t(\"scenes.dataViewer.header.action.save.values.createView\")}\r\n
    \r\n )}\r\n {canSaveAsView(user) && hasViewLayout && viewId && (\r\n
    handleViewOpen(true)}>\r\n {t(\"scenes.dataViewer.header.action.save.values.updateView\")}\r\n
    \r\n )}\r\n {canSaveTemplate(user, nodeId) && (\r\n
    handleTemplateOpen(hasTemplateLayout)}>\r\n {hasTemplateLayout\r\n ? t(\"scenes.dataViewer.header.action.save.values.updateTemplate\")\r\n : t(\"scenes.dataViewer.header.action.save.values.createTemplate\")\r\n }\r\n
    \r\n )}\r\n \r\n
    \r\n )}\r\n {canShare(user) && (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n {(attachedFiles || []).length > 0 && (\r\n \r\n }\r\n ariaLabel={t(\"scenes.dataViewer.header.action.attachments.label\")}\r\n tooltip={t(\"scenes.dataViewer.header.action.attachments.tooltip\")}\r\n color=\"default\"\r\n onChange={({attachedFile}) => window.open(attachedFile.url)}\r\n >\r\n {attachedFiles.map((attachedFile, idx) => {\r\n const fileName = attachedFile.url.split(\"/\").pop();\r\n return (\r\n
    \r\n {`${fileName} (${attachedFile.format})`}\r\n
    \r\n )\r\n })}\r\n \r\n
    \r\n )}\r\n {showQueryInfo && (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n = 2 || isChartVisible}\r\n tableLayout={tableLayout}\r\n mapId={mapId}\r\n mapContainerId=\"data-viewer__single-viewer__viewer\"\r\n mapLayout={mapLayout}\r\n mapSettings={mapSettings}\r\n chartId={chartId}\r\n chartContainerId=\"data-viewer__single-viewer__viewer\"\r\n chartLayout={chartLayout}\r\n chartSettings={chartSettings}\r\n labelFormat={labelFormat}\r\n datasetTitle={datasetTitle}\r\n submitDownload={(format, extension, additionalParams) => {\r\n const exportParams = {\r\n labelFormat: labelFormat,\r\n customLabelFormat: {\r\n [timeDim]: LABEL_FORMAT_SELECTOR_LABEL_FORMAT_ID\r\n },\r\n decimalNumber: decimalPlaces,\r\n decimalSeparator: decimalSeparator,\r\n emptyCellPlaceHolder: tableEmptyChar,\r\n hasVariation: enableVariation,\r\n showTrend: showTrend,\r\n showCyclical: showCyclical,\r\n temporalDimOrder: temporalDimOrder,\r\n exportConfig: exportConfig,\r\n ...additionalParams\r\n };\r\n const layout = (format === DOWNLOAD_FORMAT_EXCEL || viewerIdx === 0)\r\n ? tableLayout\r\n : viewerIdx === 1\r\n ? mapLayout\r\n : chartLayout;\r\n\r\n const newCriteria = {...criteria};\r\n if (viewerIdx === 1 && layout?.territoryDim && additionalParams?.exportOnlyCurrentView === true) {\r\n const territoryDim = layout.territoryDim;\r\n newCriteria[territoryDim] = {\r\n id: territoryDim,\r\n filterValues: window.LMap.getDataIds(mapId)\r\n };\r\n }\r\n\r\n onDownloadSubmit(\r\n nodeId,\r\n datasetId,\r\n datasetTitle,\r\n newCriteria,\r\n layout,\r\n format,\r\n extension,\r\n false,\r\n exportParams,\r\n defaultLanguage,\r\n languages,\r\n t\r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n {isFullscreen ? : }\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n jsonStat.size[jsonStat.id.indexOf(dim)] === 1}\r\n />\r\n
    \r\n )\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation(),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(SingleViewerHeader);","import React, {Fragment, useEffect} from 'react';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\r\nimport AccessTimeIcon from '@material-ui/icons/AccessTime';\r\nimport ButtonSelect from \"../../button-select\";\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport {\r\n canSaveAsView,\r\n canSaveTemplate,\r\n canUseDatasetTools,\r\n canViewTemplateOrAnnotationIcon,\r\n canViewTimesLog\r\n} from \"../../../utils/user\";\r\nimport DeveloperModeIcon from '@material-ui/icons/DeveloperMode';\r\nimport AttributeIcon from \"../../custom-icons/AttributeIcon\";\r\nimport MetadataIcon from \"../../custom-icons/MetadataIcon\";\r\nimport DatasetViewerTools from '../DatasetViewerTools';\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport {NodeDataAccessibility, NodeVisibility} from \"../../../model/IHubMinimalNode.d.ts\";\r\nimport {MERGED_DATASETS_TITLE_SEPARATOR} from \"../../../utils/constants\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n color: theme.palette.primary.main\r\n },\r\n titleContainer: {\r\n paddingTop: 7,\r\n minHeight: 48,\r\n \"& > h1:first-child\": {\r\n marginLeft: 0\r\n },\r\n \"& > h1:last-child\": {\r\n marginRight: 0\r\n }\r\n },\r\n title: {\r\n display: \"unset\",\r\n fontSize: 28,\r\n fontWeight: 300,\r\n letterSpacing: 0,\r\n margin: \"0 4px\"\r\n },\r\n titleAction: {\r\n marginTop: -10\r\n },\r\n layoutIcon: {\r\n width: 48,\r\n height: 48,\r\n padding: 12,\r\n color: \"rgba(0, 0, 0, 0.54)\"\r\n }\r\n});\r\n\r\nconst areNodesAllowedForSaveViewTemplate = (datasets, nodes) => {\r\n const datasetNodes = datasets.map(({nodeCode}) => nodeCode);\r\n return nodes\r\n .filter(({code}) => datasetNodes.includes(code))\r\n .findIndex(({visible, dataAccess}) => visible === NodeVisibility.No && dataAccess === NodeDataAccessibility.Profiled) === -1;\r\n};\r\n\r\nfunction MultiViewerHeader(props) {\r\n\r\n const {\r\n classes,\r\n\r\n user,\r\n nodes,\r\n nodeId,\r\n nodeCode,\r\n datasetMap,\r\n datasetId,\r\n nodeExtras,\r\n datasetTitle,\r\n viewId,\r\n attachedFiles,\r\n onMetadataShow,\r\n hasViewLayout,\r\n hasTemplateLayout,\r\n hasAnnotationLayout,\r\n tableLayout,\r\n mapLayout,\r\n chartLayout,\r\n timings,\r\n onQueryShow,\r\n indicators,\r\n additionalDatasets,\r\n\r\n datasetAttributeMap,\r\n seriesAttributeMap,\r\n handleNotesShow,\r\n handleAttributesShow,\r\n handleTimingsShow,\r\n handleViewOpen,\r\n handleTemplateOpen\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const showQueryInfo = nodeExtras?.QueryInfo;\r\n\r\n useEffect(() => {\r\n const actionsWidth = $(\"#data-viewer__header__header__multi-viewer__actions\").outerWidth(true);\r\n $(\"#data-viewer__header__header__multi-viewer__title\").width(`calc(100% - ${actionsWidth}px - 8px)`);\r\n });\r\n\r\n const datasets = [\r\n {\r\n nodeCode: nodeCode,\r\n datasetId: datasetId,\r\n datasetTitle: datasetTitle\r\n },\r\n ...additionalDatasets\r\n ];\r\n\r\n return (\r\n \r\n \r\n {datasets.map(({datasetId, datasetTitle, nodeCode}, idx, arr) => {\r\n\r\n const notes = datasetMap[datasetId]?.notes || [];\r\n const datasetAttributes = datasetAttributeMap?.[`${nodeCode},${datasetId}`] || [];\r\n const seriesAttributes = seriesAttributeMap?.[`${nodeCode},${datasetId}`] || [];\r\n const metadataUrl = datasetMap[datasetId]?.referenceMetadata || null;\r\n\r\n return (\r\n \r\n \r\n {datasetTitle}\r\n \r\n {notes.length > 0 && (\r\n \r\n handleNotesShow(notes)}\r\n className={classes.titleAction}\r\n >\r\n \r\n \r\n \r\n )}\r\n {datasetAttributes.concat(seriesAttributes).length > 0 && (\r\n \r\n handleAttributesShow({\r\n datasetAttributes: datasetAttributes,\r\n seriesAttributes: seriesAttributes\r\n })}\r\n className={classes.titleAction}\r\n >\r\n \r\n \r\n \r\n )}\r\n {metadataUrl && (\r\n \r\n onMetadataShow(metadataUrl)}\r\n className={classes.titleAction}\r\n >\r\n \r\n \r\n \r\n )}\r\n {idx < (arr.length - 1) && (\r\n {MERGED_DATASETS_TITLE_SEPARATOR}\r\n )}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n {(() => {\r\n if (canViewTemplateOrAnnotationIcon(user, nodeId)) {\r\n\r\n let title = null;\r\n if (hasViewLayout) {\r\n title = t(\"scenes.dataViewer.header.action.hasViewLayout.tooltip\");\r\n } else if (hasTemplateLayout) {\r\n title = t(\"scenes.dataViewer.header.action.hasTemplateLayout.tooltip\");\r\n } else if (hasAnnotationLayout) {\r\n title = t(\"scenes.dataViewer.header.action.hasAnnotationLayout.tooltip\");\r\n }\r\n\r\n if (title) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n })()}\r\n {canViewTimesLog(user, nodeId) && (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n {additionalDatasets.length === 0 && canUseDatasetTools(user) && (\r\n \r\n \r\n \r\n )}\r\n {(canSaveAsView(user) || canSaveTemplate(user, nodeId)) && areNodesAllowedForSaveViewTemplate(datasets, nodes) && (\r\n \r\n }\r\n ariaLabel={t(\"scenes.dataViewer.header.action.save.label\")}\r\n tooltip={t(\"scenes.dataViewer.header.action.save.tooltip\")}\r\n color=\"default\"\r\n disabled={!tableLayout && !chartLayout && !mapLayout}\r\n >\r\n {canSaveAsView(user) && (\r\n
    handleViewOpen(false)}>\r\n {t(\"scenes.dataViewer.header.action.save.values.createView\")}\r\n
    \r\n )}\r\n {canSaveAsView(user) && hasViewLayout && viewId && (\r\n
    handleViewOpen(true)}>\r\n {t(\"scenes.dataViewer.header.action.save.values.updateView\")}\r\n
    \r\n )}\r\n {indicators.length === 0 && additionalDatasets.length === 0 && canSaveTemplate(user, nodeId) && (\r\n
    handleTemplateOpen(hasTemplateLayout)}>\r\n {hasTemplateLayout\r\n ? t(\"scenes.dataViewer.header.action.save.values.updateTemplate\")\r\n : t(\"scenes.dataViewer.header.action.save.values.createTemplate\")\r\n }\r\n
    \r\n )}\r\n \r\n
    \r\n )}\r\n {(attachedFiles || []).length > 0 && (\r\n \r\n }\r\n ariaLabel={t(\"scenes.dataViewer.header.action.attachments.label\")}\r\n tooltip={t(\"scenes.dataViewer.header.action.attachments.tooltip\")}\r\n color=\"default\"\r\n onChange={({attachedFile}) => window.open(attachedFile.url)}\r\n >\r\n {attachedFiles.map((attachedFile, idx) => {\r\n const fileName = attachedFile.url.split(\"/\").pop();\r\n return (\r\n
    \r\n {`${fileName} (${attachedFile.format})`}\r\n
    \r\n )\r\n })}\r\n \r\n
    \r\n )}\r\n {showQueryInfo && (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default withStyles(styles)(MultiViewerHeader);","import React, {Fragment, useEffect, useState} from 'react';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport AttributeList from \"../attribute-list\";\r\nimport {getDatasetAttributeMap, getSeriesAttributeMap} from \"../../utils/jsonStat\";\r\nimport {DECIMAL_SEPARATOR_DEFAULT} from \"../../utils/formatters\";\r\nimport {connect} from \"react-redux\";\r\nimport {compose} from \"redux\";\r\nimport {validateI18nObj} from \"../../utils/i18n\";\r\nimport DataViewerTimings from \"./Timings\";\r\nimport ViewBuilder from \"./ViewBuilder\";\r\nimport {ViewerMode} from \"../../state/dataset/constants\";\r\nimport SingleViewerTemplateBuilder from \"./single-viewer/TemplateBuilder\";\r\nimport MultiViewerTemplateBuilder from \"./multi-viewer/TemplateBuilder\";\r\nimport {getCriteriaArrayFromObject} from \"../../utils/criteria\";\r\nimport {\r\n fetchDatasetSdmxQuery,\r\n hideDatasetSdmxQuery,\r\n hideDatasetViewError,\r\n hideDatasetViewTemplate,\r\n setDatasetViewerMode,\r\n showDatasetSdmxQuery,\r\n showDatasetViewTemplate,\r\n submitDatasetDownload,\r\n submitDatasetViewTemplate\r\n} from \"../../state/dataset/datasetActions\";\r\nimport FullscreenDialog from \"../fullscreen-dialog\";\r\nimport Query from \"../query\";\r\nimport {isValidIntegerInInclusiveRange} from \"../../utils/validator\";\r\nimport Call from \"../../hocs/call\";\r\nimport {isValidTemplateDefaultView, viewersFactory} from \"./constant\";\r\nimport {getViewTemplateLayoutsFromChartSettings, getViewTemplateLayoutsFromMapSettings} from \"../../utils/viewTemplate\";\r\nimport SingleViewerHeader from \"./single-viewer/Header\";\r\nimport MultiViewerHeader from \"./multi-viewer/Header\";\r\nimport ButtonSelect from \"../button-select\";\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport {MERGED_DATASETS_TITLE_SEPARATOR} from \"../../utils/constants\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n queryContainer: {\r\n '& > *': {\r\n marginBottom: theme.spacing(2)\r\n },\r\n '& > *:last-child': {\r\n marginBottom: 0\r\n }\r\n },\r\n headerWrapper: {\r\n display: \"inline-block\",\r\n verticalAlign: \"top\"\r\n },\r\n selectorWrapper: {\r\n display: \"inline-block\",\r\n verticalAlign: \"top\"\r\n },\r\n selector: {\r\n display: \"none\",\r\n width: 48\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n themeConfig: state.app.themeConfig,\r\n exportConfig: state.hub.hub.exportConfig,\r\n user: state.user,\r\n defaultLanguage: state.app.language,\r\n languages: state.app.languages,\r\n nodes: state.hub.nodes,\r\n node: state.node,\r\n nodeCode: state.node.code,\r\n jsonStat: state.dataset.dataset,\r\n viewerIdx: state.dataset.viewerIdx,\r\n territoryDimCodelist: state.dataset.territoryDimCodelist,\r\n timeDim: state.dataset.timeDim,\r\n isTableVisible: state.dataset.isTableVisible,\r\n isMapVisible: state.dataset.isMapVisible,\r\n isChartVisible: state.dataset.isChartVisible,\r\n chartType: state.dataset.chartType,\r\n view: state.dataset.view,\r\n template: state.dataset.template,\r\n hasViewLayout: state.dataset.hasViewLayout,\r\n hasTemplateLayout: state.dataset.hasTemplateLayout,\r\n hasAnnotationLayout: state.dataset.hasAnnotationLayout,\r\n tableLayout: state.dataset.tableLayout,\r\n mapLayout: state.dataset.mapLayout,\r\n chartLayout: state.dataset.chartLayout,\r\n timePeriodsByFreq: state.dataset.timePeriodsByFreq,\r\n labelFormat: state.dataset.labelFormat,\r\n temporalDimOrder: state.dataset.temporalDimOrder,\r\n enableVariation: state.dataset.enableVariation,\r\n showTrend: state.dataset.showTrend,\r\n showCyclical: state.dataset.showCyclical,\r\n criteria: state.dataset.criteria,\r\n decimalSeparator: state.dataset.decimalSeparator,\r\n decimalPlaces: state.dataset.decimalPlaces,\r\n tableEmptyChar: state.dataset.tableEmptyChar,\r\n chartSettings: state.dataset.chartSettings,\r\n mapSettings: state.dataset.mapSettings,\r\n timings: state.dataset.timings,\r\n isViewVisible: state.dataset.isViewVisible,\r\n isViewErrorVisible: state.dataset.isViewErrorVisible,\r\n viewErrorMessage: state.dataset.viewErrorMessage,\r\n isTemplateVisible: state.dataset.isTemplateVisible,\r\n isQueryVisible: state.dataset.isQueryVisible,\r\n structureQuery: state.dataset.structureQuery,\r\n dataQuery: state.dataset.dataQuery,\r\n detailLevel: state.dataset.detailLevel,\r\n territories: state.dataset.territories,\r\n indicators: state.dataset.indicators,\r\n showArithmeticMean: state.dataset.showArithmeticMean,\r\n showStandardDeviation: state.dataset.showStandardDeviation,\r\n showCoefficientOfVariation: state.dataset.showCoefficientOfVariation,\r\n additionalDatasets: state.dataset.additionalDatasets,\r\n isTableEnabled: state.dataset.isTableEnabled,\r\n isMapEnabled: state.dataset.isMapEnabled,\r\n isChartEnabled: state.dataset.isChartEnabled\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onViewTemplateShow: isView => dispatch(showDatasetViewTemplate(isView)),\r\n onViewTemplateHide: isView => dispatch(hideDatasetViewTemplate(isView)),\r\n onViewTemplateSubmit: (nodeId, viewTemplate, isView) => dispatch(submitDatasetViewTemplate(nodeId, viewTemplate, isView)),\r\n onViewErrorHide: isView => dispatch(hideDatasetViewError(isView)),\r\n onDownloadSubmit: (nodeId, datasetId, datasetTitle, criteria, layout, format, extension, zipped, params, defaultLanguage, languages, t) =>\r\n dispatch(submitDatasetDownload(nodeId, datasetId, datasetTitle, criteria, layout, format, extension, zipped, params, defaultLanguage, languages, t)),\r\n onQueryShow: () => dispatch(showDatasetSdmxQuery()),\r\n onQueryHide: () => dispatch(hideDatasetSdmxQuery()),\r\n fetchQuery: ({nodeId, datasetId, criteria, datasetTitle}) =>\r\n dispatch(fetchDatasetSdmxQuery(nodeId, datasetId, criteria, datasetTitle)),\r\n setViewerMode: viewerMode => dispatch(setDatasetViewerMode(viewerMode))\r\n});\r\n\r\nfunction DataViewerHeader({classes, ...props}) {\r\n\r\n const {\r\n nodeId,\r\n datasetId,\r\n datasetTitle,\r\n viewId,\r\n onRender,\r\n\r\n themeConfig,\r\n defaultLanguage,\r\n languages,\r\n jsonStat,\r\n viewerMode,\r\n viewerIdx,\r\n territoryDimCodelist,\r\n timeDim,\r\n isTableVisible,\r\n isMapVisible,\r\n isChartVisible,\r\n chartType,\r\n view,\r\n template,\r\n hasTemplateLayout,\r\n tableLayout,\r\n mapLayout,\r\n chartLayout,\r\n timePeriodsByFreq,\r\n labelFormat,\r\n temporalDimOrder,\r\n showTrend,\r\n showCyclical,\r\n criteria,\r\n decimalSeparator,\r\n decimalPlaces,\r\n tableEmptyChar,\r\n chartSettings,\r\n mapSettings,\r\n timings,\r\n isViewVisible,\r\n isViewErrorVisible,\r\n viewErrorMessage,\r\n isTemplateVisible,\r\n isQueryVisible,\r\n structureQuery,\r\n dataQuery,\r\n detailLevel,\r\n territories,\r\n indicators,\r\n showArithmeticMean,\r\n showStandardDeviation,\r\n showCoefficientOfVariation,\r\n additionalDatasets,\r\n isTableEnabled,\r\n isMapEnabled,\r\n isChartEnabled,\r\n\r\n onViewTemplateShow,\r\n onViewTemplateHide,\r\n onViewTemplateSubmit,\r\n onViewErrorHide,\r\n onQueryHide,\r\n fetchQuery,\r\n setViewerMode\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const viewers = viewersFactory(t);\r\n\r\n const [tempView, setTempView] = useState(null);\r\n const [tempTemplate, setTempTemplate] = useState(null);\r\n\r\n const [datasetAttributeMap, setDatasetAttributeMap] = useState({});\r\n const [seriesAttributeMap, setSeriesAttributeMap] = useState({});\r\n\r\n const [attributes, setAttributes] = useState(null);\r\n const [notes, setNotes] = useState(null);\r\n const [isTimingsVisible, setTimingsVisibility] = useState(false);\r\n\r\n const [isUpdatingView, setIsUpdatingView] = useState(false);\r\n\r\n useEffect(() => {\r\n setDatasetAttributeMap(getDatasetAttributeMap(jsonStat));\r\n }, [jsonStat]);\r\n\r\n useEffect(() => {\r\n setSeriesAttributeMap(getSeriesAttributeMap(jsonStat, labelFormat));\r\n }, [jsonStat, labelFormat]);\r\n\r\n useEffect(() => {\r\n if (onRender) {\r\n onRender();\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n const viewerModeSelectorWidth = $(\"#data-viewer__header__actions\").outerWidth(true);\r\n $(\"#data-viewer__header__header\").width(`calc(100% - ${viewerModeSelectorWidth}px)`);\r\n }, []);\r\n\r\n const getCompleteViewTemplate = (viewTemplate, isUpdating) => ({\r\n defaultView: \"table\",\r\n enableCriteria: true,\r\n enableLayout: true,\r\n enableVariation: false,\r\n hiddenDimensions: [],\r\n ...viewTemplate,\r\n datasetId: datasetId,\r\n title: isUpdating\r\n ? viewTemplate.title\r\n : {[defaultLanguage]: [datasetTitle, ...additionalDatasets.map(({datasetTitle}) => datasetTitle)].join(` ${MERGED_DATASETS_TITLE_SEPARATOR} `)},\r\n mode: viewerMode,\r\n criteria: getCriteriaArrayFromObject(criteria),\r\n layouts: {\r\n ...viewTemplate?.layouts,\r\n detailLevel: detailLevel,\r\n mapDetailLevel: undefined,\r\n territories: territories,\r\n labelFormat: labelFormat,\r\n temporalDimOrder: temporalDimOrder,\r\n showTrend: showTrend,\r\n showCyclical: showCyclical,\r\n isTableVisible: isTableVisible,\r\n isMapVisible: isMapVisible,\r\n isChartVisible: isChartVisible,\r\n chartType: chartType\r\n },\r\n decimalSeparator: {\r\n ...(viewTemplate?.decimalSeparator || {}),\r\n [defaultLanguage]: (decimalSeparator !== null && decimalSeparator !== undefined)\r\n ? decimalSeparator\r\n : DECIMAL_SEPARATOR_DEFAULT\r\n },\r\n decimalNumber: (decimalPlaces === null || decimalPlaces === undefined || decimalPlaces < 0)\r\n ? \"\"\r\n : decimalPlaces\r\n });\r\n\r\n const handleViewOpen = isUpdating => {\r\n setIsUpdatingView(isUpdating);\r\n onViewTemplateShow(true);\r\n const completeView = getCompleteViewTemplate(view, isUpdating);\r\n setTempView({\r\n ...completeView,\r\n type: \"view\",\r\n defaultView: viewers[viewerIdx]?.type,\r\n layouts: {\r\n ...completeView.layouts,\r\n tableLayout: (viewerIdx === null || viewerIdx === 0) ? tableLayout : undefined,\r\n tableEmptyChar: (viewerIdx === null || viewerIdx === 0) ? tableEmptyChar : undefined,\r\n mapLayout: (viewerIdx === null || viewerIdx === 1) ? mapLayout : undefined,\r\n ...((viewerIdx === null || viewerIdx === 1) ? getViewTemplateLayoutsFromMapSettings(mapSettings) : {}),\r\n chartLayout: (viewerIdx === null || viewerIdx >= 2) ? chartLayout : undefined,\r\n ...((viewerIdx === null || viewerIdx >= 2) ? getViewTemplateLayoutsFromChartSettings(chartSettings) : {}),\r\n showArithmeticMean: showArithmeticMean,\r\n showStandardDeviation: showStandardDeviation,\r\n showCoefficientOfVariation: showCoefficientOfVariation\r\n },\r\n indicatorsDefinition: JSON.stringify(indicators),\r\n additionalDatasets: JSON.stringify(additionalDatasets)\r\n });\r\n };\r\n\r\n const handleViewClose = () => {\r\n onViewTemplateHide(true);\r\n setTempView(null);\r\n };\r\n\r\n const handleViewSubmit = viewId => {\r\n onViewTemplateSubmit(\r\n nodeId,\r\n {\r\n ...tempView,\r\n viewTemplateId: viewId ? Number(viewId) : undefined,\r\n layouts: JSON.stringify(tempView.layouts)\r\n },\r\n true\r\n );\r\n };\r\n\r\n const handleTemplateOpen = isUpdating => {\r\n onViewTemplateShow(false);\r\n const completeTemplate = getCompleteViewTemplate(template, isUpdating);\r\n setTempTemplate({\r\n ...completeTemplate,\r\n type: \"template\",\r\n layouts: {\r\n ...completeTemplate.layouts,\r\n tableLayout: tableLayout,\r\n tableDefaultLayout: \"custom\",\r\n tableEmptyChar: tableLayout ? tableEmptyChar : undefined,\r\n mapLayout: mapLayout,\r\n ...(mapLayout ? getViewTemplateLayoutsFromMapSettings(mapSettings) : {}),\r\n chartLayout: chartLayout,\r\n ...(chartLayout ? getViewTemplateLayoutsFromChartSettings(chartSettings) : {})\r\n }\r\n });\r\n };\r\n\r\n const handleTemplateClose = () => {\r\n onViewTemplateHide(false);\r\n setTempTemplate(null);\r\n };\r\n\r\n const handleTemplateSubmit = () => {\r\n onViewTemplateSubmit(\r\n nodeId,\r\n {\r\n ...tempTemplate,\r\n layouts: JSON.stringify({\r\n ...tempTemplate.layouts,\r\n tableDefaultLayout: undefined\r\n }),\r\n decimalNumber: (tempTemplate.decimalNumber === null || tempTemplate.decimalNumber === undefined || tempTemplate.decimalNumber === \"\")\r\n ? -1\r\n : tempTemplate.decimalNumber\r\n },\r\n false\r\n );\r\n };\r\n\r\n const handleNotesShow = notes => {\r\n setNotes(notes);\r\n };\r\n\r\n const handleNotesHide = () => {\r\n setNotes(null);\r\n };\r\n\r\n const handleAttributesShow = attributes => {\r\n setAttributes(attributes);\r\n };\r\n\r\n const handleAttributesHide = () => {\r\n setAttributes(null);\r\n };\r\n\r\n const handleTimingsShow = () => {\r\n setTimingsVisibility(true);\r\n };\r\n\r\n const handleTimingsHide = () => {\r\n setTimingsVisibility(false);\r\n };\r\n\r\n const isValidTemplateDecimalNumber = () => (\r\n (tempTemplate?.decimalNumber || \"\").length === 0 ||\r\n isValidIntegerInInclusiveRange(tempTemplate?.decimalNumber, 0, 20)\r\n );\r\n\r\n const canSaveTemplate = () => (\r\n validateI18nObj(tempTemplate?.title) &&\r\n validateI18nObj(tempTemplate?.decimalSeparator) &&\r\n isValidTemplateDecimalNumber() &&\r\n isValidTemplateDefaultView(tempTemplate, isTableEnabled, isMapEnabled, isChartEnabled)\r\n );\r\n\r\n const TemplateDialogTitle = (\r\n \r\n {hasTemplateLayout\r\n ? t(\"scenes.dataViewer.header.dialogs.template.title.update\")\r\n : t(\"scenes.dataViewer.header.dialogs.template.title.create\")\r\n }\r\n \r\n );\r\n\r\n const TemplateDialogActions = (\r\n \r\n \r\n \r\n {t(\"commons.confirm.save\")}\r\n \r\n \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n {(() => {\r\n switch (viewerMode) {\r\n case ViewerMode.SingleViewer: {\r\n return (\r\n \r\n );\r\n }\r\n case ViewerMode.MultiViewer: {\r\n return (\r\n \r\n );\r\n }\r\n default: {\r\n return null;\r\n }\r\n }\r\n })()}\r\n
    \r\n
    \r\n {themeConfig.isMultiViewer && (\r\n
    \r\n }\r\n ariaLabel={t(\"scenes.dataViewer.header.action.viewerMode.label\")}\r\n tooltip={t(\"scenes.dataViewer.header.action.viewerMode.tooltip\")}\r\n color=\"default\"\r\n onChange={({mode}) => setViewerMode(mode)}\r\n >\r\n
    \r\n {ViewerMode.SingleViewer}\r\n
    \r\n
    \r\n {ViewerMode.MultiViewer}\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.header.dialogs.attributes.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {isUpdatingView\r\n ? t(\"scenes.dataViewer.header.dialogs.view.title.update\")\r\n : t(\"scenes.dataViewer.header.dialogs.view.title.create\")\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleViewSubmit(isUpdatingView ? viewId : null)}\r\n disabled={!tempView || !validateI18nObj(tempView.title)}\r\n >\r\n {t(\"commons.confirm.save\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.header.dialogs.duplicateViewError.title\")}\r\n \r\n \r\n {viewErrorMessage && (\r\n \r\n {t(\"scenes.dataViewer.header.dialogs.duplicateViewError.content\") + \": \"}\r\n {Object.keys(viewErrorMessage).join(\", \")}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {viewerMode === ViewerMode.SingleViewer && (\r\n \r\n {TemplateDialogTitle}\r\n \r\n hidden !== true)}\r\n jsonStat={jsonStat}\r\n timePeriodsByFreq={timePeriodsByFreq}\r\n labelFormat={labelFormat}\r\n tableLayout={tableLayout}\r\n chartLayout={chartLayout}\r\n mapLayout={mapLayout}\r\n criteria={criteria}\r\n territoryDimCodelist={territoryDimCodelist}\r\n timeDim={timeDim}\r\n isTableEnabled={isTableEnabled}\r\n isMapEnabled={isMapEnabled}\r\n isChartEnabled={isChartEnabled}\r\n />\r\n \r\n {TemplateDialogActions}\r\n \r\n )}\r\n\r\n {viewerMode === ViewerMode.MultiViewer && (\r\n \r\n {TemplateDialogTitle}\r\n \r\n \r\n \r\n {TemplateDialogActions}\r\n \r\n )}\r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.header.dialogs.notes.title\")}\r\n \r\n \r\n {notes}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.header.dialogs.query.title\")}\r\n \r\n \r\n \r\n {structureQuery && (\r\n \r\n )}\r\n {dataQuery && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n )\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(DataViewerHeader);","import React, {useEffect, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {v4 as uuidv4} from \"uuid\";\r\nimport TreeView from \"@material-ui/lab/TreeView\";\r\nimport TreeItem from \"@material-ui/lab/TreeItem\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport LibraryAddCheckIcon from \"@material-ui/icons/LibraryAddCheck\";\r\nimport PlaylistAddCheckIcon from \"@material-ui/icons/PlaylistAddCheck\";\r\nimport FilterNoneIcon from \"@material-ui/icons/FilterNone\";\r\nimport HeightIcon from \"@material-ui/icons/Height\";\r\nimport VerticalAlignCenterIcon from \"@material-ui/icons/VerticalAlignCenter\";\r\nimport AutoSearchInput from \"../auto-search-input\";\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport CustomLink from \"../custom-link\";\r\nimport {getFilteredTreeWithPaths, getMaxTreeDepth, getNodes, getNodesAtDepth, getTreeFromArray} from \"../../utils/tree\";\r\nimport _ from \"lodash\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst DEFAULT_TREE_PAGE_SIZE = 30;\r\n\r\nconst TREE_NODE_KEY_OF_LEVEL_PREFIX = \"TREE_NODE_KEY_OF_LEVEL_PREFIX_\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\"\r\n },\r\n treeActions: {\r\n marginBottom: 4\r\n },\r\n treeLevelSelector: {\r\n marginBottom: 4\r\n },\r\n tree: {\r\n overflow: \"auto\",\r\n \"& .MuiTreeItem-label\": {\r\n width: \"calc(100% - 19px)\"\r\n }\r\n },\r\n paddings: {\r\n padding: 4\r\n },\r\n treeNode: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: \"2px 0\",\r\n minHeight: 32\r\n },\r\n treeNodeCheckbox: {\r\n padding: 4,\r\n marginRight: 4\r\n },\r\n treeNodeCheckboxPlaceholder: {\r\n width: 8\r\n },\r\n treeNodeLabel: {\r\n fontSize: 14,\r\n color: \"rgba(0, 0, 0, 0.65)\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n levelTreeNodeLabel: {\r\n color: \"rgba(0, 0, 0, 0.85)\",\r\n fontWeight: 500\r\n },\r\n treeNodeAction: {\r\n marginLeft: 4,\r\n \"& > button\": {\r\n padding: 4\r\n }\r\n },\r\n treeNodeActionPlaceholder: {\r\n height: 32\r\n },\r\n divider: {\r\n margin: \"4px 0\"\r\n },\r\n showMoreNode: {\r\n marginLeft: 10,\r\n \"& i\": {\r\n fontSize: 14\r\n }\r\n },\r\n treeAction: {\r\n padding: 8\r\n }\r\n});\r\n\r\nconst getKeys = (tree, childrenKey, idKey, test) => {\r\n\r\n const res = [];\r\n\r\n const recursive = subTree => subTree\r\n ? (\r\n subTree.map(node => {\r\n if (!test || test(node)) {\r\n res.push(node[idKey]);\r\n }\r\n if (node[childrenKey] && node[childrenKey].length) {\r\n recursive(node[childrenKey]);\r\n }\r\n return null;\r\n })\r\n )\r\n : [];\r\n\r\n recursive(tree);\r\n\r\n return res;\r\n};\r\n\r\nconst isSearchedNode = (node, labelKey, searchText) => {\r\n const searchedStr = searchText.toLowerCase();\r\n const nodeLabel = node[labelKey];\r\n\r\n return (nodeLabel || \"\").toLowerCase().includes(searchedStr);\r\n};\r\n\r\nconst handleHeight = (uuid, lsExpandedKeys, showLevelSelector) => {\r\n const actionHeight = $(`#enhanced-tree__${uuid} .enhanced-tree__actions`).outerHeight(true) || 0;\r\n\r\n let levelSelectorHeight = 0;\r\n if (showLevelSelector) {\r\n const nodeHeight = $(`#enhanced-tree__${uuid} .enhanced-tree__level-selector .enhanced-tree__level-selector__node:first`).outerHeight(true) || 0;\r\n levelSelectorHeight += nodeHeight;\r\n levelSelectorHeight += 12; // paddings + margins\r\n levelSelectorHeight += 9; // divider\r\n\r\n let found = false;\r\n for (let i = 1; i <= lsExpandedKeys.length; i++) {\r\n if (lsExpandedKeys.find(key => key === TREE_NODE_KEY_OF_LEVEL_PREFIX + i) && !found) {\r\n levelSelectorHeight += nodeHeight;\r\n } else {\r\n found = true;\r\n }\r\n }\r\n }\r\n\r\n $(`#enhanced-tree__${uuid} .enhanced-tree__tree`).height(`calc(100% - ${actionHeight + levelSelectorHeight}px)`);\r\n};\r\n\r\nfunction EnhancedTree(props) {\r\n\r\n const {\r\n hubExtras,\r\n classes,\r\n tree,\r\n idKey,\r\n labelKey,\r\n childrenKey,\r\n defaultExpandedKeys,\r\n selectable,\r\n singleSelect,\r\n selectOnNodeClick,\r\n getIsNodeSelectable,\r\n defaultSelectedKeys,\r\n onSelect,\r\n hierarchicalSelect,\r\n hideSearchBar,\r\n hideCheckControls,\r\n hideExpandControls,\r\n hideDisabledCheckbox,\r\n showLevelSelector,\r\n showChildrenSelector,\r\n checkboxCheckedIcon,\r\n checkboxUncheckedIcon,\r\n treeActionsDirection\r\n } = props;\r\n\r\n const parsedHubExtras = JSON.parse(hubExtras || \"{}\");\r\n const treePageSize = (parsedHubExtras?.TreePageSize || \"\").length > 0\r\n ? Number(parsedHubExtras.TreePageSize)\r\n : DEFAULT_TREE_PAGE_SIZE;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [uuid] = useState(uuidv4());\r\n\r\n const [filteredTree, setFilteredTree] = useState(null);\r\n const [levelTree, setLevelTree] = useState([]);\r\n\r\n const [searchText, setSearchText] = useState(\"\");\r\n\r\n const [expandedKeys, setExpandedKeys] = useState(() => {\r\n const filteredTree = getFilteredTreeWithPaths((tree || []), childrenKey, node => (defaultExpandedKeys || []).includes(node[idKey]));\r\n return getNodes(filteredTree, childrenKey, () => true).map(node => node[idKey]);\r\n });\r\n const [levelTreeExpandedKeys, setLevelTreeExpandedKeys] = useState([]);\r\n\r\n const [selectedKeys, setSelectedKeys] = useState(defaultSelectedKeys || []);\r\n\r\n const [showMoreKeyClicks, setShowMoreKeyClicks] = useState({});\r\n\r\n useEffect(() => {\r\n handleHeight(uuid, levelTreeExpandedKeys, showLevelSelector);\r\n });\r\n\r\n useEffect(() => {\r\n const filteredTree = getFilteredTreeWithPaths(tree, childrenKey, node => isSearchedNode(node, labelKey, searchText));\r\n setFilteredTree(filteredTree);\r\n\r\n if (searchText && searchText.length > 0) {\r\n const filteredTreeKeys = getKeys(filteredTree, childrenKey, idKey);\r\n setExpandedKeys(filteredTreeKeys);\r\n setLevelTreeExpandedKeys([]);\r\n }\r\n }, [tree, idKey, labelKey, childrenKey, searchText]);\r\n\r\n useEffect(() => {\r\n if (showLevelSelector) {\r\n let levelTree = [];\r\n const maxTreeDepth = getMaxTreeDepth(filteredTree, childrenKey);\r\n const flatLevelTree = [];\r\n if (maxTreeDepth > 0) {\r\n [...Array(maxTreeDepth)].forEach((_, idx) => {\r\n flatLevelTree.push({\r\n id: TREE_NODE_KEY_OF_LEVEL_PREFIX + (idx + 1),\r\n label: t(\"components.enhancedTree.levelSelector\", {level: idx}),\r\n level: idx + 1,\r\n parent: idx !== 0\r\n ? TREE_NODE_KEY_OF_LEVEL_PREFIX + idx\r\n : undefined\r\n });\r\n });\r\n levelTree = getTreeFromArray(flatLevelTree, \"parent\", childrenKey);\r\n }\r\n setLevelTree(levelTree);\r\n }\r\n }, [showLevelSelector, filteredTree, childrenKey, t]);\r\n\r\n const handleSelect = (selectedNode, selected) => {\r\n let newSelectedKeys;\r\n\r\n if (singleSelect) {\r\n newSelectedKeys = [selectedNode[idKey]];\r\n\r\n } else if (selected) {\r\n if (hierarchicalSelect) {\r\n const keysToAdd = getNodes([selectedNode], \"children\", () => true).map(({id}) => id);\r\n newSelectedKeys = _.uniq((selectedKeys || []).concat(keysToAdd));\r\n } else {\r\n newSelectedKeys = [...selectedKeys, selectedNode[idKey]];\r\n }\r\n\r\n } else {\r\n if (hierarchicalSelect) {\r\n const parentTree = getFilteredTreeWithPaths(tree, \"children\", ({id}) => id === selectedNode.id);\r\n const keysToRemove = getNodes(parentTree, \"children\", () => true).map(({id}) => id)\r\n .concat(getNodes((selectedNode.children || []), \"children\", () => true).map(({id}) => id));\r\n newSelectedKeys = selectedKeys.filter(key => !keysToRemove.includes(key));\r\n\r\n } else {\r\n newSelectedKeys = selectedKeys.filter(key => key !== selectedNode[idKey]);\r\n }\r\n }\r\n\r\n setSelectedKeys(newSelectedKeys);\r\n if (onSelect) {\r\n onSelect(newSelectedKeys, selectedNode, selected);\r\n }\r\n };\r\n\r\n const handleLevelTreeSelect = (selectedNode, selected) => {\r\n\r\n const nodesAtDepthKeys = getNodesAtDepth(filteredTree, childrenKey, selectedNode.level)\r\n .filter(node => !getIsNodeSelectable || getIsNodeSelectable(node))\r\n .map(node => node[idKey]);\r\n const previouslyUnselectedKeys = nodesAtDepthKeys.filter(key => !selectedKeys.includes(key));\r\n\r\n const newSelectedKeys = selected\r\n ? selectedKeys.concat(previouslyUnselectedKeys)\r\n : selectedKeys.filter(key => !nodesAtDepthKeys.includes(key));\r\n\r\n setSelectedKeys(newSelectedKeys);\r\n if (onSelect) {\r\n onSelect(newSelectedKeys);\r\n }\r\n };\r\n\r\n const getShowMoreNode = parent => {\r\n\r\n const key = `${parent ? parent[idKey] : \"root\"}`;\r\n\r\n const remaining = (parent ? parent[childrenKey] : (filteredTree || []).filter(node => node != null)).length - (((showMoreKeyClicks[key] || 0) + 1) * treePageSize);\r\n\r\n return (\r\n {t(\"components.enhancedTree.showMore\", {more: Math.min(remaining, treePageSize), remaining: remaining})}}\r\n onClick={() => setShowMoreKeyClicks({\r\n ...showMoreKeyClicks,\r\n [key]: showMoreKeyClicks[key]\r\n ? showMoreKeyClicks[key] + 1\r\n : 1\r\n })}\r\n />\r\n }\r\n />\r\n );\r\n };\r\n\r\n const getTreeNode = (node, idKey, labelKey, isLevelTree) => {\r\n\r\n const nodeKey = node[idKey];\r\n const nodeLabel = node[labelKey];\r\n\r\n const isNodeSelectable = isLevelTree\r\n ? (\r\n getNodesAtDepth(filteredTree, childrenKey, node.level)\r\n .filter(node => selectable && (!getIsNodeSelectable || getIsNodeSelectable(node)))\r\n .length > 0\r\n )\r\n : selectable && (!getIsNodeSelectable || getIsNodeSelectable(node));\r\n\r\n const isNodeSelected = isLevelTree\r\n ? (\r\n !getNodesAtDepth(filteredTree, childrenKey, node.level)\r\n .filter(node => selectable && (!getIsNodeSelectable || getIsNodeSelectable(node)))\r\n .map(node => node[idKey])\r\n .some(key => !selectedKeys.includes(key))\r\n )\r\n : selectedKeys.includes(nodeKey);\r\n\r\n const hasChildrenSelector = (\r\n selectable &&\r\n showChildrenSelector &&\r\n !isLevelTree &&\r\n (node[childrenKey] || []).filter(child => !getIsNodeSelectable || getIsNodeSelectable(child)).length > 0\r\n );\r\n\r\n return (\r\n \r\n {(isNodeSelectable || !hideDisabledCheckbox)\r\n ? (\r\n \r\n {\r\n if (isLevelTree) {\r\n handleLevelTreeSelect(node, event.target.checked);\r\n } else {\r\n handleSelect(node, event.target.checked);\r\n }\r\n event.stopPropagation();\r\n }}\r\n disabled={!isNodeSelectable}\r\n inputProps={{\r\n \"aria-label\": isNodeSelected\r\n ? t(\"components.enhancedTree.checkBox.uncheck.ariaLabel\", {label: nodeLabel})\r\n : t(\"components.enhancedTree.checkBox.check.ariaLabel\", {label: nodeLabel})\r\n }}\r\n />\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n \r\n \r\n {nodeLabel}\r\n \r\n \r\n {(hasChildrenSelector && !singleSelect)\r\n ? (\r\n
    \r\n \r\n {\r\n const childrenKeys = node[childrenKey].filter(({isSelectable}) => isSelectable !== false).map(child => child[idKey]);\r\n const previouslyUnselectedKeys = childrenKeys.filter(key => !selectedKeys.includes(key));\r\n\r\n const newSelectedKeys = (previouslyUnselectedKeys.length > 0)\r\n ? [...selectedKeys, ...previouslyUnselectedKeys]\r\n : selectedKeys.filter(key => !childrenKeys.includes(key));\r\n\r\n setSelectedKeys(newSelectedKeys);\r\n if (onSelect) {\r\n onSelect(newSelectedKeys);\r\n }\r\n\r\n event.stopPropagation();\r\n }}\r\n aria-label={t(\"components.enhancedTree.actions.selectChildren.ariaLabel\")}\r\n >\r\n \r\n \r\n \r\n
    \r\n )\r\n : (\r\n \r\n )\r\n }\r\n \r\n }\r\n onLabelClick={evt => {\r\n if (isNodeSelectable && selectOnNodeClick) {\r\n if (isLevelTree) {\r\n handleLevelTreeSelect(node, !isNodeSelected);\r\n } else {\r\n handleSelect(node, !isNodeSelected);\r\n }\r\n evt.preventDefault();\r\n }\r\n }}\r\n >\r\n {node[childrenKey]\r\n ? node[childrenKey]\r\n .filter((child, index) => index < (treePageSize * ((showMoreKeyClicks[nodeKey] || 0) + 1)))\r\n .map(child => getTreeNode(child, idKey, labelKey, isLevelTree))\r\n .concat(node[childrenKey].length > (treePageSize * ((showMoreKeyClicks[nodeKey] || 0) + 1))\r\n ? [getShowMoreNode(node)]\r\n : []\r\n )\r\n : null\r\n }\r\n \r\n );\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n {!hideCheckControls && selectable && !singleSelect && (\r\n \r\n \r\n \r\n \r\n
    \r\n {\r\n const newSelectedKeys = getKeys(filteredTree, childrenKey, idKey, getIsNodeSelectable);\r\n setSelectedKeys(newSelectedKeys);\r\n if (onSelect) {\r\n onSelect(newSelectedKeys);\r\n }\r\n }}\r\n className={classes.treeAction}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {\r\n setSelectedKeys([]);\r\n if (onSelect) {\r\n onSelect([]);\r\n }\r\n }}\r\n className={classes.treeAction}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n {!hideExpandControls && (\r\n \r\n \r\n \r\n \r\n setExpandedKeys(getKeys(filteredTree, childrenKey, idKey))}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n setExpandedKeys([])}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n {!hideSearchBar && (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n {showLevelSelector && selectable && !singleSelect && getKeys(filteredTree, childrenKey, idKey).length > 1 && (\r\n
    \r\n }\r\n defaultExpandIcon={}\r\n disableSelection\r\n expanded={levelTreeExpandedKeys}\r\n onNodeToggle={(ev, nodeIds) => setLevelTreeExpandedKeys(nodeIds)}\r\n >\r\n {levelTree.map(node => getTreeNode(node, \"id\", \"label\", true))}\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n {(filteredTree && filteredTree.length > 0 && expandedKeys)\r\n ? (\r\n }\r\n defaultExpandIcon={}\r\n disableSelection\r\n expanded={expandedKeys}\r\n onNodeToggle={(ev, nodeIds) => setExpandedKeys(nodeIds)}\r\n >\r\n {filteredTree.map(node => getTreeNode(node, idKey, labelKey, false))}\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(state => ({\r\n hubExtras: state.hub.hub?.extras\r\n }))\r\n)(EnhancedTree);","import React, {Fragment} from 'react';\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport moment from \"moment\";\r\nimport _ from \"lodash\"\r\nimport {\r\n CRITERIA_FILTER_TYPE_EMPTY,\r\n CRITERIA_FILTER_TYPE_PERIODS,\r\n CRITERIA_FILTER_TYPE_RANGE,\r\n FREQ_MONTHLY,\r\n FREQ_QUARTERLY,\r\n FREQ_SEMESTER\r\n} from \"../../utils/criteria\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport {canSaveAsView} from \"../../utils/user\";\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport {isValidIntegerInInclusiveRange} from \"../../utils/validator\";\r\nimport CustomDatePicker from \"../custom-date-picker\";\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n selectContainer: {},\r\n formControl: {\r\n width: \"100%\"\r\n },\r\n timePeriodInput: {\r\n width: \"100%\"\r\n },\r\n alert: {\r\n padding: \"0 !important\"\r\n },\r\n lastPeriodsLabel: {\r\n height: 48,\r\n lineHeight: \"48px\"\r\n },\r\n lastPeriodsInput: {\r\n \"& input\": {\r\n height: 20,\r\n padding: 14\r\n }\r\n },\r\n lastPeriodsMenu: {\r\n maxHeight: 300\r\n }\r\n});\r\n\r\nconst periods = year => ({\r\n [FREQ_SEMESTER]: {\r\n values: [\"S1\", \"S2\"],\r\n S1: {\r\n start: `${year}-01-01`,\r\n end: moment(`${year}-06`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n S2: {\r\n start: `${year}-07-01`,\r\n end: moment(`${year}-12`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n }\r\n },\r\n [FREQ_QUARTERLY]: {\r\n values: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\r\n Q1: {\r\n start: `${year}-01-01`,\r\n end: moment(`${year}-03`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n Q2: {\r\n start: `${year}-04-01`,\r\n end: moment(`${year}-06`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n Q3: {\r\n start: `${year}-07-01`,\r\n end: moment(`${year}-09`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n Q4: {\r\n start: `${year}-10-01`,\r\n end: moment(`${year}-12`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n }\r\n },\r\n [FREQ_MONTHLY]: {\r\n values: [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"],\r\n \"01\": {\r\n start: `${year}-01-01`,\r\n end: moment(`${year}-01`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n \"02\": {\r\n start: `${year}-02-01`,\r\n end: moment(`${year}-02`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n \"03\": {\r\n start: `${year}-03-01`,\r\n end: moment(`${year}-03`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n \"04\": {\r\n start: `${year}-04-01`,\r\n end: moment(`${year}-04`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n \"05\": {\r\n start: `${year}-05-01`,\r\n end: moment(`${year}-05`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n \"06\": {\r\n start: `${year}-06-01`,\r\n end: moment(`${year}-06`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n \"07\": {\r\n start: `${year}-07-01`,\r\n end: moment(`${year}-07`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n \"08\": {\r\n start: `${year}-08-01`,\r\n end: moment(`${year}-08`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n \"09\": {\r\n start: `${year}-09-01`,\r\n end: moment(`${year}-09`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n \"10\": {\r\n start: `${year}-10-01`,\r\n end: moment(`${year}-10`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n \"11\": {\r\n start: `${year}-11-01`,\r\n end: moment(`${year}-11`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n },\r\n \"12\": {\r\n start: `${year}-12-01`,\r\n end: moment(`${year}-12`, \"YYYY-MM\").endOf('month').format('YYYY-MM-DD')\r\n }\r\n }\r\n});\r\n\r\nconst getYearsArray = (startYear, endYear) => {\r\n const res = [];\r\n\r\n if (startYear && endYear) {\r\n const startYearNumeric = Number(startYear);\r\n const endYearNumeric = Number(endYear);\r\n\r\n for (let i = startYearNumeric; i <= endYearNumeric; i++) {\r\n res.push(i + \"\");\r\n }\r\n }\r\n\r\n return res;\r\n};\r\n\r\nconst getPeriod = (freq, date) => {\r\n if (freq && date) {\r\n const year = date.slice(0, 4);\r\n\r\n if (periods(year)[freq]) {\r\n const dateMoment = moment(date, \"YYYY-MM-DD\");\r\n\r\n return periods(year)[freq].values.find(period => {\r\n const start = moment(periods(year)[freq][period].start, \"YYYY-MM-DD\");\r\n const end = moment(periods(year)[freq][period].end, \"YYYY-MM-DD\");\r\n\r\n return dateMoment.isBetween(start, end, null, \"[]\");\r\n });\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst getNewTimePeriodFromYear = (timePeriod, date, year, minYear, maxYear, period, minPeriod, maxPeriod, isFrom) => {\r\n let newDate;\r\n\r\n if (isFrom) {\r\n if (year === minYear && period && minPeriod) {\r\n if (moment((year + period), \"YYYY-MM-DD\").isSameOrAfter(moment(timePeriod.minDate, \"YYYY-MM-DD\"))) {\r\n newDate = periods(year)[timePeriod.freq][period].start;\r\n } else {\r\n newDate = periods(year)[timePeriod.freq][minPeriod].start;\r\n }\r\n\r\n } else if (year === maxYear && period && maxPeriod) {\r\n if (moment((year + period), \"YYYY-MM-DD\").isSameOrBefore(moment(timePeriod.maxDate, \"YYYY-MM-DD\"))) {\r\n newDate = periods(year)[timePeriod.freq][period].start;\r\n } else {\r\n newDate = periods(year)[timePeriod.freq][maxPeriod].start;\r\n }\r\n\r\n } else {\r\n newDate = period\r\n ? periods(year)[timePeriod.freq][period].start\r\n : year + \"-01-01\";\r\n }\r\n\r\n } else {\r\n if (year === minYear && period && minPeriod) {\r\n if (period && moment((year + period), \"YYYY-MM-DD\").isSameOrAfter(moment(timePeriod.minDate, \"YYYY-MM-DD\"))) {\r\n newDate = periods(year)[timePeriod.freq][period].end;\r\n } else {\r\n newDate = periods(year)[timePeriod.freq][minPeriod].end;\r\n }\r\n\r\n } else if (year === maxYear && period && maxPeriod) {\r\n if (period && moment((year + period), \"YYYY-MM-DD\").isSameOrBefore(moment(timePeriod.maxDate, \"YYYY-MM-DD\"))) {\r\n newDate = periods(year)[timePeriod.freq][period].end;\r\n } else {\r\n newDate = periods(year)[timePeriod.freq][maxPeriod].end;\r\n }\r\n\r\n } else {\r\n newDate = period\r\n ? periods(year)[timePeriod.freq][period].end\r\n : year + \"-12-31\";\r\n }\r\n }\r\n\r\n return {\r\n ...timePeriod,\r\n fromDate: isFrom ? newDate : timePeriod.fromDate,\r\n toDate: !isFrom ? newDate : timePeriod.toDate,\r\n }\r\n};\r\n\r\nconst handleSetTimePeriodRange = (newTimePeriod, onSetTimePeriod, setCriteriaValidity) => {\r\n onSetTimePeriod(newTimePeriod);\r\n setCriteriaValidity(moment(newTimePeriod.fromDate, \"YYYY-MM-DD\").isSameOrBefore(moment(newTimePeriod.toDate, \"YYYY-MM-DD\")));\r\n};\r\n\r\nconst handleSetTimePeriodPeriods = (newTimePeriod, onSetTimePeriod, setCriteriaValidity) => {\r\n onSetTimePeriod(newTimePeriod);\r\n setCriteriaValidity(isValidIntegerInInclusiveRange(newTimePeriod.periods, 1));\r\n};\r\n\r\nconst TimePeriod = ({\r\n t,\r\n classes,\r\n user,\r\n timePeriod,\r\n freqDim,\r\n onSetTimePeriod,\r\n isCriteriaValid,\r\n setCriteriaValidity\r\n }) => {\r\n\r\n const minYear = timePeriod.minDate ? moment(timePeriod.minDate).format(\"YYYY\") : null;\r\n const maxYear = timePeriod.maxDate ? moment(timePeriod.maxDate).format(\"YYYY\") : null;\r\n const fromYear = timePeriod.fromDate ? moment(timePeriod.fromDate).format(\"YYYY\") : null;\r\n const toYear = timePeriod.toDate ? moment(timePeriod.toDate).format(\"YYYY\") : null;\r\n\r\n const minPeriod = getPeriod(timePeriod.freq, timePeriod.minDate);\r\n const maxPeriod = getPeriod(timePeriod.freq, timePeriod.maxDate);\r\n const fromPeriod = getPeriod(timePeriod.freq, timePeriod.fromDate);\r\n const toPeriod = getPeriod(timePeriod.freq, timePeriod.toDate);\r\n\r\n const fromPeriods = periods(fromYear)[timePeriod.freq]\r\n ? periods(fromYear)[timePeriod.freq].values.slice(\r\n fromYear === minYear ? periods(fromYear)[timePeriod.freq].values.indexOf(minPeriod) : 0,\r\n fromYear === maxYear ? periods(fromYear)[timePeriod.freq].values.indexOf(maxPeriod) + 1 : undefined\r\n )\r\n : [];\r\n const toPeriods = periods(toYear)[timePeriod.freq]\r\n ? periods(toYear)[timePeriod.freq].values.slice(\r\n toYear === minYear ? periods(toYear)[timePeriod.freq].values.indexOf(minPeriod) : 0,\r\n toYear === maxYear ? periods(toYear)[timePeriod.freq].values.indexOf(maxPeriod) + 1 : undefined\r\n )\r\n : [];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t(\"components.criteria.timePeriod.typeSelector.label\") + \":\"}\r\n \r\n \r\n \r\n onSetTimePeriod({...timePeriod, selectorType: ev.target.value})}\r\n SelectProps={{\r\n SelectDisplayProps: {\r\n \"aria-haspopup\": true,\r\n \"aria-labelledby\": \"time-period__type-selector-label\"\r\n }\r\n }}\r\n >\r\n {canSaveAsView(user) && (\r\n \r\n {t(\"components.criteria.timePeriod.typeSelector.value.fullRange\")}\r\n \r\n )}\r\n \r\n {t(\"components.criteria.timePeriod.typeSelector.value.customRange\")}\r\n \r\n {freqDim !== null && (\r\n \r\n {t(\"components.criteria.timePeriod.typeSelector.value.onlyLastPeriods\")}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {(() => {\r\n if (timePeriod.selectorType === CRITERIA_FILTER_TYPE_RANGE) {\r\n if (timePeriod.freq !== null) {\r\n return (\r\n \r\n {!isCriteriaValid && (\r\n \r\n {t(\"components.criteria.timePeriod.alert.notValidRange\")}\r\n \r\n )}\r\n \r\n \r\n \r\n {t(\"components.criteria.timePeriod.customRange.start\")}\r\n \r\n \r\n {fromYear && minYear && toYear && (\r\n \r\n \r\n {t(\"components.criteria.timePeriod.customRange.year\")}\r\n \r\n {\r\n const year = ev.target.value;\r\n const newTimePeriod = getNewTimePeriodFromYear(timePeriod, timePeriod.fromDate, year, minYear, maxYear, fromPeriod, minPeriod, maxPeriod, true);\r\n handleSetTimePeriodRange(newTimePeriod, onSetTimePeriod, setCriteriaValidity);\r\n }}\r\n SelectDisplayProps={{\r\n \"aria-haspopup\": true,\r\n \"aria-labelledby\": \"time-period__custom-range__start-year-label\"\r\n }}\r\n >\r\n {getYearsArray(minYear, maxYear).map((year, idx) => (\r\n {year}\r\n ))}\r\n \r\n \r\n )}\r\n \r\n {fromYear && periods(fromYear)[timePeriod.freq] !== undefined && fromPeriods && fromPeriod && (\r\n \r\n \r\n \r\n {t(\"components.criteria.timePeriod.customRange.period\")}\r\n \r\n {\r\n const period = ev.target.value;\r\n const newTimePeriod = _.cloneDeep(timePeriod);\r\n newTimePeriod.fromDate = periods(fromYear)[timePeriod.freq][period].start;\r\n handleSetTimePeriodRange(newTimePeriod, onSetTimePeriod, setCriteriaValidity);\r\n }}\r\n SelectDisplayProps={{\r\n \"aria-haspopup\": true,\r\n \"aria-labelledby\": \"time-period__custom-range__start-period-label\"\r\n }}\r\n >\r\n {fromPeriods.map((period, idx) => (\r\n {period}\r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"components.criteria.timePeriod.customRange.end\")}\r\n \r\n \r\n {toYear && fromYear && maxYear && (\r\n \r\n \r\n {t(\"components.criteria.timePeriod.customRange.year\")}\r\n \r\n {\r\n const year = ev.target.value;\r\n const newTimePeriod = getNewTimePeriodFromYear(timePeriod, timePeriod.toDate, year, minYear, maxYear, toPeriod, minPeriod, maxPeriod, false);\r\n handleSetTimePeriodRange(newTimePeriod, onSetTimePeriod, setCriteriaValidity);\r\n }}\r\n SelectDisplayProps={{\r\n \"aria-haspopup\": true,\r\n \"aria-labelledby\": \"time-period__custom-range__end-year-label\"\r\n }}\r\n >\r\n {getYearsArray(minYear, maxYear).map((year, idx) => (\r\n {year}\r\n ))}\r\n \r\n \r\n )}\r\n \r\n {toYear && periods(toYear)[timePeriod.freq] !== undefined && toPeriods && toPeriod && (\r\n \r\n \r\n \r\n {t(\"components.criteria.timePeriod.customRange.period\")}\r\n \r\n {\r\n const period = ev.target.value;\r\n const newTimePeriod = _.cloneDeep(timePeriod);\r\n newTimePeriod.toDate = periods(toYear)[timePeriod.freq][period].end;\r\n handleSetTimePeriodRange(newTimePeriod, onSetTimePeriod, setCriteriaValidity);\r\n }}\r\n SelectDisplayProps={{\r\n \"aria-haspopup\": true,\r\n \"aria-labelledby\": \"time-period__custom-range__end-period-label\"\r\n }}\r\n >\r\n {toPeriods.map((period, idx) => (\r\n {period}\r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n } else {\r\n return (\r\n \r\n \r\n onSetTimePeriod({\r\n ...timePeriod,\r\n fromDate: date ? moment(date).format(\"YYYY-MM-DD\") : timePeriod.minDate\r\n })}\r\n className={classes.timePeriodInput}\r\n />\r\n \r\n \r\n onSetTimePeriod({\r\n ...timePeriod,\r\n toDate: date ? moment(date).format(\"YYYY-MM-DD\") : timePeriod.maxDate\r\n })}\r\n className={classes.timePeriodInput}\r\n />\r\n \r\n \r\n )\r\n }\r\n } else if (timePeriod.selectorType === CRITERIA_FILTER_TYPE_PERIODS) {\r\n return (\r\n \r\n \r\n {\r\n const newTimePeriod = _.cloneDeep(timePeriod);\r\n newTimePeriod.periods = target.value !== \"\" ? Number(target.value) : null;\r\n handleSetTimePeriodPeriods(newTimePeriod, onSetTimePeriod, setCriteriaValidity);\r\n }}\r\n error={!isValidIntegerInInclusiveRange(timePeriod.periods, 1)}\r\n helperText={!isValidIntegerInInclusiveRange(timePeriod.periods, 1)\r\n ? t(\"components.criteria.timePeriod.selectLastPeriods.helperText\")\r\n : null\r\n }\r\n inputProps={{\r\n \"aria-labelledby\": \"time-period__last-period-selector-label\"\r\n }}\r\n />\r\n \r\n \r\n
    \r\n {t(\"components.criteria.timePeriod.selectLastPeriods.label\")}\r\n
    \r\n
    \r\n
    \r\n )\r\n } else {\r\n return (\r\n \r\n )\r\n }\r\n })()}\r\n
    \r\n
    \r\n
    \r\n )\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation(),\r\n connect(state => ({\r\n user: state.user\r\n }))\r\n)(TimePeriod)","import React, {Fragment, useCallback, useEffect, useMemo, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport Call from \"../../hocs/call\";\r\nimport {\r\n CRITERIA_SELECTION_MODE_ALL,\r\n CRITERIA_SELECTION_TYPE_DYNAMIC,\r\n fetchDatasetStructureCodelist,\r\n fetchDatasetStructureCodelistFull,\r\n hideDatasetCriteriaObsCountWarning,\r\n hideDatasetStructureCodelistFull\r\n} from \"../../state/dataset/datasetActions\";\r\nimport EnhancedTree from \"../enhanced-tree\";\r\nimport _ from \"lodash\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport InfiniteScrollTable from \"../infinite-scroll-table\";\r\nimport TimePeriod from \"./TimePeriod\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport {\r\n CRITERIA_FILTER_TYPE_CODES,\r\n CRITERIA_FILTER_TYPE_EMPTY,\r\n CRITERIA_FILTER_TYPE_PERIODS,\r\n CRITERIA_FILTER_TYPE_RANGE,\r\n CRITERIA_FILTER_TYPE_STRING,\r\n criteriaFilterTypes,\r\n getFreqFromCriteria,\r\n getTimePeriod\r\n} from \"../../utils/criteria\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport LibraryAddCheckIcon from \"@material-ui/icons/LibraryAddCheck\";\r\nimport FilterNoneIcon from \"@material-ui/icons/FilterNone\";\r\nimport {getFilteredTreeWithPaths, getMappedTree, getMaxTreeDepth, getNodes} from \"../../utils/tree\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport {ViewerMode} from \"../../state/dataset/constants\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\"\r\n },\r\n criteriaContainer: {\r\n width: \"100%\",\r\n padding: \"16px 24px 0\",\r\n overflowY: \"hidden\"\r\n },\r\n criteriaContainerDimension: {\r\n height: \"100%\"\r\n },\r\n codelistInfo: {\r\n width: \"100%\",\r\n marginBottom: 8\r\n },\r\n onlySelectedSwitch: {\r\n marginLeft: 0\r\n },\r\n missingValuesWarning: {\r\n width: \"100%\",\r\n marginBottom: 12,\r\n alignItems: \"center\"\r\n },\r\n missingValuesWarningIcon: {\r\n marginLeft: 8\r\n },\r\n codelistContainer: {\r\n height: \"100%\",\r\n width: \"100%\"\r\n },\r\n emptyContainer: {\r\n height: \"100%\",\r\n width: \"100%\"\r\n },\r\n timePeriodContainer: {\r\n height: \"100%\",\r\n width: \"100%\"\r\n },\r\n treeActions: {\r\n marginBottom: 8\r\n },\r\n tabLabel: {\r\n display: \"-webkit-box\",\r\n lineClamp: 3,\r\n boxOrient: \"vertical\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\"\r\n }\r\n});\r\n\r\nconst mapStateToProps = ({app, node, dataset}) => ({\r\n themeConfig: app.themeConfig,\r\n node: node,\r\n mode: dataset.mode,\r\n type: dataset.type,\r\n codelistFetchError: dataset.codelistFetchError,\r\n isObsCountWarningVisible: dataset.isObsCountWarningVisible,\r\n missingFilterValues: dataset.missingFilterValues\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchCodelist: (nodeId, nodeCode, datasetId, mode, type, dimensionId, criteria, freq, defaultLastNPeriods, preserveFiltersWithDynamic) =>\r\n dispatch(fetchDatasetStructureCodelist(nodeId, nodeCode, datasetId, mode, type, dimensionId, criteria, freq, defaultLastNPeriods, preserveFiltersWithDynamic)),\r\n onCriteriaObsCountWarningHide: () => dispatch(hideDatasetCriteriaObsCountWarning()),\r\n fetchCodelistFull: (nodeId, datasetId, dimensionId, missingFilterValueIds) => dispatch(fetchDatasetStructureCodelistFull(nodeId, datasetId, dimensionId, missingFilterValueIds)),\r\n onCodelistFullHide: () => dispatch(hideDatasetStructureCodelistFull())\r\n});\r\n\r\nconst handleStyle = () => {\r\n const headerHeight = $(\"#criteria__header\").outerHeight(true) || 0;\r\n $(\"#criteria__container\").height(`calc(100% - ${headerHeight}px)`);\r\n\r\n const codelistHeaderHeight = $(\"#criteria-container__codelist-header\").outerHeight(true) || 0;\r\n const codelistWarningsHeight = $(\"#criteria-container__codelist-warnings\").outerHeight(true) || 0;\r\n $(\"#criteria-container__dimensions\").css({height: `calc(100% - ${codelistHeaderHeight + codelistWarningsHeight}px)`});\r\n};\r\n\r\nfunction Criteria(props) {\r\n const {\r\n t,\r\n classes,\r\n\r\n themeConfig,\r\n node,\r\n mode,\r\n type,\r\n codelistsLength,\r\n codelists,\r\n codelistFetchError,\r\n isObsCountWarningVisible,\r\n missingFilterValues,\r\n\r\n viewerMode,\r\n nodeId,\r\n nodeCode,\r\n datasetId,\r\n dimensions,\r\n timeDim,\r\n freqDim,\r\n territoryDim,\r\n hideTerritoryDim,\r\n criteria,\r\n isCriteriaValid,\r\n territoryDimCriteria,\r\n setCriteriaValidity,\r\n onSubmit,\r\n defaultLastNPeriods,\r\n showCodelistInfo = false,\r\n preserveFiltersWithDynamic = false,\r\n\r\n fetchCodelist,\r\n onSetCriteria,\r\n onCriteriaObsCountWarningHide,\r\n fetchCodelistFull,\r\n onCodelistFullHide\r\n } = props;\r\n\r\n const initialTimePeriod = {\r\n selectorType: CRITERIA_FILTER_TYPE_RANGE,\r\n freq: themeConfig?.defaultFreq || null,\r\n minDate: null,\r\n maxDate: null,\r\n fromDate: null,\r\n toDate: null,\r\n periods: null,\r\n missingRange: false\r\n };\r\n\r\n const [tabId, setTabId] = useState(null);\r\n const [isCallDisabled, setIsCallDisabled] = useState(false);\r\n\r\n const [criteriaBackup, setCriteriaBackup] = useState(null);\r\n const [tabIdBackup, setTabIdBackup] = useState(null);\r\n\r\n const [isTree, setIsTree] = useState(null);\r\n const [data, setData] = useState(null);\r\n const [dataBackup, setDataBackup] = useState(null);\r\n\r\n const [checkedKeys, setCheckedKeys] = useState([]);\r\n const [checkedKeysSnapshot, setCheckedKeysSnapshot] = useState(null);\r\n\r\n const [defaultExpandedKeys, setDefaultExpandedKeys] = useState(null);\r\n\r\n const [timePeriod, setTimePeriod] = useState(initialTimePeriod);\r\n\r\n const [missingFilterValueIds, setMissingFilterValueIds] = useState([]);\r\n\r\n const [lastNotCodedFilter, setLastNotCodedFilter] = useState(null);\r\n\r\n const [treeKey, setTreeKey] = useState(Date.now());\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", handleStyle);\r\n return () => window.removeEventListener(\"resize\", handleStyle);\r\n }, []);\r\n\r\n useEffect(() => {\r\n handleStyle();\r\n });\r\n\r\n useEffect(() => {\r\n if (dimensions.length > 0 && tabId !== null) {\r\n const data = codelists?.[dimensions[tabId].id];\r\n setData(data);\r\n setIsTree(getMaxTreeDepth(data, \"children\") > 1);\r\n }\r\n }, [mode, codelists, dimensions, tabId]);\r\n\r\n useEffect(() => {\r\n if (dimensions.length > 0 && tabId !== null) {\r\n setCheckedKeys(criteria[dimensions[tabId].id]?.filterValues || []);\r\n }\r\n }, [criteria, dimensions, tabId]);\r\n\r\n useEffect(() => {\r\n if (timeDim && codelists) {\r\n setTimePeriod(prevTimeP => getTimePeriod(\r\n prevTimeP,\r\n criteria,\r\n timeDim,\r\n codelists[timeDim] || null,\r\n codelists[freqDim] || null,\r\n node\r\n ));\r\n }\r\n }, [node, codelists, timeDim, freqDim, criteria]);\r\n\r\n useEffect(() => {\r\n const dataFlatValues = isTree ? getNodes(data, \"children\", () => true) : data;\r\n setMissingFilterValueIds(checkedKeys.filter(key => !(dataFlatValues || []).map(({id}) => id).includes(key)));\r\n }, [data, isTree, checkedKeys]);\r\n\r\n useEffect(() => {\r\n if (checkedKeysSnapshot && !dataBackup) {\r\n setData(prevTree => {\r\n let newTree;\r\n if (((prevTree || []).length > 1 || (prevTree[0].children || []).length > 0)) {\r\n newTree = getFilteredTreeWithPaths(prevTree, \"children\", ({id}) => checkedKeysSnapshot.includes(id));\r\n newTree = getMappedTree(newTree, \"children\", node => ({\r\n ...node,\r\n isSelectable: node.isSelectable && checkedKeysSnapshot.includes(node.id)\r\n }));\r\n } else {\r\n newTree = prevTree.filter(({id}) => checkedKeysSnapshot.includes(id));\r\n newTree = newTree.map(node => ({\r\n ...node,\r\n isSelectable: node.isSelectable && checkedKeysSnapshot.includes(node.id)\r\n }));\r\n }\r\n setData(newTree);\r\n setDataBackup(prevTree);\r\n });\r\n } else if (!checkedKeysSnapshot && dataBackup) {\r\n setData(dataBackup);\r\n setDataBackup(null);\r\n }\r\n }, [checkedKeysSnapshot, dataBackup]);\r\n\r\n useEffect(() => {\r\n setCheckedKeysSnapshot(null);\r\n setDefaultExpandedKeys(null);\r\n }, [tabId]);\r\n\r\n useEffect(() => {\r\n setTreeKey(Date.now());\r\n }, [tabId, checkedKeysSnapshot]);\r\n\r\n useEffect(() => {\r\n if (tabId === null) {\r\n let tabId;\r\n if (viewerMode === ViewerMode.SingleViewer) {\r\n tabId = 0;\r\n\r\n } else {\r\n const lastValorizedDimension = dimensions\r\n .filter(({id}) => !territoryDim || !hideTerritoryDim || id !== territoryDim)\r\n .map(({id}) => id)\r\n .reverse()\r\n .find(dim => (criteria[dim]?.filterValues || []).length > 0 || criteria[dim]?.period > 0 || (criteria[dim]?.from && criteria[dim]?.to));\r\n\r\n tabId = lastValorizedDimension\r\n ? dimensions.map(({id}) => id).indexOf(lastValorizedDimension)\r\n : (!territoryDim || !hideTerritoryDim || dimensions[0].id !== territoryDim)\r\n ? 0\r\n : 1;\r\n }\r\n\r\n setTabId(tabId);\r\n }\r\n }, [tabId, viewerMode, dimensions, criteria, type, territoryDim, hideTerritoryDim]);\r\n\r\n const defaultSelectedKeys = useMemo(() => {\r\n return (dimensions.length > 0 && tabId !== null)\r\n ? criteria[dimensions[tabId].id]?.filterValues || []\r\n : [];\r\n }, [dimensions, tabId, criteria]);\r\n\r\n const isCheckDisabled = useMemo(() => {\r\n return !preserveFiltersWithDynamic && !checkedKeysSnapshot && (data || []).length === 1 && (data[0].children || []).length === 0;\r\n }, [preserveFiltersWithDynamic, checkedKeysSnapshot, data]);\r\n\r\n const getTreeNodeIsSelectable = useCallback(({isSelectable}) => {\r\n return isSelectable && !isCheckDisabled;\r\n }, [isCheckDisabled]);\r\n\r\n const handleFetch = ({dimensionId, criteria}) => {\r\n let fullCriteria;\r\n if (territoryDimCriteria) {\r\n fullCriteria = {\r\n [territoryDim]: territoryDimCriteria,\r\n ...criteria\r\n };\r\n } else {\r\n fullCriteria = criteria;\r\n }\r\n\r\n fetchCodelist(\r\n nodeId,\r\n nodeCode,\r\n datasetId,\r\n mode,\r\n type,\r\n dimensionId,\r\n fullCriteria,\r\n timePeriod.freq,\r\n defaultLastNPeriods,\r\n preserveFiltersWithDynamic\r\n );\r\n\r\n setIsCallDisabled(true);\r\n };\r\n\r\n const handleTabChange = newTabId => {\r\n const newCriteria = _.cloneDeep(criteria);\r\n\r\n const dimension = dimensions[tabId].id;\r\n const filterValue = criteria?.[dimension]?.filterValues?.[0];\r\n if (type === CRITERIA_SELECTION_TYPE_DYNAMIC && !dimensions[tabId]?.extra?.DataStructureRef && filterValue) {\r\n setLastNotCodedFilter({dimension, filterValue});\r\n }\r\n\r\n if (type === CRITERIA_SELECTION_TYPE_DYNAMIC && newTabId < (dimensions.length - 1) && !preserveFiltersWithDynamic) {\r\n\r\n const criteriaToRemove = dimensions\r\n .map(({id}) => id)\r\n .slice(newTabId + 1)\r\n .filter(dim => newCriteria[dim] !== null && newCriteria[dim] !== undefined);\r\n\r\n if (criteriaToRemove.length > 0) {\r\n criteriaToRemove.forEach(dim => newCriteria[dim] = undefined);\r\n setCriteriaBackup(newCriteria);\r\n setTabIdBackup(newTabId);\r\n\r\n } else {\r\n setTabId(newTabId);\r\n setIsCallDisabled(false);\r\n }\r\n\r\n } else {\r\n setTabId(newTabId);\r\n\r\n if (mode !== CRITERIA_SELECTION_MODE_ALL) {\r\n setIsCallDisabled(false);\r\n }\r\n }\r\n };\r\n\r\n const handleCriteriaChange = useCallback((checkedKeys, type) => {\r\n const newCriteria = _.cloneDeep(criteria);\r\n const dimensionId = dimensions[tabId].id;\r\n const newType = (type && criteriaFilterTypes.includes(type))\r\n ? type\r\n : CRITERIA_FILTER_TYPE_CODES;\r\n\r\n let newDimensionCriteria = undefined;\r\n\r\n if (checkedKeys && ((checkedKeys.length === 1 && checkedKeys[0] !== \"\") || checkedKeys.length > 1)) {\r\n newDimensionCriteria = {\r\n id: dimensionId,\r\n type: newType,\r\n filterValues: checkedKeys,\r\n period: null,\r\n from: null,\r\n to: null\r\n };\r\n }\r\n\r\n newCriteria[dimensionId] = newDimensionCriteria;\r\n\r\n onSetCriteria(newCriteria);\r\n\r\n setTimePeriod(prevTimePeriod => ({\r\n ...prevTimePeriod,\r\n freq: getFreqFromCriteria(newCriteria)\r\n }));\r\n\r\n }, [criteria, dimensions, tabId, onSetCriteria]);\r\n\r\n const handleTimePeriodChange = useCallback(timePeriod => {\r\n const type = (timePeriod.selectorType || CRITERIA_FILTER_TYPE_EMPTY);\r\n\r\n const timePeriodCriteria = (type === CRITERIA_FILTER_TYPE_EMPTY || (type === CRITERIA_FILTER_TYPE_PERIODS && timePeriod.periods === null))\r\n ? undefined\r\n : {\r\n id: timeDim,\r\n type: type,\r\n filterValues: null,\r\n period: type === CRITERIA_FILTER_TYPE_PERIODS ? timePeriod.periods : null,\r\n from: type === CRITERIA_FILTER_TYPE_RANGE ? timePeriod.fromDate : null,\r\n to: type === CRITERIA_FILTER_TYPE_RANGE ? timePeriod.toDate : null\r\n };\r\n\r\n onSetCriteria({\r\n ...criteria,\r\n [timeDim]: timePeriodCriteria\r\n });\r\n\r\n setTimePeriod(timePeriod);\r\n }, [criteria, timeDim, onSetCriteria]);\r\n\r\n if (!dimensions || tabId === null) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n handleTabChange(newValue)}\r\n >\r\n {dimensions.map((dim, idx) => (\r\n \r\n \r\n \r\n \r\n {dim.label || dim.id}\r\n \r\n \r\n {codelistsLength && codelistsLength[idx] !== null && dimensions[idx]?.extra?.DataStructureRef && (\r\n \r\n {`(${(criteria[dim.id]?.filterValues || []).length}/${codelistsLength[idx]})`}\r\n \r\n )}\r\n \r\n \r\n }\r\n id={`tab__${dim.id}`}\r\n aria-controls={`dimension__${dim.id}`}\r\n tabIndex={0}\r\n disabled={!isCriteriaValid}\r\n style={{\r\n display: (dim.id === territoryDim && hideTerritoryDim)\r\n ? \"none\"\r\n : \"unset\"\r\n }}\r\n />\r\n ))}\r\n \r\n \r\n
    \r\n {showCodelistInfo && dimensions[tabId].id !== timeDim && (\r\n \r\n \r\n \r\n {`${dimensions[tabId].label || dimensions[tabId].id}${dimensions[tabId]?.extra?.DataStructureRef ? ` (${dimensions[tabId].extra.DataStructureRef})` : \"\"}`}\r\n \r\n \r\n {(checkedKeysSnapshot !== null || (data || []).length > 1 || (data?.[0]?.children || []).length > 0) && dimensions[tabId].id !== timeDim && (\r\n \r\n \r\n {\r\n const tree = getFilteredTreeWithPaths(data, \"children\", ({id}) => checkedKeys.includes(id));\r\n const nodes = getNodes(tree, \"children\", ({children}) => (children || []).length > 0).map(({id}) => id);\r\n setDefaultExpandedKeys(nodes);\r\n setCheckedKeysSnapshot(target.checked ? checkedKeys : null);\r\n }}\r\n disabled={checkedKeysSnapshot === null && (checkedKeys || []).length === 0}\r\n />\r\n }\r\n className={classes.onlySelectedSwitch}\r\n />\r\n \r\n \r\n )}\r\n \r\n )}\r\n {data && missingFilterValueIds.length > 0 && dimensions[tabId]?.extra?.DataStructureRef && (\r\n \r\n {t(\"components.criteria.warnings.missingFilterValueIds.message.label\")}\r\n \r\n fetchCodelistFull(nodeId, datasetId, dimensions[tabId].id, missingFilterValueIds)}\r\n className={classes.missingValuesWarningIcon}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n {dimensions.map((dim, idx) => (\r\n
    \r\n ))}\r\n
    \r\n
    \r\n\r\n setCriteriaBackup(null)}\r\n >\r\n \r\n {t(\"components.criteria.dialogs.warning.losingFilters.title\")}\r\n \r\n \r\n {\r\n setCriteriaBackup(null);\r\n setTabIdBackup(null);\r\n }}\r\n >\r\n {t(\"commons.confirm.cancel\")}\r\n \r\n {\r\n setCriteriaBackup(null);\r\n onSetCriteria(criteriaBackup);\r\n setTabIdBackup(null);\r\n setTabId(tabIdBackup);\r\n handleFetch({\r\n dimensionId: dimensions[tabIdBackup].id,\r\n criteria: {\r\n ...criteriaBackup,\r\n [dimensions[tabIdBackup].id]: undefined\r\n }\r\n });\r\n }}\r\n color=\"primary\"\r\n >\r\n {t(\"commons.confirm.confirm\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"components.criteria.dialogs.warning.obsCountWarning.content\")}\r\n \r\n \r\n \r\n {\r\n onCriteriaObsCountWarningHide();\r\n onSubmit();\r\n }}\r\n >\r\n {t(\"commons.confirm.confirm\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"components.criteria.dialogs.warning.missingFilterValues.title\", {dimension: dimensions[tabId].label})}\r\n \r\n \r\n id}\r\n showHeader={false}\r\n columns={[\r\n {\r\n title: \"\",\r\n dataIndex: \"name\",\r\n render: (_, {id, name}) => `[${id}] ${name}`,\r\n renderText: (_, {id, name}) => `[${id}] ${name}`,\r\n noFilter: true,\r\n noSort: true\r\n }\r\n ]}\r\n height={400}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation(),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(Criteria);","import React, {Fragment} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {Draggable, Droppable} from \"react-beautiful-dnd\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport CardHeader from \"@material-ui/core/CardHeader\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport LockIcon from \"@material-ui/icons/Lock\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n background: \"#eeeeee\"\r\n },\r\n sectionHeaderContainer: {\r\n height: 48,\r\n padding: \"16px 16px 0\"\r\n },\r\n sectionHeaderContent: {\r\n width: \"100%\"\r\n },\r\n sectionHeaderIcon: {\r\n width: 24,\r\n marginRight: 8,\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\"\r\n },\r\n sectionHeaderTitle: {\r\n width: `calc(100% - 32px)`,\r\n height: 30,\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\"\r\n },\r\n sectionContentWrapper: {\r\n width: \"100%\",\r\n height: \"calc(100% - 48px)\",\r\n padding: 16\r\n },\r\n draggingHover: {\r\n border: \"1px dashed #999999\"\r\n },\r\n sectionContent: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\"\r\n },\r\n sectionItem: {\r\n padding: \"2px 16px\"\r\n },\r\n dimension: {\r\n marginTop: 0,\r\n marginBottom: 0\r\n },\r\n dimensionLabel: {\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\"\r\n },\r\n lockIcon: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n \"& > svg\": {\r\n color: \"gray\"\r\n }\r\n }\r\n});\r\n\r\nconst getItemStyle = (isDragging, draggableStyle) => ({\r\n userSelect: \"none\",\r\n marginBottom: 8,\r\n ...draggableStyle\r\n});\r\n\r\nconst LayoutSection = ({\r\n classes,\r\n id,\r\n title,\r\n Icon,\r\n dimensions,\r\n jsonStat,\r\n disabled,\r\n lockedDimensions\r\n }) =>\r\n\r\n \r\n \r\n \r\n {Icon}\r\n {title}\r\n \r\n \r\n }\r\n classes={{\r\n content: classes.sectionHeaderContent\r\n }}\r\n />\r\n \r\n {(provided, snapshot) => (\r\n
    \r\n
    \r\n {dimensions.map((item, idx) =>\r\n \r\n {(provided, snapshot) => {\r\n const hasLockIcon = (lockedDimensions || []).includes(item);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {jsonStat.dimension[item].label || item}\r\n \r\n \r\n {`(${jsonStat.size[jsonStat.id.indexOf(item)]})`}\r\n \r\n \r\n \r\n {hasLockIcon && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
    \r\n );\r\n }}\r\n \r\n )}\r\n {provided.placeholder}\r\n
    \r\n \r\n )}\r\n
    \r\n
    ;\r\n\r\nexport default compose(\r\n withStyles(styles)\r\n)(LayoutSection);","import React, {useEffect, useState} from 'react';\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport SanitizedHTML from \"../sanitized-html\";\r\n\r\nexport const ERROR_SNACKBAR_SEVERITY_ERROR = \"error\";\r\nexport const ERROR_SNACKBAR_SEVERITY_WARNING = \"warning\";\r\nexport const ERROR_SNACKBAR_SEVERITY_SUCCESS = \"success\";\r\n\r\nconst ErrorSnackbar = () => {\r\n\r\n const [isInitialized, setIsInitialized] = useState(false);\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [message, setMessage] = useState(null);\r\n const [severity, setSeverity] = useState(null);\r\n\r\n useEffect(() => {\r\n if (!isInitialized) {\r\n window.error = {\r\n show: (message, severity) => {\r\n setIsVisible(true);\r\n setMessage(message);\r\n setSeverity(severity);\r\n }\r\n };\r\n setIsInitialized(true);\r\n }\r\n }, [isInitialized]);\r\n\r\n return (\r\n {\r\n setIsVisible(false);\r\n }}\r\n TransitionProps={{\r\n onExited: () => {\r\n setMessage(null);\r\n setSeverity(null);\r\n }\r\n }}\r\n ClickAwayListenerProps={{\r\n onClickAway: () => {\r\n }\r\n }}\r\n anchorOrigin={{vertical: 'top', horizontal: 'center'}}\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ErrorSnackbar;","import React from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {DragDropContext} from \"react-beautiful-dnd\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport ViewCompactIcon from '@material-ui/icons/ViewCompact';\r\nimport ViewStreamIcon from '@material-ui/icons/ViewStream';\r\nimport ViewColumnIcon from '@material-ui/icons/ViewColumn';\r\nimport Table from \"../table\";\r\nimport LayoutSection from \"../layout-section\";\r\nimport \"./style.css\";\r\nimport {ERROR_SNACKBAR_SEVERITY_WARNING} from \"../error-snackbar/ErrorSnackbar\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: -8,\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\"\r\n },\r\n layoutContainer: {\r\n width: \"60%\",\r\n height: \"100%\",\r\n padding: 8\r\n },\r\n previewContainer: {\r\n width: \"40%\",\r\n height: \"100%\",\r\n padding: 8\r\n },\r\n section: {\r\n height: 240,\r\n padding: 8\r\n }\r\n});\r\n\r\nconst reorder = (list, startIndex, endIndex) => {\r\n const [removed] = list.splice(startIndex, 1);\r\n list.splice(endIndex, 0, removed);\r\n};\r\n\r\nconst move = (source, destination, droppableSource, droppableDestination) => {\r\n const [removed] = source.splice(droppableSource.index, 1);\r\n destination.splice(droppableDestination.index, 0, removed);\r\n};\r\n\r\nconst onDragEnd = (result, dimensions, setDimensions, lockedDimensions,t) => {\r\n\r\n const {\r\n source,\r\n destination\r\n } = result;\r\n\r\n // dropped outside the list\r\n if (!destination) {\r\n return;\r\n }\r\n\r\n const newDimensions = JSON.parse(JSON.stringify(dimensions));\r\n\r\n if (source.droppableId === destination.droppableId) {\r\n reorder(\r\n newDimensions[source.droppableId],\r\n source.index,\r\n destination.index\r\n );\r\n\r\n } else {\r\n const dimension = newDimensions[source.droppableId][source.index];\r\n if (lockedDimensions.includes(dimension)) {\r\n window.error.show(t(\"components.tableLayout.drag.alert\"), ERROR_SNACKBAR_SEVERITY_WARNING);\r\n return;\r\n }\r\n move(\r\n newDimensions[source.droppableId],\r\n newDimensions[destination.droppableId],\r\n source,\r\n destination\r\n );\r\n }\r\n\r\n setDimensions(newDimensions);\r\n};\r\n\r\nconst TableLayout = ({\r\n t,\r\n classes,\r\n jsonStat,\r\n layout,\r\n labelFormat,\r\n setLayout,\r\n lockedDimensions\r\n }) => {\r\n const {\r\n filters,\r\n sections,\r\n rows,\r\n cols,\r\n } = layout;\r\n\r\n let colCount = 1;\r\n cols.forEach(col => colCount *= jsonStat.size[jsonStat.id.indexOf(col)]);\r\n let rowCount = 1;\r\n rows.forEach(row => rowCount *= jsonStat.size[jsonStat.id.indexOf(row)]);\r\n sections.forEach(section => rowCount *= jsonStat.size[jsonStat.id.indexOf(section)]);\r\n\r\n const layoutLockedDimensions = (lockedDimensions || []);\r\n\r\n return (\r\n
    \r\n
    \r\n onDragEnd(result, layout, setLayout, layoutLockedDimensions, t)}>\r\n \r\n \r\n }\r\n dimensions={filters}\r\n jsonStat={jsonStat}\r\n lockedDimensions={layoutLockedDimensions}\r\n />\r\n \r\n \r\n }\r\n dimensions={sections}\r\n jsonStat={jsonStat}\r\n lockedDimensions={layoutLockedDimensions}\r\n />\r\n \r\n \r\n }\r\n dimensions={rows}\r\n jsonStat={jsonStat}\r\n lockedDimensions={layoutLockedDimensions}\r\n />\r\n \r\n \r\n }\r\n dimensions={cols}\r\n jsonStat={jsonStat}\r\n lockedDimensions={layoutLockedDimensions}\r\n />\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {t(\"components.tableLayout.rowCount\", {rowCount})}\r\n \r\n \r\n {t(\"components.tableLayout.colCount\", {colCount})}\r\n \r\n \r\n
    \r\n
    \r\n )\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(TableLayout)","import React from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {DragDropContext} from \"react-beautiful-dnd\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport ViewCompactIcon from '@material-ui/icons/ViewCompact';\r\nimport ViewStreamIcon from '@material-ui/icons/ViewStream';\r\nimport LayoutSection from \"../layout-section\";\r\nimport {ERROR_SNACKBAR_SEVERITY_WARNING} from \"../error-snackbar/ErrorSnackbar\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n leftSection: {\r\n padding: 8,\r\n height: 480\r\n },\r\n rightSection: {\r\n padding: 8,\r\n height: 240,\r\n maxWidth: \"100%\"\r\n }\r\n});\r\n\r\nconst reorder = (list, startIndex, endIndex) => {\r\n const [removed] = list.splice(startIndex, 1);\r\n list.splice(endIndex, 0, removed);\r\n};\r\n\r\nconst move = (source, destination, droppableSource, droppableDestination) => {\r\n const [removed] = source.splice(droppableSource.index, 1);\r\n destination.splice(droppableDestination.index, 0, removed);\r\n};\r\n\r\nconst swap = (sourceArr, destinationArr, droppableSource) => {\r\n const [removedSrc] = sourceArr.splice(droppableSource.index, 1);\r\n const [removedDst] = destinationArr.splice(0, 1, removedSrc);\r\n sourceArr.splice(sourceArr.length, 0, removedDst);\r\n};\r\n\r\nconst onDragEnd = (result, dimensions, setDimensions, lockedDimensions, t) => {\r\n\r\n const {\r\n source,\r\n destination\r\n } = result;\r\n\r\n // dropped outside the list\r\n if (!destination) {\r\n return;\r\n }\r\n\r\n const newDimensions = JSON.parse(JSON.stringify(dimensions));\r\n\r\n if (source.droppableId === destination.droppableId) {\r\n reorder(\r\n newDimensions[source.droppableId],\r\n source.index,\r\n destination.index\r\n );\r\n\r\n } else {\r\n const srcDimension = newDimensions[source.droppableId][source.index];\r\n\r\n if (lockedDimensions.includes(srcDimension)) {\r\n window.error.show(t(\"components.tableLayout.drag.alert\"));\r\n return;\r\n }\r\n\r\n if (\r\n (source.droppableId === \"secondaryDim\" && destination.droppableId === \"filters\") ||\r\n (source.droppableId === \"filters\" && destination.droppableId === \"secondaryDim\" && newDimensions[destination.droppableId].length === 0)\r\n ) {\r\n move(\r\n newDimensions[source.droppableId],\r\n newDimensions[destination.droppableId],\r\n source,\r\n destination\r\n );\r\n\r\n } else {\r\n\r\n const swapDimension = newDimensions[destination.droppableId][0];\r\n\r\n if (lockedDimensions.includes(swapDimension)) {\r\n window.error.show(t(\"components.tableLayout.drag.alert\"), ERROR_SNACKBAR_SEVERITY_WARNING);\r\n return;\r\n }\r\n\r\n swap(\r\n newDimensions[source.droppableId],\r\n newDimensions[destination.droppableId],\r\n source\r\n );\r\n }\r\n\r\n }\r\n\r\n setDimensions(newDimensions);\r\n};\r\n\r\nconst ChartLayout = ({\r\n t,\r\n classes,\r\n jsonStat,\r\n layout,\r\n setLayout,\r\n lockedDimensions\r\n }) => {\r\n\r\n const {\r\n primaryDim,\r\n secondaryDim,\r\n filters\r\n } = layout;\r\n\r\n const layoutLockedDimensions = (lockedDimensions || []);\r\n\r\n return (\r\n
    \r\n onDragEnd(result, layout, setLayout, layoutLockedDimensions, t)}>\r\n \r\n \r\n }\r\n dimensions={filters}\r\n jsonStat={jsonStat}\r\n lockedDimensions={layoutLockedDimensions}\r\n />\r\n \r\n \r\n \r\n \r\n }\r\n dimensions={primaryDim}\r\n jsonStat={jsonStat}\r\n disabled\r\n lockedDimensions={layoutLockedDimensions}\r\n />\r\n \r\n \r\n }\r\n dimensions={secondaryDim}\r\n jsonStat={jsonStat}\r\n lockedDimensions={layoutLockedDimensions}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(ChartLayout)","import React, {Fragment, useEffect, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport BarChartIcon from \"@material-ui/icons/BarChart\";\r\nimport BottomNavigationAction from \"@material-ui/core/BottomNavigationAction\";\r\nimport BottomNavigation from \"@material-ui/core/BottomNavigation\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {\r\n enableDatasetFetch,\r\n hideDatasetCriteria,\r\n setDatasetStructureCriteria,\r\n setDatasetViewer,\r\n showDatasetCriteria,\r\n submitDatasetChartFilterTree,\r\n submitDatasetChartLayout,\r\n submitDatasetTableFilterTree,\r\n submitDatasetTableLayout\r\n} from \"../../../state/dataset/datasetActions\";\r\nimport Criteria from \"../../criteria\";\r\nimport TableLayout from \"../../table-layout\";\r\nimport ChartLayout from \"../../chart-layout\";\r\nimport {getDimensionFilterValues, getFilterTreeFromJsonStat, getInitialFiltersValue} from \"../../../utils/jsonStat\";\r\nimport MetadataIcon from \"../../custom-icons/MetadataIcon\";\r\nimport FullscreenDialog from \"../../fullscreen-dialog\";\r\nimport {ViewerMode} from \"../../../state/dataset/constants\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n \"& .MuiBottomNavigation-root\": {\r\n height: \"unset !important\",\r\n },\r\n \"& .MuiBottomNavigationAction-label\": {\r\n fontSize: \"13px !important\"\r\n }\r\n },\r\n floatingMenuOption: {\r\n color: \"gray\"\r\n },\r\n floatingMenuOptionSelected: {\r\n color: theme.palette.primary.main\r\n },\r\n divider: {\r\n margin: \"4px 0\"\r\n },\r\n navigationActionDisabled: {\r\n color: \"rgba(0, 0, 0, 0.26) !important\",\r\n \"& svg\": {\r\n color: \"rgba(0, 0, 0, 0.26)\"\r\n }\r\n }\r\n});\r\n\r\nconst mapStateToProps = ({dataset}) => ({\r\n nodeCode: dataset.nodeCode,\r\n dataset: dataset.dataset,\r\n viewerIdx: dataset.viewerIdx,\r\n isCriteriaVisible: dataset.isCriteriaVisible,\r\n dimensions: dataset.dimensions,\r\n timeDim: dataset.timeDim,\r\n freqDim: dataset.freqDim,\r\n codelists: dataset.codelists,\r\n codelistsLength: dataset.codelistsLength,\r\n tableLayout: dataset.tableLayout,\r\n mapLayout: dataset.mapLayout,\r\n chartLayout: dataset.chartLayout,\r\n criteria: dataset.criteria,\r\n labelFormat: dataset.labelFormat,\r\n enableCriteria: dataset.enableCriteria,\r\n enableLayout: dataset.enableLayout,\r\n isTableEnabled: dataset.isTableEnabled,\r\n isMapEnabled: dataset.isMapEnabled,\r\n isChartEnabled: dataset.isChartEnabled,\r\n templateLayouts: dataset.template?.layouts,\r\n tableLockedDimensions: dataset.tableLockedDimensions,\r\n graphLockedDimensions: dataset.graphLockedDimensions\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onFetchDatasetEnable: maxObservation => dispatch(enableDatasetFetch(maxObservation)),\r\n onViewerSet: viewerIdx => dispatch(setDatasetViewer(viewerIdx)),\r\n onTableLayoutSet: layout => dispatch(submitDatasetTableLayout(layout)),\r\n onTableFilterTreeSet: filterTree => dispatch(submitDatasetTableFilterTree(filterTree)),\r\n onChartLayoutSet: layout => dispatch(submitDatasetChartLayout(layout)),\r\n onChartFilterTreeSet: filterTree => dispatch(submitDatasetChartFilterTree(filterTree)),\r\n onCriteriaShow: () => dispatch(showDatasetCriteria()),\r\n onCriteriaHide: () => dispatch(hideDatasetCriteria()),\r\n onSetCriteria: criteria => dispatch(setDatasetStructureCriteria(criteria)),\r\n});\r\n\r\nfunction SingleViewerSidebar(props) {\r\n\r\n const {\r\n classes,\r\n\r\n datasetMap,\r\n nodeCode,\r\n dataset,\r\n viewerIdx,\r\n enableCriteria,\r\n enableLayout,\r\n isCriteriaVisible,\r\n dimensions,\r\n timeDim,\r\n freqDim,\r\n codelists,\r\n codelistsLength,\r\n tableLayout,\r\n mapLayout,\r\n chartLayout,\r\n criteria,\r\n labelFormat,\r\n\r\n onFetchDatasetEnable,\r\n onViewerSet,\r\n onTableLayoutSet,\r\n onTableFilterTreeSet,\r\n onChartLayoutSet,\r\n onChartFilterTreeSet,\r\n onCriteriaShow,\r\n onCriteriaHide,\r\n onSetCriteria,\r\n\r\n nodeId,\r\n datasetId,\r\n viewers,\r\n onMetadataShow,\r\n maxObservation,\r\n nodeExtras,\r\n\r\n isTableEnabled,\r\n isMapEnabled,\r\n isChartEnabled,\r\n templateLayouts,\r\n tableLockedDimensions,\r\n graphLockedDimensions\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n const [tmpTableLayout, setTmpTableLayout] = useState(null);\r\n const [tmpChartLayout, setTmpChartLayout] = useState(null);\r\n\r\n const [isLayoutVisible, setLayoutVisibility] = useState(false);\r\n\r\n const [isCriteriaValid, setCriteriaValidity] = useState(true);\r\n\r\n const defaultLastNPeriods = nodeExtras?.DefaultLastNPeriods;\r\n\r\n useEffect(() => {\r\n setTmpTableLayout(tableLayout);\r\n }, [tableLayout]);\r\n\r\n useEffect(() => {\r\n setTmpChartLayout(chartLayout);\r\n }, [chartLayout]);\r\n\r\n const handleViewerSelect = index => {\r\n onViewerSet(index);\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleLayoutOpen = () => {\r\n setLayoutVisibility(true);\r\n };\r\n\r\n const handleLayoutClose = () => {\r\n setLayoutVisibility(false);\r\n setTmpTableLayout(tableLayout);\r\n setTmpChartLayout(chartLayout);\r\n };\r\n\r\n const handleLayoutSubmit = () => {\r\n setLayoutVisibility(false);\r\n\r\n if (viewerIdx === 0) {\r\n let filtersValue = tableLayout.filtersValue;\r\n\r\n if (tableLayout.filters.join(\"+\") !== tmpTableLayout.filters.join(\"+\")) {\r\n const newTableFilterTree = getFilterTreeFromJsonStat(tmpTableLayout.filters, dataset);\r\n onTableFilterTreeSet(newTableFilterTree);\r\n filtersValue = getInitialFiltersValue(dataset, tmpTableLayout, newTableFilterTree);\r\n }\r\n\r\n onTableLayoutSet({\r\n ...tmpTableLayout,\r\n filtersValue: filtersValue\r\n });\r\n\r\n } else if (viewerIdx >= 2) {\r\n const newPrimaryDim = tmpChartLayout.primaryDim[0];\r\n const newSecondaryDim = tmpChartLayout.secondaryDim[0];\r\n const prevPrimaryDim = chartLayout.primaryDim[0];\r\n const prevSecondaryDim = chartLayout.secondaryDim[0];\r\n\r\n const isSecondaryDimChanged = (\r\n (!prevSecondaryDim && !!newSecondaryDim) ||\r\n (!!prevSecondaryDim && !newSecondaryDim) ||\r\n (!!prevSecondaryDim && !!newSecondaryDim && prevSecondaryDim !== newSecondaryDim)\r\n );\r\n\r\n const filters = [...tmpChartLayout.primaryDim, ...tmpChartLayout.secondaryDim, ...tmpChartLayout.filters];\r\n const newChartFilterTree = getFilterTreeFromJsonStat(filters, dataset);\r\n if (newPrimaryDim !== prevPrimaryDim) {\r\n tmpChartLayout.primaryDimValues = dataset.dimension[newPrimaryDim].category.index;\r\n tmpChartLayout.secondaryDimValues = newSecondaryDim\r\n ? getDimensionFilterValues(newSecondaryDim, dataset, tmpChartLayout, newChartFilterTree)\r\n : []\r\n } else if (isSecondaryDimChanged) {\r\n tmpChartLayout.secondaryDimValues = newSecondaryDim\r\n ? getDimensionFilterValues(newSecondaryDim, dataset, tmpChartLayout, newChartFilterTree)\r\n : []\r\n }\r\n onChartLayoutSet({\r\n ...tmpChartLayout,\r\n filtersValue: getInitialFiltersValue(dataset, tmpChartLayout, newChartFilterTree)\r\n });\r\n onChartFilterTreeSet(newChartFilterTree);\r\n }\r\n };\r\n\r\n const handleCriteriaOpen = () => {\r\n onCriteriaShow();\r\n }\r\n\r\n const handleCriteriaClose = () => {\r\n onCriteriaHide();\r\n setCriteriaValidity(true);\r\n }\r\n\r\n const handleCriteriaSubmit = (maxObservation) => {\r\n onFetchDatasetEnable(maxObservation);\r\n }\r\n\r\n const isCriteriaDisabled = !enableCriteria;\r\n const isLayoutDisabled = !enableLayout || !dataset || !(!!tableLayout || !!mapLayout || !!chartLayout);\r\n const isTableDisabled = !dataset || !tableLayout;\r\n const isChartDisabled = !dataset || !chartLayout;\r\n const isMapDisabled = !dataset || !mapLayout;\r\n\r\n const metadataUrl = datasetMap[datasetId]?.referenceMetadata || null;\r\n\r\n return (\r\n
    \r\n\r\n \r\n }\r\n className={isCriteriaDisabled ? classes.navigationActionDisabled : \"\"}\r\n disabled={isCriteriaDisabled}\r\n role=\"menuitem\"\r\n />\r\n \r\n \r\n }\r\n className={(isLayoutDisabled || viewerIdx === 1) ? classes.navigationActionDisabled : \"\"}\r\n disabled={isLayoutDisabled || viewerIdx === 1}\r\n role=\"menuitem\"\r\n />\r\n \r\n \r\n\r\n {metadataUrl && (\r\n \r\n onMetadataShow(metadataUrl)}\r\n style={{marginBottom: 8}}\r\n >\r\n }\r\n role=\"menuitem\"\r\n />\r\n \r\n \r\n \r\n )}\r\n\r\n {isTableEnabled && !templateLayouts?.disableTable && (\r\n handleViewerSelect(0)}\r\n >\r\n \r\n \r\n )}\r\n\r\n {isChartEnabled&& !templateLayouts?.disableChart && (\r\n = 2 ? 0 : null}\r\n onChange={({currentTarget}) => setAnchorEl(currentTarget)}\r\n >\r\n = 2 ? viewers[viewerIdx].title : t(\"scenes.dataViewer.singleViewer.sidebar.chart\")}\r\n icon={viewerIdx >= 2 ? viewers[viewerIdx].icon : }\r\n className={isChartDisabled ? classes.navigationActionDisabled : \"\"}\r\n disabled={isChartDisabled}\r\n role=\"menuitem\"\r\n />\r\n \r\n )}\r\n \r\n {isMapEnabled && !templateLayouts?.disableMap && !isMapDisabled && (\r\n handleViewerSelect(1)}\r\n >\r\n \r\n \r\n )}\r\n\r\n setAnchorEl(null)}\r\n >\r\n {viewers\r\n .slice(2)\r\n .filter(({hidden}) => hidden !== true)\r\n .map(option => (\r\n handleViewerSelect(option.key)}\r\n >\r\n {option.icon}\r\n {option.title}\r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.singleViewer.dialogs.criteria.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleCriteriaSubmit(maxObservation)}\r\n disabled={!isCriteriaValid}\r\n >\r\n {t(\"commons.confirm.apply\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.dialogs.tableLayout.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n = 2}\r\n fullWidth\r\n maxWidth=\"md\"\r\n onClose={handleLayoutClose}\r\n >\r\n \r\n {t(\"scenes.dataViewer.dialogs.chartLayout.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(SingleViewerSidebar)","import React, {useCallback, useEffect, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport EnhancedTree from \"../enhanced-tree\";\r\nimport {getFilteredTreeWithPaths, getNode} from \"../../utils/tree\";\r\nimport RadioButtonCheckedIcon from \"@material-ui/icons/RadioButtonChecked\";\r\nimport RadioButtonUncheckedIcon from \"@material-ui/icons/RadioButtonUnchecked\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n }\r\n});\r\n\r\nconst mapStateToProps = ({catalog}) => ({\r\n datasetMap: catalog.datasets\r\n});\r\n\r\nfunction DetailLevelSelector(props) {\r\n const {\r\n classes,\r\n datasetMap,\r\n detailLevelTree,\r\n detailLevel,\r\n setDetailLevel,\r\n additionalDatasets\r\n } = props;\r\n\r\n const [filteredDetailLevelTree, setFilteredDetailLevelTree] = useState(null);\r\n\r\n const [checkedKeys, setCheckedKeys] = useState(null);\r\n\r\n const getTreeNodeIsSelectable = useCallback(({layers}) => (layers || []).length === 0, []);\r\n\r\n useEffect(() => {\r\n if (detailLevelTree) {\r\n if (additionalDatasets.length === 0) {\r\n setFilteredDetailLevelTree(detailLevelTree);\r\n\r\n } else {\r\n\r\n const additionalDatasetsDLs = additionalDatasets\r\n .map(({detailLevels}) => detailLevels)\r\n .sort((a, b) => a.length - b.length);\r\n\r\n const commonAdditionalDatasetsDLs = additionalDatasetsDLs\r\n .shift()\r\n .filter(dl => additionalDatasetsDLs.every(dls => dls.indexOf(dl) !== -1));\r\n\r\n const filteredDetailLevelTree = getFilteredTreeWithPaths(detailLevelTree, \"layers\", ({id}) => commonAdditionalDatasetsDLs.includes(id));\r\n\r\n setFilteredDetailLevelTree(filteredDetailLevelTree);\r\n }\r\n }\r\n }, [detailLevelTree, datasetMap, additionalDatasets]);\r\n\r\n useEffect(() => {\r\n if (filteredDetailLevelTree) {\r\n const checkedNode = getNode(filteredDetailLevelTree, \"layers\", ({id}) => id === detailLevel);\r\n if (checkedNode) {\r\n setCheckedKeys([checkedNode.key]);\r\n } else {\r\n setCheckedKeys([]);\r\n }\r\n }\r\n }, [filteredDetailLevelTree, detailLevel]);\r\n\r\n const handleDetailLevelCheck = newCheckedKeys => {\r\n let checkedNodeKey;\r\n\r\n if (newCheckedKeys.length === 1) {\r\n checkedNodeKey = newCheckedKeys[0];\r\n\r\n } else if (newCheckedKeys.length === 2) {\r\n checkedNodeKey = newCheckedKeys.find(key => !(checkedKeys || []).includes(key));\r\n }\r\n\r\n const checkedNode = getNode(filteredDetailLevelTree, \"layers\", ({key}) => key === checkedNodeKey);\r\n if (checkedNode) {\r\n setDetailLevel(checkedNode.id);\r\n }\r\n };\r\n\r\n return checkedKeys && (\r\n
    \r\n }\r\n checkboxUncheckedIcon={}\r\n treeActionsDirection=\"row-reverse\"\r\n />\r\n
    \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps)\r\n)(DetailLevelSelector);","import React, {Fragment, useCallback, useEffect, useState} from 'react';\r\nimport {compose} from \"redux\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {withTheme} from \"@material-ui/styles\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Call from \"../../hocs/call/index\";\r\nimport {v4 as uuidv4} from \"uuid\";\r\nimport {connect} from \"react-redux\";\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport {clearMapGeometry, fetchMapGeometry, setMapGeometryChangedStatus} from \"../../state/maps/mapsActions\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n mapWrapper: {\r\n position: \"relative\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n },\r\n map: {\r\n position: \"absolute\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n zIndex: 0,\r\n filter: \"blur(0)\"\r\n },\r\n overlay: {\r\n position: \"absolute\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n visibility: \"hidden\"\r\n }\r\n});\r\n\r\nconst spinnerOverlayStyle = {\r\n position: \"absolute\",\r\n zIndex: 3,\r\n color: \"white\",\r\n background: \"rgba(0, 0, 0, 0.1)\"\r\n};\r\n\r\nconst spinnerTextStyle = {\r\n fontWeight: \"bold\"\r\n};\r\n\r\nconst mapStateToProps = ({appConfig, maps}) => ({\r\n mapPreviewSettings: appConfig.mapTerritoryPreviewConfig,\r\n mapLayersConfig: maps.mapLayersConfig,\r\n maps: maps.maps\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onGeometryFetch: (mapStateUuid, nodeId, territoryDimValues, format, detailLevel, timeDimValue, territoryDimCodelist) =>\r\n dispatch(fetchMapGeometry(mapStateUuid, nodeId, territoryDimValues, format, detailLevel, timeDimValue, territoryDimCodelist, true)),\r\n onGeometryChangedStatusSet: (mapStateUuid, changed) => dispatch(setMapGeometryChangedStatus(mapStateUuid, changed)),\r\n onGeometryClear: mapStateUuid => dispatch(clearMapGeometry(mapStateUuid))\r\n});\r\n\r\nfunction MapPreview(props) {\r\n const {\r\n classes,\r\n theme,\r\n\r\n mapPreviewSettings,\r\n mapLayersConfig,\r\n defaultExtent,\r\n maps,\r\n\r\n onGeometryFetch,\r\n onGeometryChangedStatusSet,\r\n onGeometryClear,\r\n\r\n nodeId,\r\n detailLevel,\r\n territoryDimCodelist,\r\n timeDimValue,\r\n territories,\r\n changedTerritories\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n const [mapId, setMapId] = useState(null);\r\n\r\n const [isFetchEnabled, setIsFetchEnabled] = useState(true);\r\n\r\n const [filteredGeometries, setFilteredGeometries] = useState(null);\r\n const [geometryMap, setGeometryMap] = useState(null);\r\n\r\n const [isLayerReady, setIsLayerReady] = useState(false);\r\n\r\n const showSpinner = useCallback(() => {\r\n $(`#${mapId}__wrapper`).addClass(\"map__overlay--visible\");\r\n }, [mapId]);\r\n\r\n const hideSpinner = useCallback(() => {\r\n $(`#${mapId}__wrapper`).removeClass(\"map__overlay--visible\");\r\n }, [mapId]);\r\n\r\n const fetchGeometry = useCallback((cbParam) => {\r\n const {\r\n nodeId,\r\n detailLevel,\r\n territoryDimCodelist,\r\n territories,\r\n mapStateUuid\r\n } = cbParam;\r\n\r\n onGeometryFetch(mapStateUuid, nodeId, territories, \"geojson\", detailLevel, (timeDimValue || null), (territoryDimCodelist || null));\r\n showSpinner();\r\n }, [timeDimValue, onGeometryFetch, showSpinner]);\r\n\r\n // handle mapId and destroy map on component unmount\r\n useEffect(() => {\r\n const mapId = uuidv4();\r\n setMapId(mapId);\r\n\r\n return () => {\r\n if (window.document.getElementById(mapId) && window.LMap.isInitialized(mapId)) {\r\n window.LMap.destroyMap(mapId);\r\n }\r\n }\r\n }, [onGeometryClear]);\r\n\r\n // init map\r\n useEffect(() => {\r\n if (mapId && !window.LMap.isInitialized(mapId)) {\r\n\r\n const baseLayer = mapPreviewSettings.baseLayer || mapLayersConfig?.[0]?.id || null;\r\n const layers = (mapLayersConfig || []).filter(({id}) => id === baseLayer);\r\n\r\n const mapOptions = {\r\n baseLayer: baseLayer,\r\n layers: layers,\r\n defaultExtent: mapPreviewSettings.defaultExtent,\r\n showZoom: false,\r\n showSelection: false,\r\n showBaseLayerRadio: false,\r\n showScale: false,\r\n showLegend: false,\r\n disablePanAndZoom: true,\r\n primaryColor: theme.palette.primary.main\r\n };\r\n\r\n window.LMap.initMap(mapId, mapOptions);\r\n }\r\n }, [mapId, mapPreviewSettings, mapLayersConfig, defaultExtent, theme.palette.primary.main, t]);\r\n\r\n // handle resize\r\n useEffect(() => {\r\n if (mapId) {\r\n const func = () => window.LMap.handleViewportChange(mapId);\r\n window.addEventListener(\"resize\", func);\r\n return () => {\r\n window.removeEventListener(\"resize\", func);\r\n }\r\n }\r\n }, [mapId]);\r\n\r\n // handle detailLevel changes\r\n useEffect(() => {\r\n if (mapId) {\r\n setFilteredGeometries(null);\r\n setGeometryMap(null);\r\n\r\n setIsFetchEnabled(true);\r\n }\r\n }, [mapId, detailLevel]);\r\n\r\n // handle new fetched geometries\r\n useEffect(() => {\r\n if (mapId && maps?.[mapId]?.changed === true) {\r\n const geometries = maps[mapId].geometries;\r\n if (geometries) {\r\n\r\n const filteredGeometries = geometries.map(geometry => ({\r\n value: 0,\r\n id: geometry.id,\r\n identifier: geometry.uniqueId,\r\n geometry: geometry.geoJson\r\n }));\r\n setFilteredGeometries(filteredGeometries);\r\n\r\n const geometryMap = {};\r\n filteredGeometries.forEach(({id, identifier}) => geometryMap[id] = identifier);\r\n setGeometryMap(geometryMap);\r\n }\r\n\r\n onGeometryChangedStatusSet(mapId, false);\r\n setIsFetchEnabled(false);\r\n }\r\n }, [mapId, maps, onGeometryChangedStatusSet]);\r\n\r\n // add or update layer with filtered geometries\r\n useEffect(() => {\r\n if (filteredGeometries !== null) {\r\n\r\n showSpinner();\r\n\r\n const mapSettings = {\r\n paletteStartColor: mapPreviewSettings.geometryColor,\r\n paletteEndColor: mapPreviewSettings.geometryColor\r\n }\r\n\r\n setTimeout(\r\n () => {\r\n const layerOptions = {\r\n srid: \"EPSG:4326\",\r\n useGeoJSON: true,\r\n settings: mapSettings,\r\n onDataRender: () => {\r\n hideSpinner();\r\n setIsLayerReady(true);\r\n },\r\n borderColor: mapPreviewSettings.geometryBorderColor,\r\n disableSettings: true,\r\n onDataHover: null\r\n };\r\n window.LMap.updateLayer(mapId, filteredGeometries, null, layerOptions);\r\n },\r\n 0\r\n );\r\n }\r\n }, [mapId, filteredGeometries, mapPreviewSettings, showSpinner, hideSpinner]);\r\n\r\n // handle selected geometries\r\n useEffect(() => {\r\n if (isLayerReady && geometryMap) {\r\n const changed = [];\r\n changedTerritories.forEach(({id, selected}) => {\r\n if (geometryMap[id]) {\r\n changed.push({\r\n identifier: geometryMap[id],\r\n color: selected\r\n ? mapPreviewSettings.selectedGeometryColor\r\n : mapPreviewSettings.geometryColor,\r\n borderColor: selected\r\n ? mapPreviewSettings.selectedGeometryBorderColor\r\n : mapPreviewSettings.geometryBorderColor\r\n });\r\n }\r\n });\r\n\r\n window.LMap.setDataStyle(mapId, changed);\r\n }\r\n }, [mapId, isLayerReady, geometryMap, mapPreviewSettings, theme.palette.secondary.main, changedTerritories]);\r\n\r\n if (!mapId) {\r\n return ;\r\n }\r\n\r\n const detailLevelMissing = !detailLevel;\r\n const geometriesMissing = filteredGeometries && filteredGeometries.length === 0;\r\n const fetchingGeometriesError = maps[mapId]?.error;\r\n\r\n const isMapUnavailable = detailLevelMissing || geometriesMissing || fetchingGeometriesError;\r\n\r\n let unavailableMapErrorText;\r\n if (isMapUnavailable) {\r\n showSpinner();\r\n if (detailLevelMissing) {\r\n console.debug(\"missing detail level\");\r\n unavailableMapErrorText = t(\"components.map.noDetailLevel\");\r\n } else if (geometriesMissing) {\r\n unavailableMapErrorText = t(\"components.map.noDataToDisplay\"); // TODO: add detailLevel information\r\n } else if (fetchingGeometriesError) {\r\n unavailableMapErrorText = t(\"components.map.fetchingGeometriesError\");\r\n } else {\r\n unavailableMapErrorText = null;\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n \r\n : isFetchEnabled\r\n ? \r\n : null\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTheme,\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(MapPreview);\r\n","import React, {Fragment, useEffect, useState} from 'react';\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport Call from \"../../hocs/call\";\r\nimport EnhancedTree from \"../enhanced-tree\";\r\nimport {getFilteredTreeWithPaths, getMappedTree, getMaxTreeDepth, getNode, getNodes} from \"../../utils/tree\";\r\nimport InfiniteScrollTable from \"../infinite-scroll-table\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport LibraryAddCheckIcon from \"@material-ui/icons/LibraryAddCheck\";\r\nimport FilterNoneIcon from \"@material-ui/icons/FilterNone\";\r\nimport {fetchDatasetTerritoryLastYear, fetchDatasetTerritoryTerritories} from \"../../state/dataset/datasetActions\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport MapPreview from \"./MapPreview\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n }\r\n});\r\n\r\nconst mapStateToProps = ({appConfig, dataset}) => ({\r\n maxMapPolygonCount: appConfig.mapConfig.maxPolygonCount,\r\n territoryDimCodelist: dataset.territoryDimCodelist,\r\n timeDim: dataset.timeDim,\r\n criteria: dataset.criteria,\r\n territoryTree: dataset.territoryTree,\r\n lastTerritoryYear: dataset.lastTerritoryYear\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchLastYear: ({nodeId, datasetId, timeDim, criteria}) => dispatch(fetchDatasetTerritoryLastYear(nodeId, datasetId, timeDim, criteria)),\r\n fetchTerritories: ({nodeId, datasetId, territoryDim, detailLevel}) => dispatch(fetchDatasetTerritoryTerritories(nodeId, datasetId, territoryDim, detailLevel))\r\n});\r\n\r\nfunction TerritoriesSelector(props) {\r\n const {\r\n t,\r\n classes,\r\n maxMapPolygonCount,\r\n territoryDimCodelist,\r\n timeDim,\r\n criteria,\r\n territoryTree,\r\n lastTerritoryYear,\r\n fetchLastYear,\r\n fetchTerritories,\r\n nodeId,\r\n datasetId,\r\n territoryDim,\r\n detailLevelTree,\r\n detailLevel,\r\n territories,\r\n setTerritories,\r\n isFetchEnabled\r\n } = props;\r\n\r\n const [tree, setTree] = useState(null);\r\n const [expandedKeys, setExpandedKeys] = useState(null);\r\n const [mapTerritories, setMapTerritories] = useState(null);\r\n const [changedMapTerritories, setMapChangedTerritories] = useState(null);\r\n\r\n const [detailLevelSuffix] = useState(() => getNode(detailLevelTree, \"layers\", ({id}) => id === detailLevel)?.detailLevelSuffix || \"\");\r\n const [referenceYear] = useState(() => getNode(detailLevelTree, \"layers\", ({id}) => id === detailLevel)?.referenceYear || null);\r\n\r\n useEffect(() => {\r\n if (territoryTree) {\r\n const tree = getMappedTree(territoryTree, \"children\", node => ({...node, label: `[${(node.id || \"\").replace(detailLevelSuffix, \"\")}] ${node.name}`}))\r\n setTree(tree);\r\n }\r\n return () => {\r\n setTree(null);\r\n }\r\n }, [territoryTree, detailLevelSuffix]);\r\n\r\n useEffect(() => {\r\n setTree(null);\r\n }, [detailLevel]);\r\n\r\n useEffect(() => {\r\n if (tree && territories && expandedKeys === null && changedMapTerritories === null) {\r\n const newExpandedKeys = [];\r\n\r\n const recursive = subTree => subTree\r\n ? (\r\n subTree.map(node => {\r\n if (territories.includes(node.id)) {\r\n if (node.parentId) {\r\n newExpandedKeys.push(node.parentId);\r\n }\r\n } else if ((node.children || []).length > 0) {\r\n recursive(node.children);\r\n }\r\n return null;\r\n })\r\n )\r\n : [];\r\n recursive(tree);\r\n\r\n setExpandedKeys(newExpandedKeys.concat(tree.map(({id}) => id)));\r\n setMapChangedTerritories((territories || []).map(id => ({id: id, selected: true})));\r\n }\r\n }, [territories, tree, expandedKeys, changedMapTerritories]);\r\n\r\n useEffect(() => {\r\n if (tree) {\r\n const territoryValues = getNodes(tree, \"children\", ({children}) => (children || []).length === 0);\r\n setMapTerritories(territoryValues.map(({id}) => id));\r\n }\r\n }, [tree]);\r\n\r\n const handleCheck = (checkedKeys, checkedNode, checked) => {\r\n let newChangedTerritories;\r\n\r\n if (!checkedNode) {\r\n if (checkedKeys.length > 0) {\r\n newChangedTerritories = mapTerritories.map(id => ({id: id, selected: true}));\r\n } else {\r\n newChangedTerritories = mapTerritories.map(id => ({id: id, selected: false}));\r\n }\r\n\r\n } else {\r\n if (checked) {\r\n const keysToAdd = getNodes([checkedNode], \"children\", () => true).map(({id}) => id);\r\n newChangedTerritories = keysToAdd.map(id => ({id: id, selected: true}));\r\n\r\n } else {\r\n const parentTree = getFilteredTreeWithPaths(tree, \"children\", ({id}) => id === checkedNode.id);\r\n const keysToRemove = getNodes(parentTree, \"children\", () => true).map(({id}) => id)\r\n .concat(getNodes((checkedNode.children || []), \"children\", () => true).map(({id}) => id));\r\n newChangedTerritories = keysToRemove.map(id => ({id: id, selected: false}));\r\n }\r\n }\r\n\r\n setTerritories(checkedKeys);\r\n setMapChangedTerritories(newChangedTerritories);\r\n };\r\n\r\n const isMapVisible = mapTerritories && (mapTerritories.length < maxMapPolygonCount);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {tree\r\n ? getMaxTreeDepth(tree, \"children\") > 1\r\n ? expandedKeys\r\n ? (\r\n \r\n )\r\n : \r\n : (\r\n id}\r\n showHeader={false}\r\n columns={[\r\n {\r\n title: \"\",\r\n dataIndex: 'name',\r\n render: (_, {id, name}) => `[${id.replace(detailLevelSuffix, \"\")}] ${name}`,\r\n renderText: (_, {id, name}) => `[${id.replace(detailLevelSuffix, \"\")}] ${name}`,\r\n minWidthToContent: true,\r\n noFilter: true\r\n }\r\n ]}\r\n rowSelection={{\r\n selectedRowKeys: (territories || []),\r\n onChange: setTerritories,\r\n }}\r\n leftActions={\r\n \r\n \r\n \r\n setTerritories(tree.map(({id}) => id))}\r\n style={{padding: 8}}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n setTerritories([])}\r\n style={{padding: 8}}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n )\r\n : \r\n }\r\n \r\n {isMapVisible && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default compose(\r\n connect(mapStateToProps, mapDispatchToProps),\r\n withStyles(styles),\r\n withTranslation()\r\n)(TerritoriesSelector);","import React from 'react';\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\nconst CalculateIcon = props =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\nexport default CalculateIcon;","import React from 'react';\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\nconst FlagIcon = props =>\r\n \r\n \r\n \r\n \r\n\r\nexport default FlagIcon;","import React from 'react';\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\nconst FilterAltIcon = props =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\nexport default FilterAltIcon;","import React from 'react';\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\nconst FileDownloadIcon = props =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\nexport default FileDownloadIcon;","import React from 'react';\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport Table from \"../../table\";\r\nimport {getMultiViewerInitialTableLayout} from \"../../../utils/jsonStat\";\r\nimport {TABLE_HEADER_MERGED} from \"../../table/utils\";\r\n\r\nconst styles = () => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n overflow: \"hidden\"\r\n }\r\n});\r\n\r\nconst IndicatorCreateDialogPreview = ({\r\n classes,\r\n jsonStat,\r\n territoryDim,\r\n timeDim\r\n }) =>\r\n
    \r\n {jsonStat && (\r\n \r\n )}\r\n
    ;\r\n\r\nexport default withStyles(styles)(IndicatorCreateDialogPreview);","import React, {useRef} from 'react';\r\nimport {withStyles} from \"@material-ui/core\";\r\n\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\n\r\nconst styles = theme => ({\r\n button: {\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: \"#f5f5f5\",\r\n borderColor: theme.palette.primary.main,\r\n borderWidth: 1,\r\n position: \"relative\",\r\n height: 35,\r\n },\r\n icon: {\r\n width: theme.spacing(6),\r\n height: 35,\r\n position: 'absolute',\r\n pointerEvents: 'none',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n inputRoot: {\r\n color: 'inherit',\r\n position: 'absolute',\r\n width: `calc(100% - ${theme.spacing(6)})`,\r\n left: theme.spacing(6)\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n }\r\n});\r\n\r\nconst SearchInput = ({classes, query = \"\", onSubmit, placeholder, onChange, noAutocomplete}) => {\r\n\r\n const input = useRef(null);\r\n const {t} = useTranslation();\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n ,\r\n inputRef: input,\r\n }}\r\n onChange={onChange}\r\n onKeyDown={\r\n e => {\r\n if (e.key === \"Enter\" && input.current.value && input.current.value.length > 0) {\r\n e.preventDefault();\r\n onSubmit(input.current.value);\r\n }\r\n }\r\n }\r\n />\r\n
    \r\n );\r\n};\r\n\r\nexport default withStyles(styles)(SearchInput);","export const ValidatorStates = {\r\n ExpressionStart: \"ExpressionStart\",\r\n IntegerPart: \"IntegerPart\",\r\n AfterComma: \"AfterComma\",\r\n FractionalPart: \"FractionalPart\",\r\n ExpressionEnd: \"ExpressionEnd\"\r\n};\r\n\r\nexport const ValidatorInputs = {\r\n LeftParenthesis: \"LeftParenthesis\",\r\n RightParenthesis: \"RightParenthesis\",\r\n Digit: \"Digit\",\r\n Variable: \"Variable\",\r\n Operation: \"Operation\",\r\n Comma: \"Comma\"\r\n};\r\n\r\n\r\nexport const ValidatorFSM = {\r\n [ValidatorStates.ExpressionStart]: {\r\n [ValidatorInputs.LeftParenthesis]: ValidatorStates.ExpressionStart,\r\n [ValidatorInputs.Digit]: ValidatorStates.IntegerPart,\r\n [ValidatorInputs.Variable]: ValidatorStates.ExpressionEnd\r\n },\r\n [ValidatorStates.IntegerPart]: {\r\n [ValidatorInputs.RightParenthesis]: ValidatorStates.ExpressionEnd,\r\n [ValidatorInputs.Digit]: ValidatorStates.IntegerPart,\r\n [ValidatorInputs.Operation]: ValidatorStates.ExpressionStart,\r\n [ValidatorInputs.Comma]: ValidatorStates.AfterComma\r\n },\r\n [ValidatorStates.AfterComma]: {\r\n [ValidatorInputs.Digit]: ValidatorStates.FractionalPart\r\n },\r\n [ValidatorStates.FractionalPart]: {\r\n [ValidatorInputs.Digit]: ValidatorStates.FractionalPart,\r\n [ValidatorInputs.Operation]: ValidatorStates.ExpressionStart,\r\n [ValidatorInputs.RightParenthesis]: ValidatorStates.ExpressionEnd\r\n },\r\n [ValidatorStates.ExpressionEnd]: {\r\n [ValidatorInputs.RightParenthesis]: ValidatorStates.ExpressionEnd,\r\n [ValidatorInputs.Operation]: ValidatorStates.ExpressionStart\r\n }\r\n};","import React from 'react';\r\nimport BackspaceOutlinedIcon from '@material-ui/icons/BackspaceOutlined';\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nexport const KeypadValues = {\r\n \"(\": \"(\",\r\n \")\": \")\",\r\n \"C\": \"C\",\r\n \"D\": \"D\",\r\n \",\": \",\",\r\n \"+\": \"+\",\r\n \"-\": \"-\",\r\n \"*\": \"×\",\r\n \"/\": \"÷\",\r\n \"0\": 0,\r\n \"1\": 1,\r\n \"2\": 2,\r\n \"3\": 3,\r\n \"4\": 4,\r\n \"5\": 5,\r\n \"6\": 6,\r\n \"7\": 7,\r\n \"8\": 8,\r\n \"9\": 9\r\n}\r\n\r\nconst IndicatorCreateDialogKeypad = ({\r\n onClick,\r\n numberDisabled,\r\n operationDisabled,\r\n commaDisabled,\r\n leftParDisabled,\r\n rightParDisabled\r\n }) => {\r\n\r\n const Key = ({children, span = 1, value, disabled}) =>\r\n onClick(value || children)}\r\n className=\"indicator-calculator-dialog__click-listen\"\r\n disabled={disabled}\r\n >\r\n {children}\r\n ;\r\n\r\n return (\r\n
    \r\n
    \r\n {KeypadValues[\"(\"]}\r\n {KeypadValues[\")\"]}\r\n {KeypadValues.C}\r\n \r\n \r\n \r\n
    \r\n
    \r\n {KeypadValues[\"7\"]}\r\n {KeypadValues[\"8\"]}\r\n {KeypadValues[\"9\"]}\r\n {KeypadValues[\"/\"]}\r\n
    \r\n
    \r\n {KeypadValues[\"4\"]}\r\n {KeypadValues[\"5\"]}\r\n {KeypadValues[\"6\"]}\r\n {KeypadValues[\"*\"]}\r\n
    \r\n
    \r\n {KeypadValues[\"1\"]}\r\n {KeypadValues[\"2\"]}\r\n {KeypadValues[\"3\"]}\r\n {KeypadValues[\"-\"]}\r\n
    \r\n
    \r\n {KeypadValues[\"0\"]}\r\n {KeypadValues[\",\"]}\r\n {KeypadValues[\"+\"]}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default IndicatorCreateDialogKeypad;","export const INDICATOR_PERCENTAGE_VARIATION = \"INDICATOR_PERCENTAGE_VARIATION\";\r\nexport const INDICATOR_AVERAGE_ANNUAL_PERCENTAGE_VARIATION = \"INDICATOR_AVERAGE_ANNUAL_PERCENTAGE_VARIATION\";\r\nexport const INDICATOR_AVERAGE_ANNUAL_GROWTH_RATE = \"INDICATOR_AVERAGE_ANNUAL_GROWTH_RATE\";\r\n\r\nexport const YEAR_SELECT_WIDTH = 240;","import React, {forwardRef, useEffect, useImperativeHandle, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {useForm} from \"react-hook-form\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport ArrowDropUpIcon from \"@material-ui/icons/ArrowDropUp\";\r\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport I18nTextField from \"../../i18n-text-field\";\r\nimport FormLabelWithTooltip from \"../../form-label-with-tooltip\";\r\nimport SearchInput from \"../../search-input\";\r\nimport {ValidatorFSM, ValidatorInputs, ValidatorStates} from \"./validator\";\r\nimport Keypad, {KeypadValues} from \"./Keypad\";\r\nimport CustomEmpty from \"../../custom-empty\";\r\nimport {validateI18nObj} from \"../../../utils/i18n\";\r\nimport \"./style.css\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport {\r\n getDimensionLabel,\r\n getDimensionValueLabel,\r\n getFormattedDimensionValueLabel\r\n} from \"../../../utils/jsonStat\";\r\nimport { YEAR_SELECT_WIDTH } from \"./constants\";\r\nimport { LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME } from \"../../label-format-selector/constants\";\r\n\r\nconst styles = theme => ({\r\n tooltip: {\r\n fontSize: 13,\r\n },\r\n tooltipElement: {\r\n marginBottom: 4,\r\n fontWeight: \"normal\",\r\n },\r\n});\r\n\r\nconst Calculator = (\r\n {\r\n classes,\r\n years,\r\n nodeCode,\r\n dataset,\r\n datasetId,\r\n timeDim,\r\n combinations,\r\n variables,\r\n variablesDataset\r\n },\r\n ref\r\n) => {\r\n const {t} = useTranslation();\r\n\r\n const {register, errors, handleSubmit, watch, setValue} = useForm({\r\n defaultValues: {\r\n title: {},\r\n year: \"\",\r\n formula: [],\r\n variables: {},\r\n },\r\n });\r\n\r\n const [isExpressionVisible, setExpressionVisibility] = useState(false);\r\n const [fsmStates, setFsmStates] = useState([]);\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [yearValues, setYearValues] = useState(null);\r\n const [variablesArr, setVariablesArr] = useState(null);\r\n\r\n useEffect(() => {\r\n if (combinations) {\r\n const variablesArr = Object.keys(variables || {})\r\n .map(key => ({\r\n id: key,\r\n label: Object.keys(variables[key])\r\n .filter(key => key !== timeDim)\r\n .map(dim => getFormattedDimensionValueLabel(dataset, variablesDataset[key], dim, variables[key][dim], LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME, t))\r\n .join(\", \")\r\n }))\r\n .sort((a, b) => {\r\n const aYear = years.find((year) => a.id.includes(year));\r\n const aLetter = a.id.slice(aYear.length);\r\n const bYear = years.find((year) => b.id.includes(year));\r\n const bLetter = b.id.slice(bYear.length);\r\n\r\n if (aYear !== bYear) {\r\n if (aYear > bYear) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n } else {\r\n if (aLetter < bLetter) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n }\r\n });\r\n setVariablesArr(variablesArr);\r\n }\r\n }, [combinations, variables, variablesDataset, dataset, timeDim, years, t]);\r\n\r\n useEffect(() => {\r\n setYearValues(years.slice().reverse());\r\n }, [years, setYearValues]);\r\n\r\n useEffect(() => {\r\n if ((yearValues || []).length > 0) {\r\n setValue(\"year\", yearValues[0]);\r\n }\r\n }, [yearValues, setValue]);\r\n\r\n useEffect(() => {\r\n register(\r\n {\r\n name: \"title\",\r\n },\r\n {\r\n validate: val =>\r\n validateI18nObj(val) || t(\"commons.validation.requiredAnyLanguage\"),\r\n }\r\n );\r\n register(\r\n {\r\n name: \"year\",\r\n },\r\n {\r\n required: t(\"commons.validation.required\"),\r\n }\r\n );\r\n register(\r\n {\r\n name: \"formula\",\r\n },\r\n {\r\n validate: val =>\r\n (val || []).length > 0 || t(\"commons.validation.required\"),\r\n }\r\n );\r\n register({\r\n name: \"variables\",\r\n });\r\n }, [register, t]);\r\n\r\n useEffect(() => setFsmStates([ValidatorStates.ExpressionStart]), []);\r\n\r\n const handleClick = e => {\r\n if (\r\n e.target &&\r\n ((typeof e.target.className === \"string\" &&\r\n e.target.className.includes(\r\n \"indicator-calculator-dialog__click-listen\"\r\n )) ||\r\n (e.target.parentElement &&\r\n typeof e.target.parentElement.className === \"string\" &&\r\n e.target.parentElement.className.includes(\r\n \"indicator-calculator-dialog__click-listen\"\r\n )) ||\r\n (typeof e.target.className === \"object\" &&\r\n e.target.className.baseVal &&\r\n e.target.className.baseVal.includes(\r\n \"indicator-calculator-dialog__click-listen\"\r\n )) ||\r\n (e.target.parentElement &&\r\n typeof e.target.parentElement.className === \"object\" &&\r\n e.target.parentElement.className.baseVal &&\r\n e.target.parentElement.className.baseVal.includes(\r\n \"indicator-calculator-dialog__click-listen\"\r\n )) ||\r\n (document.getElementById(\r\n \"indicator-calculator-dialog__expression-container\"\r\n ) &&\r\n document\r\n .getElementById(\"indicator-calculator-dialog__expression-container\")\r\n .contains(e.target)))\r\n ) {\r\n setExpressionVisibility(true);\r\n } else {\r\n setExpressionVisibility(false);\r\n }\r\n };\r\n\r\n const handleFormulaChange = formula => {\r\n const usedVariables = {};\r\n formula.forEach(el => {\r\n if (variables[el]) {\r\n usedVariables[el] = variables[el];\r\n }\r\n });\r\n setValue(\"formula\", formula);\r\n setValue(\"variables\", usedVariables);\r\n };\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"click\", handleClick);\r\n return () => window.removeEventListener(\"click\", handleClick);\r\n }, []);\r\n\r\n const formula = watch(\"formula\");\r\n\r\n\r\n useImperativeHandle(ref, () => ({\r\n submit(f) {\r\n handleSubmit(indicator => {\r\n f(indicator);\r\n })();\r\n },\r\n cancel(f) {\r\n f();\r\n }\r\n }));\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n setValue(\"title\", value)}\r\n error={!!errors.title}\r\n helperText={errors.title?.message}\r\n required\r\n variant=\"outlined\"\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n setValue(\"year\", ev.target.value)}\r\n error={!!errors.year}\r\n helperText={errors.year?.message}\r\n required\r\n variant=\"outlined\"\r\n fullWidth\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {(yearValues || []).map(v =>\r\n {v}\r\n )}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {t(\"components.indicatorDialogs.create.form.fields.formula.label\")}\r\n \r\n }\r\n value={formula.join(\"\")}\r\n error={!!errors.formula}\r\n helperText={errors.formula?.message}\r\n InputProps={{\r\n endAdornment:\r\n \r\n {isExpressionVisible ? : }\r\n \r\n }}\r\n required\r\n variant=\"outlined\"\r\n fullWidth\r\n />\r\n \r\n {isExpressionVisible && (\r\n (combinations && variables)\r\n ? (\r\n \r\n \r\n \r\n \r\n \r\n setSearchText(e.target.value)}\r\n query={searchText}\r\n noAutocomplete\r\n />\r\n \r\n \r\n \r\n {(variablesArr || [])\r\n .filter(v => v.label.includes(searchText) || v.id.includes(searchText))\r\n .map(v =>\r\n \r\n {Object.keys(variables[v.id]).map((dim, dimIdx) => (\r\n
    \r\n {getDimensionLabel(dataset, variablesDataset[v.id], dim)}: {getDimensionValueLabel(dataset, variablesDataset[v.id], dim, variables[v.id][dim])}\r\n
    \r\n ))}\r\n
    \r\n }\r\n placement=\"top\"\r\n >\r\n {v.id}\r\n }\r\n variant=\"outlined\"\r\n className=\"indicator-calculator-dialog__click-listen\"\r\n style={{margin: 3, maxWidth: \"calc(100% - 6px)\"}}\r\n label={v.label}\r\n disabled={!ValidatorFSM[fsmStates[0]][ValidatorInputs.Variable]}\r\n onClick={() => {\r\n handleFormulaChange([...formula, v.id]);\r\n setFsmStates([ValidatorFSM[fsmStates[0]][ValidatorInputs.Variable], ...fsmStates]);\r\n }}\r\n />\r\n \r\n )}\r\n
    \r\n \r\n \r\n
    \r\n {\r\n if (val === KeypadValues.C) {\r\n handleFormulaChange([]);\r\n setFsmStates([ValidatorStates.ExpressionStart]);\r\n } else if (val === KeypadValues.D) {\r\n handleFormulaChange(formula.slice(0, formula.length - 1));\r\n if (fsmStates.length > 1) {\r\n setFsmStates(fsmStates.slice(1));\r\n }\r\n } else {\r\n const pressed = Object.keys(KeypadValues).find(k => KeypadValues[k] === val);\r\n handleFormulaChange([...formula, pressed]);\r\n if (pressed === \"(\") {\r\n setFsmStates([ValidatorFSM[fsmStates[0]][ValidatorInputs.LeftParenthesis], ...fsmStates]);\r\n } else if (pressed === \")\") {\r\n setFsmStates([ValidatorFSM[fsmStates[0]][ValidatorInputs.RightParenthesis], ...fsmStates]);\r\n } else if (pressed === \",\") {\r\n setFsmStates([ValidatorFSM[fsmStates[0]][ValidatorInputs.Comma], ...fsmStates]);\r\n } else if (pressed === \"+\" || pressed === \"-\" || pressed === \"*\" || pressed === \"/\") {\r\n setFsmStates([ValidatorFSM[fsmStates[0]][ValidatorInputs.Operation], ...fsmStates]);\r\n } else {\r\n setFsmStates([ValidatorFSM[fsmStates[0]][ValidatorInputs.Digit], ...fsmStates]);\r\n }\r\n }\r\n }}\r\n numberDisabled={!ValidatorFSM[fsmStates[0]][ValidatorInputs.Digit]}\r\n operationDisabled={!ValidatorFSM[fsmStates[0]][ValidatorInputs.Operation]}\r\n commaDisabled={!ValidatorFSM[fsmStates[0]][ValidatorInputs.Comma]}\r\n leftParDisabled={!ValidatorFSM[fsmStates[0]][ValidatorInputs.LeftParenthesis]}\r\n rightParDisabled={\r\n !ValidatorFSM[fsmStates[0]][ValidatorInputs.RightParenthesis] ||\r\n formula.filter(c => c === \"(\").length - formula.filter(c => c === \")\").length <= 0\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n \r\n )\r\n : (\r\n }\r\n />\r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n forwardRef\r\n)(Calculator)\r\n","import React, {\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {Box, FormControl, Grid, MenuItem, TextField, Tooltip, withStyles} from \"@material-ui/core\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {useForm} from \"react-hook-form\";\r\nimport I18nTextField from \"../../i18n-text-field\";\r\nimport { validateI18nObj } from \"../../../utils/i18n\";\r\nimport { INDICATOR_AVERAGE_ANNUAL_GROWTH_RATE, INDICATOR_AVERAGE_ANNUAL_PERCENTAGE_VARIATION, INDICATOR_PERCENTAGE_VARIATION, YEAR_SELECT_WIDTH } from \"./constants\";\r\nimport { getIndicatorDefinition } from \"./utils\";\r\nimport { getDimensionLabel, getFormattedDimensionValueLabel } from \"../../../utils/jsonStat\";\r\nimport { LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME } from \"../../label-format-selector/constants\";\r\nimport CustomEmpty from \"../../custom-empty\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nconst styles = theme => ({\r\n tooltip: {\r\n fontSize: 13,\r\n },\r\n tooltipElement: {\r\n marginBottom: 4,\r\n fontWeight: \"normal\",\r\n },\r\n});\r\n\r\nconst VariationAndGrowthRates = (\r\n {\r\n classes,\r\n dataset,\r\n datasetId,\r\n years,\r\n nodeCode,\r\n timeDim,\r\n combinations,\r\n variables,\r\n variablesDataset\r\n },\r\n ref\r\n) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const {register, errors, handleSubmit, watch, setValue, getValues} = useForm({\r\n defaultValues: {\r\n title: {},\r\n year: \"\",\r\n indicator:\"\",\r\n statistic:\"\",\r\n startYear: \"\",\r\n endYear: \"\"\r\n },\r\n }); \r\n\r\n const [reversedYearValues, setReversedYearValues] = useState(null);\r\n const [statistics, setStatistics] = useState([]);\r\n const [indicators, setIndicators] = useState(null);\r\n const [startYearValues, setStartYearValues] = useState([]);\r\n const [endYearValues, setEndYearValues] = useState([]);\r\n\r\n const handleStatisticChange = useCallback((selectedStatistic, statistics) => {\r\n if(selectedStatistic && statistics) {\r\n setValue(\"statistic\", selectedStatistic);\r\n const values = selectedStatistic.split(\"@\");\r\n const datasetId = values[0];\r\n const statisticKey = values[1]; \r\n const statistic = statistics[datasetId][statisticKey];\r\n setStartYearValues(statistic.years);\r\n setEndYearValues(statistic.years);\r\n const l = statistic.years.length;\r\n setValue(\"startYear\", statistic.years[l - 2]);\r\n setValue(\"endYear\", statistic.years[l -1]);\r\n } \r\n }, [setValue]);\r\n\r\n useEffect(() => {\r\n if (variablesDataset && variables) {\r\n\r\n const datasets = [...new Set(Object.values(variablesDataset))];\r\n\r\n const allStatistics = {};\r\n datasets.forEach(datasetId => {\r\n allStatistics[datasetId] = {};\r\n });\r\n\r\n Object.keys(variables || {})\r\n .forEach(key => {\r\n const variable = variables[key];\r\n const timeValue = variable[timeDim];\r\n const datasetId = variablesDataset[key];\r\n const noTimeCombinationArray = [];\r\n const combinationLabelArray = [];\r\n const dimArray = [];\r\n\r\n Object.keys(variable).filter(dim => dim !== timeDim).forEach(dim => {\r\n dimArray.push(dim);\r\n noTimeCombinationArray.push(variable[dim]);\r\n const label = getFormattedDimensionValueLabel(dataset, datasetId, dim, variable[dim], LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME, t);\r\n combinationLabelArray.push(label);\r\n })\r\n \r\n const noTimeCombinationStr = noTimeCombinationArray.join(\",\"); \r\n const datasetStatistics = allStatistics[datasetId];\r\n if (!(noTimeCombinationStr in datasetStatistics)) {\r\n datasetStatistics[noTimeCombinationStr] = {\r\n dimensionsLabels: combinationLabelArray,\r\n dimensions: dimArray,\r\n years: [timeValue],\r\n variables: [key]\r\n };\r\n } else {\r\n datasetStatistics[noTimeCombinationStr].years.push(timeValue);\r\n datasetStatistics[noTimeCombinationStr].variables.push(key);\r\n }\r\n\t });\r\n\r\n setStatistics(allStatistics);\r\n }\r\n }, [variablesDataset, variables, timeDim, dataset, setStatistics, t]);\r\n\r\n useEffect(() => {\r\n if ((Object.keys(statistics) || []).length > 0) {\r\n const datasetId = Object.keys(statistics)[0];\r\n const combination = Object.keys(statistics[datasetId])[0];\r\n handleStatisticChange(`${datasetId}@${combination}`, statistics); \r\n }\r\n }, [statistics, handleStatisticChange]);\r\n\r\n useEffect(() => {\r\n setReversedYearValues(years.slice().reverse());\r\n }, [years, setReversedYearValues]);\r\n\r\n useEffect(() => {\r\n if ((reversedYearValues || []).length > 0) {\r\n setValue(\"year\", reversedYearValues[0]);\r\n }\r\n }, [reversedYearValues, setValue]);\r\n\r\n useEffect(() => {\r\n const indicators = [\r\n {\r\n value:INDICATOR_PERCENTAGE_VARIATION,\r\n label:t(\"components.indicatorDialogs.create.form.fields.indicator.percentageVariation.label\")\r\n },\r\n {\r\n value:INDICATOR_AVERAGE_ANNUAL_PERCENTAGE_VARIATION,\r\n label:t(\"components.indicatorDialogs.create.form.fields.indicator.avgAnnualPercentageVariation.label\")\r\n },\r\n {\r\n value:INDICATOR_AVERAGE_ANNUAL_GROWTH_RATE,\r\n label:t(\"components.indicatorDialogs.create.form.fields.indicator.avgAnnualGrowthRate.label\")\r\n },\r\n ];\r\n setIndicators(indicators);\r\n }, [setIndicators, t]);\r\n\r\n useEffect(() => {\r\n if ((indicators || []).length > 0) {\r\n setValue(\"indicator\", indicators[0].value);\r\n }\r\n }, [indicators, setValue]);\r\n\r\n\r\n useEffect(() => {\r\n register(\r\n {\r\n name: \"title\",\r\n },\r\n {\r\n validate: val =>\r\n validateI18nObj(val) || t(\"commons.validation.requiredAnyLanguage\"),\r\n }\r\n );\r\n register(\r\n {\r\n name: \"year\",\r\n },\r\n {\r\n required: t(\"commons.validation.required\"),\r\n }\r\n );\r\n register(\r\n {\r\n name: \"indicator\",\r\n },\r\n {\r\n required: t(\"commons.validation.required\"),\r\n }\r\n );\r\n register(\r\n {\r\n name: \"statistic\",\r\n },\r\n {\r\n required: t(\"commons.validation.required\"),\r\n }\r\n ); \r\n register(\r\n {\r\n name: \"startYear\",\r\n },\r\n {\r\n required: t(\"commons.validation.required\"),\r\n }\r\n \r\n );\r\n register(\r\n {\r\n name: \"endYear\",\r\n },\r\n {\r\n required: t(\"commons.validation.required\"),\r\n }\r\n ); \r\n \r\n }, [register, t]);\r\n\r\n\r\n useImperativeHandle(ref, () => ({\r\n submit(f) {\r\n handleSubmit(variationAndGrowthRatesFormData => {\r\n const indicator = getIndicatorDefinition(variationAndGrowthRatesFormData, statistics); \r\n f(indicator);\r\n })();\r\n },\r\n cancel(f) {\r\n f();\r\n }\r\n }));\r\n\r\n if (!combinations) {\r\n return (\r\n }\r\n />\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n setValue(\"title\", value)}\r\n error={!!errors.title}\r\n helperText={errors.title?.message}\r\n required\r\n variant=\"outlined\"\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n setValue(\"year\", ev.target.value)}\r\n error={!!errors.year}\r\n helperText={errors.year?.message}\r\n required\r\n variant=\"outlined\"\r\n fullWidth\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {(reversedYearValues || []).map(v =>\r\n \r\n {v}\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setValue(\"indicator\", ev.target.value)}\r\n error={!!errors.indicator}\r\n helperText={errors.indicator?.message}\r\n required\r\n variant=\"outlined\"\r\n fullWidth\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {(indicators || []).map((indicator, idx) => \r\n {indicator.label}\r\n )} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleStatisticChange(ev.target.value, statistics)}\r\n error={!!errors.statistic}\r\n helperText={errors.statistic?.message}\r\n required\r\n variant=\"outlined\"\r\n fullWidth\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {(Object.keys(statistics) || []).map(datasetId => {\r\n const combinations = statistics[datasetId];\r\n return (\r\n (Object.keys(combinations) || []).map(c => {\r\n const key = `${datasetId}@${c}`\r\n return (\r\n \r\n \r\n {combinations[c].dimensions.map((dim, idx) =>(\r\n
    \r\n {getDimensionLabel(dataset, datasetId, dim)}: {combinations[c].dimensionsLabels[idx]}\r\n
    \r\n )\r\n )\r\n } \r\n \r\n }\r\n > \r\n
    \r\n {combinations[c].dimensionsLabels.join(\", \")}\r\n
    \r\n \r\n
    \r\n );\r\n })); \r\n } \r\n )} \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n setValue(\"startYear\", ev.target.value)}\r\n error= { getValues(\"endYear\") <= getValues(\"startYear\")}\r\n helperText={getValues(\"endYear\") <= getValues(\"startYear\")\r\n ? t(\"components.indicatorDialogs.create.form.fields.indicator.variation.years.helperText\")\r\n : null\r\n }\r\n required\r\n variant=\"outlined\"\r\n fullWidth\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {(startYearValues || []).map(v =>\r\n {v}\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n setValue(\"endYear\", ev.target.value)}\r\n required\r\n variant=\"outlined\"\r\n fullWidth\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {(endYearValues || []).map(v =>\r\n {v}\r\n )}\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n forwardRef\r\n )(VariationAndGrowthRates);\r\n","import { INDICATOR_AVERAGE_ANNUAL_GROWTH_RATE, INDICATOR_AVERAGE_ANNUAL_PERCENTAGE_VARIATION, INDICATOR_PERCENTAGE_VARIATION } from \"./constants\";\r\n\r\nexport const getIndicatorDefinition = (\r\n variationAndGrowthRatesFormData, statistics\r\n) => {\r\n const values = variationAndGrowthRatesFormData.statistic.split(\"@\");\r\n const datasetId = values[0];\r\n const statisticKey = values[1]; \r\n const statistic = statistics[datasetId][statisticKey];\r\n const dimensionsValues = statisticKey.split(\",\");\r\n const variable = {};\r\n for(let i = 0; i < dimensionsValues.length; i++) {\r\n variable[statistic.dimensions[i]] = dimensionsValues[i];\r\n }\r\n \r\n const variables = {};\r\n const startYear = variationAndGrowthRatesFormData.startYear;\r\n const startYearIndex = statistic.years.indexOf(startYear);\r\n const startYearName = statistic.variables[startYearIndex];\r\n const startVariable = \r\n {\r\n ...variable,\r\n \"TIME_PERIOD\": startYear \r\n }\r\n variables[startYearName] = startVariable;\r\n\r\n const endYear = variationAndGrowthRatesFormData.endYear;\r\n const endYearIndex = statistic.years.indexOf(endYear);\r\n const endYearName = statistic.variables[endYearIndex];\r\n const endVariable = \r\n {\r\n ...variable,\r\n \"TIME_PERIOD\": endYear, \r\n }\r\n variables[endYearName] = endVariable;\r\n\r\n let formula = \"\";\r\n switch (variationAndGrowthRatesFormData.indicator) {\r\n default:\r\n case INDICATOR_PERCENTAGE_VARIATION:\r\n formula = `([${endYearName}]-[${startYearName}])/[${startYearName}]*100`; \r\n break;\r\n case INDICATOR_AVERAGE_ANNUAL_PERCENTAGE_VARIATION:\r\n formula = `([${endYearName}]-[${startYearName}])/[${startYearName}]/(${endYear}-${startYear})*100`; \r\n break;\r\n case INDICATOR_AVERAGE_ANNUAL_GROWTH_RATE:\r\n formula = `@@LOG([${endYearName}]/[${startYearName}])/(${endYear}-${startYear})*100`; \r\n break;\r\n \r\n }\r\n\r\n const indicator = {\r\n title: variationAndGrowthRatesFormData.title,\r\n year: variationAndGrowthRatesFormData.year,\r\n formula: formula.split(''),\r\n variables: variables\r\n };\r\n\r\n return indicator;\r\n};","import React, {Fragment, useEffect, useRef, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {Tab, Tabs, withStyles} from \"@material-ui/core\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport FullscreenDialog from \"../../fullscreen-dialog\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Preview from \"./Preview\";\r\nimport {fetchDatasetIndicatorPreview, publishDatasetIndicator, resetDatasetIndicatorPreview} from \"../../../state/dataset/datasetActions\";\r\nimport {connect} from \"react-redux\";\r\nimport CustomEmpty from \"../../custom-empty\";\r\nimport \"./style.css\";\r\nimport {MARGINAL_DIMENSION_KEY} from \"../../../utils/jsonStat\";\r\nimport Calculator from \"./Calculator\";\r\nimport {isMultiLanguageNameUnique} from \"../../../utils/validator\";\r\nimport VariationAndGrowthRates from \"./VariationAndGrowthRates\";\r\nimport BitSet from \"bitset\";\r\nimport {getDimensionValueFromIdx} from \"../../table/utils\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst TAB_ID_CALCULATOR = \"calculator\";\r\nconst TAB_ID_STATISTICS = \"statistics\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: \"100%\"\r\n },\r\n tabContent: {\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n height: \"calc(100% - 60px)\",\r\n marginTop: 12,\r\n padding: 12\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n indicatorsBaseUrl: state.config.externalServices?.indicator,\r\n defaultLanguage: state.app.language,\r\n languages: state.app.languages,\r\n nodeId: state.node.nodeId,\r\n nodeCode: state.node.code,\r\n datasetId: state.dataset.datasetId,\r\n dataset: state.dataset.dataset,\r\n territoryDim: state.dataset.territoryDim,\r\n timeDim: state.dataset.timeDim,\r\n criteria: state.dataset.criteria,\r\n tableLayout: state.dataset.tableLayout,\r\n indicators: state.dataset.indicators,\r\n indicatorPreview: state.dataset.indicatorPreview,\r\n additionalDatasets: state.dataset.additionalDatasets\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onPreviewFetch: (nodeId, nodeCode, datasetId, criteria, timeDim, territoryDim, indicators, additionalDatasets, defaultLanguage, languages, indicatorsBaseUrl) =>\r\n dispatch(fetchDatasetIndicatorPreview(nodeId, nodeCode, datasetId, criteria, timeDim, territoryDim, indicators, additionalDatasets, defaultLanguage, languages, indicatorsBaseUrl)),\r\n onPreviewReset: () => dispatch(resetDatasetIndicatorPreview()),\r\n onPublish: indicator => dispatch(publishDatasetIndicator(indicator))\r\n});\r\n\r\nconst getStrFromIndex = index => {\r\n let res = \"\";\r\n while (index >= 0) {\r\n res = String.fromCharCode(index % 26 + 65) + res;\r\n index = Math.floor(index / 26) - 1;\r\n }\r\n return res;\r\n};\r\n\r\nconst IndicatorCreateDialog = ({\r\n classes,\r\n indicatorsBaseUrl,\r\n defaultLanguage,\r\n languages,\r\n nodeId,\r\n nodeCode,\r\n datasetId,\r\n dataset,\r\n territoryDim,\r\n timeDim,\r\n criteria,\r\n tableLayout,\r\n indicators,\r\n indicatorPreview,\r\n additionalDatasets,\r\n isOpen,\r\n onClose,\r\n onPreviewFetch,\r\n onPreviewReset,\r\n onPublish\r\n }) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const [tab, setTab] = useState(TAB_ID_CALCULATOR);\r\n const [worker] = useState(() => new Worker(\"./workers/getTableSupportStructuresWorker.js\"));\r\n const [isNameErrorVisible, setNameErrorVisibility] = useState(false);\r\n const [tableSupportStructures, setTableSupportStructures] = useState(null);\r\n const [combinations, setCombinations] = useState(null);\r\n const [variables, setVariables] = useState(null);\r\n const [variablesDataset, setVariablesDataset] = useState(null);\r\n\r\n const calculatorFormRef = useRef();\r\n const variationAndGrowthRatesFormRef = useRef();\r\n\r\n const years = dataset?.dimension?.[timeDim]?.category?.index || [];\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (worker) {\r\n worker.terminate();\r\n }\r\n };\r\n }, [worker]);\r\n\r\n useEffect(() => {\r\n if (dataset && tableLayout) {\r\n worker.onmessage = event => {\r\n setTableSupportStructures({\r\n ...event.data,\r\n valorizedCols: new BitSet(event.data.valorizedColsArr)\r\n });\r\n };\r\n worker.onerror = () => {\r\n setTableSupportStructures(null);\r\n };\r\n worker.postMessage({\r\n jsonStat: dataset,\r\n layout: tableLayout,\r\n isPreview: false,\r\n removeEmptyLines: true\r\n });\r\n\r\n } else {\r\n setTableSupportStructures(null);\r\n setCombinations(null);\r\n setVariables(null);\r\n setVariablesDataset(null);\r\n }\r\n }, [worker, dataset, tableLayout]);\r\n\r\n useEffect(() => {\r\n if (dataset && tableSupportStructures) {\r\n const {\r\n dimValuesMap,\r\n dimSpanMap,\r\n valorizedCols\r\n } = tableSupportStructures;\r\n\r\n const combinations = [];\r\n const variables = {};\r\n const variableDatasetMap = {};\r\n\r\n const variableDatasetList = [];\r\n let c = 0;\r\n for (let b of valorizedCols) {\r\n const idx = c;\r\n if (b) {\r\n let isIndicator = false;\r\n let combination = {};\r\n let variableDatasetId = `${nodeCode},${datasetId}`;\r\n tableLayout.cols.forEach(dim => {\r\n const dimValue = getDimensionValueFromIdx(dim, idx, dimValuesMap, dimSpanMap);\r\n if (dim !== MARGINAL_DIMENSION_KEY) {\r\n combination[dim] = dimValue;\r\n } else if ((dataset.extension.marginalvalues[dimValue].label || \"\").length === 0) {\r\n combination = {\r\n ...combination,\r\n ...dataset.extension.marginalvalues[dimValue].dimensionvalues\r\n };\r\n variableDatasetId = dataset.extension.marginalvalues[dimValue].datasetid;\r\n } else {\r\n isIndicator = true;\r\n }\r\n });\r\n if (!isIndicator) {\r\n combinations.push(combination);\r\n variableDatasetList.push(variableDatasetId);\r\n }\r\n }\r\n c++;\r\n }\r\n\r\n const letters = [];\r\n combinations.forEach((combination, idx) => {\r\n const noTimeCombinationStr = Object.keys(combination)\r\n .filter(dim => dim !== timeDim)\r\n .map(dim => combination[dim])\r\n .join(\",\");\r\n if (!letters.includes(noTimeCombinationStr)) {\r\n letters.push(noTimeCombinationStr);\r\n }\r\n const variable = combination[timeDim] + getStrFromIndex(letters.indexOf(noTimeCombinationStr));\r\n variables[variable] = combination;\r\n variableDatasetMap[variable] = variableDatasetList[idx];\r\n });\r\n\r\n setCombinations(combinations);\r\n setVariables(variables);\r\n setVariablesDataset(variableDatasetMap);\r\n }\r\n }, [tableSupportStructures, datasetId, nodeCode, dataset, tableLayout, timeDim]);\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", handleStyle);\r\n return () => window.removeEventListener(\"resize\", handleStyle);\r\n }, []);\r\n\r\n useEffect(() => {\r\n handleStyle();\r\n });\r\n\r\n const handleStyle = () => {\r\n const tabsHeight = $(\"#indicator-create__tabs\").outerHeight(true) || 0;\r\n $(\"indicator-create__tab-content\").height(`calc(100% - ${tabsHeight}px)`);\r\n };\r\n\r\n const handleClose = () => {\r\n if (tab === TAB_ID_CALCULATOR) {\r\n if (calculatorFormRef.current) {\r\n calculatorFormRef.current.cancel(() => {\r\n onClose();\r\n });\r\n } else {\r\n onClose();\r\n }\r\n } else {\r\n if (variationAndGrowthRatesFormRef.current) {\r\n variationAndGrowthRatesFormRef.current.cancel(() => {\r\n onClose();\r\n });\r\n } else {\r\n onClose();\r\n }\r\n }\r\n };\r\n\r\n const handlePreviewOpen = indicator => {\r\n const filteredVariablesDataset = {};\r\n Object.keys(indicator.variables).forEach(variable => filteredVariablesDataset[variable] = variablesDataset[variable]);\r\n const newIndicator = {\r\n ...indicator,\r\n variablesDataset: filteredVariablesDataset\r\n };\r\n onPreviewFetch(nodeId, nodeCode, datasetId, criteria, timeDim, territoryDim, [newIndicator], additionalDatasets, defaultLanguage, languages, indicatorsBaseUrl);\r\n };\r\n\r\n const handlePreviewClose = () => {\r\n onPreviewReset();\r\n };\r\n\r\n const handlePublish = indicator => {\r\n if (isMultiLanguageNameUnique(indicator.title, indicators.map(({title}) => title))) {\r\n const filteredVariablesDataset = {};\r\n Object.keys(indicator.variables).forEach(variable => filteredVariablesDataset[variable] = variablesDataset[variable]);\r\n onPublish({\r\n ...indicator,\r\n variablesDataset: filteredVariablesDataset\r\n });\r\n } else {\r\n setNameErrorVisibility(true);\r\n }\r\n };\r\n\r\n const handleSubmit = (f) => {\r\n if (tab === TAB_ID_CALCULATOR) {\r\n if (calculatorFormRef.current) {\r\n calculatorFormRef.current.submit(f);\r\n }\r\n } else {\r\n if (variationAndGrowthRatesFormRef.current) {\r\n variationAndGrowthRatesFormRef.current.submit(f);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n {t(\"components.indicatorDialogs.create.dialogs.form.title\")}\r\n \r\n \r\n \r\n {\r\n if (tab === TAB_ID_CALCULATOR) {\r\n document.getElementById(\"indicator-create__tab-content\").style.overflowY = \"auto\";\r\n } else {\r\n document.getElementById(\"indicator-create__tab-content\").style.overflowY = \"hidden\";\r\n }\r\n setTab(tab);\r\n }}\r\n >\r\n \r\n \r\n \r\n
    \r\n {dataset !== null && tab === TAB_ID_CALCULATOR && (\r\n \r\n )}\r\n {dataset !== null && tab === TAB_ID_STATISTICS && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"components.indicatorDialogs.create.dialogs.preview.title\")}\r\n \r\n \r\n {indicatorPreview !== \"\"\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n\r\n setNameErrorVisibility(false)}\r\n >\r\n setNameErrorVisibility(false)}>\r\n {t(\"components.indicatorDialogs.create.dialogs.error.duplicateName.title\")}\r\n \r\n \r\n {t(\"components.indicatorDialogs.create.dialogs.error.duplicateName.content\")}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n );\r\n};\r\n\r\nexport default compose(\r\n connect(mapStateToProps, mapDispatchToProps),\r\n withStyles(styles)\r\n)(IndicatorCreateDialog);","import React, {useState} from 'react';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {connect} from \"react-redux\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {getI18nObjCustomFilterAndSearch, localizeI18nObj} from \"../../../utils/i18n\";\r\nimport CustomMaterialTable from \"../../custom-material-table\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport {deleteDatasetIndicator} from \"../../../state/dataset/datasetActions\";\r\n\r\nconst mapStateToProps = ({app, dataset}) => ({\r\n defaultLanguage: app.language,\r\n languages: app.languages,\r\n indicators: dataset.indicators\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onDelete: indicatorIdx => dispatch(deleteDatasetIndicator(indicatorIdx)),\r\n});\r\n\r\nconst IndicatorListDialog = ({\r\n defaultLanguage,\r\n languages,\r\n indicators,\r\n isOpen,\r\n onClose,\r\n onDelete,\r\n }) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const [indicatorIdx, setIndicatorIdx] = useState(null);\r\n\r\n const handleClose = () => {\r\n onClose();\r\n };\r\n\r\n const handleDelete = () => {\r\n onDelete(indicatorIdx);\r\n setIndicatorIdx(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n {t(\"components.indicatorDialogs.list.title\")}\r\n \r\n \r\n\r\n localizeI18nObj(title, defaultLanguage, languages),\r\n customFilterAndSearch: getI18nObjCustomFilterAndSearch(defaultLanguage, languages)\r\n },\r\n // {\r\n // field: \"formula\",\r\n // title: _t(\"components.indicatorDialogs.list.columns.formula\"),\r\n // render: ({formula}) => formula.join(\"\"),\r\n // customFilterAndSearch: (str, {formula}) => (formula.join(\"\") || \"\").toLowerCase().includes((str || \"\").toLowerCase())\r\n // },\r\n {\r\n field: \"year\",\r\n title: t(\"components.indicatorDialogs.list.columns.year\"),\r\n customFilterAndSearch: getI18nObjCustomFilterAndSearch(defaultLanguage, languages)\r\n },\r\n ]}\r\n data={(indicators || []).map((indicator, idx) => ({...indicator, idx: idx}))}\r\n actions={[\r\n {\r\n icon: DeleteIcon,\r\n tooltip: t(\"components.indicatorDialogs.list.actions.delete\"),\r\n onClick: (_, {idx}) => {\r\n setIndicatorIdx(idx);\r\n }\r\n }\r\n ]}\r\n options={{\r\n actionsColumnIndex: 3,\r\n showTitle: false\r\n }}\r\n />\r\n\r\n setIndicatorIdx(null)}\r\n maxWidth=\"xs\"\r\n >\r\n setIndicatorIdx(null)}>\r\n {t(\"components.indicatorDialogs.list.dialogs.deleteIndicator.title\")}\r\n \r\n \r\n {t(\"components.indicatorDialogs.list.dialogs.deleteIndicator.content\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(IndicatorListDialog);","import React, {Fragment, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport FullscreenDialog from \"../../fullscreen-dialog\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport {connect} from \"react-redux\";\r\nimport Stepper from \"@material-ui/core/Stepper\";\r\nimport Step from \"@material-ui/core/Step\";\r\nimport StepButton from \"@material-ui/core/StepButton\";\r\nimport CategoriesTree from \"../../categories-tree\";\r\nimport {\r\n changeDatasetAdditionalDataset,\r\n fetchDatasetAdditionalDatasetStructure,\r\n resetDatasetStructureCriteria,\r\n submitDatasetAdditionalDataset\r\n} from \"../../../state/dataset/datasetActions\";\r\nimport Call from \"../../../hocs/call\";\r\nimport Criteria from \"../../criteria\";\r\nimport CustomEmpty from \"../../custom-empty\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {NodeDataAccessibility, NodeVisibility} from \"../../../model/IHubMinimalNode.d.ts\";\r\nimport {ViewerMode} from \"../../../state/dataset/constants\";\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n steps: {\r\n height: 108\r\n },\r\n stepContent: {\r\n height: \"calc(100% - 108px)\",\r\n overflow: \"hidden\"\r\n },\r\n nodeSelect: {\r\n marginBottom: 8\r\n },\r\n catalog: {\r\n height: \"calc(100% - 64px)\",\r\n overflow: \"auto\"\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n nodes: state.hub.nodes,\r\n currentNode: state.node,\r\n territoryDimCriteria: state.dataset.criteria?.[state.dataset.territoryDim] || null,\r\n additionalDataset: state.dataset.additionalDataset\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onADChange: additionalDataset => dispatch(changeDatasetAdditionalDataset(additionalDataset)),\r\n fetchADStructure: ({nodeId, datasetId}) => dispatch(fetchDatasetAdditionalDatasetStructure(nodeId, datasetId)),\r\n onCriteriaReset: () => dispatch(resetDatasetStructureCriteria()),\r\n onDatasetSubmit: () => dispatch(submitDatasetAdditionalDataset())\r\n});\r\n\r\nconst AdditionalDatasetCreateDialog = ({\r\n classes,\r\n\r\n nodes,\r\n currentNode,\r\n territoryDimCriteria,\r\n additionalDataset,\r\n onADChange,\r\n fetchADStructure,\r\n onCriteriaReset,\r\n onDatasetSubmit,\r\n\r\n catalog,\r\n fetchCatalog,\r\n isOpen,\r\n onClose,\r\n defaultLastNPeriods\r\n }) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const [step, setStep] = useState(0);\r\n\r\n const [selectedNodeId, setSelectedNodeId] = useState(currentNode.nodeId);\r\n\r\n const [isCriteriaValid, setCriteriaValidity] = useState(true);\r\n\r\n const goToStepData = () => {\r\n setStep(0);\r\n };\r\n\r\n const goToStepFilters = () => {\r\n setStep(1);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"components.additionalDatasetDialog.create.dialogs.wizard.title\", {step: step + 1})}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"components.additionalDatasetDialog.create.dialogs.wizard.steps.data.title\")}\r\n \r\n \r\n \r\n \r\n {t(\"components.additionalDatasetDialog.create.dialogs.wizard.steps.filter.title\")}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {step === 0 && (\r\n \r\n \r\n setSelectedNodeId(ev.target.value)}\r\n variant=\"outlined\"\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {nodes\r\n .filter(({visible, dataAccess}) => visible === NodeVisibility.Yes || dataAccess === NodeDataAccessibility.Profiled)\r\n .map(({nodeId, name}, idx) => (\r\n {name}\r\n ))\r\n }\r\n \r\n \r\n
    \r\n {!catalog\r\n ? \r\n : catalog.isEmpty\r\n ? (\r\n \r\n )\r\n : (\r\n {\r\n const node = nodes.find(({nodeId}) => nodeId === selectedNodeId);\r\n onADChange({\r\n nodeId: node.nodeId,\r\n nodeCode: node.code,\r\n datasetId: datasetId,\r\n datasetTitle: catalog?.datasets?.[datasetId]\r\n ? catalog.datasets[datasetId].title\r\n : catalog.uncategorizedDatasets.find(({identifier}) => identifier === datasetId).title\r\n });\r\n }}\r\n />\r\n )\r\n }\r\n
    \r\n
    \r\n )}\r\n {step === 1 && (\r\n \r\n {additionalDataset.dimensions\r\n ? (\r\n onADChange({\r\n criteria: criteria\r\n })}\r\n isCriteriaValid={isCriteriaValid}\r\n setCriteriaValidity={setCriteriaValidity}\r\n onSubmit={onDatasetSubmit}\r\n defaultLastNPeriods={defaultLastNPeriods}\r\n preserveFiltersWithDynamic\r\n />\r\n )\r\n : \r\n }\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n {step === 0 && (\r\n \r\n \r\n \r\n {t(\"commons.confirm.next\")}\r\n \r\n \r\n )}\r\n {step === 1 && (\r\n \r\n \r\n \r\n {t(\"commons.confirm.back\")}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"commons.confirm.apply\")}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default compose(\r\n connect(mapStateToProps, mapDispatchToProps),\r\n withStyles(styles)\r\n)(AdditionalDatasetCreateDialog);","import React, {Fragment, useState} from \"react\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {connect} from \"react-redux\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport CustomMaterialTable from \"../../custom-material-table\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport {deleteDatasetAdditionalDataset} from \"../../../state/dataset/datasetActions\";\r\n\r\nconst mapStateToProps = ({dataset}) => ({\r\n additionalDatasets: dataset.additionalDatasets\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onDelete: datasetIdx => dispatch(deleteDatasetAdditionalDataset(datasetIdx))\r\n});\r\n\r\nconst AdditionalDatasetListDialog = ({\r\n isOpen,\r\n onClose,\r\n onDelete,\r\n\r\n additionalDatasets\r\n }) => {\r\n\r\n const {t} = useTranslation();\r\n\r\n const [datasetIdx, setDatasetIdx] = useState(null);\r\n\r\n const handleClose = () => {\r\n onClose();\r\n };\r\n\r\n const handleDelete = () => {\r\n onDelete(datasetIdx);\r\n setDatasetIdx(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {t(\"components.additionalDatasetDialog.list.dialogs.list.title\")}\r\n \r\n \r\n ({...ds, idx: idx}))}\r\n actions={[\r\n {\r\n icon: DeleteIcon,\r\n tooltip: t(\"components.additionalDatasetDialog.list.dialogs.list.actions.delete\"),\r\n onClick: (_, {idx}) => {\r\n setDatasetIdx(idx);\r\n }\r\n }\r\n ]}\r\n options={{\r\n actionsColumnIndex: 1,\r\n header: false\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n setDatasetIdx(null)}\r\n >\r\n setDatasetIdx(null)}>\r\n {t(\"components.additionalDatasetDialog.list.dialogs.deleteDataset.title\")}\r\n \r\n \r\n {t(\"components.additionalDatasetDialog.list.dialogs.deleteDataset.content\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AdditionalDatasetListDialog);","import React, {Fragment, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport TableChartOutlinedIcon from \"@material-ui/icons/TableChartOutlined\";\r\nimport MapOutlinedIcon from \"@material-ui/icons/MapOutlined\";\r\nimport BarChartIcon from \"@material-ui/icons/BarChart\";\r\nimport BottomNavigationAction from \"@material-ui/core/BottomNavigationAction\";\r\nimport BottomNavigation from \"@material-ui/core/BottomNavigation\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {\r\n enableDatasetFetch,\r\n fetchDatasetAdditionalDatasetCatalog,\r\n hideDatasetCriteria,\r\n hideDatasetTerritory,\r\n setDatasetAdditionalDatasetCreateVisibility,\r\n setDatasetAdditionalDatasetCriteria,\r\n setDatasetAdditionalDatasetListVisibility,\r\n setDatasetIndicatorArithmeticMeanVisibility,\r\n setDatasetIndicatorCoefficientOfVariationVisibility,\r\n setDatasetIndicatorCreateVisibility,\r\n setDatasetIndicatorListVisibility,\r\n setDatasetIndicatorStandardDeviationVisibility,\r\n setDatasetStructureCriteria,\r\n setDatasetTerritoryDetailLevel,\r\n setDatasetTerritoryTerritories,\r\n setDatasetViewerChartVisibility,\r\n setDatasetViewerMapVisibility,\r\n setDatasetViewerTableVisibility,\r\n showDatasetCriteria,\r\n showDatasetTerritory,\r\n submitDatasetTerritoryTerritories,\r\n submitDatasetWithMarginalDownload,\r\n submitReferenceMetadataDownload\r\n} from \"../../../state/dataset/datasetActions\";\r\nimport Criteria from \"../../criteria\";\r\nimport Stepper from \"@material-ui/core/Stepper\";\r\nimport Step from \"@material-ui/core/Step\";\r\nimport StepButton from \"@material-ui/core/StepButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FullscreenDialog from \"../../fullscreen-dialog\";\r\nimport DetailLevelSelector from \"../../territory-selectors/DetailLevelSelector\";\r\nimport TerritoriesSelector from \"../../territory-selectors/TerritorySelector\";\r\nimport FilterAltIcon from \"../../custom-icons/FIlterAltIcon\";\r\nimport FlagIcon from \"../../custom-icons/FlagIcon\";\r\nimport AddCircleOutlineOutlinedIcon from \"@material-ui/icons/AddCircleOutlineOutlined\";\r\nimport CalculateIcon from \"../../custom-icons/CalculateIcon\";\r\nimport ExportButton from \"../../export-button\";\r\nimport FileDownloadIcon from \"../../custom-icons/FileDownloadIcon\";\r\nimport {getMappedTree, getNode, getNodes} from \"../../../utils/tree\";\r\nimport IndicatorCreateDialog from \"../../indicator-dialogs/create\";\r\nimport IndicatorListDialog from \"../../indicator-dialogs/list\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH, LABEL_FORMAT_SELECTOR_LABEL_FORMAT_ID} from \"../../label-format-selector/constants\";\r\nimport {TEMPORAL_DIM_ORDER_SELECTOR_VALUE_DESC} from \"../../temporal-dim-order-selector/constants\";\r\nimport AdditionalDatasetCreateDialog from \"../../additional-datasets-dialogs/create\";\r\nimport AdditionalDatasetListDialog from \"../../additional-datasets-dialogs/list\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport {isFormatAvailableForMergedData} from \"../../../utils/download\";\r\nimport CheckIcon from \"@material-ui/icons/Check\";\r\nimport {ViewerMode} from \"../../../state/dataset/constants\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n \"& .MuiBottomNavigation-root\": {\r\n height: \"unset !important\",\r\n },\r\n \"& .MuiBottomNavigation-root button\": {\r\n color: theme.palette.primary.main\r\n },\r\n \"& .MuiBottomNavigationAction-label\": {\r\n fontSize: \"13px !important\"\r\n }\r\n },\r\n divider: {\r\n margin: \"4px 0\"\r\n },\r\n actionGroup: {\r\n marginBottom: 8,\r\n \"& button:hover\": {\r\n background: \"rgba(0, 0, 0, 0.1)\",\r\n color: `${theme.palette.primary.main} !important`,\r\n \"& svg\": {\r\n color: theme.palette.primary.main\r\n }\r\n }\r\n },\r\n actionGroupBackground: {\r\n \"& button\": {\r\n background: \"rgba(0, 0, 0, 0.07)\"\r\n }\r\n },\r\n actionDisabled: {\r\n color: \"rgba(0, 0, 0, 0.54) !important\",\r\n \"& svg\": {\r\n color: \"rgba(0, 0, 0, 0.54)\"\r\n }\r\n },\r\n criteriaContent: {\r\n height: \"100%\"\r\n },\r\n datasetSelector: {\r\n marginBottom: 8\r\n },\r\n territoryContent: {\r\n height: \"100%\"\r\n },\r\n steps: {},\r\n stepContent: {\r\n height: \"calc(100% - 108px)\",\r\n overflow: \"hidden\"\r\n },\r\n stepContentFullHeight: {\r\n height: \"100%\"\r\n },\r\n menuItemTitle: {\r\n width: \"100%\",\r\n color: \"gray\",\r\n fontStyle: \"italic\",\r\n fontSize: 14,\r\n }\r\n});\r\n\r\nconst mapStateToProps = ({config, hub, app, appConfig, dataset}) => ({\r\n indicatorsBaseUrl: config.externalServices?.indicator,\r\n exportConfig: hub.hub.exportConfig,\r\n defaultLanguage: app.language,\r\n languages: app.languages,\r\n shapefilesUrl: appConfig.shapefilesUrl,\r\n maxMapPolygonCount: appConfig.mapConfig.maxPolygonCount,\r\n hiddenDimensionValueLabels: appConfig.hiddenDimensionValueLabels,\r\n dataset: dataset.dataset,\r\n enableCriteria: dataset.enableCriteria,\r\n enableVariation: dataset.enableVariation,\r\n showTrend: dataset.showTrend,\r\n showCyclical: dataset.showCyclical,\r\n isCriteriaVisible: dataset.isCriteriaVisible,\r\n isTerritoryVisible: dataset.isTerritoryVisible,\r\n dimensions: dataset.dimensions,\r\n territoryDim: dataset.territoryDim,\r\n timeDim: dataset.timeDim,\r\n freqDim: dataset.freqDim,\r\n codelists: dataset.codelists,\r\n codelistsLength: dataset.codelistsLength,\r\n tableLayout: dataset.tableLayout,\r\n mapLayout: dataset.mapLayout,\r\n chartLayout: dataset.chartLayout,\r\n chartSettings: dataset.chartSettings,\r\n mapSettings: dataset.mapSettings,\r\n isTableVisible: dataset.isTableVisible,\r\n isMapVisible: dataset.isMapVisible,\r\n isChartVisible: dataset.isChartVisible,\r\n criteria: dataset.criteria,\r\n labelFormat: dataset.labelFormat,\r\n decimalSeparator: dataset.decimalSeparator,\r\n decimalPlaces: dataset.decimalPlaces,\r\n tableEmptyChar: dataset.tableEmptyChar,\r\n detailLevelTree: dataset.detailLevelTree,\r\n detailLevel: dataset.detailLevel,\r\n territoryTree: dataset.territoryTree,\r\n territories: dataset.territories,\r\n isPointData: dataset.isPointData,\r\n isIndicatorCreateVisible: dataset.isIndicatorCreateVisible,\r\n isIndicatorListVisible: dataset.isIndicatorListVisible,\r\n indicators: dataset.indicators,\r\n showArithmeticMean: dataset.showArithmeticMean,\r\n showStandardDeviation: dataset.showStandardDeviation,\r\n showCoefficientOfVariation: dataset.showCoefficientOfVariation,\r\n isAdditionalDatasetCreateVisible: dataset.isAdditionalDatasetCreateVisible,\r\n isAdditionalDatasetListVisible: dataset.isAdditionalDatasetListVisible,\r\n additionalDatasetCatalog: dataset.additionalDatasetCatalog,\r\n additionalDatasets: dataset.additionalDatasets\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onFetchDatasetEnable: maxObservation => dispatch(enableDatasetFetch(maxObservation)),\r\n onCriteriaShow: () => dispatch(showDatasetCriteria()),\r\n onCriteriaHide: () => dispatch(hideDatasetCriteria()),\r\n onSetCriteria: criteria => dispatch(setDatasetStructureCriteria(criteria)),\r\n onSetADCriteria: (datasetIdx, criteria) => dispatch(setDatasetAdditionalDatasetCriteria(datasetIdx, criteria)),\r\n onTerritoryShow: () => dispatch(showDatasetTerritory()),\r\n onTerritoryHide: (detailLevel, territories) => dispatch(hideDatasetTerritory(detailLevel, territories)),\r\n onTableVisibilitySet: isVisible => dispatch(setDatasetViewerTableVisibility(isVisible)),\r\n onMapVisibilitySet: isVisible => dispatch(setDatasetViewerMapVisibility(isVisible)),\r\n onChartVisibilitySet: isVisible => dispatch(setDatasetViewerChartVisibility(isVisible)),\r\n onDetailLevelSet: detailLevel => dispatch(setDatasetTerritoryDetailLevel(detailLevel)),\r\n onTerritoriesSet: territories => dispatch(setDatasetTerritoryTerritories(territories)),\r\n onTerritoriesSubmit: criteria => dispatch(submitDatasetTerritoryTerritories(criteria)),\r\n onDownloadSubmit: (nodeId, nodeCode, datasetId, datasetTitle, criteria, timeDim, territoryDim, layout, indicators, additionalDatasets, format, extension, zipped, params, defaultLanguage, languages, t, indicatorsBaseUrl) =>\r\n dispatch(submitDatasetWithMarginalDownload(nodeId, nodeCode, datasetId, datasetTitle, criteria, timeDim, territoryDim, layout, indicators, additionalDatasets, format, extension, zipped, params, defaultLanguage, languages, t, indicatorsBaseUrl)),\r\n onIndicatorCreateVisibilitySet: isVisible => dispatch(setDatasetIndicatorCreateVisibility(isVisible)),\r\n onIndicatorListVisibilitySet: isVisible => dispatch(setDatasetIndicatorListVisibility(isVisible)),\r\n onArithmeticMeanVisibilitySet: isVisible => dispatch(setDatasetIndicatorArithmeticMeanVisibility(isVisible)),\r\n onStandardDeviationVisibilitySet: isVisible => dispatch(setDatasetIndicatorStandardDeviationVisibility(isVisible)),\r\n onCoefficientOfVariationVisibilitySet: isVisible => dispatch(setDatasetIndicatorCoefficientOfVariationVisibility(isVisible)),\r\n onAdditionalDatasetCreateVisibilitySet: isVisible => dispatch(setDatasetAdditionalDatasetCreateVisibility(isVisible)),\r\n onAdditionalDatasetListVisibilitySet: isVisible => dispatch(setDatasetAdditionalDatasetListVisibility(isVisible)),\r\n fetchAdditionalDatasetCatalog: nodeId => dispatch(fetchDatasetAdditionalDatasetCatalog(nodeId)),\r\n onDownloadReferenceMetadataSubmit: (nodeId, datasetId, datasetTitle) => dispatch(submitReferenceMetadataDownload(nodeId, datasetId, datasetTitle)),\r\n});\r\n\r\nfunction MultiViewerSidebar(props) {\r\n\r\n const {\r\n classes,\r\n\r\n nodeId,\r\n nodeCode,\r\n datasetId,\r\n datasetTitle,\r\n maxObservation,\r\n chartId,\r\n mapId,\r\n nodeExtras,\r\n datasetMap,\r\n\r\n indicatorsBaseUrl,\r\n exportConfig,\r\n defaultLanguage,\r\n languages,\r\n shapefilesUrl,\r\n maxMapPolygonCount,\r\n hiddenDimensionValueLabels,\r\n dataset,\r\n enableCriteria,\r\n enableVariation,\r\n showTrend,\r\n showCyclical,\r\n isCriteriaVisible,\r\n isTerritoryVisible,\r\n dimensions,\r\n territoryDim,\r\n timeDim,\r\n freqDim,\r\n codelists,\r\n codelistsLength,\r\n tableLayout,\r\n mapLayout,\r\n chartLayout,\r\n chartSettings,\r\n mapSettings,\r\n isTableVisible,\r\n isMapVisible,\r\n isChartVisible,\r\n criteria,\r\n labelFormat,\r\n decimalSeparator,\r\n decimalPlaces,\r\n tableEmptyChar,\r\n detailLevelTree,\r\n detailLevel,\r\n territoryTree,\r\n territories,\r\n isPointData,\r\n isIndicatorCreateVisible,\r\n isIndicatorListVisible,\r\n indicators,\r\n showArithmeticMean,\r\n showStandardDeviation,\r\n showCoefficientOfVariation,\r\n isAdditionalDatasetCreateVisible,\r\n isAdditionalDatasetListVisible,\r\n additionalDatasetCatalog,\r\n additionalDatasets,\r\n\r\n onFetchDatasetEnable,\r\n onCriteriaShow,\r\n onCriteriaHide,\r\n onSetCriteria,\r\n onSetADCriteria,\r\n onTerritoryShow,\r\n onTerritoryHide,\r\n onTableVisibilitySet,\r\n onMapVisibilitySet,\r\n onChartVisibilitySet,\r\n onDetailLevelSet,\r\n onTerritoriesSet,\r\n onTerritoriesSubmit,\r\n onDownloadSubmit,\r\n onIndicatorCreateVisibilitySet,\r\n onIndicatorListVisibilitySet,\r\n onArithmeticMeanVisibilitySet,\r\n onStandardDeviationVisibilitySet,\r\n onCoefficientOfVariationVisibilitySet,\r\n onAdditionalDatasetCreateVisibilitySet,\r\n onAdditionalDatasetListVisibilitySet,\r\n fetchAdditionalDatasetCatalog,\r\n onDownloadReferenceMetadataSubmit\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [datasetIdx, setDatasetIdx] = useState(0);\r\n\r\n const [isCriteriaValid, setCriteriaValidity] = useState(true);\r\n\r\n const [tmpDetailLevel, setTmpDetailLevel] = useState(null);\r\n const [tmpTerritories, setTmpTerritories] = useState(null);\r\n\r\n const [step, setStep] = useState(isPointData ? 1 : 0);\r\n\r\n const [isTerritoryWarningVisible, setTerritoryWarningVisibility] = useState(false);\r\n\r\n const [indicatorsAnchorEl, setIndicatorsAnchorEl] = useState(null);\r\n const [additionalDatasetsAnchorEl, setAdditionalDatasetsAnchorEl] = useState(null);\r\n\r\n const [datasetToExportIdx, setDatasetToExportIdx] = useState(null);\r\n\r\n const downloadFormats = additionalDatasets.length === 0\r\n ? nodeExtras?.DownloadFormats\r\n : nodeExtras?.DownloadFormats.filter(format => isFormatAvailableForMergedData(format));\r\n\r\n const defaultLastNPeriods = nodeExtras?.DefaultLastNPeriods;\r\n\r\n const handleCriteriaOpen = () => {\r\n setDatasetIdx(0);\r\n onCriteriaShow();\r\n };\r\n\r\n const handleCriteriaClose = () => {\r\n onCriteriaHide();\r\n setCriteriaValidity(true);\r\n };\r\n\r\n const handleCriteriaSubmit = maxObservation => {\r\n onFetchDatasetEnable(maxObservation);\r\n };\r\n\r\n const handleTerritoryOpen = () => {\r\n setStep(isPointData ? 1 : 0);\r\n\r\n setTmpDetailLevel(detailLevel);\r\n setTmpTerritories(territories);\r\n\r\n onTerritoryShow();\r\n };\r\n\r\n const handleTerritoryClose = () => {\r\n onTerritoryHide(tmpDetailLevel, tmpTerritories);\r\n };\r\n\r\n const handleTerritorySubmit = () => {\r\n\r\n const markedTree = getMappedTree(\r\n [{children: territoryTree}],\r\n \"children\",\r\n node => ({\r\n ...node,\r\n children: (node.children || []).map(child => ({\r\n ...child,\r\n marked: (node.marked || territories.includes(child.id))\r\n }))\r\n })\r\n )[0].children;\r\n const territoryFilterValues = getNodes(markedTree, \"children\", ({marked, children}) => (marked && (children || []).length === 0));\r\n\r\n if (territoryFilterValues.length < maxMapPolygonCount) {\r\n let newCriteria = {\r\n ...criteria,\r\n [territoryDim]: {\r\n id: territoryDim,\r\n filterValues: territoryFilterValues.map(({id}) => id)\r\n }\r\n }\r\n onTerritoriesSubmit(newCriteria);\r\n\r\n } else {\r\n setTerritoryWarningVisibility(true);\r\n }\r\n };\r\n\r\n const visibleViewerCount = [isTableVisible, isChartVisible, isMapVisible].filter(el => el).length;\r\n const isTableDisabled = !dataset || !tableLayout;\r\n const isChartDisabled = !dataset || !chartLayout;\r\n const isMapDisabled = !dataset || !mapLayout;\r\n\r\n const datasets = [\r\n {\r\n nodeId: nodeId,\r\n nodeCode: nodeCode,\r\n datasetId: datasetId,\r\n datasetTitle: datasetTitle,\r\n dimensions: dimensions,\r\n timeDim: timeDim,\r\n freqDim: freqDim,\r\n territoryDim: territoryDim,\r\n codelists: codelists,\r\n codelistsLength: codelistsLength,\r\n criteria: criteria\r\n },\r\n ...additionalDatasets\r\n ];\r\n\r\n const datasetsWithMetadata = datasets.filter(({datasetId}) => datasetMap[datasetId]?.referenceMetadata);\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n {territoryDim && (\r\n \r\n }\r\n role=\"menuitem\"\r\n />\r\n \r\n )}\r\n \r\n }\r\n className={!enableCriteria ? classes.actionDisabled : \"\"}\r\n disabled={!enableCriteria}\r\n role=\"menuitem\"\r\n />\r\n \r\n
    \r\n\r\n
    \r\n onTableVisibilitySet(!isTableVisible)}\r\n >\r\n }\r\n className={!isTableVisible ? classes.actionDisabled : \"\"}\r\n disabled={isTableDisabled || (isTableVisible && visibleViewerCount <= 1)}\r\n role=\"menuitem\"\r\n />\r\n \r\n onChartVisibilitySet(!isChartVisible)}\r\n >\r\n }\r\n className={!isChartVisible ? classes.actionDisabled : \"\"}\r\n disabled={isChartDisabled || (isChartVisible && visibleViewerCount <= 1)}\r\n role=\"menuitem\"\r\n />\r\n \r\n onMapVisibilitySet(!isMapVisible)}\r\n >\r\n }\r\n className={!isMapVisible ? classes.actionDisabled : \"\"}\r\n disabled={isMapDisabled || (isMapVisible && visibleViewerCount <= 1)}\r\n role=\"menuitem\"\r\n />\r\n \r\n
    \r\n\r\n
    \r\n {!isPointData && (\r\n setAdditionalDatasetsAnchorEl(currentTarget)}\r\n >\r\n }\r\n className={(!dataset && additionalDatasets.length === 0) ? classes.actionDisabled : \"\"}\r\n disabled={!dataset && additionalDatasets.length === 0}\r\n role=\"menuitem\"\r\n />\r\n \r\n )}\r\n setIndicatorsAnchorEl(currentTarget)}\r\n >\r\n }\r\n className={(!dataset && indicators.length === 0) ? classes.actionDisabled : \"\"}\r\n disabled={!dataset && indicators.length === 0}\r\n role=\"menuitem\"\r\n />\r\n \r\n
    \r\n\r\n
    \r\n }\r\n formats={downloadFormats}\r\n jsonStat={dataset}\r\n viewerIdx={0}\r\n isTableVisible={isTableVisible}\r\n isMapVisible={isMapVisible}\r\n isChartVisible={isChartVisible}\r\n tableLayout={tableLayout}\r\n mapId={mapId}\r\n mapContainerId=\"data-viewer__multi-viewer__viewers__map__viewer\"\r\n mapLayout={mapLayout}\r\n mapSettings={mapSettings}\r\n chartId={chartId}\r\n chartContainerId=\"data-viewer__multi-viewer__viewers__chart__viewer\"\r\n chartLayout={chartLayout}\r\n chartSettings={chartSettings}\r\n labelFormat={labelFormat}\r\n datasetTitle={datasetTitle}\r\n submitDownload={(format, extension, additionalParams) => {\r\n const exportParams = {\r\n labelFormat: labelFormat,\r\n customLabelFormat: {\r\n [timeDim]:LABEL_FORMAT_SELECTOR_LABEL_FORMAT_ID,\r\n [territoryDim]: LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH\r\n },\r\n decimalNumber: decimalPlaces,\r\n decimalSeparator: decimalSeparator,\r\n emptyCellPlaceHolder: tableEmptyChar,\r\n hiddenDimensionValueLabels: hiddenDimensionValueLabels,\r\n hasVariation: enableVariation,\r\n showTrend: showTrend,\r\n showCyclical: showCyclical,\r\n temporalDimOrder: TEMPORAL_DIM_ORDER_SELECTOR_VALUE_DESC,\r\n exportConfig: exportConfig,\r\n suffixToRemove: {\r\n [territoryDim]: getNode(detailLevelTree, \"layers\", ({id}) => id === detailLevel)?.detailLevelSuffix || \"\"\r\n },\r\n customDimensionLabels: {\r\n [territoryDim]: (getNode(detailLevelTree, \"layers\", ({id}) => id === detailLevel)?.label || null)\r\n },\r\n ...additionalParams\r\n };\r\n\r\n onDownloadSubmit(\r\n nodeId,\r\n nodeCode,\r\n datasetId,\r\n datasetTitle,\r\n criteria,\r\n timeDim,\r\n territoryDim,\r\n tableLayout,\r\n indicators,\r\n additionalDatasets,\r\n format,\r\n extension,\r\n false,\r\n exportParams,\r\n defaultLanguage,\r\n languages,\r\n t,\r\n indicatorsBaseUrl\r\n );\r\n }}\r\n shapefilesUrl={shapefilesUrl}\r\n role=\"menuitem\"\r\n submitMetadataDownload={additionalDatasets.length === 0\r\n ? datasetMap[datasetId]?.referenceMetadata\r\n ? () => onDownloadReferenceMetadataSubmit(nodeId, datasetId, datasetTitle)\r\n : null\r\n : datasetsWithMetadata.length > 0\r\n ? () => setDatasetToExportIdx(0)\r\n : null\r\n }\r\n className={!dataset ? classes.actionDisabled : \"\"}\r\n disabled={!dataset}\r\n />\r\n
    \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.multiViewer.dialogs.criteria.title\")}\r\n \r\n \r\n {datasets.length > 1 && (\r\n \r\n setDatasetIdx(ev.target.value)}\r\n variant=\"outlined\"\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {datasets.map(({datasetTitle}, idx) => (\r\n {datasetTitle}\r\n ))}\r\n \r\n \r\n )}\r\n 1) ? 64 : 0}px)`\r\n }}\r\n >\r\n {datasets[datasetIdx] && (\r\n 0 && criteria?.[territoryDim])\r\n ? criteria[territoryDim]\r\n : null\r\n }\r\n onSetCriteria={criteria => datasetIdx === 0\r\n ? onSetCriteria(criteria)\r\n : onSetADCriteria((datasetIdx - 1), criteria)\r\n }\r\n isCriteriaValid={isCriteriaValid}\r\n setCriteriaValidity={setCriteriaValidity}\r\n onSubmit={handleCriteriaSubmit}\r\n defaultLastNPeriods={defaultLastNPeriods}\r\n preserveFiltersWithDynamic\r\n />\r\n )}\r\n
    \r\n \r\n \r\n \r\n handleCriteriaSubmit(maxObservation)}\r\n disabled={!isCriteriaValid}\r\n >\r\n {t(\"commons.confirm.apply\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {datasetTitle}\r\n \r\n \r\n {!isPointData && (\r\n \r\n \r\n \r\n \r\n setStep(0)}>\r\n {t(\"components.territory.steps.detailLevel.title\")}\r\n \r\n \r\n \r\n setStep(1)} disabled={detailLevel === null}>\r\n {t(\"components.territory.steps.territory.title\")}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n {step === 0 && (\r\n \r\n )}\r\n {step === 1 && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n {step === 0 && (\r\n \r\n \r\n setStep(1)}\r\n disabled={detailLevel === null}\r\n >\r\n {t(\"commons.confirm.next\")}\r\n \r\n \r\n )}\r\n {step === 1 && (\r\n \r\n \r\n {!isPointData && (\r\n setStep(0)}\r\n >\r\n {t(\"commons.confirm.back\")}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {t(\"commons.confirm.apply\")}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n setDatasetToExportIdx(null)}\r\n >\r\n setDatasetToExportIdx(null)}>\r\n {t(\"scenes.dataViewer.multiViewer.dialogs.exportMetadata.title\")}\r\n \r\n \r\n \r\n setDatasetToExportIdx(ev.target.value)}\r\n variant=\"outlined\"\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {datasetsWithMetadata.map(({datasetTitle}, idx) => (\r\n {datasetTitle}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n const dataToExport = datasetsWithMetadata[datasetToExportIdx];\r\n onDownloadReferenceMetadataSubmit(dataToExport.nodeId, dataToExport.datasetId, dataToExport.datasetTitle);\r\n }}\r\n >\r\n {t(\"commons.confirm.download\")}\r\n \r\n \r\n \r\n\r\n setTerritoryWarningVisibility(false)}\r\n >\r\n setTerritoryWarningVisibility(false)}>\r\n {t(\"scenes.dataViewer.multiViewer.dialogs.toMuchPolygon.title\")}\r\n \r\n \r\n {t(\"scenes.dataViewer.multiViewer.dialogs.toMuchPolygon.content\")}\r\n \r\n \r\n \r\n \r\n \r\n\r\n setIndicatorsAnchorEl(null)}\r\n >\r\n {!isPointData && (\r\n \r\n {t(\"scenes.dataViewer.multiViewer.indicators.title\")}\r\n \r\n )}\r\n {!isPointData && (\r\n {\r\n onIndicatorCreateVisibilitySet(true);\r\n setIndicatorsAnchorEl(null);\r\n }}\r\n disabled={!dataset || (indicators || []).length >= 5}\r\n >\r\n {t(\"scenes.dataViewer.multiViewer.indicators.values.create\")}\r\n \r\n )}\r\n {!isPointData && (\r\n {\r\n onIndicatorListVisibilitySet(true);\r\n setIndicatorsAnchorEl(null);\r\n }}\r\n disabled={(indicators || []).length === 0}\r\n >\r\n {t(\"scenes.dataViewer.multiViewer.indicators.values.list\")}\r\n \r\n )}\r\n \r\n {t(\"scenes.dataViewer.multiViewer.measuresOfSynthesisAndVariability.title\")}\r\n \r\n onArithmeticMeanVisibilitySet(!showArithmeticMean)}\r\n disabled={!dataset}\r\n >\r\n {t(\"commons.measuresOfSynthesisAndVariability.values.arithmeticMean\")}\r\n {showArithmeticMean && }\r\n \r\n onStandardDeviationVisibilitySet(!showStandardDeviation)}\r\n disabled={!dataset}\r\n >\r\n {t(\"commons.measuresOfSynthesisAndVariability.values.standardDeviation\")}\r\n {showStandardDeviation && }\r\n \r\n onCoefficientOfVariationVisibilitySet(!showCoefficientOfVariation)}\r\n disabled={!dataset}\r\n >\r\n {t(\"commons.measuresOfSynthesisAndVariability.values.coefficientOfVariation\")}\r\n {showCoefficientOfVariation && }\r\n \r\n \r\n\r\n setAdditionalDatasetsAnchorEl(null)}\r\n >\r\n {\r\n onAdditionalDatasetCreateVisibilitySet(true);\r\n setAdditionalDatasetsAnchorEl(null);\r\n }}\r\n disabled={!dataset || additionalDatasets.length >= 2}\r\n >\r\n {t(\"scenes.dataViewer.multiViewer.additionalDataset.create.title\")}\r\n \r\n {\r\n onAdditionalDatasetListVisibilitySet(true);\r\n setAdditionalDatasetsAnchorEl(null);\r\n }}\r\n disabled={additionalDatasets.length === 0}\r\n >\r\n {t(\"scenes.dataViewer.multiViewer.additionalDataset.list.title\")}\r\n \r\n \r\n\r\n {isIndicatorCreateVisible && (\r\n onIndicatorCreateVisibilitySet(false)}\r\n />\r\n )}\r\n\r\n {isIndicatorListVisible && (\r\n onIndicatorListVisibilitySet(false)}\r\n />\r\n )}\r\n\r\n {isAdditionalDatasetCreateVisible && (\r\n onAdditionalDatasetCreateVisibilitySet(false)}\r\n defaultLastNPeriods={defaultLastNPeriods}\r\n catalog={additionalDatasetCatalog}\r\n fetchCatalog={fetchAdditionalDatasetCatalog}\r\n />\r\n )}\r\n\r\n {isAdditionalDatasetListVisible && (\r\n onAdditionalDatasetListVisibilitySet(false)}\r\n />\r\n )}\r\n\r\n \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(MultiViewerSidebar);","import React, {Fragment} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {ViewerMode} from \"../../state/dataset/constants\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {viewersFactory} from \"./constant\";\r\nimport SingleViewerSidebar from \"./single-viewer/Sidebar\";\r\nimport MultiViewerSidebar from \"./multi-viewer/Sidebar\";\r\nimport {getFormattedValue} from \"../../utils/formatters\";\r\n\r\nconst styles = () => ({\r\n sidebar: {\r\n width: 80,\r\n height: \"100%\",\r\n overflow: \"auto\",\r\n padding: \"8px 0\",\r\n marginRight: 16\r\n }\r\n});\r\n\r\nfunction DataViewerSidebar({classes, ...props}) {\r\n\r\n const {\r\n nodeDecimalSeparator,\r\n viewerMode,\r\n isCriteriaAlertVisible,\r\n isEmptyData,\r\n isTooBigData,\r\n isTooLongQuery,\r\n tableColCount,\r\n maxTableColCount,\r\n mapPointCount,\r\n maxMapPointCount,\r\n onCriteriaShow,\r\n onCriteriaAlertHide,\r\n isIndicatorCreateVisible,\r\n isAdditionalDatasetCreateVisible\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const viewers = viewersFactory(t);\r\n\r\n return (\r\n \r\n {(() => {\r\n switch (viewerMode) {\r\n case ViewerMode.SingleViewer: {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n case ViewerMode.MultiViewer: {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n default: {\r\n return null;\r\n }\r\n }\r\n })()}\r\n\r\n \r\n {(() => {\r\n if (isEmptyData) {\r\n return (\r\n \r\n {t(\"scenes.dataViewer.sidebar.warning.emptyData.title\")}\r\n \r\n )\r\n\r\n } else if (isTooBigData) {\r\n return (\r\n \r\n {\r\n onCriteriaAlertHide();\r\n onCriteriaShow();\r\n }}\r\n >\r\n {t(\"scenes.dataViewer.sidebar.warning.tooBigData.title\")}\r\n \r\n \r\n {t(\"scenes.dataViewer.sidebar.warning.tooBigData.content\")}\r\n \r\n \r\n )\r\n\r\n } else if (isTooLongQuery) {\r\n return (\r\n \r\n \r\n {t(\"scenes.dataViewer.sidebar.warning.isTooLongQuery.title\")}\r\n \r\n \r\n {t(\"scenes.dataViewer.sidebar.warning.isTooLongQuery.content\")}\r\n \r\n \r\n )\r\n\r\n } else if (tableColCount !== null) {\r\n return (\r\n \r\n {\r\n onCriteriaAlertHide();\r\n onCriteriaShow();\r\n }}\r\n >\r\n {t(\"scenes.dataViewer.sidebar.warning.tooMuchCols.title\")}\r\n \r\n \r\n {t(\"scenes.dataViewer.sidebar.warning.tooMuchCols.content\", {\r\n count: getFormattedValue(tableColCount, nodeDecimalSeparator),\r\n max: getFormattedValue(maxTableColCount, nodeDecimalSeparator)\r\n })}\r\n \r\n \r\n )\r\n\r\n } else if (mapPointCount !== null) {\r\n return (\r\n \r\n {\r\n onCriteriaAlertHide();\r\n onCriteriaShow();\r\n }}\r\n >\r\n {t(\"scenes.dataViewer.sidebar.warning.tooMuchPoints.title\")}\r\n \r\n \r\n {t(\"scenes.dataViewer.sidebar.warning.tooMuchPoints.content\", {\r\n count: getFormattedValue(mapPointCount, nodeDecimalSeparator),\r\n max: getFormattedValue(maxMapPointCount, nodeDecimalSeparator)\r\n })}\r\n \r\n \r\n )\r\n\r\n } else {\r\n return (\r\n \r\n {t(\"scenes.dataViewer.sidebar.warning.genericError.title\")}\r\n \r\n )\r\n }\r\n })()}\r\n \r\n {\r\n onCriteriaAlertHide();\r\n if (!isIndicatorCreateVisible && !isAdditionalDatasetCreateVisible) {\r\n onCriteriaShow();\r\n }\r\n }}\r\n >\r\n {(tableColCount || mapPointCount)\r\n ? t(\"commons.confirm.confirm\")\r\n : t(\"commons.confirm.close\")\r\n }\r\n \r\n \r\n \r\n\r\n \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(state => ({\r\n nodeDecimalSeparator: state.node.decimalSeparator\r\n }))\r\n)(DataViewerSidebar);","import React, {Fragment} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\n\r\nexport const FONT_SIZE_SELECTOR_FONT_SIZE_SM = \"sm\";\r\nexport const FONT_SIZE_SELECTOR_FONT_SIZE_MD = \"md\";\r\nexport const FONT_SIZE_SELECTOR_FONT_SIZE_LG = \"lg\";\r\n\r\nconst styles = theme => ({\r\n fontSizeIcon: {\r\n width: 24,\r\n height: 24,\r\n fontWeight: \"bold\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\"\r\n },\r\n fontSizeIconSm: {\r\n fontSize: 14\r\n },\r\n fontSizeIconMd: {\r\n fontSize: 16\r\n },\r\n fontSizeIconLg: {\r\n fontSize: 20\r\n },\r\n fontSizeSelected: {\r\n boxShadow: \"inset 0 -2px 0 0 rgba(0, 0, 0, .54)\"\r\n }\r\n});\r\n\r\nconst getFontSizeIcon = styleClasses =>\r\n A;\r\n\r\nconst FontSizeSelector = ({\r\n t,\r\n classes,\r\n fontSize,\r\n setFontSize\r\n }) =>\r\n\r\n \r\n \r\n setFontSize(FONT_SIZE_SELECTOR_FONT_SIZE_SM)}\r\n aria-label={t(\"components.fontSizeSelector.small.tooltip\")}\r\n >\r\n {getFontSizeIcon(`${classes.fontSizeIcon} ${classes.fontSizeIconSm} ${fontSize === FONT_SIZE_SELECTOR_FONT_SIZE_SM ? classes.fontSizeSelected : \"\"}`)}\r\n \r\n \r\n \r\n setFontSize(FONT_SIZE_SELECTOR_FONT_SIZE_MD)}\r\n aria-label={t(\"components.fontSizeSelector.normal.tooltip\")}\r\n >\r\n {getFontSizeIcon(`${classes.fontSizeIcon} ${classes.fontSizeIconMd} ${fontSize === FONT_SIZE_SELECTOR_FONT_SIZE_MD ? classes.fontSizeSelected : \"\"}`)}\r\n \r\n \r\n \r\n setFontSize(FONT_SIZE_SELECTOR_FONT_SIZE_LG)}\r\n aria-label={t(\"components.fontSizeSelector.big.tooltip\")}\r\n >\r\n {getFontSizeIcon(`${classes.fontSizeIcon} ${classes.fontSizeIconLg} ${fontSize === FONT_SIZE_SELECTOR_FONT_SIZE_LG ? classes.fontSizeSelected : \"\"}`)}\r\n \r\n \r\n ;\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(FontSizeSelector)","import React from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH, LABEL_FORMAT_SELECTOR_LABEL_FORMAT_ID, LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME} from \"./constants\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: \"0 8px\"\r\n },\r\n label: {\r\n color: \"rgba(0, 0, 0, 0.54)\",\r\n fontSize: 13,\r\n height: 40,\r\n lineHeight: \"40px\",\r\n marginRight: 8\r\n },\r\n formControl: {\r\n margin: \"8px 0\"\r\n },\r\n select: {\r\n \"& .MuiSelect-root.MuiSelect-select\": {\r\n padding: \"2px 24px 3px 0\",\r\n fontSize: 14\r\n }\r\n },\r\n menuItem: {\r\n fontSize: 14\r\n }\r\n});\r\n\r\nconst LabelFormatSelector = ({\r\n t,\r\n classes,\r\n labelFormat,\r\n setLabelFormat\r\n }) =>\r\n \r\n \r\n {t(\"components.labelFormatSelector.labelFormat.title\")}:\r\n \r\n \r\n \r\n setLabelFormat(ev.target.value)}\r\n SelectDisplayProps={{\r\n \"aria-haspopup\": true,\r\n \"aria-labelledby\": \"label-format-selector-label\"\r\n }}\r\n >\r\n \r\n {t(\"components.labelFormatSelector.labelFormat.values.name\")}\r\n \r\n \r\n {t(\"components.labelFormatSelector.labelFormat.values.id\")}\r\n \r\n \r\n {t(\"components.labelFormatSelector.labelFormat.values.both\")}\r\n \r\n \r\n \r\n \r\n \r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(LabelFormatSelector)","import React, {useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport {getVariationValueLabels, VARIATION_VALUE_CYCLICAL_KEY, VARIATION_VALUE_TREND_KEY} from \"../../utils/jsonStat\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: \"0 8px\"\r\n },\r\n label: {\r\n color: \"rgba(0, 0, 0, 0.54)\",\r\n fontSize: 13,\r\n height: 40,\r\n lineHeight: \"40px\",\r\n marginRight: 8\r\n },\r\n formControl: {\r\n margin: \"8px 0\"\r\n },\r\n select: {\r\n \"& .MuiSelect-root.MuiSelect-select\": {\r\n padding: \"2px 24px 3px 0\",\r\n fontSize: 14\r\n }\r\n },\r\n menuItem: {\r\n height: 42,\r\n fontSize: 14,\r\n backgroundColor: \"#ffffff !important\"\r\n }\r\n});\r\n\r\nconst VARIATION_VALUE_NONE_KEY = \"NONE\";\r\n\r\nconst VariationSelector = ({\r\n t,\r\n classes,\r\n showTrend,\r\n showCyclical,\r\n onVariationSet\r\n }) => {\r\n\r\n const [open, setOpen] = useState(false);\r\n\r\n const values = [];\r\n if (showTrend) {\r\n values.push(VARIATION_VALUE_TREND_KEY);\r\n }\r\n if (showCyclical) {\r\n values.push(VARIATION_VALUE_CYCLICAL_KEY);\r\n }\r\n if (values.length === 0) {\r\n values.push(VARIATION_VALUE_NONE_KEY);\r\n }\r\n\r\n return (\r\n \r\n \r\n {t(\"components.variationSelector.variation.title\")}:\r\n \r\n \r\n \r\n {\r\n const newSelected = selected.filter(val => val !== VARIATION_VALUE_NONE_KEY);\r\n if (newSelected.length === 0) {\r\n return t(\"components.variationSelector.variation.none\");\r\n } else if (newSelected.length === 1) {\r\n return getVariationValueLabels(t)[newSelected[0]];\r\n } else if (newSelected.length === 2) {\r\n return t(\"components.variationSelector.variation.both\");\r\n } else {\r\n return \"\";\r\n }\r\n }}\r\n onChange={ev => {\r\n const values = ev.target.value;\r\n onVariationSet({\r\n showTrend: values.includes(VARIATION_VALUE_TREND_KEY),\r\n showCyclical: values.includes(VARIATION_VALUE_CYCLICAL_KEY)\r\n });\r\n setOpen(false);\r\n }}\r\n onOpen={() => setOpen(true)}\r\n onClose={() => setOpen(false)}\r\n MenuProps={{\r\n open: open,\r\n variant: \"menu\"\r\n }}\r\n SelectDisplayProps={{\r\n \"aria-haspopup\": true,\r\n \"aria-labelledby\": \"variation-selector-label\"\r\n }}\r\n >\r\n \r\n \r\n {getVariationValueLabels(t)[VARIATION_VALUE_TREND_KEY]}\r\n \r\n \r\n \r\n {getVariationValueLabels(t)[VARIATION_VALUE_CYCLICAL_KEY]}\r\n \r\n \r\n \r\n {t(\"components.variationSelector.variation.none\")}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(VariationSelector)","import React from 'react';\r\nimport {compose} from \"redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {\r\n CHART_DATA_LABEL_TYPE_NONE,\r\n CHART_DATA_LABEL_TYPE_VALUE,\r\n CHART_LEGEND_POSITION_BOTTOM,\r\n CHART_LEGEND_POSITION_lEFT,\r\n CHART_LEGEND_POSITION_RIGHT,\r\n CHART_LEGEND_POSITION_TOP\r\n} from \"../chart\";\r\nimport I18nTextField from \"../i18n-text-field\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n paper: {\r\n marginBottom: theme.spacing(2),\r\n padding: theme.spacing(3),\r\n \"& :last-child\": {\r\n marginBottom: 0\r\n }\r\n },\r\n field: {\r\n marginBottom: theme.spacing(3)\r\n }\r\n});\r\n\r\nfunction ChartSettingsGeneral(props) {\r\n const {\r\n t,\r\n classes,\r\n settings,\r\n onSettingsSet\r\n } = props;\r\n\r\n const {\r\n stacked,\r\n legendPosition,\r\n showAxesLabel,\r\n customizeCategoryAxis,\r\n categoryAxisLabel,\r\n valueAxisLabel,\r\n dataLabelType\r\n } = settings\r\n\r\n return (\r\n
    \r\n \r\n onSettingsSet({...settings, stacked: value})}\r\n />\r\n }\r\n />\r\n \r\n \r\n onSettingsSet({...settings, legendPosition: ev.target.value})}\r\n >\r\n \r\n {t(\"components.chartSettings.general.legendPosition.values.top\")}\r\n \r\n \r\n {t(\"components.chartSettings.general.legendPosition.values.right\")}\r\n \r\n \r\n {t(\"components.chartSettings.general.legendPosition.values.bottom\")}\r\n \r\n \r\n {t(\"components.chartSettings.general.legendPosition.values.left\")}\r\n \r\n \r\n \r\n \r\n {\r\n onSettingsSet({\r\n ...settings,\r\n dataLabelType: value\r\n ? CHART_DATA_LABEL_TYPE_VALUE\r\n : CHART_DATA_LABEL_TYPE_NONE\r\n })\r\n }}\r\n />\r\n }\r\n />\r\n \r\n \r\n onSettingsSet({...settings, showAxesLabel: value})}\r\n />\r\n }\r\n />\r\n \r\n {showAxesLabel && (\r\n \r\n \r\n onSettingsSet({...settings, valueAxisLabel: value})}\r\n />\r\n \r\n \r\n onSettingsSet({...settings, customizeCategoryAxis: value})}\r\n />\r\n }\r\n />\r\n \r\n {customizeCategoryAxis && (\r\n \r\n onSettingsSet({...settings, categoryAxisLabel: value})}\r\n />\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n )\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(ChartSettingsGeneral);","import React from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {TEMPORAL_DIM_ORDER_SELECTOR_VALUE_ASC, TEMPORAL_DIM_ORDER_SELECTOR_VALUE_DESC} from \"./constants\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: \"0 8px\"\r\n },\r\n label: {\r\n color: \"rgba(0, 0, 0, 0.54)\",\r\n fontSize: 13,\r\n height: 40,\r\n lineHeight: \"40px\",\r\n marginRight: 8\r\n },\r\n formControl: {\r\n margin: \"8px 0\"\r\n },\r\n select: {\r\n \"& .MuiSelect-root.MuiSelect-select\": {\r\n padding: \"2px 24px 3px 0\",\r\n fontSize: 14\r\n }\r\n },\r\n menuItem: {\r\n fontSize: 14\r\n }\r\n});\r\n\r\nconst TemporalDimOrderSelector = ({\r\n t,\r\n classes,\r\n temporalDimOrder,\r\n setTemporalDimOrder\r\n }) =>\r\n \r\n \r\n {t(\"components.temporalDimOrderSelector.title\")}:\r\n \r\n \r\n \r\n setTemporalDimOrder(ev.target.value)}\r\n SelectDisplayProps={{\r\n \"aria-haspopup\": true,\r\n \"aria-labelledby\": \"label-format-selector-label\"\r\n }}\r\n >\r\n \r\n {t(\"components.temporalDimOrderSelector.values.asc\")}\r\n \r\n \r\n {t(\"components.temporalDimOrderSelector.values.desc\")}\r\n \r\n \r\n \r\n \r\n ;\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(TemporalDimOrderSelector);","import React, {Fragment, useState} from 'react';\r\nimport {compose} from \"redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {getMapClassificationMethodOptions, MAP_CLASSIFICATION_METHOD_CUSTOM_INTERVALS} from \"../map/constants\";\r\nimport {isValidIntegerInInclusiveRange} from \"../../utils/validator\";\r\nimport {SketchPicker} from 'react-color';\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n field: {\r\n marginBottom: 12\r\n },\r\n label: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n },\r\n slider: {\r\n margin: \"12px 8px\",\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n },\r\n colorContainer: {\r\n border: \"2px solid darkgray\",\r\n borderRadius: 5\r\n },\r\n colorPick: {\r\n width: \"100%\",\r\n height: 56,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n cursor: \"pointer\"\r\n },\r\n palettePreview: {\r\n width: \"100%\",\r\n height: 56\r\n },\r\n previewLabel: {\r\n textAlign: \"center\"\r\n }\r\n});\r\n\r\nconst getGradientStr = colors => {\r\n let gradientStr = \"linear-gradient(90deg, \";\r\n\r\n const percStep = 100 / colors.length;\r\n for (let i = 0; i < colors.length; i++) {\r\n if (i === 0) {\r\n gradientStr += `${colors[i]} 0%, `;\r\n }\r\n if (i > 0) {\r\n const perc = percStep * i;\r\n gradientStr += `${colors[i - 1]} ${perc}%, ${colors[i]} ${perc}%, `;\r\n }\r\n if (i === colors.length - 1) {\r\n gradientStr += `${colors[i]} 100%`;\r\n }\r\n }\r\n\r\n gradientStr += \")\";\r\n\r\n return gradientStr;\r\n}\r\n\r\nconst getCustomIntervals = (values, colors) => {\r\n return colors.map((color, idx) => ({\r\n min: values[idx],\r\n max: values[idx + 1],\r\n color: color\r\n }));\r\n};\r\n\r\nconst getCustomIntervalValuesValidity = values =>\r\n values.find((el, idx) => (\r\n idx > 0 && idx < (values.length - 1) && (\r\n el === null || !isValidIntegerInInclusiveRange(el, values[idx - 1], values[idx + 1])\r\n )\r\n )) === undefined;\r\n\r\nfunction MapSettingsSettings(props) {\r\n const {\r\n t,\r\n classes,\r\n mapId,\r\n settings,\r\n onSettingsSet,\r\n setSettingsValidity\r\n } = props;\r\n\r\n const {\r\n classificationMethod,\r\n paletteStartColor,\r\n paletteEndColor,\r\n paletteCardinality,\r\n customIntervals\r\n } = settings;\r\n\r\n const [tmpColor, setTmpColor] = useState(null);\r\n const [isStartColor, setIsStartColor] = useState(true);\r\n\r\n const handleChooseColorOpen = isStartColor => {\r\n setIsStartColor(isStartColor);\r\n setTmpColor(isStartColor ? paletteStartColor : paletteEndColor);\r\n };\r\n\r\n const handleChooseColorClose = () => {\r\n setTmpColor(null);\r\n setIsStartColor(null);\r\n };\r\n\r\n const handleChooseColorSubmit = () => {\r\n setTmpColor(null);\r\n setIsStartColor(null);\r\n\r\n const newPaletteStartColor = isStartColor ? tmpColor : paletteStartColor;\r\n const newPaletteEndColor = !isStartColor ? tmpColor : paletteEndColor;\r\n\r\n let newCustomInterval = null;\r\n if (customIntervals !== null && customIntervals !== undefined) {\r\n const previewColors = window.LMap.getColorPalette(newPaletteStartColor, newPaletteEndColor, paletteCardinality);\r\n newCustomInterval = customIntervals.map((el, idx) => ({...el, color: previewColors[idx]}));\r\n }\r\n\r\n onSettingsSet({\r\n ...settings,\r\n paletteStartColor: newPaletteStartColor,\r\n paletteEndColor: newPaletteEndColor,\r\n customIntervals: newCustomInterval\r\n });\r\n };\r\n\r\n const previewColors = window.LMap.getColorPalette(paletteStartColor, paletteEndColor, paletteCardinality);\r\n const previewGradientStr = getGradientStr(previewColors);\r\n\r\n if (!window.LMap.getPaletteConstraints(mapId)) {\r\n return \r\n }\r\n\r\n const {\r\n paletteCardinalityMin,\r\n paletteCardinalityMax,\r\n seriesMin,\r\n seriesMax\r\n } = window.LMap.getPaletteConstraints(mapId);\r\n\r\n const customIntervalValues = new Array(previewColors.length + 1).fill(null);\r\n customIntervalValues[0] = seriesMin;\r\n customIntervalValues[previewColors.length] = seriesMax;\r\n\r\n if ((customIntervals || []).length === previewColors.length) {\r\n customIntervals.forEach(({min}, idx) => customIntervalValues[idx] = min);\r\n }\r\n\r\n let cardinalityValues = [];\r\n if (paletteCardinalityMin && paletteCardinalityMax) {\r\n cardinalityValues = Array.from({length: (paletteCardinalityMax - paletteCardinalityMin + 1)}, (e, i) => i + paletteCardinalityMin);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n {t(\"components.mapSettings.view.classificationMethod.label\") + \":\"}\r\n
    \r\n
    \r\n \r\n {\r\n onSettingsSet({\r\n ...settings,\r\n classificationMethod: target.value,\r\n customIntervals: null\r\n });\r\n setSettingsValidity(target.value !== MAP_CLASSIFICATION_METHOD_CUSTOM_INTERVALS);\r\n }}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {getMapClassificationMethodOptions(t).map(({value, label}) =>\r\n {label}\r\n )}\r\n \r\n \r\n \r\n
    \r\n {t(\"components.mapSettings.view.paletteCardinality.label\") + \":\"}\r\n
    \r\n
    \r\n \r\n {\r\n onSettingsSet({\r\n ...settings,\r\n paletteCardinality: target.value,\r\n customIntervals: null\r\n });\r\n }}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {cardinalityValues.map(val =>\r\n {val}\r\n )}\r\n \r\n \r\n \r\n
    \r\n {t(\"components.mapSettings.view.paletteStartColor.label\") + \":\"}\r\n
    \r\n
    \r\n \r\n handleChooseColorOpen(true)}\r\n />\r\n \r\n \r\n \r\n
    \r\n {t(\"components.mapSettings.view.paletteEndColor.label\") + \":\"}\r\n
    \r\n
    \r\n \r\n \r\n handleChooseColorOpen(false)}\r\n />\r\n \r\n \r\n
    \r\n {t(\"components.mapSettings.view.palettePreview.label\") + \":\"}\r\n
    \r\n
    \r\n {classificationMethod !== MAP_CLASSIFICATION_METHOD_CUSTOM_INTERVALS\r\n ? (\r\n \r\n \r\n \r\n )\r\n : (\r\n \r\n \r\n {t(\"components.mapSettings.view.palettePreview.start.label\") + \":\"}\r\n \r\n \r\n \r\n {t(\"components.mapSettings.view.palettePreview.end.label\") + \":\"}\r\n \r\n \r\n {previewColors.map((color, idx) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n const val = ((target.value || \"\").length > 0 && !isNaN(target.value))\r\n ? Number(target.value)\r\n : null;\r\n const newCustomIntervalValues = [...customIntervalValues];\r\n newCustomIntervalValues[idx + 1] = val;\r\n onSettingsSet({...settings, customIntervals: getCustomIntervals(newCustomIntervalValues, previewColors)});\r\n setSettingsValidity(getCustomIntervalValuesValidity(newCustomIntervalValues));\r\n }}\r\n disabled={idx === (previewColors.length - 1)}\r\n error={\r\n customIntervalValues[idx + 1] === null ||\r\n customIntervalValues[idx + 1] <= customIntervalValues[idx] ||\r\n customIntervalValues[idx + 1] >= customIntervalValues[idx + 2]\r\n }\r\n />\r\n \r\n \r\n ))}\r\n \r\n )\r\n }\r\n
    \r\n\r\n \r\n \r\n setTmpColor(hex)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(MapSettingsSettings);","import React, {Fragment, useCallback, useEffect, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport DatasetFilters from \"../../dataset-filters\";\r\nimport Table, {JSONSTAT_TABLE_FONT_SIZE_LG, JSONSTAT_TABLE_FONT_SIZE_MD, JSONSTAT_TABLE_FONT_SIZE_SM} from \"../../table\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FontSizeSelector, {FONT_SIZE_SELECTOR_FONT_SIZE_MD, FONT_SIZE_SELECTOR_FONT_SIZE_SM} from \"../../font-size-selector\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CustomEmpty from \"../../custom-empty\";\r\nimport {\r\n setDatasetChartSettings,\r\n setDatasetHtmlGeneratingTime,\r\n setDatasetLabelFormat,\r\n setDatasetMapSettings,\r\n setDatasetTerritoryDetailLevel,\r\n setDatasetTemporalDimOrder,\r\n setDatasetVariation,\r\n submitDatasetChartLayout,\r\n submitDatasetDownload,\r\n submitDatasetMapLayout,\r\n submitDatasetTableLayout\r\n} from \"../../../state/dataset/datasetActions\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport {getUpdatedLayout} from \"../../../utils/jsonStat\";\r\nimport {numberFormatter} from \"../../../utils/formatters\";\r\nimport Map from \"../../map\";\r\nimport LabelFormatSelector from \"../../label-format-selector\";\r\nimport Chart, {CHART_TYPE_BAR, CHART_TYPE_LINE} from \"../../chart\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport VariationSelector from \"../../variation-selector\";\r\nimport {getViewerTypeFromIdx, viewersFactory} from \"../constant\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport ChartSettingsGeneral from \"../../chart-settings-forms/General\";\r\nimport ChartSettingsColors from \"../../chart-settings-forms/Colors\";\r\nimport GetAppIcon from \"@material-ui/icons/GetApp\";\r\nimport {LABEL_FORMAT_SELECTOR_LABEL_FORMAT_ID} from \"../../label-format-selector/constants\";\r\nimport {DOWNLOAD_FORMAT_CSV, downloadFormats} from \"../../../utils/download\";\r\nimport TemporalDimOrderSelector from \"../../temporal-dim-order-selector\";\r\nimport {TEMPORAL_DIM_ORDER_SELECTOR_VALUE_DESC} from \"../../temporal-dim-order-selector/constants\";\r\nimport MapSettingsSettings from \"../../map-settings-form/Settings\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n filtersAndActions: {\r\n width: \"100%\",\r\n paddingBottom: theme.spacing(1),\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"flex-start\"\r\n },\r\n filters: {},\r\n actions: {\r\n marginBottom: 8\r\n },\r\n action: {\r\n height: 40,\r\n \"& button\": {\r\n padding: 8\r\n }\r\n },\r\n viewer: {\r\n width: \"100%\",\r\n position: \"relative\"\r\n },\r\n warningAlert: {\r\n width: \"100%\",\r\n marginBottom: 16\r\n },\r\n settingsTabs: {\r\n height: 48\r\n },\r\n settingsContent: {\r\n marginTop: 12,\r\n padding: 12,\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n height: \"calc(100% - 60px)\",\r\n display: \"flex\"\r\n }\r\n});\r\n\r\nconst mapStateToProps = ({app, appConfig, dataset}) => ({\r\n defaultLanguage: app.language,\r\n languages: app.languages,\r\n showSingleGeometry: appConfig.mapConfig.showSingleGeometry,\r\n dataset: dataset.dataset,\r\n timeDim: dataset.timeDim,\r\n criteria: dataset.criteria,\r\n viewerIdx: dataset.viewerIdx,\r\n tableLayout: dataset.tableLayout,\r\n mapLayout: dataset.mapLayout,\r\n chartLayout: dataset.chartLayout,\r\n tableFilterTree: dataset.tableFilterTree,\r\n mapFilterTree: dataset.mapFilterTree,\r\n chartFilterTree: dataset.chartFilterTree,\r\n timePeriodsByFreq: dataset.timePeriodsByFreq,\r\n labelFormat: dataset.labelFormat,\r\n temporalDimOrder: dataset.temporalDimOrder,\r\n showTrend: dataset.showTrend,\r\n showCyclical: dataset.showCyclical,\r\n decimalSeparator: dataset.decimalSeparator,\r\n decimalPlaces: dataset.decimalPlaces,\r\n tableEmptyChar: dataset.tableEmptyChar,\r\n chartSettings: dataset.chartSettings,\r\n mapSettings: dataset.mapSettings,\r\n enableVariation: dataset.enableVariation,\r\n isPartialData: dataset.isPartialData,\r\n isTooBigData: dataset.isTooBigData,\r\n detailLevelTree: dataset.detailLevelTree,\r\n detailLevel: dataset.detailLevel,\r\n isFullscreen: dataset.isFullscreen\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onTableLayoutSet: layout => dispatch(submitDatasetTableLayout(layout)),\r\n onMapLayoutSet: layout => dispatch(submitDatasetMapLayout(layout)),\r\n onChartLayoutSet: layout => dispatch(submitDatasetChartLayout(layout)),\r\n onLabelFormatSet: labelFormat => dispatch(setDatasetLabelFormat(labelFormat)),\r\n onVariationSet: variation => dispatch(setDatasetVariation(variation)),\r\n onChartSettingsSet: chartSetting => dispatch(setDatasetChartSettings(chartSetting)),\r\n onMapSettingsSet: mapSettings => dispatch(setDatasetMapSettings(mapSettings)),\r\n onDetailLevelSet: detailLevel => dispatch(setDatasetTerritoryDetailLevel(detailLevel)),\r\n onTimeSet: time => dispatch(setDatasetHtmlGeneratingTime(time)),\r\n onDownloadSubmit: (nodeId, datasetId, datasetTitle, criteria, layout, format, extension, zipped, params, defaultLanguage, languages, t) =>\r\n dispatch(submitDatasetDownload(nodeId, datasetId, datasetTitle, criteria, layout, format, extension, zipped, params, defaultLanguage, languages, t)),\r\n onTemporalDimOrderSet: temporalDimOrder => dispatch(setDatasetTemporalDimOrder(temporalDimOrder)),\r\n});\r\n\r\nconst handleStyle = mapId => {\r\n\r\n const $actions = $(\"#data-viewer__single-viewer__header__actions\");\r\n const $filters = $(\"#data-viewer__single-viewer__header__filters\");\r\n const $filtersAndActions = $(\"#data-viewer__single-viewer__header__filters-and-actions\");\r\n\r\n const actionsWidth = $actions.outerWidth(true) || 0;\r\n const filtersWidth = $filters.outerWidth(true) || 0;\r\n const filtersAndActionsWidth = $filtersAndActions.width() || 0;\r\n\r\n if (filtersAndActionsWidth > (actionsWidth + filtersWidth)) {\r\n $filtersAndActions.css({flexDirection: \"row\"});\r\n $actions.css({alignSelf: \"unset\"});\r\n\r\n } else {\r\n $filtersAndActions.css({flexDirection: \"column-reverse\"});\r\n $actions.css({alignSelf: \"end\"});\r\n }\r\n\r\n const viewerHeaderHeight = $(\"#data-viewer__single-viewer__header\").outerHeight(true) || 0;\r\n $(\"#data-viewer__single-viewer__viewer\").height(`calc(100% - ${viewerHeaderHeight}px)`);\r\n\r\n if (mapId) {\r\n window.LMap.handleViewportChange(mapId);\r\n }\r\n\r\n};\r\n\r\nfunction SingleViewer(props) {\r\n const {\r\n classes,\r\n\r\n nodeId,\r\n nodeExtras,\r\n datasetId,\r\n datasetTitle,\r\n maxObservation,\r\n chartId,\r\n mapId,\r\n isFullscreen,\r\n\r\n defaultLanguage,\r\n languages,\r\n showSingleGeometry,\r\n dataset,\r\n timeDim,\r\n criteria,\r\n viewerIdx,\r\n tableLayout,\r\n mapLayout,\r\n chartLayout,\r\n tableFilterTree,\r\n mapFilterTree,\r\n chartFilterTree,\r\n timePeriodsByFreq,\r\n labelFormat,\r\n temporalDimOrder,\r\n showTrend,\r\n showCyclical,\r\n decimalSeparator,\r\n decimalPlaces,\r\n tableEmptyChar,\r\n chartSettings,\r\n mapSettings,\r\n enableVariation,\r\n isPartialData,\r\n isTooBigData,\r\n detailLevel,\r\n\r\n onTableLayoutSet,\r\n onMapLayoutSet,\r\n onChartLayoutSet,\r\n onLabelFormatSet,\r\n onVariationSet,\r\n onChartSettingsSet,\r\n onMapSettingsSet,\r\n onDetailLevelSet,\r\n onTimeSet,\r\n onDownloadSubmit,\r\n onTemporalDimOrderSet\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [fontSize, setFontSize] = useState(FONT_SIZE_SELECTOR_FONT_SIZE_MD);\r\n\r\n const [isChartSettingVisible, setChartSettingsVisibility] = useState(false);\r\n const [chartSettingsTabId, setChartSettingsTabId] = useState(null);\r\n const [tmpChartSettings, setTmpChartSettings] = useState(null);\r\n\r\n const [isMapSettingVisible, setMapSettingsVisibility] = useState(false);\r\n const [tmpMapSettings, setTmpMapSettings] = useState(null);\r\n const [isMapSettingsValid, setMapSettingsValidity] = useState(true);\r\n\r\n const [hierarchyOnlyAttributes] = useState(nodeExtras?.HierarchyOnlyAttributes || []);\r\n const [hideHierarchyOnlyRows] = useState(nodeExtras?.HideHierarchyOnlyRows || false);\r\n\r\n useEffect(() => {\r\n const func = () => handleStyle(mapId);\r\n window.addEventListener(\"resize\", func);\r\n return () => window.removeEventListener(\"resize\", func)\r\n }, [mapId]);\r\n\r\n useEffect(() => {\r\n handleStyle(mapId);\r\n });\r\n\r\n useEffect(() => {\r\n setTmpChartSettings(chartSettings);\r\n }, [chartSettings]);\r\n\r\n useEffect(() => {\r\n setTmpMapSettings(mapSettings);\r\n }, [mapSettings]);\r\n\r\n const onTablePageGenerationComplete = useCallback(generatedTableStructure => {\r\n const timings = generatedTableStructure.timings;\r\n if (timings) {\r\n onTimeSet(Math.round((generatedTableStructure.timings) * 100) / 100);\r\n }\r\n }, [onTimeSet]);\r\n\r\n const handleFilterSelect = useCallback((dimension, value) => {\r\n if (viewerIdx === 0) {\r\n onTableLayoutSet(getUpdatedLayout(dimension, value, dataset, tableLayout, tableFilterTree));\r\n } else if (viewerIdx === 1) {\r\n onMapLayoutSet(getUpdatedLayout(dimension, value, dataset, mapLayout, mapFilterTree));\r\n } else if (viewerIdx >= 2) {\r\n onChartLayoutSet(getUpdatedLayout(dimension, value, dataset, chartLayout, chartFilterTree));\r\n }\r\n }, [dataset, viewerIdx, tableLayout, tableFilterTree, onTableLayoutSet, mapLayout, mapFilterTree, onMapLayoutSet, chartLayout, chartFilterTree, onChartLayoutSet]);\r\n\r\n const handleFontSizeSelect = size => {\r\n setFontSize(size);\r\n };\r\n\r\n const handleChartSettingsOpen = () => {\r\n setChartSettingsTabId(\"general\");\r\n setChartSettingsVisibility(true);\r\n };\r\n\r\n const handleChartSettingsClose = () => {\r\n setChartSettingsVisibility(false);\r\n setTmpChartSettings(chartSettings);\r\n };\r\n\r\n const handleChartSettingsSubmit = () => {\r\n setChartSettingsVisibility(false);\r\n onChartSettingsSet(tmpChartSettings);\r\n };\r\n\r\n const handleMapSettingsOpen = settings => {\r\n setTmpMapSettings(settings);\r\n setMapSettingsValidity(true);\r\n setMapSettingsVisibility(true);\r\n };\r\n\r\n const handleMapSettingsClose = () => {\r\n setMapSettingsVisibility(false);\r\n };\r\n\r\n const handleMapSettingsSubmit = () => {\r\n setMapSettingsVisibility(false);\r\n onMapSettingsSet(tmpMapSettings);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {dataset && viewerIdx !== null && (\r\n
    \r\n {dataset && isPartialData && (\r\n \r\n {t(\"scenes.dataViewer.warnings.maxObservation.label\", {maxObservation: maxObservation ? numberFormatter(maxObservation) : \"\"})}\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {(viewerIdx === 0 || viewerIdx >= 2) && (\r\n \r\n \r\n \r\n )}\r\n {enableVariation &&\r\n (viewerIdx === 0 || getViewerTypeFromIdx(viewerIdx) === CHART_TYPE_BAR || getViewerTypeFromIdx(viewerIdx) === CHART_TYPE_LINE) && (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n const exportParams = {\r\n labelFormat: labelFormat,\r\n customLabelFormat: {\r\n [timeDim]: LABEL_FORMAT_SELECTOR_LABEL_FORMAT_ID\r\n },\r\n decimalNumber: decimalPlaces,\r\n decimalSeparator: decimalSeparator,\r\n emptyCellPlaceHolder: tableEmptyChar,\r\n hasVariation: enableVariation,\r\n showTrend: showTrend,\r\n showCyclical: showCyclical,\r\n temporalDimOrder: temporalDimOrder\r\n };\r\n const layout = viewerIdx === 0\r\n ? tableLayout\r\n : viewerIdx === 1\r\n ? mapLayout\r\n : chartLayout;\r\n\r\n const newCriteria = {...criteria};\r\n if (viewerIdx === 1 && layout?.territoryDim) {\r\n const territoryDim = layout.territoryDim;\r\n newCriteria[territoryDim] = {\r\n id: territoryDim,\r\n filterValues: window.LMap.getDataIds(mapId)\r\n };\r\n }\r\n\r\n onDownloadSubmit(\r\n nodeId,\r\n datasetId,\r\n datasetTitle,\r\n newCriteria,\r\n layout,\r\n DOWNLOAD_FORMAT_CSV,\r\n downloadFormats()[DOWNLOAD_FORMAT_CSV].extension,\r\n false,\r\n exportParams,\r\n defaultLanguage,\r\n languages,\r\n t\r\n );\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {viewerIdx >= 2 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {false && viewerIdx === 1 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {viewerIdx === 0 && (\r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n {(() => {\r\n if (viewerIdx === 0 && tableLayout) {\r\n const isTimeDimInTable = !tableLayout.filters.includes(timeDim);\r\n return !isTooBigData\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n\r\n } else if (viewerIdx === 1 && mapLayout) {\r\n return (\r\n \r\n )\r\n\r\n } else if (viewerIdx >= 2 && chartLayout) {\r\n const isTimeDimInChart = !chartLayout.filters.includes(timeDim);\r\n return (\r\n \r\n )\r\n\r\n } else {\r\n return (\r\n \r\n )\r\n }\r\n })()}\r\n
    \r\n
    \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.singleViewer.dialogs.chartSettings.title\")}\r\n \r\n \r\n \r\n setChartSettingsTabId(newValue)}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n {chartSettingsTabId === \"general\" && (\r\n \r\n )}\r\n {chartSettingsTabId === \"colors\" && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.singleViewer.dialogs.mapSettings.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"commons.confirm.cancel\")}\r\n \r\n \r\n {t(\"commons.confirm.apply\")}\r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(SingleViewer)","import React from 'react';\r\nimport {compose} from \"redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport {CHART_TYPE_PYRAMID} from \"../chart\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport SwapHorizIcon from '@material-ui/icons/SwapHoriz';\r\nimport {viewersFactory} from \"../data-viewer/constant\";\r\nimport {getDimensionLabel} from \"../../utils/jsonStat\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n paper: {\r\n marginBottom: theme.spacing(2),\r\n padding: theme.spacing(3),\r\n \"& :last-child\": {\r\n marginBottom: 0\r\n }\r\n },\r\n field: {\r\n marginBottom: theme.spacing(3)\r\n },\r\n dimTitle: {\r\n fontSize: 16,\r\n fontWeight: \"bold\",\r\n width: \"calc(50% - 36px)\"\r\n },\r\n dimTitleSpacer: {\r\n width: 72\r\n },\r\n dimValue: {\r\n width: \"calc(50% - 32px)\",\r\n fontSize: 16,\r\n padding: 16\r\n },\r\n dimSwapper: {\r\n margin: \"0 8px\",\r\n height: \"56px\",\r\n lineHeight: \"56px\"\r\n }\r\n});\r\n\r\nfunction ChartSettingsLayout(props) {\r\n const {\r\n t,\r\n classes,\r\n jsonStat,\r\n layout,\r\n onLayoutSet,\r\n type,\r\n onTypeSet\r\n } = props;\r\n\r\n return (\r\n
    \r\n \r\n onTypeSet(ev.target.value)}\r\n SelectProps={{SelectDisplayProps: {\"aria-haspopup\": true}}}\r\n >\r\n {viewersFactory(t).slice(2).filter(({type}) => type !== CHART_TYPE_PYRAMID).map(({type, title}, idx) =>\r\n {title}\r\n )}\r\n \r\n \r\n {layout.primaryDim[0] && layout.secondaryDim[0] && (\r\n \r\n \r\n
    \r\n {t(\"components.chartSettings.layout.primaryDim.label\")}\r\n
    \r\n
    \r\n
    \r\n {t(\"components.chartSettings.layout.secondaryDim.label\")}\r\n
    \r\n \r\n \r\n \r\n {getDimensionLabel(jsonStat, null, layout.primaryDim[0])}\r\n \r\n
    \r\n onLayoutSet({\r\n ...layout,\r\n primaryDim: layout.secondaryDim,\r\n primaryDimValues: layout.secondaryDimValues,\r\n secondaryDim: layout.primaryDim,\r\n secondaryDimValues: layout.primaryDimValues\r\n })}\r\n >\r\n \r\n \r\n
    \r\n \r\n {getDimensionLabel(jsonStat, null, layout.secondaryDim[0])}\r\n \r\n
    \r\n \r\n )}\r\n
    \r\n )\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(ChartSettingsLayout);","import React, {Fragment, useMemo, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {getDimensionAttributeMap, getFiltersValueInfo, isFilterValid} from \"../../utils/jsonStat\";\r\nimport DatasetFilterAttributeIcon from \"../dataset-filter-attribute-icon\";\r\nimport {localizeI18nObj} from \"../../utils/i18n\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport InfiniteScrollTable from \"../infinite-scroll-table\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME} from \"../label-format-selector/constants\";\r\nimport {getCombinationArrays} from \"../../utils/other\";\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nconst styles = theme => ({\r\n filtersWrapper: {\r\n cursor: \"pointer\",\r\n padding: 4,\r\n \"&:hover\": {\r\n background: \"#f5f5f5\"\r\n },\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n },\r\n filters: {\r\n fontSize: 14,\r\n whiteSpace: \"nowrap\",\r\n textOverflow: \"ellipsis\",\r\n overflow: \"hidden\"\r\n },\r\n filter: {\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\"\r\n },\r\n filterElement: {\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\"\r\n },\r\n tooltipTitle: {\r\n fontSize: 15,\r\n marginBottom: 8\r\n },\r\n tooltipElement: {\r\n margin: \"4px 0\"\r\n },\r\n filtersClickableIcon: {\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\",\r\n float: \"right\",\r\n color: \"rgba(0, 0, 0, 0.54)\"\r\n }\r\n});\r\n\r\nconst mapStateToProps = ({app, appConfig}) => ({\r\n hiddenDimensionValueLabels: localizeI18nObj(appConfig.hiddenDimensionValueLabels, app.language, app.languages)\r\n});\r\n\r\nconst getKeyFromFilter = filter => filter.map(({value}) => value).join(\"+\");\r\n\r\nconst DatasetMergedFilters = ({\r\n t,\r\n classes,\r\n hiddenDimensionValueLabels,\r\n jsonStat,\r\n layout,\r\n filterTree,\r\n timeDim,\r\n labelFormat = LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME,\r\n isDimensionAllowed,\r\n onChange\r\n }) => {\r\n\r\n const [visible, setVisible] = useState(false);\r\n\r\n const filterDims = useMemo(() => {\r\n let orderedFilters = (layout?.filters || []).filter(dim => !isDimensionAllowed || isDimensionAllowed(dim));\r\n if (orderedFilters.includes(timeDim)) {\r\n orderedFilters = [timeDim, ...orderedFilters.filter(dim => dim !== timeDim)];\r\n }\r\n return orderedFilters;\r\n }, [layout.filters, timeDim, isDimensionAllowed]);\r\n\r\n const dimAttributeMap = useMemo(() => getDimensionAttributeMap(jsonStat, t), [jsonStat, t]);\r\n\r\n const rows = useMemo(() => {\r\n const rows = [];\r\n\r\n if (filterDims) {\r\n const dimensionsValues = filterDims.map(filter => {\r\n const dimValues = [...jsonStat.dimension[filter].category.index];\r\n return filter !== timeDim\r\n ? dimValues\r\n : dimValues.reverse();\r\n });\r\n getCombinationArrays(dimensionsValues).forEach(combination => {\r\n const orderedCombination = (layout?.filters || []).map(dim => combination[filterDims.indexOf(dim)]);\r\n if (isFilterValid(orderedCombination, filterTree)) {\r\n const filter = filterDims.reduce((o, dim, dimIdx) => ({...o, [dim]: combination[dimIdx]}), {});\r\n const {values, datasetId} = getFiltersValueInfo(filterDims, filter, jsonStat, labelFormat, t);\r\n\r\n rows.push({\r\n filter: filter,\r\n values: values,\r\n datasetId: datasetId\r\n });\r\n }\r\n });\r\n }\r\n\r\n return rows;\r\n }, [filterDims, jsonStat, layout.filters, filterTree, timeDim, labelFormat, t]);\r\n\r\n const {\r\n datasetId: currentDatasetId,\r\n values: currentValues\r\n } = getFiltersValueInfo(filterDims, layout.filtersValue, jsonStat, labelFormat, t);\r\n\r\n return (\r\n \r\n \r\n {(jsonStat?.extension?.datasets || []).length > 1 && currentDatasetId && (\r\n
    \r\n {jsonStat.extension.datasetlabels[currentDatasetId]}\r\n
    \r\n )}\r\n {currentValues.map(({dimLabel, valueLabel}, idx) => (\r\n
    \r\n {dimLabel}: {valueLabel}\r\n
    \r\n ))}\r\n
    \r\n }\r\n >\r\n
    setVisible(true)}>\r\n
    \r\n {currentValues\r\n .filter(({valueLabel}) => !(hiddenDimensionValueLabels || []).map(label => label.toLowerCase()).includes(valueLabel.toLowerCase()))\r\n .map(({dim, dimLabel, value, valueLabel}, idx, arr) =>\r\n \r\n \r\n {valueLabel}\r\n \r\n \r\n \r\n \r\n \r\n {idx < arr.length - 1 ? \",\" : \"\"} \r\n \r\n \r\n )\r\n }\r\n
    \r\n \r\n
    \r\n \r\n setVisible(false)}\r\n fullWidth\r\n maxWidth=\"md\"\r\n >\r\n setVisible(false)}>\r\n {t(\"components.datasetMergedFilters.dialog.title\")}\r\n \r\n \r\n {!rows\r\n ? (\r\n }\r\n style={{height: 400}}\r\n />\r\n )\r\n : (\r\n getKeyFromFilter(filter)}\r\n showHeader={false}\r\n columns={[\r\n {\r\n title: \"\",\r\n dataIndex: \"values\",\r\n render: (values, {datasetId}) => values\r\n .map(({dim, value, valueLabel}, idx, arr) => (\r\n \r\n \r\n {valueLabel}\r\n \r\n \r\n \r\n \r\n \r\n {idx < arr.length - 1 ? \",\" : \"\"} \r\n \r\n \r\n )),\r\n renderText: values => values.map(({valueLabel}) => valueLabel).join(\", \"),\r\n renderTooltip: (values, {datasetId}) => (\r\n
    \r\n {(jsonStat?.extension?.datasets || []).length > 1 && datasetId && (\r\n
    \r\n {jsonStat.extension.datasetlabels[datasetId]}\r\n
    \r\n )}\r\n {values.map(({dimLabel, valueLabel}, idx) => (\r\n
    \r\n {dimLabel}: {valueLabel}\r\n
    \r\n ))}\r\n
    \r\n ),\r\n minWidth: 100\r\n }\r\n ]}\r\n onRowClick={({filter}) => {\r\n onChange({\r\n ...layout,\r\n filtersValue: filter\r\n });\r\n setVisible(false);\r\n }}\r\n getRowStyle={({values}) => ({\r\n background: getKeyFromFilter(values) === getKeyFromFilter(currentValues)\r\n ? \"#fff9e5\"\r\n : undefined\r\n })}\r\n height={400}\r\n />\r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default compose(\r\n connect(mapStateToProps),\r\n withTranslation(),\r\n withStyles(styles)\r\n)(DatasetMergedFilters);","import React, {Fragment, useCallback, useEffect, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Table from \"../../table\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport CustomEmpty from \"../../custom-empty\";\r\nimport {\r\n hideDatasetIndicatorWarning,\r\n setDatasetChartLayoutTerritoryDimValues,\r\n setDatasetChartSettings,\r\n setDatasetHtmlGeneratingTime,\r\n setDatasetIndicatorArithmeticMeanValues,\r\n setDatasetMapSettings,\r\n setDatasetViewerChartType,\r\n submitDatasetChartLayout,\r\n submitDatasetMapLayout\r\n} from \"../../../state/dataset/datasetActions\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport {numberFormatter} from \"../../../utils/formatters\";\r\nimport Map from \"../../map/index\";\r\nimport Chart from \"../../chart\";\r\nimport {DIM_VALUE_LABEL_MODIFIER_REMOVE, TABLE_HEADER_MERGED} from \"../../table/utils\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport ChartSettingsLayout from \"../../chart-settings-forms/Layout\";\r\nimport ChartSettingsGeneral from \"../../chart-settings-forms/General\";\r\nimport ChartSettingsColors from \"../../chart-settings-forms/Colors\";\r\nimport MapSettingsSettings from \"../../map-settings-form/Settings\";\r\nimport {getNode} from \"../../../utils/tree\";\r\nimport {\r\n LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH,\r\n LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME\r\n} from \"../../label-format-selector/constants\";\r\nimport DatasetMergedFilters from \"../../dataset-merged-filters\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n viewerHeader: {\r\n width: \"100%\",\r\n marginBottom: 8\r\n },\r\n viewers: {\r\n width: \"100%\",\r\n position: \"relative\"\r\n },\r\n viewer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n position: \"relative\"\r\n },\r\n filtersAndActions: {\r\n marginBottom: 4\r\n },\r\n actions: {\r\n height: 30\r\n },\r\n settingsTabs: {\r\n height: 48\r\n },\r\n settingsContent: {\r\n marginTop: 12,\r\n padding: 12,\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n height: \"calc(100% - 60px)\",\r\n display: \"flex\"\r\n }\r\n});\r\n\r\nconst mapStateToProps = ({appConfig, dataset}) => ({\r\n maxChartTerritoryValueCount: appConfig.chartConfig.maxTerritoryValueCount,\r\n dataset: dataset.dataset,\r\n territoryDimCodelist: dataset.territoryDimCodelist,\r\n territoryDim: dataset.isPointData ? dataset.pointDim : dataset.territoryDim,\r\n tableLayout: dataset.tableLayout,\r\n tableEmptyChar: dataset.tableEmptyChar,\r\n mapLayout: dataset.mapLayout,\r\n mapFilterTree: dataset.mapFilterTree,\r\n mapSettings: dataset.mapSettings,\r\n chartLayout: dataset.chartLayout,\r\n chartFilterTree: dataset.chartFilterTree,\r\n chartSettings: dataset.chartSettings,\r\n timePeriodsByFreq: dataset.timePeriodsByFreq,\r\n showTrend: dataset.showTrend,\r\n showCyclical: dataset.showCyclical,\r\n decimalSeparator: dataset.decimalSeparator,\r\n decimalPlaces: dataset.decimalPlaces,\r\n isPartialData: dataset.isPartialData,\r\n isTooBigData: dataset.isTooBigData,\r\n isPointData: dataset.isPointData,\r\n latAttributeId: dataset.latAttributeId,\r\n longAttributeId: dataset.longAttributeId,\r\n srid: dataset.srid,\r\n isTableVisible: dataset.isTableVisible,\r\n isMapVisible: dataset.isMapVisible,\r\n isChartVisible: dataset.isChartVisible,\r\n chartType: dataset.chartType,\r\n detailLevelTree: dataset.detailLevelTree,\r\n detailLevel: dataset.detailLevel,\r\n missingIndicators: dataset.missingIndicators,\r\n showArithmeticMean: dataset.showArithmeticMean,\r\n arithmeticMeanDims: dataset.arithmeticMeanDims,\r\n arithmeticMeans: dataset.arithmeticMeans,\r\n showStandardDeviation: dataset.showStandardDeviation,\r\n showCoefficientOfVariation: dataset.showCoefficientOfVariation,\r\n geometriesYear: dataset.geometriesYear\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onChartTerritoryDimValuesSet: territoryDimValues => dispatch(setDatasetChartLayoutTerritoryDimValues(territoryDimValues)),\r\n onChartSettingsSet: chartSetting => dispatch(setDatasetChartSettings(chartSetting)),\r\n onChartLayoutSet: layout => dispatch(submitDatasetChartLayout(layout)),\r\n onChartTypeSet: type => dispatch(setDatasetViewerChartType(type)),\r\n onMapSettingsSet: mapSettings => dispatch(setDatasetMapSettings(mapSettings)),\r\n onMapLayoutSet: layout => dispatch(submitDatasetMapLayout(layout)),\r\n onIndicatorWarningHide: layout => dispatch(hideDatasetIndicatorWarning(layout)),\r\n onArithmeticMeanValuesSet: (arithmeticMeanDims, arithmeticMeans) => dispatch(setDatasetIndicatorArithmeticMeanValues(arithmeticMeanDims, arithmeticMeans)),\r\n onTimeSet: time => dispatch(setDatasetHtmlGeneratingTime(time))\r\n});\r\n\r\nconst handleStyle = mapId => {\r\n\r\n const viewerHeaderHeight = $(\"#data-viewer__multi-viewer__header\").outerHeight(true) || 0;\r\n $(\"#data-viewer__multi-viewer__viewers\").height(`calc(100% - ${viewerHeaderHeight}px)`);\r\n\r\n const mapSettingsWidth = $(\"#data-viewer__multi-viewer__viewers__map__settings\").outerWidth(true) || 0;\r\n $(\"#data-viewer__multi-viewer__viewers__map__filters\").css({maxWidth: `calc(100% - ${mapSettingsWidth}px)`});\r\n\r\n const mapFiltersAndSettingsHeight = $(\"#data-viewer__multi-viewer__viewers__map__filters-and-settings\").outerHeight(true) || 0;\r\n $(\"#data-viewer__multi-viewer__viewers__map__viewer\").height(`calc(100% - ${mapFiltersAndSettingsHeight}px)`);\r\n\r\n const chartSettingsWidth = $(\"#data-viewer__multi-viewer__viewers__chart__settings\").outerWidth(true) || 0;\r\n $(\"#data-viewer__multi-viewer__viewers__chart__filters\").css({maxWidth: `calc(100% - ${chartSettingsWidth}px)`});\r\n\r\n const chartFiltersAndSettingsHeight = $(\"#data-viewer__multi-viewer__viewers__chart__filters-and-settings\").outerHeight(true) || 0;\r\n $(\"#data-viewer__multi-viewer__viewers__chart__viewer\").height(`calc(100% - ${chartFiltersAndSettingsHeight}px)`);\r\n\r\n if (mapId) {\r\n window.LMap.handleViewportChange(mapId);\r\n }\r\n};\r\n\r\nfunction MultiViewer(props) {\r\n const {\r\n classes,\r\n\r\n nodeId,\r\n nodeExtras,\r\n maxObservation,\r\n chartId,\r\n mapId,\r\n timeDim,\r\n\r\n maxChartTerritoryValueCount,\r\n dataset,\r\n territoryDimCodelist,\r\n territoryDim,\r\n tableLayout,\r\n tableEmptyChar,\r\n mapLayout,\r\n mapFilterTree,\r\n mapSettings,\r\n chartLayout,\r\n chartFilterTree,\r\n chartSettings,\r\n timePeriodsByFreq,\r\n showTrend,\r\n showCyclical,\r\n decimalSeparator,\r\n decimalPlaces,\r\n isPartialData,\r\n isTooBigData,\r\n isPointData,\r\n latAttributeId,\r\n longAttributeId,\r\n srid,\r\n isTableVisible,\r\n isMapVisible,\r\n isChartVisible,\r\n chartType,\r\n detailLevelTree,\r\n detailLevel,\r\n missingIndicators,\r\n showArithmeticMean,\r\n arithmeticMeanDims,\r\n arithmeticMeans,\r\n showStandardDeviation,\r\n showCoefficientOfVariation,\r\n geometriesYear,\r\n\r\n onChartTerritoryDimValuesSet,\r\n onChartSettingsSet,\r\n onChartLayoutSet,\r\n onChartTypeSet,\r\n onMapSettingsSet,\r\n onMapLayoutSet,\r\n onIndicatorWarningHide,\r\n onArithmeticMeanValuesSet,\r\n onTimeSet\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [isChartSettingVisible, setChartSettingsVisibility] = useState(false);\r\n const [chartSettingsTabId, setChartSettingsTabId] = useState(null);\r\n const [tmpChartSettings, setTmpChartSettings] = useState(null);\r\n const [tmpChartLayout, setTmpChartLayout] = useState(null);\r\n const [tmpChartType, setTmpChartType] = useState(null);\r\n\r\n const [isMapSettingVisible, setMapSettingsVisibility] = useState(false);\r\n const [tmpMapSettings, setTmpMapSettings] = useState(null);\r\n const [isMapSettingsValid, setMapSettingsValidity] = useState(true);\r\n const [isMapRendering, setIsMapRendering] = useState(true);\r\n\r\n const [tableDimensionFilterValues, setTableDimensionFilterValues] = useState(null);\r\n const [tableHighlightedRowsDimValues, setTableHighlightedRowsDimValues] = useState(null);\r\n const [tableFirstRowDimValues, setTableFirstRowDimValues] = useState(null);\r\n\r\n const [selectedTerritoryId, setSelectedTerritoryId] = useState(null);\r\n\r\n const [filteredTerritoryIds, setFilteredTerritoryIds] = useState(null);\r\n\r\n const [labelFormat] = useState(LABEL_FORMAT_SELECTOR_LABEL_FORMAT_NAME);\r\n const [customLabelFormats] = useState({\r\n [territoryDim]: LABEL_FORMAT_SELECTOR_LABEL_FORMAT_BOTH\r\n });\r\n const [dimensionValueModifiers, setDimensionValueModifiers] = useState({\r\n [territoryDim]: {\r\n [DIM_VALUE_LABEL_MODIFIER_REMOVE]: (getNode(detailLevelTree, \"layers\", ({id}) => id === detailLevel)?.detailLevelSuffix || null)\r\n }\r\n });\r\n\r\n const [invertedDims] = useState([timeDim]);\r\n\r\n const [referenceYear, setReferenceYear] = useState(null);\r\n\r\n const [hierarchyOnlyAttributes] = useState(nodeExtras?.HierarchyOnlyAttributes || []);\r\n const [hideHierarchyOnlyRows] = useState(nodeExtras?.HideHierarchyOnlyRows || false);\r\n\r\n useEffect(() => {\r\n const func = () => handleStyle(mapId);\r\n window.addEventListener(\"resize\", func);\r\n return () => window.removeEventListener(\"resize\", func)\r\n }, [mapId]);\r\n\r\n useEffect(() => {\r\n handleStyle(mapId);\r\n window.dispatchEvent(new Event('resize'));\r\n }, [mapId, dataset, isTableVisible, isMapVisible, isChartVisible, isMapRendering]);\r\n\r\n useEffect(() => {\r\n setTableDimensionFilterValues(null);\r\n setSelectedTerritoryId(null);\r\n }, [dataset]);\r\n\r\n useEffect(() => {\r\n setTableHighlightedRowsDimValues(selectedTerritoryId\r\n ? {[territoryDim]: selectedTerritoryId}\r\n : null\r\n );\r\n }, [territoryDim, selectedTerritoryId, mapLayout]);\r\n\r\n useEffect(() => {\r\n setFilteredTerritoryIds(null);\r\n }, [isTableVisible]);\r\n\r\n useEffect(() => {\r\n setTableDimensionFilterValues(null);\r\n }, [isMapVisible]);\r\n\r\n useEffect(() => {\r\n setDimensionValueModifiers(prevValue => {\r\n const detailLevelSuffix = (getNode(detailLevelTree, \"layers\", ({id}) => id === detailLevel)?.detailLevelSuffix || null);\r\n\r\n return prevValue?.[territoryDim]?.[DIM_VALUE_LABEL_MODIFIER_REMOVE] !== detailLevelSuffix\r\n ? {[territoryDim]: {[DIM_VALUE_LABEL_MODIFIER_REMOVE]: detailLevelSuffix}}\r\n : prevValue;\r\n });\r\n }, [territoryDim, detailLevelTree, detailLevel]);\r\n\r\n useEffect(() => {\r\n if (detailLevelTree && detailLevel) {\r\n setReferenceYear(getNode(detailLevelTree, \"layers\", ({id}) => id === detailLevel)?.referenceYear || null);\r\n }\r\n }, [detailLevelTree, detailLevel]);\r\n\r\n const onTablePageGenerationComplete = useCallback(tableStructures => {\r\n\r\n if ((tableStructures?.renderedRows || []).length > 0) {\r\n onChartTerritoryDimValuesSet(tableStructures.renderedRows\r\n .map(renderedRow => renderedRow.split(\"+\")[tableStructures.layout.rows.indexOf(territoryDim)])\r\n .filter((val, idx, arr) => idx === arr.indexOf(val))\r\n .slice(0, maxChartTerritoryValueCount)\r\n );\r\n }\r\n\r\n const timings = tableStructures.timings;\r\n if (timings) {\r\n onTimeSet(Math.round((tableStructures.timings) * 100) / 100);\r\n }\r\n }, [maxChartTerritoryValueCount, onTimeSet, onChartTerritoryDimValuesSet, territoryDim]);\r\n\r\n const onTableStructureGenerationComplete = useCallback(tableStructures => {\r\n const {\r\n arithmeticMeanDims = null,\r\n arithmeticMeans = null\r\n } = tableStructures || {};\r\n\r\n onArithmeticMeanValuesSet(arithmeticMeanDims, arithmeticMeans);\r\n }, [onArithmeticMeanValuesSet]);\r\n\r\n const handleMapSelect = useCallback(terrDimValues => {\r\n if ((terrDimValues || []).length > 0) {\r\n setTableDimensionFilterValues({[territoryDim]: terrDimValues});\r\n } else {\r\n setTableDimensionFilterValues(null);\r\n }\r\n setSelectedTerritoryId(null);\r\n }, [territoryDim]);\r\n\r\n const handleMapClick = useCallback((geometry, isActive, isSelected) => {\r\n if (!geometry) {\r\n setSelectedTerritoryId(null);\r\n\r\n } else if (geometry && isActive) {\r\n const territoryId = geometry.territoryId;\r\n setSelectedTerritoryId(isSelected ? territoryId : null);\r\n setTableFirstRowDimValues(isSelected\r\n ? {[territoryDim]: territoryId}\r\n : null\r\n );\r\n }\r\n }, [territoryDim]);\r\n\r\n const handleTableRowClick = useCallback((clickedRow, isActive) => {\r\n setSelectedTerritoryId(isActive\r\n ? clickedRow[territoryDim]\r\n : null\r\n );\r\n }, [territoryDim]);\r\n\r\n const onMapRenderStart = useCallback(() => {\r\n setIsMapRendering(true);\r\n }, []);\r\n\r\n const onMapRenderFinish = useCallback(() => {\r\n setIsMapRendering(false);\r\n }, []);\r\n\r\n const handleTableFilter = useCallback((filteredTerritories) => {\r\n setFilteredTerritoryIds(filteredTerritories\r\n ? filteredTerritories.map(filteredTerritory => filteredTerritory.split(\"+\")[tableLayout.rows.indexOf(territoryDim)])\r\n : null\r\n );\r\n }, [tableLayout, territoryDim]);\r\n\r\n const handleChartSettingsOpen = () => {\r\n setTmpChartSettings(chartSettings);\r\n setTmpChartLayout(chartLayout);\r\n setTmpChartType(chartType);\r\n setChartSettingsTabId(\"layout\");\r\n setChartSettingsVisibility(true);\r\n };\r\n\r\n const handleChartSettingsClose = () => {\r\n setChartSettingsVisibility(false);\r\n };\r\n\r\n const handleChartSettingsSubmit = () => {\r\n setChartSettingsVisibility(false);\r\n onChartSettingsSet(tmpChartSettings);\r\n onChartLayoutSet(tmpChartLayout);\r\n onChartTypeSet(tmpChartType);\r\n };\r\n\r\n const handleMapSettingsOpen = settings => {\r\n setTmpMapSettings(settings);\r\n setMapSettingsValidity(true);\r\n setMapSettingsVisibility(true);\r\n };\r\n\r\n const handleMapSettingsClose = () => {\r\n setMapSettingsVisibility(false);\r\n };\r\n\r\n const handleMapSettingsSubmit = () => {\r\n setMapSettingsVisibility(false);\r\n onMapSettingsSet(tmpMapSettings);\r\n };\r\n\r\n const leftPanelWidth = (isMapVisible || isChartVisible)\r\n ? isTableVisible\r\n ? \"60%\"\r\n : \"100%\"\r\n : \"0%\";\r\n const rightPanelWidth = `calc(100% - ${leftPanelWidth})`;\r\n\r\n const leftPanelTopHeight = isMapVisible\r\n ? isChartVisible\r\n ? \"60%\"\r\n : \"100%\"\r\n : \"0%\";\r\n const leftPanelBottomHeight = `calc(100% - ${leftPanelTopHeight})`;\r\n\r\n return (\r\n \r\n
    \r\n {dataset && isPartialData && (\r\n
    \r\n \r\n {t(\"scenes.dataViewer.warnings.maxObservation.label\", {maxObservation: maxObservation ? numberFormatter(maxObservation) : \"\"})}\r\n \r\n
    \r\n )}\r\n
    \r\n {(isMapVisible || isChartVisible) && (\r\n
    \r\n {isMapVisible && (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {!isMapRendering && (\r\n \r\n handleMapSettingsOpen(mapSettings)}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n {isChartVisible && (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n )}\r\n {isTableVisible && (\r\n
    \r\n \r\n {!isTooBigData\r\n ? (\r\n \r\n )\r\n : \r\n }\r\n
    \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.multiViewer.dialogs.chartSettings.title\")}\r\n \r\n \r\n \r\n setChartSettingsTabId(newValue)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {chartSettingsTabId === \"layout\" && (\r\n \r\n )}\r\n {chartSettingsTabId === \"general\" && (\r\n \r\n )}\r\n {chartSettingsTabId === \"colors\" && (\r\n [...(chartLayout?.primaryDim || []), ...(chartLayout?.secondaryDim || [])].includes(dim)}\r\n />\r\n )}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.multiViewer.dialogs.mapSettings.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.multiViewer.dialogs.missingIndicator.title\")}\r\n \r\n \r\n {t(\"scenes.dataViewer.multiViewer.dialogs.missingIndicator.content\", {missingIndicators: (missingIndicators || []).join(\", \")})}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(MultiViewer)","import React, {Fragment} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {withTranslation} from \"react-i18next\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport {ViewerMode} from \"../../state/dataset/constants\";\r\nimport SingleViewer from \"./single-viewer/Viewer\";\r\nimport MultiViewer from \"./multi-viewer/Viewer\";\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\n\r\nconst styles = () => ({\r\n viewer: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n padding: 8\r\n },\r\n singleViewer: {\r\n padding: 16\r\n },\r\n multiViewer: {},\r\n error: {}\r\n});\r\n\r\nfunction DataViewerViewer({t, classes, ...props}) {\r\n\r\n const {\r\n viewerMode,\r\n dataset,\r\n datasetFetchStart,\r\n datasetFetchError,\r\n dimensions,\r\n isEmptyData\r\n } = props;\r\n\r\n return (\r\n \r\n {(() => {\r\n if (viewerMode === ViewerMode.Error) {\r\n return (\r\n \r\n }\r\n />\r\n \r\n )\r\n\r\n }\r\n\r\n if (!dataset) {\r\n let text = \"\";\r\n if (datasetFetchStart) {\r\n text = \"\";\r\n } else if (datasetFetchError) {\r\n text = t(\"scenes.dataViewer.errors.fetchData\");\r\n } else if (isEmptyData) {\r\n text = t(\"scenes.dataViewer.errors.emptyData\");\r\n } else if (dimensions) {\r\n text = t(\"scenes.dataViewer.errors.applyCriteria\");\r\n }\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n switch (viewerMode) {\r\n case ViewerMode.SingleViewer: {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n case ViewerMode.MultiViewer: {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n default: {\r\n return null;\r\n }\r\n }\r\n })()}\r\n \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n withTranslation()\r\n)(DataViewerViewer);","import React, {Fragment, useEffect, useState} from 'react';\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../../custom-dialog-title\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport {goToDataset} from \"../../../links\";\r\nimport _ from \"lodash\";\r\nimport {getDatasetStorageKey} from \"../../../utils/other\";\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport ArrowLeftIcon from '@material-ui/icons/ArrowLeft';\r\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\r\n\r\nconst SCROLL_STEP = 100;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n whiteSpace: \"nowrap\"\r\n },\r\n controls: {\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\",\r\n width: 72,\r\n margin: \"0 12px\",\r\n \"& button\": {\r\n padding: 6\r\n }\r\n },\r\n sheets: {\r\n overflow: \"hidden\",\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\",\r\n width: `calc(100% - 112px)`,\r\n marginLeft: 8,\r\n marginRight: 8\r\n },\r\n sheetContainer: {\r\n display: \"inline-block\",\r\n verticalAlign: \"middle\",\r\n marginRight: 8\r\n },\r\n sheet: {\r\n maxWidth: 200\r\n }\r\n});\r\n\r\nfunction SingleViewerFooter(props) {\r\n\r\n const {\r\n classes,\r\n dataset,\r\n onDatasetsChange\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [datasets, setDatasets] = useState([]);\r\n const [selectedIdx, setSelectedIdx] = useState(-1);\r\n\r\n const [datasetToRemove, setDatasetToRemove] = useState(null);\r\n\r\n const [isScrollLeftDisabled, setIsScrollLeftDisabled] = useState(true);\r\n const [isScrollRightDisabled, setIsScrollRightDisabled] = useState(true);\r\n\r\n const handleScrollbar = () => {\r\n const sheets = document.getElementById(\"data-viewer__footer__sheets\");\r\n setIsScrollLeftDisabled(sheets.scrollLeft === 0);\r\n setIsScrollRightDisabled(sheets.scrollLeft >= (sheets.scrollWidth - sheets.clientWidth));\r\n }\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", handleScrollbar);\r\n return () => window.removeEventListener(\"resize\", handleScrollbar)\r\n }, []);\r\n\r\n useEffect(() => {\r\n let newDatasets = JSON.parse(sessionStorage.getItem(\"datasets\")) || [];\r\n setDatasets(newDatasets);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const newSelectedIdx = (datasets || []).findIndex(data => getDatasetStorageKey(data) === getDatasetStorageKey(dataset));\r\n setSelectedIdx(newSelectedIdx);\r\n\r\n const sheets = document.getElementById(\"data-viewer__footer__sheets\");\r\n sheets.scrollLeft = newSelectedIdx * 208;\r\n\r\n handleScrollbar();\r\n\r\n onDatasetsChange();\r\n }, [datasets, dataset, onDatasetsChange]);\r\n\r\n const handleRemoveDataset = () => {\r\n let newDatasets = [...datasets];\r\n newDatasets = newDatasets.filter(dataset => getDatasetStorageKey(dataset) !== getDatasetStorageKey(datasetToRemove));\r\n\r\n sessionStorage.setItem(\"datasets\", JSON.stringify(newDatasets));\r\n sessionStorage.removeItem(getDatasetStorageKey(datasetToRemove));\r\n setDatasets(newDatasets);\r\n\r\n setDatasetToRemove(null);\r\n };\r\n\r\n const handleAddDataset = () => {\r\n let newDatasets = [...datasets];\r\n newDatasets.push(dataset);\r\n newDatasets = _.uniqWith(newDatasets, (a, b) => getDatasetStorageKey(a) === getDatasetStorageKey(b));\r\n\r\n sessionStorage.setItem(\"datasets\", JSON.stringify(newDatasets));\r\n sessionStorage.setItem(getDatasetStorageKey(dataset), \"\");\r\n setDatasets(newDatasets);\r\n };\r\n\r\n const handleScrollLeft = () => {\r\n const sheets = document.getElementById(\"data-viewer__footer__sheets\");\r\n sheets.scrollLeft -= SCROLL_STEP;\r\n handleScrollbar();\r\n };\r\n\r\n const handleScrollRight = () => {\r\n const sheets = document.getElementById(\"data-viewer__footer__sheets\");\r\n sheets.scrollLeft += SCROLL_STEP;\r\n handleScrollbar();\r\n };\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n\r\n setDatasetToRemove(null)}\r\n >\r\n setDatasetToRemove(null)}>\r\n {t(\"scenes.dataViewer.footer.dialogs.datasetDelete.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n )\r\n}\r\n\r\nexport default withStyles(styles)(SingleViewerFooter)","import React, {Fragment} from \"react\";\r\nimport {ViewerMode} from \"../../state/dataset/constants\";\r\nimport SingleViewerFooter from \"./single-viewer/Footer\";\r\n\r\nfunction DataViewerFooter(props) {\r\n\r\n const {viewerMode} = props;\r\n\r\n return (\r\n \r\n {viewerMode === ViewerMode.SingleViewer && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default DataViewerFooter;","import React, {Fragment, useEffect, useState} from 'react';\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport DataViewerHeader from \"./Header\";\r\nimport DataViewerSidebar from \"./Sidebar\";\r\nimport DataViewerViewer from \"./Viewer\";\r\nimport DataViewerFooter from \"./Footer\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {\r\n fetchDataset,\r\n hideDatasetCriteriaAlert,\r\n hideDatasetDownloadWarning,\r\n hideDatasetUnavailableViewWarning,\r\n showDatasetCriteria\r\n} from \"../../state/dataset/datasetActions\";\r\nimport Call from \"../../hocs/call\";\r\nimport {v4 as uuidv4} from 'uuid';\r\nimport FullscreenDialog from \"../fullscreen-dialog\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n overflow: \"auto\"\r\n },\r\n header: {\r\n width: \"100%\",\r\n padding: \"4px 16px 12px\"\r\n },\r\n page: {\r\n display: \"flex\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n padding: \"0 16px\",\r\n minHeight: 400,\r\n minWidth: 560\r\n },\r\n sidebar: {\r\n height: \"100%\"\r\n },\r\n viewer: {\r\n height: \"100%\",\r\n },\r\n footer: {\r\n width: \"100%\",\r\n overflowX: \"auto\",\r\n overflowY: \"hidden\",\r\n padding: 8\r\n }\r\n});\r\n\r\nconst mapStateToProps = ({config, app, appConfig, catalog, dataset}) => ({\r\n indicatorsBaseUrl: config.externalServices?.indicator,\r\n defaultLanguage: app.language,\r\n languages: app.languages,\r\n maxTableColCount: appConfig.tableConfig.maxColCount,\r\n maxMapPointCount: appConfig.mapConfig.maxPointCount,\r\n datasetMap: (catalog.uncategorizedDatasets || []).reduce((acc, v) => ({...acc, [v.identifier]: v}), (catalog.datasets || {})),\r\n viewerMode: dataset.viewerMode,\r\n dataset: dataset.dataset,\r\n datasetFetchStart: dataset.datasetFetchStart,\r\n datasetFetchError: dataset.datasetFetchError,\r\n isFetchDatasetDisabled: dataset.isFetchDatasetDisabled,\r\n dimensions: dataset.dimensions,\r\n territoryDim: dataset.territoryDim,\r\n timeDim: dataset.timeDim,\r\n criteria: dataset.criteria,\r\n isDownloadWarningVisible: dataset.isDownloadWarningVisible,\r\n isUnavailableViewWarningVisible: dataset.isUnavailableViewWarningVisible,\r\n isCriteriaAlertVisible: dataset.isCriteriaAlertVisible,\r\n isEmptyData: dataset.isEmptyData,\r\n isTooBigData: dataset.isTooBigData,\r\n isTooLongQuery: dataset.isTooLongQuery,\r\n tableColCount: dataset.tableColCount,\r\n mapPointCount: dataset.mapPointCount,\r\n isIndicatorCreateVisible: dataset.isIndicatorCreateVisible,\r\n indicators: dataset.indicators,\r\n isAdditionalDatasetCreateVisible: dataset.isAdditionalDatasetCreateVisible,\r\n additionalDatasets: dataset.additionalDatasets,\r\n isFullscreen: dataset.isFullscreen\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onDatasetFetch: ({nodeId, nodeCode, datasetId, datasetTitle, criteria, timeDim, territoryDim, indicators, additionalDatasets, defaultLanguage, languages, indicatorsBaseUrl}) =>\r\n dispatch(fetchDataset(nodeId, nodeCode, datasetId, datasetTitle, criteria, timeDim, territoryDim, indicators, additionalDatasets, defaultLanguage, languages, indicatorsBaseUrl)),\r\n onDownloadHide: () => dispatch(hideDatasetDownloadWarning()),\r\n onUnavailableViewHide: () => dispatch(hideDatasetUnavailableViewWarning()),\r\n onCriteriaAlertHide: () => dispatch(hideDatasetCriteriaAlert()),\r\n onCriteriaShow: () => dispatch(showDatasetCriteria())\r\n});\r\n\r\nconst handleStyle = () => {\r\n // const hubFooterHeight = document.getElementById(\"footer\").offsetHeight || 0;\r\n // $(\"#data-viewer\").height(`calc(100% - ${hubFooterHeight}px)`);\r\n\r\n const headerHeight = document.getElementById(\"data-viewer__header\").offsetHeight || 0;\r\n const footerHeight = document.getElementById(\"data-viewer__footer\").offsetHeight || 0;\r\n $(\"#data-viewer__page\").height(`calc(100% - ${headerHeight + footerHeight}px)`);\r\n\r\n const sidebarWidth = document.getElementById(\"data-viewer__page__sidebar\").offsetWidth || 0;\r\n $(\"#data-viewer__page__viewer\").width(`calc(100% - ${sidebarWidth}px)`);\r\n};\r\n\r\nfunction DataViewer(props) {\r\n const {\r\n classes,\r\n\r\n nodeId,\r\n nodeCode,\r\n categoryPath,\r\n datasetId,\r\n datasetTitle,\r\n viewId,\r\n attachedFiles,\r\n nodeExtras,\r\n maxObservation,\r\n\r\n indicatorsBaseUrl,\r\n defaultLanguage,\r\n languages,\r\n maxTableColCount,\r\n maxMapPointCount,\r\n datasetMap,\r\n viewerMode,\r\n dataset,\r\n datasetFetchStart,\r\n datasetFetchError,\r\n isFetchDatasetDisabled,\r\n dimensions,\r\n territoryDim,\r\n timeDim,\r\n criteria,\r\n isDownloadWarningVisible,\r\n isUnavailableViewWarningVisible,\r\n isCriteriaAlertVisible,\r\n isEmptyData,\r\n isTooBigData,\r\n isTooLongQuery,\r\n tableColCount,\r\n mapPointCount,\r\n isIndicatorCreateVisible,\r\n indicators,\r\n isAdditionalDatasetCreateVisible,\r\n additionalDatasets,\r\n\r\n onDatasetFetch,\r\n onDownloadHide,\r\n onUnavailableViewHide,\r\n onCriteriaShow,\r\n onCriteriaAlertHide\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n\r\n const [chartId] = useState(\"chart__\" + uuidv4());\r\n\r\n const [mapId] = useState(\"map__\" + uuidv4());\r\n\r\n const [metadataUrl, setMetadataUrl] = useState(null);\r\n\r\n const handleMetadataOpen = metadataUrl => {\r\n setMetadataUrl(metadataUrl);\r\n };\r\n\r\n const handleMetadataClose = () => {\r\n setMetadataUrl(null);\r\n };\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", handleStyle);\r\n return () => window.removeEventListener(\"resize\", handleStyle)\r\n }, []);\r\n\r\n useEffect(() => {\r\n handleStyle();\r\n });\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.dialogs.downloadFormat.content\")}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.dialogs.unavailableView.content\")}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"scenes.dataViewer.sidebar.dialogs.metadata.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n)(DataViewer);","import React, {Fragment, useEffect, useState} from 'react';\r\nimport NodeHeader from \"../node-header\";\r\nimport DataViewer from \"../data-viewer\";\r\nimport Page from \"../page\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {useLocation} from \"react-router\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {getPageTitle} from \"../../utils/other\";\r\nimport Footer from \"../footer\";\r\nimport {HashLink} from 'react-router-hash-link';\r\nimport Helmet from \"react-helmet\";\r\n\r\nconst styles = () => ({\r\n fullWidthContainer: {\r\n backgroundColor: \"#f5f5f5\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n position: \"fixed\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n \"& #footer\": {\r\n paddingTop: 0\r\n }\r\n }\r\n});\r\n\r\nconst Data = ({\r\n classes,\r\n hub,\r\n node,\r\n isDefault,\r\n catalog,\r\n categoryPath,\r\n isAccessible,\r\n datasetId,\r\n datasetTitle,\r\n viewId,\r\n attachedFiles\r\n }) => {\r\n\r\n const location = useLocation();\r\n const {t} = useTranslation();\r\n\r\n const [nodeExtras, setNodeExtras] = useState(null);\r\n const [hubExtras, setHubExtras] = useState(null);\r\n\r\n useEffect(() => {\r\n if (node?.extras) {\r\n const newNodeExtras = {};\r\n node.extras.forEach(({key, value}) => {\r\n try {\r\n newNodeExtras[key] = JSON.parse(value);\r\n } catch (e) {\r\n newNodeExtras[key] = value;\r\n }\r\n });\r\n setNodeExtras(newNodeExtras);\r\n }\r\n }, [node]);\r\n\r\n useEffect(() => {\r\n const newHubExtras = JSON.parse(hub.hub.extras || \"{}\");\r\n setHubExtras(newHubExtras);\r\n }, [hub]);\r\n\r\n const params = new URLSearchParams(location.search);\r\n params.set(\"accessible\", \"true\");\r\n params.set(\"datasetId\", datasetId)\r\n const paramsStr = params.toString();\r\n const path = `/${window.language}/${node?.code.toLowerCase()}/${categoryPath.join(\"/\")}`;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {!isAccessible && (\r\n 0 ? \"?\" : \"\") + paramsStr}\r\n target=\"_self\"\r\n className=\"skip-link sr-only\"\r\n >\r\n {t(\"commons.hashLinks.accessible\")}\r\n \r\n )}\r\n \r\n {t(\"commons.hashLinks.main\")}\r\n \r\n \r\n {t(\"commons.hashLinks.footer\")}\r\n \r\n \r\n {\r\n if (isA11y) {\r\n return `/${window.language}/${node?.code.toLowerCase()}/${categoryPath.join(\"/\")}`;\r\n } else {\r\n return false;\r\n }\r\n }}\r\n getAdditionalA11yUrlParams={isA11y => {\r\n if (isA11y) {\r\n return {datasetId};\r\n } else {\r\n return false;\r\n }\r\n }}\r\n />\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n};\r\n\r\nexport default withStyles(styles)(Data);","import React, {Component} from \"react\";\r\nimport Data from \"../components/data\";\r\nimport {connect} from \"react-redux\";\r\nimport {\r\n enableDatasetStructureFetch,\r\n fetchDatasetStructure,\r\n fetchDatasetTerritoryDetailLevels,\r\n resetDatasetState,\r\n setDatasetTerritoryDetailLevel,\r\n setDatasetTerritoryDetailLevelTree\r\n} from \"../state/dataset/datasetActions\";\r\nimport Call from \"../hocs/call\";\r\nimport {getFilteredTreeWithPaths} from \"../utils/tree\";\r\nimport {getDetailLevelFromTree} from \"../utils/catalog\";\r\n\r\nconst mapStateToProps = ({app, dataset, detailLevel, catalog}) => ({\r\n isMultiViewerTheme: app.themeConfig.isMultiViewer,\r\n dsDatasetId: dataset.datasetId,\r\n dsNodeCode: dataset.nodeCode,\r\n dsCategoryPath: dataset.categoryPath,\r\n dsViewId: dataset.viewId,\r\n detailLevel: detailLevel.detailLevel,\r\n datasetDetailLevelTree: dataset.detailLevelTree,\r\n catalogDetailLevelTree: catalog?.detailLevelTree,\r\n isFetchStructureDisabled: dataset.isFetchStructureDisabled\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onDetailLevelSet: detailLevel => dispatch(setDatasetTerritoryDetailLevel(detailLevel)),\r\n onDetailLevelTreeSet: detailLevelTree => dispatch(setDatasetTerritoryDetailLevelTree(detailLevelTree)),\r\n fetchDetailLevels: (nodeId, datasetId, detailLevel) => dispatch(fetchDatasetTerritoryDetailLevels(nodeId, datasetId, detailLevel)),\r\n onFetchStructureEnable: (nodeCode, categoryPath, datasetId, viewId) => dispatch(enableDatasetStructureFetch(nodeCode, categoryPath, datasetId, viewId)),\r\n fetchStructure: ({nodeId, datasetId, viewId, isMultiViewerTheme}) => dispatch(fetchDatasetStructure(nodeId, datasetId, viewId, isMultiViewerTheme)),\r\n onDatasetReset: () => dispatch(resetDatasetState())\r\n});\r\n\r\nclass DatasetDomain extends Component {\r\n\r\n componentDidMount() {\r\n\r\n const {\r\n node,\r\n datasetId,\r\n datasetDetailLevels,\r\n catalogDetailLevelTree,\r\n detailLevel,\r\n onDetailLevelTreeSet,\r\n onDetailLevelSet,\r\n fetchDetailLevels,\r\n isMultiViewerTheme,\r\n nodeCode,\r\n categoryPath,\r\n viewId,\r\n onFetchStructureEnable\r\n } = this.props;\r\n\r\n if (!isMultiViewerTheme) {\r\n onFetchStructureEnable(nodeCode, categoryPath, datasetId, viewId);\r\n\r\n } else {\r\n if (catalogDetailLevelTree && datasetDetailLevels) {\r\n const datasetDetailLevelTree = getFilteredTreeWithPaths(catalogDetailLevelTree, \"layers\", ({id}) => (datasetDetailLevels || []).includes(id));\r\n onDetailLevelTreeSet(datasetDetailLevelTree);\r\n onDetailLevelSet(getDetailLevelFromTree(datasetDetailLevelTree, detailLevel));\r\n\r\n } else {\r\n fetchDetailLevels(node.nodeId, datasetId, detailLevel);\r\n }\r\n }\r\n };\r\n\r\n componentDidUpdate() {\r\n\r\n const {\r\n isMultiViewerTheme,\r\n dsDatasetId,\r\n dsNodeCode,\r\n dsCategoryPath,\r\n dsViewId,\r\n datasetDetailLevelTree,\r\n nodeCode,\r\n categoryPath,\r\n datasetId,\r\n viewId,\r\n onFetchStructureEnable\r\n } = this.props;\r\n\r\n if (!isMultiViewerTheme || datasetDetailLevelTree !== null) {\r\n\r\n const isStateAndUrlSynced = (\r\n nodeCode === dsNodeCode &&\r\n (categoryPath || []).join() === (dsCategoryPath || []).join() &&\r\n datasetId === dsDatasetId &&\r\n (viewId || \"\") === (dsViewId || \"\")\r\n );\r\n\r\n if (!isStateAndUrlSynced) {\r\n onFetchStructureEnable(nodeCode, categoryPath, datasetId, viewId);\r\n }\r\n }\r\n };\r\n\r\n componentWillUnmount() {\r\n\r\n const {\r\n onDatasetReset\r\n } = this.props;\r\n\r\n onDatasetReset();\r\n };\r\n\r\n render() {\r\n\r\n const {\r\n isMultiViewerTheme,\r\n isFetchStructureDisabled,\r\n hub,\r\n node,\r\n isDefault,\r\n catalog,\r\n categoryPath,\r\n isAccessible,\r\n datasetId,\r\n datasetTitle,\r\n attachedFiles,\r\n viewId,\r\n fetchStructure\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(DatasetDomain);","import React, {Fragment, useState} from \"react\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport withStyles from \"@material-ui/core/styles/withStyles\";\r\nimport {getTextWidth} from \"../../utils/style\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport InfiniteScrollTable from \"../infinite-scroll-table\";\r\nimport {getNode, getNodes} from \"../../utils/tree\";\r\nimport {getDashboardDynamicFilterLabelTranslations} from \"../../constants/getDashboardDynamicFilterLabelTranslations\";\r\nimport CustomDialogTitle from \"../custom-dialog-title\";\r\n\r\nconst $ = window.jQuery;\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n filter: {\r\n display: \"inline-block\",\r\n verticalAlign: \"bottom\",\r\n marginRight: 16,\r\n \"& label\": {\r\n fontSize: 16\r\n },\r\n padding: \"4px 0\"\r\n },\r\n item: {\r\n fontSize: 14\r\n }\r\n});\r\n\r\nconst getLabelsMap = tree => {\r\n const map = {};\r\n getNodes(tree, \"children\", () => true).forEach(({id, name}) => map[id] = name);\r\n\r\n return map;\r\n}\r\n\r\nfunction DashboardFilters(props) {\r\n const {\r\n classes,\r\n filters,\r\n selectValues,\r\n setSelectValues,\r\n lastValorizedIdx,\r\n setLastValorizedIdx,\r\n filterLevels,\r\n onFilterApply,\r\n onFilterReset\r\n } = props;\r\n\r\n const labels = filters?.labels || [];\r\n const values = filters?.values || [];\r\n\r\n const {t} = useTranslation();\r\n\r\n const [isApplyDisabled, setIsApplyDisable] = useState(false);\r\n\r\n const [visibleId, setVisibleId] = useState(null);\r\n\r\n const [labelsMap] = useState(getLabelsMap(values));\r\n\r\n const handleFilterSelect = (dimension, value) => {\r\n const newSelectedValues = {};\r\n let found = false;\r\n labels.forEach(label => {\r\n if (!found) {\r\n if (label !== dimension) {\r\n newSelectedValues[label] = selectValues[label];\r\n } else {\r\n found = true;\r\n newSelectedValues[label] = value;\r\n }\r\n } else {\r\n newSelectedValues[label] = \"\";\r\n }\r\n });\r\n setSelectValues(newSelectedValues);\r\n setLastValorizedIdx(visibleId);\r\n setVisibleId(null);\r\n setIsApplyDisable(false);\r\n };\r\n\r\n let data = [];\r\n if (visibleId !== null) {\r\n data = visibleId === 0\r\n ? values\r\n : getNode(values, \"children\", ({id}) => id === selectValues[labels[visibleId - 1]]).children\r\n }\r\n\r\n return (\r\n \r\n
    \r\n {(() => {\r\n const selects = [];\r\n\r\n let lastLavorizableIdx = -1;\r\n labels.forEach((label, idx) => {\r\n if (filterLevels?.[labels[idx]] === true) {\r\n lastLavorizableIdx = idx;\r\n }\r\n });\r\n\r\n const getTextWidthEl = $('').css({\r\n visibility: 'hidden',\r\n position: 'absolute',\r\n fontSize: 16\r\n }).appendTo('body').get(0);\r\n\r\n let filterValues = values;\r\n\r\n for (let i = 0; i <= Math.min(lastValorizedIdx + 1, lastLavorizableIdx); i++) {\r\n const label = labels[i];\r\n const minWidth = getTextWidth(label, getTextWidthEl) + 32;\r\n\r\n if (i > 0) {\r\n const idx = filterValues.findIndex(({id}) => id === selectValues[labels[i - 1]]);\r\n filterValues = filterValues[idx]?.children || [];\r\n }\r\n\r\n if (filterValues.length > 0) {\r\n selects.push(\r\n
    \r\n \r\n {getDashboardDynamicFilterLabelTranslations(t)[label] || label}\r\n labelsMap[value]}\r\n className={classes.item}\r\n onOpen={() => setVisibleId(i)}\r\n SelectDisplayProps={{\"aria-haspopup\": true}}\r\n >\r\n {filterValues.map(({id}, idx) =>\r\n {id}\r\n )}\r\n \r\n \r\n
    \r\n );\r\n }\r\n }\r\n\r\n $(getTextWidthEl).remove();\r\n\r\n if (lastLavorizableIdx >= 0) {\r\n selects.push(\r\n {\r\n onFilterApply(selectValues[labels[lastValorizedIdx]]);\r\n setIsApplyDisable(true);\r\n }}\r\n disabled={isApplyDisabled || lastValorizedIdx < 0 || filterLevels?.[labels[lastValorizedIdx]] === false}\r\n >\r\n {t(\"commons.confirm.apply\")}\r\n \r\n );\r\n selects.push(\r\n {\r\n onFilterReset();\r\n setIsApplyDisable(true);\r\n }}\r\n disabled={lastValorizedIdx < 0}\r\n >\r\n {t(\"commons.confirm.reset\")}\r\n \r\n );\r\n }\r\n\r\n return selects\r\n })()}\r\n
    \r\n\r\n setVisibleId(null)}\r\n fullWidth\r\n maxWidth=\"md\"\r\n >\r\n setVisibleId(null)}>\r\n {t(\"components.dashboardFilters.modals.title\", {level: getDashboardDynamicFilterLabelTranslations(t)[labels[visibleId]] || labels[visibleId]})}\r\n \r\n \r\n id}\r\n showHeader={false}\r\n columns={[\r\n {\r\n title: \"\",\r\n dataIndex: \"id\",\r\n render: (_, {id, name}) => `[${id}] ${name}`,\r\n renderText: (_, {id, name}) => `[${id}] ${name}`\r\n }\r\n ]}\r\n onRowClick={rowData => handleFilterSelect(labels[visibleId], rowData.id)}\r\n getRowStyle={rowData => ({\r\n background: rowData.id === selectValues[labels[visibleId]]\r\n ? \"#fff9e5\"\r\n : undefined\r\n })}\r\n height={400}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default withStyles(styles)(DashboardFilters);","import {CancelTokenSource} from \"axios\";\r\n\r\nexport const PENDING_REQUEST_ADD = \"request/add\";\r\nexport const PENDING_REQUESTS_CANCEL = \"requests/cancel\";\r\nexport const PENDING_REQUESTS_CLEAR = \"requests/clear\";\r\n\r\nexport const addPendingRequest = (requestUuid: string, requestLabel: string, cancelTokenSource: CancelTokenSource) => ({\r\n type: PENDING_REQUEST_ADD,\r\n payload: {\r\n requestUuid,\r\n requestLabel,\r\n cancelTokenSource\r\n }\r\n});\r\n\r\nexport const cancelPendingRequests = (requestUuids: string[]) => ({\r\n type: PENDING_REQUESTS_CANCEL,\r\n payload: {\r\n requestUuids\r\n }\r\n});\r\n\r\nexport const clearPendingRequests = () => ({\r\n type: PENDING_REQUESTS_CLEAR\r\n});","import React, {Fragment, useEffect, useState} from \"react\";\r\nimport {compose} from \"redux\";\r\nimport {connect} from \"react-redux\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport {\r\n applyDashboardsDatasetFilter,\r\n clearDashboardsDashboards,\r\n fetchDashboardsDashboard,\r\n fetchDashboardsDataset,\r\n setDashboardsDatasetFilter,\r\n submitDashboardDatasetDownload\r\n} from \"../../state/dashboard/dashboardActions\";\r\nimport Call from \"../../hocs/call\";\r\nimport Dashboard from \"../dashboard\";\r\nimport DashboardFilters from \"../dashboard-filters\";\r\nimport {\r\n DASHBOARD_ELEM_FILTER_DIMENSION_KEY,\r\n DASHBOARD_ELEM_TYPE_KEY,\r\n DASHBOARD_ELEM_TYPE_VALUE_VIEW,\r\n DASHBOARD_ELEM_VALUE_KEY,\r\n getViewIdxFromRowAndCol\r\n} from \"../../utils/dashboards\";\r\nimport _ from \"lodash\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport CustomEmpty from \"../custom-empty\";\r\nimport {localizeI18nObj} from \"../../utils/i18n\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {CRITERIA_FILTER_TYPE_CODES} from \"../../utils/criteria\";\r\nimport {cancelPendingRequests} from \"../../state/pending-request/pendingRequestActions\";\r\nimport NodeHeader from \"../node-header\";\r\nimport Page from \"../page\";\r\nimport {useLocation} from \"react-router\";\r\nimport Footer from \"../footer\";\r\nimport {HashLink} from \"react-router-hash-link\";\r\nimport {getPageTitle} from \"../../utils/other\";\r\nimport Breadcrumbs from \"@material-ui/core/Breadcrumbs\";\r\nimport CustomLink from \"../custom-link\";\r\nimport {getHomeInternalUrl, getNodeInternalUrl} from \"../../links\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: \"#f5f5f5\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n padding: \"0 !important\",\r\n overflow: \"hidden\"\r\n },\r\n fullWidthContainer: {\r\n padding: \"0 8px\",\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n breadcrumbs: {\r\n padding: \"16px 8px 8px\"\r\n },\r\n breadcrumbsSeparator: {\r\n margin: \"0 4px\"\r\n },\r\n breadcrumbsLastElem: {\r\n color: theme.palette.primary.main,\r\n padding: 4\r\n },\r\n dashboardTitle: {\r\n padding: \"0 12px 4px\",\r\n fontSize: 28,\r\n fontWeight: 300,\r\n letterSpacing: 0\r\n },\r\n commonsFilters: {\r\n padding: \"0 12px\"\r\n },\r\n dashboardHeader: {\r\n padding: \"8px 4px\"\r\n },\r\n dashboard: {\r\n overflow: \"auto\"\r\n }\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n hub: state.hub,\r\n node: state.node,\r\n nodeId: state.node?.nodeId,\r\n catalog: state.catalog,\r\n dashboardFilterConfig: state.dashboardFilterConfig,\r\n isA11y: state.app.isA11y,\r\n defaultLanguage: state.app.language,\r\n languages: state.app.languages,\r\n dashboards: state.dashboard.dashboards,\r\n fetchedDashboards: state.dashboard.fetchedDashboards,\r\n jsonStats: state.dashboard.jsonStats,\r\n layouts: state.dashboard.layouts,\r\n filterTrees: state.dashboard.filterTrees,\r\n timePeriodsByFreq: state.dashboard.timePeriodsByFreq,\r\n dynamicViewPendingRequests: state.dashboard.dynamicViewPendingRequests\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n fetchDashboard: dashboardId => dispatch(fetchDashboardsDashboard(dashboardId)),\r\n clearDashboards: () => dispatch(clearDashboardsDashboards()),\r\n fetchDataset: (dashboardId, isFetchingDynamicView, nodeId, datasetId, criteria, requestIds, worker) =>\r\n dispatch(fetchDashboardsDataset(dashboardId, isFetchingDynamicView, nodeId, datasetId, criteria, requestIds, worker)),\r\n onFilterSet: (dashboardId, viewIdx, dimension, value) =>\r\n dispatch(setDashboardsDatasetFilter(dashboardId, viewIdx, dimension, value)),\r\n onFilterApply: () => dispatch(applyDashboardsDatasetFilter()),\r\n onDownloadSubmit: (nodeId, datasetId, datasetTitle, criteria, layout, format, extension, zipped, params, defaultLanguage, languages, t) =>\r\n dispatch(submitDashboardDatasetDownload(nodeId, datasetId, datasetTitle, criteria, layout, format, extension, zipped, params, defaultLanguage, languages, t)),\r\n cancelPendingRequests: requestUuids => dispatch(cancelPendingRequests(requestUuids))\r\n});\r\n\r\nconst handleHeight = () => {\r\n const dashboardsBreadcrumbsHeight = document.getElementById(\"dashboards__breadcrumbs\")\r\n ? document.getElementById(\"dashboards__breadcrumbs\").offsetHeight\r\n : 0;\r\n const dashboardsTitleHeight = document.getElementById(\"dashboards__title\")\r\n ? document.getElementById(\"dashboards__title\").offsetHeight\r\n : 0;\r\n const dashboardsFiltersHeight = document.getElementById(\"dashboards__filters\")\r\n ? document.getElementById(\"dashboards__filters\").offsetHeight\r\n : 0;\r\n const dashboardsHeaderHeight = document.getElementById(\"dashboards__header\")\r\n ? document.getElementById(\"dashboards__header\").offsetHeight\r\n : 0;\r\n const footerHeight = document.getElementById(\"footer\")\r\n ? document.getElementById(\"footer\").offsetHeight\r\n : 0;\r\n if (document.getElementById(\"dashboards__content\")) {\r\n document.getElementById(\"dashboards__content\").setAttribute(\r\n \"style\",\r\n `height: calc(100% - ${dashboardsBreadcrumbsHeight + dashboardsTitleHeight + dashboardsFiltersHeight + dashboardsHeaderHeight + footerHeight}px)`\r\n );\r\n }\r\n};\r\n\r\nconst getIsFilterEnabled = (dashboard, dashboardConfig) => {\r\n if (!dashboard) {\r\n return false\r\n }\r\n\r\n let hasDynamicView = false;\r\n dashboard.dashboardConfig.forEach(row => {\r\n row.forEach(col => {\r\n if ((col[DASHBOARD_ELEM_FILTER_DIMENSION_KEY] || \"\").length > 0) {\r\n hasDynamicView = true;\r\n }\r\n });\r\n });\r\n\r\n let lastLavorizableIdx = -1;\r\n (dashboardConfig?.labels || []).forEach((label, idx) => {\r\n if (dashboard?.filterLevels?.[dashboardConfig.labels[idx]] === true) {\r\n lastLavorizableIdx = idx;\r\n }\r\n });\r\n\r\n return (hasDynamicView && lastLavorizableIdx >= 0)\r\n};\r\n\r\nfunction Dashboards(props) {\r\n const {\r\n classes,\r\n\r\n dashboardId,\r\n nodeCode,\r\n isDefault,\r\n\r\n hub,\r\n node,\r\n nodeId,\r\n catalog,\r\n dashboardFilterConfig,\r\n isA11y,\r\n defaultLanguage,\r\n languages,\r\n dashboards,\r\n fetchedDashboards,\r\n jsonStats,\r\n layouts,\r\n filterTrees,\r\n timePeriodsByFreq,\r\n dynamicViewPendingRequests,\r\n\r\n fetchDashboard,\r\n clearDashboards,\r\n fetchDataset,\r\n onFilterSet,\r\n onFilterApply,\r\n onDownloadSubmit,\r\n cancelPendingRequests\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n const location = useLocation();\r\n\r\n const [filterValue, setFilterValue] = useState(\"\");\r\n const [selectValues, setSelectValues] = useState({});\r\n const [lastValorizedIdx, setLastValorizedIdx] = useState(-1);\r\n\r\n const [allowedDashboards, setAllowedDashboards] = useState(null);\r\n\r\n const [tabIdx, setTabIdx] = useState(0);\r\n\r\n const [worker] = useState(() => new Worker(\"./workers/fetchDashboardDatasetAsyncHandlerWorker.js\"));\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (worker) {\r\n worker.terminate();\r\n }\r\n }\r\n }, [worker]);\r\n\r\n useEffect(() => {\r\n handleHeight();\r\n }, [dashboards, selectValues, tabIdx]);\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", handleHeight);\r\n return () => window.removeEventListener(\"resize\", handleHeight)\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (hub && (!nodeCode || (node && catalog && nodeId === catalog.nodeId && node.code.toLowerCase() === nodeCode.toLowerCase()))) {\r\n\r\n const nodeDashboards = nodeId ? (hub.nodes.find(node => node.nodeId === nodeId).dashboards || []) : [];\r\n const hubDashboards = (hub.hub.dashboards || []);\r\n\r\n // const showHubDashboardsExtra = JSON.parse((node?.extras || []).find(({key}) => key === \"ShowHubDashboards\")?.value || null);\r\n const showHubDashboards = true; // (!nodeId || (nodeId && showHubDashboardsExtra === true));\r\n\r\n const newAllowedDashboards = dashboardId\r\n ? [{id: dashboardId}]\r\n : nodeId\r\n ? showHubDashboards\r\n ? _.uniqBy(hubDashboards.concat(nodeDashboards), \"id\")\r\n : nodeDashboards\r\n : hubDashboards\r\n setAllowedDashboards(newAllowedDashboards);\r\n\r\n } else {\r\n clearDashboards();\r\n setFilterValue(\"\");\r\n setAllowedDashboards(null);\r\n }\r\n\r\n return () => {\r\n clearDashboards();\r\n }\r\n }, [hub, nodeId, nodeCode, node, catalog, dashboardId, clearDashboards]);\r\n\r\n const handleFilterApply = value => {\r\n if (value !== filterValue) {\r\n setFilterValue(value);\r\n onFilterApply();\r\n cancelPendingRequests(dynamicViewPendingRequests);\r\n }\r\n };\r\n\r\n const handleFilterReset = () => {\r\n setSelectValues({});\r\n setLastValorizedIdx(-1);\r\n handleFilterApply(dashboardFilterConfig?.defaultValue || \"\");\r\n };\r\n\r\n const handleFetchDatasets = ({dashboardId, fetchStatic, fetchDynamic, dynamicFilterValue}) => {\r\n const requests = [];\r\n\r\n const isDetailLevelFilterEnabled = Object.values(dashboards[dashboardId]?.filterLevels || {}).filter(val => val).length > 0;\r\n\r\n dashboards[dashboardId].dashboardConfig.forEach((row, rowIdx) => {\r\n row.forEach((col, colIdx) => {\r\n if (col[DASHBOARD_ELEM_TYPE_KEY] === DASHBOARD_ELEM_TYPE_VALUE_VIEW) {\r\n\r\n const view = dashboards[dashboardId].views[col[DASHBOARD_ELEM_VALUE_KEY]];\r\n\r\n if (view) {\r\n let newCriteria = (view?.criteria || {});\r\n\r\n let addRequest = false;\r\n\r\n const filterDimension = col[DASHBOARD_ELEM_FILTER_DIMENSION_KEY];\r\n\r\n if (!filterDimension || filterDimension.length === 0 || !isDetailLevelFilterEnabled) {\r\n addRequest = fetchStatic;\r\n\r\n } else {\r\n if (fetchDynamic) {\r\n addRequest = true;\r\n if (dynamicFilterValue) {\r\n newCriteria = {\r\n ...newCriteria,\r\n [filterDimension]: {\r\n ...newCriteria[filterDimension],\r\n id: filterDimension,\r\n type: CRITERIA_FILTER_TYPE_CODES,\r\n filterValues: [dynamicFilterValue]\r\n }\r\n };\r\n } else {\r\n newCriteria = {\r\n ...newCriteria,\r\n [filterDimension]: {\r\n ...newCriteria[filterDimension],\r\n id: filterDimension,\r\n type: CRITERIA_FILTER_TYPE_CODES,\r\n filterValues: dashboardFilterConfig?.defaultValue ? [dashboardFilterConfig.defaultValue] : []\r\n }\r\n };\r\n }\r\n }\r\n }\r\n\r\n if (addRequest) {\r\n const request = requests.find(({nodeId, datasetId, criteria}) => {\r\n return (\r\n nodeId === view.nodeId &&\r\n datasetId === view.datasetId &&\r\n _.isEqual(criteria, newCriteria)\r\n )\r\n });\r\n\r\n if (request === undefined) {\r\n requests.push({\r\n nodeId: view.nodeId,\r\n datasetId: view.datasetId,\r\n criteria: newCriteria,\r\n requestIds: [getViewIdxFromRowAndCol(rowIdx, colIdx)]\r\n });\r\n } else {\r\n request.requestIds.push(getViewIdxFromRowAndCol(rowIdx, colIdx));\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n requests.forEach(({nodeId, datasetId, criteria, requestIds}) =>\r\n fetchDataset(dashboardId, fetchDynamic, nodeId, datasetId, criteria, requestIds, worker)\r\n );\r\n };\r\n\r\n const currentDashboardId = dashboardId\r\n ? dashboardId\r\n : allowedDashboards?.[tabIdx]?.id\r\n ? allowedDashboards[tabIdx].id\r\n : null;\r\n\r\n const params = new URLSearchParams(location.search);\r\n params.set(\"accessible\", \"true\");\r\n const paramsStr = params.toString();\r\n const path = (nodeId && nodeCode)\r\n ? `/${window.language}/${nodeCode.toLowerCase()}`\r\n : `/${window.language}`;\r\n\r\n return (\r\n \r\n {!isA11y && (\r\n 0 ? \"?\" : \"\") + paramsStr}\r\n target=\"_self\"\r\n className=\"skip-link sr-only\"\r\n >\r\n {t(\"commons.hashLinks.accessible\")}\r\n \r\n )}\r\n \r\n {t(\"commons.hashLinks.main\")}\r\n \r\n \r\n {t(\"commons.hashLinks.footer\")}\r\n \r\n \r\n
    \r\n {\r\n if (isA11y) {\r\n if (nodeCode) {\r\n return `/${window.language}/${nodeCode.toLowerCase()}`;\r\n } else {\r\n return `/${window.language}`;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n \r\n {nodeId && (hub.nodes || []).length > 1 && (\r\n \r\n )}\r\n \r\n {t(\"scenes.dashboards.breadcrumbs.dashboards\")}\r\n \r\n \r\n
    \r\n {currentDashboardId\r\n ? (\r\n \r\n \r\n \r\n
    \r\n \r\n {(allowedDashboards || []).length > 1\r\n ? t(\"scenes.dashboard.title\")\r\n : localizeI18nObj(dashboards?.[currentDashboardId]?.title, defaultLanguage, languages)\r\n }\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {((allowedDashboards || []).length > 1) && (\r\n
    \r\n \r\n setTabIdx(newValue)}\r\n >\r\n {allowedDashboards.map(({id, title}, idx) =>\r\n \r\n )}\r\n \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n {(allowedDashboards || []).map(({id}) =>\r\n \r\n {id === currentDashboardId && (\r\n 0 ? filterValue : (dashboardFilterConfig?.defaultValue || \"\")}\r\n jsonStats={jsonStats?.[id] || null}\r\n layouts={layouts?.[id] || null}\r\n filterTrees={filterTrees?.[id] || null}\r\n timePeriodsByFreq={timePeriodsByFreq?.[id] || null}\r\n onFilterSet={onFilterSet}\r\n onDownloadSubmit={onDownloadSubmit}\r\n />\r\n )}\r\n
    \r\n )}\r\n \r\n \r\n
    \r\n \r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n