{"version":3,"sources":["store/constans/index.js","static/icons/less.svg","static/icons/less-equal.svg","static/icons/more-equal.svg","static/icons/equal.svg","static/icons/more.svg","utils/data.js","store/reducers/tableReducer.js","utils/builder/TemplatesAndCollections.js","utils/builder/PropertiesManager.js","utils/builder/ResultClasses.js","utils/builder/CommonFunctions.js","utils/builder/IModelsTree.js","utils/builder/IUsers.js","utils/builder/IAmecLog.js","utils/builder/BimSearch.js","utils/builder/BimsearchToolbarExtension.js","utils/builder/BimsearchViewer.js","utils/builder/IScheduleLogic.js","store/actions/table.js","static/icons/check-circle.svg","components/Toasts/Toast/index.js","static/icons/cross-circle.svg","components/BuilderContext/index.js","static/icons/project.svg","components/Toasts/ManagerToast/index.js","utils/helpers.js","store/actions/filter.js","store/actions/collections.js","store/reducers/viewerReducer.js","store/reducers/userReducer.js","store/reducers/index.js","store/index.js","hooks/useBuilderData.js","components/DashboardContext/index.js","static/icons/arrow.svg","components/uiComponents/ProjectItem/index.js","components/uiComponents/ProjectNavList/index.js","static/icons/close.svg","static/images/fileTypes/hub.png","components/uiComponents/ProjectNavItem/index.js","components/sidebarComponents/ProjectNav/index.js","static/images/welcome_img.svg","components/uiComponents/UniversalButton/index.js","components/modals/WelcomeModal/index.js","static/icons/trial-period-expired.svg","components/modals/TrialPeriodExpiredModal/index.js","components/modals/ModalComponent/index.js","hooks/useModal.js","components/uiComponents/Modal/index.js","components/ModalContext/index.js","store/actions/user.js","static/icons/search-grey.svg","components/uiComponents/UniversalInput/index.js","static/icons/checked.svg","components/uiComponents/UniversalCheckbox/index.js","components/uiComponents/UniversalTextarea/index.js","components/modals/SupportModal/index.js","components/HubContactButton/index.js","static/icons/close-small.svg","static/icons/folder.svg","components/uiComponents/SearchInput/index.js","components/uiComponents/Button/index.js","components/uiComponents/VersionsItem/index.js","store/actions/template.js","components/modals/VersionsModal/index.js","webpack:///./src/static/icons/star.svg?5c19","static/icons/arrow-sort.svg","static/images/fileTypes/rvt.png","static/images/fileTypes/nwc.png","static/images/fileTypes/ifc.png","static/images/fileTypes/dwg.png","static/images/fileTypes/fbx.png","static/images/fileTypes/unfamiliar.png","components/uiComponents/GridItem/index.js","static/images/fileTypes/iwm.png","components/uiComponents/Grid/index.js","components/uiComponents/UniversalLoader/index.js","components/uiComponents/BreabcrumbsItem/index.js","components/uiComponents/ButtonDropdown/index.js","static/icons/grid.svg","components/uiComponents/SortHeader/index.js","static/icons/list.svg","static/images/empty-folder.svg","static/icons/double-right.svg","components/FolderExplorer/index.js","static/icons/clock.svg","static/icons/star.svg","screens/DashboardEmpty/index.js","static/icons/report-download.svg","components/uiComponents/TableInfoCell/index.js","components/uiComponents/TableInfoFooter/index.js","static/icons/indeterminate.svg","components/uiComponents/IndeterminateCheckbox/index.js","components/uiComponents/TableInfoHeader/index.js","components/DownloadInfoTableExcel/index.js","static/icons/save-collection.svg","components/uiComponents/TableInfoRow/index.js","static/icons/color-picker.svg","static/icons/folder-templates.svg","components/uiComponents/DropDownColor/index.js","hooks/useDrop.js","components/uiComponents/DropDown/index.js","components/template/CreateFolder/index.js","static/icons/options.svg","static/icons/plus-circle.svg","static/icons/minus-circle.svg","components/template/OptionMenu/index.js","components/modals/ProofModal/index.js","components/EditCollectionFolders/index.js","components/uiComponents/DropDownFolder/index.js","components/modals/SaveCollectionModal/index.js","components/SaveAsCollection/index.js","components/SaveCollection/index.js","static/icons/triangle.svg","components/UnassignFromCollection/index.js","static/icons/copy-icon.svg","components/uiComponents/DropDownAddCollection/index.js","components/DashboardInfoTable/index.js","static/icons/arrow-gray.svg","components/Toasts/CopyToast/index.js","components/uiComponents/QuickStatsItem/index.js","static/icons/multiselection.svg","components/modals/QuickStatsModal/QuickStatsTable.js","components/modals/QuickStatsModal/index.js","components/QuickStats/index.js","static/icons/isolate-selection.svg","static/icons/hide-selection.svg","static/icons/show-all.svg","static/icons/toggle-ghosting.svg","static/icons/collection.svg","components/EditorSection/index.js","store/actions/modal.js","static/icons/templates.svg","static/icons/crown.svg","static/icons/folder-open-templates.svg","static/icons/info-gray.svg","static/images/premium_templates.svg","components/template/QuickStatsTemplate/index.js","components/modals/SaveTemplateModals/index.js","components/FolderTemplates/index.js","static/icons/big-crown.svg","components/modals/RadioListModal/index.js","components/sidebarComponents/SidebarButtonDropdown/index.js","components/sidebarComponents/SidebarDropdown/index.js","static/icons/settings-template.svg","components/modals/GoToPremiumModal/index.js","components/uiComponents/Tag/index.js","static/icons/home.svg","components/sidebarComponents/SidebarProject/index.js","components/OptionMenuCollection/index.js","components/QuickStatsCollections/index.js","components/sidebarComponents/SidebarCollections/index.js","components/sidebarComponents/SidebarModule/index.js","screens/DashboardProj/index.js","routes/Dashboard/index.js","static/video/bim.mp4","screens/LoadingScreen/index.js","static/images/bim_logo.svg","components/entryComponents/EntryWrap/index.js","components/uiComponents/Input/index.js","utils/validationRules.js","components/uiComponents/Form/index.js","components/entryComponents/SignUp/index.js","screens/SignUp/index.js","screens/WithUser/index.js","components/modals/DeleteProfModal/index.js","static/icons/done.svg","static/icons/error.svg","components/modals/ResponseModal/index.js","screens/Settigns/index.js","static/icons/question-circle.svg","components/uiComponents/DropDownSupport/index.js","components/Header/index.js","static/images/bim_logo_black.png","routes/PrivateRoutes/index.js","static/images/btn_img.svg","components/entryComponents/SignIn/index.js","screens/SignIn/index.js","routes/EntryRoutes/index.js","App.js","index.js"],"names":["LOAD_MODEL","UPDATE_FILTER","UPDATE_STATS","COLAPSE_DASH","UPDATE_TABLE","RESET_TABLE","RESIZE_TABLE","DELETE_USER","USER_INFO","STATUS","TEMPLATE","CATEGORY","SECOND","RESET","CLEAR_SETTING_VIEWER","ADD_FOLDER","ADD_TEMPLATE","DELETE_FOLDER","DELETE_TEMPLATE","RENAME_FOLDER","EDIT_TEMPLATE","GET_FOLDERS_COLLECTIONS","SAVE_COLLECTION","SAVE_COLLECTIONS","CREATE_COLLECTIONS_FOLDER","RENAME_COLLECTIONS_FOLDER","DELETE_COLLECTIONS_FOLDER","EDIT_COLLECTIONS","DELETE_COLLECTIONS","UNASSIGN_FROM_COLLECTIONS","ADD_TO_NEW_COLLECTION","COPY_TO_COLLECTION","COPY_TO_COLLECTION_UNSAVED","ADD_ACTIVE_FOLDER","ASSIGN_TO_COLLECTION","SET_MODE_COMPARE","CHANGE_COLLECTION_CHECKBOX","SET_QUICK_INFO_COMPARE","GET_COLLECTION_TABLE","CLOSE_TAB","SET_ACTIVE_TAB","REPLACE_TAB","ADD_SELECT_ITEMS","fields","id","type","label","placeholder","name","key","v4","colors","hex","tabType","subscriptionType","initState","tabs","offSetSize","colapsedDash","tableReducer","state","payload","inactiveTabs","filter","tab","map","active","collection","groupBy","groups","properties","duplicateTab","creationTime","tabsWithoutActive","length","title","color","folder","tableCollection","openTabs","lastTab","pop","push","newActiveTabs","selectItems","newUnassignArray","amountUnsavedTabs","forEach","newName","Date","now","newCopyToArray","newAssignToArray","newCopyToArrayUnsaved","replaceTabArray","collectionName","addSelectItems","Template","description","categories","categoryIds","searchValue","this","userCreated","descreption","Collection","groupedBy","elements","BimsearchElement","elementModelId","propertiesValues","Object","ElementModelId","linkId","revitId","modelIdToKey","PropertiesManager","modelsMap","viewerIdToModelId","modelIdToViewerId","viewer","ids","loadedModelName","model","getData","loadOptions","bubbleNode","getRootNode","children","getExternalIdMappingAsync","externalIdMapping","links","getAllPropertiesAsync","propsArr","i","props","RevitIdFromProperties","externalIds","externalId","split","modelName","linkInstanceId","dbId","getPropertiesAsync","linkNameProp","find","prop","displayName","displayValue","newId","IdsGetSize","dbIds","resArr","piece","slice","getBulkPropertiesAsync","resPiece","res","flat","Promise","resolve","reject","getBulkProperties","result","error","getProperties","getExternalIdMapping","stringResult","toLowerCase","includes","Number","isInteger","DataForMenus","quickCounterData","templates","templatesCount","templatesFolder","filterByOptions","filterValues","groupingOptions","commonCategories","uncommonCategories","commonProperties","uncommonProperties","commonGroupingOptions","uncommonGroupingOptions","selection","QuickDataField","value","unit","MenusSelection","selectedCategories","selectedSecondFilter","selectedFilterValues","selectedProperties","selectedGroups","secondFilter","DataForTable","header","units","lines","totals","lineElements","QuickInfo","quickData","parameters","operatorValues","postToServer","url","data","options","method","headers","body","JSON","stringify","fetch","getFromServer","then","response","json","getNextLevel","addToRecent","itemNode","sendSupportMail","email","cantFind","message","currentUser","userName","loggedIn","loginButton","logout","hiddenFrame","window","location","href","getUserData","newUser","emailId","picute","phone","company","role","subscreption","userId","deleteUserData","setUserData","callGoogleTag","stage","dataLayer","logError","errorLocation","logEvent","logCreateSchedule","bimSearch","getUserId","join","selectedFilter","logSelectCategory","logDownloadSchedule","logTemplate","template","logTableLineSelected","logDoubleClick","category","onOff","logRightClick","selectedItems","BimSearch","init","selectedCategoryIds","categoryIdNameDictionary","sharedPropertiesDictionary","allElements","propertiesManager","categoryElements","filteredElements","CommonCategories","CommonProperties","CommonGroupingOptions","nonSummableProperties","userTemplates","objectsTree","enumNodeChildren","getRootId","nodeId","loadElements","updatePropertiesTranslations","getUserTemplates","keys","sort","a","b","temp","GetProperties","findByDisplayName","CategoryParameterName","categoryId","categoryName","startsWith","categoryPre","undefined","updateCategoriesTranslations","selectCategory","splitCommon","findElementsByCategories","sharedProperties","getSharedPropertiesByDisplayName","counterData","getCounterData","categoryPropIds","categoryPropNames","elementDetected","replace","allNumbers","unshift","values","elementValue","toString","getMenusDataAfterSecondFilter","operator","elementprop","passFilter","templateName","templateFolder","selectedTemplate","sharedPropertiesByDisplayName","sharedPropertiesByAttributeName","getSharedPropertiesByAttributeName","existingProps","existingGroups","propDisplayName","localizedCategoryNames","groupingParameters","getInstancesSchedule","groupNames","newgroups","newGroupNames","j","k","indexOf","g","nonSortedNames","sortedGroups","sums","groupLines","line","sum","allSame","isNumber","sameValue","eUnits","isSummable","groupHeader","propText","funit","formatUnit","tableLine","totalValue","TemplateFolder","element","collectionDefaultProperties","propValue","elementCategory","elementProp","folderName","updateTemplatesFolderOnDatabase","getTemplateNames","DefaultTemplatesnFolder","originalName","addElementToDataArray","categoryProp","deleteTemplateNoSync","categoriesIds","ogrinalTemplateFolder","originalTitle","newTemplateFolder","newTitle","newDescription","findIndex","elementProperties","collectionElement","newElements","group","viewerId","lineData","headerProp","totalVal","index","splice","err","propertyNames","getValidProperties","property","additionalParameterNames","getAdditionalParameterNames","Set","attributeName","propNames","LinkDemiParameterName","FamilyDemiParameterName","isRvt","proprertyNames","hidden","propsDictionary","NonSummableProperties","CommonCategoriesIds","GetModel","splitName","sourceFileName","endsWith","ElementsWithoutCategoryCategory","resultItem","dataFieldArray","itemProps","areaParam","volumeParam","lengthParam","addPropertyToDataField","knownUnits","centimeters","meters","squareMeters","cubicMeters","unitString","splitUnitString","shift","dataField","ToolbarExtension","Autodesk","Viewing","Extension","call","prototype","create","constructor","load","toolbar","createUI","onToolbarCreatedBinded","onToolbarCreated","bind","addEventListener","TOOLBAR_CREATED_EVENT","removeEventListener","showAllButton","UI","Button","onClick","event","isolate","addClass","setToolTip","subToolbar","ControlGroup","addControl","unload","removeControl","theExtensionManager","registerExtension","bimSearchViewerInstance","originalClusterMethod","bimSeachViewer","BimsearchViewer","itemStruct","divElement","returnMehod","modelVersion","version","onSelectionChangeCallback","urn","idToOpen","collections","alertGiven","idForCollections","env","getAccessToken","getForgeToken","api","atob","Initializer","intialize","GuiViewer3D","extensions","profileSettings","settings","viewCubeCompass","reverseMouseZoomDir","edgeRendering","envMapBackground","lightPreset","selectionSetPivot","start","setSelectionColor","THREE","Color","SelectionType","MIXED","documentId","OBJECT_TREE_CREATED_EVENT","modelLoaded","EXTENSION_UNLOADED_EVENT","closeVisualClusters","SELECTION_CHANGED_EVENT","handleSelectionChange","registerContextMenuCallback","menu","status","rightClick","clickHandler","handleDoubleClick","onDoubleClick","Document","doc","onDocumentLoadSuccess","errorCode","onDocumentLoadFailure","clearSelection","fitToView","select","findCollectionIndex","getCollections","collectionsByFolder","saveColletions","addElementsToCollection","removeElementsFromCollection","oldTitle","oldFolder","newFolder","newDescreption","newColor","col","saveCollection","defaultCollectionFolder","saveCollectionsToDb","alert","Array","isArray","clearThemingColors","colorsArray","elemntsToIsolate","sumR","sumG","sumB","r","colorVector","Vector4","setThemingColor","saveAsCollection","copyToNewCollection","unassignSelection","hasSelected","target","unregisterContextMenuCallback","getSelection","hide","showAll","setGhosting","viewables","getRoot","getDefaultGeometry","viewItems","search","firstViewItem","guid","findByGuid","loadDocumentNode","toggleGhosting","viewerErrorCode","navToolsConrol","getControl","_controls","_id","modelToolsControl","settingsToolsConrol","callback","access_token","expires_in","loadedExtensions","clusterButton","_state","getObjectTree","tree","treeLoaded","modelHeader","loadModel","clusterClickMethod","sharedMeasureConfig","logClusterButton","viewSelection","typeProp","typeParameter","cProps","cCategoryProp","cTypeProp","selectElements","getDataByCategory","numSelected","dbIdArray","returnMethod","leafText","console","log","text","updateCategory","isolateElements","tableSelect","chooseTemplate","selectTemplate","getSchedule","createSchedule","resizeViewer","resize","width","height","getScreenShot","getTemplateQuickInfo","getTemplateInfo","renameTemplateFolder","saveTemplate","createCollection","getCollectionTable","addToCollection","removeFromCollection","removeFromTempCollection","addToTempCollection","getCollectionsFolders","collectionFolders","getCollectionsForFolder","getCollectionInfo","editCollection","addSelectionToCollection","removeSelectionFromCollection","removeSelectionFromTempCollection","deleteCollection","colorCollections","addCollectionFolder","deleteCollectionFolder","renameCollectionFolder","getDetailedCollectionInfo","isolateSelection","hideSelection","_path","_path2","updateTable","dispatch","ElementsAction","closeTab","replaceTab","Toast","className","_excluded","_extends","assign","arguments","source","hasOwnProperty","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgCheckCircle","_ref","svgRef","titleId","viewBox","fill","xmlns","ref","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","_path3","ForwardRef","SvgCrossCircle","BuilderDataContext","ManagerToast","isSuccess","updateFilters","deepCopy","cloneDeep","toArray","obj","arr","setFun","list","tempObj","el","treeAdd","object","condition","level","searchTreeFun","bodyFun","searchLevel","newList","elCondition","findFoldersTreeObj","treeItem","idIndex","item","some","treeArrItem","reqObj","childrenArr","getFoldersBreadcrumbs","reqArr","useOnClickOutside","handler","useEffect","listener","current","contains","document","useElementSize","useState","size","setSize","useLayoutEffect","updateSize","offsetWidth","offsetHeight","numberWithCommas","x","checkPremium","subscription","roundUp","number","arrayNumber","pointArrayNumber","showToast","toast","t","duration","calculationQuickInfo","baseObject","newObject","mathOperation","baseEl","newEl","updateFilter","callBack","setQuickInfoCompare","collectionSave","activeFolder","createCollectionFolder","collectionFolderRename","originalNameFolder","newNameFolder","collectionFolderDelete","collectionEdit","collectionDelete","unselectCollectionOnView","selectCollectionOnView","unassignFromCollection","newCollection","addToNewCollection","copyToCollection","copyToCollectionUnsaved","setUpModeCompare","quickInfoCompare","compare","isModeCompare","selectionDetails","viewerReducer","collectionsFolders","newState","copyArray","newArray","arrayWithoutOldTemplates","currentNameFolder","currentNameTemplate","arrayWithNewTemplate","newNameTemplate","templatesFolderNew","templatesNew","copyArrayCollection","newEditCollection","newDeleteCollection","uncheckedCollections","checked","newCollectionsCompare","newCollections","collectionCompare","isCollectionDetails","newSelectionDetails","info","authReducer","rootReducer","combineReducers","ViewerReducer","table","user","userReducer","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","applyMiddleware","thunk","useBuilderData","React","project","sideBar","builderData","setBuilderData","Provider","createContext","BuilderDataProvider","DashboardStateContext","DashboardStateProvider","foldersTree","setFoldersTree","setActiveFolder","activeProject","setActiveProject","isFolderLoading","setIsFolderLoading","favourites","setFavourites","recent","setRecent","isTableHidden","setIsTableHidden","checkSidebarDropdownStatus","setCheckSidebarDropdownStatus","isModalLoaded","setIsModalLoaded","isWelcomeModalSeen","setIsWelcomeModalSeen","signingState","setSigningState","breadcrumbsData","parse","localStorage","getItem","useDashboardState","useContext","SvgProject","ProjectItem","memo","stat","treeAction","setList","setActive","requestedObj","searchFunction","finally","classNames","to","ProjectNavList","memoList","useMemo","SvgArrow","ProjectNavItem","pictureUrl","lastUpdate","updatedBy","prevState","style","backgroundImage","hubImage","CSSTransition","in","timeout","unmountOnExit","appear","ProjectNav","isWithoutTitle","isWithoutSearch","outsideSearchValue","setSearchValue","setTree","tempOBj","setItem","onKeyUp","e","keyCode","UniversalButton","isDisabled","isFullWidth","isRounded","labelColor","labelHoverColor","backgroundColor","backgroundHoverColor","isBordered","isHoverBordered","borderColor","borderHoverColor","leftIcon","centerIcon","rightIcon","premium","buttonStyles","disabled","WelcomeModal","onActionClick","src","WelcomeImg","TrialPeriodExpiredModal","TrialPeriodExpired","open","ModalComponent","onCloseModal","isVisible","handleCloseModal","classList","useModal","modal","setModal","modalContent","setModalContent","isDragAndDrop","setDragAndDrop","handleModal","content","isCloseAction","dragAndDrop","Modal","ModalContext","modalContentElement","useRef","zIndex","position","onmousedown","coords","getCoords","shiftX","pageX","left","shiftY","pageY","top","onmousemove","onmouseup","elem","box","getBoundingClientRect","scrollY","scrollX","dragAndDropElement","overflow","ReactDOM","createPortal","background","pointerEvents","querySelector","ModalProvider","signOut","getElementById","updateUser","userData","signinState","SvgClose","UniversalInput","onChangeValue","required","isClearButtonActive","onClearSearch","htmlFor","onChange","UniversalCheckbox","handleClick","useCallback","CheckedIcon","UniversalTextarea","SupportModal","closeModal","useSelector","useDispatch","admin","setAdmin","setCompany","setMessage","handleChange","handleCancel","onSubmit","preventDefault","sendSupportEmail","HubContactButton","onHideHelp","SvgSearchGrey","_g","SvgCloseSmall","opacity","SearchInput","isWithoutCloseButton","isAbsolutePositioning","isRightPosition","onChangeVisibility","onHideSearch","inputRef","searchFocused","setSearchFocused","focus","onFocus","onBlur","clickFunction","transparent","isCommon","isActive","VersionsItem","isBlock","fileIconPath","format","addFolderTemplate","addTemplateFolder","renameFolderTemplate","addTemplate","templateEdit","newDescriptionTemplate","editTemplate","deleteFolderTemplate","deleteTemplateFolder","deleteTemplateFromFolder","deleteTemplate","clearSettingViewer","VersionsModal","versions","parentItem","history","useHistory","activeVersion","setActiveVersion","pathname","SvgFolder","SvgStar","GridItem","isFavorite","lastVersion","lastOpened","titleWidth","path","ext","pathArr","getFileExtension","rvtImage","nwImage","ifcImage","dwgImage","fbxImage","unfamiliarImage","getFileIconPath","stopPropagation","foldersTreeCopy","setCurrentItemFavouriteStatusInData","updatedFavourites","updatedRecent","removeFromFavorites","addToFavorites","maxWidth","Math","floor","Grid","items","itemsViewType","wrapGrid","easing","stagger","UniversalLoader","preloaderColor","preloaderBgColor","isWithoutContainerBg","BreabcrumbsItem","isFirst","isLast","ButtonDropdown","buttonElement","isDropdownBlocked","dropdownPosition","dropdownVerticalPosition","isFixedHeight","isFullHeight","isItemsEmpty","onCloseDropdown","dropDownCloseStatus","dropdownIsOpen","setDropdownIsOpen","buttonDropdownStyles","SvgArrowSort","DropdownItem","SortButton","openStatus","SortHeader","viewType","onChooseSortType","onDirectionButtonClick","onSortItemClick","onWidthChange","titleRef","isDropdownOpen","setIsDropdownOpen","isDescending","buttonBorder","SvgGrid","_circle","_circle2","_circle3","SvgList","cx","cy","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_defs","SvgEmptyFolder","x1","y1","x2","y2","gradientUnits","stopColor","offset","standartSortList","recentSortList","FolderExplorer","setItemsViewType","setTitleWidth","sortData","setSortData","handleViewChange","handleChooseSortType","folderObj","sortItem","localeCompare","String","breadcrumbsArr","breadcrumbs","sortDataCopy","activeItem","DashboardEmpty","searchRef","searchWidth","isWelcomeModalVisible","setIsWelcomeModalVisible","isTrialPeriodExpiredModal","setTrialPeriodExpiredModal","isHubButtonVisible","setIsHubButtonVisible","isSearchVisible","setIsSearchVisible","handleCloseWelcomeModal","setTimeout","treea","handleRecentClick","handleFavouritesClick","getRecent","getFavorites","ClockIcon","StarIcon","SvgDoubleRight","TableInfoCell","TableInfoFooter","selectedTotals","rows","checkList","unitsArr","cols","elUpd","selectedElUpd","toFixed","subUnit","indeterminateCheckboxTypes","freeze","unchecked","indeterminate","IndeterminateCheckbox","isChecked","IndeterminateIcon","TableInfoHeader","onChangeCheckbox","sorting","onSortChange","headerUpd","trim","col1","rest","handleSortClick","SvgReportDownload","letterFromNumber","fromCharCode","toUpperCase","DownloadInfoTableExcel","fileName","isCheckFlag","excelHeader","excelLines","tableBodies","getElementsByClassName","workbook","ExcelJs","sheet","addWorksheet","columns","columnHeader","addRow","cellRef","cellValue","formula","getCell","commonPatternFill","colorBorder","borderStyle","alignmentCenter","vertical","horizontal","wrapText","borderThinBlack","argb","right","bottom","totalsRowIndex","rowCount","rowIndex","columnIndex","columnCount","cell","alignment","border","font","bold","pattern","fgColor","column","lengths","max","autosizeColumnsWidth","cellRefStart","cellRefEnd","address","addConditionalFormatting","rules","formulae","bgColor","imageWidth","c","imageHeight","roundImageWidth","roundImageHeight","viewerGetScreenShot","blobUrl","blob","reader","FileReader","readAsDataURL","onloadend","imageBase64String","image","addImage","base64","extension","tl","row","xlsx","writeBuffer","buffer","Blob","FileSaver","TableInfoRow","onCheckChange","restCells","SvgSaveCollection","SvgColorPicker","customColor","DropDownColor","submitClick","infoDropDown","setInfoDropDown","baseColor","handleClickColorPicker","useDrop","handleClickOutside","defaultLabel","DropDown","listTitle","changeFunction","blockRef","setState","CreateFolder","closeCreateFolderModal","currentFolderName","addOrEditFolder","input","isError","setError","setFolderName","onInput","SvgFolderTemplates","SvgOptions","SvgPlusCircle","OptionMenu","closeOptionMenu","openProofModal","edit","checkElement","currentElement","optionMenu","ProofModal","proofCallback","cancelButtonText","proofButtonText","EditCollectionFolders","closeEditFolderModal","setNewListTitle","deleteTitle","isCreateFolderModal","setCreateFolderModal","optionMenuFolder","setOptionMenuFolder","isEditFolder","setEditFolder","proofModal","setProofModal","addFolder","closeOptionMenuFolder","closeEditFolder","editFolder","closeProofModal","deleteItem","onScroll","events","clientX","clientY","openOptionMenuFolder","DropDownFolder","getSelectFolder","setDropDownTitle","isEditFolderModal","setEditFolderModal","newListTitle","SaveCollectionModal","folderInfo","tableInfo","selected","infoAboutCollection","setInfoAboutCollection","nameError","setNameError","validateCollectionName","isExistName","every","setInfoParameter","SaveAsCollection","closeCollectionModal","SaveCollection","SvgMinusCircle","UnassignFromCollection","deleteSelectElements","handleClickButton","SvgTriangle","DropDownAddCollection","dropDownSize","setDropDownSize","currentCollectionFolder","setCurrentCollectionFolder","collectionPosition","setCollectionPosition","activeCollections","setActiveCollections","openCollectionsList","closeCollectionsList","folderButtonClientRect","collectionsClientRect","heightWindow","scrollHeight","y","createNewCollection","handleClickCollection","handleClickCollectionUnsaved","availableHeight","innerHeight","handleSwitch","maxHeight","collectionFolder","DashboardInfoTable","setSelectedItems","indexs","setIndexs","headerArr","setHeaderArr","groupsSameItems","setGroupsSameItems","footer","setFooter","setSorting","sortObj","uniqLines","selectedTotalsArr","linesFiltered","isInsideSelectedList","keyStringArr","keyString","filterFun","lineId","dispatchData","selectElementsInTable","handleRowCheckChange","newObj","unitParts","sortingName","sortedRows","linesIndex","lineRow","sortingType","isSelect","getTableForSelectedElements","searchedArr","searchInlines","tempOb","countSelectedItems","checkboxTypes","getCheckboxStatus","SvgCopyIcon","rx","CopyToast","QuickStatsItem","percent","unitUpd","unitArr","unitDegree","navigator","clipboard","writeText","SvgArrowGray","QuickStatsTable","headerData","rowData","footerData","handleCopyCellClicked","isOpenTable","setOpenTable","rowArr","visibleValue","QuickStatsModal","columnDataArr","counter","rowDataArr","itemObj","visibleValueArr","copy","footerDataArr","cellName","cellUnit","cellUnitDegree","showValue","rowStringsArr","dataClipboardtext","getTablesTotalObject","sumCategories","QuickStats","isCompare","sidebarIsOpened","details","setDetails","newDetails","infoCollection","getFullSelectionData","percentage","SvgMultiselection","SvgIsolateSelection","SvgHideSelection","SvgShowAll","fillRule","clipRule","SvgToggleGhosting","EditorSection","autodesk","projectData","editorPanel","setEditorPanel","registerCollectionMenuItems","registerRightClickMethods","onSelectionChange","selectionElementOnViewer","registerSelectionChangeMethod","buttonName","buttonMethod","SvgCollection","SvgTemplates","SvgCrown","SvgFolderOpenTemplates","clipPath","SvgInfoGray","QuickStatsTemplate","quickInfo","closeQuickInfo","nessery","day","year","month","hour","minute","second","hour12","parameter","SaveTemplateModal","filterState","closeEditTemplate","setInfoAboutTemplate","infoAboutTemplate","folders","saveAsTemplate","checkValidation","handleEditTemplate","setTemplateName","setDescriptionName","groupName","FolderTemplates","handleOptionClick","activeOption","scroll","setScroll","closePopUps","IS_PREMIUM","isOpenFolder","setOpenFolder","setQuickInfo","setOptionMenu","setEditTemplate","setFolderInfo","openQuickInfo","openOptionMenu","SaveTemplateModals","SvgPremiumTemplates","_path11","_path12","_path13","_path14","_path15","_path16","_path17","_path18","_path19","_path20","RadioListModal","selectedOption","onChangeTemplate","handleOpenPremiumModal","setActiveOption","activeBanner","setActiveBanner","infoAboutFolder","setInfoAboutFolder","currentOption","option","SidebarButtonDropdown","buttonTitle","optionsType","onClearAll","isOpenInitialDropdown","dropdownRef","dropdownButtonRef","marginOffset","setMarginOffset","positionTop","setPositionTop","clientHeight","offsetTop","windowInnerHeight","dropdownButtonPosition","marginTop","SidebarDropdown","commonOptions","uncommonOptions","onChangeSelectedItems","setSearch","isUncommonVisible","setIsUncommonVisible","addAlphabetToOptions","opts","alphabet","firstChar","charAt","commonOptionsUpd","uncommonOptionsUpd","searchedOptions","searchItem","SvgBigCrown","GoToPremiumModal","dangerouslySetInnerHTML","__html","Tag","onRemoveTag","isWithoutRemovebutton","SvgSettingsTemplate","SidebarProject","lists","selectionState","setSelectionState","setFilterState","isPremiumModalVisible","setPremiumModalVisible","setInitDropdownIsOpen","proplist","checkboxes","outerText","control","groupList","dispatchFilters","handleClearOptions","newCategories","handleChangeTemplate","handleChangeOptions","currentOptions","currentOptionIndex","handleCreateReport","handleRemoveTag","settingParameter","marginBottom","OptionMenuCollection","isOpenMenuCollection","menuCollectionButtonPosition","menuCollectionPosition","setMenuCollectionPosition","isAssignSelectionButton","setAssignSelectionButton","optionMenuClientRect","selectionElementsOnViewer","optionMenuElement","QuickStatsCollections","isOpenQuickStats","closeQuickStats","quickStatsButtonPosition","quickStatsCollections","quickStatsPosition","setQuickStatsPosition","quickStatsCollectionsClientRect","quickStatsElement","SidebarCollections","setOpenQuickStats","setQuickStatsButtonPosition","setOpenMenuCollection","setMenuCollectionButtonPosition","activeCollection","setActiveCollection","turnOffModeCompare","addActiveFolder","openQuickStats","quickStatsButtonClientRect","viewCollection","handleChangeCheckbox","reduce","accumulator","currentEl","totalQuickInfo","handleCollection","MenuCollectionButtonClientRect","openMenuCollection","SidebarModule","isOpened","onChangeSidebar","moduleContent","setModuleContent","setActiveClass","icon","onClickCapture","DashboardProj","tabsWrapper","setSidebarIsOpened","activeTab","setActiveTab","activeLeftControl","setActiveLeftControl","activeRightControl","setActiveRightControl","tabsEl","tabsWrapperEl","scrollWidth","scrollLeft","clientWidth","handleActiveTab","setTabActive","closeDownTab","toastOptions","margin","padding","borderRadius","handleCloseTab","Dashboard","component","LoadingScreen","setLoader","afterFunction","endTime","interval","setInterval","catch","clearInterval","autoPlay","muted","loop","video","EntryWrap","bimLogo","alt","Input","isCommonStyle","SchemaConfig","Yup","test","matches","ValidationRules","initValues","filtered","shape","Form","submitValue","submitFunc","agreement","formik","useFormik","initialValues","validationSchema","validationRules","enableReinitialize","handleChanges","val","handleSubmit","erorr","errors","touched","SignUp","agree","setAgree","rel","WithUser","DeleteProfModal","ResponseModal","positive","timer","clearTimeout","doneIcon","errorIcon","Settings","picture","goBack","SvgHome","SvgQuestionCircle","SupportDropDown","toggleDropDown","setToggleDropDown","Header","setBreadcrumbsData","removeItem","handleHomeClick","PrivateRoutes","SignIn","btnImg","EntryRoutes","App","auth","render","locale"],"mappings":"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","file":"static/js/main.364b2161.chunk.js","sourcesContent":["export const LOAD_MODEL = \"LOAD_MODEL\";\r\nexport const UPDATE_FILTER = \"UPDATE_FILTER\";\r\nexport const UPDATE_STATS = \"UPDATE_STATS\";\r\nexport const COLAPSE_DASH = \"COLAPSE_DASH\";\r\n//table constans\r\nexport const UPDATE_TABLE = \"UPDATE_TABLE\";\r\nexport const RESET_TABLE = \"RESET_TABLE\";\r\nexport const RESIZE_TABLE = \"RESIZE_TABLE\";\r\n\r\n// user constans\r\nexport const DELETE_USER = \"DELETE_USER\";\r\nexport const USER_INFO = \"USER_INFO\";\r\nexport const SIGN_OUT = \"SIGN_OUT\";\r\nexport const STATUS = \"STATUS\";\r\n\r\n// viewer & filters\r\nexport const TEMPLATE = \"TEMPLATE\";\r\nexport const CATEGORY = \"CATEGORY\";\r\nexport const SECOND = \"SECOND\";\r\nexport const RESET = \"RESET\";\r\nexport const CLEAR_SETTING_VIEWER = 'CLEAR_SETTING_VIEWER'\r\n\r\n//template\r\nexport const ADD_FOLDER = \"ADD_FOLDER\";\r\nexport const ADD_TEMPLATE = \"ADD_TEMPLATE\";\r\nexport const DELETE_FOLDER = \"DELETE_FOLDER\";\r\nexport const DELETE_TEMPLATE = \"DELETE_TEMPLATE\";\r\nexport const RENAME_FOLDER = \"RENAME_FOLDER\";\r\nexport const EDIT_TEMPLATE = \"EDIT_TEMPLATE\";\r\n\r\n//collections\r\nexport const GET_FOLDERS_COLLECTIONS = \"GET_FOLDERS_COLLECTIONS\";\r\nexport const SAVE_COLLECTION = \"SAVE_COLLECTION\";\r\nexport const SAVE_COLLECTIONS = \"SAVE_COLLECTIONS\";\r\nexport const CREATE_COLLECTIONS_FOLDER = \"CREATE_COLLECTIONS_FOLDER\";\r\nexport const RENAME_COLLECTIONS_FOLDER = \"RENAME_COLLECTIONS_FOLDER\";\r\nexport const DELETE_COLLECTIONS_FOLDER = \"DELETE_COLLECTIONS_FOLDER\";\r\nexport const EDIT_COLLECTIONS = \"EDIT_COLLECTIONS\";\r\nexport const DELETE_COLLECTIONS = \"DELETE_COLLECTIONS\";\r\nexport const UNASSIGN_FROM_COLLECTIONS = \"UNASSIGN_FROM_COLLECTIONS\";\r\nexport const ADD_TO_NEW_COLLECTION = \"ADD_TO_NEW_COLLECTION\";\r\nexport const COPY_TO_COLLECTION = \"COPY_TO_COLLECTION\";\r\nexport const COPY_TO_COLLECTION_UNSAVED = \"COPY_TO_COLLECTION_UNSAVED\";\r\nexport const ADD_ACTIVE_FOLDER = \"ADD_ACTIVE_FOLDER\";\r\nexport const ASSIGN_TO_COLLECTION = \"ASSIGN_TO_COLLECTION\";\r\nexport const SET_MODE_COMPARE = \"SET_MODE_COMPARE\";\r\nexport const CHANGE_COLLECTION_CHECKBOX = \"CHANGE_COLLECTION_CHECKBOX\";\r\nexport const SET_QUICK_INFO_COMPARE = \"SET_QUICK_INFO_COMPARE\";\r\n\r\n//tabs\r\nexport const GET_COLLECTION_TABLE = \"GET_COLLECTION_TABLE\";\r\nexport const CLOSE_TAB = \"CLOSE_TAB\";\r\nexport const SET_ACTIVE_TAB = \"SET_ACTIVE_TAB\";\r\nexport const REPLACE_TAB = \"REPLACE_TAB\";\r\nexport const ADD_SELECT_ITEMS = \"ADD_SELECT_ITEMS\";\r\n","export default __webpack_public_path__ + \"static/media/less.9bdd2ab9.svg\";","export default __webpack_public_path__ + \"static/media/less-equal.c32d98bb.svg\";","export default __webpack_public_path__ + \"static/media/more-equal.9c78a17c.svg\";","export default __webpack_public_path__ + \"static/media/equal.f0c9ab87.svg\";","export default __webpack_public_path__ + \"static/media/more.127b4de2.svg\";","import { v4 } from \"uuid\";\r\nimport less from \"../static/icons/less.svg\";\r\nimport lessEqual from \"../static/icons/less-equal.svg\";\r\nimport moreEqual from \"../static/icons/more-equal.svg\";\r\nimport equal from \"../static/icons/equal.svg\";\r\nimport more from \"../static/icons/more.svg\";\r\n\r\n\r\nexport const fields = [\r\n {\r\n id: \"inputname\",\r\n type: \"text\",\r\n label: \"Name\",\r\n placeholder: \"Name\",\r\n name: \"name\",\r\n key: v4(),\r\n },\r\n {\r\n id: \"email\",\r\n type: \"email\",\r\n label: \"Email\",\r\n placeholder: \"Email\",\r\n name: \"email\",\r\n key: v4(),\r\n },\r\n {\r\n id: \"phone\",\r\n type: \"tel\",\r\n label: \"Phone\",\r\n placeholder: \"Phone\",\r\n name: \"phone\",\r\n key: v4(),\r\n },\r\n {\r\n id: \"company\",\r\n type: \"text\",\r\n label: \"Company\",\r\n placeholder: \"Company\",\r\n name: \"company\",\r\n key: v4(),\r\n },\r\n {\r\n id: \"role\",\r\n type: \"text\",\r\n label: \"Role\",\r\n placeholder: \"Role\",\r\n name: \"role\",\r\n key: v4(),\r\n },\r\n];\r\n\r\nexport const moreData = [\r\n {\r\n label: \"Equal\",\r\n value: 0,\r\n id: v4(),\r\n icon: equal,\r\n },\r\n {\r\n label: \"More\",\r\n value: 2,\r\n id: v4(),\r\n icon: more,\r\n },\r\n {\r\n label: \"Less\",\r\n value: 3,\r\n id: v4(),\r\n icon: less,\r\n },\r\n {\r\n label: \"More or equal\",\r\n value: 4,\r\n id: v4(),\r\n icon: moreEqual,\r\n },\r\n {\r\n label: \"Less or equal\",\r\n value: 5,\r\n id: v4(),\r\n icon: lessEqual,\r\n },\r\n];\r\n\r\nexport const colors = [\r\n {\r\n name: \"Blue\",\r\n hex: \"#4F80FF\"\r\n },\r\n {\r\n name: \"Red\",\r\n hex: \"#FF3C3C\"\r\n },\r\n {\r\n name: \"Green\",\r\n hex: \"#3EE93E\"\r\n },\r\n {\r\n name: \"Magenta\",\r\n hex: \"#FF4FFF\"\r\n },\r\n {\r\n name: \"Cyan\",\r\n hex: \"#4FFFFF\"\r\n },\r\n {\r\n name: \"Orange\",\r\n hex: \"#FF6600\"\r\n },\r\n {\r\n name: \"Pink\",\r\n hex: \"#FF99CC\"\r\n },\r\n {\r\n name: \"Brown\",\r\n hex: \"#993300\"\r\n },\r\n {\r\n name: \"Lavender\",\r\n hex: \"#9999FF\"\r\n },\r\n {\r\n name: \"Yellow\",\r\n hex: \"#FFFF4F\"\r\n }];\r\n\r\nexport const tabType = {\r\n unsaved: \"unsaved\",\r\n saved: \"saved\",\r\n report: \"report\"\r\n}\r\n\r\nexport const subscriptionType = {\r\n blocked: -1,\r\n trial: 0,\r\n basic: 1,\r\n premium: 2,\r\n}","import {\r\n UPDATE_TABLE,\r\n RESET_TABLE,\r\n LOAD_MODEL,\r\n RESIZE_TABLE,\r\n COLAPSE_DASH,\r\n GET_COLLECTION_TABLE,\r\n CLOSE_TAB,\r\n SET_ACTIVE_TAB,\r\n UNASSIGN_FROM_COLLECTIONS,\r\n ADD_TO_NEW_COLLECTION,\r\n COPY_TO_COLLECTION, COPY_TO_COLLECTION_UNSAVED,\r\n ASSIGN_TO_COLLECTION, REPLACE_TAB, ADD_SELECT_ITEMS\r\n} from \"../constans\";\r\nimport {tabType} from \"../../utils/data\";\r\n\r\nconst initState = {\r\n tabs: [],\r\n offSetSize: 250,\r\n colapsedDash: \"opened\",\r\n};\r\nconst tableReducer = (state = initState, { type, payload }) => {\r\n switch (type) {\r\n case UPDATE_TABLE:\r\n\r\n const inactiveTabs = state.tabs.filter((tab) => tab.type !== tabType.report).map((tab) => { return {...tab, active: false} });\r\n\r\n return {\r\n ...state,\r\n tabs: [{...payload, id: 1, type: tabType.report, name: \"Report\", active: true, collection: {groupBy: payload.groups, properties: payload.properties} }, ...inactiveTabs],\r\n };\r\n case RESET_TABLE:\r\n\r\n return {\r\n ...initState,\r\n offSetSize: state.offSetSize,\r\n colapsedDash: state.colapsedDash,\r\n };\r\n case RESIZE_TABLE:\r\n\r\n return {\r\n ...state,\r\n offSetSize: payload,\r\n };\r\n case COLAPSE_DASH:\r\n return {\r\n ...state,\r\n colapsedDash: payload,\r\n };\r\n case LOAD_MODEL:\r\n\r\n return {\r\n ...initState,\r\n offSetSize: state.offSetSize,\r\n colapsedDash: state.colapsedDash,\r\n };\r\n case GET_COLLECTION_TABLE:\r\n\r\n const duplicateTab = state.tabs.filter((tab) => tab.id === payload.collection.creationTime);\r\n\r\n const tabsWithoutActive = state.tabs.map((tab) => {\r\n if(tab.id !== payload.collection.creationTime) {\r\n return {...tab, active: false};\r\n } else {\r\n return {...tab, active: true};\r\n }\r\n });\r\n\r\n return {\r\n ...initState,\r\n tabs: duplicateTab.length ? tabsWithoutActive : [...tabsWithoutActive, {id: payload.collection.creationTime, type: tabType.saved, active: true, name: payload.collection.title, color: payload.collection.color, collection: payload.collection, folder: payload.folder, ...payload.tableCollection}],\r\n offSetSize: state.offSetSize,\r\n colapsedDash: state.colapsedDash,\r\n };\r\n\r\n case CLOSE_TAB:\r\n\r\n const openTabs = state.tabs.filter((tab) => payload.id !== tab.id);\r\n\r\n if(payload.active && openTabs.length) {\r\n const lastTab = openTabs.pop();\r\n openTabs.push({...lastTab, active: true});\r\n }\r\n\r\n return {\r\n ...initState,\r\n tabs: [...openTabs],\r\n };\r\n case SET_ACTIVE_TAB:\r\n\r\n const newActiveTabs = state.tabs.map((tab) => {\r\n\r\n tab.selectItems = null;\r\n\r\n if(payload.id === tab.id) {\r\n return {...tab, active: true};\r\n } else {\r\n return {...tab, active: false};\r\n }\r\n });\r\n\r\n return {\r\n ...initState,\r\n tabs: newActiveTabs,\r\n };\r\n case UNASSIGN_FROM_COLLECTIONS:\r\n\r\n const newUnassignArray = state.tabs.map((tab) => {\r\n if(payload.id === tab.id) {\r\n return {...tab, ...payload};\r\n } else {\r\n return tab;\r\n }\r\n });\r\n\r\n return {\r\n ...initState,\r\n tabs: newUnassignArray,\r\n };\r\n case ADD_TO_NEW_COLLECTION:\r\n\r\n let amountUnsavedTabs = 1;\r\n\r\n state.tabs.forEach((tab) => {\r\n if(tab.type === tabType.unsaved) {\r\n amountUnsavedTabs +=1;\r\n }\r\n })\r\n\r\n const newName = \"New selection set \" + amountUnsavedTabs;\r\n\r\n return {\r\n ...initState,\r\n tabs: [...state.tabs, {id: Date.now(), type: tabType.unsaved, active: false, name: newName, collection: payload.collection, ...payload.tableCollection}]\r\n };\r\n case COPY_TO_COLLECTION:\r\n\r\n const newCopyToArray = state.tabs.map((tab) => {\r\n if(tab.id === payload.id) {\r\n return {...tab, ...payload.tableCollection};\r\n } else {\r\n return tab;\r\n }\r\n });\r\n\r\n return {\r\n ...initState,\r\n tabs: newCopyToArray,\r\n };\r\n case ASSIGN_TO_COLLECTION:\r\n\r\n const newAssignToArray = state.tabs.map((tab) => {\r\n if(tab.id === payload.id) {\r\n return {...tab, ...payload.tableCollection};\r\n } else {\r\n return tab;\r\n }\r\n });\r\n\r\n return {\r\n ...initState,\r\n tabs: newAssignToArray,\r\n };\r\n case COPY_TO_COLLECTION_UNSAVED:\r\n\r\n const newCopyToArrayUnsaved = state.tabs.map((tab) => {\r\n if(tab.id === payload.id) {\r\n return {...tab, ...payload.tableCollection};\r\n } else {\r\n return tab;\r\n }\r\n });\r\n\r\n return {\r\n ...initState,\r\n tabs: newCopyToArrayUnsaved,\r\n };\r\n case REPLACE_TAB:\r\n\r\n const replaceTabArray = state.tabs.map((tab) => {\r\n if(tab.id === payload.id) {\r\n return {...tab, ...payload, name: payload.collectionName, color: payload.color, type: \"saved\", id: payload.collection.creationTime};\r\n } else {\r\n return tab;\r\n }\r\n });\r\n\r\n return {\r\n ...initState,\r\n tabs: replaceTabArray,\r\n };\r\n case ADD_SELECT_ITEMS:\r\n\r\n const addSelectItems = state.tabs.map((tab) => {\r\n if(tab.id === payload.id) {\r\n return {...tab, selectItems: payload.selectItems};\r\n } else {\r\n return tab;\r\n }\r\n });\r\n\r\n return {\r\n ...initState,\r\n tabs: addSelectItems,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default tableReducer;\r\n","export class Template {\r\n constructor(title, description, categories, categoryIds, properties, groupBy, searchValue) {\r\n this.userCreated = true;\r\n this.title = title; // string\r\n this.descreption = description; // string\r\n this.categories = categories; // [] of strings\r\n this.categoryIds = categoryIds; // [] of ints\r\n this.properties = properties; // [] of strings\r\n this.groupBy = groupBy; // [] of strings\r\n this.searchValue = searchValue; // string\r\n this.creationTime = Date.now();\r\n }\r\n}\r\n\r\nexport class Collection {\r\n constructor(properties, groupedBy) {\r\n this.title = \"\";\r\n this.descreption = \"\";\r\n this.creationTime = Date.now();\r\n this.properties = properties;\r\n this.groupBy = groupedBy;\r\n this.elements = [];\r\n this.color = \"\"; // 6 digits color string - rrggbb\r\n }\r\n}\r\n\r\n\r\nexport class BimsearchElement {\r\n constructor(elementModelId) {\r\n this.id = elementModelId;\r\n this.propertiesValues = new Object();\r\n }\r\n}\r\n\r\nexport class ElementModelId {\r\n constructor(linkId, revitId) {\r\n this.linkId = linkId;\r\n this.revitId = revitId;\r\n }\r\n}\r\n\r\nexport function modelIdToKey(elementModelId) {\r\n return elementModelId.linkId + \",\" + elementModelId.revitId;\r\n}\r\n","// class used to read all elements properties from a specific view\r\n\r\nimport { ElementModelId, modelIdToKey } from \"./TemplatesAndCollections\";\r\n\r\nexport class PropertiesManager {\r\n constructor() {\r\n this.properties = new Object();\r\n this.modelsMap = new Object(); // hold the source model for each object\r\n this.viewerIdToModelId = new Object();\r\n this.modelIdToViewerId = new Object();\r\n\r\n }\r\n\r\n // viewer - forge viewer\r\n // ids - list of ids from the viewer open model to load properties from\r\n async loadElements(viewer, ids) {\r\n var loadedModelName = viewer.model\r\n .getData()\r\n .loadOptions.bubbleNode.getRootNode()\r\n .children[0].name();\r\n var externalIdMapping = await getExternalIdMappingAsync(viewer.model);\r\n\r\n var links = new Object();\r\n\r\n var propsArr = await getAllPropertiesAsync(ids, viewer);\r\n\r\n for (var i = 0; i < ids.length; i++) {\r\n var props = propsArr[i];\r\n if (props == null) continue;\r\n this.properties[ids[i]] = props;\r\n\r\n var revitId = RevitIdFromProperties(props);\r\n\r\n var linkId = 0;\r\n var externalIds = props.externalId.split(\"/\");\r\n var modelName = loadedModelName;\r\n\r\n if (revitId != null && externalIds.length > 1) {\r\n var linkInstanceId = externalIds[0];\r\n\r\n var dbId = externalIdMapping[linkInstanceId];\r\n\r\n if (links[dbId] == null)\r\n links[dbId] = await getPropertiesAsync(dbId, viewer);\r\n var linkNameProp = links[dbId].properties.find(\r\n (prop) =>\r\n prop.displayName == \"Type Name\"\r\n );\r\n if (linkNameProp && linkNameProp.displayValue != null)\r\n modelName = linkNameProp.displayValue;\r\n else modelName = \"Unknown\";\r\n\r\n linkId = RevitIdFromProperties(links[dbId]);\r\n if (linkId == null)\r\n linkId = 0;\r\n }\r\n\r\n if (revitId == null)\r\n revitId = ids[i];\r\n\r\n var newId = new ElementModelId(linkId, revitId);\r\n this.viewerIdToModelId[ids[i]] = newId;\r\n this.modelIdToViewerId[modelIdToKey(newId)] = ids[i];\r\n\r\n this.modelsMap[ids[i]] = modelName;\r\n }\r\n }\r\n\r\n GetProperties(id) {\r\n return this.properties[id];\r\n }\r\n\r\n GetModel(id) {\r\n return this.modelsMap[id];\r\n }\r\n}\r\n\r\nconst IdsGetSize = 1000;\r\n\r\nasync function getAllPropertiesAsync(dbIds, viewer) {\r\n var resArr = [];\r\n for (var i = 0; i < dbIds.length; i += IdsGetSize) {\r\n var piece = dbIds.slice(i, i + IdsGetSize);\r\n var resPiece = await getBulkPropertiesAsync(piece, viewer);\r\n resArr.push(resPiece);\r\n }\r\n var res = resArr.flat();\r\n return res;\r\n}\r\n\r\n\r\nasync function getBulkPropertiesAsync(dbIds, viewer) {\r\n return new Promise((resolve, reject) => {\r\n viewer.model.getBulkProperties(\r\n dbIds,\r\n null,\r\n result => resolve(result),\r\n error => reject(error)\r\n );\r\n });\r\n}\r\n\r\n// get properties of a model element from his viewer ID\r\nasync function getPropertiesAsync(dbId, viewer) {\r\n return new Promise((resolve, reject) => {\r\n viewer.getProperties(\r\n dbId,\r\n (result) => resolve(result),\r\n (error) => reject(error)\r\n );\r\n });\r\n}\r\n\r\n// Get id mappings for linked elements in model\r\nasync function getExternalIdMappingAsync(model) {\r\n return new Promise((resolve, reject) => {\r\n model.getExternalIdMapping(\r\n (map) => resolve(map),\r\n (error) => reject(error)\r\n );\r\n });\r\n}\r\n\r\n\r\nfunction RevitIdFromProperties(props) {\r\n var res = props.name.split(\"[\");\r\n if (res.length < 2)\r\n return null;\r\n var stringResult = res[1].split(\"]\")[0];\r\n if (stringResult.toLowerCase().includes(\"e\")) \r\n return null;\r\n var result = +stringResult;\r\n return Number.isInteger(result) ? result : null;\r\n}\r\n\r\n","// Those objects class are used as responsed from the BIMSearch engine\r\nexport class DataForMenus {\r\n constructor() {\r\n this.quickCounterData = null; // [] of QuickDataField, elements order: count, length, area, volume\r\n\r\n // menu lists\r\n this.templates = null; // [] of strings\r\n this.templatesCount = null; //[] of numbers number of elements for each template\r\n this.templatesFolder = null; // Dictionary\r\n this.categories = null; // [] of strings\r\n this.filterByOptions = null; // [] of strings\r\n this.filterValues = null; // [] of string or numbers\r\n this.properties = null; // [] of strings\r\n this.groupingOptions = null; // [] of strings\r\n this.commonCategories = null; // [] of strings\r\n this.uncommonCategories = null; // [] of strings\r\n this.commonProperties = null; // [] of strings\r\n this.uncommonProperties = null; // [] of strings\r\n this.commonGroupingOptions = null; // [] of strings\r\n this.uncommonGroupingOptions = null; // [] of strings\r\n\r\n // MenusSelection \r\n this.selection = null;\r\n }\r\n}\r\n\r\nexport class QuickDataField {\r\n constructor(name, value = 0, unit = null) {\r\n this.name = name;\r\n this.value = value;\r\n this.unit = unit;\r\n }\r\n}\r\n\r\nexport class MenusSelection {\r\n constructor(\r\n selectedCategories,\r\n selectedSecondFilter,\r\n selectedFilterValues,\r\n selectedProperties,\r\n selectedGroups,\r\n searchValue\r\n ) {\r\n this.categories = selectedCategories; // string\r\n this.secondFilter = selectedSecondFilter; // string\r\n this.filterValues = selectedFilterValues; // [] of strings\r\n this.properties = selectedProperties; // [] of strings\r\n this.groups = selectedGroups; // [] of strings\r\n this.searchValue = searchValue\r\n }\r\n}\r\n\r\n// n - number of colums in the table, not including check box\r\n// m - number of lines in the table, not including header and total line\r\nexport class DataForTable {\r\n constructor() {\r\n this.header = []; // size n [] of strings\r\n this.units = []; // size n [] of strings representing units for each column, null if no units or mixed units\r\n this.lines = []; // size m [] of size n [] of values (string or numbers)\r\n this.totals = []; // size n [] of values (string or numbers)\r\n this.lineElements = []; // size m [] of [] of ids\r\n }\r\n}\r\n\r\nexport class QuickInfo {\r\n constructor(creationTime, quickData, parameters, description) {\r\n this.creationTime = creationTime; // Timestamp // negative value --> don't display\r\n this.quickData = quickData; // [] of QuickDataField\r\n this.parameters = parameters; // [] of string\r\n this.descreption = description; // string\r\n }\r\n}\r\n\r\nexport class Template {\r\n constructor(title, description, categories, categoryIds, properties, groupBy, searchValue) {\r\n this.userCreated = true;\r\n this.title = title; // string\r\n this.descreption = description; // string\r\n this.categories = categories; // [] of strings\r\n this.categoryIds = categoryIds; // [] of ints\r\n this.properties = properties; // [] of strings\r\n this.groupBy = groupBy; // [] of strings\r\n this.searchValue = searchValue; // string\r\n this.creationTime = Date.now();\r\n }\r\n}\r\n\r\n\r\n// Exported enum\r\nexport const operatorValues = {\r\n equal: 0,\r\n notEqual: 1,\r\n greater: 2,\r\n less: 3,\r\n greaterOrEqual: 4,\r\n lessOrEqual: 5,\r\n};\r\n\r\n\r\n","\r\nexport async function postToServer(url, data) {\r\n var res;\r\n\r\n const options = {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(data),\r\n };\r\n res = await fetch(url, options);\r\n return res;\r\n}\r\n\r\nexport async function getFromServer(url) {\r\n var res;\r\n\r\n await fetch(url)\r\n .then((response) => {\r\n return response.json();\r\n })\r\n .then((data) => {\r\n res = data;\r\n });\r\n\r\n return res;\r\n};\r\n","// Exported methods to browse the models tree\r\nimport { currentUser } from \"./IUsers\";\r\nimport { getFromServer, postToServer } from \"./CommonFunctions\";\r\n\r\n\r\n// get next level of project tree\r\n// pass the id of an element to get his children\r\n// # or * for first level\r\n// return an array of jsTreeNode\r\n/*\r\njsTreeNode\r\n{\r\n id - elementId - string\r\n text - element name - string\r\n type - element type - string\r\n children - has children - bool\r\n size - file size in bytes - number\r\n lastUpdate - date of last update - string\r\n updateBy - user that did the last update = string\r\n pictureUrl - item image url - string //still not done\r\n lastVersion - for items show the latest version - string\r\n idToOpen - for item, ID of the latest version - string\r\n isFavorite - is the item is currently in favorites - bool\r\n lastOpened - timestamp of last time the model was opened (for recent only), 0 if no value - double\r\n idForCollections - id of the model (for both item and version) used for collections item in our DB\r\n}\r\n*/\r\nexport async function getNextLevel(id) {\r\n if (id == \"#\") id = \"*\";\r\n var url = `/api/forge/datamanagement/nextlevel?id=${id}`;\r\n var res = await getFromServer(url);\r\n return res;\r\n}\r\n\r\n// get user recent list\r\n// return an array of jsTreeNode\r\nexport async function getRecent() {\r\n return [];\r\n var url = \"/api/forge/userdata/recent\";\r\n var res = await getFromServer(url);\r\n return res;\r\n}\r\n\r\n// Add itemNode to recent\r\n// itemNode is jsTreeNode\r\nexport async function addToRecent(itemNode) {\r\n return;\r\n var url = \"/api/forge/userdata/recent\";\r\n postToServer(url, itemNode);\r\n}\r\n\r\n// get user favorites list\r\n// return an array of jsTreeNode\r\nexport async function getFavorites() {\r\n return [];\r\n var url = \"/api/forge/userdata/favorites\";\r\n return await getFromServer(url);\r\n}\r\n\r\n\r\n// Add itemNode to favorites\r\n// itemNode is jsTreeNode\r\nexport async function addToFavorites(itemNode) {\r\n return;\r\n var url = \"/api/forge/userdata/favorites\";\r\n postToServer(url, itemNode);\r\n}\r\n\r\n\r\n// remove itemNode from favorites\r\n// itemNode is jsTreeNode\r\nexport async function removeFromFavorites(itemNode) {\r\n return;\r\n var url = \"/api/forge/userdata/rfavorites\";\r\n postToServer(url, itemNode);\r\n}\r\n\r\n// Send integration request for HUB admin\r\nexport async function sendIntegrationMail(address) {\r\n var url = \"/api/forge/user/mail\";\r\n var data = [];\r\n\r\n data.push(address);\r\n data.push(currentUser.userName);\r\n\r\n postToServer(url, data);\r\n}\r\n\r\n// Send support request mail\r\n// recieves user email\r\n// true/false if user can't find his company\r\n// message string\r\nexport async function sendSupportMail(email, cantFind, message) {\r\n var url = \"/api/forge/user/supportMail\";\r\n var data = [];\r\n\r\n data.push(email);\r\n data.push(currentUser.userName);\r\n data.push(cantFind);\r\n data.push(message);\r\n\r\n postToServer(url, data);\r\n}\r\n","//exported methods for users login, logout and settings\r\n\r\nimport { stressTest } from \"./StressTest\";\r\nimport { logError } from \"./IAmecLog\";\r\nimport { getFromServer, postToServer } from \"./CommonFunctions\";\r\n\r\n// check if the user is logged in\r\nexport async function loggedIn() {\r\n return true;\r\n\r\n var res = false;\r\n\r\n await fetch(\"/api/forge/oauth/token\").then((response) => {\r\n res = response.ok;\r\n });\r\n\r\n if (res)\r\n callGoogleTag(\"user-signed-in\");\r\n\r\n return res;\r\n}\r\n\r\n// method to be called when the user press the login button\r\nexport async function loginButton() {\r\n return;\r\n fetch(\"/api/forge/oauth/url\")\r\n .then((response) => {\r\n return response.text();\r\n })\r\n .then((data) => {\r\n window.location.href = data;\r\n });\r\n}\r\n\r\n// logout method, recieves an hiddren frame for the purpose of autodesk logout implementation\r\n// will recall the site\r\nexport async function logout(hiddenFrame) {\r\n window.location.href = \"https://bimsearch.azurewebsites.net/\";\r\n return;\r\n\r\n hiddenFrame.onload = function (event) {\r\n window.location.href = \"/api/forge/oauth/signout\";\r\n };\r\n\r\n hiddenFrame.src = \"https://accounts.autodesk.com/Authentication/LogOut\";\r\n\r\n // learn more about this signout iframe at\r\n // https://forge.autodesk.com/blog/log-out-forge\r\n}\r\n\r\n//assume user is logged in\r\n/*\r\n *return object data for getUserData:\r\n * newUser - bool, true if this is the user first login and we need to go to create account field\r\n * emailId - the email the user used to login to autodesk, don't think you need it right now\r\n * picture - url\r\n * the next properties will be null if the user is new\r\n * name\r\n * email\r\n * phone\r\n * company\r\n * role\r\n * subscreption: 0-free, 2-Premium\r\n */\r\nexport async function getUserData() {\r\n var res = {};\r\n res.newUser = false;\r\n res.emailId = \"fake@user.com\";\r\n res.picute = \"https://images.profile.autodesk.com/default/user_X40.png\"\r\n res.name = \"Access your projects\";\r\n res.email = \"anonymous@anonymous.com\";\r\n res.phone = \"0\";\r\n res.company = \"BIMSearch\";\r\n res.role = \"Trial\";\r\n res.subscreption = 2;\r\n\r\n\r\n //var res = await getFromServer(\"/api/forge/user/profile\");\r\n \r\n currentUser.userId = res.emailId;\r\n currentUser.userName = res.name;\r\n\r\n return res;\r\n}\r\n\r\n//assume user is logged in\r\nexport async function deleteUserData() {\r\n return;\r\n await fetch(\"/api/forge/user/delete\");\r\n}\r\n\r\n//assume user is logged in\r\nexport async function setUserData(name, email, phone, company, role) {\r\n return;\r\n // setting user with name = StressTest#[users]#[iterations] start a stress test on BIMSearch\r\n if (name.startsWith(\"StressTest#\")) {\r\n stressTest(name)\r\n return;\r\n }\r\n\r\n var url = \"/api/forge/user/data\";\r\n var data = [];\r\n\r\n callGoogleTag(\"account-created\");\r\n\r\n currentUser.userName = name;\r\n\r\n data.push(name);\r\n data.push(email);\r\n data.push(phone);\r\n data.push(company);\r\n data.push(role);\r\n\r\n postToServer(url, data);\r\n}\r\n\r\n// Current logged in user\r\n// .userID - user autodesk email id\r\n// .userName - user name\r\nexport var currentUser = new Object();\r\n\r\nfunction callGoogleTag(stage) {\r\n window.dataLayer.push({ 'event': stage });\r\n}","// Exported methods to log BIMSearch application events in our log\r\n\r\nimport { currentUser } from \"./IUsers\";\r\nimport { postToServer } from \"./CommonFunctions\";\r\n\r\n// log error method\r\n// errorLocation - code location of error\r\n// error - error string | use js excetion object toString() for unknown excetion\r\nexport async function logError(errorLocation, error) {\r\n var data = [errorLocation, error];\r\n var url = `/api/log/error`;\r\n\r\n logEvent(url, data);\r\n}\r\n\r\nexport async function logCreateSchedule(bimSearch, properties, groups) {\r\n var url = `/api/log/createschedule`;\r\n var data = [];\r\n data.push([\"Model Name\", bimSearch.modelName]);\r\n data.push([\"User\", getUserId()]);\r\n if (bimSearch.selectedCategories != null)\r\n data.push([\"Categories\", bimSearch.selectedCategories.join()]);\r\n data.push([\"Second Filter\", bimSearch.selectedFilter]);\r\n data.push([\"Properties\", properties.join()]);\r\n data.push([\"Grouped By\", groups.join()]);\r\n\r\n logEvent(url, data);\r\n}\r\n\r\nexport async function logSelectCategory(bimSearch) {\r\n var url = `/api/log/categoryselected`;\r\n var data = [];\r\n\r\n data.push([\"Model Name\", bimSearch.modelName]);\r\n data.push([\"User\", getUserId()]);\r\n\r\n if (bimSearch.selectedCategories != null)\r\n data.push([\"Categories\", bimSearch.selectedCategories.join()]);\r\n\r\n logEvent(url, data);\r\n}\r\n\r\nexport async function logDownloadSchedule() {\r\n var url = `/api/log/scheduledownloaded`;\r\n var data = [];\r\n data.push([\"User\", getUserId()]);\r\n\r\n logEvent(url, data);\r\n}\r\n\r\nexport async function logIButton() {\r\n var url = `/api/log/iButton`;\r\n var data = [];\r\n data.push([\"User\", getUserId()]);\r\n\r\n logEvent(url, data);\r\n}\r\n\r\nexport async function logTemplate(template) {\r\n var url = `/api/log/template`;\r\n var data = [];\r\n data.push([\"User\", getUserId()]);\r\n data.push([\"Template\", template]);\r\n\r\n logEvent(url, data);\r\n}\r\n\r\nexport async function logTableLineSelected() {\r\n var url = `/api/log/tableline`;\r\n var data = [];\r\n data.push([\"User\", getUserId()]);\r\n\r\n logEvent(url, data);\r\n}\r\n\r\nexport async function logDoubleClick(category, type) {\r\n var url = `/api/log/doubleclick`;\r\n var data = [];\r\n data.push([\"Category\", category]);\r\n data.push([\"Type\", type]);\r\n data.push([\"User\", getUserId()]);\r\n\r\n logEvent(url, data);\r\n}\r\n\r\nexport async function logClusterButton(onOff) {\r\n var url = `/api/log/clusterbutton`;\r\n var data = [];\r\n \r\n data.push([\"User\", getUserId()]);\r\n data.push([\"OnOff\", onOff]);\r\n\r\n logEvent(url, data);\r\n}\r\n\r\nexport async function logRightClick(selectedItems) {\r\n var url = `/api/log/rightclick`;\r\n var data = [];\r\n data.push([\"User\", getUserId()]);\r\n data.push([\"SelectedItems\", selectedItems]);\r\n\r\n logEvent(url, data);\r\n}\r\n\r\nasync function logEvent(url, data) {\r\n postToServer(url, data);\r\n}\r\n\r\nfunction getUserId() {\r\n var userId = \"NA\";\r\n if (currentUser != null && currentUser.userId != null)\r\n userId = currentUser.userId;\r\n else\r\n logError(\"FrontEnd.src.utils.builder.IAmecLog.logClusterButton\", \"Can't get user ID\");\r\n\r\n return userId;\r\n}\r\n","// Class that represent the BIMSearch engine\r\n// Connected to a specific BIM360 view\r\n// Allow running filters and creating schedules on elements in the view\r\n\r\nimport { PropertiesManager } from \"./PropertiesManager.js\";\r\nimport { DataForMenus, QuickDataField, operatorValues, MenusSelection, DataForTable, QuickInfo } from \"./ResultClasses\";\r\nimport { Template, BimsearchElement, modelIdToKey } from \"./TemplatesAndCollections\";\r\nimport { logError } from \"./IAmecLog\";\r\nimport { getFromServer, postToServer } from \"./CommonFunctions.js\";\r\n\r\n// Main class for BIMSearch filter and data search\r\nexport class BimSearch {\r\n // public:\r\n constructor() {\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.selectedCategoryIds = [];\r\n this.selectedCategories = [];\r\n this.categoryIdNameDictionary = {};\r\n this.sharedPropertiesDictionary = {};\r\n this.allElements = [];\r\n this.propertiesManager = new PropertiesManager();\r\n this.modelName = \"\";\r\n this.selectedFilter = \"Not selected\";\r\n this.categoryElements = null;\r\n this.filteredElements = null;\r\n this.commonCategories = [...CommonCategories];\r\n this.commonProperties = [...CommonProperties];\r\n this.commonGroupingOptions = [...CommonGroupingOptions];\r\n this.nonSummableProperties = null;\r\n this.userTemplates = null; // Dictionary string --> [] of BimsearchTemplate\r\n }\r\n\r\n async loadModel(viewer, objectsTree, modelName) {\r\n this.init();\r\n this.modelName = modelName;\r\n\r\n objectsTree.enumNodeChildren(\r\n objectsTree.getRootId(),\r\n (nodeId) => {\r\n this.allElements.push(nodeId);\r\n },\r\n true\r\n );\r\n\r\n await this.propertiesManager.loadElements(viewer, this.allElements);\r\n\r\n this.updatePropertiesTranslations();\r\n\r\n var categories = [];\r\n var categoryIds = [];\r\n var templatesCount = [];\r\n var templates = [];\r\n var templatesFolder = new Object();\r\n this.userTemplates = await getUserTemplates();\r\n \r\n Object.keys(this.userTemplates).forEach(key => {\r\n this.userTemplates[key].sort((a, b) => a.title < b.title ? -1 : 1);\r\n templatesFolder[key] = [];\r\n this.userTemplates[key].forEach(temp => {\r\n templatesFolder[key].push(temp.title);\r\n templates.push(temp.title);\r\n templatesCount.push(0);\r\n });\r\n });\r\n \r\n for (var i = 0; i < this.allElements.length; i++) {\r\n var props = this.propertiesManager.GetProperties(this.allElements[i]);\r\n if (props == null) continue;\r\n\r\n var category = this.findByDisplayName(props, CategoryParameterName);\r\n\r\n var categoryId = this.findByDisplayName(props, \"CategoryId\");\r\n\r\n if (category) {\r\n var categoryName = category.displayValue;\r\n if (categoryName.startsWith(categoryPre))\r\n categoryName = categoryName.slice(categoryPre.length);\r\n if (!categories.includes(categoryName)) {\r\n categories.push(categoryName);\r\n\r\n if (categoryId != undefined) {\r\n if (!(categoryId.displayValue in this.categoryIdNameDictionary)) {\r\n this.categoryIdNameDictionary[categoryId.displayValue] = categoryName;\r\n categoryIds.push(categoryId);\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n this.updateCategoriesTranslations();\r\n\r\n var res;\r\n\r\n if (categories.length == 0) {\r\n res = await this.selectCategory(null, null);\r\n } else {\r\n categories.sort();\r\n res = new DataForMenus();\r\n\r\n }\r\n\r\n res.templates = templates;\r\n res.templatesCount = templatesCount;\r\n res.templatesFolder = templatesFolder;\r\n\r\n res.categories = categories;\r\n this.splitCommon(res);\r\n\r\n return res;\r\n }\r\n\r\n async selectCategory(categories, categoryIds) {\r\n if (categoryIds == null) {\r\n categoryIds = [];\r\n }\r\n\r\n this.selectedCategories = categories;\r\n this.selectedCategoryIds = categoryIds;\r\n\r\n this.selectedFilter = \"Not selected\";\r\n\r\n var res = new DataForMenus();\r\n\r\n this.categoryElements = await this.findElementsByCategories(categories, categoryIds);\r\n \r\n var sharedProperties = this.getSharedPropertiesByDisplayName(this.categoryElements);\r\n\r\n this.filteredElements = this.categoryElements;\r\n\r\n var counterData = this.getCounterData(this.categoryElements);\r\n\r\n res.quickCounterData = counterData;\r\n res.filterByOptions = sharedProperties;\r\n res.properties = sharedProperties;\r\n res.groupingOptions = sharedProperties;\r\n res.filterValues = [];\r\n\r\n this.splitCommon(res);\r\n\r\n return res;\r\n }\r\n\r\n async findElementsByCategories(categories, categoryIds) {\r\n var res = [];\r\n \r\n if (categories == null) {\r\n res = this.allElements;\r\n } else if (categories.length > 0) {\r\n for (var i = 0; i < this.allElements.length; i++) {\r\n var props = this.propertiesManager.GetProperties(this.allElements[i]);\r\n\r\n var categoryPropIds = this.findByDisplayName(props, \"CategoryId\");\r\n var categoryPropNames = this.findByDisplayName(props, CategoryParameterName); \r\n\r\n var elementDetected = false;\r\n\r\n if (categoryPropIds != null && categoryIds.length > 0) {\r\n if (categoryIds.includes(categoryPropIds.displayValue)) {\r\n res.push(this.allElements[i]);\r\n elementDetected = true;\r\n }\r\n }\r\n else if (!elementDetected && categoryPropNames != null && categories.length > 0) {\r\n if (categories.includes(categoryPropNames.displayValue.replace(categoryPre, ''))) {\r\n res.push(this.allElements[i]);\r\n elementDetected = true;\r\n }\r\n }\r\n else if (!elementDetected && categoryPropIds != null && categories.length > 0) {\r\n if (res.includes(this.categoryIdNameDictionary[categoryPropIds.displayValue])) {\r\n res.push(this.allElements[i]);\r\n elementDetected = true;\r\n }\r\n }\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n async changeFilterBy(filter) {\r\n this.selectedFilter = filter;\r\n var filterValues = [];\r\n var allNumbers = true;\r\n\r\n for (var i = 0; i < this.categoryElements.length; i++) {\r\n var props = this.propertiesManager.GetProperties(this.categoryElements[i]);\r\n var prop = this.findByDisplayName(props, filter);\r\n\r\n if (prop) {\r\n var value = prop.displayValue;\r\n if (!filterValues.includes(value)) {\r\n if (typeof value != \"number\")\r\n allNumbers = false;\r\n filterValues.push(value);\r\n }\r\n }\r\n }\r\n\r\n if (allNumbers)\r\n filterValues.sort(function (a, b) {\r\n return a - b;\r\n });\r\n else filterValues.sort();\r\n\r\n filterValues.unshift(\"All\");\r\n\r\n var res = new DataForMenus();\r\n res.filterValues = filterValues;\r\n return res;\r\n }\r\n\r\n async selectSecondFilterValues(values) {\r\n if (values.includes(\"All\")) {\r\n this.filteredElements = this.categoryElements;\r\n } else {\r\n this.filteredElements = [];\r\n\r\n for (var i = 0; i < this.categoryElements.length; i++) {\r\n var props = this.propertiesManager.GetProperties(this.categoryElements[i]);\r\n var elementValue = this.findByDisplayName(props, this.selectedFilter);\r\n\r\n var passFilter =\r\n elementValue && values.includes(elementValue.displayValue.toString());\r\n\r\n if (passFilter) this.filteredElements.push(this.categoryElements[i]);\r\n }\r\n }\r\n\r\n return this.getMenusDataAfterSecondFilter();\r\n }\r\n\r\n async selectSecondFilterValueWithOperator(operator, value) {\r\n this.filteredElements = [];\r\n\r\n for (var i = 0; i < this.categoryElements.length; i++) {\r\n var props = this.propertiesManager.GetProperties(this.categoryElements[i]);\r\n var elementprop = this.findByDisplayName(props, this.selectedFilter);\r\n\r\n if (elementprop && elementprop.displayValue != null) {\r\n var elementValue = elementprop.displayValue;\r\n var passFilter = false;\r\n\r\n switch (operator) {\r\n case operatorValues.equal:\r\n passFilter = elementValue == value;\r\n break;\r\n case operatorValues.notEqual:\r\n passFilter = elementValue != value;\r\n break;\r\n case operatorValues.greater:\r\n passFilter = elementValue > value;\r\n break;\r\n case operatorValues.less:\r\n passFilter = elementValue < value;\r\n break;\r\n case operatorValues.greaterOrEqual:\r\n passFilter = elementValue >= value;\r\n break;\r\n case operatorValues.lessOrEqual:\r\n passFilter = elementValue <= value;\r\n break;\r\n default:\r\n passFilter = false;\r\n }\r\n\r\n if (passFilter) this.filteredElements.push(this.categoryElements[i]);\r\n }\r\n }\r\n\r\n return this.getMenusDataAfterSecondFilter();\r\n }\r\n\r\n async selectTemplate(templateName, templateFolder = \"Default\") {\r\n \r\n var selectedTemplate;\r\n\r\n for (var i = 0; i < this.userTemplates[templateFolder].length; i++) {\r\n if (this.userTemplates[templateFolder][i].title == templateName) {\r\n selectedTemplate = this.userTemplates[templateFolder][i];\r\n break;\r\n }\r\n }\r\n\r\n var res = await this.selectCategory(selectedTemplate.categories, selectedTemplate.categoryIds);\r\n\r\n //var temp = await this.changeFilterBy(selectedTemplate.secondFilter);\r\n //res.filterValues = temp.filterValues;\r\n\r\n //temp = await this.selectSecondFilterValues(selectedTemplate.filterValues);\r\n //res.properties = temp.properties;\r\n //res.groupingOptions = temp.groupingOptions;\r\n //res.quickCounterData = temp.quickCounterData;\r\n\r\n var sharedPropertiesByDisplayName = this.getSharedPropertiesByDisplayName(this.filteredElements);\r\n var sharedPropertiesByAttributeName = this.getSharedPropertiesByAttributeName(this.filteredElements);\r\n\r\n var existingProps = [];\r\n var existingGroups = [];\r\n\r\n for (var i = 0; i < selectedTemplate.properties.length; i++) {\r\n var propDisplayName = null;\r\n\r\n if (sharedPropertiesByAttributeName.includes(selectedTemplate.properties[i])) {\r\n propDisplayName = this.sharedPropertiesDictionary[selectedTemplate.properties[i]];\r\n } else if (sharedPropertiesByDisplayName.includes(selectedTemplate.properties[i])) {\r\n propDisplayName = selectedTemplate.properties[i];\r\n }\r\n\r\n if (propDisplayName != null && !existingProps.includes(propDisplayName)) {\r\n existingProps.push(propDisplayName);\r\n }\r\n }\r\n\r\n for (var i = 0; i < selectedTemplate.groupBy.length; i++) {\r\n if (sharedPropertiesByAttributeName.includes(selectedTemplate.groupBy[i])) {\r\n existingGroups.push(this.sharedPropertiesDictionary[selectedTemplate.groupBy[i]]);\r\n }\r\n else if (sharedPropertiesByDisplayName.includes(selectedTemplate.groupBy[i])) {\r\n existingGroups.push(selectedTemplate.groupBy[i]);\r\n }\r\n }\r\n\r\n var localizedCategoryNames = selectedTemplate.categoryIds.map(id => this.categoryIdNameDictionary[id]);\r\n\r\n res.selection = new MenusSelection(\r\n localizedCategoryNames,\r\n selectedTemplate.secondFilter,\r\n selectedTemplate.filterValues,\r\n existingProps,\r\n existingGroups,\r\n selectedTemplate.searchValue\r\n );\r\n\r\n return res;\r\n }\r\n\r\n async createSchedule(properties, groupingParameters) {\r\n if (properties.includes(\"All\"))\r\n properties = this.getSharedPropertiesByDisplayName(this.filteredElements);\r\n\r\n if (groupingParameters.length == 0) {\r\n return await this.getInstancesSchedule(properties);\r\n }\r\n\r\n // find the groups\r\n var groups = [];\r\n var groupNames = [];\r\n groups.push(this.filteredElements);\r\n groupNames.push(\"\");\r\n\r\n for (var i = 0; i < groupingParameters.length; i++) {\r\n var newgroups = [];\r\n var newGroupNames = [];\r\n\r\n for (var j = 0; j < groups.length; j++) {\r\n for (var k = 0; k < groups[j].length; k++) {\r\n var props = this.propertiesManager.GetProperties(groups[j][k]);\r\n var prop = this.findByDisplayName(props, groupingParameters[i]);\r\n var value = prop ? prop.displayValue : \"Missing Parameter\";\r\n var name = groupNames[j] + \"[\" + value + \"]\";\r\n if (newGroupNames.includes(name)) {\r\n newgroups[newGroupNames.indexOf(name)].push(groups[j][k]);\r\n } else {\r\n var g = [];\r\n g.push(groups[j][k]);\r\n newgroups.push(g);\r\n newGroupNames.push(name);\r\n }\r\n }\r\n }\r\n\r\n groups = newgroups;\r\n groupNames = newGroupNames;\r\n }\r\n\r\n // sort groups by group names\r\n var nonSortedNames = [...groupNames];\r\n groupNames.sort();\r\n var sortedGroups = [];\r\n for (var i = 0; i < groupNames.length; i++) {\r\n sortedGroups.push(groups[nonSortedNames.indexOf(groupNames[i])]);\r\n }\r\n groups = sortedGroups;\r\n\r\n var sums = [];\r\n var units = [];\r\n\r\n for (var i = 0; i < properties.length; i++) {\r\n sums.push(null);\r\n units.push(null);\r\n }\r\n\r\n var groupLines = [];\r\n\r\n for (var i = 0; i < groups.length; i++) {\r\n var line = [];\r\n line.push(groupNames[i]);\r\n line.push(groups[i].length);\r\n\r\n for (var j = 0; j < properties.length; j++) {\r\n var sum = 0;\r\n var allSame = true;\r\n var isNumber = false;\r\n var sameValue = null;\r\n\r\n for (var k = 0; k < groups[i].length; k++) {\r\n var props = this.propertiesManager.GetProperties(groups[i][k]);\r\n var prop = this.findByDisplayName(props, properties[j]);\r\n var value = prop ? prop.displayValue : \"\";\r\n\r\n if (typeof value == \"number\") {\r\n var eUnits = true;\r\n if (prop.units != null) eUnits = prop.units;\r\n if (units[j] == null) units[j] = eUnits;\r\n else if (units[j] != eUnits && value != 0) units[j] = \"Mixed units\";\r\n }\r\n if (typeof value == \"number\" && this.isSummable(properties[j])) {\r\n allSame = false;\r\n isNumber = true;\r\n sum += value;\r\n\r\n } else if (allSame) {\r\n if (sameValue == null) sameValue = value;\r\n allSame = sameValue == value;\r\n }\r\n }\r\n\r\n if (allSame) line.push(sameValue);\r\n else if (isNumber) {\r\n line.push(sum);\r\n sums[j] = sums[j] == null ? sum : sums[j] + sum;\r\n } else line.push(\"\");\r\n }\r\n groupLines.push(line);\r\n }\r\n\r\n var groupHeader = \"\";\r\n for (var i = 0; i < groupingParameters.length; i++)\r\n groupHeader += \"[\" + groupingParameters[i] + \"]\";\r\n\r\n var res = new DataForTable();\r\n res.header.push(groupHeader);\r\n res.units.push(null);\r\n res.header.push(\"Count\");\r\n res.units.push(null);\r\n\r\n\r\n for (var i = 0; i < properties.length; i++) {\r\n var propText = properties[i];\r\n var unit = null;\r\n\r\n if (sums[i] != null) propText += \" Σ\";\r\n\r\n if (units[i] != null && units[i] != true) {\r\n var funit = formatUnit(units[i]);\r\n propText += \" (\" + funit + \")\";\r\n if (funit != \"Mixed units\")\r\n unit = funit;\r\n }\r\n\r\n res.header.push(propText);\r\n res.units.push(unit);\r\n }\r\n\r\n res.lineElements = groups;\r\n\r\n for (var i = 0; i < groupLines.length; i++) {\r\n var tableLine = [];\r\n\r\n for (var j = 0; j < groupLines[i].length; j++) {\r\n var value = groupLines[i][j];\r\n\r\n tableLine.push(value);\r\n }\r\n res.lines.push(tableLine);\r\n }\r\n\r\n res.totals.push(\"Total:\");\r\n res.totals.push(this.filteredElements.length);\r\n\r\n for (var j = 0; j < properties.length; j++) {\r\n var totalValue = \"\";\r\n if (sums[j] != null) {\r\n totalValue = sums[j];\r\n }\r\n res.totals.push(totalValue);\r\n }\r\n\r\n return res;\r\n }\r\n\r\n async getTemplateInfo(templateName, TemplateFolder) {\r\n //Find template\r\n var selectedTemplate;\r\n\r\n if (this.userTemplates[TemplateFolder] != null)\r\n selectedTemplate = this.userTemplates[TemplateFolder].find(element => element.title == templateName)\r\n\r\n if (selectedTemplate == undefined) {\r\n logError(\"FrontEnd.utils.builder.Bimsearch.selectedTemplate\", \"Can't find template - \" + templateName);\r\n throw (\"can't find Template\");\r\n }\r\n\r\n var categoryElements = await this.findElementsByCategories(selectedTemplate.categories, selectedTemplate.categoryIds);\r\n\r\n return new QuickInfo(selectedTemplate.creationTime, this.getCounterData(categoryElements), selectedTemplate.properties, selectedTemplate.description);\r\n }\r\n\r\n async getCollectionInfo(collection) {\r\n var quickData = [];\r\n quickData.push(new QuickDataField(\"Count\", collection.elements.length));\r\n collectionDefaultProperties.forEach(prop => {\r\n var sum = 0;\r\n var unit = null;\r\n collection.elements.forEach(element => {\r\n var propValue = element.propertiesValues[prop];\r\n if (propValue != null) {\r\n sum += propValue.displayValue;\r\n if (unit == null)\r\n unit = propValue.units;\r\n else if (propValue.units != unit && propValue.displayValue != 0)\r\n unit = \"Mixed\";\r\n }\r\n });\r\n quickData.push(new QuickDataField(prop, sum, formatUnit(unit)));\r\n });\r\n return new QuickInfo(collection.creationTime, quickData, collection.properties, collection.descreption);\r\n }\r\n\r\n getDetailedCollectionInfo(collection) {\r\n var res = new Object();\r\n collection.elements.forEach(element => {\r\n var category = \"Undefined\";\r\n var elementCategory = element.propertiesValues[CategoryParameterName];\r\n if (elementCategory != null && elementCategory.displayValue != null)\r\n category = elementCategory.displayValue;\r\n\r\n if (res[category] == null) {\r\n res[category] = [];\r\n res[category].push(new QuickDataField(\"Count\"))\r\n collectionDefaultProperties.forEach(prop => {\r\n res[category].push(new QuickDataField(prop));\r\n });\r\n }\r\n\r\n ++res[category][0].value;\r\n\r\n for (var i = 0; i < collectionDefaultProperties.length; i++) {\r\n var elementProp = element.propertiesValues[collectionDefaultProperties[i]];\r\n if (elementProp != null && elementProp.displayValue != null && typeof elementProp.displayValue == \"number\") {\r\n res[category][i+1].value += elementProp.displayValue;\r\n if (elementProp.units != null) {\r\n var unit = formatUnit(elementProp.units);\r\n if (res[category][i+1].unit == null)\r\n res[category][i + 1].unit = unit;\r\n else if (res[category][i + 1].unit != unit)\r\n res[category][i+1].unit = \"Mixed\";\r\n }\r\n }\r\n }\r\n });\r\n\r\n return res;\r\n }\r\n\r\n addTemplateFolder(folderName) {\r\n if (Object.keys(this.userTemplates).includes(folderName))\r\n throw (\"Folder already exist\");\r\n else {\r\n this.userTemplates[folderName] = [];\r\n this.updateTemplatesFolderOnDatabase();\r\n }\r\n \r\n return this.getTemplateNames();\r\n }\r\n\r\n deleteTemplateFolder(folderName) {\r\n if (folderName == DefaultTemplatesnFolder)\r\n throw \"Can't delete default templates folder\";\r\n\r\n if (!Object.keys(this.userTemplates).includes(folderName))\r\n throw (\"Folder doesn't exist\");\r\n else {\r\n delete this.userTemplates[folderName];\r\n this.updateTemplatesFolderOnDatabase();\r\n }\r\n\r\n return this.getTemplateNames();\r\n }\r\n\r\n renameTemplateFolder(originalName, newName) {\r\n if (originalName == DefaultTemplatesnFolder)\r\n throw \"Can't rename default templates folder\";\r\n\r\n if (Object.keys(this.userTemplates).includes(newName))\r\n throw (\"Folder already exist\");\r\n if (!Object.keys(this.userTemplates).includes(originalName))\r\n throw (\"Folder doesn't exist\");\r\n\r\n this.userTemplates[newName] = this.userTemplates[originalName];\r\n delete this.userTemplates[originalName];\r\n this.updateTemplatesFolderOnDatabase();\r\n\r\n return this.getTemplateNames();\r\n }\r\n\r\n getCounterData(elements) {\r\n var res = [];\r\n res.push(new QuickDataField(\"Count\"));\r\n res.push(new QuickDataField(\"Length\"));\r\n res.push(new QuickDataField(\"Area\"));\r\n res.push(new QuickDataField(\"Volume\"));\r\n\r\n for (var i = 0; i < elements.length; i++) {\r\n var props = this.propertiesManager.GetProperties(elements[i]);\r\n this.addElementToDataArray(res, props);\r\n }\r\n\r\n return res;\r\n }\r\n\r\n getDataByCategory(elements) {\r\n var res = new Object();\r\n\r\n for (var i = 0; i < elements.length; i++) {\r\n var props = this.propertiesManager.GetProperties(elements[i]);\r\n var categoryProp = this.findByDisplayName(props, CategoryParameterName); \r\n\r\n var categoryName = \"Unknown\";\r\n if (categoryProp != null)\r\n categoryName = categoryProp.displayValue;\r\n\r\n if (res[categoryName] == null) {\r\n res[categoryName] = [];\r\n res[categoryName].push(new QuickDataField(\"Count\"));\r\n res[categoryName].push(new QuickDataField(\"Length\"));\r\n res[categoryName].push(new QuickDataField(\"Area\"));\r\n res[categoryName].push(new QuickDataField(\"Volume\"));\r\n }\r\n\r\n this.addElementToDataArray(res[categoryName], props);\r\n }\r\n\r\n return res;\r\n }\r\n\r\n saveTemplate(templateFolder, title, description, properties, groupBy, searchValue) {\r\n if (this.userTemplates[templateFolder] == null)\r\n this.userTemplates[templateFolder] = [];\r\n\r\n this.deleteTemplateNoSync(templateFolder, title);\r\n\r\n var categoriesIds = [];\r\n\r\n Object.keys(this.categoryIdNameDictionary).forEach(categoryId => {\r\n if (this.selectedCategories.includes(this.categoryIdNameDictionary[categoryId]))\r\n categoriesIds.push(Number(categoryId));\r\n });\r\n\r\n var template = new Template(title, description, this.selectedCategories, categoriesIds, properties, groupBy, searchValue);\r\n\r\n this.userTemplates[templateFolder].push(template);\r\n this.updateTemplatesFolderOnDatabase();\r\n\r\n return this.getTemplateNames();\r\n }\r\n\r\n deleteTemplate(templateFolder, title) {\r\n if (!this.deleteTemplateNoSync(templateFolder, title))\r\n throw \"can't find template\";\r\n this.updateTemplatesFolderOnDatabase();\r\n\r\n return this.getTemplateNames();\r\n }\r\n\r\n editTemplate(ogrinalTemplateFolder, originalTitle, newTemplateFolder, newTitle, newDescription) {\r\n\r\n var template;\r\n if (this.userTemplates[ogrinalTemplateFolder] != null) \r\n template = this.userTemplates[ogrinalTemplateFolder].find(element => element.title == originalTitle);\r\n \r\n\r\n if (template == undefined)\r\n throw \"can't find template\";\r\n\r\n if (!(ogrinalTemplateFolder == newTemplateFolder && originalTitle == newTitle) && this.userTemplates[newTemplateFolder].findIndex(element => element.title == newTitle) != -1) {\r\n throw \"new name already taken\";\r\n }\r\n\r\n this.deleteTemplateNoSync(ogrinalTemplateFolder, originalTitle);\r\n\r\n template.description = newDescription;\r\n template.title = newTitle;\r\n\r\n if (this.userTemplates[newTemplateFolder] == null)\r\n this.userTemplates[newTemplateFolder] = [];\r\n\r\n this.userTemplates[newTemplateFolder].push(template);\r\n\r\n this.updateTemplatesFolderOnDatabase();\r\n return this.getTemplateNames();\r\n }\r\n\r\n async addElementsToCollection(collection, elements) {\r\n var elementProperties = [...collection.properties];\r\n collection.groupBy.forEach(prop => {\r\n if (!elementProperties.includes(prop))\r\n elementProperties.push(prop);\r\n });\r\n collectionDefaultProperties.forEach(prop => {\r\n if (!elementProperties.includes(prop))\r\n elementProperties.push(prop);\r\n });\r\n if (!elementProperties.includes(CategoryParameterName))\r\n elementProperties.push(CategoryParameterName);\r\n \r\n elements.forEach(element => {\r\n var collectionElement = new BimsearchElement(this.propertiesManager.viewerIdToModelId[element]);\r\n var props = this.propertiesManager.properties[element];\r\n elementProperties.forEach(prop => {\r\n collectionElement.propertiesValues[prop] = this.findByDisplayName(props, prop);\r\n });\r\n\r\n collection.elements.push(collectionElement);\r\n });\r\n }\r\n\r\n\r\n async removeElementsFromCollection(collection, elements) {\r\n var newElements = collection.elements.filter(element => !elements.includes(this.propertiesManager.modelIdToViewerId[modelIdToKey(element.id)]) );\r\n collection.elements = newElements;\r\n }\r\n\r\n\r\n async getCollectionTable(collection) {\r\n var res = new DataForTable();\r\n\r\n var sums = [];\r\n var units = [];\r\n\r\n for (var i = 0; i < collection.properties.length; i++) {\r\n sums.push(null);\r\n units.push(null);\r\n }\r\n\r\n for (var i = 0; i < collection.elements.length; i++) {\r\n for (var j = 0; j < collection.properties.length; j++) {\r\n var prop = collection.elements[i].propertiesValues[collection.properties[j]];\r\n\r\n if (prop) {\r\n if (typeof prop.displayValue == \"number\") {\r\n var eUnits = true;\r\n if (prop.units != null) eUnits = prop.units;\r\n if (units[j] == null) units[j] = eUnits;\r\n else if (units[j] != eUnits && prop.displayValue != 0)\r\n units[j] = \"Mixed units\";\r\n }\r\n if (typeof prop.displayValue == \"number\" && this.isSummable(collection.properties[j])) {\r\n sums[j] = sums[j] == null ? prop.displayValue : sums[j] + prop.displayValue;\r\n } \r\n }\r\n }\r\n }\r\n\r\n if (collection.groupBy != null && collection.groupBy.length > 0) {\r\n var groupHeader = \"\";\r\n for (var i = 0; i < collection.groupBy.length; i++)\r\n groupHeader += \"[\" + collection.groupBy[i] + \"]\";\r\n\r\n res.header = [groupHeader, \"Count\"];\r\n res.units = [null, null];\r\n res.totals.push(\"Total:\");\r\n res.totals.push(collection.elements.length);\r\n\r\n\r\n // find the groups\r\n var groups = [];\r\n var groupNames = [];\r\n groups.push(collection.elements);\r\n groupNames.push(\"\");\r\n\r\n for (var i = 0; i < collection.groupBy.length; i++) {\r\n var newgroups = [];\r\n var newGroupNames = [];\r\n\r\n for (var j = 0; j < groups.length; j++) {\r\n for (var k = 0; k < groups[j].length; k++) {\r\n var props = this.propertiesManager.GetProperties(groups[j][k]);\r\n var prop = groups[j][k].propertiesValues[collection.groupBy[i]];\r\n var value = prop ? prop.displayValue : \"Missing Parameter\";\r\n var name = groupNames[j] + \"[\" + value + \"]\";\r\n if (newGroupNames.includes(name)) {\r\n newgroups[newGroupNames.indexOf(name)].push(groups[j][k]);\r\n } else {\r\n var g = [];\r\n g.push(groups[j][k]);\r\n newgroups.push(g);\r\n newGroupNames.push(name);\r\n }\r\n }\r\n }\r\n groups = newgroups;\r\n groupNames = newGroupNames;\r\n }\r\n\r\n // sort groups by group names\r\n var nonSortedNames = [...groupNames];\r\n groupNames.sort();\r\n var sortedGroups = [];\r\n for (var i = 0; i < groupNames.length; i++) {\r\n sortedGroups.push(groups[nonSortedNames.indexOf(groupNames[i])]);\r\n }\r\n groups = sortedGroups;\r\n\r\n\r\n var groupLines = [];\r\n for (var i = 0; i < groups.length; i++) {\r\n var line = [];\r\n line.push(groupNames[i]);\r\n line.push(groups[i].length);\r\n\r\n for (var j = 0; j < collection.properties.length; j++) {\r\n var sum = 0;\r\n var allSame = true;\r\n var isNumber = false;\r\n var sameValue = null;\r\n\r\n for (var k = 0; k < groups[i].length; k++) {\r\n var props = this.propertiesManager.GetProperties(groups[i][k]);\r\n var prop = groups[i][k].propertiesValues[collection.properties[j]];\r\n var value = prop ? prop.displayValue : \"\";\r\n\r\n if (typeof value == \"number\" && this.isSummable(collection.properties[j])) {\r\n allSame = false;\r\n isNumber = true;\r\n sum += value;\r\n } else if (allSame) {\r\n if (sameValue == null)\r\n sameValue = value;\r\n allSame = sameValue == value;\r\n }\r\n }\r\n\r\n if (allSame)\r\n line.push(sameValue);\r\n else if (isNumber) {\r\n line.push(sum);\r\n }\r\n else\r\n line.push(\"\");\r\n }\r\n groupLines.push(line);\r\n }\r\n\r\n groups.forEach(group => {\r\n var lineElements = [];\r\n group.forEach(element => {\r\n var viewerId = this.propertiesManager.modelIdToViewerId[modelIdToKey(element.id)];\r\n if (viewerId != null)\r\n lineElements.push(viewerId);\r\n });\r\n res.lineElements.push(lineElements);\r\n });\r\n\r\n res.lines = groupLines;\r\n }\r\n else {\r\n for (var i = 0; i < collection.elements.length; i++) {\r\n var lineElements = [];\r\n var viewerId = this.propertiesManager.modelIdToViewerId[modelIdToKey(collection.elements[i].id)];\r\n if (viewerId != null)\r\n lineElements.push(viewerId);\r\n res.lineElements.push(lineElements);\r\n\r\n var lineData = [];\r\n lineData.push(collection.elements[i].id.revitId);\r\n\r\n for (var j = 0; j < collection.properties.length; j++) {\r\n var prop = collection.elements[i].propertiesValues[collection.properties[j]];\r\n var value = \"\";\r\n if (prop != null && prop.displayValue != null)\r\n value = prop.displayValue;\r\n lineData.push(value);\r\n }\r\n res.lines.push(lineData);\r\n }\r\n\r\n res.header.push(\"Element\");\r\n res.units.push(null);\r\n res.totals.push(\"Total: \" + collection.elements.length);\r\n }\r\n\r\n for (var i = 0; i < collection.properties.length; i++) {\r\n var headerProp = collection.properties[i];\r\n var unit = null;\r\n if (sums[i] != null)\r\n headerProp += \" Σ\";\r\n\r\n if (units[i] == \"Mixed units\")\r\n headerProp += \" (Mixed units)\";\r\n if (units[i] != true && units[i] != \"Mixed units\")\r\n unit = formatUnit(units[i]);\r\n res.header.push(headerProp);\r\n res.units.push(unit);\r\n\r\n var totalVal = \"\";\r\n if (sums[i] != null) {\r\n totalVal = sums[i];\r\n }\r\n res.totals.push(totalVal);\r\n }\r\n\r\n return res;\r\n }\r\n\r\n // Private:\r\n\r\n\r\n // deletes the template without Syncing with cloud\r\n // return true if an element was deleted false if it was not found\r\n deleteTemplateNoSync(templateFolder, title) {\r\n var index = -1;\r\n if (this.userTemplates[templateFolder] != null) \r\n index = this.userTemplates[templateFolder].findIndex(element => element.title == title);\r\n\r\n if (index >= 0)\r\n this.userTemplates[templateFolder].splice(index, 1);\r\n\r\n return index >= 0;\r\n }\r\n\r\n getTemplateNames() {\r\n var res = new Object();\r\n\r\n Object.keys(this.userTemplates).forEach(key => {\r\n this.userTemplates[key].sort((a, b) => a.title < b.title ? -1 : 1);\r\n res[key] = [];\r\n this.userTemplates[key].forEach(temp => {\r\n res[key].push(temp.title);\r\n });\r\n });\r\n\r\n return res;\r\n }\r\n\r\n async updateTemplatesFolderOnDatabase() {\r\n try {\r\n postToServer(\"/api/forge/userdata/templates\", this.userTemplates);\r\n }\r\n catch (err) {\r\n logError(\"FrontEnd.src.utils.builder.BimSearch.updateTemplatesFolderOnDatabase\", err.toString());\r\n }\r\n }\r\n\r\n getSharedPropertiesByDisplayName(ids) {\r\n var propertyNames = [];\r\n var properties = this.getValidProperties(ids);\r\n var propertyNames = properties.map(property => property.displayName);\r\n\r\n if (ids.length > 0) {\r\n var additionalParameterNames = this.getAdditionalParameterNames();\r\n\r\n for (var i = 0; i < additionalParameterNames.length; i++) {\r\n propertyNames.push(additionalParameterNames[i]);\r\n }\r\n }\r\n\r\n propertyNames.sort();\r\n var uniquePropertyNames = [...new Set(propertyNames)];\r\n\r\n return uniquePropertyNames;\r\n }\r\n\r\n getSharedPropertiesByAttributeName(ids) {\r\n var propertyNames = [];\r\n var properties = this.getValidProperties(ids);\r\n var propertyNames = properties.map(property => property.attributeName);\r\n\r\n if (ids.length > 0) {\r\n var additionalParameterNames = this.getAdditionalParameterNames();\r\n\r\n for (var i = 0; i < additionalParameterNames.length; i++) {\r\n propertyNames.push(additionalParameterNames[i]);\r\n }\r\n }\r\n\r\n propertyNames.sort();\r\n var uniquePropertyNames = [...new Set(propertyNames)];\r\n\r\n return uniquePropertyNames;\r\n }\r\n\r\n getAdditionalParameterNames() {\r\n var propNames = [CategoryParameterName, LinkDemiParameterName, FamilyDemiParameterName];\r\n return this.isRvt() ? propNames : [];\r\n }\r\n\r\n getValidProperties(ids) {\r\n var properties = [];\r\n var proprertyNames = [];\r\n\r\n for (var i = 0; i < ids.length; i++) {\r\n var props = this.propertiesManager.GetProperties(ids[i]);\r\n\r\n if (props && props.properties && props.properties.length != null)\r\n for (var j = 0; j < props.properties.length; j++)\r\n if (\r\n (!proprertyNames.includes(props.properties[j].displayName) || !proprertyNames.includes(props.properties[j].attributeName)) &&\r\n !props.properties[j].hidden &&\r\n props.properties[j].displayValue != null &&\r\n props.properties[j].displayValue !== \"\" &&\r\n ((this.isRvt() && !props.properties[j].hidden) ||\r\n (!this.isRvt() && !props.properties[j].displayName.startsWith(\"Current Control point -\") && !props.properties[j].displayName.startsWith(\"Vertex -\")))\r\n ) {\r\n properties.push(props.properties[j]);\r\n proprertyNames.push(props.properties[j].attributeName);\r\n proprertyNames.push(props.properties[j].displayName);\r\n }\r\n }\r\n\r\n return properties;\r\n }\r\n\r\n updatePropertiesTranslations() {\r\n var ids = this.allElements;\r\n var propsDictionary = [];\r\n\r\n for (var i = 0; i < ids.length; i++) {\r\n var props = this.propertiesManager.GetProperties(ids[i]);\r\n\r\n if (props && props.properties && props.properties.length != null)\r\n for (var j = 0; j < props.properties.length; j++)\r\n if (!(props.properties[j].attributeName in propsDictionary) &&\r\n !props.properties[j].hidden &&\r\n props.properties[j].displayValue != null &&\r\n props.properties[j].displayValue !== \"\"\r\n ) {\r\n propsDictionary[props.properties[j].attributeName] = props.properties[j].displayName;\r\n }\r\n }\r\n\r\n if (ids.length > 0) {\r\n var additionalParameterNames = this.getAdditionalParameterNames();\r\n for (var i = 0; i < additionalParameterNames.length; i++) {\r\n propsDictionary[additionalParameterNames[i]] = additionalParameterNames[i];\r\n }\r\n }\r\n\r\n propsDictionary.sort();\r\n\r\n this.sharedPropertiesDictionary = propsDictionary;\r\n\r\n for (var i = 0; i < CommonProperties.length; i++) {\r\n var value = this.sharedPropertiesDictionary[CommonProperties[i]];\r\n if (value != null && !this.commonProperties.includes(value))\r\n this.commonProperties.push(value);\r\n }\r\n\r\n for (var i = 0; i < CommonGroupingOptions.length; i++) {\r\n var value = this.sharedPropertiesDictionary[CommonGroupingOptions[i]];\r\n if (value != null && !this.commonGroupingOptions.includes(value))\r\n this.commonGroupingOptions.push(value);\r\n }\r\n\r\n this.nonSummableProperties = [...NonSummableProperties];\r\n for (var i = 0; i < NonSummableProperties.length; i++) {\r\n if (this.sharedPropertiesDictionary[NonSummableProperties[i]] != null) {\r\n this.nonSummableProperties.push(this.sharedPropertiesDictionary[NonSummableProperties[i]]);\r\n }\r\n }\r\n }\r\n\r\n isSummable(property) {\r\n return !this.nonSummableProperties.includes(property);\r\n }\r\n\r\n updateCategoriesTranslations() {\r\n for (var i = 0; i < CommonCategoriesIds.length; i++) {\r\n var value = this.categoryIdNameDictionary[CommonCategoriesIds[i]];\r\n if (value != null && !this.commonCategories.includes(value))\r\n this.commonCategories.push(value);\r\n }\r\n }\r\n\r\n findByDisplayName(props, value) {\r\n var res;\r\n if (value == LinkDemiParameterName) {\r\n res = new Object();\r\n res.displayValue = this.propertiesManager.GetModel(props.dbId);\r\n return res;\r\n }\r\n if (value == FamilyDemiParameterName) {\r\n res = new Object();\r\n var splitName = props.name.split(\" [\");\r\n res.displayValue = splitName.length > 1 ? splitName[0] : \"\";\r\n return res;\r\n }\r\n\r\n res = props.properties.find(\r\n (prop) => (prop.attributeName == value || prop.displayName == value) && prop.hidden == false\r\n );\r\n if (res == null) res = props.properties.find((prop) => prop.attributeName == value || prop.displayName == value);\r\n\r\n if (res == null && value == CategoryParameterName) {\r\n res = new Object();\r\n var sourceFileName = this.findByDisplayName(props, \"Source File\");\r\n if (sourceFileName != null && sourceFileName.displayValue.toLowerCase().endsWith(\"dwg\"))\r\n res.displayValue = \"DWG elements\";\r\n else\r\n res.displayValue = ElementsWithoutCategoryCategory;\r\n return res;\r\n }\r\n\r\n return res;\r\n }\r\n\r\n getMenusDataAfterSecondFilter() {\r\n var res = new DataForMenus();\r\n var sharedProperties = this.getSharedPropertiesByDisplayName(this.filteredElements);\r\n\r\n var counterData = this.getCounterData(this.filteredElements);\r\n\r\n res.quickCounterData = counterData;\r\n res.properties = sharedProperties;\r\n res.groupingOptions = sharedProperties;\r\n\r\n return res;\r\n }\r\n\r\n isRvt() {\r\n return this.modelName.toLowerCase().endsWith(\".rvt\");\r\n }\r\n\r\n splitCommon(resultItem) {\r\n if (resultItem.categories != null) {\r\n resultItem.commonCategories = resultItem.categories.filter(category => this.commonCategories.includes(category));\r\n resultItem.uncommonCategories = resultItem.categories.filter(category => !this.commonCategories.includes(category));\r\n }\r\n\r\n if (resultItem.properties != null) {\r\n\r\n resultItem.commonProperties = resultItem.properties.filter(property => this.commonProperties.includes(property));\r\n resultItem.uncommonProperties = resultItem.properties.filter(property => !this.commonProperties.includes(property));\r\n }\r\n\r\n if (resultItem.groupingOptions != null) {\r\n\r\n resultItem.commonGroupingOptions = resultItem.groupingOptions.filter(property => this.commonGroupingOptions.includes(property));\r\n resultItem.uncommonGroupingOptions = resultItem.groupingOptions.filter(property => !this.commonGroupingOptions.includes(property));\r\n }\r\n\r\n return resultItem;\r\n }\r\n\r\n async getInstancesSchedule(properties) {\r\n var sums = [];\r\n var units = [];\r\n\r\n for (var i = 0; i < properties.length; i++) {\r\n sums.push(null);\r\n units.push(null);\r\n }\r\n\r\n var res = new DataForTable();\r\n\r\n for (var i = 0; i < this.filteredElements.length; i++) {\r\n var lineElements = [];\r\n lineElements.push(this.filteredElements[i]);\r\n res.lineElements.push(lineElements);\r\n\r\n var props = this.propertiesManager.GetProperties(this.filteredElements[i]);\r\n\r\n var lineData = [];\r\n lineData.push(props.name);\r\n\r\n for (var j = 0; j < properties.length; j++) {\r\n var prop = this.findByDisplayName(props, properties[j]);\r\n\r\n var value = \"\";\r\n\r\n if (prop) {\r\n if (typeof prop.displayValue == \"number\") {\r\n var eUnits = true;\r\n if (prop.units != null) eUnits = prop.units;\r\n if (units[j] == null) units[j] = eUnits;\r\n else if (units[j] != eUnits && prop.displayValue != 0)\r\n units[j] = \"Mixed units\";\r\n }\r\n if (typeof prop.displayValue == \"number\" && this.isSummable(properties[j])) {\r\n value = prop.displayValue;\r\n sums[j] = sums[j] == null ? prop.displayValue : sums[j] + prop.displayValue;\r\n\r\n } else {\r\n value = prop.displayValue;\r\n }\r\n }\r\n lineData.push(value);\r\n }\r\n res.lines.push(lineData);\r\n }\r\n\r\n res.header.push(\"Element\");\r\n res.units.push(null);\r\n\r\n for (var i = 0; i < properties.length; i++) {\r\n var headerProp = properties[i];\r\n var unit = null;\r\n if (sums[i] != null)\r\n headerProp += \" Σ\";\r\n\r\n if (units[i] != null && units[i] == \"Mixed units\")\r\n headerProp += \" (Mixed units)\";\r\n if (units[i] != null && units[i] != true && units[i] != \"Mixed units\")\r\n unit = formatUnit(units[i]);\r\n res.header.push(headerProp);\r\n res.units.push(unit);\r\n }\r\n\r\n res.totals.push(\"Total: \" + this.filteredElements.length);\r\n\r\n for (var j = 0; j < properties.length; j++) {\r\n var totalVal = \"\";\r\n if (sums[j] != null) {\r\n totalVal = sums[j];\r\n }\r\n res.totals.push(totalVal);\r\n }\r\n\r\n return res;\r\n }\r\n \r\n addElementToDataArray(dataFieldArray, itemProps) {\r\n var areaParam = this.findByDisplayName(itemProps, \"Area\");\r\n var volumeParam = this.findByDisplayName(itemProps, \"Volume\");\r\n var lengthParam = this.findByDisplayName(itemProps, \"Length\");\r\n\r\n dataFieldArray[0].value++;\r\n addPropertyToDataField(dataFieldArray[1], lengthParam);\r\n addPropertyToDataField(dataFieldArray[2], areaParam);\r\n addPropertyToDataField(dataFieldArray[3], volumeParam);\r\n }\r\n}\r\n\r\nconst categoryPre = \"Revit \";\r\nconst LinkDemiParameterName = \"Revit Link\";\r\nconst FamilyDemiParameterName = \"Family\";\r\nconst CategoryParameterName = \"Category\";\r\nconst ElementsWithoutCategoryCategory = \"No Category\";\r\nconst NonSummableProperties = [\"Diameter\", \"Tray Width\", \"Tray Height\", \"Thickness\", \"Angle\", \"Height\", \"Width\", \"Duct Width\", \"Duct Height\", \"H\", \"Railing Height\", \"Bottom Elevation\", \"Level\", \"ID\", \"Cost\"];\r\nconst collectionDefaultProperties = [\"Length\", \"Area\", \"Volume\"];\r\n\r\nconst knownUnits = {\r\n centimeters: \"cm\",\r\n meters: \"m\",\r\n squareMeters: \"m^2\",\r\n cubicMeters: \"m^3\"\r\n};\r\n\r\nfunction formatUnit(unitString) {\r\n if (unitString == null)\r\n return null;\r\n var res = unitString;\r\n if (res.startsWith(\"autodesk.unit\")) {\r\n var splitUnitString = res.split(\":\");\r\n splitUnitString.shift();\r\n res = splitUnitString.join(\":\");\r\n splitUnitString = res.split(\"-\");\r\n splitUnitString.pop();\r\n res = splitUnitString.join(\"-\");\r\n\r\n if (Object.keys(knownUnits).includes(res))\r\n res = knownUnits[res];\r\n }\r\n\r\n return res;\r\n}\r\n\r\nfunction roundNumber(number) {\r\n return Math.round(number * 100) / 100;\r\n}\r\n\r\nconst CommonCategories = [\"Structural Foundations\", \"Walls\", \"Floors\", \"Structural Columns\", \"Structural Framing\",\r\n \"Ceilings\", \"Doors\", \"Windows\", \"Curtain Walls\", \"Rooms\", \"Pipes\", \"Ducts\", \"Duct Fittings\", \"Cable Trays\",\r\n \"Air Terminals\"];\r\n\r\nconst CommonCategoriesIds = [-2001300, -2000011, -2000032, -2001330, -2001320,\r\n -2000038, -2000023, -2000014, -2000160, -2008044, -2008000, -2008010, -2008130,\r\n -2008013];\r\n\r\nconst CommonProperties = [\"Type Name\", \"Level\", \"Base Constraint\", \"Reference Level\", \"Base Level\", \"Description\",\r\n \"Area\", \"Volume\", \"Length\", \"Perimeter\", \"Diameter\", \"Type Mark\", \"Top Level\", \"Structural Material\",\r\n \"Thickness\", \"Revit Link\", \"Mark\"];\r\n\r\nconst CommonGroupingOptions = [\"Type Name\", \"Level\", \"Base Constraint\", \"Reference Level\", \"Base Level\", \"Description\",\r\n \"Diameter\", \"Type Mark\", \"Structural Material\", \"Thickness\", \"Revit Link\", \"System Type\", \"System Name\"];\r\n\r\nconst DefaultTemplatesnFolder = \"Default\";\r\n\r\n\r\n\r\nfunction addPropertyToDataField(dataField, property) {\r\n if (property != null && typeof property.displayValue == \"number\") {\r\n dataField.value += property.displayValue;\r\n if (property.units != null) {\r\n var units = formatUnit(property.units);\r\n if (dataField.unit == null) dataField.unit = units;\r\n else if (dataField.unit != units) dataField.unit = \"Mixed\";\r\n }\r\n }\r\n}\r\n\r\n// Get user Templates\r\nasync function getUserTemplates() {\r\n try {\r\n return await getFromServer(\"/api/forge/userdata/templates\");\r\n }\r\n catch (err) {\r\n logError(\"FrontEnd.src.utils.builder.IScheduleLogic.getUserTemplates\", err.toString());\r\n return new Object();\r\n }\r\n}\r\n","// Toolbar extention for BIMSearch viewer\r\n// includes:\r\n// Show all button - make all elements in view visable (Cancell any isolation)/\r\n\r\nexport function ToolbarExtension(viewer, options) {\r\n window.Autodesk.Viewing.Extension.call(this, viewer, options);\r\n}\r\n\r\nToolbarExtension.prototype = Object.create(window.Autodesk.Viewing.Extension.prototype);\r\nToolbarExtension.prototype.constructor = ToolbarExtension;\r\n\r\nToolbarExtension.prototype.load = function () {\r\n\r\n if (this.viewer.toolbar) {\r\n this.createUI();\r\n } else {\r\n this.onToolbarCreatedBinded = this.onToolbarCreated.bind(this);\r\n this.viewer.addEventListener(window.Autodesk.Viewing.TOOLBAR_CREATED_EVENT, this.onToolbarCreatedBinded);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nToolbarExtension.prototype.onToolbarCreated = function () {\r\n\r\n this.viewer.removeEventListener(window.Autodesk.Viewing.TOOLBAR_CREATED_EVENT, this.onToolbarCreatedBinded);\r\n this.onToolbarCreatedBinded = null;\r\n this.createUI();\r\n\r\n};\r\n\r\n\r\nToolbarExtension.prototype.createUI = function () {\r\n\r\n let viewer = this.viewer;\r\n\r\n let showAllButton = new window.Autodesk.Viewing.UI.Button('showall-button');\r\n showAllButton.onClick = function (event) {\r\n viewer.isolate([]);\r\n }\r\n\r\n showAllButton.addClass('showall-button');\r\n showAllButton.setToolTip('Show all objects');\r\n\r\n this.subToolbar = new window.Autodesk.Viewing.UI.ControlGroup('custom-tools');\r\n this.subToolbar.addControl(showAllButton);\r\n\r\n viewer.toolbar.addControl(this.subToolbar, {index : 0});\r\n};\r\n\r\n\r\nToolbarExtension.prototype.unload = function () {\r\n\r\n this.viewer.toolbar.removeControl(this.subToolbar);\r\n return true;\r\n\r\n};\r\n\r\nwindow.Autodesk.Viewing.theExtensionManager.registerExtension('ToolbarExtension', ToolbarExtension);\r\n\r\n","// Class for managing the autodesk viewer instance for BIMSearch\r\n// Connects to the BIMSearch engine and make any changes in Autodesk viewer in the BIMSearch applicaion\r\n\r\nimport { ToolbarExtension } from \"./BimsearchToolbarExtension\";\r\nimport {\r\n logError,\r\n logClusterButton,\r\n logDoubleClick,\r\n logRightClick,\r\n} from \"./IAmecLog\";\r\nimport {\r\n updateCategory,\r\n updateFilterBy,\r\n applySecondFilter,\r\n} from \"./IScheduleLogic\";\r\nimport { MenusSelection } from \"./ResultClasses\";\r\nimport { postToServer, getFromServer } from \"./CommonFunctions\";\r\nimport { modelIdToKey } from \"./TemplatesAndCollections\";\r\n\r\n// .viewer - autodek viewer\r\nexport class BimsearchViewer {\r\n // public:\r\n constructor(itemStruct, divElement, bimSearch, returnMehod, modelVersion) {\r\n this.version = modelVersion;\r\n this.bimSearch = bimSearch;\r\n this.returnMehod = returnMehod;\r\n //this.doubleClickReturnMethod = doubleClickReturnMethod;\r\n this.onSelectionChangeCallback = null;\r\n this.modelName = \"\";\r\n this.viewer = null;\r\n this.urn = itemStruct.idToOpen;\r\n this.divElement = divElement;\r\n this.collections = null;\r\n this.alertGiven = false;\r\n // add if null assign item id\r\n if (itemStruct.idForCollections == null) {\r\n this.idForCollections = itemStruct.id;\r\n }\r\n else { this.idForCollections = itemStruct.idForCollections; }\r\n\r\n var options = {\r\n env: \"AutodeskProduction\",\r\n getAccessToken: this.getForgeToken,\r\n api:\r\n \"derivativeV2\" +\r\n (atob(this.urn.replace(\"_\", \"/\")).indexOf(\"emea\") > -1 ? \"_EU\" : \"\"), // handle BIM 360 US and EU regions\r\n };\r\n bimSearchViewerInstance = this;\r\n window.Autodesk.Viewing.Initializer(options, () => {\r\n bimSearchViewerInstance.intialize();\r\n });\r\n }\r\n\r\n intialize() {\r\n this.viewer = new window.Autodesk.Viewing.GuiViewer3D(this.divElement, {\r\n extensions: [\r\n //\"ToolbarExtension\",\r\n \"Autodesk.DocumentBrowser\",\r\n \"Autodesk.VisualClusters\",\r\n \"Autodesk.MemoryLimited\",\r\n ],\r\n profileSettings: {\r\n settings: {\r\n viewCubeCompass: true,\r\n reverseMouseZoomDir: true,\r\n edgeRendering: true,\r\n envMapBackground: true,\r\n lightPreset: \"Boardwalk\",\r\n selectionSetPivot: true,\r\n },\r\n },\r\n });\r\n\r\n\r\n this.viewer.start();\r\n //this.viewer.addEventListener(\r\n // window.Autodesk.Viewing.EXTENSION_LOADED_EVENT, () => { bimSearchViewerInstance.removeButtons(); });\r\n\r\n this.viewer.setSelectionColor(\r\n new window.THREE.Color(0xfa8700),\r\n window.Autodesk.Viewing.SelectionType.MIXED\r\n ); // red color\r\n\r\n var documentId = \"urn:\" + this.urn;\r\n this.viewer.addEventListener(\r\n window.Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT,\r\n () => {\r\n bimSearchViewerInstance.modelLoaded();\r\n }\r\n );\r\n this.viewer.addEventListener(\r\n window.Autodesk.Viewing.EXTENSION_UNLOADED_EVENT,\r\n (id) => {\r\n bimSearchViewerInstance.closeVisualClusters(id);\r\n }\r\n );\r\n this.viewer.addEventListener(\r\n window.Autodesk.Viewing.SELECTION_CHANGED_EVENT,\r\n (selection) => {\r\n bimSearchViewerInstance.handleSelectionChange(selection);\r\n }\r\n );\r\n this.viewer.registerContextMenuCallback(\"AmecRc\", (menu, status) => {\r\n bimSearchViewerInstance.rightClick(menu, status);\r\n });\r\n this.viewer.clickHandler.handleDoubleClick = (selection) => {\r\n bimSearchViewerInstance.onDoubleClick(selection);\r\n };\r\n window.Autodesk.Viewing.Document.load(\r\n documentId,\r\n (doc) => {\r\n bimSearchViewerInstance.onDocumentLoadSuccess(doc);\r\n },\r\n (errorCode) => {\r\n bimSearchViewerInstance.onDocumentLoadFailure(errorCode);\r\n }\r\n );\r\n }\r\n\r\n async isolateElements(elements) {\r\n if (this.viewer == null) return;\r\n if (elements == null) elements = [];\r\n this.viewer.clearSelection();\r\n this.viewer.isolate(elements);\r\n this.viewer.fitToView(elements);\r\n }\r\n\r\n async selectElements(elements) {\r\n if (this.viewer == null) return;\r\n if (elements == null) elements = [];\r\n this.viewer.isolate(elements);\r\n this.viewer.fitToView(elements);\r\n this.viewer.select(elements);\r\n }\r\n\r\n async getCollections() {\r\n if (this.collections == null) {\r\n var url = `/api/forge/userdata/collections?model=${this.idForCollections}`;\r\n try {\r\n this.collections = await getFromServer(url);\r\n }\r\n catch (err) {\r\n logError(\"FrontEnd.src.utils.builder.BimsearchViewer.getCollections\", err.toString());\r\n }\r\n }\r\n\r\n return this.collections;\r\n }\r\n\r\n async saveCollection(collection, title, folder, descreption, color) {\r\n var index = await this.findCollectionIndex(title, folder);\r\n if (index >= 0)\r\n throw \"selection set already exist\";\r\n\r\n collection.title = title;\r\n collection.descreption = descreption;\r\n collection.color = color;\r\n\r\n var collections = await this.getCollections();\r\n if (collections.collectionsByFolder[folder] == null)\r\n collections.collectionsByFolder[folder] = [];\r\n collections.collectionsByFolder[folder].push(collection);\r\n collections.collectionsByFolder[folder].sort((a, b) => a.creationTime - b.creationTime);\r\n\r\n await this.saveColletions(collections);\r\n }\r\n\r\n async addToCollection(elements, title, folder) {\r\n var index = await this.findCollectionIndex(title, folder);\r\n if (index < 0)\r\n throw \"selection set doesn't exist\";\r\n\r\n var collections = await this.getCollections();\r\n\r\n await this.bimSearch.addElementsToCollection(collections.collectionsByFolder[folder][index], elements);\r\n\r\n await this.saveColletions(collections);\r\n\r\n return collections.collectionsByFolder[folder][index];\r\n }\r\n\r\n async removeFromCollection(elements, title, folder) {\r\n var index = await this.findCollectionIndex(title, folder);\r\n if (index < 0)\r\n throw \"selection set doesn't exist\";\r\n\r\n var collections = await this.getCollections();\r\n\r\n await this.bimSearch.removeElementsFromCollection(collections.collectionsByFolder[folder][index], elements);\r\n\r\n await this.saveColletions(collections);\r\n\r\n return collections.collectionsByFolder[folder][index];\r\n }\r\n\r\n async deleteCollection(title, folder) {\r\n var collections = await this.getCollections();\r\n var index = await this.findCollectionIndex(title, folder);\r\n if (index >= 0) {\r\n collections.collectionsByFolder[folder].splice(index, 1);\r\n await this.saveColletions(collections);\r\n } else\r\n throw \"can't find selection set\";\r\n } \r\n\r\n async editCollection(oldTitle, oldFolder, newTitle, newFolder, newDescreption, newColor) {\r\n\r\n var collections = await this.getCollections();\r\n var index = await this.findCollectionIndex(oldTitle, oldFolder);\r\n if (index < 0)\r\n throw \"can't find selection set\";\r\n if (oldTitle != newTitle || oldFolder != newFolder) {\r\n var index2 = await this.findCollectionIndex(newTitle, newFolder);\r\n if (index2 >= 0)\r\n throw \"selection set with new name already exist in the folder\";\r\n }\r\n\r\n var col = collections.collectionsByFolder[oldFolder][index];\r\n collections.collectionsByFolder[oldFolder].splice(index, 1);\r\n\r\n await this.saveCollection(col, newTitle, newFolder, newDescreption, newColor);\r\n }\r\n\r\n async addCollectionFolder(folderName) {\r\n var collections = await this.getCollections();\r\n if (collections.collectionsByFolder[folderName] == null) {\r\n collections.collectionsByFolder[folderName] = [];\r\n await this.saveColletions(collections);\r\n }\r\n else\r\n throw \"folder already exist\";\r\n }\r\n\r\n async deleteCollectionFolder(folderName) {\r\n if (folderName == defaultCollectionFolder)\r\n throw \"can't delete default selection sets folder\";\r\n\r\n var collections = await this.getCollections();\r\n if (collections.collectionsByFolder[folderName] == null)\r\n throw \"folder doesn't exist\";\r\n else {\r\n delete collections.collectionsByFolder[folderName];\r\n await this.saveColletions(collections);\r\n }\r\n }\r\n\r\n async renameCollectionFolder(originalName, newName) {\r\n if (originalName == defaultCollectionFolder)\r\n throw \"can't rename default selection sets folder\";\r\n\r\n var collections = await this.getCollections();\r\n if (collections.collectionsByFolder[newName] != null)\r\n throw (\"Folder already exist\");\r\n if (collections.collectionsByFolder[originalName] == null)\r\n throw (\"Folder doesn't exist\");\r\n\r\n collections.collectionsByFolder[newName] = collections.collectionsByFolder[originalName];\r\n delete collections.collectionsByFolder[originalName];\r\n await this.saveColletions(collections);\r\n }\r\n\r\n async saveColletions(collections) {\r\n this.collections = collections;\r\n this.saveCollectionsToDb();\r\n }\r\n\r\n\r\n async saveCollectionsToDb() {\r\n var url = `/api/forge/userdata/collections`;\r\n try {\r\n var res = await postToServer(url, this.collections);\r\n var success = await res.json();\r\n if (!success && !this.alertGiven) {\r\n this.alertGiven = true;\r\n window.alert(\"Oops! You have reaced the maximum memory for this model.\\nYou can continue creating selection sets but they will not be saved.\\nTo free some memory for this model, go to the selection set window and delete some of your unused selection sets.\\nLet us know if you have any question or need some help\");\r\n }\r\n }\r\n catch (err) {\r\n logError(\"FrontEnd.src.utils.builder.BimsearchViewer.saveColletions\", err.toString());\r\n }\r\n }\r\n\r\n colorCollections(collections) {\r\n if (!Array.isArray(collections))\r\n collections = [];\r\n\r\n this.viewer.clearThemingColors();\r\n var colorsArray = new Object();\r\n var elemntsToIsolate = [];\r\n\r\n collections.forEach(collection => {\r\n var color = new window.THREE.Color(collection.color);\r\n collection.elements.forEach(element => {\r\n var viewerId = this.bimSearch.propertiesManager.modelIdToViewerId[modelIdToKey(element.id)];\r\n if (viewerId != null) {\r\n if (colorsArray[viewerId] == null) {\r\n colorsArray[viewerId] = [];\r\n elemntsToIsolate.push(viewerId);\r\n }\r\n\r\n colorsArray[viewerId].push(color);\r\n }\r\n });\r\n\r\n });\r\n\r\n elemntsToIsolate.forEach(element => {\r\n var colors = colorsArray[element].length;\r\n if (colors > 0) {\r\n var sumR = 0, sumG = 0, sumB = 0;\r\n colorsArray[element].forEach(color => {\r\n sumR += color.r;\r\n sumG += color.g;\r\n sumB += color.b;\r\n });\r\n\r\n var colorVector = new window.THREE.Vector4(sumR/colors, sumG/colors, sumB/colors, 1);\r\n this.viewer.setThemingColor(element, colorVector);\r\n }\r\n });\r\n\r\n this.viewer.clearSelection();\r\n this.viewer.isolate(elemntsToIsolate);\r\n\r\n }\r\n\r\n registerCollectionMenuItems(saveAsCollection, copyToNewCollection, unassignSelection) {\r\n this.viewer.registerContextMenuCallback('collectionItems', (menu, status) => {\r\n if (status.hasSelected) {\r\n menu.push({\r\n title: 'Save as selection set',\r\n target: saveAsCollection\r\n });\r\n menu.push({\r\n title: 'Copy to new selection set',\r\n target: copyToNewCollection\r\n });\r\n }\r\n });\r\n }\r\n\r\n unregisterCollectionMenuItems() {\r\n this.viewer.unregisterContextMenuCallback('collectionItems');\r\n }\r\n\r\n isolateSelection() {\r\n this.viewer.isolate(this.viewer.getSelection());\r\n }\r\n\r\n hideSelection() {\r\n this.viewer.hide(this.viewer.getSelection());\r\n }\r\n\r\n showAll() {\r\n this.viewer.showAll();\r\n }\r\n\r\n toggleGhosting(onOff) {\r\n this.viewer.setGhosting(onOff);\r\n }\r\n\r\n // private:\r\n\r\n //return the collection index in the folder, -1 if not found\r\n async findCollectionIndex(title, folder) {\r\n var collections = await this.getCollections();\r\n var index = -1;\r\n\r\n if (collections.collectionsByFolder[folder] != null) \r\n index = collections.collectionsByFolder[folder].findIndex(element => element.title == title);\r\n\r\n return index;\r\n }\r\n\r\n onDocumentLoadSuccess(doc) {\r\n // if a viewableId was specified, load that view, otherwise the default view\r\n var viewables = doc.getRoot().getDefaultGeometry();\r\n\r\n // Try to find first 3d view and set it as active\r\n var viewItems = doc.getRoot().search({ role: \"3d\", type: \"geometry\" });\r\n if (viewItems.length > 0) {\r\n var firstViewItem = viewItems[0];\r\n if (\r\n firstViewItem.data !== undefined &&\r\n firstViewItem.data.guid !== undefined\r\n ) {\r\n viewables = doc.getRoot().findByGuid(firstViewItem.data.guid);\r\n }\r\n }\r\n\r\n this.viewer.loadDocumentNode(doc, viewables).then((i) => {\r\n this.toggleGhosting(true);\r\n });\r\n }\r\n\r\n onDocumentLoadFailure(viewerErrorCode) {\r\n logError(\r\n \"FrontEnd.utils.builder.BimsearchViewer.onDocumentLoadFailure\",\r\n viewerErrorCode.toString()\r\n );\r\n }\r\n\r\n removeButtons() {\r\n if (this.viewer.toolbar == null) return;\r\n\r\n var navToolsConrol = this.viewer.toolbar.getControl(\"navTools\");\r\n if (navToolsConrol)\r\n while (navToolsConrol._controls.length > 0)\r\n navToolsConrol.removeControl(navToolsConrol._controls[0]._id);\r\n\r\n var modelToolsControl = this.viewer.toolbar.getControl(\"modelTools\");\r\n\r\n if (modelToolsControl) {\r\n modelToolsControl.removeControl(\"toolbar-explodeTool\");\r\n modelToolsControl.removeControl(\"toolbar-sectionTool\");\r\n }\r\n\r\n var settingsToolsConrol = this.viewer.toolbar.getControl(\"settingsTools\");\r\n if (settingsToolsConrol)\r\n settingsToolsConrol.removeControl(\"toolbar-modelStructureTool\");\r\n }\r\n\r\n // method to get credentials token\r\n getForgeToken(callback) {\r\n fetch(\"/api/forge/oauth/token\").then((res) => {\r\n res.json().then((data) => {\r\n callback(data.access_token, data.expires_in);\r\n });\r\n });\r\n }\r\n\r\n closeVisualClusters(id) {\r\n if (this.viewer.loadedExtensions[\"Autodesk.VisualClusters\"] === undefined) {\r\n return;\r\n }\r\n if (\r\n this.viewer.loadedExtensions[\"Autodesk.VisualClusters\"].clusterButton\r\n ._state == 0\r\n )\r\n this.viewer.loadedExtensions[\r\n \"Autodesk.VisualClusters\"\r\n ].clusterButton.onClick();\r\n }\r\n\r\n async modelLoaded() {\r\n this.viewer.getObjectTree((tree) => {\r\n bimSearchViewerInstance.treeLoaded(tree);\r\n });\r\n }\r\n\r\n async treeLoaded(tree) {\r\n //set subtitile by model name and loaded version\r\n this.modelName = this.viewer.model\r\n .getData()\r\n .loadOptions.bubbleNode.getRootNode()\r\n .children[0].name();\r\n var modelHeader = this.modelName;\r\n if (this.version != null)\r\n modelHeader += \" (\" + this.version.split(\":\")[0] + \")\";\r\n\r\n var res = await this.bimSearch.loadModel(this.viewer, tree, this.modelName);\r\n\r\n //Add log to cluster\r\n try {\r\n originalClusterMethod =\r\n this.viewer.loadedExtensions[\"Autodesk.VisualClusters\"].clusterButton\r\n .onClick;\r\n this.viewer.loadedExtensions[\r\n \"Autodesk.VisualClusters\"\r\n ].clusterButton.onClick = (data) => {\r\n bimSearchViewerInstance.clusterClickMethod(data);\r\n };\r\n } catch (err) {\r\n logError(\r\n \"FrontEnd.src.utils.builder.BimsearchViewer.treeLoaded\",\r\n err.toString()\r\n );\r\n }\r\n\r\n //Change Measure units\r\n if (\r\n this.viewer.loadedExtensions[\"Autodesk.Measure\"] != null &&\r\n this.viewer.loadedExtensions[\"Autodesk.Measure\"].sharedMeasureConfig !=\r\n null\r\n )\r\n this.viewer.loadedExtensions[\r\n \"Autodesk.Measure\"\r\n ].sharedMeasureConfig.units = \"cm\";\r\n\r\n this.returnMehod(res, modelHeader);\r\n }\r\n\r\n clusterClickMethod(data) {\r\n originalClusterMethod(data);\r\n var onOff =\r\n this.viewer.loadedExtensions[\"Autodesk.VisualClusters\"].clusterButton\r\n ._state == 0;\r\n logClusterButton(onOff);\r\n }\r\n\r\n async onDoubleClick(data) {\r\n var viewSelection = this.viewer.getSelection();\r\n if (viewSelection.length != 1) return;\r\n\r\n var props = this.bimSearch.propertiesManager.GetProperties(\r\n viewSelection[0]\r\n );\r\n if (props == null) return;\r\n\r\n var categoryProp = props.properties.find(\r\n (prop) =>\r\n prop.displayName == \"Category\" || prop.attributeName == \"Category\"\r\n );\r\n if (categoryProp == null) return;\r\n\r\n var category = categoryProp.displayValue;\r\n\r\n if (category == \"Revit Category\") return;\r\n\r\n var typeProp = props.properties.find(\r\n (prop) =>\r\n prop.displayName == typeParameter || prop.attributeName == typeParameter\r\n );\r\n if (typeProp == null) return;\r\n\r\n var type = typeProp.displayValue;\r\n\r\n var selection = [];\r\n for (var i = 0; i < this.bimSearch.allElements.length; i++) {\r\n var cProps = this.bimSearch.propertiesManager.GetProperties(\r\n this.bimSearch.allElements[i]\r\n );\r\n var cCategoryProp = cProps.properties.find(\r\n (prop) =>\r\n prop.displayName == \"Category\" || prop.attributeName == \"Category\"\r\n );\r\n var cTypeProp = cProps.properties.find(\r\n (prop) =>\r\n prop.displayName == typeParameter ||\r\n prop.attributeName == typeParameter\r\n );\r\n\r\n if (\r\n cCategoryProp != null &&\r\n cCategoryProp.displayValue == category &&\r\n cTypeProp != null &&\r\n cTypeProp.displayValue == type\r\n )\r\n selection.push(this.bimSearch.allElements[i]);\r\n }\r\n\r\n this.selectElements(selection);\r\n\r\n logDoubleClick(category, type);\r\n }\r\n\r\n getFullSelectionData() {\r\n return this.bimSearch.getDataByCategory(this.viewer.getSelection());\r\n }\r\n\r\n async rightClick(menu, status) {\r\n logRightClick(status.numSelected);\r\n }\r\n\r\n async handleSelectionChange(selection) {\r\n if (this.onSelectionChangeCallback != null) {\r\n if (selection == null || selection.dbIdArray == null)\r\n selection.dbIdArray = [];\r\n var res = this.bimSearch.getCounterData(selection.dbIdArray);\r\n this.onSelectionChangeCallback(res);\r\n }\r\n }\r\n}\r\n\r\nvar bimSearchViewerInstance;\r\n\r\nconst categoryPre = \"Revit \";\r\nconst typeParameter = \"Type Name\";\r\nconst defaultCollectionFolder = \"My selection sets\";\r\n\r\nvar originalClusterMethod;\r\n","// Exported methods to connect the BIMSearch UI to the engine and viewer\r\n\r\nimport { BimSearch } from \"./BimSearch\";\r\nimport { BimsearchViewer } from \"./BimsearchViewer\";\r\nimport {\r\n logCreateSchedule, logSelectCategory,\r\n\r\n\r\n logTableLineSelected, logTemplate\r\n} from \"./IAmecLog\";\r\nimport { DataForMenus } from \"./ResultClasses\";\r\nimport { Collection } from \"./TemplatesAndCollections\";\r\n\r\n// Method to be called when the model first open\r\n// paramters:\r\n// itemStruct - model item (vertion or item) - struct recieved from getNextLevel\r\n// returnMethod - method called when the model is done loading will pass 2 paramters, DataForMenus object, and header for the left menu\r\n// no longer used, doubleClickMethod - method that will be called whenever a user double click of element and should change the left menu selection, pass DataForMenus as parameter\r\n// divElement - ui div element for autodesk viewer\r\n// leafText - opened element name recieved from getNextLevel, only used for adding version to header\r\nexport async function loadModel(\r\n itemStruct,\r\n returnMethod,\r\n divElement,\r\n leafText = null\r\n) {\r\n //var leafId = itemStruct.idToOpen;\r\n console.log(\"Load Model\");\r\n console.log(itemStruct);\r\n\r\n if (itemStruct == true) {\r\n itemStruct = {};\r\n itemStruct.id = \"https://developer.api.autodesk.com/data/v1/projects/b.3139d2cd-5f07-46f0-8e27-89ca76d677be/items/urn:adsk.wipprod:dm.lineage:WOlPZrkuT_2vipWslB1eyw\";\r\n itemStruct.idToOpen = \"dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLldPbFBacmt1VF8ydmlwV3NsQjFleXc_dmVyc2lvbj00\";\r\n itemStruct.text = \"Office Building_english.rvt\";\r\n }\r\n\r\n // use the return method to return empty data in order to clear the previous model\r\n var tempData = new DataForMenus();\r\n // returnMethod(tempData, \"\");\r\n\r\n bimSearch = new BimSearch();\r\n\r\n bimSeachViewer = new BimsearchViewer(\r\n itemStruct,\r\n divElement,\r\n bimSearch,\r\n returnMethod,\r\n leafText\r\n );\r\n}\r\n\r\n// Register the method that gets called when selection changed\r\n// onSelectionChangeCallback - method called whenever the selection is changed, should effect the quick count widget, pass array of QuickDataField as paramter\r\nexport async function registerSelectionChangeMethod(callback) {\r\n bimSeachViewer.onSelectionChangeCallback = callback;\r\n}\r\n\r\n// Unregister the method that gets called when selection changed\r\nexport async function unRegisterSelectionChangeMethod() {\r\n bimSeachViewer.onSelectionChangeCallback = null;\r\n}\r\n\r\n// Called when the user press the select categories button\r\n// pass array of the selected categories\r\n// return DataForMenus that should change the left menu\r\nexport async function updateCategory(categories, returnMethod) {\r\n var res = await bimSearch.selectCategory(categories, null);\r\n\r\n bimSeachViewer.isolateElements(bimSearch.categoryElements);\r\n\r\n logSelectCategory(bimSearch);\r\n\r\n return res;\r\n}\r\n\r\n// called when the user change the parameter that the 2nd filter is done by\r\n// recieves the parameter we want to filter by\r\n// return DataForMenus that should change the left menu\r\nexport async function updateFilterBy(filter) {\r\n return await bimSearch.changeFilterBy(filter);\r\n}\r\n\r\n// called when the user apply the second filter value selection\r\n// recieves an array of the selected values\r\n// return DataForMenus that should change the left menu\r\nexport async function applySecondFilter(values) {\r\n var res = await bimSearch.selectSecondFilterValues(values);\r\n bimSeachViewer.isolateElements(bimSearch.filteredElements);\r\n return res;\r\n}\r\n\r\n// called when the user apply the second filter using the operator option\r\n// operator - chosen operator operatorValues enum\r\n// return DataForMenus that should change the left menu\r\nexport async function applySecondFilterWithOperator(operator, value) {\r\n var res = await bimSearch.selectSecondFilterValueWithOperator(\r\n operator,\r\n value\r\n );\r\n bimSeachViewer.isolateElements(bimSearch.filteredElements);\r\n return res;\r\n}\r\n\r\n// called when the user change the line selection in the table\r\n// elements - an array of the coombined elements from all selected lines\r\nexport async function tableSelect(elements) {\r\n bimSeachViewer.selectElements(elements);\r\n logTableLineSelected();\r\n}\r\n\r\n// used to isolate the table on 0 lines collection\r\nexport async function isolateElements(elements) {\r\n bimSeachViewer.isolateElements(elements);\r\n}\r\n\r\n// called when the user selectes a template\r\n// templateName - chosen template\r\n// return DataForMenus that should change the left menu\r\n// normally getSchedule should be called immidiately after to recieve the table\r\nexport async function chooseTemplate(templateName, templateFolder = \"Default\") {\r\n var res = await bimSearch.selectTemplate(templateName, templateFolder);\r\n\r\n bimSeachViewer.isolateElements(bimSearch.filteredElements);\r\n\r\n logSelectCategory(bimSearch);\r\n logTemplate(templateName);\r\n\r\n return res;\r\n}\r\n\r\n// Gets the data for the table\r\n// properties - selected properties\r\n// groupingParameters - selected grouping paramters\r\n// return DataForTable object\r\nexport async function getSchedule(properties, groupingParameters) {\r\n logCreateSchedule(bimSearch, properties, groupingParameters);\r\n\r\n return await bimSearch.createSchedule(properties, groupingParameters);\r\n}\r\n\r\n// Should be called whenever the viewer div element changes size\r\nexport function resizeViewer() {\r\n if (bimSeachViewer && bimSeachViewer.viewer) bimSeachViewer.viewer.resize();\r\n}\r\n\r\n// return a dictonary object\r\n// category name --> [] of QuickDataField\r\nexport function getDetailedSelectionInfo() {\r\n return bimSeachViewer.getFullSelectionData();\r\n}\r\n\r\n// Get current view screenshot\r\nexport async function viewerGetScreenShot(width, height, callback) {\r\n if (bimSeachViewer.viewer) {\r\n bimSeachViewer.viewer.getScreenShot(width, height, callback);\r\n }\r\n}\r\n\r\n// return QuickInfo\r\nexport async function getTemplateQuickInfo(templateName, TemplateFolder) {\r\n return await bimSearch.getTemplateInfo(templateName, TemplateFolder);\r\n}\r\n\r\n// Craete new template folder\r\n// returns templates folders // Dictionary (after the change)\r\n// throw \"Folder already exist\"\r\nexport function addTemplateFolder(folderName) {\r\n return bimSearch.addTemplateFolder(folderName);\r\n}\r\n\r\n// Delete a template folder\r\n// returns templates folders // Dictionary (after the change)\r\n// throw \"Folder doesn't exist\"\r\nexport function deleteTemplateFolder(folderName) {\r\n return bimSearch.deleteTemplateFolder(folderName);\r\n}\r\n\r\n// rename a template folder\r\n// returns templates folders // Dictionary (after the change)\r\n// throw \"Folder already exist\"\r\n// throw \"Folder doesn't exist\"\r\nexport function renameTemplateFolder(originalName, newName) {\r\n return bimSearch.renameTemplateFolder(originalName, newName);\r\n}\r\n\r\n//Save a new BIMSearch template\r\n// Parameters:\r\n// templateFolder - string\r\n// title - template namne - string\r\n// description - string\r\n// properties - selected properties [] of string\r\n// groupBy - selected grouping optrions - [] of string\r\n// searchValue - current table search value - string\r\n// returns-\r\n// templates folders // Dictionary (after the change)\r\n// Comment-\r\n// If template already exist resave it - responsibility to confirm with the user outside this function\r\nexport function saveTemplate(templateFolder, title, description, properties, groupBy, searchValue) {\r\n return bimSearch.saveTemplate(templateFolder, title, description, properties, groupBy, searchValue);\r\n}\r\n\r\n// deletes a new BIMSearch template\r\n// Parameters:\r\n// templateFolder - string\r\n// title - template namne - string\r\n// returns-\r\n// templates folders // Dictionary (after the change)\r\n// throws-\r\n// \"can't find template\"\r\nexport function deleteTemplate(templateFolder, title) {\r\n return bimSearch.deleteTemplate(templateFolder, title);\r\n}\r\n\r\n// Edit a new BIMSearch template\r\n// throws-\r\n// \"can't find template\"\r\n// \"new name already taken\"\r\n// returns-\r\n// templates folders // Dictionary (after the change)\r\nexport function editTemplate(ogrinalTemplateFolder, originalTitle, newTemplateFolder, newTitle, newDescription) {\r\n return bimSearch.editTemplate(ogrinalTemplateFolder, originalTitle, newTemplateFolder, newTitle, newDescription);\r\n}\r\n\r\n// create a new collection, doesn't save it on DB\r\n// return collection\r\n// parameters:\r\n// elements, elements of selected lines, same a passed to tableSelect\r\nexport async function createCollection(elements, properties, groupedBy) {\r\n var collection = new Collection(properties, groupedBy);\r\n await bimSearch.addElementsToCollection(collection, elements);\r\n return collection;\r\n}\r\n\r\n// return DataForTable\r\nexport async function getCollectionTable(collection) {\r\n return await bimSearch.getCollectionTable(collection);\r\n}\r\n\r\n// Save a collection in the database for this model\r\n// throw \"selection set already exist\";\r\nexport async function saveCollection(collection, title, folder, descreption, color) {\r\n await bimSeachViewer.saveCollection(collection, title, folder, descreption, color);\r\n}\r\n\r\n// returns-\r\n// collection after change\r\n// throw \"selection set doesn't exist\";\r\nexport async function addToCollection(elements, title, folder) {\r\n return await bimSeachViewer.addToCollection(elements, title, folder);\r\n}\r\n\r\nexport async function removeFromCollection(elements, title, folder) {\r\n return await bimSeachViewer.removeFromCollection(elements, title, folder);\r\n}\r\n\r\nexport async function removeFromTempCollection(elements, collection) {\r\n await bimSearch.removeElementsFromCollection(collection, elements);\r\n return collection;\r\n}\r\n\r\n// returns-\r\n// collection after change\r\nexport async function addToTempCollection(elements, collection) {\r\n await bimSearch.addElementsToCollection(collection, elements);\r\n return collection;\r\n}\r\n\r\n// returns-\r\n// [] of strings\r\nexport async function getCollectionsFolders() {\r\n var collections = await bimSeachViewer.getCollections();\r\n var collectionFolders = Object.keys(collections.collectionsByFolder);\r\n collectionFolders.sort();\r\n\r\n return collectionFolders;\r\n}\r\n\r\n// returns-\r\n// [] of collection\r\nexport async function getCollectionsForFolder(folder) {\r\n var collections = await bimSeachViewer.getCollections();\r\n return collections.collectionsByFolder[folder];\r\n}\r\n\r\n// returns-\r\n// QuickInfo\r\nexport async function getCollectionInfo(collection) {\r\n return await bimSearch.getCollectionInfo(collection);\r\n}\r\n\r\n// throws-\r\n// \"can't find selection set\"\r\n// \"selection set already exist\" - if new name already exist\r\nexport async function editCollection(oldTitle, oldFolder, newTitle, newFolder, newDescreption, newColor) {\r\n await bimSeachViewer.editCollection(oldTitle, oldFolder, newTitle, newFolder, newDescreption, newColor);\r\n}\r\n\r\n\r\n// returns-\r\n// collection after change\r\n// throw \"selection set doesn't exist\";\r\nexport async function addSelectionToCollection(title, folder) {\r\n var selection = bimSeachViewer.viewer.getSelection();\r\n return await addToCollection(selection, title, folder);\r\n}\r\n\r\nexport async function removeSelectionFromCollection(title, folder) {\r\n var selection = bimSeachViewer.viewer.getSelection();\r\n return await removeFromCollection(selection, title, folder);\r\n}\r\n\r\nexport async function removeSelectionFromTempCollection(collection) {\r\n var selection = bimSeachViewer.viewer.getSelection();\r\n return await removeFromTempCollection(selection, collection);\r\n}\r\n\r\nexport async function createTempCollectionFromSelection() {\r\n var selection = bimSeachViewer.viewer.getSelection();\r\n var properties = [\"Type Name\", \"Description\", \"Length\", \"Area\", \"Volume\"];\r\n var groups = [];\r\n return await createCollection(selection, properties, groups);\r\n}\r\n\r\n// throws-\r\n// \"can't find selection set\"\r\nexport async function deleteCollection(title, folder) {\r\n await bimSeachViewer.deleteCollection(title, folder);\r\n}\r\n\r\n// Color an array of collections\r\n// input: Collection[]\r\nexport function colorCollections(collections) {\r\n bimSeachViewer.colorCollections(collections);\r\n}\r\n\r\n// Craete new collection folder\r\n// returns collections folders // [] of strings (after the change)\r\n// throw \"folder already exist\"\r\nexport async function addCollectionFolder(folderName) {\r\n await bimSeachViewer.addCollectionFolder(folderName);\r\n return await getCollectionsFolders();\r\n}\r\n\r\n// Delete a collection folder\r\n// returns collection folders // [] of strings (after the change)\r\n// throw \"folder doesn't exist\"\r\nexport async function deleteCollectionFolder(folderName) {\r\n await bimSeachViewer.deleteCollectionFolder(folderName);\r\n return await getCollectionsFolders();\r\n}\r\n\r\n// Rename a collection folder\r\n// returns collection folders // [] of strings (after the change)\r\n// throw \"Folder already exist\"\r\n// throw \"Folder doesn't exist\"\r\nexport async function renameCollectionFolder(originalName, newName) {\r\n await bimSeachViewer.renameCollectionFolder(originalName, newName);\r\n return await getCollectionsFolders();\r\n}\r\n\r\n\r\n// return a dictonary object\r\n// category name --> [] of QuickDataField\r\nexport async function getDetailedCollectionInfo(collection) {\r\n return await bimSearch.getDetailedCollectionInfo(collection);\r\n}\r\n\r\n// register 3 call-backs for the right click menu\r\nexport function registerRightClickMethods(saveAsCollection, copyToNewCollection, unassignSelection) {\r\n bimSeachViewer.registerCollectionMenuItems(saveAsCollection, copyToNewCollection, unassignSelection);\r\n \r\n}\r\n\r\n// unregister 3 call-backs for the right click menu\r\nexport function unregisterRightClickMethods() {\r\n bimSeachViewer.unregisterCollectionMenuItems();\r\n}\r\n\r\nexport async function getSelection() {\r\n var selection = bimSeachViewer.viewer.getSelection();\r\n return selection;\r\n}\r\n\r\nexport async function isolateSelection() {\r\n bimSeachViewer.isolateSelection();\r\n}\r\n\r\nexport async function hideSelection() {\r\n bimSeachViewer.hideSelection();\r\n}\r\n\r\nexport async function showAll() {\r\n bimSeachViewer.showAll();\r\n}\r\n\r\n// change ghosting mode, recieves true/false - true activate ghosting, false disables it\r\n// when opening a model ghosting will always be on\r\nexport async function toggleGhosting(onOff) {\r\n bimSeachViewer.toggleGhosting(onOff);\r\n}\r\n\r\n// local instances\r\nvar bimSeachViewer; // autodesk viewer\r\nvar bimSearch; // Bim search filtered data iterator\r\n","import {\r\n UPDATE_TABLE,\r\n RESIZE_TABLE,\r\n COLAPSE_DASH,\r\n GET_COLLECTION_TABLE,\r\n CLOSE_TAB,\r\n SET_ACTIVE_TAB,\r\n REPLACE_TAB, ADD_SELECT_ITEMS\r\n} from \"../constans\";\r\nimport {\r\n getSchedule,\r\n tableSelect,\r\n resizeViewer, getCollectionTable,\r\n} from \"../../utils/builder/IScheduleLogic\";\r\nimport { logError } from \"../../utils/builder/IAmecLog\";\r\n\r\nexport const updateTable = (properties, groups) => async (dispatch) => {\r\n try {\r\n const res = await getSchedule(properties, groups);\r\n\r\n dispatch({\r\n type: UPDATE_TABLE,\r\n payload: {...res, properties, groups}\r\n });\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.table.updateTable\", err.toString());\r\n }\r\n};\r\nexport const ElementsAction = (elements) => async (dispatch) => {\r\n try {\r\n await tableSelect(elements);\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.table.ElementsAction\", err.toString());\r\n }\r\n};\r\n\r\nexport const resizeTable = () => {\r\n const width = document.getElementById(\"sidebar\").offsetWidth;\r\n\r\n resizeViewer();\r\n\r\n return {\r\n type: RESIZE_TABLE,\r\n payload: width,\r\n };\r\n};\r\n\r\nexport const colaplseDashboard = (element) => async (dispatch) => {\r\n await dispatch({\r\n type: COLAPSE_DASH,\r\n payload: element,\r\n });\r\n\r\n resizeViewer();\r\n};\r\n\r\nexport const getTableCollection = (res) => async (dispatch) => {\r\n const tableCollection = await getCollectionTable(res.collection);\r\n\r\n await dispatch({\r\n type: GET_COLLECTION_TABLE,\r\n payload: { tableCollection, collection: res.collection, folder: res.folder},\r\n });\r\n};\r\n\r\nexport const closeTab = (tab) => {\r\n\r\n return {\r\n type: CLOSE_TAB,\r\n payload: tab,\r\n };\r\n};\r\n\r\nexport const setTabActive = (tab) => {\r\n\r\n return {\r\n type: SET_ACTIVE_TAB,\r\n payload: tab,\r\n };\r\n};\r\n\r\nexport const replaceTab = (res) => {\r\n\r\n return {\r\n type: REPLACE_TAB,\r\n payload: res,\r\n };\r\n};\r\n\r\nexport const addSelectItems = (res) => {\r\n\r\n return {\r\n type: ADD_SELECT_ITEMS,\r\n payload: res,\r\n };\r\n};\r\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCheckCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\",\n stroke: \"#0F8E14\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.182 4.5L5.182 7.5L3.81836 6.13636\",\n stroke: \"#0F8E14\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheckCircle);\nexport default __webpack_public_path__ + \"static/media/check-circle.e6961459.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport \"./Toast.scss\";\r\n\r\nconst Toast = ({\r\n children,\r\n}) => {\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport default Toast;\r\n","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCrossCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\",\n stroke: \"#FF3D00\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 4.5L4.5 7.5\",\n stroke: \"#FF3D00\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.5 4.5L7.5 7.5\",\n stroke: \"#FF3D00\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCrossCircle);\nexport default __webpack_public_path__ + \"static/media/cross-circle.3f4be898.svg\";\nexport { ForwardRef as ReactComponent };","import React, { createContext } from \"react\";\r\nimport useBuilderData from \"hooks/useBuilderData\";\r\n\r\nlet BuilderDataContext;\r\nconst { Provider } = (BuilderDataContext = createContext());\r\n\r\nconst BuilderDataProvider = ({ children }) => {\r\n const {\r\n builderData,\r\n setBuilderData\r\n } = useBuilderData();\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { BuilderDataContext, BuilderDataProvider };\r\n","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgProject(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 1.5L1.5 5.25L9 9L16.5 5.25L9 1.5Z\",\n stroke: \"#9D9FA4\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 12.75L9 16.5L16.5 12.75\",\n stroke: \"#9D9FA4\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 9L9 12.75L16.5 9\",\n stroke: \"#9D9FA4\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgProject);\nexport default __webpack_public_path__ + \"static/media/project.73b0e93c.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport \"./ManagerToast.scss\";\r\n\r\nimport { ReactComponent as SuccessIcon } from \"static/icons/check-circle.svg\";\r\nimport { ReactComponent as ErrorIcon } from \"static/icons/cross-circle.svg\";\r\n\r\nconst ManagerToast = ({isSuccess, text}) => {\r\n return (\r\n
\r\n {\r\n isSuccess ?\r\n
\r\n \r\n
:\r\n
\r\n \r\n
\r\n }\r\n
\r\n {text}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ManagerToast;\r\n","import React, { useEffect, useLayoutEffect, useState } from 'react';\r\nimport { logError } from \"../utils/builder/IAmecLog\";\r\nimport { cloneDeep } from 'lodash';\r\nimport toast from \"react-hot-toast\";\r\nimport Toast from \"../components/Toasts/Toast\";\r\nimport ManagerToast from \"../components/Toasts/ManagerToast\";\r\nimport { subscriptionType } from \"./data\";\r\n\r\nexport const updateFilters = (res) => {\r\n const deepCopy = cloneDeep(res);\r\n\r\n for (const key in deepCopy) {\r\n if (!deepCopy[key]) {\r\n delete deepCopy[key]\r\n }\r\n }\r\n\r\n return deepCopy;\r\n};\r\n\r\n// items filtering by search\r\nexport const searchByText = (list, value) => {\r\n if (!value) {\r\n return list;\r\n }\r\n const newlist = list.filter((el) => {\r\n if (typeof el === \"string\") {\r\n return el.toLowerCase().includes(value.toLowerCase());\r\n }\r\n return (\r\n el.text.toLowerCase().includes(value.toLowerCase()) ||\r\n el.type.toString().includes(value.toString())\r\n );\r\n });\r\n return newlist;\r\n};\r\n// table items filtering by search\r\nexport const searchBy = (arr, value) => {\r\n if (!value) {\r\n return arr;\r\n }\r\n return arr.filter((list) => {\r\n const condition = list.find((el) => {\r\n if (typeof el === \"string\") {\r\n return el.toLowerCase().includes(value.toLowerCase());\r\n }\r\n return value.toLowerCase() == el;\r\n });\r\n return condition;\r\n });\r\n};\r\n\r\nexport const searchInlines = (arr, value) => {\r\n if (!value) {\r\n return arr;\r\n }\r\n\r\n return arr.filter(({ lines }) => {\r\n const condition = lines.find((el) => {\r\n if (typeof el === \"string\") {\r\n return el.toLowerCase().includes(value.toLowerCase());\r\n }\r\n\r\n return value.toLowerCase() == el;\r\n });\r\n \r\n return condition;\r\n });\r\n};\r\n\r\nexport const toArray = (obj) => {\r\n let arr = [];\r\n for (const key in obj) {\r\n arr = [...arr, ...obj[key]];\r\n }\r\n return arr;\r\n};\r\n\r\n// tree state saving & searching\r\nconst setFun = (list) => {\r\n let tempObj = {};\r\n list.map((el) => (tempObj[el.id] = {}));\r\n return tempObj;\r\n};\r\n\r\nexport const treeAdd = (object, value, list, condition, level) => {\r\n if (level === 1) {\r\n return { ...object, [value]: condition ? setFun(list) : {} };\r\n }\r\n if (Object.keys(object).length === 0) {\r\n object = condition ? { [value]: setFun(list) } : {};\r\n } else {\r\n for (const key in object) {\r\n if (value === key) {\r\n object[value] = condition ? setFun(list) : {};\r\n return object;\r\n }\r\n }\r\n\r\n for (const key in object) {\r\n treeAdd(object[key], value, list, condition);\r\n }\r\n }\r\n\r\n return object;\r\n};\r\n//\r\nexport let searchTreeCondition = false;\r\n\r\nexport const searchTreeFun = (tree, id) => {\r\n let condition = false;\r\n\r\n const bodyFun = (tree, id) => {\r\n if (Object.keys(tree).length !== 0) {\r\n for (const key in tree) {\r\n if (id === key) {\r\n if (Object.keys(tree[key]).length !== 0) {\r\n return (condition = true);\r\n }\r\n }\r\n }\r\n for (const key in tree) {\r\n bodyFun(tree[key], id);\r\n }\r\n }\r\n return condition;\r\n };\r\n return bodyFun(tree, id);\r\n};\r\n\r\nexport const searchLevel = async (value, getNextLevel, id) => {\r\n let condition;\r\n try {\r\n let list = await getNextLevel(id);\r\n if (!value) {\r\n return {\r\n list,\r\n condition: false,\r\n };\r\n }\r\n const newList = list.filter((el) => {\r\n const elCondition = el.text.toLowerCase().includes(value.toLowerCase());\r\n if (elCondition) {\r\n condition = true;\r\n }\r\n return elCondition;\r\n });\r\n return {\r\n list: newList,\r\n condition: condition,\r\n };\r\n } catch (err) {\r\n logError(\"FrontEnd.src.utils.helper.searchLevel\", err.toString());\r\n }\r\n};\r\n\r\nexport const findFoldersTreeObj = (id, treeItem) => {\r\n if (Array.isArray(treeItem)) {\r\n const idIndex = treeItem.findIndex(item => item.id == id);\r\n\r\n if (idIndex >= 0) {\r\n return treeItem[idIndex];\r\n } else {\r\n let obj = null;\r\n\r\n treeItem.some(treeArrItem => {\r\n const reqObj = findFoldersTreeObj(id, treeArrItem);\r\n\r\n if (reqObj) {\r\n obj = reqObj;\r\n }\r\n });\r\n\r\n return obj;\r\n }\r\n } else {\r\n if (treeItem.hasOwnProperty('childrenArr')) {\r\n const reqObj = findFoldersTreeObj(id, treeItem.childrenArr);\r\n\r\n if (reqObj) {\r\n return reqObj;\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const getFoldersBreadcrumbs = (id, treeItem) => {\r\n if (Array.isArray(treeItem)) {\r\n const idIndex = treeItem.findIndex(item => item.id == id);\r\n\r\n if (idIndex >= 0) {\r\n return [ treeItem[idIndex] ];\r\n } else {\r\n let arr = null;\r\n\r\n treeItem.some(treeArrItem => {\r\n const reqArr = getFoldersBreadcrumbs(id, treeArrItem);\r\n\r\n if (reqArr?.length) {\r\n arr = [treeArrItem, ...reqArr];\r\n }\r\n });\r\n\r\n if (arr?.length) {\r\n return arr;\r\n }\r\n }\r\n } else {\r\n if (treeItem.hasOwnProperty('childrenArr')) {\r\n const reqArr = getFoldersBreadcrumbs(id, treeItem.childrenArr);\r\n\r\n if (reqArr?.length) {\r\n return reqArr;\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const useOnClickOutside = (ref, handler) => {\r\n useEffect(() => {\r\n const listener = (event) => {\r\n if (!ref.current || ref.current.contains(event.target)) {\r\n return;\r\n }\r\n\r\n handler(event);\r\n };\r\n\r\n document.addEventListener('mousedown', listener);\r\n document.addEventListener('touchstart', listener);\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', listener);\r\n document.removeEventListener('touchstart', listener);\r\n };\r\n }, [ref, handler]);\r\n};\r\n\r\nexport const useElementSize = (element) => {\r\n const [size, setSize] = useState([0, 0]);\r\n\r\n useLayoutEffect(() => {\r\n const updateSize = () => {\r\n setSize([element?.offsetWidth, element?.offsetHeight]);\r\n };\r\n\r\n window.addEventListener('resize', updateSize);\r\n\r\n updateSize();\r\n\r\n return () => window.removeEventListener('resize', updateSize);\r\n }, [element]);\r\n\r\n return size;\r\n};\r\n\r\nexport const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n};\r\n\r\nexport const checkPremium = (subscription) => {\r\n\r\n const premiumUser = subscriptionType.premium;\r\n const blockedUser = subscriptionType.blocked;\r\n const trialUser = subscriptionType.trial;\r\n\r\n return subscription === premiumUser || subscription === blockedUser || subscription === trialUser;\r\n};\r\n\r\nexport const roundUp = (number) => {\r\n const arrayNumber = number.toString().split(\"\");\r\n const pointArrayNumber = arrayNumber.indexOf(\".\");\r\n\r\n return pointArrayNumber !== -1 ? arrayNumber.slice(0, pointArrayNumber + 3).join(\"\") : number;\r\n};\r\n\r\nexport const showToast = (isSuccess, text) => {\r\n\r\n toast((t) => (\r\n \r\n \r\n \r\n ),\r\n {\r\n duration: 2000,\r\n }\r\n );\r\n};\r\n\r\nexport const calculationQuickInfo = (baseObject, newObject, mathOperation) => {\r\n\r\n let result = null;\r\n\r\n if(baseObject) {\r\n result = baseObject.map((baseEl) => {\r\n\r\n let value = null;\r\n let unit = null;\r\n\r\n newObject.forEach((newEl) => {\r\n if(baseEl.name === newEl.name) {\r\n value = newEl.value;\r\n unit = newEl.unit;\r\n }\r\n })\r\n\r\n return {...baseEl, value: mathOperation === \"plus\" ? baseEl.value + value : baseEl.value - value, unit: baseEl.unit ? baseEl.unit : unit};\r\n })\r\n } else {\r\n result = newObject;\r\n }\r\n\r\n return result;\r\n};\r\n\r\nexport const dragAndDropElement = (element) => {\r\n\r\n element.style.zIndex = 1000;\r\n element.style.position = 'absolute';\r\n\r\n element.onmousedown = (e) => {\r\n\r\n const coords = getCoords(element);\r\n const shiftX = e.pageX - coords.left;\r\n const shiftY = e.pageY - coords.top;\r\n\r\n document.onmousemove = (e) => {\r\n element.style.left = e.pageX - shiftX + 'px';\r\n element.style.top = e.pageY - shiftY + 'px';\r\n };\r\n }\r\n\r\n element.onmouseup = () => {\r\n document.onmousemove = null;\r\n };\r\n\r\n const getCoords = (elem) => {\r\n let box = elem.getBoundingClientRect();\r\n return {\r\n top: box.top + window.scrollY,\r\n left: box.left + window.scrollX\r\n };\r\n }\r\n};\r\n\r\n","import { chooseTemplate } from \"../../utils/builder/IScheduleLogic\";\r\nimport { updateFilters } from \"../../utils/helpers\";\r\nimport {UPDATE_FILTER, RESET_TABLE, RESET, UPDATE_STATS, SET_QUICK_INFO_COMPARE} from \"../constans\";\r\nimport { updateTable } from \"./table\";\r\nimport { logError } from \"../../utils/builder/IAmecLog\";\r\n\r\nexport const updateFilter = (callBack, type) => async (dispatch) => {\r\n try {\r\n const res = await callBack();\r\n const data = updateFilters(res); //just deep copy of res\r\n\r\n dispatch({\r\n type: type,\r\n payload: data,\r\n });\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.filter.updateFilter\", err.toString());\r\n }\r\n};\r\n\r\nexport const clearSelectionState = (data) => async (dispatch) => {\r\n try {\r\n const dataCopy = updateFilters(data); //just deep copy of res\r\n\r\n dispatch({\r\n type: UPDATE_FILTER,\r\n payload: dataCopy,\r\n });\r\n\r\n dispatch({\r\n type: RESET_TABLE,\r\n });\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.filter.clearSelectionState\", err.toString());\r\n }\r\n};\r\n\r\nexport const setTemplateAction = (templateName, templateFolder) => async (dispatch) => {\r\n\r\n try {\r\n await dispatch({ type: RESET, payload: templateName });\r\n\r\n const res = await chooseTemplate(templateName, templateFolder);\r\n\r\n dispatch(updateTable(res.selection.properties, res.selection.groups));\r\n\r\n const data = updateFilters(res); //just deep copy of res\r\n\r\n dispatch({\r\n type: UPDATE_FILTER,\r\n payload: data,\r\n });\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.filter.setTemplateAction\", err.toString());\r\n }\r\n};\r\n\r\nexport const doubleClickCallback = (res) => (dispatch) => {\r\n const data = updateFilters(res);\r\n\r\n dispatch({\r\n type: UPDATE_FILTER,\r\n payload: data,\r\n });\r\n};\r\n\r\nexport const onSelectionChange = (quickCounterData) => (dispatch) => {\r\n\r\n try {\r\n dispatch({\r\n type: UPDATE_STATS,\r\n payload: quickCounterData,\r\n });\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.filter.onSelectionChange\", err.toString());\r\n }\r\n}\r\n\r\nexport const setQuickInfoCompare = (res) => {\r\n\r\n return {\r\n type: SET_QUICK_INFO_COMPARE,\r\n payload: res,\r\n };\r\n}\r\n","import {\r\n CREATE_COLLECTIONS_FOLDER,\r\n GET_FOLDERS_COLLECTIONS,\r\n SAVE_COLLECTION,\r\n SAVE_COLLECTIONS,\r\n RENAME_COLLECTIONS_FOLDER,\r\n DELETE_COLLECTIONS_FOLDER,\r\n EDIT_COLLECTIONS,\r\n DELETE_COLLECTIONS, UNASSIGN_FROM_COLLECTIONS,\r\n ADD_TO_NEW_COLLECTION, COPY_TO_COLLECTION,\r\n COPY_TO_COLLECTION_UNSAVED, ADD_ACTIVE_FOLDER,\r\n ASSIGN_TO_COLLECTION,\r\n SET_MODE_COMPARE, CHANGE_COLLECTION_CHECKBOX\r\n} from \"../constans\";\r\n\r\nimport {\r\n addCollectionFolder,\r\n createCollection,\r\n deleteCollectionFolder,\r\n deleteCollection,\r\n editCollection,\r\n getCollectionsFolders,\r\n getCollectionsForFolder,\r\n renameCollectionFolder,\r\n saveCollection,\r\n colorCollection,\r\n clearCollectionsColor,\r\n createTempCollectionFromSelection,\r\n removeSelectionFromCollection, getCollectionTable, addToTempCollection, addSelectionToCollection,\r\n getDetailedCollectionInfo, getCollectionInfo, removeSelectionFromTempCollection, colorCollections\r\n} from \"../../utils/builder/IScheduleLogic\";\r\nimport {addSelectItems, closeTab, ElementsAction, replaceTab} from \"./table\";\r\nimport {calculationQuickInfo, showToast} from \"../../utils/helpers\";\r\nimport {tabType} from \"../../utils/data\";\r\nimport {useSelector} from \"react-redux\";\r\nimport {onSelectionChange, setQuickInfoCompare} from \"./filter\";\r\n\r\nexport const getFoldersCollections = () => async (dispatch) => {\r\n\r\n const folders = await getCollectionsFolders();\r\n\r\n dispatch({\r\n type: GET_FOLDERS_COLLECTIONS,\r\n payload: folders,\r\n });\r\n};\r\n\r\nexport const collectionSave = (res) => async (dispatch) => {\r\n\r\n const collection = await createCollection(res.elements, res.properties, res.groups);\r\n await saveCollection(collection, res.collectionName, res.folder, res.description, res.color);\r\n const collections = await getCollectionsForFolder(res.folder);\r\n\r\n if(res.type === tabType.unsaved) {\r\n dispatch(replaceTab({...res, collection}));\r\n }\r\n\r\n if(res.activeFolder === res.folder) {\r\n dispatch({\r\n type: SAVE_COLLECTION,\r\n payload: collections,\r\n });\r\n }\r\n};\r\n\r\nexport const collectionsSave = (res) => {\r\n return {\r\n type: SAVE_COLLECTIONS,\r\n payload: res,\r\n };\r\n};\r\n\r\nexport const createCollectionFolder = (res) => async (dispatch) => {\r\n\r\n await addCollectionFolder(res);\r\n\r\n dispatch({\r\n type: CREATE_COLLECTIONS_FOLDER,\r\n payload: res,\r\n });\r\n};\r\n\r\nexport const collectionFolderRename = (res) => async (dispatch) => {\r\n\r\n await renameCollectionFolder(res.originalNameFolder, res.newNameFolder);\r\n\r\n dispatch({\r\n type: RENAME_COLLECTIONS_FOLDER,\r\n payload: res,\r\n });\r\n};\r\n\r\nexport const collectionFolderDelete = (res) => async (dispatch) => {\r\n\r\n await deleteCollectionFolder(res);\r\n\r\n dispatch({\r\n type: DELETE_COLLECTIONS_FOLDER,\r\n payload: res,\r\n });\r\n};\r\n\r\nexport const collectionEdit = (res) => async (dispatch) => {\r\n const {oldTitle, oldFolder, newTitle, newFolder, newDescription, newColor} = res;\r\n\r\n await editCollection(oldTitle, oldFolder, newTitle, newFolder, newDescription, newColor);\r\n\r\n dispatch({\r\n type: EDIT_COLLECTIONS,\r\n payload: res,\r\n });\r\n};\r\n\r\nexport const collectionDelete = (res) => async (dispatch) => {\r\n const {title, folder, tabs, id=null} = res;\r\n const tab = tabs.find(tab => tab.id === id);\r\n\r\n await deleteCollection(title, folder);\r\n\r\n if(tab) {\r\n dispatch(closeTab(tab));\r\n unselectCollectionOnView();\r\n }\r\n\r\n dispatch({\r\n type: DELETE_COLLECTIONS,\r\n payload: res,\r\n });\r\n};\r\n\r\nexport const selectCollectionOnView = (collections) => {\r\n colorCollections(collections);\r\n};\r\n\r\nexport const unselectCollectionOnView = () => {\r\n colorCollections([]);\r\n};\r\n\r\nexport const unassignFromCollection = (res) => async (dispatch) => {\r\n try {\r\n const newCollection = res.type !== tabType.unsaved ? await removeSelectionFromCollection(res.name, res.folder) : await removeSelectionFromTempCollection(res.collection);\r\n const tableCollection = await getCollectionTable(newCollection);\r\n unselectCollectionOnView();\r\n selectCollectionOnView([newCollection]);\r\n\r\n dispatch({\r\n type: UNASSIGN_FROM_COLLECTIONS,\r\n payload: {...tableCollection, id: res.id},\r\n });\r\n dispatch(addSelectItems({selectItems: {}, id: res.id}));\r\n showToast(true,\"Unassigned from selection set\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n};\r\n\r\nexport const addToNewCollection = (res) => async (dispatch) => {\r\n\r\n const collection = await createCollection(res.elements, res.properties, res.groups);\r\n const tableCollection = await getCollectionTable(collection);\r\n\r\n dispatch({\r\n type: ADD_TO_NEW_COLLECTION,\r\n payload: {tableCollection, collection}\r\n });\r\n};\r\n\r\nexport const assignToCollection = (res) => async (dispatch) => {\r\n\r\n const collection = await addSelectionToCollection(res.title, res.folder);\r\n const tableCollection = await getCollectionTable(collection);\r\n\r\n dispatch({\r\n type: ASSIGN_TO_COLLECTION,\r\n payload: {tableCollection, title: res.title, folder: res.folder, id: res.id},\r\n });\r\n};\r\n\r\nexport const copyToCollection = (res) => async (dispatch) => {\r\n const collection = await addSelectionToCollection(res.title, res.folder);\r\n const tableCollection = await getCollectionTable(collection);\r\n\r\n dispatch({\r\n type: COPY_TO_COLLECTION,\r\n payload: {tableCollection, id: res.id},\r\n });\r\n};\r\n\r\nexport const copyToCollectionUnsaved = (res) => async (dispatch) => {\r\n const collection = await addToTempCollection(res.elements, res.collection);\r\n const tableCollection= await getCollectionTable(collection);\r\n\r\n dispatch({\r\n type: COPY_TO_COLLECTION_UNSAVED,\r\n payload: {tableCollection, id: res.id},\r\n });\r\n};\r\n\r\nexport const addActiveFolder = (res) => {\r\n\r\n return {\r\n type: ADD_ACTIVE_FOLDER,\r\n payload: res,\r\n };\r\n};\r\n\r\nexport const setUpModeCompare = (res) => {\r\n\r\n return {\r\n type: SET_MODE_COMPARE,\r\n payload: res,\r\n };\r\n};\r\n\r\nexport const сhangeCollectionCheckbox = (res) => async (dispatch) => {\r\n\r\n const infoCollection = await getDetailedCollectionInfo(res.collection);\r\n const sumCategories = Object.values(infoCollection).reduce((accumulator, currentEl) => {\r\n return calculationQuickInfo(accumulator, currentEl, \"plus\");\r\n })\r\n let totalQuickInfo = null;\r\n\r\n if(res.isChecked) {\r\n totalQuickInfo = calculationQuickInfo(res.quickInfoCompare, sumCategories, \"minus\");\r\n } else {\r\n totalQuickInfo = calculationQuickInfo(res.quickInfoCompare, sumCategories, \"plus\");\r\n }\r\n\r\n dispatch(setQuickInfoCompare(totalQuickInfo));\r\n\r\n dispatch({\r\n type: CHANGE_COLLECTION_CHECKBOX,\r\n payload: {...res, selectionDetails: { infoCollection, sumCategories, id: res.collection.creationTime, color: res.collection.color, name: res.collection.title }}\r\n });\r\n};\r\n\r\n","import {\r\n LOAD_MODEL,\r\n UPDATE_FILTER,\r\n RESET,\r\n TEMPLATE,\r\n CATEGORY,\r\n SECOND,\r\n UPDATE_STATS,\r\n ADD_FOLDER,\r\n ADD_TEMPLATE,\r\n DELETE_FOLDER,\r\n DELETE_TEMPLATE,\r\n RENAME_FOLDER,\r\n EDIT_TEMPLATE,\r\n GET_FOLDERS_COLLECTIONS,\r\n SAVE_COLLECTION,\r\n SAVE_COLLECTIONS,\r\n EDIT_COLLECTIONS,\r\n DELETE_COLLECTIONS,\r\n CREATE_COLLECTIONS_FOLDER,\r\n RENAME_COLLECTIONS_FOLDER,\r\n DELETE_COLLECTIONS_FOLDER,\r\n ADD_ACTIVE_FOLDER,\r\n SET_MODE_COMPARE,\r\n CHANGE_COLLECTION_CHECKBOX,\r\n SET_QUICK_INFO_COMPARE,\r\n CLEAR_SETTING_VIEWER\r\n} from \"../constans\";\r\nimport {resizeViewer, unColorCollection} from \"utils/builder/IScheduleLogic\";\r\nimport {selectCollectionOnView, unselectCollectionOnView} from \"../actions/collections\";\r\n\r\nconst select = {\r\n categories: null,\r\n filterValues: null,\r\n groups: null,\r\n properties: null,\r\n secondFilter: null,\r\n};\r\nconst initState = {\r\n categories: null,\r\n filterByOptions: null,\r\n filterValues: null,\r\n groupingOptions: [],\r\n properties: null,\r\n selection: select,\r\n templates: null,\r\n template: null,\r\n quickInfoCompare: null,\r\n compare: {\r\n isModeCompare: false,\r\n collections: {},\r\n selectionDetails: []\r\n }\r\n};\r\n\r\nconst viewerReducer = (state = initState, { type, payload }) => {\r\n switch (type) {\r\n case LOAD_MODEL:\r\n\r\n const commonCategories = payload?.commonCategories;\r\n const uncommonCategories = payload?.uncommonCategories;\r\n\r\n const commonProperties = payload?.commonProperties;\r\n const uncommonProperties = payload?.uncommonProperties;\r\n\r\n const commonGroupingOptions = payload?.commonGroupingOptions;\r\n const uncommonGroupingOptions = payload?.uncommonGroupingOptions;\r\n\r\n return {\r\n ...state,\r\n ...payload,\r\n commonCategories,\r\n uncommonCategories,\r\n commonProperties,\r\n uncommonProperties,\r\n commonGroupingOptions,\r\n uncommonGroupingOptions,\r\n selection: select,\r\n };\r\n case RESET:\r\n\r\n return {\r\n ...initState,\r\n categories: state.categories,\r\n templates: state.templates,\r\n collectionsFolders: state.collectionsFolders,\r\n template: payload,\r\n templatesCount: state.templatesCount,\r\n commonCategories: state.commonCategories,\r\n uncommonCategories: state.uncommonCategories,\r\n templatesFolder: state.templatesFolder\r\n };\r\n case UPDATE_FILTER: {\r\n\r\n resizeViewer();\r\n\r\n const newState = {\r\n ...state,\r\n ...payload,\r\n }\r\n\r\n return {\r\n ...state,\r\n ...payload,\r\n };\r\n }\r\n case TEMPLATE:\r\n\r\n return {\r\n ...state,\r\n ...payload,\r\n };\r\n case CATEGORY: {\r\n\r\n resizeViewer();\r\n\r\n const newState = {\r\n ...state,\r\n ...payload,\r\n template: null,\r\n };\r\n\r\n return newState;\r\n }\r\n case SECOND:\r\n\r\n return {\r\n ...state,\r\n ...payload,\r\n selection: {\r\n ...payload.selection,\r\n categories: state.selection.categories,\r\n secondFilter: state.selection.secondFilter,\r\n filterValues: state.selection.filterValues,\r\n },\r\n };\r\n case UPDATE_STATS:\r\n\r\n var newState = { ...state };\r\n newState.quickCounterData = payload;\r\n return {\r\n ...state,\r\n ...newState,\r\n };\r\n case SET_QUICK_INFO_COMPARE:\r\n\r\n return {\r\n ...state,\r\n quickInfoCompare: payload,\r\n };\r\n case ADD_FOLDER:\r\n\r\n return {\r\n ...state,\r\n templatesFolder: {\r\n ...state.templatesFolder,\r\n [payload]: []\r\n }\r\n };\r\n case RENAME_FOLDER:\r\n\r\n const copyArray = state.templatesFolder[payload.originalName];\r\n const templatesFolder = state.templatesFolder;\r\n\r\n delete templatesFolder[payload.originalName];\r\n\r\n return {\r\n ...state,\r\n templatesFolder: {\r\n ...templatesFolder,\r\n [payload.newNameFolder]: copyArray\r\n }\r\n };\r\n case ADD_TEMPLATE:\r\n\r\n const newArray = [...state.templatesFolder[payload.folder], payload.template].sort();\r\n\r\n return {\r\n ...state,\r\n templatesFolder: {\r\n ...state.templatesFolder,\r\n [payload.folder]: newArray\r\n }\r\n };\r\n case EDIT_TEMPLATE:\r\n\r\n const arrayWithoutOldTemplates = state.templatesFolder[payload.currentNameFolder].filter((el) => el !== payload.currentNameTemplate);\r\n\r\n if(payload.newNameFolder === payload.currentNameFolder) {\r\n\r\n const arrayWithNewTemplate = [...arrayWithoutOldTemplates, payload.newNameTemplate].sort();\r\n\r\n return {\r\n ...state,\r\n templatesFolder: {\r\n ...state.templatesFolder,\r\n [payload.currentNameFolder]: arrayWithNewTemplate,\r\n }\r\n };\r\n } else {\r\n\r\n const arrayWithNewTemplate = [...state.templatesFolder[payload.newNameFolder], payload.newNameTemplate].sort();\r\n\r\n return {\r\n ...state,\r\n templatesFolder: {\r\n ...state.templatesFolder,\r\n [payload.currentNameFolder]: arrayWithoutOldTemplates,\r\n [payload.newNameFolder]: arrayWithNewTemplate\r\n }\r\n };\r\n }\r\n case DELETE_FOLDER:\r\n\r\n const templatesFolderNew = state.templatesFolder;\r\n\r\n delete templatesFolderNew[payload];\r\n\r\n return {\r\n ...state,\r\n };\r\n case DELETE_TEMPLATE:\r\n\r\n const templatesNew = state.templatesFolder[payload.folderName].filter((el) => el !== payload.templateName);\r\n\r\n return {\r\n ...state,\r\n templatesFolder: {\r\n ...state.templatesFolder,\r\n [payload.folderName]: templatesNew\r\n }\r\n };\r\n case GET_FOLDERS_COLLECTIONS:\r\n\r\n return {\r\n ...state,\r\n collectionsFolders: payload\r\n };\r\n case SAVE_COLLECTIONS:\r\n\r\n return {\r\n ...state,\r\n collections: payload\r\n };\r\n case SAVE_COLLECTION:\r\n\r\n return {\r\n ...state,\r\n collections: payload\r\n };\r\n case CREATE_COLLECTIONS_FOLDER:\r\n\r\n return {\r\n ...state,\r\n collectionsFolders: [...state.collectionsFolders, payload].sort()\r\n };\r\n case RENAME_COLLECTIONS_FOLDER:\r\n\r\n const copyArrayCollection = state.collectionsFolders.filter((folder) => folder !== payload.originalNameFolder);\r\n\r\n return {\r\n ...state,\r\n collectionsFolders: [...copyArrayCollection, payload.newNameFolder]\r\n }\r\n case DELETE_COLLECTIONS_FOLDER:\r\n\r\n const newCollection = state.collectionsFolders.filter((folder) => folder !== payload);\r\n\r\n return {\r\n ...state,\r\n collectionsFolders: newCollection\r\n }\r\n case EDIT_COLLECTIONS:\r\n\r\n let newEditCollection = state.collections;\r\n\r\n if(payload.oldFolder !== payload.newFolder) {\r\n newEditCollection = state.collections.filter((collection) => collection.name !== payload.oldTitle);\r\n }\r\n\r\n return {\r\n ...state,\r\n collections: newEditCollection\r\n };\r\n case DELETE_COLLECTIONS:\r\n\r\n const newDeleteCollection = state.collections.filter((collection) => collection.creationTime !== payload.id);\r\n\r\n return {\r\n ...state,\r\n collections: newDeleteCollection\r\n };\r\n case ADD_ACTIVE_FOLDER:\r\n\r\n return {\r\n ...state,\r\n activeFolder: payload\r\n };\r\n case SET_MODE_COMPARE:\r\n\r\n if(payload) {\r\n return {\r\n ...state,\r\n compare: {...state.compare, isModeCompare: payload}\r\n };\r\n } else {\r\n\r\n const uncheckedCollections = state.collections.map((collection) => {\r\n return {...collection, checked: false}\r\n });\r\n\r\n return {\r\n ...state,\r\n compare: {...state.compare, isModeCompare: payload, selectionDetails: [], collections: {}},\r\n collections: uncheckedCollections\r\n };\r\n }\r\n\r\n case CHANGE_COLLECTION_CHECKBOX:\r\n\r\n const newCollectionsCompare = {\r\n ...state.compare.collections,\r\n [payload.activeFolder]: payload.collections.map((collection) => {\r\n if(collection.creationTime === payload.collection.creationTime) {\r\n return {...collection, checked: !collection?.checked}\r\n } else {\r\n return collection\r\n }\r\n })\r\n }\r\n\r\n const newCollections = state.collections.map((collection) => {\r\n\r\n let checked = false;\r\n\r\n newCollectionsCompare[payload.activeFolder].map((collectionCompare) => {\r\n if (collection.creationTime === collectionCompare.creationTime) {\r\n checked = collectionCompare.checked;\r\n }\r\n })\r\n\r\n return {...collection, checked}\r\n })\r\n\r\n const isCollectionDetails = state.compare.selectionDetails.some((el) => el.id === payload.selectionDetails.id);\r\n let newSelectionDetails = state.compare.selectionDetails;\r\n\r\n if(isCollectionDetails) {\r\n newSelectionDetails = state.compare.selectionDetails.filter((el) => el.id !== payload.selectionDetails.id);\r\n } else {\r\n newSelectionDetails.push(payload.selectionDetails);\r\n }\r\n\r\n const selectElements = Object.values(newCollectionsCompare).flat(2).filter((el) => el.checked);\r\n selectCollectionOnView(selectElements);\r\n\r\n return {\r\n ...state,\r\n compare: {...state.compare, collections: newCollectionsCompare, selectionDetails: newSelectionDetails},\r\n collections: newCollections,\r\n };\r\n case CLEAR_SETTING_VIEWER:\r\n return initState\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default viewerReducer;\r\n","import { DELETE_USER, STATUS, USER_INFO } from \"../constans\";\r\n\r\nconst initState = {\r\n status: null,\r\n info: {\r\n name: \"\",\r\n email: \"\",\r\n role: \"\",\r\n phone: \"\",\r\n company: \"\",\r\n newUser: false,\r\n },\r\n};\r\nconst authReducer = (state = initState, { type, payload }) => {\r\n switch (type) {\r\n case STATUS:\r\n return {\r\n ...state,\r\n status: payload,\r\n };\r\n case USER_INFO:\r\n return {\r\n ...state,\r\n info: payload,\r\n };\r\n case DELETE_USER:\r\n return initState;\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default authReducer;\r\n","import { combineReducers } from \"redux\";\r\nimport tableReducer from \"./tableReducer\";\r\nimport ViewerReducer from \"./viewerReducer\";\r\nimport userReducer from \"./userReducer\";\r\nconst rootReducer = combineReducers({\r\n viewer: ViewerReducer,\r\n table: tableReducer,\r\n user: userReducer,\r\n});\r\n\r\nexport default rootReducer;\r\n","import { createStore, applyMiddleware, compose } from \"redux\";\r\nimport thunk from \"redux-thunk\";\r\nimport rootReducer from \"./reducers\";\r\n\r\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\n\r\nconst store = createStore(\r\n rootReducer,\r\n composeEnhancers(applyMiddleware(thunk))\r\n);\r\n\r\nexport default store;\r\n","import React from \"react\";\r\n\r\nconst useBuilderData = () => {\r\n let [builderData, setBuilderData] = React.useState({\r\n project: {\r\n text: \"\",\r\n id: null,\r\n type: null,\r\n children: null,\r\n },\r\n sideBar: {},\r\n });\r\n return { builderData, setBuilderData };\r\n};\r\nexport default useBuilderData;\r\n","import React, { createContext, useContext, useEffect, useState } from \"react\";\r\n\r\nconst DashboardStateContext = createContext();\r\n\r\nconst DashboardStateProvider = ({ children }) => {\r\n const [foldersTree, setFoldersTree] = useState(null);\r\n const [activeFolder, setActiveFolder] = useState(null);\r\n const [activeProject, setActiveProject] = useState(null);\r\n const [isFolderLoading, setIsFolderLoading] = useState(false);\r\n const [favourites, setFavourites] = useState(null);\r\n const [recent, setRecent] = useState(null);\r\n const [isTableHidden, setIsTableHidden] = useState(true);\r\n const [checkSidebarDropdownStatus, setCheckSidebarDropdownStatus] = useState(true);\r\n const [isModalLoaded, setIsModalLoaded] = useState({ status: false });\r\n const [isWelcomeModalSeen, setIsWelcomeModalSeen] = useState(false);\r\n const [signingState, setSigningState] = useState(null);\r\n\r\n useEffect(() => {\r\n if(!foldersTree || !activeProject || !activeFolder) {\r\n const breadcrumbsData = JSON.parse(localStorage.getItem('breadcrumbsData'))\r\n if(breadcrumbsData?.activeProject || breadcrumbsData?.activeFolder || breadcrumbsData?.foldersTree) {\r\n setActiveProject(breadcrumbsData?.activeProject)\r\n setActiveFolder(breadcrumbsData?.activeFolder)\r\n setFoldersTree(breadcrumbsData?.foldersTree)\r\n }\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nconst useDashboardState = () => useContext(DashboardStateContext);\r\n\r\nexport { DashboardStateProvider, useDashboardState };\r\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 11,\n height: 6,\n viewBox: \"0 0 11 6\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 5L5.5 1L1 5\",\n stroke: \"#202329\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrow);\nexport default __webpack_public_path__ + \"static/media/arrow.7030e986.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useEffect, memo, useContext } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { getNextLevel } from \"utils/builder/IModelsTree\";\r\nimport { BuilderDataContext } from \"components/BuilderContext\";\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport { searchLevel, searchTreeFun, findFoldersTreeObj } from \"utils/helpers\";\r\nimport classNames from \"classnames\";\r\nimport \"./ProjectItem.scss\";\r\n\r\nimport { ReactComponent as ProjectIcon } from \"static/icons/project.svg\";\r\n\r\nconst ProjectItem = memo(\r\n ({\r\n item: {\r\n children,\r\n id,\r\n text,\r\n type,\r\n stat,\r\n },\r\n treeAction,\r\n searchValue,\r\n level,\r\n }) => {\r\n const {\r\n foldersTree,\r\n activeFolder,\r\n setFoldersTree,\r\n setActiveFolder,\r\n setIsFolderLoading,\r\n } = useDashboardState();\r\n\r\n const { builderData, setBuilderData } = useContext(BuilderDataContext);\r\n const [list, setList] = useState(null);\r\n const [active, setActive] = useState(\"close\");\r\n\r\n const handleClick = () => {\r\n setActiveFolder(id);\r\n\r\n if (!list) {\r\n setIsFolderLoading(true);\r\n\r\n getNextLevel(id)\r\n .then(res => {\r\n treeAction(id, res, true, level);\r\n\r\n return res;\r\n })\r\n .then(res => {\r\n const requestedObj = findFoldersTreeObj(id, foldersTree);\r\n\r\n if (requestedObj) {\r\n if (!requestedObj?.childrenArr?.length) {\r\n requestedObj.childrenArr = res;\r\n }\r\n }\r\n\r\n setList(res);\r\n setFoldersTree(foldersTree);\r\n })\r\n .then(() => {\r\n setActive(\"active\");\r\n })\r\n .finally(() => {\r\n setIsFolderLoading(false);\r\n });\r\n }\r\n };\r\n\r\n const handleClick2 = () => {\r\n setBuilderData({\r\n ...builderData,\r\n project: {\r\n id,\r\n type,\r\n children,\r\n text,\r\n },\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n let tree = JSON.parse(localStorage.getItem(\"tree\"));\r\n\r\n if (tree) {\r\n if (searchTreeFun(tree, id)) {\r\n setActive(\"load\");\r\n\r\n getNextLevel(id)\r\n .then(res => {\r\n const requestedObj = findFoldersTreeObj(id, foldersTree);\r\n\r\n if (requestedObj) {\r\n if (!requestedObj?.childrenArr?.length) {\r\n requestedObj.childrenArr = res;\r\n }\r\n }\r\n\r\n setFoldersTree(foldersTree);\r\n setList(res);\r\n })\r\n .then(() => setActive(\"active\"));\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const searchFunction = async () => {\r\n setActive(\"load\");\r\n\r\n const { list, condition } = await searchLevel(\r\n searchValue,\r\n getNextLevel,\r\n id\r\n );\r\n\r\n setActive(condition ? \"active\" : \"close\");\r\n setList(list);\r\n treeAction(id, list, condition, level);\r\n };\r\n if (level === 1 && searchValue !== null) {\r\n searchFunction();\r\n }\r\n }, [searchValue]);\r\n\r\n if (children) {\r\n return (\r\n
\r\n \r\n \r\n\r\n \r\n {text}\r\n \r\n
\r\n \r\n );\r\n } else {\r\n return (\r\n
\r\n \r\n {text}\r\n \r\n
\r\n );\r\n }\r\n }\r\n);\r\n\r\nexport default ProjectItem;\r\n","import React, { useMemo } from \"react\";\r\nimport ProjectItem from \"components/uiComponents/ProjectItem\";\r\n\r\nconst ProjectNavList = ({\r\n list,\r\n treeAction,\r\n searchValue,\r\n level,\r\n}) => {\r\n const memoList = useMemo(\r\n () =>\r\n list &&\r\n list.map((el) => (\r\n \r\n )),\r\n [list, searchValue]\r\n );\r\n return
{memoList}
;\r\n};\r\n\r\nexport default ProjectNavList;\r\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgClose(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 14,\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 13L12.9999 1\",\n stroke: \"white\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13 13L1.00007 1\",\n stroke: \"white\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.ddec8d86.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/hub.642eb4cc.png\";","import React, { useState, useEffect, memo, useContext } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { BuilderDataContext } from \"../../BuilderContext\";\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport { getNextLevel } from \"../../../utils/builder/IModelsTree\";\r\nimport { searchLevel, searchTreeFun, findFoldersTreeObj } from \"utils/helpers\";\r\nimport { CSSTransition } from \"react-transition-group\";\r\nimport classNames from \"classnames\";\r\nimport \"./ProjectNavItem.scss\";\r\n\r\nimport ProjectNavList from \"components/uiComponents/ProjectNavList\";\r\n\r\nimport { ReactComponent as ArrowIcon } from \"static/icons/arrow.svg\";\r\nimport hubImage from 'static/images/fileTypes/hub.png';\r\n\r\nconst ProjectNavItem = memo(\r\n ({\r\n item: {\r\n children,\r\n id,\r\n text,\r\n type,\r\n stat, // do it needed?\r\n pictureUrl,\r\n lastUpdate,\r\n size,\r\n updatedBy,\r\n },\r\n treeAction,\r\n searchValue,\r\n level,\r\n }) => {\r\n const {\r\n foldersTree,\r\n activeFolder,\r\n setFoldersTree,\r\n setActiveFolder,\r\n } = useDashboardState();\r\n\r\n const { builderData, setBuilderData } = useContext(BuilderDataContext);\r\n const [list, setList] = useState(null);\r\n const [active, setActive] = useState(\"close\");\r\n\r\n const openFolder = () => {\r\n setActive((prevState) => {\r\n if (prevState === \"active\") {\r\n treeAction(id, [], false, level);\r\n return \"close\";\r\n } else if (list) {\r\n treeAction(id, list, true, level);\r\n return \"active\";\r\n } else return \"load\";\r\n });\r\n };\r\n\r\n const handleClick = () => {\r\n openFolder();\r\n setActiveFolder(id);\r\n\r\n if (!list) {\r\n getNextLevel(id)\r\n .then(res => {\r\n treeAction(id, res, true, level);\r\n return res;\r\n })\r\n .then(res => {\r\n const requestedObj = findFoldersTreeObj(id, foldersTree);\r\n\r\n if (requestedObj) {\r\n if (!requestedObj?.childrenArr?.length) {\r\n requestedObj.childrenArr = res;\r\n }\r\n }\r\n\r\n setFoldersTree(foldersTree);\r\n setList(res);\r\n })\r\n .then(() => setActive(\"active\"));\r\n }\r\n };\r\n\r\n const handleClick2 = () => {\r\n setBuilderData({\r\n ...builderData,\r\n project: {\r\n id,\r\n type,\r\n children,\r\n text,\r\n },\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n let tree = JSON.parse(localStorage.getItem(\"tree\"));\r\n if (tree) {\r\n if (searchTreeFun(tree, id)) {\r\n setActive(\"load\");\r\n getNextLevel(id)\r\n .then((res) => {\r\n const requestedObj = findFoldersTreeObj(id, foldersTree);\r\n\r\n if (requestedObj) {\r\n if (!requestedObj?.childrenArr?.length) {\r\n requestedObj.childrenArr = res;\r\n }\r\n }\r\n\r\n setFoldersTree(foldersTree);\r\n setList(res);\r\n })\r\n .then(() => setActive(\"active\"));\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const searchFunction = async () => {\r\n setActive(\"load\");\r\n \r\n const { list, condition } = await searchLevel(\r\n searchValue,\r\n getNextLevel,\r\n id\r\n );\r\n\r\n setActive(condition ? \"active\" : \"close\");\r\n setList(list);\r\n treeAction(id, list, condition, level);\r\n };\r\n if (level === 1 && searchValue !== null) {\r\n searchFunction();\r\n }\r\n }, [searchValue]);\r\n\r\n if (children) {\r\n return (\r\n
\r\n
\r\n \r\n\r\n \r\n {text}\r\n \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 {text}\r\n \r\n
\r\n );\r\n }\r\n }\r\n);\r\n\r\nexport default ProjectNavItem;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { getNextLevel } from \"utils/builder/IModelsTree\";\r\nimport { treeAdd } from \"utils/helpers\";\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport \"./ProjectNav.scss\";\r\n\r\nimport ProjectNavItem from \"components/uiComponents/ProjectNavItem\";\r\n\r\nconst ProjectNav = ({\r\n isWithoutTitle,\r\n isWithoutSearch,\r\n outsideSearchValue = false,\r\n}) => {\r\n const {\r\n foldersTree,\r\n setFoldersTree,\r\n } = useDashboardState();\r\n\r\n const [list, setList] = useState(null);\r\n const [searchValue, setSearchValue] = useState(null);\r\n const [tree, setTree] = useState({});\r\n\r\n useEffect(() => {\r\n // const treea = JSON.parse(localStorage.getItem(\"tree\"));\r\n \r\n getNextLevel(\"#\").then(res => {\r\n if (!foldersTree) {\r\n setFoldersTree(res);\r\n }\r\n \r\n setList(res);\r\n });\r\n\r\n // setTree(treea ? treea : {});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!!outsideSearchValue || outsideSearchValue === '') {\r\n setSearchValue(outsideSearchValue);\r\n }\r\n }, [outsideSearchValue]);\r\n\r\n const treeAction = (id, list, condition, level) => {\r\n setTree((prevState) => {\r\n const tempOBj = { ...prevState };\r\n const result = treeAdd(tempOBj, id, list, condition, level);\r\n\r\n localStorage.setItem(\"tree\", JSON.stringify(result));\r\n\r\n return result;\r\n });\r\n };\r\n\r\n const handleSearch = (e) => {\r\n if (!list) return;\r\n\r\n const value = e.target.value;\r\n\r\n if (e.keyCode === 13) {\r\n setSearchValue(value);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {!isWithoutSearch &&\r\n
\r\n \r\n
\r\n }\r\n\r\n
\r\n {!isWithoutTitle &&\r\n
Folder
\r\n }\r\n\r\n {list &&\r\n list.map(el => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProjectNav;\r\n","export default __webpack_public_path__ + \"static/media/welcome_img.32f2f6d9.svg\";","import classNames from 'classnames';\r\nimport './UniversalButton.scss';\r\n\r\nconst UniversalButton = (\r\n {\r\n type = 'button',\r\n label,\r\n href,\r\n size,\r\n isDisabled,\r\n isFullWidth,\r\n isRounded = 'none',\r\n labelColor,\r\n labelHoverColor,\r\n backgroundColor,\r\n backgroundHoverColor,\r\n isBordered,\r\n isHoverBordered,\r\n borderColor,\r\n borderHoverColor,\r\n leftIcon,\r\n centerIcon,\r\n rightIcon,\r\n onClick,\r\n style,\r\n premium\r\n }) => {\r\n const buttonStyles = classNames({\r\n 'button': true,\r\n 'buttonDisabled': isDisabled,\r\n\r\n 'buttonSizeSmall': size === 'sm',\r\n 'buttonSizeMiddle': size === 'md',\r\n 'buttonSizeLarge': size === 'lg',\r\n 'buttonFullWidth': isFullWidth,\r\n\r\n 'buttonIcon': !!centerIcon,\r\n\r\n 'buttonRoundedSmall': isRounded === 'sm',\r\n 'buttonRoundedMiddle': isRounded === 'md',\r\n 'buttonRoundedLarge': isRounded === 'lg',\r\n\r\n 'buttonBorderedSmall': isBordered === 'sm',\r\n 'buttonBorderedMiddle': isBordered === 'md',\r\n\r\n 'buttonHoverBorderedSmall': isHoverBordered === 'sm',\r\n\r\n 'buttonLabelColorWhite': labelColor === 'white',\r\n 'buttonLabelColorBlue': labelColor === 'blue',\r\n\r\n 'buttonLabelColorHoverWhite': labelHoverColor === 'white',\r\n 'buttonLabelColorHoverBlue': labelHoverColor === 'blue',\r\n\r\n 'buttonBorderColorWhite': borderColor === 'white',\r\n 'buttonBorderColorGray2': borderColor === 'gray2',\r\n\r\n 'buttonBorderColorHoverWhite': borderHoverColor === 'white',\r\n 'buttonBorderColorHoverGray2': borderHoverColor === 'grey2',\r\n\r\n 'buttonBackgroundColorWhite': backgroundColor === 'white',\r\n 'buttonBackgroundColorOrange': backgroundColor === 'orange',\r\n 'buttonBackgroundColorGray6': backgroundColor === 'gray6',\r\n 'buttonBackgroundColorBlue': backgroundColor === 'blue',\r\n\r\n 'buttonBackgroundHoverColorWhite': backgroundHoverColor === 'white',\r\n 'buttonBackgroundHoverColorOrangeLight': backgroundHoverColor === 'orange-light',\r\n 'buttonBackgroundHoverColorBlueLight': backgroundHoverColor === 'blue-light',\r\n 'buttonBackgroundHoverColorGray5': backgroundHoverColor === 'gray5',\r\n });\r\n\r\n const handleClick = event => {\r\n if (!isDisabled) {\r\n if (href) {\r\n window.location.href = href;\r\n } else {\r\n onClick?.(event);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n {!!leftIcon &&\r\n \r\n {leftIcon}\r\n \r\n }\r\n\r\n {!!centerIcon &&\r\n \r\n {centerIcon}\r\n \r\n }\r\n\r\n {label &&\r\n \r\n {label}\r\n \r\n }\r\n\r\n {\r\n premium ?\r\n :\r\n !!rightIcon &&\r\n \r\n {rightIcon}\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default UniversalButton;\r\n","import React from \"react\";\r\nimport \"./WelcomeModal.scss\";\r\n\r\nimport WelcomeImg from \"static/images/welcome_img.svg\"\r\nimport UniversalButton from \"../../uiComponents/UniversalButton\";\r\n\r\nconst WelcomeModal = ({\r\n onActionClick,\r\n}) => {\r\n return (\r\n
\r\n \r\n\r\n \r\n \r\n Welcome to BIMSearch!\r\n

\r\n\r\n \r\n Use BIMSearch to instantly pull data from
any Autodesk BIM 360 model: any time, any place.\r\n

\r\n\r\n \r\n Your 30-day free trial
\r\n of BIMSearch Premium starts today!\r\n

\r\n\r\n \r\n Take a look at the sample project and see what
BIMSearch has to offer!\r\n

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Click the question mark to access the help center or get in touch with us.\r\n

\r\n \r\n );\r\n};\r\n\r\nexport default WelcomeModal;\r\n","export default __webpack_public_path__ + \"static/media/trial-period-expired.54e053c3.svg\";","import React from \"react\";\r\nimport \"./TrialPeriodExpiredModal.scss\";\r\n\r\nimport TrialPeriodExpired from \"static/icons/trial-period-expired.svg\"\r\nimport UniversalButton from \"../../uiComponents/UniversalButton\";\r\n\r\nconst TrialPeriodExpiredModal = () => {\r\n\r\n const onActionClick = () => {\r\n window.open('https://bim-search.com/en/pricing/');\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n

\r\n Trial period has expired!\r\n

\r\n\r\n

\r\n Your free trial period has expired.
\r\n BIMSearch has been locked,
\r\n but don’t worry your work has been saved.
\r\n Subscribe now to continue using BIMSearch.\r\n

\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default TrialPeriodExpiredModal;\r\n","import classNames from \"classnames\";\r\nimport React, { useState } from \"react\";\r\nimport { CSSTransition } from \"react-transition-group\";\r\nimport \"./ModalComponent.scss\";\r\n\r\nconst ModalComponent = ({\r\n onCloseModal,\r\n isVisible,\r\n size = 'md',\r\n children,\r\n text = \"basic\"\r\n}) => {\r\n const handleCloseModal = (e) => {\r\n if (\r\n [...e.target.classList].includes(`modalcomponent__${text}`)\r\n || [...e.target.classList].includes(`modalcomponent__close__${text}`)\r\n ) {\r\n onCloseModal?.();\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 {children}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ModalComponent;\r\n","import React from \"react\";\r\n\r\nconst useModal = () => {\r\n let [modal, setModal] = React.useState(false);\r\n let [modalContent, setModalContent] = React.useState(false);\r\n let [isDragAndDrop, setDragAndDrop] = React.useState(false);\r\n\r\n let handleModal = (\r\n content = false,\r\n isCloseAction,\r\n dragAndDrop,\r\n ) => {\r\n\r\n setDragAndDrop(dragAndDrop);\r\n\r\n if (!isCloseAction) {\r\n setModal(!modal);\r\n } else {\r\n setModal(false);\r\n }\r\n\r\n if (content) {\r\n setModalContent(content);\r\n }\r\n };\r\n\r\n return { modal, handleModal, modalContent, isDragAndDrop };\r\n};\r\n\r\nexport default useModal;\r\n","import React, { useState, useEffect, useRef, useLayoutEffect } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { ModalContext } from \"components/ModalContext\";\r\nimport { CSSTransition } from \"react-transition-group\";\r\nimport \"./index.scss\";\r\nimport { dragAndDropElement } from \"../../../utils/helpers\";\r\n\r\nconst Modal = ({\r\n onCloseModal,\r\n}) => {\r\n const { \r\n modalContent,\r\n handleModal, \r\n modal,\r\n isDragAndDrop\r\n } = React.useContext(ModalContext);\r\n\r\n const modalContentElement = useRef();\r\n\r\n useEffect(() => {\r\n if(modalContentElement.current && isDragAndDrop) {\r\n dragAndDropElement(modalContentElement.current);\r\n }\r\n }, [modal]);\r\n\r\n useEffect(() => {\r\n const body = document.body;\r\n \r\n modal\r\n ? (body.style.overflow = \"hidden\")\r\n : (body.style.overflow = \"unset\");\r\n }, [modal]);\r\n\r\n const handleCloseModal = (e) => {\r\n if (\r\n [...e.target.classList].includes('modal_wrap')\r\n || [...e.target.classList].includes('modal_close')\r\n ) {\r\n handleModal();\r\n onCloseModal();\r\n }\r\n };\r\n\r\n return ReactDOM.createPortal(\r\n \r\n <>\r\n \r\n \r\n \r\n ×\r\n \r\n\r\n \r\n {modalContent}\r\n \r\n \r\n \r\n \r\n ,\r\n document.querySelector(\"#modals\")\r\n );\r\n};\r\n\r\nexport default Modal;\r\n","import React, { createContext } from \"react\";\r\nimport useModal from \"../../hooks/useModal\";\r\nimport Modal from \"../uiComponents/Modal\";\r\n\r\nlet ModalContext = createContext();\r\n\r\nconst ModalProvider = ({ children }) => {\r\n const { modal, handleModal, modalContent, isDragAndDrop } = useModal();\r\n\r\n const handleCloseModal = () => {\r\n handleModal();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { ModalContext, ModalProvider };\r\n","import {\r\n sendIntegrationMail,\r\n sendSupportMail,\r\n} from \"../../utils/builder/IModelsTree\";\r\nimport {\r\n loggedIn,\r\n loginButton,\r\n logout,\r\n getUserData,\r\n deleteUserData,\r\n setUserData,\r\n} from \"../../utils/builder/IUsers\";\r\nimport { STATUS, DELETE_USER, USER_INFO } from \"../constans/index\";\r\nimport { logError } from \"../../utils/builder/IAmecLog\";\r\n\r\nexport const signInAtcion = () => async (dispatch) => {\r\n try {\r\n await loginButton();\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.user.signInAtcion\", err.toString());\r\n }\r\n};\r\n\r\nexport const signOut = () => async (dispatch) => {\r\n const hiddenFrame = document.getElementById(\"hiddenFrame\");\r\n try {\r\n await logout(hiddenFrame);\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.user.signOut\", err.toString());\r\n }\r\n};\r\n\r\nexport const updateUser =\r\n ({ name, email, phone, company, role }, callback) =>\r\n async (dispatch) => {\r\n try {\r\n //callback((prevState) => ({\r\n // signinState: 0,\r\n //}));\r\n await setUserData(name, email, phone, company, role);\r\n const userData = await getUserData();\r\n dispatch({\r\n type: USER_INFO,\r\n payload: userData,\r\n });\r\n callback((prevState) => ({\r\n ...prevState,\r\n signinState: 1,\r\n }));\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.user.updateUser\", err.toString());\r\n }\r\n };\r\n\r\nexport const statusCheck = () => async (dispatch) => {\r\n try {\r\n const res = await loggedIn();\r\n dispatch({\r\n type: STATUS,\r\n payload: res,\r\n });\r\n const userData = await getUserData();\r\n dispatch({\r\n type: USER_INFO,\r\n payload: userData,\r\n });\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.user.statusCheck\", err.toString());\r\n }\r\n};\r\n\r\nexport const deleteUser = () => async (dispatch) => {\r\n try {\r\n await deleteUserData();\r\n await signOut()();\r\n dispatch({\r\n type: DELETE_USER,\r\n });\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.user.deleteUser\", err.toString());\r\n }\r\n};\r\n\r\nexport const sendEmail = (email) => async (dispatch) => {\r\n try {\r\n await sendIntegrationMail(email);\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.user.sendEmail\", err.toString());\r\n }\r\n};\r\n\r\nexport const sendSupportEmail = (email, cantFind, message) => async (dispatch) => {\r\n try {\r\n await sendSupportMail(email, cantFind, message);\r\n } catch (err) {\r\n logError(\"FrontEnd.src.store.actions.user.sendEmail\", err.toString());\r\n }\r\n};\r\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSearchGrey(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 19C15.4183 19 19 15.4183 19 11C19 6.58172 15.4183 3 11 3C6.58172 3 3 6.58172 3 11C3 15.4183 6.58172 19 11 19Z\",\n stroke: \"#D9DADF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 21L16.65 16.65\",\n stroke: \"#D9DADF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearchGrey);\nexport default __webpack_public_path__ + \"static/media/search-grey.b9be0a04.svg\";\nexport { ForwardRef as ReactComponent };","import classNames from \"classnames\";\r\nimport React, { memo } from \"react\";\r\nimport { CSSTransition } from \"react-transition-group\";\r\nimport \"./UniversalInput.scss\";\r\n\r\nimport { ReactComponent as CloseIcon } from 'static/icons/close.svg';\r\n\r\nconst UniversalInput = memo(\r\n ({\r\n label,\r\n id,\r\n name,\r\n type,\r\n placeholder,\r\n onChangeValue,\r\n value,\r\n required,\r\n leftIcon,\r\n isClearButtonActive,\r\n onClearSearch,\r\n }) => {\r\n const handleChange = (e) => {\r\n if (name) {\r\n onChangeValue?.(e.target.value, name);\r\n } else {\r\n onChangeValue?.(e.target.value);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {!!label &&\r\n \r\n {label}\r\n \r\n }\r\n\r\n {!!leftIcon &&\r\n
\r\n {leftIcon}\r\n
\r\n }\r\n\r\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 UniversalInput;\r\n","export default __webpack_public_path__ + \"static/media/checked.fe830df3.svg\";","import React, { memo, useCallback } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport \"./UniversalCheckbox.scss\";\r\n\r\nimport CheckedIcon from \"static/icons/checked.svg\";\r\n\r\nconst UniversalCheckbox = memo(({\r\n label,\r\n name,\r\n checked,\r\n onChange,\r\n}) => {\r\n const handleClick = useCallback(() => {\r\n if (name) {\r\n onChange?.(!checked, name);\r\n } else {\r\n onChange?.(!checked);\r\n }\r\n }, [name, checked, onChange]);\r\n\r\n return (\r\n \r\n \r\n {!!checked &&\r\n \r\n }\r\n \r\n\r\n {label}\r\n \r\n );\r\n});\r\n\r\nexport default UniversalCheckbox;\r\n","import React, { memo } from \"react\";\r\nimport \"./UniversalTextarea.scss\";\r\n\r\nconst UniversalTextarea = memo(\r\n ({\r\n label,\r\n id,\r\n name,\r\n type,\r\n placeholder,\r\n onChange,\r\n value,\r\n required,\r\n }) => {\r\n const handleChange = (e) => {\r\n if (name) {\r\n onChange?.(e.target.value, name);\r\n } else {\r\n onChange?.(e.target.value);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n {label}\r\n \r\n\r\n \r\n
\r\n );\r\n }\r\n);\r\n\r\nexport default UniversalTextarea;\r\n","import React, { useState, useEffect, useContext } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { sendSupportEmail } from \"store/actions/user\";\r\nimport UniversalInput from \"components/uiComponents/UniversalInput\";\r\nimport UniversalCheckbox from \"components/uiComponents/UniversalCheckbox\";\r\nimport UniversalTextarea from \"components/uiComponents/UniversalTextarea\";\r\nimport UniversalButton from \"components/uiComponents/UniversalButton\";\r\nimport \"./SupportModal.scss\";\r\nimport { ModalContext } from \"../../ModalContext\";\r\n\r\nconst SupportModal = ({\r\n closeModal,\r\n}) => {\r\n const { email } = useSelector(state => state.user.info);\r\n const { handleModal } = useContext(ModalContext);\r\n const dispatch = useDispatch();\r\n\r\n const [admin, setAdmin] = useState('');\r\n const [company, setCompany] = useState(false);\r\n const [message, setMessage] = useState('');\r\n\r\n useEffect(() => {\r\n if (email) {\r\n setAdmin(email);\r\n }\r\n }, []);\r\n\r\n const handleChange = (value, name) => {\r\n switch (name) {\r\n case \"email\":\r\n setAdmin(value);\r\n break;\r\n case \"company\":\r\n setCompany(value);\r\n break;\r\n case \"message\":\r\n setMessage(value);\r\n break;\r\n }\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n dispatch(sendSupportEmail(admin, company, message));\r\n handleCancel();\r\n };\r\n\r\n const handleCancel = () => {\r\n handleModal(null, true);\r\n };\r\n\r\n return (\r\n
\r\n \r\n

Contact support

\r\n\r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\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 SupportModal;\r\n","import React from \"react\";\r\nimport { useContext } from \"react\";\r\nimport { ModalContext } from \"components/ModalContext\";\r\nimport \"./hubContact.scss\";\r\n\r\nimport SupportModal from \"components/modals/SupportModal\";\r\nimport UniversalButton from \"components/uiComponents/UniversalButton\";\r\n\r\nimport { ReactComponent as CloseIcon } from 'static/icons/close.svg';\r\n\r\nconst HubContactButton = ({\r\n onHideHelp,\r\n}) => {\r\n const { handleModal } = useContext(ModalContext);\r\n\r\n const handleCloseModal = () => {\r\n handleModal(null, true);\r\n };\r\n\r\n const handleClick = () => {\r\n handleModal();\r\n };\r\n\r\n return (\r\n
\r\n

Do you have a problem?

\r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default HubContactButton;\r\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCloseSmall(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.4\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 3L3 9\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 3L9 9\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCloseSmall);\nexport default __webpack_public_path__ + \"static/media/close-small.9b1dea7d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFolder(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 165,\n height: 165,\n viewBox: \"0 0 165 165\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M158.4 136.62C158.426 138.638 158.048 140.642 157.288 142.512C156.529 144.382 155.404 146.081 153.978 147.51C152.566 148.924 150.889 150.046 149.043 150.81C147.197 151.575 145.218 151.967 143.22 151.965H21.7801C19.7864 151.97 17.8117 151.579 15.9705 150.814C14.1293 150.049 12.4585 148.926 11.0551 147.51C8.20721 144.667 6.60481 140.809 6.6001 136.785V28.3802C6.60481 24.3561 8.20721 20.4984 11.0551 17.6552C12.4585 16.2392 14.1293 15.1162 15.9705 14.3514C17.8117 13.5866 19.7864 13.1953 21.7801 13.2002H59.7301L75.0751 35.9702H143.385C147.363 36.0097 151.167 37.6094 153.978 40.4252C155.384 41.8347 156.498 43.5073 157.257 45.3476C158.015 47.1879 158.404 49.1597 158.4 51.1502V136.62Z\",\n fill: \"#F5A545\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M158.4 136.62C158.426 138.638 158.048 140.641 157.288 142.511C156.529 144.381 155.404 146.081 153.978 147.51C152.566 148.924 150.889 150.045 149.043 150.81C147.197 151.574 145.218 151.967 143.22 151.965H21.7801C19.7864 151.97 17.8117 151.578 15.9705 150.814C14.1293 150.049 12.4585 148.926 11.0551 147.51C8.20721 144.667 6.60481 140.809 6.6001 136.785V61.3797C6.60481 57.3555 8.20721 53.4979 11.0551 50.6547C12.4585 49.2387 14.1293 48.1157 15.9705 47.3509C17.8117 46.5861 19.7864 46.1948 21.7801 46.1997H59.7301L75.0751 35.9697H143.385C147.363 36.0092 151.167 37.6089 153.978 40.4247C155.384 41.8342 156.498 43.5068 157.257 45.3471C158.015 47.1874 158.404 49.1592 158.4 51.1497V136.62Z\",\n fill: \"#FFBA68\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFolder);\nexport default __webpack_public_path__ + \"static/media/folder.28eed668.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useRef } from \"react\";\r\nimport classNames from 'classnames';\r\nimport { CSSTransition } from \"react-transition-group\";\r\nimport \"./SearchInput.scss\";\r\n\r\nimport { ReactComponent as SearchIcon } from 'static/icons/search-grey.svg';\r\nimport { ReactComponent as CloseIcon } from 'static/icons/close-small.svg';\r\n\r\nconst SearchInput = (\r\n ({\r\n name,\r\n type,\r\n size,\r\n placeholder,\r\n isVisible,\r\n isWithoutCloseButton,\r\n isAbsolutePositioning,\r\n isRightPosition,\r\n width,\r\n onChange,\r\n onChangeVisibility,\r\n onHideSearch,\r\n }) => {\r\n const inputRef = useRef();\r\n const [searchFocused, setSearchFocused] = useState(false);\r\n\r\n const handleSearchFocus = () => {\r\n setSearchFocused(true);\r\n };\r\n\r\n const handleSearchBlur = () => {\r\n setSearchFocused(false);\r\n };\r\n\r\n const handleChangeVisibility = () => {\r\n if (!searchFocused) {\r\n inputRef.current.focus();\r\n }\r\n\r\n onChangeVisibility?.();\r\n };\r\n\r\n const handleHideSearch = () => {\r\n inputRef.current.value = null;\r\n onHideSearch();\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\nexport default SearchInput;\r\n","import React, { useMemo } from \"react\";\r\nimport classNames from \"classnames\";\r\n\r\nconst Button = ({\r\n children,\r\n clickFunction,\r\n type = \"button\",\r\n disabled = false,\r\n transparent = false,\r\n isCommon = false,\r\n isFullWidth = false,\r\n isActive = false,\r\n}) => {\r\n const classesForBtn = useMemo(() => {\r\n if (!!isCommon) {\r\n return \"common-btn\";\r\n } else {\r\n if (transparent) {\r\n return \"border-btn\";\r\n } else {\r\n return \"orange-btn\";\r\n }\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default Button;\r\n","import React from \"react\";\r\nimport { format } from 'date-fns'\r\nimport classNames from \"classnames\";\r\nimport \"./VersionsItem.scss\";\r\n\r\nconst VersionsItem = ({\r\n children,\r\n id,\r\n lastUpdate,\r\n size,\r\n text,\r\n type,\r\n updatedBy,\r\n isBlock,\r\n onClick,\r\n isActive,\r\n fileIconPath,\r\n}) => {\r\n return (\r\n \r\n
\r\n \r\n\r\n \r\n {text}\r\n

\r\n
\r\n\r\n
\r\n \r\n {format(new Date(lastUpdate * 1000), 'MM.dd.yyyy; HH:mm')}\r\n

\r\n\r\n \r\n {updatedBy}\r\n

\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default VersionsItem;\r\n","import {ADD_FOLDER, ADD_TEMPLATE, DELETE_FOLDER, DELETE_TEMPLATE, RENAME_FOLDER, EDIT_TEMPLATE, CLEAR_SETTING_VIEWER} from \"../constans\";\r\nimport {\r\n addTemplateFolder,\r\n deleteTemplate, deleteTemplateFolder,\r\n editTemplate,\r\n renameTemplateFolder,\r\n saveTemplate\r\n} from \"../../utils/builder/IScheduleLogic\";\r\n\r\nexport const addFolderTemplate = (res) => async (dispatch) => {\r\n await addTemplateFolder(res);\r\n\r\n dispatch({\r\n type: ADD_FOLDER,\r\n payload: res,\r\n });\r\n};\r\n\r\nexport const renameFolderTemplate = (originalName, newNameFolder) => async (dispatch) => {\r\n renameTemplateFolder(originalName, newNameFolder);\r\n\r\n dispatch({\r\n type: RENAME_FOLDER,\r\n payload: {\r\n newNameFolder: newNameFolder,\r\n originalName: originalName\r\n },\r\n });\r\n};\r\n\r\nexport const addTemplate = (res) => async (dispatch) => {\r\n\r\n const { folder, template, description, properties, group, } = res;\r\n\r\n await saveTemplate(folder, template, description, properties, group, \"\");\r\n\r\n dispatch({\r\n type: ADD_TEMPLATE,\r\n payload: res,\r\n });\r\n};\r\n\r\nexport const templateEdit = (res) => async (dispatch) => {\r\n\r\n const { currentNameFolder, currentNameTemplate, newNameFolder, newNameTemplate, newDescriptionTemplate } = res;\r\n\r\n await editTemplate(currentNameFolder, currentNameTemplate, newNameFolder, newNameTemplate, newDescriptionTemplate);\r\n\r\n dispatch({\r\n type: EDIT_TEMPLATE,\r\n payload: res,\r\n });\r\n};\r\n\r\nexport const deleteFolderTemplate = (res) => async (dispatch) => {\r\n deleteTemplateFolder(res);\r\n\r\n dispatch({\r\n type: DELETE_FOLDER,\r\n payload: res,\r\n });\r\n};\r\n\r\nexport const deleteTemplateFromFolder = (folderName, templateName) => async (dispatch) => {\r\n\r\n await deleteTemplate(folderName, templateName);\r\n\r\n dispatch({\r\n type: DELETE_TEMPLATE,\r\n payload: {\r\n folderName: folderName,\r\n templateName: templateName\r\n },\r\n });\r\n};\r\n\r\nexport const clearSettingViewer = () => {\r\n\r\n return {\r\n type: CLEAR_SETTING_VIEWER,\r\n };\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useDispatch } from \"react-redux\";\r\nimport { addToRecent } from \"utils/builder/IModelsTree\";\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport \"./VersionsModal.scss\";\r\n\r\nimport VersionsItem from \"components/uiComponents/VersionsItem\";\r\nimport UniversalButton from \"components/uiComponents/UniversalButton\";\r\nimport { clearSettingViewer } from \"../../../store/actions/template\";\r\n\r\nconst VersionsModal = ({\r\n versions,\r\n parentItem,\r\n title,\r\n closeModal,\r\n fileIconPath,\r\n}) => {\r\n const history = useHistory();\r\n const [activeVersion, setActiveVersion] = useState(null);\r\n const dispatch = useDispatch();\r\n\r\n const {\r\n setActiveProject,\r\n } = useDashboardState();\r\n\r\n const handleLoad = (e) => {\r\n e.preventDefault();\r\n\r\n dispatch(clearSettingViewer());\r\n addToRecent(parentItem);\r\n setActiveProject(activeVersion);\r\n\r\n history.push({\r\n pathname: `/project/${activeVersion.idToOpen}`,\r\n state: { project: activeVersion }\r\n });\r\n\r\n closeModal();\r\n };\r\n\r\n const handleCancel = () => {\r\n closeModal();\r\n };\r\n\r\n return (\r\n
\r\n

Version history

\r\n\r\n

{title}

\r\n\r\n
\r\n {versions && Array.isArray(versions) &&\r\n versions?.map(item => {\r\n const handleItemClick = () => {\r\n setActiveVersion(item);\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\nexport default VersionsModal;\r\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgStar(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2L15.09 8.26L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L8.91 8.26L12 2Z\",\n stroke: \"#FA8700\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgStar);\nexport default __webpack_public_path__ + \"static/media/star.961a9baa.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrowSort(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 2.5V9.5\",\n stroke: \"#63666A\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.5 6L6 9.5L2.5 6\",\n stroke: \"#63666A\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowSort);\nexport default __webpack_public_path__ + \"static/media/arrow-sort.718dba3c.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/rvt.5c9d914c.png\";","export default __webpack_public_path__ + \"static/media/nwc.36235664.png\";","export default __webpack_public_path__ + \"static/media/ifc.d22d7070.png\";","export default __webpack_public_path__ + \"static/media/dwg.60357cb1.png\";","export default __webpack_public_path__ + \"static/media/fbx.3877de16.png\";","export default __webpack_public_path__ + \"static/media/unfamiliar.95fef04d.png\";","import React, { useContext, useMemo } from \"react\";\r\nimport { ModalContext } from \"components/ModalContext\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport { findFoldersTreeObj } from \"utils/helpers\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { getNextLevel, addToFavorites, removeFromFavorites, addToRecent } from \"utils/builder/IModelsTree\";\r\nimport { format } from 'date-fns'\r\nimport classNames from \"classnames\";\r\nimport VersionsModal from \"components/modals/VersionsModal\";\r\nimport \"./GridItem.scss\";\r\n\r\nimport { ReactComponent as FolderIcon } from \"static/icons/folder.svg\";\r\nimport { ReactComponent as StarIcon } from \"static/icons/star.svg\";\r\n\r\nimport rvtImage from \"static/images/fileTypes/rvt.png\";\r\nimport nwImage from \"static/images/fileTypes/nwc.png\";\r\nimport ifcImage from \"static/images/fileTypes/ifc.png\";\r\nimport iwmImage from \"static/images/fileTypes/iwm.png\";\r\nimport dwgImage from \"static/images/fileTypes/dwg.png\";\r\nimport fbxImage from \"static/images/fileTypes/fbx.png\";\r\nimport unfamiliarImage from \"static/images/fileTypes/unfamiliar.png\";\r\nimport { clearSettingViewer } from \"../../../store/actions/template\";\r\n\r\n// TODO: the bug is here?\r\nconst GridItem = ({\r\n item: {\r\n children,\r\n id,\r\n idToOpen,\r\n isFavorite,\r\n lastUpdate,\r\n pictureUrl,\r\n lastVersion,\r\n size,\r\n text,\r\n type,\r\n updatedBy,\r\n lastOpened,\r\n },\r\n titleWidth,\r\n isBlock,\r\n}) => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const {\r\n activeFolder,\r\n foldersTree,\r\n favourites,\r\n recent,\r\n setFoldersTree,\r\n setActiveFolder,\r\n setActiveProject,\r\n setIsFolderLoading,\r\n setFavourites,\r\n setRecent,\r\n } = useDashboardState();\r\n\r\n const { handleModal } = useContext(ModalContext);\r\n\r\n const handleCloseModal = () => {\r\n handleModal(null, true);\r\n };\r\n\r\n const getFileExtension = path => {\r\n const pathArr = path?.split('.');\r\n\r\n return pathArr?.[pathArr?.length - 1];\r\n };\r\n\r\n const getFileIconPath = path => {\r\n const ext = getFileExtension(path);\r\n\r\n switch(ext) {\r\n case 'rvt':\r\n return rvtImage;\r\n case 'nwc':\r\n case 'nwd':\r\n return nwImage;\r\n case 'ifc':\r\n return ifcImage;\r\n case 'iwm':\r\n return iwmImage;\r\n case 'dwg':\r\n case 'dwf':\r\n case 'dwfx':\r\n case 'dwt':\r\n return dwgImage;\r\n case 'fbx':\r\n return fbxImage;\r\n default:\r\n return unfamiliarImage;\r\n }\r\n };\r\n\r\n const fileIconPath = useMemo(() => {\r\n return getFileIconPath(text);\r\n }, [text]);\r\n\r\n const handleClick = () => {\r\n const item = {\r\n children,\r\n id,\r\n idToOpen,\r\n isFavorite,\r\n lastUpdate,\r\n pictureUrl,\r\n lastVersion,\r\n size,\r\n text,\r\n type,\r\n updatedBy,\r\n lastOpened,\r\n };\r\n\r\n if (type === 'folders') {\r\n const requestedObj = findFoldersTreeObj(id, foldersTree);\r\n\r\n if (requestedObj?.childrenArr) {\r\n setActiveFolder(id);\r\n } else {\r\n setIsFolderLoading(true);\r\n\r\n getNextLevel(id)\r\n .then(res => {\r\n if (requestedObj) {\r\n if (!requestedObj?.childrenArr?.length) {\r\n requestedObj.childrenArr = res;\r\n }\r\n }\r\n\r\n setFoldersTree(foldersTree);\r\n })\r\n .then(() => {\r\n setActiveFolder(id);\r\n })\r\n .finally(() => {\r\n setIsFolderLoading(false);\r\n });\r\n }\r\n } else if (type === 'items') {\r\n dispatch(clearSettingViewer());\r\n addToRecent(item);\r\n setActiveProject(item);\r\n\r\n history.push({\r\n pathname: `/project/${idToOpen}`,\r\n state: { project: item }\r\n });\r\n } else if (type === 'versions') {\r\n addToRecent(item);\r\n setActiveProject(item);\r\n\r\n history.push({\r\n pathname: `/project/${idToOpen}`,\r\n state: { project: item }\r\n });\r\n }\r\n };\r\n\r\n const handleFavouriteClick = (e) => {\r\n e.stopPropagation();\r\n\r\n const item = {\r\n children,\r\n id,\r\n idToOpen,\r\n isFavorite,\r\n lastUpdate,\r\n pictureUrl,\r\n lastVersion,\r\n size,\r\n text,\r\n type,\r\n updatedBy,\r\n lastOpened,\r\n };\r\n\r\n const foldersTreeCopy = JSON.parse(JSON.stringify(foldersTree));\r\n const requestedObj = findFoldersTreeObj(id, foldersTreeCopy);\r\n\r\n const setCurrentItemFavouriteStatusInData = (id, data, status) => {\r\n const currentItem = findFoldersTreeObj(id, data);\r\n currentItem.isFavorite = status;\r\n\r\n return data;\r\n };\r\n\r\n if (isFavorite) {\r\n item.isFavorite = false;\r\n\r\n if (requestedObj) {\r\n requestedObj.isFavorite = false;\r\n }\r\n\r\n if (activeFolder === 'favourites') {\r\n const updatedFavourites = setCurrentItemFavouriteStatusInData(id, favourites, false);\r\n\r\n setFavourites(updatedFavourites);\r\n }\r\n\r\n if (activeFolder === 'recent') {\r\n const updatedRecent = setCurrentItemFavouriteStatusInData(id, recent, false);\r\n\r\n setRecent(updatedRecent);\r\n }\r\n\r\n removeFromFavorites(item);\r\n } else {\r\n item.isFavorite = true;\r\n\r\n if (requestedObj) {\r\n requestedObj.isFavorite = true;\r\n }\r\n\r\n if (activeFolder === 'favourites') {\r\n const updatedFavourites = setCurrentItemFavouriteStatusInData(id, favourites, true);\r\n setFavourites(updatedFavourites);\r\n }\r\n\r\n if (activeFolder === 'recent') {\r\n const updatedRecent = setCurrentItemFavouriteStatusInData(id, recent, true);\r\n\r\n setRecent(updatedRecent);\r\n }\r\n\r\n addToFavorites(item);\r\n }\r\n\r\n setFoldersTree(foldersTreeCopy);\r\n }\r\n\r\n const handleClickVersions = (e) => {\r\n e.stopPropagation();\r\n\r\n const item = {\r\n children,\r\n id,\r\n idToOpen,\r\n isFavorite,\r\n lastUpdate,\r\n pictureUrl,\r\n lastVersion,\r\n size,\r\n text,\r\n type,\r\n updatedBy,\r\n lastOpened,\r\n };\r\n\r\n getNextLevel(id)\r\n .then(res => {\r\n const requestedObj = findFoldersTreeObj(id, foldersTree);\r\n\r\n if (requestedObj) {\r\n if (!requestedObj?.childrenArr?.length) {\r\n requestedObj.childrenArr = res;\r\n }\r\n\r\n setFoldersTree(foldersTree);\r\n }\r\n\r\n return res;\r\n })\r\n .then(res => {\r\n handleModal(\r\n \r\n );\r\n })\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n {type !== 'folders' &&\r\n \r\n }\r\n
\r\n\r\n {type === 'folders' &&\r\n \r\n }\r\n\r\n {(type === 'items' || type === 'versions') &&\r\n \r\n }\r\n\r\n \r\n {text}\r\n

\r\n\r\n \r\n {type !== 'folders' && lastVersion &&\r\n \r\n {lastVersion}\r\n

\r\n }\r\n \r\n\r\n

\r\n {!isBlock && type !== 'folders' &&\r\n `${Math.floor(size / 1024 / 1024)} MB`\r\n }\r\n

\r\n\r\n {!isBlock &&\r\n

\r\n {format(new Date(lastUpdate * 1000), 'MM.dd.yyyy; HH:mm')}\r\n

\r\n }\r\n\r\n {!isBlock &&\r\n

\r\n {updatedBy}\r\n

\r\n }\r\n\r\n {!isBlock && activeFolder === 'recent' &&\r\n

\r\n {lastOpened ? format(new Date(lastOpened * 1000), 'MM.dd.yyyy; HH:mm') : '-'}\r\n

\r\n }\r\n \r\n \r\n );\r\n};\r\n\r\nexport default GridItem;\r\n","export default \"data:image/png;base64,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\"","import React, { useEffect, useRef } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport { wrapGrid } from \"animate-css-grid\";\r\nimport \"./Grid.scss\";\r\n\r\nimport GridItem from \"../GridItem\";\r\n\r\nconst Grid = ({\r\n items,\r\n itemsViewType,\r\n titleWidth,\r\n}) => {\r\n const ref = useRef(null);\r\n\r\n useEffect(() => {\r\n wrapGrid(ref.current, { easing: 'backOut', stagger: 10, duration: 400 });\r\n }, [items, ref.current]);\r\n\r\n return (\r\n \r\n {items.map(item => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default Grid;\r\n","import React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport \"./UniversalLoader.scss\";\r\n\r\nconst UniversalLoader = ({\r\n label,\r\n labelColor,\r\n preloaderColor,\r\n preloaderBgColor,\r\n position,\r\n isWithoutContainerBg\r\n}) => {\r\n return (\r\n \r\n {!!label &&\r\n \r\n {label}\r\n \r\n }\r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default UniversalLoader;\r\n","import React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport \"./BreabcrumbsItem.scss\";\r\n\r\nconst BreabcrumbsItem = ({\r\n text,\r\n isFirst,\r\n isLast,\r\n onClick,\r\n}) => {\r\n return (\r\n
\r\n \r\n {text}\r\n \r\n\r\n {!isLast &&\r\n \r\n /\r\n \r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default BreabcrumbsItem;\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport classNames from 'classnames';\r\nimport { useOnClickOutside } from 'utils/helpers';\r\nimport './ButtonDropdown.scss';\r\n\r\nconst ButtonDropdown = ({\r\n buttonElement,\r\n isDropdownBlocked,\r\n children,\r\n dropdownPosition,\r\n dropdownVerticalPosition,\r\n isFixedHeight,\r\n isFullHeight,\r\n isFullWidth,\r\n isItemsEmpty,\r\n onCloseDropdown,\r\n dropDownCloseStatus,\r\n}) => {\r\n const [dropdownIsOpen, setDropdownIsOpen] = useState(false);\r\n const ref = useRef();\r\n\r\n useEffect(() => {\r\n setDropdownIsOpen(dropDownCloseStatus);\r\n }, [dropDownCloseStatus]);\r\n\r\n useOnClickOutside(ref, () => {\r\n setDropdownIsOpen(false)\r\n onCloseDropdown(false);\r\n });\r\n\r\n const buttonDropdownStyles = classNames({\r\n 'ButtonDropdownNotifContainer': true,\r\n 'ButtonDropdownNotifContainerLeft': dropdownPosition === 'left',\r\n 'ButtonDropdownNotifContainerRight': dropdownPosition === 'right',\r\n 'ButtonDropdownNotifContainerFixedHeight': isFixedHeight,\r\n 'ButtonDropdownNotifContainerFullHeight': isFullHeight,\r\n 'ButtonDropdownNotifContainerEmpty': isItemsEmpty,\r\n 'ButtonDropdownNotifContainerTop': dropdownVerticalPosition === 'top',\r\n });\r\n\r\n const handleDropdownIsOpen = () => {\r\n setDropdownIsOpen(!dropdownIsOpen);\r\n };\r\n\r\n return (\r\n \r\n \r\n {buttonElement}\r\n \r\n\r\n {dropdownIsOpen && !isDropdownBlocked &&\r\n \r\n {children}\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default ButtonDropdown;","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgGrid(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.4\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 3H4C3.44772 3 3 3.44772 3 4V9C3 9.55228 3.44772 10 4 10H9C9.55228 10 10 9.55228 10 9V4C10 3.44772 9.55228 3 9 3Z\",\n stroke: \"#202329\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 3H15C14.4477 3 14 3.44772 14 4V9C14 9.55228 14.4477 10 15 10H20C20.5523 10 21 9.55228 21 9V4C21 3.44772 20.5523 3 20 3Z\",\n stroke: \"#202329\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 14H15C14.4477 14 14 14.4477 14 15V20C14 20.5523 14.4477 21 15 21H20C20.5523 21 21 20.5523 21 20V15C21 14.4477 20.5523 14 20 14Z\",\n stroke: \"#202329\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 14H4C3.44772 14 3 14.4477 3 15V20C3 20.5523 3.44772 21 4 21H9C9.55228 21 10 20.5523 10 20V15C10 14.4477 9.55228 14 9 14Z\",\n stroke: \"#202329\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGrid);\nexport default __webpack_public_path__ + \"static/media/grid.2e777dcb.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useRef } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport { useElementSize } from \"utils/helpers\";\r\nimport \"./SortHeader.scss\";\r\n\r\nimport ButtonDropdown from \"components/uiComponents/ButtonDropdown\";\r\n\r\nimport { ReactComponent as ArrowSortIcon } from \"static/icons/arrow-sort.svg\";\r\nimport { ReactComponent as ArrowIcon } from \"static/icons/arrow.svg\";\r\n\r\nconst DropdownItem = ({\r\n item,\r\n onClick,\r\n}) => {\r\n return (\r\n \r\n {item.value}\r\n \r\n );\r\n};\r\n\r\nconst SortButton = ({\r\n label,\r\n openStatus,\r\n onClick,\r\n}) => {\r\n return (\r\n \r\n

\r\n {label}\r\n

\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nconst SortHeader = ({\r\n data,\r\n viewType,\r\n onChooseSortType,\r\n onDirectionButtonClick,\r\n onSortItemClick,\r\n onWidthChange,\r\n}) => {\r\n const titleRef = useRef(null);\r\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\r\n \r\n const [width, height] = useElementSize(titleRef?.current);\r\n\r\n onWidthChange(width);\r\n\r\n const handleCloseDropdown = () => {\r\n setIsDropdownOpen(false);\r\n };\r\n\r\n const handleSortButtonClick = () => {\r\n if (isDropdownOpen) {\r\n setIsDropdownOpen(false);\r\n } else {\r\n setIsDropdownOpen(true);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {viewType === 'list' &&\r\n <>\r\n
\r\n {data.map(item => {\r\n const handleItemClick = () => {\r\n onSortItemClick(item);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n {item.value}\r\n \r\n\r\n \r\n
\r\n
\r\n );\r\n })}\r\n \r\n }\r\n\r\n {viewType === 'block' &&\r\n <>\r\n

\r\n Sort by:\r\n

\r\n\r\n item.isActive).value}\r\n openStatus={isDropdownOpen}\r\n onClick={handleSortButtonClick}\r\n />\r\n }\r\n buttonBorder\r\n dropdownPosition=\"left\"\r\n onCloseDropdown={handleCloseDropdown}\r\n isFullHeight\r\n dropDownCloseStatus={isDropdownOpen}\r\n >\r\n {data.map(item => {\r\n const handleClickDropdownItem = () => {\r\n setIsDropdownOpen(false);\r\n onChooseSortType(item);\r\n };\r\n\r\n return (\r\n \r\n );\r\n })}\r\n \r\n\r\n item.isActive).isDescending,\r\n })}\r\n onClick={onDirectionButtonClick}\r\n >\r\n \r\n
\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default SortHeader;\r\n","var _path, _path2, _path3, _circle, _circle2, _circle3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgList(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 6H21\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 12H21\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 18H21\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4,\n cy: 6,\n r: 1,\n stroke: \"black\",\n strokeWidth: 2\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4,\n cy: 12,\n r: 1,\n stroke: \"black\",\n strokeWidth: 2\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4,\n cy: 18,\n r: 1,\n stroke: \"black\",\n strokeWidth: 2\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgList);\nexport default __webpack_public_path__ + \"static/media/list.4cf47cac.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmptyFolder(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 151,\n height: 150,\n viewBox: \"0 0 151 150\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.5 130.479C105.875 130.479 130.5 105.903 130.5 75.4795C130.5 45.0563 105.875 20.4795 75.5 20.4795C45.1252 20.4795 20.5 45.0563 20.5 75.4795C20.5 105.903 45.1252 130.479 75.5 130.479Z\",\n fill: \"#F3F6F8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.2364 45.9708C57.2419 44.553 55.6188 43.709 53.8871 43.709H40.3788C35.5785 43.709 31.859 47.9069 32.437 52.6722L35.8965 81.1958C36.3837 85.2122 39.7926 88.2326 43.8383 88.2326H104.876C108.937 88.2326 112.354 85.1901 112.823 81.1564L115.613 57.1564C116.165 52.404 112.45 48.2326 107.666 48.2326H62.5857C60.8539 48.2326 59.2309 47.3885 58.2364 45.9708Z\",\n fill: \"url(#paint0_linear_512_24765)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.002 53.0297C108.13 53.0297 101.474 53.0297 89.6024 53.0297C86.6024 53.0297 83.8024 54.0297 81.5024 55.9297L73.5024 62.4297C71.3024 64.2297 68.4024 65.3297 65.4024 65.3297H31.0024C27.5024 65.3297 24.7024 68.2297 24.7024 71.6297C24.7024 71.9297 24.7024 72.2297 24.8024 72.5297L31.1024 106.23C31.6024 109.43 34.3024 111.73 37.4024 111.73H111.002C114.202 111.73 116.802 109.53 117.302 106.33L126.202 60.2297C126.802 56.7297 124.502 53.6297 121.002 52.9297C120.702 53.0297 120.302 53.0297 120.002 53.0297Z\",\n fill: \"url(#paint1_linear_512_24765)\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.834 34.9639C80.4213 34.9639 82.5186 32.8666 82.5186 30.2793C82.5186 27.6921 80.4213 25.5947 77.834 25.5947C75.2468 25.5947 73.1494 27.6921 73.1494 30.2793C73.1494 32.8666 75.2468 34.9639 77.834 34.9639Z\",\n fill: \"#D2D6D9\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.753 83.2003C53.3402 83.2003 55.4376 81.1029 55.4376 78.5157C55.4376 75.9284 53.3402 73.8311 50.753 73.8311C48.1657 73.8311 46.0684 75.9284 46.0684 78.5157C46.0684 81.1029 48.1657 83.2003 50.753 83.2003Z\",\n fill: \"#CCD2D6\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.3782 38.5777C30.6698 38.5777 32.5275 36.7201 32.5275 34.4285C32.5275 32.137 30.6698 30.2793 28.3782 30.2793C26.0867 30.2793 24.229 32.137 24.229 34.4285C24.229 36.7201 26.0867 38.5777 28.3782 38.5777Z\",\n fill: \"#E6E9EA\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.5132 17.1748C50.7698 17.1748 51.7886 16.1561 51.7886 14.8994C51.7886 13.6427 50.7698 12.624 49.5132 12.624C48.2565 12.624 47.2378 13.6427 47.2378 14.8994C47.2378 16.1561 48.2565 17.1748 49.5132 17.1748Z\",\n fill: \"#E6E9EA\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.9333 10.5508C91.19 10.5508 92.2087 9.53204 92.2087 8.27538C92.2087 7.01872 91.19 6 89.9333 6C88.6767 6 87.658 7.01872 87.658 8.27538C87.658 9.53204 88.6767 10.5508 89.9333 10.5508Z\",\n fill: \"#E6E9EA\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.157 46.5871C125.153 46.5871 126.771 44.9691 126.771 42.9732C126.771 40.9773 125.153 39.3594 123.157 39.3594C121.161 39.3594 119.543 40.9773 119.543 42.9732C119.543 44.9691 121.161 46.5871 123.157 46.5871Z\",\n fill: \"#E6E9EA\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.186 97.1945C104.182 97.1945 105.8 95.5765 105.8 93.5806C105.8 91.5848 104.182 89.9668 102.186 89.9668C100.19 89.9668 98.5725 91.5848 98.5725 93.5806C98.5725 95.5765 100.19 97.1945 102.186 97.1945Z\",\n fill: \"#C5CBCF\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_512_24765\",\n x1: 74.2912,\n y1: 38.6873,\n x2: 74.2912,\n y2: 77.6263,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#D4D6D7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#C3C5C7\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_512_24765\",\n x1: 75.4668,\n y1: 51.5696,\n x2: 75.4668,\n y2: 112.364,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#EEF0F2\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.9964,\n stopColor: \"#DEE2E5\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyFolder);\nexport default __webpack_public_path__ + \"static/media/empty-folder.eac6e3e8.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDoubleRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.4\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 9L6 6L3 3\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 9L9 6L6 3\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDoubleRight);\nexport default __webpack_public_path__ + \"static/media/double-right.1297ee95.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useEffect, memo, useMemo, useCallback } from 'react';\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport { findFoldersTreeObj, getFoldersBreadcrumbs } from \"utils/helpers\";\r\nimport { CSSTransition } from \"react-transition-group\";\r\nimport \"./FolderExplorer.scss\";\r\n\r\nimport Grid from 'components/uiComponents/Grid';\r\nimport UniversalLoader from \"components/uiComponents/UniversalLoader\";\r\nimport BreabcrumbsItem from 'components/uiComponents/BreabcrumbsItem';\r\nimport SortHeader from 'components/uiComponents/SortHeader';\r\n\r\nimport { ReactComponent as GridIcon } from \"static/icons/grid.svg\";\r\nimport { ReactComponent as ListIcon } from \"static/icons/list.svg\";\r\nimport { ReactComponent as EmptyFolderIcon } from \"static/images/empty-folder.svg\";\r\n\r\nconst standartSortList = [\r\n {\r\n key: 'name',\r\n value: 'Name',\r\n isDescending: true,\r\n isActive: false,\r\n },\r\n {\r\n key: 'version',\r\n value: 'Version',\r\n isDescending: true,\r\n isActive: false,\r\n },\r\n {\r\n key: 'size',\r\n value: 'Size',\r\n isDescending: true,\r\n isActive: false,\r\n },\r\n {\r\n key: 'lastUpd',\r\n value: 'Last update',\r\n isDescending: true,\r\n isActive: true,\r\n },\r\n {\r\n key: 'updBy',\r\n value: 'Update by',\r\n isDescending: true,\r\n isActive: false,\r\n },\r\n];\r\n\r\nconst recentSortList = [\r\n {\r\n key: 'name',\r\n value: 'Name',\r\n isDescending: true,\r\n isActive: false,\r\n },\r\n {\r\n key: 'version',\r\n value: 'Version',\r\n isDescending: true,\r\n isActive: false,\r\n },\r\n {\r\n key: 'size',\r\n value: 'Size',\r\n isDescending: true,\r\n isActive: false,\r\n },\r\n {\r\n key: 'lastUpd',\r\n value: 'Last update',\r\n isDescending: true,\r\n isActive: false,\r\n },\r\n {\r\n key: 'updBy',\r\n value: 'Update by',\r\n isDescending: true,\r\n isActive: false,\r\n },\r\n {\r\n key: 'lastOpened',\r\n value: 'Last opened',\r\n isDescending: true,\r\n isActive: true,\r\n },\r\n];\r\n\r\nconst FolderExplorer = memo(({\r\n //\r\n}) => {\r\n const {\r\n foldersTree,\r\n activeFolder,\r\n isFolderLoading,\r\n favourites,\r\n recent,\r\n setActiveFolder,\r\n } = useDashboardState();\r\n\r\n const [itemsViewType, setItemsViewType] = useState('list');\r\n const [titleWidth, setTitleWidth] = useState(260);\r\n const [sortData, setSortData] = useState(standartSortList);\r\n\r\n useEffect(() => {\r\n if (activeFolder === 'recent') {\r\n setSortData(recentSortList);\r\n } else {\r\n setSortData(standartSortList);\r\n }\r\n }, [activeFolder]);\r\n\r\n const handleViewChange = () => {\r\n if (itemsViewType === 'list') {\r\n setItemsViewType('block');\r\n } else {\r\n setItemsViewType('list');\r\n }\r\n };\r\n\r\n const handleChooseSortType = useCallback((item) => {\r\n setSortData(prevState => {\r\n prevState.forEach(el => {\r\n if (el.key === item.key) {\r\n el.isActive = true;\r\n el.isDescending = true;\r\n } else {\r\n el.isActive = false;\r\n el.isDescending = true;\r\n }\r\n });\r\n\r\n return prevState;\r\n });\r\n }, []);\r\n\r\n const handleDirectionButtonClick = () => {\r\n const sortDataCopy = JSON.parse(JSON.stringify(sortData));\r\n const activeItem = sortDataCopy.find(el => el.isActive);\r\n\r\n if (activeItem.isDescending) {\r\n activeItem.isDescending = false;\r\n } else {\r\n activeItem.isDescending = true;\r\n }\r\n\r\n setSortData(sortDataCopy);\r\n };\r\n\r\n const handleSortItemClick = item => {\r\n const sortDataCopy = JSON.parse(JSON.stringify(sortData));\r\n\r\n sortDataCopy.forEach(el => {\r\n if (el.key === item.key) {\r\n el.isActive = true;\r\n\r\n if (el.isDescending) {\r\n el.isDescending = false;\r\n } else {\r\n el.isDescending = true;\r\n }\r\n } else {\r\n el.isActive = false;\r\n el.isDescending = true;\r\n }\r\n });\r\n\r\n setSortData(sortDataCopy);\r\n };\r\n\r\n const handleWidthChange = width => {\r\n if (width) {\r\n setTitleWidth(width);\r\n }\r\n };\r\n\r\n const folderObj = useMemo(() => {\r\n let obj = null\r\n\r\n if (!isFolderLoading) {\r\n if (activeFolder === 'favourites') {\r\n obj = favourites;\r\n } else if (activeFolder === 'recent') {\r\n obj = recent;\r\n } else if (activeFolder) {\r\n obj = findFoldersTreeObj(activeFolder, foldersTree);\r\n }\r\n }\r\n\r\n const sortItem = sortData.find(item => item.isActive);\r\n\r\n if (obj) {\r\n switch (sortItem.key) {\r\n case 'name':\r\n obj.childrenArr.sort((a,b) => {\r\n if (sortItem.isDescending) {\r\n return b?.text?.localeCompare(a?.text);\r\n } else {\r\n return a?.text?.localeCompare(b?.text);\r\n }\r\n });\r\n break;\r\n case 'version':\r\n obj.childrenArr.sort((a,b) => {\r\n if (sortItem.isDescending) {\r\n return String(b?.lastVersion)?.localeCompare(String(a?.lastVersion));\r\n } else {\r\n return String(a?.lastVersion)?.localeCompare(String(b?.lastVersion));\r\n }\r\n });\r\n break;\r\n case 'size':\r\n obj.childrenArr.sort((a,b) => {\r\n if (sortItem.isDescending) {\r\n return Number(b?.size) - Number(a?.size);\r\n } else {\r\n return Number(a?.size) - Number(b?.size);\r\n }\r\n });\r\n break;\r\n case 'lastUpd':\r\n obj?.childrenArr?.sort((a, b) => {\r\n if (sortItem.isDescending) {\r\n return Number(b?.lastUpdate) - Number(a?.lastUpdate);\r\n } else {\r\n return Number(a?.lastUpdate) - Number(b?.lastUpdate);\r\n }\r\n })\r\n break;\r\n case 'lastOpened':\r\n obj?.childrenArr?.sort((a, b) => {\r\n if (sortItem.isDescending) {\r\n return Number(b?.lastOpened) - Number(a?.lastOpened);\r\n } else {\r\n return Number(a?.lastOpened) - Number(b?.lastOpened);\r\n }\r\n })\r\n break;\r\n case 'updBy':\r\n obj.childrenArr.sort((a,b) => {\r\n if (sortItem.isDescending) {\r\n return b?.updatedBy?.localeCompare(a?.text);\r\n } else {\r\n return a?.updatedBy?.localeCompare(b?.text);\r\n }\r\n });\r\n break;\r\n }\r\n }\r\n\r\n return obj;\r\n }, [foldersTree, activeFolder, isFolderLoading, favourites, recent, sortData]);\r\n\r\n const breadcrumbsArr = useMemo(() => {\r\n if (!isFolderLoading) {\r\n if (activeFolder !== 'favourites' && activeFolder !== 'recent' && activeFolder) {\r\n const breadcrumbs = getFoldersBreadcrumbs(activeFolder, foldersTree);\r\n breadcrumbs?.shift();\r\n\r\n return breadcrumbs;\r\n }\r\n\r\n if (activeFolder === 'favourites') {\r\n return [{\r\n id: 'favourites',\r\n text: 'Favorites'\r\n }];\r\n }\r\n\r\n if (activeFolder === 'recent') {\r\n return [{\r\n id: 'recent',\r\n text: 'Recent'\r\n }];\r\n }\r\n }\r\n }, [foldersTree, activeFolder, isFolderLoading]);\r\n\r\n return (\r\n <>\r\n
\r\n 0}\r\n timeout={150}\r\n unmountOnExit\r\n classNames=\"animation\"\r\n >\r\n <>\r\n
\r\n {breadcrumbsArr?.map((item, index) => {\r\n const handleBreadcrumbsItemClick = () => {\r\n setActiveFolder(item.id)\r\n };\r\n\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n\r\n {folderObj?.childrenArr?.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 {folderObj &&\r\n Array.isArray(folderObj.childrenArr) &&\r\n (breadcrumbsArr?.length > 0 || activeFolder === 'favourites' || activeFolder === 'recent') &&\r\n 0 || activeFolder === 'favourites' || activeFolder === 'recent'}\r\n timeout={150}\r\n unmountOnExit\r\n classNames=\"animation\"\r\n >\r\n <>\r\n {folderObj.childrenArr.length > 0 &&\r\n \r\n }\r\n {\r\n !isFolderLoading && !folderObj.childrenArr.length ? (\r\n
\r\n
\r\n \r\n

{folderObj?.text} files not found

\r\n

\r\n All the files you have viewed or worked with recently are displayed\r\n here.\r\n

\r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n
\r\n )\r\n }\r\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 FolderExplorer;\r\n","export default __webpack_public_path__ + \"static/media/clock.e9ab9b22.svg\";","export default __webpack_public_path__ + \"static/media/star.961a9baa.svg\";","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { CSSTransition } from \"react-transition-group\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { getNextLevel, getFavorites, getRecent } from \"utils/builder/IModelsTree\";\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport { useElementSize } from \"utils/helpers\";\r\nimport \"./DashboardEmpty.scss\";\r\n\r\nimport ProjectNav from \"components/sidebarComponents/ProjectNav\";\r\nimport WelcomeModal from \"components/modals/WelcomeModal\";\r\nimport TrialPeriodExpiredModal from \"components/modals/TrialPeriodExpiredModal\";\r\nimport ModalComponent from \"components/modals/ModalComponent\";\r\nimport HubContactButton from \"components/HubContactButton\";\r\nimport SearchInput from \"components/uiComponents/SearchInput\";\r\nimport Button from \"components/uiComponents/Button\";\r\nimport FolderExplorer from \"components/FolderExplorer\";\r\nimport {subscriptionType} from \"../../utils/data\";\r\n\r\nimport ClockIcon from \"static/icons/clock.svg\";\r\nimport StarIcon from \"static/icons/star.svg\";\r\n\r\nconst DashboardEmpty = () => {\r\n const {\r\n activeFolder,\r\n isWelcomeModalSeen,\r\n signingState,\r\n setFavourites,\r\n setRecent,\r\n setActiveFolder,\r\n setIsFolderLoading,\r\n setIsWelcomeModalSeen,\r\n recent,\r\n favourites\r\n } = useDashboardState();\r\n\r\n const searchRef = useRef(null);\r\n const { subscreption } = useSelector((state) => state.user.info);\r\n\r\n const [searchWidth, searcHeight] = useElementSize(searchRef?.current);\r\n const [list, setList] = useState(null);\r\n const [searchValue, setSearchValue] = useState(null);\r\n const [tree, setTree] = useState({});\r\n const [isWelcomeModalVisible, setIsWelcomeModalVisible] = useState(false);\r\n const [isTrialPeriodExpiredModal, setTrialPeriodExpiredModal] = useState(false);\r\n const [isHubButtonVisible, setIsHubButtonVisible] = useState(true);\r\n const [isSearchVisible, setIsSearchVisible] = useState(false);\r\n\r\n const closeTrialPeriodExpiredModal = () => {\r\n setTrialPeriodExpiredModal(false);\r\n };\r\n\r\n const handleCloseWelcomeModal = () => {\r\n setIsWelcomeModalVisible(false);\r\n };\r\n\r\n useEffect(() => {\r\n if(subscreption === subscriptionType.blocked) {\r\n setTrialPeriodExpiredModal(true);\r\n }\r\n }, [subscreption]);\r\n\r\n useEffect(() => {\r\n if (signingState === 2) {\r\n if (!isWelcomeModalSeen) {\r\n setTimeout(() => {\r\n setIsWelcomeModalVisible(true);\r\n setIsWelcomeModalSeen(true);\r\n }, 1000);\r\n }\r\n }\r\n }, [signingState]);\r\n\r\n useEffect(() => {\r\n const treea = JSON.parse(localStorage.getItem(\"tree\"));\r\n\r\n getNextLevel(\"#\").then((res) => {\r\n setList(res);\r\n });\r\n\r\n setTree(treea ? treea : {});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if(activeFolder === null || activeFolder === 'recent') {\r\n if(!recent) {\r\n handleRecentClick()\r\n }\r\n }\r\n if(activeFolder === 'favourites') {\r\n if(!favourites) {\r\n handleFavouritesClick()\r\n }\r\n }\r\n },[])\r\n\r\n const handleSearch = (e) => {\r\n const value = e.target.value;\r\n\r\n if (e.keyCode === 13) {\r\n setSearchValue(value);\r\n }\r\n };\r\n\r\n const handleRecentClick = () => {\r\n setActiveFolder('recent');\r\n setIsFolderLoading(true);\r\n\r\n getRecent()\r\n .then(res => {\r\n setRecent({\r\n text: 'Recent',\r\n childrenArr: res,\r\n });\r\n setIsFolderLoading(false);\r\n })\r\n };\r\n\r\n const handleFavouritesClick = () => {\r\n setActiveFolder('favourites');\r\n setIsFolderLoading(true);\r\n\r\n getFavorites()\r\n .then(res => {\r\n setFavourites({\r\n text: 'Favorites',\r\n childrenArr: res,\r\n });\r\n return res;\r\n })\r\n .then(() => {\r\n setIsFolderLoading(false);\r\n });\r\n };\r\n\r\n const handleHideHelp = () => {\r\n setIsHubButtonVisible(false);\r\n };\r\n\r\n const handleChangeSearchVisibility = () => {\r\n if (!isSearchVisible) {\r\n setIsSearchVisible(true);\r\n }\r\n };\r\n\r\n const handleHideSearch = () => {\r\n setIsSearchVisible(false);\r\n setSearchValue(\"\");\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 Recent\r\n

\r\n \r\n\r\n
\r\n \r\n \r\n\r\n

\r\n Favorites\r\n

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n

\r\n My projects\r\n

\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\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 DashboardEmpty;\r\n","var _path, _path2, _path3, _path4, _path5, _path6;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgReportDownload(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 11V4C20 2.89543 19.1046 2 18 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H15\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 6H8\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 10H8\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 14H8\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 18H8\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 22V15M20 22L17.5 19.5M20 22L22.5 19.5\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgReportDownload);\nexport default __webpack_public_path__ + \"static/media/report-download.ee8fe384.svg\";\nexport { ForwardRef as ReactComponent };","import React, { memo } from \"react\";\r\nimport './TableInfoCell.scss';\r\n\r\nconst TableInfoCell = memo(({\r\n children,\r\n}) => {\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n});\r\n\r\nexport default TableInfoCell;\r\n","import React, { useMemo } from \"react\";\r\nimport { v4 } from \"uuid\";\r\nimport classNames from \"classnames\";\r\nimport \"./TableInfoFooter.scss\";\r\n\r\nimport TableInfoCell from \"components/uiComponents/TableInfoCell\";\r\n\r\nimport { numberWithCommas } from \"utils/helpers\";\r\n\r\nconst TableInfoFooter = ({\r\n selectedTotals,\r\n rows,\r\n checkList,\r\n totals,\r\n unitsArr,\r\n}) => {\r\n selectedTotals[0] = \"\";\r\n\r\n const cols = useMemo(() => {\r\n if (selectedTotals && Array.isArray(selectedTotals) && selectedTotals.length) {\r\n totals[0] = `Selected: ${numberWithCommas(Object.keys(checkList)?.length)} / ${numberWithCommas(rows?.length)}`\r\n } else {\r\n totals[0] = `Total: ${numberWithCommas(rows?.length)}`\r\n }\r\n\r\n return totals.map((el, index) => {\r\n let elUpd = el;\r\n let selectedElUpd = selectedTotals[index];\r\n\r\n if (typeof el === 'number') {\r\n if (el % 1 !== 0) {\r\n elUpd = numberWithCommas(el.toFixed(2));\r\n } else {\r\n elUpd = numberWithCommas(el);\r\n }\r\n }\r\n\r\n if (typeof selectedTotals[index] === 'number') {\r\n if (selectedTotals[index] % 1 !== 0) {\r\n selectedElUpd = numberWithCommas(selectedTotals[index].toFixed(2));\r\n } else {\r\n selectedElUpd = numberWithCommas(selectedElUpd);\r\n }\r\n }\r\n\r\n if (index === 0) {\r\n return (\r\n \r\n
\r\n {(!!selectedElUpd || selectedElUpd === 0) && selectedElUpd}\r\n\r\n {elUpd}\r\n
\r\n
\r\n )\r\n } else {\r\n return (\r\n \r\n
\r\n {(!!selectedElUpd || selectedElUpd === 0) && (!!elUpd || elUpd === 0) &&\r\n <>\r\n {selectedElUpd} \r\n\r\n \r\n {unitsArr?.[index]?.unit}\r\n \r\n\r\n {unitsArr?.[index]?.subUnit}\r\n\r\n  / \r\n
\r\n \r\n }\r\n\r\n {elUpd} \r\n\r\n {(!!elUpd || elUpd === 0) &&\r\n \r\n {unitsArr?.[index]?.unit}\r\n \r\n }\r\n\r\n {unitsArr?.[index]?.subUnit &&\r\n {unitsArr?.[index]?.subUnit}\r\n }\r\n
\r\n
\r\n )\r\n }\r\n });\r\n }, [totals, selectedTotals, rows, checkList, unitsArr]);\r\n\r\n return (\r\n \r\n {cols}\r\n \r\n );\r\n};\r\n\r\nexport default TableInfoFooter;\r\n","export default __webpack_public_path__ + \"static/media/indeterminate.89d70c2c.svg\";","import React, { memo } from \"react\";\r\nimport classNames from \"classnames\";\r\n\r\nimport \"./IndeterminateCheckbox.scss\";\r\n\r\nimport CheckedIcon from \"static/icons/checked.svg\";\r\nimport IndeterminateIcon from \"static/icons/indeterminate.svg\";\r\n\r\nexport const indeterminateCheckboxTypes = Object.freeze({\r\n checked: \"checked\",\r\n unchecked: \"unchecked\",\r\n indeterminate: \"indeterminate\"\r\n})\r\n\r\nconst IndeterminateCheckbox = ({ label, status, onChange }) => {\r\n\r\n const handleClick = () => {\r\n\r\n const isChecked = status === indeterminateCheckboxTypes.checked ? true : false;\r\n\r\n onChange(isChecked);\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n status === indeterminateCheckboxTypes.checked ? :\r\n status === indeterminateCheckboxTypes.indeterminate ? : null\r\n }\r\n \r\n {label}\r\n \r\n );\r\n};\r\n\r\nexport default memo(IndeterminateCheckbox);","import React from \"react\";\r\nimport \"./TableInfoHeader.scss\";\r\nimport classNames from 'classnames';\r\n\r\nimport TableInfoCell from \"components/uiComponents/TableInfoCell\";\r\nimport IndeterminateCheckbox from \"components/uiComponents/IndeterminateCheckbox\";\r\n\r\nimport { ReactComponent as ArrowSortIcon } from \"static/icons/arrow-sort.svg\";\r\n\r\nconst TableInfoHeader = ({\r\n header,\r\n onChangeCheckbox,\r\n status,\r\n sorting,\r\n onSortChange,\r\n}) => {\r\n const headerUpd = header?.map(item => {\r\n return {\r\n name: item,\r\n label: item.split('(')[0].trim(),\r\n }\r\n });\r\n const [col1, ...rest] = headerUpd ? headerUpd : [];\r\n\r\n const handleSortClick = (name) => {\r\n if (typeof name === 'string') {\r\n onSortChange(name);\r\n } else {\r\n onSortChange(col1.name);\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 {col1.label}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n {rest.map((el, index) => {\r\n const handleInsideSortClick = () => {\r\n handleSortClick(el.name);\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n {el.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\n};\r\n\r\nexport default TableInfoHeader;\r\n","import React from \"react\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as ExcelJs from \"exceljs\";\r\nimport { logDownloadSchedule } from \"utils/builder/IAmecLog\";\r\nimport { viewerGetScreenShot } from \"../../utils/builder/IScheduleLogic\";\r\nimport \"./DownloadInfoTableExcel.scss\";\r\nimport $ from \"jquery\";\r\n\r\nimport UniversalButton from \"components/uiComponents/UniversalButton\";\r\n\r\nimport { ReactComponent as ReportIcon } from \"static/icons/report-download.svg\";\r\n\r\nconst DownloadInfoTableExcel = ({ header, lines, fileName, isCheckFlag }) => {\r\n const fileType =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n const fileExtension = \".xlsx\";\r\n\r\n const exportToCSV = () => {\r\n var excelHeader,\r\n excelLines = [];\r\n //Get the table to find the checkbox information\r\n var tableBodies = document.getElementsByClassName(\"table-body\");\r\n // Create workbook and sheet\r\n const workbook = new ExcelJs.Workbook();\r\n const sheet = workbook.addWorksheet(\"data\");\r\n\r\n //Make sure we have all the data needed for the checkbox collumn\r\n if (\r\n tableBodies.length === 1 &&\r\n tableBodies[0].children != null &&\r\n tableBodies[0].children.length === lines.length\r\n ) {\r\n // Add Checked to header\r\n excelHeader = header;\r\n\r\n // Add column headers\r\n sheet.columns = excelHeader.map((columnHeader) => {\r\n return { header: columnHeader, key: columnHeader };\r\n });\r\n\r\n for (var i = 0; i < lines.length; i++) {\r\n // Get the value for the checkbox in line i\r\n var isChecked;\r\n try {\r\n const tableRow = tableBodies[0].children[i];\r\n const checkboxElement =\r\n tableRow.children[0].children[0].children[0].children[0];\r\n isChecked = checkboxElement.className.includes(\"--checked\");\r\n } catch (error) {\r\n isChecked = false;\r\n }\r\n if(isCheckFlag && isChecked) {\r\n excelLines.push([...lines[i]]);\r\n }\r\n if(!isCheckFlag){\r\n excelLines.push([...lines[i]]);\r\n }\r\n }\r\n\r\n //excelLines = excelLines.map((lines) => {\r\n // return [\"\", ...lines.slice(2), lines[1]];\r\n //});\r\n }\r\n\r\n // Add rows with headers and lines data\r\n for (var i = 0; i < excelLines.length; i++) {\r\n sheet.addRow(excelLines[i]);\r\n }\r\n\r\n sheet.addRow([\"\"]);\r\n sheet.addRow([\"Total: \" + excelLines.length]);\r\n\r\n if (excelLines.length > 0) {\r\n // add count\r\n var cellRef = \"B\" + (excelLines.length + 3);\r\n var cellValue = {\r\n formula: \"COUNTA(B\" + 2 + \":B\" + (excelLines.length + 1) + \")\",\r\n };\r\n sheet.getCell(cellRef).value = cellValue;\r\n\r\n // add sums line\r\n for (var i = 2; i <= excelHeader.length; i++) {\r\n cellRef = letterFromNumber(i) + (excelLines.length + 3);\r\n cellValue = {\r\n formula:\r\n \"SUM(\" +\r\n letterFromNumber(i) +\r\n 2 +\r\n \":\" +\r\n letterFromNumber(i) +\r\n (excelLines.length + 1) +\r\n \")\",\r\n };\r\n sheet.getCell(cellRef).value = cellValue;\r\n }\r\n }\r\n\r\n // Style excel sheet\r\n // Color need to be in hex8 code format\r\n // use this website for example to get hex8 color code https://www.schemecolor.com/\r\n const colorFillHeader = \"FFF29B1A\";\r\n const colorFillTotals = \"FF95B3D7\";\r\n const commonPatternFill = \"solid\";\r\n const colorBorder = \"FF181818\";\r\n const borderStyle = \"thin\";\r\n const alignmentCenter = {\r\n vertical: \"middle\",\r\n horizontal: \"center\",\r\n wrapText: true,\r\n };\r\n\r\n const borderThinBlack = {\r\n top: { style: borderStyle, color: { argb: colorBorder } },\r\n right: { style: borderStyle, color: { argb: colorBorder } },\r\n bottom: { style: borderStyle, color: { argb: colorBorder } },\r\n left: { style: borderStyle, color: { argb: colorBorder } },\r\n };\r\n\r\n const headerRowIndex = 1;\r\n const totalsRowIndex = sheet.rowCount;\r\n\r\n for (var rowIndex = 1; rowIndex <= sheet.rowCount; rowIndex++) {\r\n for (\r\n var columnIndex = 1;\r\n columnIndex <= sheet.columnCount;\r\n columnIndex++\r\n ) {\r\n const cell = sheet.getCell(rowIndex, columnIndex);\r\n cell.alignment = alignmentCenter;\r\n cell.border = borderThinBlack;\r\n\r\n if (rowIndex === headerRowIndex) {\r\n cell.font = {\r\n bold: true,\r\n size: 14,\r\n };\r\n\r\n cell.fill = {\r\n type: \"pattern\",\r\n pattern: commonPatternFill,\r\n fgColor: { argb: colorFillHeader },\r\n };\r\n } else if (rowIndex === totalsRowIndex) {\r\n cell.fill = {\r\n type: \"pattern\",\r\n pattern: commonPatternFill,\r\n fgColor: { argb: colorFillTotals },\r\n };\r\n } else {\r\n // Other rows except the header\r\n cell.font = {\r\n size: 12,\r\n };\r\n }\r\n }\r\n }\r\n\r\n //Autosize column width\r\n autosizeColumnsWidth(sheet);\r\n\r\n // Conditional formatting dependent on value in first column\r\n addConditionalFormatting(sheet);\r\n\r\n // Get screenshot url and write it to Excel file\r\n // then save Excel file\r\n // const classNameView = \".editor-section__body\";\r\n // var imageWidth = $(classNameView).width();\r\n // var imageHeight = $(classNameView).height();\r\n\r\n const excelWidthKoef = 7;\r\n const excelMaxWidth = 1850;\r\n let imageWidth = 0;\r\n sheet.columns.forEach((c) => (imageWidth += c.width));\r\n imageWidth *= excelWidthKoef;\r\n if (imageWidth > excelMaxWidth)\r\n imageWidth = excelMaxWidth;\r\n\r\n let imageHeight = imageWidth * (1080 / 1920);\r\n\r\n // round width and height because it must be divided by 4 without remainder for Forge API\r\n const roundImageWidth = imageWidth - (imageWidth % 4);\r\n const roundImageHeight = imageHeight - (imageHeight % 4);\r\n\r\n // Get model screenshot and write data to Excel file\r\n viewerGetScreenShot(roundImageWidth, roundImageHeight, async (blobUrl) => {\r\n if (blobUrl) {\r\n // Convert image blobUrl to blob\r\n let blob = await fetch(blobUrl).then((r) => r.blob());\r\n\r\n var reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n\r\n reader.onloadend = function () {\r\n var imageBase64String = reader.result;\r\n // create image from base64 string\r\n const image = workbook.addImage({\r\n base64: imageBase64String,\r\n extension: \"jpeg\",\r\n });\r\n\r\n // add image to excel sheet file\r\n sheet.addImage(image, {\r\n tl: { col: 0, row: excelLines.length + 4 },\r\n ext: { width: roundImageWidth, height: roundImageHeight },\r\n });\r\n\r\n // save excel file\r\n workbook.xlsx.writeBuffer().then(function (buffer) {\r\n const blob = new Blob([buffer], { type: fileType });\r\n FileSaver.saveAs(blob, fileName + fileExtension);\r\n });\r\n\r\n //logging the download excel event\r\n logDownloadSchedule();\r\n };\r\n }\r\n });\r\n };\r\n\r\n return (\r\n }\r\n size=\"md\"\r\n isRounded=\"sm\"\r\n labelColor=\"white\"\r\n labelHoverColor=\"white\"\r\n backgroundColor=\"orange\"\r\n backgroundHoverColor=\"orange-light\"\r\n onClick={exportToCSV}\r\n />\r\n );\r\n};\r\n\r\nfunction addConditionalFormatting(sheet) {\r\n const cellRefStart = \"A2\";\r\n const cellRefEnd = sheet.getCell(\r\n sheet.rowCount - 1,\r\n sheet.columnCount\r\n ).address;\r\n\r\n const ref = cellRefStart + \":\" + cellRefEnd;\r\n sheet.addConditionalFormatting({\r\n ref: ref,\r\n rules: [\r\n {\r\n type: \"expression\",\r\n formulae: [\"=EXACT($A2, TRUE)\"],\r\n style: {\r\n fill: {\r\n type: \"pattern\",\r\n pattern: \"solid\",\r\n bgColor: { argb: \"FFEBF1DE\" },\r\n },\r\n },\r\n },\r\n ],\r\n });\r\n}\r\n\r\nfunction autosizeColumnsWidth(sheet) {\r\n sheet.columns.forEach((column) => {\r\n const lengths = column.values.map((value) => value.toString().length);\r\n column.width = Math.max(\r\n Math.max(...lengths.filter((value) => typeof value === \"number\")) + 2,\r\n column.header.length + 6\r\n );\r\n if(column.width > 100) {\r\n column.width = 100;\r\n }\r\n });\r\n}\r\n\r\nfunction letterFromNumber(number) {\r\n if (number <= 26) {\r\n return String.fromCharCode(96 + number).toUpperCase();\r\n } else {\r\n return (\r\n letterFromNumber(Math.floor(number / 26)) + letterFromNumber(number % 26)\r\n );\r\n }\r\n}\r\n\r\nexport default DownloadInfoTableExcel;\r\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSaveCollection(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.75 9L9 11.25L11.25 9\",\n stroke: \"#4E7D96\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.25 3.75V14.25C2.25 14.6478 2.40804 15.0294 2.68934 15.3107C2.97064 15.592 3.35218 15.75 3.75 15.75H14.25C14.6478 15.75 15.0294 15.592 15.3107 15.3107C15.592 15.0294 15.75 14.6478 15.75 14.25V3.75C15.75 3.35218 15.592 2.97064 15.3107 2.68934C15.0294 2.40804 14.6478 2.25 14.25 2.25H10.5C9.67157 2.25 9 2.92157 9 3.75V11.25\",\n stroke: \"#4E7D96\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSaveCollection);\nexport default __webpack_public_path__ + \"static/media/save-collection.b9f6671d.svg\";\nexport { ForwardRef as ReactComponent };","import React, { memo, useMemo, useCallback } from \"react\";\r\nimport { v4 } from \"uuid\";\r\nimport classNames from \"classnames\";\r\nimport \"./TableInfoRow.scss\";\r\n\r\nimport UniversalCheckbox from \"components/uiComponents/UniversalCheckbox\";\r\nimport TableInfoCell from \"components/uiComponents/TableInfoCell\";\r\n\r\nimport { numberWithCommas } from \"utils/helpers\";\r\n\r\nconst TableInfoRow = memo(\r\n ({\r\n lines,\r\n lineElements,\r\n id,\r\n checked,\r\n onCheckChange,\r\n unitsArr,\r\n }) => {\r\n const restCells = useMemo(() => {\r\n return lines.map((el, index) => {\r\n if (index !== 0) {\r\n let elUpd = el;\r\n\r\n if (typeof el === 'number') {\r\n if (el % 1 !== 0) {\r\n elUpd = numberWithCommas(el.toFixed(2));\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {elUpd} \r\n \r\n\r\n {!!el &&\r\n {unitsArr?.[index]?.unit}\r\n }\r\n\r\n {!!el && unitsArr?.[index]?.subUnit &&\r\n {unitsArr?.[index]?.subUnit}\r\n }\r\n
\r\n
\r\n )\r\n }\r\n });\r\n }, [lines, unitsArr]);\r\n\r\n const handleChange = useCallback((isChecked) => {\r\n onCheckChange(isChecked, lineElements, id);\r\n }, [lineElements, id, onCheckChange]);\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n {restCells}\r\n \r\n );\r\n }\r\n);\r\n\r\nexport default TableInfoRow;\r\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgColorPicker(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.4\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.712 6.40903C16.2978 5.82324 16.2978 4.8735 15.712 4.28771C15.1262 3.70192 14.1765 3.70192 13.5907 4.28771L4.04477 13.8337C3.45898 14.4194 3.45898 15.3692 4.04477 15.955C4.63055 16.5408 5.5803 16.5408 6.16609 15.955L15.712 6.40903Z\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.049 3.90103C16.4241 4.2761 16.6348 4.78481 16.6348 5.31524C16.6348 5.84568 16.4241 6.35438 16.049 6.72946L12.5134 10.265L9.68502 7.43656L13.2206 3.90103C13.5956 3.52596 14.1043 3.31524 14.6348 3.31524C15.1652 3.31524 15.6739 3.52596 16.049 3.90103Z\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.04984 15.9502L3.33984 16.6602\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.24 10.9998L9 6.75977\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgColorPicker);\nexport default __webpack_public_path__ + \"static/media/color-picker.b8163f5f.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFolderTemplates(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 20,\n viewBox: \"0 0 22 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 17C21 17.5304 20.7893 18.0391 20.4142 18.4142C20.0391 18.7893 19.5304 19 19 19H3C2.46957 19 1.96086 18.7893 1.58579 18.4142C1.21071 18.0391 1 17.5304 1 17V3C1 2.46957 1.21071 1.96086 1.58579 1.58579C1.96086 1.21071 2.46957 1 3 1H8L10 4H19C19.5304 4 20.0391 4.21071 20.4142 4.58579C20.7893 4.96086 21 5.46957 21 6V17Z\",\n stroke: \"#9D9FA4\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFolderTemplates);\nexport default __webpack_public_path__ + \"static/media/folder-templates.4809f055.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useEffect, useState} from \"react\";\r\n\r\nimport './DropDownColor.scss';\r\n\r\nimport { ReactComponent as ColorPicker } from \"static/icons/color-picker.svg\";\r\n\r\nimport { colors } from \"../../../utils/data\";\r\n\r\nconst defaultLabel = \"Blue\";\r\nconst customColor = \"Custom color\";\r\n\r\nconst DropDownColor = ({ submitClick, color }) => {\r\n\r\n const [infoDropDown, setInfoDropDown] = useState({ label: defaultLabel, color: color, active: false });\r\n\r\n useEffect(() => {\r\n const baseColor = colors.filter((baseColor) => baseColor.hex === color);\r\n\r\n if(baseColor.length) {\r\n setInfoDropDown({...infoDropDown, label: baseColor[0].name });\r\n } else {\r\n setInfoDropDown({...infoDropDown, label: customColor });\r\n }\r\n }, []);\r\n\r\n const handleClick = (el) => () => {\r\n\r\n setInfoDropDown({ label: el.name, color: el.hex, active: false });\r\n\r\n if (submitClick) {\r\n submitClick({color: el.hex});\r\n }\r\n };\r\n\r\n const handleClickColorPicker = (event) => {\r\n const color = event.target.value;\r\n\r\n setInfoDropDown({ label: customColor, color: color, active: false });\r\n\r\n if (submitClick) {\r\n submitClick({color: color});\r\n }\r\n };\r\n\r\n const handleSwitch = () => {\r\n setInfoDropDown({...infoDropDown, active: !infoDropDown.active});\r\n };\r\n\r\n const condition = infoDropDown.active ? \"active-drop\" : \"\";\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {infoDropDown.label} \r\n
\r\n
\r\n
\r\n \r\n
\r\n {\r\n colors.map((color) => (\r\n
\r\n
\r\n

{color.name}

\r\n
\r\n ))}\r\n
\r\n
\r\n handleClickColorPicker(event)}/>\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default DropDownColor;","import { useState, useEffect } from \"react\";\r\n\r\nconst useDrop = (ref) => {\r\n const [active, setActive] = useState(false);\r\n\r\n const handleClickOutside = (event) => {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n setActive(false);\r\n }\r\n };\r\n useEffect(() => {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return [active, setActive];\r\n};\r\nexport default useDrop;\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport useDrop from \"../../../hooks/useDrop\";\r\n\r\nconst defaultLabel = \"Select option\";\r\n\r\nconst DropDown = ({\r\n category,\r\n listTitle,\r\n list,\r\n changeFunction,\r\n submitClick,\r\n className\r\n}) => {\r\n const blockRef = useRef();\r\n const [state, setState] = useState(defaultLabel);\r\n const [active, setActive] = useDrop(blockRef);\r\n\r\n useEffect(() => {\r\n if (changeFunction) {\r\n changeFunction(state);\r\n }\r\n }, [state]);\r\n\r\n useEffect(() => {\r\n setState(() => (listTitle ? listTitle : defaultLabel));\r\n }, [listTitle, list]);\r\n\r\n const handleClick = (el) => () => {\r\n setState(el);\r\n setActive(false);\r\n if (submitClick) {\r\n submitClick(el);\r\n }\r\n };\r\n const handleSwitch = () => {\r\n setActive((prevState) => !prevState);\r\n };\r\n const condition = active ? \"active_drop\" : \"\";\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {state} \r\n
\r\n
\r\n
\r\n {list &&\r\n list.map((el) => (\r\n

\r\n {el}\r\n

\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default DropDown;\r\n","import React, {useRef, useState} from 'react';\r\n\r\nimport \"./CreateFolder.scss\";\r\nimport UniversalButton from \"../../uiComponents/UniversalButton\";\r\n\r\nconst CreateFolder = ({closeCreateFolderModal, currentFolderName, addOrEditFolder, type}) => {\r\n\r\n const input = useRef();\r\n\r\n const [isError, setError] = useState(null);\r\n const [folderName, setFolderName] = useState(type === \"create\" ? \"\" : currentFolderName);\r\n\r\n const createFolder = () => {\r\n\r\n try {\r\n addOrEditFolder(folderName);\r\n setError(null);\r\n closeCreateFolderModal();\r\n } catch(error) {\r\n setError(error)\r\n }\r\n }\r\n\r\n const editFolder = () => {\r\n\r\n const newNameFolder = folderName;\r\n const originalNameFolder = currentFolderName;\r\n\r\n try {\r\n addOrEditFolder(originalNameFolder, newNameFolder);\r\n setError(null);\r\n closeCreateFolderModal();\r\n } catch(error) {\r\n setError(error)\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
{`${type === \"create\" ? \"Create\" : \"Edit\" } folder`}
\r\n
\r\n setFolderName(event.target.value)} />\r\n {\r\n isError ?
{isError}
: 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 CreateFolder;","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgOptions(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.4\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 9.75C9.41421 9.75 9.75 9.41421 9.75 9C9.75 8.58579 9.41421 8.25 9 8.25C8.58579 8.25 8.25 8.58579 8.25 9C8.25 9.41421 8.58579 9.75 9 9.75Z\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.25 9.75C14.6642 9.75 15 9.41421 15 9C15 8.58579 14.6642 8.25 14.25 8.25C13.8358 8.25 13.5 8.58579 13.5 9C13.5 9.41421 13.8358 9.75 14.25 9.75Z\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.75 9.75C4.16421 9.75 4.5 9.41421 4.5 9C4.5 8.58579 4.16421 8.25 3.75 8.25C3.33579 8.25 3 8.58579 3 9C3 9.41421 3.33579 9.75 3.75 9.75Z\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOptions);\nexport default __webpack_public_path__ + \"static/media/options.88fba1c9.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgPlusCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",\n stroke: \"#4E7D96\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 8V16\",\n stroke: \"#4E7D96\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 12H16\",\n stroke: \"#4E7D96\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlusCircle);\nexport default __webpack_public_path__ + \"static/media/plus-circle.b6b0e255.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMinusCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 16.5C13.1421 16.5 16.5 13.1421 16.5 9C16.5 4.85786 13.1421 1.5 9 1.5C4.85786 1.5 1.5 4.85786 1.5 9C1.5 13.1421 4.85786 16.5 9 16.5Z\",\n stroke: \"#4E7D96\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 9H12\",\n stroke: \"#4E7D96\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMinusCircle);\nexport default __webpack_public_path__ + \"static/media/minus-circle.234685ca.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useEffect} from 'react';\r\n\r\nimport \"./OptionMenu.scss\";\r\n\r\nconst OptionMenu = ({\r\n closeOptionMenu,\r\n openProofModal,\r\n edit\r\n }) => {\r\n\r\n useEffect(() => {\r\n\r\n const checkElement = (event) => {\r\n const currentElement = event.target;\r\n const optionMenu = document.querySelector(\".option-menu\");\r\n\r\n if(!optionMenu?.contains(currentElement)) {\r\n closeOptionMenu();\r\n }\r\n }\r\n\r\n document.addEventListener('click', (event) => checkElement(event));\r\n\r\n return(\r\n document.removeEventListener('click', (event) => checkElement(event))\r\n )\r\n }, []);\r\n\r\n return (\r\n <>\r\n
\r\n
Edit
\r\n
Delete
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default OptionMenu;","import React, {useContext} from 'react';\r\nimport UniversalButton from \"../../uiComponents/UniversalButton\";\r\n\r\nimport \"./ProofModal.scss\";\r\nimport {ModalContext} from \"../../ModalContext\";\r\n\r\nconst ProofModal = ({children, proofCallback, cancelButtonText, proofButtonText}) => {\r\n\r\n const { handleModal } = useContext(ModalContext);\r\n\r\n const handleCancel = () => {\r\n handleModal(null, true);\r\n };\r\n\r\n return (\r\n
\r\n
Are you sure?
\r\n
{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 ProofModal;","import React, { useState } from 'react';\r\n\r\nimport \"./EditCollectionFolders.scss\";\r\n\r\nimport { ReactComponent as FolderImg } from \"static/icons/folder-templates.svg\";\r\nimport { ReactComponent as OptionImg } from \"static/icons/options.svg\";\r\nimport UniversalButton from \"../uiComponents/UniversalButton\";\r\nimport {ReactComponent as PlusСircleIcon} from \"../../static/icons/plus-circle.svg\";\r\nimport ModalComponent from \"../modals/ModalComponent\";\r\nimport CreateFolder from \"../template/CreateFolder\";\r\nimport { createCollectionFolder, collectionFolderRename, collectionFolderDelete } from \"../../store/actions/collections\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport OptionMenu from \"../template/OptionMenu\";\r\nimport ProofModal from \"../modals/ProofModal\";\r\nimport { showToast } from \"../../utils/helpers\";\r\n\r\nconst EditCollectionFolders = ({closeEditFolderModal, list, setNewListTitle, deleteTitle}) => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [isCreateFolderModal, setCreateFolderModal] = useState(false);\r\n const [optionMenuFolder, setOptionMenuFolder] = useState(null);\r\n const [isEditFolder, setEditFolder] = useState(null);\r\n const [proofModal, setProofModal] = useState(false);\r\n\r\n const addFolder = async (folderName) => {\r\n try {\r\n await dispatch(createCollectionFolder(folderName));\r\n showToast(true,\"Selection sets folder was created\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n }\r\n\r\n const openCreateFolderModal = () => {\r\n setCreateFolderModal(true);\r\n };\r\n\r\n const closeCreateFolderModal = () => {\r\n setCreateFolderModal(false);\r\n };\r\n\r\n const openOptionMenuFolder = (event, name) => {\r\n\r\n event.stopPropagation();\r\n\r\n if(optionMenuFolder && name === optionMenuFolder?.folderName) {\r\n closeOptionMenuFolder();\r\n } else {\r\n\r\n const clientX = event.clientX + 19;\r\n const clientY = event.clientY - 20;\r\n\r\n setOptionMenuFolder({clientX, clientY, templateName: null, folderName: name});\r\n }\r\n }\r\n\r\n const closeOptionMenuFolder = () => {\r\n setOptionMenuFolder(null);\r\n }\r\n\r\n const openEditFolder = () => {\r\n closeOptionMenuFolder();\r\n setEditFolder(optionMenuFolder?.folderName);\r\n }\r\n\r\n const closeEditFolder = () => {\r\n setEditFolder(null);\r\n };\r\n\r\n const editFolder = async (originalNameFolder, newNameFolder) => {\r\n try {\r\n await dispatch(collectionFolderRename({originalNameFolder, newNameFolder}));\r\n showToast(true,\"Selection sets folder was renamed\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n setNewListTitle(originalNameFolder, newNameFolder);\r\n }\r\n\r\n const isScroll = () => {\r\n closeOptionMenuFolder();\r\n };\r\n\r\n const closeProofModal = () => {\r\n setProofModal(false);\r\n };\r\n\r\n const deleteItem = async () => {\r\n\r\n const folderName = proofModal;\r\n\r\n try {\r\n await dispatch(collectionFolderDelete(folderName));\r\n deleteTitle(folderName);\r\n closeProofModal();\r\n showToast(true,\"Selection sets folder was deleted\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n }\r\n\r\n const openProofModal = () => {\r\n closeOptionMenuFolder();\r\n setProofModal(optionMenuFolder?.folderName);\r\n }\r\n\r\n return (\r\n
\r\n
Selection sets folders
\r\n
\r\n {\r\n list.map((folder) => {\r\n return (\r\n
\r\n
\r\n \r\n
{folder}
\r\n
\r\n { openOptionMenuFolder(events, folder)}}/>\r\n
\r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n }\r\n premium={false}\r\n onClick={openCreateFolderModal}\r\n />\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n optionMenuFolder &&\r\n \r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
You want to delete “{proofModal}” folder?
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default EditCollectionFolders;","import React, {useEffect, useState} from 'react';\r\n\r\nimport \"./DropDownFolder.scss\";\r\nimport DropDown from \"../DropDown\";\r\nimport ModalComponent from \"../../modals/ModalComponent\";\r\nimport CreateFolder from \"../../template/CreateFolder\";\r\nimport EditCollectionFolders from \"../../EditCollectionFolders\";\r\n\r\nconst DropDownFolder = ({listTitle, list, getSelectFolder, addFolder, editFolder}) => {\r\n\r\n useEffect(() => {\r\n setDropDownTitle(listTitle);\r\n }, []);\r\n\r\n const [isCreateFolderModal, setCreateFolderModal] = useState(false);\r\n const [isEditFolderModal, setEditFolderModal] = useState(false);\r\n const [dropDownTitle, setDropDownTitle] = useState(null);\r\n\r\n const openCreateFolderModal = () => {\r\n setCreateFolderModal(true);\r\n };\r\n\r\n const closeCreateFolderModal = () => {\r\n setCreateFolderModal(false);\r\n };\r\n\r\n const openEditFolderModal = () => {\r\n setEditFolderModal(true);\r\n };\r\n\r\n const closeEditFolderModal = () => {\r\n setEditFolderModal(false);\r\n };\r\n\r\n const setNewListTitle = (originalNameFolder, newListTitle) => {\r\n if(listTitle === originalNameFolder) {\r\n getSelectFolder(newListTitle);\r\n }\r\n };\r\n\r\n const deleteTitle = (originalNameFolder) => {\r\n if(listTitle === originalNameFolder) {\r\n getSelectFolder(list[0]);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n

\r\n { editFolder ? \"Edit folder\" : \"Create folder\" }\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 DropDownFolder;","import React, { useContext, useState } from 'react';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nimport './SaveCollectionModal.scss';\r\n\r\nimport DropDownColor from \"../../uiComponents/DropDownColor\";\r\nimport UniversalButton from \"../../uiComponents/UniversalButton\";\r\n\r\nimport {ModalContext} from \"../../ModalContext\";\r\nimport {createTempCollectionFromSelection, getCollectionsForFolder} from \"../../../utils/builder/IScheduleLogic\";\r\nimport DropDownFolder from \"../../uiComponents/DropDownFolder\";\r\nimport {\r\n collectionDelete,\r\n collectionEdit,\r\n collectionSave,\r\n createCollectionFolder\r\n} from \"../../../store/actions/collections\";\r\nimport {showToast} from \"../../../utils/helpers\";\r\n\r\nconst SaveCollectionModal = ({ type=\"create\", folderInfo=null, tableInfo, selected}) => {\r\n\r\n const collection = {\r\n folder: folderInfo?.folder || \"My selection sets\",\r\n collectionName: folderInfo?.title || \"\",\r\n description: folderInfo?.description || \"\",\r\n color: folderInfo?.color || \"#4F80FF\"\r\n }\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { selection, collectionsFolders, activeFolder } = useSelector((state) => state.viewer);\r\n const { tabs } = useSelector((state) => state.table);\r\n\r\n const [infoAboutCollection, setInfoAboutCollection] = useState(collection);\r\n const [nameError, setNameError] = useState(null);\r\n\r\n const { handleModal } = useContext(ModalContext);\r\n\r\n const handleCancel = () => {\r\n handleModal(null, true);\r\n };\r\n\r\n const getSelectFolder = (folderName)=> {\r\n setInfoParameter({folder: folderName});\r\n }\r\n\r\n const saveCollection = async () => {\r\n const elements = tableInfo.lineElements.flat(2);\r\n\r\n const isValid = await validateCollectionName();\r\n\r\n if(isValid) {\r\n try {\r\n await dispatch(collectionSave({\r\n ...infoAboutCollection,\r\n elements,\r\n properties: tableInfo?.collection?.properties || selection.properties,\r\n groups: tableInfo?.collection?.groupBy || selection.groups,\r\n id: tableInfo?.id,\r\n type: tableInfo?.type,\r\n activeFolder,\r\n selected}));\r\n showToast(true,\"Selection set was created\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n handleCancel();\r\n }\r\n }\r\n\r\n const editCollection = async () => {\r\n const isValid = await validateCollectionName();\r\n\r\n if(isValid) {\r\n try {\r\n await dispatch(collectionEdit({\r\n oldTitle: collection.collectionName,\r\n oldFolder: collection.folder,\r\n newTitle: infoAboutCollection.collectionName,\r\n newFolder: infoAboutCollection.folder,\r\n newDescription: infoAboutCollection.description,\r\n newColor: infoAboutCollection.color }));\r\n showToast(true,\"Selection set was edited\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n handleCancel();\r\n }\r\n }\r\n\r\n const validateCollectionName = async () => {\r\n const collectionName = infoAboutCollection.collectionName;\r\n const folder = infoAboutCollection.folder;\r\n const collections = await getCollectionsForFolder(folder);\r\n\r\n const isExistName = collections.every((collection) => {\r\n return collection.title !== collectionName\r\n });\r\n\r\n if(!collectionName) {\r\n setNameError(\"The selection set name cannot be empty\");\r\n return false;\r\n }\r\n if (!isExistName && type === \"create\") {\r\n setNameError(\"This name already exists\");\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n const addFolder = async (folderName) => {\r\n try {\r\n await dispatch(createCollectionFolder(folderName));\r\n setInfoParameter({folder: folderName});\r\n showToast(true,\"Selection sets folder was created\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n }\r\n\r\n const setInfoParameter = (value) => {\r\n setInfoAboutCollection({...infoAboutCollection, ...value })\r\n }\r\n\r\n return (\r\n
\r\n
{`${type === \"create\" ? \"Save\" : \"Edit\"} selection set`}
\r\n
\r\n \r\n setInfoParameter({collectionName: event.target.value})}/>\r\n {\r\n nameError &&
{nameError}
\r\n }\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\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 SaveCollectionModal;","import React, { useContext } from 'react';\r\n\r\nimport { ReactComponent as SaveCollection} from \"static/icons/save-collection.svg\";\r\n\r\nimport UniversalButton from \"../uiComponents/UniversalButton\";\r\nimport SaveCollectionModal from \"../modals/SaveCollectionModal\";\r\nimport {ModalContext} from \"../ModalContext\";\r\n\r\nconst SaveAsCollection = ({tableInfo}) => {\r\n\r\n const { handleModal } = useContext(ModalContext);\r\n\r\n const openModal = () => {\r\n handleModal(\r\n \r\n );\r\n }\r\n\r\n const closeModal = () => {\r\n handleModal(null, true);\r\n }\r\n\r\n return (\r\n <>\r\n }\r\n onClick={openModal}\r\n isRounded=\"sm\"\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default SaveAsCollection;","import React, { useContext } from 'react';\r\n\r\nimport { ReactComponent as SaveCollectionIcon} from \"static/icons/save-collection.svg\";\r\n\r\nimport UniversalButton from \"../uiComponents/UniversalButton\";\r\nimport SaveCollectionModal from \"../modals/SaveCollectionModal\";\r\nimport {ModalContext} from \"../ModalContext\";\r\n\r\nconst SaveCollection = ({tableInfo}) => {\r\n\r\n const { handleModal } = useContext(ModalContext);\r\n\r\n const openModal = () => {\r\n handleModal(\r\n \r\n );\r\n }\r\n\r\n const closeModal = () => {\r\n handleModal(null, true);\r\n }\r\n\r\n return (\r\n <>\r\n }\r\n onClick={openModal}\r\n isRounded=\"sm\"\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default SaveCollection;","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgTriangle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 8,\n height: 5,\n viewBox: \"0 0 8 5\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0.5L4 4.5L8 0.5\",\n fill: \"#9D9FA4\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTriangle);\nexport default __webpack_public_path__ + \"static/media/triangle.9386df57.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport { ReactComponent as UnassignFromCollectionIcon} from \"static/icons/minus-circle.svg\";\r\n\r\nimport { unassignFromCollection } from \"../../store/actions/collections\";\r\n\r\nimport UniversalButton from \"../uiComponents/UniversalButton\";\r\nimport {useDispatch, useSelector} from \"react-redux\";\r\n\r\nconst UnassignFromCollection = ({tableInfo, deleteSelectElements}) => {\r\n\r\n const dispatch = useDispatch();\r\n const { tabs } = useSelector((state) => state.table);\r\n\r\n const handleClickButton = async () => {\r\n await dispatch(unassignFromCollection({...tableInfo, tabs}));\r\n deleteSelectElements();\r\n }\r\n\r\n return (\r\n <>\r\n }\r\n onClick={handleClickButton}\r\n isRounded=\"sm\"\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default UnassignFromCollection;","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCopyIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.4\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: 1.5,\n y: 3.5,\n width: 7,\n height: 7,\n rx: 1,\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.5 1.5H9.5C10.0523 1.5 10.5 1.94772 10.5 2.5V7.5\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCopyIcon);\nexport default __webpack_public_path__ + \"static/media/copy-icon.d2af6d6f.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useRef } from \"react\";\r\n\r\nimport './DropDownAddCollection.scss';\r\nimport { ReactComponent as PlusCircle } from 'static/icons/plus-circle.svg';\r\nimport { ReactComponent as Arrow } from 'static/icons/arrow.svg';\r\nimport { ReactComponent as Triangle } from 'static/icons/triangle.svg';\r\n\r\nimport useDrop from \"../../../hooks/useDrop\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getCollectionsForFolder } from \"../../../utils/builder/IScheduleLogic\";\r\nimport {\r\n addToNewCollection,\r\n copyToCollection,\r\n copyToCollectionUnsaved\r\n} from \"../../../store/actions/collections\";\r\nimport { showToast } from \"../../../utils/helpers\";\r\nimport {tabType} from \"../../../utils/data\";\r\n\r\nconst DropDownAddCollection = ({ tableInfo }) => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const {collectionsFolders} = useSelector((state) => state.viewer);\r\n const {tabs} = useSelector((state) => state.table);\r\n\r\n const blockRef = useRef();\r\n const collections = useRef();\r\n\r\n const [active, setActive] = useDrop(blockRef);\r\n const [dropDownSize, setDropDownSize] = useState(null);\r\n const [currentCollectionFolder, setCurrentCollectionFolder] = useState(null);\r\n const [collectionPosition, setCollectionPosition] = useState(null);\r\n const [activeCollections, setActiveCollections] = useState(null);\r\n\r\n const handleSwitch = (event) => {\r\n const margin = 85;\r\n const availableHeight = window.innerHeight - event.clientY - margin;\r\n setDropDownSize(availableHeight);\r\n\r\n setActive((prevState) => !prevState);\r\n };\r\n\r\n const openCollectionsList = async (event, name) => {\r\n await getCollections(name);\r\n\r\n if(name === currentCollectionFolder) {\r\n closeCollectionsList();\r\n } else {\r\n setCurrentCollectionFolder(name);\r\n }\r\n\r\n const folderButtonClientRect = event.target.getBoundingClientRect();\r\n const collectionsClientRect = collections.current?.getBoundingClientRect();\r\n const heightWindow = document.body.scrollHeight;\r\n\r\n const clientX = folderButtonClientRect?.left - collectionsClientRect?.width - 10;\r\n let clientY = folderButtonClientRect?.top - 10;\r\n\r\n if(heightWindow - folderButtonClientRect?.y < collectionsClientRect?.height) {\r\n clientY = clientY - collectionsClientRect.height + 50;\r\n }\r\n\r\n setCollectionPosition({clientX, clientY});\r\n }\r\n\r\n const closeCollectionsList = () => {\r\n setCurrentCollectionFolder(false);\r\n }\r\n\r\n const isScroll = () => {\r\n closeCollectionsList();\r\n }\r\n\r\n const getCollections = async (folderName) => {\r\n const collections = await getCollectionsForFolder(folderName);\r\n setActiveCollections(collections);\r\n }\r\n\r\n const createNewCollection = async () => {\r\n try {\r\n await dispatch(addToNewCollection({elements: tableInfo.lineElements.flat(2), properties: tableInfo?.collection.properties, groups: tableInfo?.collection.groupBy}));\r\n showToast(true,\"New selection set was created\");\r\n } catch (error) {\r\n showToast(false, \"New selection set was not created\");\r\n }\r\n closeCollectionsList();\r\n setActive(null);\r\n }\r\n\r\n const handleClickCollection = async (collection) => {\r\n try {\r\n dispatch(copyToCollection({title: collection.title, folder: currentCollectionFolder, id: collection.creationTime}));\r\n showToast(true,`Added to ${collection.title}`);\r\n } catch (error) {\r\n showToast(false, \"Something went wrong\");\r\n }\r\n closeCollectionsList();\r\n setActive(null);\r\n }\r\n\r\n\r\n const handleClickCollectionUnsaved = async (tab) => {\r\n try {\r\n dispatch(copyToCollectionUnsaved({elements: tableInfo.lineElements.flat(2), collection: tab.collection, id: tab.id}));\r\n showToast(true,`Added to ${tab.name}`);\r\n } catch (error) {\r\n showToast(false, \"Something went wrong\");\r\n }\r\n closeCollectionsList();\r\n setActive(null);\r\n }\r\n\r\n const condition = active ? \"active-drop\" : \"\";\r\n\r\n return (\r\n
\r\n
\r\n
handleSwitch(event)}>\r\n \r\n Add to...\r\n \r\n
\r\n
\r\n
\r\n
\r\n

New selection set

\r\n
\r\n {\r\n tabs.map((tab) => {\r\n if(tab.type === tabType.unsaved) {\r\n\r\n return (\r\n

handleClickCollectionUnsaved(tab)}>\r\n {tab.name} - unsaved\r\n

\r\n )\r\n }\r\n })\r\n }\r\n {\r\n tabs.some((tab) => tab.type === tabType.unsaved) &&\r\n
\r\n }\r\n {\r\n collectionsFolders.map((collectionFolder) => {\r\n return (\r\n

openCollectionsList(event, collectionFolder)}\r\n key={collectionFolder}>\r\n \r\n { collectionFolder }\r\n

\r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n {\r\n activeCollections?.length ?\r\n activeCollections.map((collection) => {\r\n return (\r\n

handleClickCollection(collection)}>{collection.title}

\r\n )\r\n }):\r\n

Folder empty

\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default DropDownAddCollection;\r\n","import React, { useState, useMemo, useEffect, memo, useCallback } from \"react\";\r\nimport {useDispatch, useSelector} from \"react-redux\";\r\nimport {addSelectItems, closeTab, ElementsAction} from \"store/actions/table\";\r\nimport {searchInlines, showToast, toArray} from \"utils/helpers\";\r\nimport classNames from \"classnames\";\r\nimport \"./DashboardInfoTable.scss\";\r\n\r\nimport TableInfoFooter from \"components/uiComponents/TableInfoFooter\";\r\nimport TableInfoHeader from \"components/uiComponents/TableInfoHeader\";\r\nimport SearchInput from \"components/uiComponents/SearchInput\";\r\nimport DownloadInfoTableExcel from \"components/DownloadInfoTableExcel\";\r\nimport TableInfoRow from \"components/uiComponents/TableInfoRow\";\r\nimport SaveAsCollection from \"../SaveAsCollection\";\r\nimport SaveCollection from \"../SaveCollection\";\r\nimport { indeterminateCheckboxTypes as checkboxTypes } from \"../uiComponents/IndeterminateCheckbox\";\r\nimport UnassignFromCollection from \"../UnassignFromCollection\";\r\nimport DropDownAddCollection from \"../uiComponents/DropDownAddCollection\";\r\nimport {tabType} from \"../../utils/data\";\r\nimport {useDashboardState} from \"../DashboardContext\";\r\nimport { collectionDelete } from \"../../store/actions/collections\";\r\nimport { isolateElements } from \"../../utils/builder/IScheduleLogic\";\r\n\r\nconst DashboardInfoTable = ({ table }) => {\r\n const dispatch = useDispatch();\r\n\r\n const { compare } = useSelector((state) => state.viewer);\r\n const { header, lineElements, lines, totals, units } = table;\r\n const { tabs } = useSelector((state) => state.table);\r\n const state = useSelector((state) => state);\r\n\r\n const [selectedItems, setSelectedItems] = useState(table.selectItems || {});\r\n const [indexs, setIndexs] = useState([]);\r\n const [headerArr, setHeaderArr] = useState(header);\r\n const [groupsSameItems, setGroupsSameItems] = useState([]);\r\n const [footer, setFooter] = useState(totals);\r\n const [sorting, setSorting] = useState({});\r\n\r\n useEffect(() => {\r\n if(!compare.isModeCompare && Object.values(selectedItems).length) {\r\n dispatch(ElementsAction(Object.values(selectedItems).flat(2)));\r\n }\r\n }, [compare.isModeCompare]);\r\n\r\n useEffect(async () => {\r\n if(!lineElements.length && table.type === tabType.unsaved) {\r\n const tab = tabs.find((tab) => table.id === tab.id);\r\n dispatch(closeTab(tab));\r\n }\r\n if(!lineElements.length && table.type !== tabType.unsaved) {\r\n try {\r\n await dispatch(collectionDelete({...table.collection, folder: table.folder, tabs: tabs, id: table.id}));\r\n showToast(true,\"Selection set was deleted\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n }\r\n }, [lineElements]);\r\n\r\n useEffect(() => {\r\n const sortObj = {};\r\n\r\n header?.forEach(item => {\r\n sortObj[item] = {\r\n isActive: false,\r\n isDescending: true,\r\n }\r\n });\r\n\r\n setSorting(sortObj);\r\n }, [header])\r\n\r\n const uniqLines = useCallback(() => {\r\n if (!lines || !lineElements) {\r\n return [];\r\n }\r\n\r\n const newArr = lines.map((el, index) => {\r\n const newEl = {\r\n lineElements: lineElements[index],\r\n lines: el,\r\n };\r\n\r\n return newEl;\r\n });\r\n\r\n return newArr;\r\n }, [lines, lineElements]);\r\n\r\n const selectedTotals = useMemo(() => {\r\n const selectedTotalsArr = [];\r\n\r\n const linesFiltered = lines?.filter((item, i) => {\r\n let isInsideSelectedList = false;\r\n\r\n for (let key in selectedItems) {\r\n const keyStringArr = key.split('/');\r\n let keyString = keyStringArr[0];\r\n\r\n if (keyStringArr.length > 1) {\r\n keyStringArr.pop(); \r\n keyString = keyStringArr.join('/');\r\n } else {\r\n keyString = keyStringArr[0];\r\n }\r\n\r\n if (item[0] == keyString) {\r\n isInsideSelectedList = true;\r\n }\r\n }\r\n\r\n return isInsideSelectedList;\r\n });\r\n\r\n linesFiltered?.forEach((item, i) => {\r\n item.forEach((el, index) => {\r\n if (typeof el === 'string') {\r\n if (typeof selectedTotalsArr[index] === 'number') {\r\n selectedTotalsArr[index] = selectedTotalsArr[index];\r\n } else {\r\n selectedTotalsArr[index] = '';\r\n }\r\n } else if (typeof el === 'number') {\r\n if (selectedTotalsArr[index] || selectedTotalsArr[index] === 0) {\r\n selectedTotalsArr[index] = selectedTotalsArr[index] + el;\r\n } else if (!selectedTotalsArr[index] && (el || el === 0)) {\r\n selectedTotalsArr[index] = el;\r\n } else if ((selectedTotalsArr[index] || selectedTotalsArr[index] === 0) && !el) {\r\n selectedTotalsArr[index] = selectedTotalsArr[index];\r\n } else {\r\n selectedTotalsArr[index] = 0;\r\n }\r\n }\r\n });\r\n });\r\n\r\n return selectedTotalsArr;\r\n }, [selectedItems, lines]);\r\n\r\n const filterFun = (arr) => {\r\n if (!arr) {\r\n return [];\r\n }\r\n\r\n const newArr = arr.filter((el, index) => {\r\n const condition = !indexs.some((element) => {\r\n return element === index;\r\n });\r\n\r\n return condition;\r\n });\r\n\r\n return newArr;\r\n };\r\n\r\n const lineId = (lines, lineElements) =>\r\n `${lines[0]}/${lineElements.join(\"\")}`;\r\n\r\n const getCheckboxStatus = () => {\r\n\r\n const countSelectedItems = Object.keys(table.selectItems || {}).length;\r\n\r\n return groupsSameItems.length === countSelectedItems ? checkboxTypes.checked :\r\n countSelectedItems === 0 ? checkboxTypes.unchecked :\r\n checkboxTypes.indeterminate;\r\n }\r\n\r\n const handleSearch = (e) => {\r\n const value = e.target.value;\r\n\r\n if (!lines) return;\r\n\r\n setGroupsSameItems((prevState) => {\r\n // new arr with changed obj{lines,lineEl}(changed lines)\r\n const neewArr = uniqLines().map((el) => ({\r\n ...el,\r\n lines: filterFun(el.lines),\r\n }));\r\n\r\n const searchedArr = searchInlines(neewArr, value);\r\n\r\n return searchedArr;\r\n });\r\n };\r\n\r\n const onChangeCheckbox = (isChecked) => {\r\n\r\n if (!isChecked) {\r\n let obj = {};\r\n\r\n groupsSameItems.map(({ lines, lineElements }) => {\r\n const id = lineId(lines, lineElements);\r\n\r\n return (obj[id] = lineElements);\r\n });\r\n\r\n setSelectedItems((prevState) => {\r\n const tempOb = { ...prevState, ...obj };\r\n\r\n dispatch(ElementsAction(toArray(tempOb)));\r\n dispatch(addSelectItems({selectItems: tempOb, id: table.id}));\r\n\r\n return tempOb;\r\n });\r\n } else {\r\n setSelectedItems((prevState) => {\r\n const tempOb = {};\r\n\r\n for (const key in prevState) {\r\n const condition = groupsSameItems.some(\r\n (el) => lineId(el.lines, el.lineElements) === key\r\n );\r\n\r\n if (!condition) {\r\n tempOb[key] = prevState[key];\r\n }\r\n }\r\n\r\n dispatch(ElementsAction(toArray(tempOb)));\r\n dispatch(addSelectItems({selectItems: tempOb, id: table.id}));\r\n\r\n return tempOb;\r\n });\r\n }\r\n };\r\n\r\n const dispatchData = (obj) => {\r\n const selectElementsInTable = toArray(obj);\r\n\r\n if (selectElementsInTable.length > 0) {\r\n dispatch(ElementsAction(selectElementsInTable));\r\n } else {\r\n isolateElements(table.lineElements.flat());\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setSelectedItems(table.selectItems || {});\r\n setGroupsSameItems(uniqLines());\r\n setHeaderArr(header);\r\n setFooter(totals);\r\n setIndexs([]);\r\n }, [lineElements, lines, header, totals]);\r\n\r\n const handleRowCheckChange = useCallback((isChecked, lineElements, id) => {\r\n setSelectedItems((prevState) => {\r\n let obj = {};\r\n\r\n if (isChecked) {\r\n obj = { ...prevState, [id]: lineElements };\r\n } else {\r\n let newObj = {};\r\n\r\n for (const key in prevState) {\r\n if (key !== id) {\r\n newObj[key] = prevState[key];\r\n }\r\n }\r\n\r\n obj = newObj;\r\n }\r\n dispatch(addSelectItems({selectItems: obj, id: table.id}));\r\n dispatchData(obj);\r\n\r\n return obj;\r\n });\r\n }, [table]);\r\n\r\n const unitsArr = useMemo(() => {\r\n return units?.map(item => {\r\n if (item) {\r\n const unitParts = item.split('^');\r\n\r\n return {\r\n unit: unitParts[0],\r\n subUnit: unitParts[1],\r\n };\r\n } else {\r\n return null;\r\n }\r\n })\r\n }, [units]);\r\n\r\n const rows = useMemo(() => {\r\n if (groupsSameItems) {\r\n let sortingName = null;\r\n\r\n for (let key in sorting) {\r\n if (sorting[key].isActive) {\r\n sortingName = key;\r\n }\r\n }\r\n\r\n let sortedRows = groupsSameItems;\r\n\r\n if (sortingName) {\r\n const linesIndex = header?.findIndex(item => item === sortingName);\r\n const lineRow = groupsSameItems.find(row => {\r\n if (row.lines[linesIndex] || row.lines[linesIndex] === 0) {\r\n return true;\r\n }\r\n });\r\n const line = lineRow?.lines[linesIndex];\r\n\r\n let sortingType = '';\r\n\r\n if (typeof line === 'number') sortingType = 'number';\r\n if (typeof line === 'string') sortingType = 'string';\r\n\r\n sortedRows = groupsSameItems.sort((a, b) => {\r\n if (sortingType === 'string') {\r\n if (sorting[sortingName].isDescending) {\r\n return b?.lines[linesIndex]?.localeCompare(a?.lines[linesIndex]);\r\n } else {\r\n return a?.lines[linesIndex]?.localeCompare(b?.lines[linesIndex]);\r\n }\r\n } else if (sortingType === 'number') {\r\n if (sorting[sortingName].isDescending) {\r\n return Number(b?.lines[linesIndex]) - Number(a?.lines[linesIndex]);\r\n } else {\r\n return Number(a?.lines[linesIndex]) - Number(b?.lines[linesIndex]);\r\n }\r\n } else {\r\n return a;\r\n }\r\n });\r\n }\r\n\r\n return (\r\n sortedRows &&\r\n sortedRows.map(({ lines, lineElements }) => {\r\n const id = lineId(lines, lineElements);\r\n\r\n return (\r\n \r\n );\r\n })\r\n );\r\n }\r\n }, [groupsSameItems, selectedItems, sorting, unitsArr]);\r\n\r\n useEffect(() => {\r\n if (indexs.length > 0) {\r\n setGroupsSameItems((prevState) =>\r\n uniqLines().map((el) => ({ ...el, lines: filterFun(el.lines) }))\r\n );\r\n\r\n setFooter((prevState) => filterFun(totals));\r\n setHeaderArr((prevState) => filterFun(header));\r\n }\r\n }, [indexs]);\r\n\r\n const handleSortChange = (name) => {\r\n const sortObj = {};\r\n\r\n header?.forEach(item => {\r\n if (item === name) {\r\n sortObj[item] = {\r\n isActive: true,\r\n isDescending: !sorting[item]?.isDescending,\r\n };\r\n } else {\r\n sortObj[item] = {\r\n isActive: false,\r\n isDescending: true,\r\n };\r\n }\r\n });\r\n\r\n setSorting(sortObj);\r\n };\r\n\r\n const isSelect = () => {\r\n return Object.keys(selectedItems).length !== 0;\r\n }\r\n\r\n const getTableForSelectedElements= () => {\r\n let lineElements = Object.values(selectedItems);\r\n\r\n return {...table, lineElements, deleteCollection: lineElements.length === table.lineElements.length};\r\n }\r\n\r\n const deleteSelectElements = () => {\r\n setSelectedItems({});\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {\r\n (table.type === tabType.unsaved && !isSelect()) &&\r\n \r\n }\r\n {\r\n (isSelect() && table.type !== tabType.report) &&\r\n \r\n }\r\n {\r\n isSelect() &&\r\n \r\n }\r\n {\r\n isSelect() &&\r\n \r\n }\r\n {!!header && !!groupsSameItems && !!footer && (\r\n\r\n el.lines)}\r\n fileName={table.folder ? `${table.folder} - ${table.name}` : \"BIMSearch report\"}\r\n totals={footer}\r\n isCheckFlag={isSelect()}\r\n />\r\n )}\r\n
\r\n
\r\n\r\n \r\n
\r\n {!!headerArr && !!headerArr.length &&\r\n \r\n }\r\n\r\n {!!rows && !!rows.length &&\r\n \r\n {rows}\r\n
\r\n }\r\n\r\n {!!footer && !!rows && !!rows.length &&\r\n \r\n }\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(DashboardInfoTable);\r\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrowGray(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 6,\n height: 10,\n viewBox: \"0 0 6 10\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 9L5 5L1 1\",\n stroke: \"#9D9FA4\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowGray);\nexport default __webpack_public_path__ + \"static/media/arrow-gray.dbc25c0f.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport \"./CopyToast.scss\";\r\n\r\nimport { ReactComponent as CopyIcon } from \"static/icons/copy-icon.svg\";\r\n\r\nconst CopyToast = () => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n Copied to clipboard\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CopyToast;\r\n","import React, { memo, useMemo } from \"react\";\r\nimport toast from 'react-hot-toast';\r\nimport \"./QuickStatItem.scss\";\r\n\r\nimport Toast from \"components/Toasts/Toast\";\r\nimport CopyToast from \"components/Toasts/CopyToast\";\r\n\r\nimport { ReactComponent as CopyIcon } from \"static/icons/copy-icon.svg\";\r\n\r\nconst QuickStatsItem = memo(({\r\n value,\r\n name,\r\n percent,\r\n unit,\r\n}) => {\r\n const copyFunction = (e) => {\r\n navigator.clipboard.writeText(value);\r\n\r\n toast((t) => (\r\n \r\n \r\n \r\n ),\r\n {\r\n duration: 2000,\r\n }\r\n );\r\n };\r\n\r\n const unitUpd = useMemo(() => {\r\n const unitArr = unit?.split('^');\r\n\r\n return {\r\n unit: unitArr?.[0],\r\n unitDegree: unitArr?.[1],\r\n };\r\n }, [unit]);\r\n\r\n return (\r\n \r\n

\r\n {name}\r\n

\r\n\r\n
\r\n
\r\n

\r\n {Number.isInteger(value) ? value : value.toFixed(2)}\r\n

\r\n\r\n
\r\n  \r\n {unitUpd?.unit && !!value &&\r\n \r\n {unitUpd?.unit}\r\n \r\n }\r\n\r\n {unitUpd?.unitDegree && !!value &&\r\n \r\n {unitUpd?.unitDegree}\r\n \r\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 QuickStatsItem;\r\n","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMultiselection(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.7279 16.4142L11.8284 12.1716L16.0711 22.0711\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 4H13C12.4477 4 12 4.44772 12 5V8C12 8.55228 12.4477 9 13 9H16C16.5523 9 17 8.55228 17 8V5C17 4.44772 16.5523 4 16 4Z\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 4H5C4.44772 4 4 4.44772 4 5V8C4 8.55228 4.44772 9 5 9H8C8.55228 9 9 8.55228 9 8V5C9 4.44772 8.55228 4 8 4Z\",\n fill: \"white\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 12H5C4.44772 12 4 12.4477 4 13V16C4 16.5523 4.44772 17 5 17H8C8.55228 17 9 16.5523 9 16V13C9 12.4477 8.55228 12 8 12Z\",\n fill: \"white\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMultiselection);\nexport default __webpack_public_path__ + \"static/media/multiselection.da1f5674.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useState} from \"react\";\r\nimport \"./QuickStatsModal.scss\";\r\n\r\nimport { ReactComponent as CopyIcon } from \"static/icons/copy-icon.svg\";\r\nimport { ReactComponent as ArrowImg } from \"static/icons/arrow-gray.svg\";\r\n\r\nconst QuickStatsTable = ({ table, data, headerData, rowData, footerData, handleCopyCellClicked }) => {\r\n\r\n const [isOpenTable, setOpenTable] = useState(null);\r\n\r\n const managerTable = () => {\r\n setOpenTable(!isOpenTable);\r\n }\r\n\r\n return (\r\n
\r\n {\r\n data.length > 1 &&\r\n
\r\n
\r\n
\r\n
{table.name}
\r\n \r\n
\r\n }\r\n
\r\n
\r\n {headerData(table.info).map((item, index) => {\r\n if (item.name === 'copy') {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {item.value}\r\n
\r\n );\r\n }\r\n })}\r\n
\r\n
\r\n\r\n {rowData(table.info).map((item, index) => {\r\n const rowArr = [];\r\n\r\n for (let key in item) {\r\n rowArr.push(item[key]);\r\n }\r\n\r\n return (\r\n \r\n {rowArr.map((cell, i) => {\r\n const handleCopyClick = () => {\r\n handleCopyCellClicked(rowArr);\r\n };\r\n\r\n if (cell.name === 'copy') {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n {cell.visibleValue}\r\n\r\n
\r\n  \r\n {cell?.unit &&\r\n \r\n {cell?.unit}\r\n \r\n }\r\n\r\n {cell?.unitDegree &&\r\n \r\n {cell?.unitDegree}\r\n \r\n }\r\n
\r\n
\r\n
\r\n );\r\n }\r\n })}\r\n \r\n );\r\n })}\r\n \r\n
\r\n {footerData(table.info).map((item, index) => {\r\n const handleCopyClick = () => {\r\n handleCopyCellClicked(footerData);\r\n };\r\n\r\n if (item.name === 'copy') {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n {item.visibleValue}\r\n\r\n {\r\n item.value !== \"Total\" &&\r\n
\r\n  \r\n {item?.unit &&\r\n \r\n {item?.unit}\r\n \r\n }\r\n\r\n {item?.unitDegree &&\r\n \r\n {item?.unitDegree}\r\n \r\n }\r\n
\r\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 QuickStatsTable;","import React from \"react\";\r\nimport \"./QuickStatsModal.scss\";\r\n\r\nimport UniversalButton from \"components/uiComponents/UniversalButton\";\r\nimport QuickStatsTable from \"./QuickStatsTable\";\r\nimport {ReactComponent as CopyIcon} from \"../../../static/icons/copy-icon.svg\";\r\nimport toast from \"react-hot-toast\";\r\nimport Toast from \"../../Toasts/Toast\";\r\nimport CopyToast from \"../../Toasts/CopyToast\";\r\n\r\nconst QuickStatsModal = ({\r\n title,\r\n data,\r\n closeModal,\r\n}) => {\r\n\r\n const handleCancel = () => {\r\n closeModal?.();\r\n };\r\n\r\n const headerData = (table) => {\r\n const columnDataArr = [];\r\n let counter = 0;\r\n\r\n for (let key in table) {\r\n if (counter === 0) {\r\n columnDataArr.push({\r\n name: 'category',\r\n value: 'Category',\r\n });\r\n\r\n table[key].forEach(item => {\r\n columnDataArr.push({\r\n name: item.name.toLowerCase(),\r\n value: item.name,\r\n })\r\n });\r\n\r\n counter++;\r\n }\r\n }\r\n\r\n columnDataArr.push({\r\n name: 'copy',\r\n value: '',\r\n })\r\n\r\n return columnDataArr;\r\n }\r\n\r\n const rowData = (table) => {\r\n const rowDataArr = [];\r\n\r\n for (let key in table) {\r\n const itemObj = {};\r\n\r\n itemObj.category = {\r\n name: key,\r\n unit: null,\r\n value: key,\r\n visibleValue: key,\r\n };\r\n\r\n table[key].forEach(item => {\r\n let visibleValue = item.value;\r\n const unitArr = item?.unit?.split('^');\r\n\r\n if (typeof visibleValue === 'number') {\r\n if (item.value % 1 !== 0) {\r\n visibleValue = item.value.toFixed(2);\r\n const visibleValueArr = visibleValue.split('.');\r\n\r\n if (visibleValueArr?.[1] === '00') {\r\n visibleValue = visibleValueArr[0];\r\n }\r\n }\r\n }\r\n\r\n itemObj[item.name.toLowerCase()] = {\r\n name: item.name.toLowerCase(),\r\n unit: unitArr?.[0],\r\n unitDegree: unitArr?.[1],\r\n value: item.value,\r\n visibleValue,\r\n };\r\n });\r\n\r\n itemObj.copy = {\r\n name: 'copy',\r\n unit: null,\r\n value: null,\r\n visibleValue: null,\r\n };\r\n\r\n rowDataArr.push(itemObj);\r\n }\r\n\r\n return rowDataArr;\r\n };\r\n\r\n const footerData = (table) => {\r\n const footerDataArr = [];\r\n let counter = 0;\r\n\r\n for (let key in table) {\r\n if (counter === 0) {\r\n footerDataArr.push({\r\n name: 'category',\r\n value: 'Total',\r\n visibleValue: data.length > 1 ? \"Sub total\" : \"Total\",\r\n unit: null,\r\n });\r\n\r\n table[key].forEach(item => {\r\n const name = item.name.toLowerCase();\r\n let newObj = {};\r\n let visibleValue = null;\r\n\r\n rowData(table).forEach(row => {\r\n if (typeof row[name].value === 'number') {\r\n let cellName = null;\r\n let cellValue = null;\r\n let cellUnit = null;\r\n let cellUnitDegree = null;\r\n\r\n if (newObj?.name) {\r\n cellName = newObj.name;\r\n } else if (row[name]?.name || row[name]?.name === 0) {\r\n cellName = row[name].name;\r\n }\r\n\r\n if (newObj?.unit) {\r\n cellUnit = newObj.unit;\r\n } else if (row[name]?.unit) {\r\n cellUnit = row[name].unit;\r\n }\r\n\r\n if (newObj?.unitDegree) {\r\n cellUnitDegree = newObj.unitDegree;\r\n } else if (row[name]?.unitDegree) {\r\n cellUnitDegree = row[name].unitDegree;\r\n }\r\n\r\n if (newObj?.value || newObj?.value === 0) {\r\n cellValue = newObj.value + row[name].value;\r\n } else {\r\n cellValue = row[name]?.value;\r\n }\r\n\r\n newObj = {\r\n unit: cellUnit,\r\n unitDegree: cellUnitDegree,\r\n name: cellName,\r\n value: cellValue,\r\n };\r\n }\r\n });\r\n\r\n if (typeof newObj.value === 'number') {\r\n if (newObj.value % 1 !== 0) {\r\n visibleValue = newObj.value.toFixed(2);\r\n const visibleValueArr = visibleValue.split('.');\r\n\r\n if (visibleValueArr?.[1] === '00') {\r\n visibleValue = visibleValueArr[0];\r\n\r\n newObj.visibleValue = visibleValue;\r\n } else {\r\n newObj.visibleValue = visibleValue;\r\n }\r\n } else {\r\n newObj.visibleValue = newObj.value;;\r\n }\r\n } else {\r\n newObj.visibleValue = newObj.value;\r\n }\r\n\r\n footerDataArr.push(newObj);\r\n });\r\n\r\n counter++;\r\n }\r\n }\r\n\r\n footerDataArr.push({\r\n name: 'copy',\r\n value: '',\r\n showValue: '',\r\n unit: null,\r\n })\r\n\r\n return footerDataArr;\r\n };\r\n\r\n const handleCopyCellClicked = (arr) => {\r\n const rowStringsArr = [];\r\n\r\n arr.forEach(element => {\r\n rowStringsArr.push(element.visibleValue)\r\n });\r\n\r\n rowStringsArr.pop();\r\n\r\n const dataClipboardtext = rowStringsArr.join('\\t');\r\n\r\n navigator.clipboard.writeText(dataClipboardtext);\r\n\r\n toast((t) => (\r\n \r\n \r\n \r\n ),\r\n {\r\n duration: 2000,\r\n }\r\n );\r\n };\r\n\r\n const getTablesTotalObject = () => {\r\n const categories = data.map((el) => {\r\n return Object.values(el.sumCategories);\r\n })\r\n return Object.assign({}, categories);\r\n }\r\n\r\n return (\r\n
\r\n {!!title &&\r\n

{title}

\r\n }\r\n\r\n
\r\n {\r\n data.map((el, index) => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n
\r\n {\r\n data.length > 1 &&\r\n
\r\n {footerData(getTablesTotalObject()).map((item, index) => {\r\n const handleCopyClick = () => {\r\n handleCopyCellClicked(footerData(getTablesTotalObject()));\r\n };\r\n\r\n if (item.name === 'copy') {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n {\r\n item.name === \"category\" ?\r\n Total :\r\n {item.visibleValue}\r\n }\r\n {\r\n item.value !== \"Total\" &&\r\n
\r\n  \r\n {item?.unit &&\r\n \r\n {item?.unit}\r\n \r\n }\r\n\r\n {item?.unitDegree &&\r\n \r\n {item?.unitDegree}\r\n \r\n }\r\n
\r\n }\r\n
\r\n
\r\n );\r\n }\r\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 QuickStatsModal;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { ModalContext } from \"components/ModalContext\";\r\nimport {getDetailedCollectionInfo, getDetailedSelectionInfo} from \"utils/builder/IScheduleLogic\";\r\nimport classNames from \"classnames\";\r\nimport \"./QuickStats.scss\";\r\n\r\nimport QuickStatsItem from \"components/uiComponents/QuickStatsItem\";\r\nimport QuickStatsModal from \"components/modals/QuickStatsModal\";\r\nimport {useSelector} from \"react-redux\";\r\n\r\nconst QuickStats = ({\r\n quickCounterData,\r\n isCompare,\r\n sidebarIsOpened,\r\n}) => {\r\n const [details, setDetails] = useState(null);\r\n const { handleModal } = useContext(ModalContext);\r\n const { compare } = useSelector((state) => state.viewer);\r\n\r\n const handleCloseModal = () => {\r\n handleModal(null, true);\r\n };\r\n \r\n const handleDetails = () => {\r\n handleModal(\r\n ,\r\n false,\r\n true\r\n );\r\n };\r\n\r\n useEffect(async () => {\r\n let newDetails = null;\r\n\r\n if(isCompare) {\r\n newDetails = compare.selectionDetails.map((el) => { return {info: el.infoCollection, sumCategories: el.sumCategories, color: el.color, name: el.name}});\r\n } else {\r\n newDetails = [{ info: getDetailedSelectionInfo(), sumCategories: null, color: null, name: null}];\r\n }\r\n\r\n setDetails(newDetails);\r\n }, [quickCounterData, compare.selectionDetails.length]);\r\n\r\n return (\r\n \r\n
\r\n {quickCounterData &&\r\n quickCounterData.map(({ value, name, percentage, unit }) => (\r\n \r\n )\r\n )}\r\n
\r\n \r\n {details?.length !== 0 &&\r\n \r\n Selection details\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default QuickStats;\r\n","var _path, _path2, _path3, _path4, _path5;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIsolateSelection(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.8599 4.14066H4.13989V13.8607H13.8599V4.14066Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.7499 17.75H11.9099V16.25H16.2499V11.92H17.7499V17.75Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.75 6.08003H0.25V0.250031H6.08V1.75003H1.75V6.08003Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.7499 6.08003H16.2499V1.75003H11.9099V0.250031H17.7499V6.08003Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.08 17.75H0.25V11.92H1.75V16.25H6.08V17.75Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIsolateSelection);\nexport default __webpack_public_path__ + \"static/media/isolate-selection.043069e6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgHideSelection(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 18,\n viewBox: \"0 0 22 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.015 14.49C9.61728 14.49 8.27683 13.9348 7.28851 12.9464C6.3002 11.9581 5.74496 10.6177 5.74496 9.22C5.74454 8.44882 5.91531 7.68716 6.24496 6.98999L3.91496 4.66C2.37277 5.93561 1.07505 7.48067 0.0849609 9.22C0.0849609 9.22 3.88497 16.5 11.015 16.5C12.388 16.5099 13.7488 16.2412 15.015 15.71L13.245 13.99C12.5478 14.3196 11.7861 14.4904 11.015 14.49Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.915 9.22C21.915 9.22 18.155 1.98999 11.015 1.98999C9.44197 1.9945 7.8902 2.35338 6.47496 3.03998L3.56496 0.130005L2.51497 1.13L5.13496 3.75L7.08496 5.75L8.46497 7.13L13.145 11.82L16.375 15.05L19.205 17.87L20.265 16.81L17.635 14.18C19.3775 12.828 20.8326 11.1417 21.915 9.22ZM14.015 10.59C14.2129 10.1604 14.3152 9.69299 14.315 9.22C14.3123 8.33591 13.9593 7.48893 13.3332 6.86472C12.7071 6.24051 11.8591 5.88998 10.975 5.88998C10.5061 5.88865 10.0425 5.98753 9.61496 6.17999L8.18497 4.75C9.02019 4.22393 9.98788 3.94644 10.975 3.94998C11.9181 3.94576 12.845 4.19521 13.6587 4.67221C14.4723 5.14921 15.1428 5.83621 15.5998 6.66125C16.0568 7.4863 16.2835 8.41905 16.2563 9.36182C16.2291 10.3046 15.9488 11.2227 15.445 12.02L14.015 10.59Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.725 12.47L7.72496 8.47C7.59327 9.0218 7.60516 9.59812 7.75952 10.144C7.91387 10.6899 8.20553 11.1872 8.60667 11.5883C9.00781 11.9894 9.50504 12.2811 10.0509 12.4354C10.5968 12.5898 11.1732 12.6017 11.725 12.47Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHideSelection);\nexport default __webpack_public_path__ + \"static/media/hide-selection.9dd29048.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgShowAll(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.67624 0.35418C9.07883 0.122146 9.53535 0 10 0C10.4647 0 10.9212 0.122134 11.3238 0.354145C11.3244 0.354488 11.325 0.354832 11.3256 0.355177L17.7247 4.01182C18.0538 4.20183 18.3374 4.45985 18.557 4.76756C18.6088 4.81847 18.6547 4.87714 18.6929 4.9431C18.7259 5.00021 18.7513 5.05963 18.7694 5.1202C18.9534 5.48735 19.0498 5.89292 19.0503 6.30501V13.6192C19.0498 14.0841 18.9271 14.5415 18.6944 14.944C18.4618 15.3465 18.1273 15.6807 17.7247 15.9132L17.7216 15.915L11.3256 19.5698C11.325 19.5702 11.3244 19.5705 11.3238 19.5709C11.0389 19.7351 10.727 19.8442 10.4043 19.894C10.2849 19.9615 10.147 20 10 20C9.85313 20 9.71522 19.9615 9.59583 19.894C9.27309 19.8442 8.96115 19.735 8.67622 19.5708C8.67565 19.5705 8.67508 19.5702 8.67451 19.5698L2.27854 15.915L2.27537 15.9132C1.87275 15.6807 1.53834 15.3465 1.30569 14.944C1.07303 14.5415 0.950306 14.0849 0.94983 13.62L0.949829 6.30585C0.950252 5.8937 1.04676 5.48722 1.23076 5.12003C1.24885 5.05952 1.27424 5.00015 1.30724 4.9431C1.34537 4.87719 1.39123 4.81856 1.44302 4.76768C1.66267 4.45991 1.94623 4.20186 2.27537 4.01183L2.27854 4.01L8.67624 0.35418ZM2.59532 6.63869V13.6187C2.59557 13.7949 2.64212 13.968 2.7303 14.1205C2.81829 14.2727 2.94464 14.3992 3.09674 14.4874C3.0972 14.4876 3.09766 14.4879 3.09811 14.4881L9.1773 17.962V10.4461L2.59532 6.63869ZM10.8228 10.4462V17.962L16.902 14.4881C16.9024 14.4879 16.9029 14.4876 16.9034 14.4874C17.0555 14.3992 17.1818 14.2727 17.2698 14.1205C17.358 13.9679 17.4046 13.7947 17.4048 13.6183V6.63871L10.8228 10.4462ZM16.5469 5.23398L10.5028 1.78022C10.35 1.69197 10.1766 1.64549 10 1.64549C9.82353 1.64549 9.65012 1.69196 9.49726 1.78022L9.49409 1.78205L3.4532 5.23397L10.0001 9.02111L16.5469 5.23398Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgShowAll);\nexport default __webpack_public_path__ + \"static/media/show-all.63db937b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgToggleGhosting(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 20,\n viewBox: \"0 0 16 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.53504 19.2093C1.22788 19.193 0.935295 19.0732 0.705036 18.8693C0.552004 18.7355 0.431155 18.5689 0.351505 18.3819C0.271855 18.1949 0.235453 17.9923 0.245029 17.7893L0.735035 7.61926C0.83274 5.75708 1.6413 4.00338 2.99398 2.71982C4.34665 1.43626 6.1403 0.720703 8.00504 0.720703C9.86978 0.720703 11.6634 1.43626 13.0161 2.71982C14.3688 4.00338 15.1773 5.75708 15.275 7.61926L15.755 17.7793C15.7646 17.9823 15.7282 18.1849 15.6486 18.3719C15.5689 18.5589 15.4481 18.7255 15.295 18.8593C15.1408 18.9931 14.9574 19.0891 14.7594 19.1394C14.5615 19.1898 14.3545 19.1931 14.155 19.1493L13.415 18.9993C12.3712 18.7994 11.2989 18.7994 10.255 18.9993L9.76503 19.0793C8.60066 19.2843 7.40941 19.2843 6.24503 19.0793H6.01503C4.97745 18.8843 3.91262 18.8843 2.87503 19.0793L1.87503 19.2793C1.75862 19.2748 1.64375 19.2511 1.53504 19.2093ZM4.40503 17.3393C5.01557 17.3413 5.62469 17.3982 6.22504 17.5093H6.45504C7.44684 17.6904 8.46324 17.6904 9.45504 17.5093L9.94504 17.4293C11.1781 17.219 12.4394 17.2393 13.665 17.4893L14.205 17.5993L13.725 7.59927C13.6384 6.12771 12.9927 4.74486 11.9201 3.73361C10.8476 2.72236 9.42915 2.15912 7.95504 2.15912C6.48092 2.15912 5.0625 2.72236 3.98993 3.73361C2.91737 4.74486 2.27171 6.12771 2.18503 7.59927L1.70504 17.5993L2.54503 17.4393C3.16374 17.3463 3.78995 17.3128 4.41504 17.3393H4.40503Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.645 11.8693C9.37503 11.8693 8.39503 10.5393 8.39503 8.86926C8.39503 7.19926 9.39503 5.86926 10.645 5.86926C11.895 5.86926 12.895 7.20926 12.895 8.86926C12.895 10.5293 11.905 11.8693 10.645 11.8693ZM10.645 7.29926C10.345 7.29926 9.89503 7.90926 9.89503 8.83926C9.89503 9.76926 10.345 10.3693 10.645 10.3693C10.945 10.3693 11.395 9.75926 11.395 8.83926C11.395 7.91926 10.935 7.28928 10.645 7.28928V7.29926Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.26503 11.8693C4.00503 11.8693 3.01503 10.5393 3.01503 8.86926C3.01503 7.19926 4.01503 5.86926 5.26503 5.86926C6.51503 5.86926 7.51503 7.20926 7.51503 8.86926C7.51503 10.5293 6.52503 11.8693 5.26503 11.8693ZM5.26503 7.29926C4.96503 7.29926 4.51503 7.90926 4.51503 8.83926C4.51503 9.76926 4.96503 10.3693 5.26503 10.3693C5.56503 10.3693 6.01503 9.75926 6.01503 8.83926C6.01503 7.91926 5.56503 7.28928 5.26503 7.28928V7.29926Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgToggleGhosting);\nexport default __webpack_public_path__ + \"static/media/toggle-ghosting.ad7295cd.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCollection(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.4\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 12V19C21 19.5304 20.7893 20.0391 20.4142 20.4142C20.0391 20.7893 19.5304 21 19 21H5C4.46957 21 3.96086 20.7893 3.58579 20.4142C3.21071 20.0391 3 19.5304 3 19V5C3 4.46957 3.21071 3.96086 3.58579 3.58579C3.96086 3.21071 4.46957 3 5 3H16\",\n stroke: \"#202329\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.7273 5L11.7273 14L8 10.2727\",\n stroke: \"#202329\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCollection);\nexport default __webpack_public_path__ + \"static/media/collection.382c088c.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useContext, useEffect, useRef, useState } from \"react\";\r\nimport {useDispatch, useSelector} from \"react-redux\";\r\nimport { loadModelAction } from \"store/actions/modal\";\r\nimport { RESET_TABLE } from \"store/constans\";\r\nimport { onSelectionChange } from \"store/actions/filter\";\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport { showToast } from \"../../utils/helpers\";\r\nimport {\r\n getSelection,\r\n loadModel,\r\n registerRightClickMethods,\r\n registerSelectionChangeMethod\r\n} from \"utils/builder/IScheduleLogic\";\r\nimport { addToNewCollection } from \"../../store/actions/collections\";\r\nimport { resizeViewer, isolateSelection, hideSelection, showAll, toggleGhosting } from \"utils/builder/IScheduleLogic\";\r\nimport classNames from \"classnames\";\r\nimport \"./EditorSection.scss\";\r\n\r\nimport QuickStats from \"components/QuickStats\";\r\nimport UniversalButton from \"components/uiComponents/UniversalButton\";\r\n\r\nimport { ReactComponent as ChangeHeightIcon } from \"static/icons/multiselection.svg\";\r\nimport { ReactComponent as IsolateSelection } from \"static/icons/isolate-selection.svg\";\r\nimport { ReactComponent as HideSelection } from \"static/icons/hide-selection.svg\";\r\nimport { ReactComponent as ShowAll } from \"static/icons/show-all.svg\";\r\nimport { ReactComponent as ToggleGhosting } from \"static/icons/toggle-ghosting.svg\";\r\nimport SaveCollectionModal from \"../modals/SaveCollectionModal\";\r\nimport {ModalContext} from \"../ModalContext\";\r\n\r\nconst EditorSection = ({\r\n autodesk,\r\n projectData,\r\n quickCounterData,\r\n sidebarIsOpened,\r\n table\r\n}) => {\r\n const dispatch = useDispatch();\r\n const viewer = useRef();\r\n\r\n const {\r\n isTableHidden,\r\n setIsTableHidden,\r\n setIsModalLoaded,\r\n } = useDashboardState();\r\n\r\n const { compare, quickInfoCompare } = useSelector((state) => state.viewer);\r\n\r\n const [editorPanel, setEditorPanel] = useState({isolateSelection: false, hideSelection: false, showAll: false, toggleGhosting: true});\r\n\r\n const { handleModal } = useContext(ModalContext);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n resizeViewer();\r\n }, 510);\r\n }, [isTableHidden]);\r\n\r\n const handleHideTable = () => {\r\n setIsTableHidden(!isTableHidden);\r\n };\r\n\r\n const callback = (res) => {\r\n setIsModalLoaded({ status: true });\r\n\r\n dispatch(loadModelAction(res));\r\n\r\n registerRightClickMethods(saveAsCollection, createNewCollection);\r\n\r\n toggleGhosting(true);\r\n };\r\n\r\n const onSelectionChangeCallback = (res) => {\r\n dispatch(onSelectionChange(res));\r\n };\r\n\r\n const createNewCollection = async () => {\r\n const selectionElementOnViewer = await getSelection();\r\n\r\n try {\r\n await dispatch(addToNewCollection({ elements: selectionElementOnViewer, properties: [\"Type Name\", \"Description\", \"Length\", \"Area\", \"Volume\"], groups: []}));\r\n showToast(true,\"New selection set was created\");\r\n } catch (error) {\r\n showToast(false, \"New selection set was not created\");\r\n }\r\n }\r\n\r\n const saveAsCollection = async () => {\r\n const selectionElementOnViewer = await getSelection();\r\n\r\n handleModal(\r\n \r\n );\r\n }\r\n\r\n useEffect(() => {\r\n if (\r\n projectData &&\r\n viewer.current &&\r\n autodesk &&\r\n viewer.current.children.length < 1\r\n ) {\r\n dispatch({\r\n type: RESET_TABLE,\r\n });\r\n\r\n loadModel(projectData, callback, viewer.current);\r\n registerSelectionChangeMethod(onSelectionChangeCallback);\r\n }\r\n }, [\r\n viewer.current,\r\n projectData,\r\n autodesk,\r\n ]);\r\n\r\n const isSelectCollection = () => {\r\n return Object.values(compare.collections).flat(2).some((collection) => collection.checked);\r\n }\r\n\r\n const handleClickButton = (buttonName, buttonMethod) => {\r\n setEditorPanel({...editorPanel, [buttonName]: !editorPanel[buttonName]})\r\n buttonMethod();\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {quickCounterData && quickCounterData[0].value !== 0 && isTableHidden && !compare.isModeCompare &&\r\n \r\n }\r\n {\r\n isSelectCollection() &&\r\n \r\n }\r\n
\r\n }\r\n size=\"lg\"\r\n labelColor=\"white\"\r\n labelHoverColor=\"white\"\r\n onClick={() => handleClickButton(\"showAll\", showAll)}\r\n />\r\n }\r\n size=\"lg\"\r\n labelColor=\"white\"\r\n labelHoverColor=\"white\"\r\n onClick={() => handleClickButton(\"isolateSelection\", isolateSelection)}\r\n />\r\n }\r\n size=\"lg\"\r\n labelColor=\"white\"\r\n labelHoverColor=\"white\"\r\n onClick={() => handleClickButton(\"hideSelection\", hideSelection)}\r\n />\r\n }\r\n size=\"lg\"\r\n labelColor=\"white\"\r\n labelHoverColor=\"white\"\r\n backgroundColor={editorPanel.toggleGhosting ? \"orange\" : \"gray6\"}\r\n backgroundHoverColor={editorPanel.toggleGhosting ? \"orange-light\" : \"gray5\"}\r\n onClick={() => handleClickButton(\"toggleGhosting\", () => toggleGhosting(!editorPanel.toggleGhosting))}\r\n />\r\n
\r\n {\r\n (!!table.tabs.length && !compare.isModeCompare) &&\r\n
\r\n }\r\n size=\"lg\"\r\n labelColor=\"white\"\r\n labelHoverColor=\"white\"\r\n backgroundColor={isTableHidden ? \"orange\" : \"gray6\"}\r\n backgroundHoverColor={isTableHidden ? \"orange-light\" : \"gray5\"}\r\n onClick={handleHideTable}\r\n />\r\n
\r\n }\r\n\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default EditorSection;\r\n","import { LOAD_MODEL } from \"../constans\";\r\n\r\nexport const loadModelAction = (result) => ({\r\n type: LOAD_MODEL,\r\n payload: result,\r\n});\r\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgTemplates(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.4\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 4.19844C2.44772 4.19844 2 4.64615 2 5.19844C2 5.75072 2.44772 6.19844 3 6.19844L3 4.19844ZM21 6.19844C21.5523 6.19844 22 5.75072 22 5.19844C22 4.64615 21.5523 4.19844 21 4.19844V6.19844ZM3 10.9982C2.44772 10.9982 2 11.446 2 11.9982C2 12.5505 2.44772 12.9982 3 12.9982V10.9982ZM21 12.9982C21.5523 12.9982 22 12.5505 22 11.9982C22 11.446 21.5523 10.9982 21 10.9982V12.9982ZM3 17.7983C2.44772 17.7983 2 18.2461 2 18.7983C2 19.3506 2.44772 19.7983 3 19.7983V17.7983ZM21 19.7983C21.5523 19.7983 22 19.3506 22 18.7983C22 18.2461 21.5523 17.7983 21 17.7983V19.7983ZM3 6.19844L7.8 6.19844L7.8 4.19844L3 4.19844L3 6.19844ZM11.4 6.19844L21 6.19844V4.19844L11.4 4.19844V6.19844ZM3 12.9982H12.6V10.9982H3V12.9982ZM16.2 12.9982H21V10.9982H16.2V12.9982ZM3 19.7983H7.8V17.7983H3V19.7983ZM11.4 19.7983H21V17.7983H11.4V19.7983ZM9.6 5.99844C9.15817 5.99844 8.8 5.64027 8.8 5.19844H6.8C6.8 6.74483 8.0536 7.99844 9.6 7.99844V5.99844ZM8.8 5.19844C8.8 4.75661 9.15817 4.39844 9.6 4.39844V2.39844C8.0536 2.39844 6.8 3.65204 6.8 5.19844H8.8ZM9.6 4.39844C10.0418 4.39844 10.4 4.75661 10.4 5.19844H12.4C12.4 3.65204 11.1464 2.39844 9.6 2.39844V4.39844ZM10.4 5.19844C10.4 5.64027 10.0418 5.99844 9.6 5.99844V7.99844C11.1464 7.99844 12.4 6.74483 12.4 5.19844H10.4ZM14.4 12.7982C13.9582 12.7982 13.6 12.4401 13.6 11.9982H11.6C11.6 13.5446 12.8536 14.7982 14.4 14.7982V12.7982ZM13.6 11.9982C13.6 11.5564 13.9582 11.1982 14.4 11.1982V9.19824C12.8536 9.19824 11.6 10.4518 11.6 11.9982H13.6ZM14.4 11.1982C14.8418 11.1982 15.2 11.5564 15.2 11.9982H17.2C17.2 10.4518 15.9464 9.19824 14.4 9.19824V11.1982ZM15.2 11.9982C15.2 12.4401 14.8418 12.7982 14.4 12.7982V14.7982C15.9464 14.7982 17.2 13.5446 17.2 11.9982H15.2ZM9.6 19.5986C9.15838 19.5986 8.8 19.2404 8.8 18.7983H6.8C6.8 20.3445 8.05339 21.5986 9.6 21.5986V19.5986ZM8.8 18.7983C8.8 18.3567 9.15796 17.9986 9.6 17.9986V15.9986C8.05382 15.9986 6.8 17.2517 6.8 18.7983H8.8ZM9.6 17.9986C10.042 17.9986 10.4 18.3567 10.4 18.7983H12.4C12.4 17.2517 11.1462 15.9986 9.6 15.9986V17.9986ZM10.4 18.7983C10.4 19.2404 10.0416 19.5986 9.6 19.5986V21.5986C11.1466 21.5986 12.4 20.3445 12.4 18.7983H10.4Z\",\n fill: \"#202329\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTemplates);\nexport default __webpack_public_path__ + \"static/media/templates.ee238c77.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCrown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 28,\n viewBox: \"0 0 32 28\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 14C0 6.26801 6.26801 0 14 0H17.5658C25.2977 0 31.5658 6.26801 31.5658 14V14C31.5658 21.732 25.2977 28 17.5658 28H14C6.26802 28 0 21.732 0 14V14Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.0515 9.28571C17.0515 9.72051 16.8356 10.1049 16.5053 10.3376C17.3026 14.7779 20.4314 15.2508 21.594 11.3077C21.4337 11.1147 21.3373 10.8667 21.3373 10.5962C21.3373 9.98085 21.8362 9.48196 22.4516 9.48196C23.067 9.48196 23.5659 9.98085 23.5659 10.5962C23.5659 11.0878 23.2476 11.505 22.8059 11.653L22.3465 19.191C22.3465 19.191 20.2563 20 15.7635 20C11.2708 20 9.18058 19.191 9.18058 19.191L8.72168 11.6394C8.29999 11.4806 8 11.0735 8 10.5962C8 9.98084 8.49888 9.48196 9.11429 9.48196C9.72969 9.48196 10.2286 9.98084 10.2286 10.5962C10.2286 10.8826 10.1206 11.1437 9.94311 11.341C11.1134 15.2502 14.2192 14.7648 15.0161 10.3304C14.6915 10.0971 14.48 9.71608 14.48 9.28571C14.48 8.57563 15.0557 8 15.7657 8C16.4758 8 17.0515 8.57563 17.0515 9.28571Z\",\n fill: \"#FFBA68\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCrown);\nexport default __webpack_public_path__ + \"static/media/crown.8a6c9126.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFolderOpenTemplates(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_508_42388)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22 10.0312V8C22 7.5 21.8 7 21.4 6.6C21 6.2 20.5 6 20 6H11L9 3H4C3.5 3 3 3.2 2.6 3.6C2.2 4 2 4.5 2 5V19.5625\",\n stroke: \"#9D9FA4\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23 11.6261L21.41 19.1826C21.2113 20.2348 20.2126 21 19.12 21H3.39349C2.49953 21 1.80422 20.2348 2.00288 19.3739L3.59215 11.8174C3.7908 10.7652 4.78409 10 5.87671 10H21.54C22.434 10 23.0993 10.7652 23 11.6261Z\",\n stroke: \"#9D9FA4\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_508_42388\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFolderOpenTemplates);\nexport default __webpack_public_path__ + \"static/media/folder-open-templates.2e1f9323.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgInfoGray(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.4\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 16.5C13.1421 16.5 16.5 13.1421 16.5 9C16.5 4.85786 13.1421 1.5 9 1.5C4.85786 1.5 1.5 4.85786 1.5 9C1.5 13.1421 4.85786 16.5 9 16.5Z\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 12V9\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 6H9.0075\",\n stroke: \"#202329\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfoGray);\nexport default __webpack_public_path__ + \"static/media/info-gray.583f53c6.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgPremiumTemplates(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 50,\n height: 50,\n viewBox: \"0 0 50 50\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 25,\n cy: 25,\n r: 25,\n fill: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.1144 15.3942L32.1189 15.2156C31.0397 20.4669 28.2355 22.3478 24.9183 22.2452C21.601 22.3478 18.8006 20.4669 17.7214 15.2156L16.7259 15.3942C18.1736 26.0336 10.5208 27.3028 9.07312 15.7742L10.1599 25.779H39.6804L40.7634 15.7742C39.3157 27.3028 31.6667 26.0336 33.1144 15.3942Z\",\n fill: \"url(#paint0_linear_508_23008)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.22 15.5766C37.8679 27.3028 26.6358 26.0337 25.5148 13.2968H24.3217C23.1818 26.0337 11.9724 27.3028 9.61649 15.5766L8.80334 15.8008L10.1599 35.4799H39.6766L41.037 15.8008L40.22 15.5766Z\",\n fill: \"url(#paint1_linear_508_23008)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.9221 38.2652C33.0729 38.2652 39.6805 37.0182 39.6805 35.48C39.6805 33.9417 33.0729 32.6947 24.9221 32.6947C16.7713 32.6947 10.1637 33.9417 10.1637 35.48C10.1637 37.0182 16.7713 38.2652 24.9221 38.2652Z\",\n fill: \"url(#paint2_linear_508_23008)\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.99332 16.9598C9.81806 16.9598 10.4866 16.2912 10.4866 15.4665C10.4866 14.6417 9.81806 13.9731 8.99332 13.9731C8.16858 13.9731 7.5 14.6417 7.5 15.4665C7.5 16.2912 8.16858 16.9598 8.99332 16.9598Z\",\n fill: \"#CD7714\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.0337 15.9376C17.8585 15.9376 18.527 15.269 18.527 14.4443C18.527 13.6196 17.8585 12.951 17.0337 12.951C16.209 12.951 15.5404 13.6196 15.5404 14.4443C15.5404 15.269 16.209 15.9376 17.0337 15.9376Z\",\n fill: \"#B46100\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.8066 15.9376C33.6313 15.9376 34.2999 15.269 34.2999 14.4443C34.2999 13.6196 33.6313 12.951 32.8066 12.951C31.9818 12.951 31.3132 13.6196 31.3132 14.4443C31.3132 15.269 31.9818 15.9376 32.8066 15.9376Z\",\n fill: \"#B46100\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.9221 15.4665C25.9714 15.4665 26.822 14.6159 26.822 13.5666C26.822 12.5173 25.9714 11.6667 24.9221 11.6667C23.8728 11.6667 23.0222 12.5173 23.0222 13.5666C23.0222 14.6159 23.8728 15.4665 24.9221 15.4665Z\",\n fill: \"#F5C65C\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.847 16.9598C41.6717 16.9598 42.3403 16.2912 42.3403 15.4665C42.3403 14.6417 41.6717 13.9731 40.847 13.9731C40.0222 13.9731 39.3536 14.6417 39.3536 15.4665C39.3536 16.2912 40.0222 16.9598 40.847 16.9598Z\",\n fill: \"#CD7714\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_508_23008\",\n x1: 24.9182,\n y1: 27.6675,\n x2: 24.9182,\n y2: 21.0977,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#733E00\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#B46100\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_508_23008\",\n x1: 8.80334,\n y1: 24.3883,\n x2: 41.037,\n y2: 24.3883,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#CC7514\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.5,\n stopColor: \"#F5C65C\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D98B1C\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_508_23008\",\n x1: 24.9221,\n y1: 39.7775,\n x2: 24.9221,\n y2: 29.5447,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#733E00\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#B46100\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPremiumTemplates);\nexport default __webpack_public_path__ + \"static/media/premium_templates.5b096fb2.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useEffect} from 'react';\r\nimport { FormattedDate } from 'react-intl';\r\n\r\nimport \"./QuickStatsTemplate.scss\";\r\n\r\nimport { roundUp } from \"utils/helpers\";\r\n\r\nconst QuickStatsTemplate = ({quickInfo, closeQuickInfo}) => {\r\n\r\n useEffect(() => {\r\n\r\n const checkElement = (event) => {\r\n const currentElement = event.target;\r\n const nessery = document.querySelector(\".quick-stats-template\");\r\n\r\n if(!nessery?.contains(currentElement)) {\r\n closeQuickInfo();\r\n }\r\n }\r\n\r\n document.addEventListener('click', (event) => checkElement(event));\r\n\r\n return(\r\n document.removeEventListener('click', (event) => checkElement(event))\r\n )\r\n }, []);\r\n\r\n const {creationTime, descreption, parameters, quickData} = quickInfo;\r\n\r\n return (\r\n
\r\n {\r\n creationTime > 0 &&\r\n
\r\n
Created
\r\n \r\n
\r\n }\r\n
\r\n {\r\n quickData.map((el) => {\r\n return(\r\n
\r\n {`${el.name}: `}\r\n {`${roundUp(el.value)} ${el.unit ? el.unit : \"\"}`}\r\n
\r\n )\r\n })\r\n }\r\n
\r\n {\r\n parameters.length ?\r\n
\r\n
Parameters
\r\n
\r\n {\r\n parameters.map((parameter, index) => {\r\n if(parameters.length - 1 === index) {\r\n return parameter\r\n } else {\r\n return parameter + \", \"\r\n }\r\n })\r\n }\r\n
\r\n
: null\r\n }\r\n {\r\n descreption ?\r\n
\r\n
Description
\r\n
{descreption}
\r\n
: null\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default QuickStatsTemplate;","import React, {useContext, useState, useRef, useMemo, useEffect} from 'react';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nimport './SaveTemplateModal.scss';\r\n\r\nimport UniversalButton from \"../../uiComponents/UniversalButton\";\r\n\r\nimport {ModalContext} from \"../../ModalContext\";\r\nimport {\r\n getTemplateQuickInfo,\r\n addTemplateFolder, deleteTemplateFolder\r\n} from \"../../../utils/builder/IScheduleLogic\";\r\nimport {addFolderTemplate, addTemplate, deleteFolderTemplate, templateEdit} from \"../../../store/actions/template\";\r\nimport DropDownFolder from \"../../uiComponents/DropDownFolder\";\r\nimport {showToast} from \"../../../utils/helpers\";\r\n\r\nconst SaveTemplateModal = ({filterState, closeEditTemplate, type=\"create\", folderInfo=null}) => {\r\n\r\n const template = {\r\n folder: folderInfo?.folderName || \"Default\",\r\n template: folderInfo?.templateName || \"\",\r\n description: \"\"\r\n }\r\n\r\n useEffect(() => {\r\n if(type === \"edit\") {\r\n getTemplateQuickInfo(folderInfo.templateName, folderInfo.folderName)\r\n .then((res)=> setInfoAboutTemplate({...infoAboutTemplate, description: res.descreption }));\r\n }\r\n }, []);\r\n\r\n const dispatch = useDispatch();\r\n const { templatesFolder } = useSelector((state) => state.viewer);\r\n\r\n const [infoAboutTemplate, setInfoAboutTemplate] = useState(template);\r\n const [nameError, setNameError] = useState(null);\r\n\r\n const { handleModal } = useContext(ModalContext);\r\n const name = useRef();\r\n const description = useRef();\r\n\r\n const folders = useMemo(() => {\r\n const folders = Object.keys(templatesFolder);\r\n return folders;\r\n }, [templatesFolder]);\r\n\r\n const handleCancel = () => {\r\n handleModal(null, true);\r\n };\r\n\r\n const getSelectGroup = (groupName)=> {\r\n setFolderName(groupName);\r\n }\r\n\r\n const saveAsTemplate = async () => {\r\n const { folder, template, description } = infoAboutTemplate;\r\n const { properties, group } = filterState;\r\n\r\n const haveError = checkValidation();\r\n\r\n if(haveError) {\r\n try {\r\n await dispatch(addTemplate({folder, template, description, properties, group}));\r\n showToast(true,\"Template was created\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n handleCancel();\r\n }\r\n }\r\n\r\n const handleEditTemplate = async () => {\r\n const { folder: newNameFolder, template: newNameTemplate, description: newDescriptionTemplate } = infoAboutTemplate;\r\n const { folderName: currentNameFolder, templateName: currentNameTemplate } = folderInfo;\r\n\r\n const haveError = checkValidation();\r\n\r\n if(haveError) {\r\n try {\r\n await dispatch(templateEdit({currentNameFolder, currentNameTemplate, newNameFolder, newNameTemplate, newDescriptionTemplate}));\r\n showToast(true,\"Template was edited\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n closeEditTemplate();\r\n }\r\n }\r\n\r\n const checkValidation = () => {\r\n const templateName = infoAboutTemplate.template;\r\n const folder = infoAboutTemplate.folder;\r\n const isExistName = templatesFolder[folder].includes(templateName);\r\n\r\n if(!templateName) {\r\n setNameError(\"The template name cannot be empty\");\r\n return false;\r\n }\r\n if (isExistName && type === \"create\") {\r\n setNameError(\"This name already exists\");\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n const addFolder = async (folderName) => {\r\n try {\r\n dispatch(addFolderTemplate(folderName));\r\n setFolderName(folderName);\r\n showToast(true,\"Folder template was created\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n }\r\n\r\n const setTemplateName = (name) => {\r\n setInfoAboutTemplate({...infoAboutTemplate, template: name });\r\n }\r\n\r\n const setDescriptionName = (name) => {\r\n setInfoAboutTemplate({...infoAboutTemplate, description: name });\r\n }\r\n\r\n const setFolderName = (name) => {\r\n setInfoAboutTemplate({...infoAboutTemplate, folder: name });\r\n }\r\n\r\n return (\r\n
\r\n
{`${type === \"create\" ? \"Save\" : \"Edit\"} search template`}
\r\n
\r\n \r\n setTemplateName(event.target.value)}/>\r\n {\r\n nameError ?
{nameError}
: 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\n );\r\n};\r\n\r\nexport default SaveTemplateModal;","import React, { useEffect, useState } from 'react';\r\n\r\nimport \"./FolderTemplates.scss\";\r\n\r\nimport { ReactComponent as FolderOpenImg } from \"static/icons/folder-open-templates.svg\";\r\nimport { ReactComponent as FolderImg } from \"static/icons/folder-templates.svg\";\r\nimport { ReactComponent as ArrowImg } from \"static/icons/arrow-gray.svg\";\r\nimport { ReactComponent as OptionImg } from \"static/icons/options.svg\";\r\nimport { ReactComponent as InfoImg } from \"static/icons/info-gray.svg\";\r\n\r\nimport { getTemplateQuickInfo } from \"../../utils/builder/IScheduleLogic\";\r\nimport QuickStatsTemplate from \"../template/QuickStatsTemplate\";\r\nimport OptionMenu from \"../template/OptionMenu\";\r\nimport ModalComponent from \"../modals/ModalComponent\";\r\nimport SaveTemplateModals from \"../modals/SaveTemplateModals\";\r\nimport ProofModal from \"../modals/ProofModal\";\r\nimport { deleteTemplateFromFolder } from \"../../store/actions/template\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { checkPremium, showToast } from \"../../utils/helpers\";\r\n\r\nconst FolderTemplates = ({\r\n folderName,\r\n templates,\r\n handleOptionClick,\r\n activeOption,\r\n openOptionMenuFolder,\r\n optionMenuFolder,\r\n scroll,\r\n closeOptionMenuFolder,\r\n setScroll\r\n }) => {\r\n\r\n useEffect(() => {\r\n if(scroll) {\r\n closePopUps();\r\n }\r\n }, [scroll]);\r\n\r\n const {\r\n info: { subscreption },\r\n } = useSelector((state) => state.user);\r\n\r\n const IS_PREMIUM = checkPremium(subscreption);\r\n\r\n const [isOpenFolder, setOpenFolder] = useState(false);\r\n const [quickInfo, setQuickInfo] = useState(null);\r\n const [optionMenu, setOptionMenu] = useState(null);\r\n const [editTemplate, setEditTemplate] = useState(false);\r\n const [folderInfo, setFolderInfo] = useState(null);\r\n const [proofModal, setProofModal] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const openFolder = ()=> setOpenFolder(!isOpenFolder);\r\n\r\n const openQuickInfo = (event, templateName)=> {\r\n\r\n event.stopPropagation();\r\n\r\n if(quickInfo && templateName === quickInfo?.templateName) {\r\n closeQuickInfo();\r\n } else {\r\n closeOptionMenu();\r\n closeOptionMenuFolder();\r\n const clientX = event.clientX + 19;\r\n const clientY = event.clientY - 30;\r\n\r\n getTemplateQuickInfo(templateName,folderName)\r\n .then((info) => {\r\n setQuickInfo({clientX, clientY, info, templateName});\r\n setScroll(false);\r\n });\r\n }\r\n }\r\n\r\n const closeQuickInfo = () => {\r\n setQuickInfo(null);\r\n }\r\n\r\n const openOptionMenu = (event, name, folderName) => {\r\n\r\n event.stopPropagation();\r\n\r\n if(optionMenu && name === optionMenu?.templateName) {\r\n closeOptionMenu();\r\n } else {\r\n closeQuickInfo();\r\n closeOptionMenuFolder();\r\n const clientX = event.clientX + 19;\r\n const clientY = event.clientY - 30;\r\n\r\n setOptionMenu({clientX, clientY, templateName: name, folderName: folderName});\r\n setScroll(false);\r\n }\r\n }\r\n\r\n const closeOptionMenu = () => {\r\n setOptionMenu(null);\r\n }\r\n\r\n const openEditTemplate = ()=> {\r\n setFolderInfo(optionMenu);\r\n closeOptionMenu();\r\n setEditTemplate(true);\r\n }\r\n\r\n const closeEditTemplate = ()=> {\r\n setEditTemplate(false);\r\n }\r\n\r\n const openProofModal = ()=> {\r\n setFolderInfo(optionMenu);\r\n closeOptionMenu();\r\n setProofModal(true);\r\n }\r\n\r\n const closeProofModal = () => {\r\n setProofModal(false);\r\n };\r\n\r\n const deleteItem = async () => {\r\n const folderName = folderInfo.folderName;\r\n const templateName = folderInfo?.templateName;\r\n\r\n try {\r\n await dispatch(deleteTemplateFromFolder(folderName, templateName));\r\n showToast(true,\"Template was deleted\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n\r\n closeProofModal();\r\n }\r\n\r\n const closePopUps = () => {\r\n setQuickInfo(null);\r\n setOptionMenu(null);\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n isOpenFolder ? : \r\n }\r\n
\r\n { folderName }\r\n
{ openOptionMenuFolder(events, folderName); closePopUps(); }}>\r\n {\r\n IS_PREMIUM ? : null\r\n }\r\n
\r\n
\r\n\r\n
\r\n {\r\n templates.map((template, index) => {\r\n return (\r\n
handleOptionClick(template, folderName)}>\r\n
{template}
\r\n
\r\n
\r\n openQuickInfo(events, template, folderName)}/>\r\n
\r\n {\r\n IS_PREMIUM &&\r\n
\r\n openOptionMenu(events, template, folderName)}/>\r\n
\r\n }\r\n
\r\n
\r\n )\r\n })\r\n }\r\n
\r\n\r\n
\r\n {\r\n quickInfo ? : null\r\n }\r\n
\r\n\r\n
\r\n {\r\n optionMenu ?\r\n : null\r\n }\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
You want to delete “{folderInfo?.templateName}” template?
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default FolderTemplates;\r\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBigCrown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 150,\n height: 150,\n viewBox: \"0 0 150 150\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75 130C105.376 130 130 105.376 130 75C130 44.6243 105.376 20 75 20C44.6243 20 20 44.6243 20 75C20 105.376 44.6243 130 75 130Z\",\n fill: \"#EDF2F4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.5649 48.81L93.9449 48.34C91.1049 62.16 83.7249 67.11 74.9949 66.84C66.2649 67.11 58.8949 62.16 56.0549 48.34L53.435 48.81C57.245 76.81 37.1049 80.15 33.2949 49.81L36.155 76.14H113.845L116.695 49.81C112.885 80.15 92.7549 76.81 96.5649 48.81Z\",\n fill: \"url(#paint0_linear_512_24695)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M115.265 49.29C109.075 80.15 79.515 76.81 76.565 43.29H73.425C70.425 76.81 40.925 80.15 34.725 49.29L32.585 49.88L36.155 101.67H113.835L117.415 49.88L115.265 49.29Z\",\n fill: \"url(#paint1_linear_512_24695)\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.0049 109C96.4557 109 113.845 105.718 113.845 101.67C113.845 97.6218 96.4557 94.34 75.0049 94.34C53.5542 94.34 36.1649 97.6218 36.1649 101.67C36.1649 105.718 53.5542 109 75.0049 109Z\",\n fill: \"url(#paint2_linear_512_24695)\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.0849 52.93C35.2554 52.93 37.0149 51.1705 37.0149 49C37.0149 46.8295 35.2554 45.07 33.0849 45.07C30.9144 45.07 29.1549 46.8295 29.1549 49C29.1549 51.1705 30.9144 52.93 33.0849 52.93Z\",\n fill: \"#CD7816\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.2449 50.24C56.4154 50.24 58.1749 48.4805 58.1749 46.31C58.1749 44.1395 56.4154 42.38 54.2449 42.38C52.0745 42.38 50.3149 44.1395 50.3149 46.31C50.3149 48.4805 52.0745 50.24 54.2449 50.24Z\",\n fill: \"#B46100\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M95.755 50.24C97.9254 50.24 99.685 48.4805 99.685 46.31C99.685 44.1395 97.9254 42.38 95.755 42.38C93.5845 42.38 91.825 44.1395 91.825 46.31C91.825 48.4805 93.5845 50.24 95.755 50.24Z\",\n fill: \"#B46100\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.0049 49C77.7663 49 80.0049 46.7614 80.0049 44C80.0049 41.2386 77.7663 39 75.0049 39C72.2435 39 70.0049 41.2386 70.0049 44C70.0049 46.7614 72.2435 49 75.0049 49Z\",\n fill: \"#F5C65C\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.915 52.93C119.085 52.93 120.845 51.1705 120.845 49C120.845 46.8295 119.085 45.07 116.915 45.07C114.745 45.07 112.985 46.8295 112.985 49C112.985 51.1705 114.745 52.93 116.915 52.93Z\",\n fill: \"#DA8E1F\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.9999 24.44C74.3369 24.44 73.701 24.1766 73.2321 23.7078C72.7633 23.2389 72.4999 22.6031 72.4999 21.94V5.3C72.4999 4.63696 72.7633 4.00108 73.2321 3.53224C73.701 3.0634 74.3369 2.8 74.9999 2.8C75.6629 2.8 76.2988 3.0634 76.7677 3.53224C77.2365 4.00108 77.4999 4.63696 77.4999 5.3V21.94C77.4999 22.6031 77.2365 23.2389 76.7677 23.7078C76.2988 24.1766 75.6629 24.44 74.9999 24.44Z\",\n fill: \"#F5C65C\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.27514 102.9C8.68074 102.903 8.10456 102.695 7.64996 102.312C7.19536 101.929 6.89211 101.397 6.79458 100.81C6.69706 100.224 6.81164 99.6219 7.11779 99.1124C7.42395 98.6029 7.90163 98.2192 8.46514 98.03L15.6952 95.55C16.3204 95.3431 17.0019 95.3913 17.5918 95.684C18.1817 95.9767 18.6323 96.4904 18.8457 97.1134C19.0591 97.7364 19.018 98.4184 18.7314 99.0113C18.4449 99.6043 17.9359 100.06 17.3152 100.28L10.0851 102.76C9.82444 102.85 9.55092 102.897 9.27514 102.9Z\",\n fill: \"#D17F1D\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.8552 97.28C21.5001 97.2792 21.1568 97.1525 20.8864 96.9224C20.616 96.6923 20.4359 96.3737 20.3783 96.0233C20.3207 95.6729 20.3893 95.3135 20.5719 95.009C20.7544 94.7044 21.039 94.4744 21.3752 94.36L23.2552 93.72C23.6305 93.5874 24.043 93.6093 24.4022 93.7809C24.7613 93.9525 25.0376 94.2597 25.1702 94.635C25.3028 95.0103 25.2809 95.4229 25.1093 95.782C24.9377 96.1412 24.6305 96.4174 24.2552 96.55L22.3752 97.2C22.2071 97.254 22.0316 97.281 21.8552 97.28Z\",\n fill: \"#D17F1D\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M131.145 63.14C130.79 63.1392 130.447 63.0125 130.176 62.7824C129.906 62.5523 129.726 62.2337 129.668 61.8833C129.611 61.533 129.679 61.1735 129.862 60.8689C130.044 60.5644 130.329 60.3344 130.665 60.22L132.205 59.69C132.582 59.5574 132.996 59.5798 133.356 59.7524C133.716 59.9249 133.992 60.2334 134.125 60.61C134.258 60.9866 134.235 61.4005 134.063 61.7605C133.89 62.1206 133.582 62.3974 133.205 62.53L131.655 63.06C131.492 63.118 131.319 63.1452 131.145 63.14Z\",\n fill: \"#F5C65C\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.615 61.58C138.021 61.5835 137.444 61.375 136.99 60.992C136.535 60.609 136.232 60.0766 136.135 59.4902C136.037 58.9039 136.152 58.3019 136.458 57.7924C136.764 57.2829 137.242 56.8992 137.805 56.71L142.855 54.98C143.482 54.7639 144.17 54.8058 144.766 55.0964C145.362 55.3871 145.819 55.9028 146.035 56.53C146.251 57.1573 146.209 57.8447 145.919 58.441C145.628 59.0374 145.112 59.4939 144.485 59.71L139.435 61.44C139.171 61.53 138.894 61.5773 138.615 61.58Z\",\n fill: \"#F5C65C\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.0051 27.29C34.617 27.29 34.2342 27.1996 33.887 27.0261C33.5399 26.8525 33.2379 26.6005 33.0051 26.29L28.8451 20.94C28.6255 20.6832 28.4603 20.3845 28.3594 20.0621C28.2585 19.7397 28.224 19.4001 28.258 19.064C28.292 18.7278 28.3938 18.4021 28.5572 18.1064C28.7206 17.8106 28.9422 17.5511 29.2087 17.3435C29.4753 17.1358 29.7811 16.9843 30.1078 16.8981C30.4344 16.812 30.7752 16.7929 31.1095 16.8421C31.4437 16.8914 31.7645 17.0078 32.0525 17.1845C32.3405 17.3611 32.5897 17.5943 32.7851 17.87L36.9551 23.21C37.1568 23.4693 37.3055 23.7658 37.3926 24.0826C37.4797 24.3994 37.5035 24.7302 37.4626 25.0562C37.4217 25.3822 37.317 25.6969 37.1544 25.9824C36.9918 26.2679 36.7746 26.5185 36.5151 26.72C36.0898 27.0737 35.558 27.2744 35.0051 27.29Z\",\n fill: \"#D17F1D\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.7552 31.17C38.5275 31.1685 38.3031 31.1156 38.0987 31.0152C37.8944 30.9147 37.7154 30.7694 37.5752 30.59L37.0851 29.96C36.9567 29.8058 36.8605 29.6273 36.8023 29.4352C36.744 29.2431 36.7249 29.0413 36.7461 28.8417C36.7673 28.6421 36.8283 28.4488 36.9256 28.2732C37.0229 28.0976 37.1544 27.9433 37.3123 27.8195C37.4703 27.6957 37.6515 27.6048 37.8452 27.5523C38.039 27.4998 38.2413 27.4866 38.4402 27.5137C38.6391 27.5408 38.8305 27.6075 39.0031 27.71C39.1757 27.8124 39.3261 27.9484 39.4452 28.11L39.9452 28.75C40.1882 29.0633 40.2973 29.4601 40.2486 29.8536C40.1998 30.2472 39.9973 30.6054 39.6851 30.85C39.4207 31.0595 39.0926 31.1725 38.7552 31.17Z\",\n fill: \"#D17F1D\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141.765 99.67C141.58 99.6694 141.396 99.6492 141.215 99.61L127.215 96.48C126.895 96.4085 126.591 96.2744 126.323 96.0857C126.054 95.8969 125.825 95.6572 125.649 95.38C125.473 95.1028 125.354 94.7937 125.297 94.4703C125.241 94.1468 125.249 93.8154 125.32 93.495C125.392 93.1746 125.526 92.8714 125.714 92.6028C125.903 92.3341 126.143 92.1053 126.42 91.9293C126.697 91.7533 127.006 91.6337 127.33 91.5772C127.653 91.5207 127.985 91.5285 128.305 91.6L142.305 94.73C142.906 94.864 143.436 95.2147 143.794 95.715C144.152 96.2153 144.313 96.8301 144.246 97.4417C144.179 98.0533 143.889 98.6188 143.431 99.0299C142.974 99.441 142.38 99.6689 141.765 99.67Z\",\n fill: \"#D17F1D\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.7451 65.02C15.5602 65.0193 15.3758 64.9992 15.1951 64.96L2.25512 62.07C1.93469 61.9984 1.63149 61.8645 1.36284 61.6757C1.0942 61.487 0.865379 61.2471 0.689412 60.97C0.513445 60.6928 0.393799 60.3837 0.3373 60.0602C0.280801 59.7368 0.288557 59.4054 0.360127 59.085C0.431698 58.7646 0.56567 58.4614 0.754414 58.1927C0.943158 57.9241 1.18298 57.6952 1.46016 57.5193C1.73735 57.3433 2.04647 57.2237 2.36989 57.1672C2.69332 57.1107 3.02469 57.1184 3.34511 57.19L16.2851 60.08C16.8856 60.214 17.4156 60.5647 17.7737 61.065C18.1317 61.5653 18.2928 62.1801 18.2259 62.7917C18.1591 63.4033 17.869 63.9687 17.4113 64.3799C16.9536 64.791 16.3603 65.0189 15.7451 65.02Z\",\n fill: \"#F5C65C\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.875 28.52C109.565 28.5186 109.262 28.4246 109.005 28.25C108.682 28.0171 108.463 27.6664 108.396 27.2737C108.328 26.8809 108.418 26.4774 108.645 26.15L110.565 23.44C110.795 23.1138 111.144 22.8921 111.537 22.8236C111.93 22.7552 112.334 22.8456 112.66 23.075C112.986 23.3044 113.208 23.654 113.276 24.0469C113.345 24.4398 113.255 24.8438 113.025 25.17L111.095 27.89C110.957 28.0852 110.774 28.2443 110.562 28.3539C110.35 28.4636 110.114 28.5205 109.875 28.52Z\",\n fill: \"#E4A235\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M115.295 21.86C114.781 21.8587 114.279 21.7018 113.855 21.41C113.586 21.2206 113.357 20.98 113.181 20.7019C113.006 20.4238 112.886 20.1138 112.831 19.7895C112.775 19.4653 112.784 19.1333 112.857 18.8125C112.929 18.4917 113.065 18.1884 113.255 17.92L117.325 12.15C117.515 11.8815 117.756 11.6529 118.034 11.4774C118.312 11.3019 118.622 11.1829 118.946 11.1272C119.27 11.0715 119.602 11.0802 119.923 11.1527C120.243 11.2253 120.547 11.3603 120.815 11.55C121.084 11.7398 121.312 11.9806 121.488 12.2587C121.663 12.5368 121.782 12.8467 121.838 13.1707C121.894 13.4948 121.885 13.8267 121.812 14.1474C121.74 14.4682 121.605 14.7715 121.415 15.04L117.335 20.81C117.105 21.1364 116.799 21.4023 116.444 21.5851C116.089 21.7679 115.695 21.8622 115.295 21.86Z\",\n fill: \"#E4A235\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_512_24695\",\n x1: 74.9949,\n y1: 81.11,\n x2: 74.9949,\n y2: 63.82,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#733E00\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#B46100\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_512_24695\",\n x1: 32.585,\n y1: 72.48,\n x2: 117.415,\n y2: 72.48,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#CC7514\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.5,\n stopColor: \"#F5C65C\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D98B1C\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_512_24695\",\n x1: 75.0049,\n y1: 112.98,\n x2: 75.0049,\n y2: 86.05,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#733E00\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#B46100\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBigCrown);\nexport default __webpack_public_path__ + \"static/media/big-crown.9fb4748c.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useState, useEffect } from \"react\";\r\nimport {useDispatch, useSelector} from \"react-redux\";\r\n\r\nimport \"./RadioListModal.scss\";\r\n\r\nimport UniversalButton from \"components/uiComponents/UniversalButton\";\r\nimport FolderTemplates from \"../../FolderTemplates\";\r\n\r\nimport { ReactComponent as PremiumTemplatesIcon } from \"static/images/premium_templates.svg\";\r\nimport { ReactComponent as PlusСircleIcon} from \"static/icons/plus-circle.svg\";\r\nimport OptionMenu from \"../../template/OptionMenu\";\r\nimport ModalComponent from \"../ModalComponent\";\r\nimport CreateFolder from \"../../template/CreateFolder\";\r\nimport ProofModal from \"../ProofModal\";\r\nimport {\r\n addFolderTemplate,\r\n deleteFolderTemplate,\r\n renameFolderTemplate\r\n} from \"../../../store/actions/template\";\r\nimport {showToast} from \"../../../utils/helpers\";\r\nimport {addSelectItems} from \"../../../store/actions/table\";\r\n\r\nconst RadioListModal = ({\r\n options,\r\n selectedOption,\r\n title,\r\n closeModal,\r\n onChangeTemplate,\r\n handleOpenPremiumModal,\r\n subscreption\r\n}) => {\r\n const dispatch = useDispatch();\r\n\r\n const { templatesFolder } = useSelector((state) => state.viewer);\r\n\r\n const [activeOption, setActiveOption] = useState(null);\r\n const [activeBanner, setActiveBanner] = useState(true);\r\n const [activeFolder, setActiveFolder] = useState(null);\r\n const [optionMenuFolder, setOptionMenuFolder] = useState(null);\r\n const [isCreateFolderModal, setCreateFolderModal] = useState(false);\r\n const [scroll, setScroll] = useState(false);\r\n const [isEditFolder, setEditFolder] = useState(false);\r\n const [infoAboutFolder, setInfoAboutFolder] = useState(false);\r\n const [proofModal, setProofModal] = useState(false);\r\n\r\n useEffect(() => {\r\n if (selectedOption && options) {\r\n const currentOption = options.find(item => item === selectedOption);\r\n\r\n if (currentOption) setActiveOption(currentOption);\r\n }\r\n\r\n }, []);\r\n\r\n\r\n const handleLoad = (e) => {\r\n e.preventDefault();\r\n\r\n onChangeTemplate?.(activeOption, activeFolder);\r\n\r\n dispatch(addSelectItems({selectItems: {}, id: 1}));\r\n\r\n closeModal?.();\r\n };\r\n\r\n const handleCancel = () => {\r\n closeModal?.();\r\n };\r\n\r\n const openOptionMenuFolder = (event, name) => {\r\n\r\n event.stopPropagation();\r\n\r\n if(optionMenuFolder && name === optionMenuFolder?.folderName) {\r\n closeOptionMenuFolder();\r\n } else {\r\n\r\n const clientX = event.clientX + 19;\r\n const clientY = event.clientY - 20;\r\n\r\n setOptionMenuFolder({clientX, clientY, templateName: null, folderName: name});\r\n setScroll(false);\r\n }\r\n }\r\n\r\n const closeOptionMenuFolder = () => {\r\n setOptionMenuFolder(null);\r\n }\r\n\r\n const closeCreateFolderModal = () => {\r\n setCreateFolderModal(false);\r\n };\r\n\r\n const openCreateFolderModal = () => {\r\n setCreateFolderModal(true);\r\n };\r\n\r\n const closePopups = () => {\r\n setScroll(true);\r\n setOptionMenuFolder(null);\r\n };\r\n\r\n const closeEditFolder = () => {\r\n setEditFolder(false);\r\n };\r\n\r\n const openEditFolder = () => {\r\n setInfoAboutFolder(optionMenuFolder);\r\n closeOptionMenuFolder();\r\n setEditFolder(true);\r\n }\r\n\r\n const editFolder = async (originalNameFolder, newNameFolder) => {\r\n try {\r\n await dispatch(renameFolderTemplate(originalNameFolder, newNameFolder));\r\n showToast(true,\"Folder template was edited\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n }\r\n\r\n const addFolder = async (folderName) => {\r\n try {\r\n await dispatch(addFolderTemplate(folderName));\r\n showToast(true,\"Folder template was created\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n }\r\n\r\n const closeProofModal = () => {\r\n setProofModal(false);\r\n };\r\n\r\n const deleteItem = async () => {\r\n\r\n const folderName = infoAboutFolder.folderName;\r\n\r\n try {\r\n await dispatch(deleteFolderTemplate(folderName));\r\n showToast(true,\"Folder template was deleted\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n\r\n closeProofModal();\r\n }\r\n\r\n const openProofModal = ()=> {\r\n setInfoAboutFolder(optionMenuFolder);\r\n closeOptionMenuFolder();\r\n setProofModal(true);\r\n }\r\n\r\n return (\r\n
\r\n {!!title &&\r\n

{title}

\r\n }\r\n {\r\n activeBanner && !subscreption ?\r\n
\r\n \r\n

Apply a Premium account to unlock more features

\r\n
setActiveBanner(false)}>
\r\n
: null\r\n }\r\n\r\n
\r\n {templatesFolder && Object.keys(templatesFolder).map((folderName, index) => {\r\n const handleOptionClick = (option, folder) => {\r\n setActiveOption(option);\r\n setActiveFolder(folder);\r\n };\r\n\r\n const templates = templatesFolder[folderName];\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 premium={!subscreption}\r\n onClick={!subscreption ? handleOpenPremiumModal : openCreateFolderModal}\r\n />\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n {\r\n optionMenuFolder &&\r\n \r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
You want to delete “{infoAboutFolder?.folderName}” folder?
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default RadioListModal;\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport classNames from 'classnames';\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport { useOnClickOutside } from 'utils/helpers';\r\nimport './SidebarButtonDropdown.scss';\r\n\r\nimport { ReactComponent as ArrowIcon } from \"static/icons/arrow.svg\";\r\n\r\nconst SidebarButtonDropdown = ({\r\n label,\r\n buttonTitle,\r\n isDropdownBlocked,\r\n children,\r\n dropdownPosition,\r\n dropdownVerticalPosition,\r\n isFixedHeight,\r\n isFullHeight,\r\n isFullWidth,\r\n isItemsEmpty,\r\n onCloseDropdown,\r\n dropDownCloseStatus,\r\n optionsType,\r\n onClearAll,\r\n isOpenInitialDropdown,\r\n}) => {\r\n const ref = useRef();\r\n const dropdownRef = useRef();\r\n const dropdownButtonRef = useRef();\r\n\r\n const {\r\n checkSidebarDropdownStatus,\r\n setCheckSidebarDropdownStatus,\r\n } = useDashboardState();\r\n\r\n const [dropdownIsOpen, setDropdownIsOpen] = useState(isOpenInitialDropdown);\r\n const [marginOffset, setMarginOffset] = useState(0);\r\n const [positionTop, setPositionTop] = useState(0);\r\n\r\n useEffect(() => {\r\n if(!isOpenInitialDropdown) {\r\n setDropdownIsOpen(isOpenInitialDropdown);\r\n }\r\n }, [isOpenInitialDropdown]);\r\n\r\n useEffect(() => {\r\n if (dropDownCloseStatus) {\r\n setDropdownIsOpen(dropDownCloseStatus);\r\n }\r\n }, [dropDownCloseStatus]);\r\n\r\n useOnClickOutside(ref, () => {\r\n setDropdownIsOpen(false);\r\n\r\n if (dropdownIsOpen) {\r\n setMarginOffset(0);\r\n }\r\n \r\n onCloseDropdown?.(false);\r\n });\r\n\r\n const buttonDropdownStyles = classNames({\r\n 'sidebar-button-dropdown': true,\r\n 'sidebar-button-dropdown--left': dropdownPosition === 'left',\r\n 'sidebar-button-dropdown--right': dropdownPosition === 'right',\r\n 'sidebar-button-dropdown--fixed-height': isFixedHeight,\r\n 'sidebar-button-dropdown--full-height': isFullHeight,\r\n 'sidebar-button-dropdown--empty': isItemsEmpty,\r\n 'sidebar-button-dropdown--top': dropdownVerticalPosition === 'top',\r\n });\r\n\r\n const handleDropdownIsOpen = () => {\r\n setDropdownIsOpen(!dropdownIsOpen);\r\n\r\n if (!dropdownIsOpen) {\r\n setCheckSidebarDropdownStatus(true);\r\n } else {\r\n setMarginOffset(0);\r\n }\r\n\r\n const dropdownButtonPosition = dropdownButtonRef.current.getBoundingClientRect().top;\r\n setPositionTop(dropdownButtonPosition);\r\n };\r\n\r\n const handleClearAll = () => {\r\n onClearAll(optionsType)\r\n };\r\n\r\n useEffect(() => {\r\n if (checkSidebarDropdownStatus && dropdownIsOpen) {\r\n const height = dropdownRef?.current?.clientHeight;\r\n const offsetTop = dropdownRef?.current?.getBoundingClientRect();\r\n const windowInnerHeight = window.innerHeight;\r\n\r\n if (marginOffset) {\r\n if (height + offsetTop.top + 20 + marginOffset > windowInnerHeight) {\r\n setMarginOffset(height + offsetTop.top + marginOffset - windowInnerHeight);\r\n } else {\r\n setMarginOffset(0);\r\n }\r\n } else {\r\n if (height + offsetTop.top + 20 > windowInnerHeight) {\r\n setMarginOffset(height + offsetTop.top - windowInnerHeight);\r\n } else {\r\n setMarginOffset(0);\r\n }\r\n }\r\n\r\n setCheckSidebarDropdownStatus(false);\r\n }\r\n }, [checkSidebarDropdownStatus, dropdownIsOpen]);\r\n\r\n return (\r\n \r\n
\r\n

\r\n {label}\r\n

\r\n\r\n \r\n clear\r\n

\r\n
\r\n\r\n \r\n \r\n {buttonTitle}\r\n

\r\n \r\n \r\n \r\n\r\n {dropdownIsOpen && !isDropdownBlocked &&\r\n \r\n {children}\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default SidebarButtonDropdown;\r\n","import React, { useState, useMemo } from \"react\";\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport \"./SidebarDropdown.scss\";\r\n\r\nimport UniversalInput from \"components/uiComponents/UniversalInput\";\r\nimport UniversalCheckbox from \"components/uiComponents/UniversalCheckbox\";\r\n\r\nimport { ReactComponent as SearchIcon } from \"static/icons/search-grey.svg\";\r\nimport classNames from \"classnames\";\r\n\r\nconst SidebarDropdown = ({\r\n commonOptions = [],\r\n uncommonOptions = [],\r\n selectedItems,\r\n optionsType,\r\n onChangeSelectedItems,\r\n}) => {\r\n const {\r\n setCheckSidebarDropdownStatus,\r\n } = useDashboardState();\r\n\r\n const [search, setSearch] = useState('');\r\n const [isUncommonVisible, setIsUncommonVisible] = useState(false);\r\n\r\n const addAlphabetToOptions = opts => {\r\n const alphabet = [];\r\n const options = [];\r\n\r\n if (opts?.length) {\r\n opts.forEach(item => {\r\n const firstChar = item.charAt();\r\n\r\n if (alphabet.includes(firstChar)) {\r\n options.push({\r\n value: item,\r\n key: item,\r\n firstChar: null,\r\n });\r\n } else {\r\n alphabet.push(firstChar);\r\n options.push({\r\n value: item,\r\n key: item,\r\n firstChar: firstChar,\r\n });\r\n }\r\n });\r\n }\r\n\r\n return options;\r\n };\r\n\r\n const commonOptionsUpd = useMemo(() => {\r\n return addAlphabetToOptions(commonOptions);\r\n }, [commonOptions]);\r\n\r\n const uncommonOptionsUpd = useMemo(() => {\r\n return addAlphabetToOptions(uncommonOptions);\r\n }, [uncommonOptions]);\r\n\r\n const searchedOptions = useMemo(() => {\r\n if (search) {\r\n const searchItem = search.toLowerCase();\r\n\r\n return [...commonOptionsUpd, ...uncommonOptionsUpd].filter(item => {\r\n const loweredItem = item.value.toLowerCase();\r\n\r\n return loweredItem.indexOf(searchItem) >= 0;\r\n });\r\n }\r\n\r\n return null;\r\n }, [search, commonOptions, uncommonOptions]);\r\n\r\n const handleSearchChange = value => {\r\n setSearch(value);\r\n };\r\n\r\n const handleSwitcherClick = () => {\r\n setIsUncommonVisible(!isUncommonVisible);\r\n setCheckSidebarDropdownStatus(true);\r\n };\r\n\r\n const handleClearSearch = () => {\r\n setSearch('');\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n }\r\n name=\"search\"\r\n type=\"text\"\r\n id=\"search\"\r\n placeholder=\"Search\"\r\n onChangeValue={handleSearchChange}\r\n value={search}\r\n isClearButtonActive\r\n onClearSearch={handleClearSearch}\r\n required\r\n />\r\n
\r\n\r\n
\r\n {!search && \r\n !!commonOptionsUpd.length &&\r\n \r\n {commonOptionsUpd.map(option => {\r\n const handleCheckboxChange = () => {\r\n onChangeSelectedItems(option.value, optionsType);\r\n };\r\n\r\n return (\r\n \r\n
\r\n {option.firstChar}\r\n
\r\n\r\n
\r\n item === option.value)}\r\n />\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n }\r\n\r\n {((\r\n isUncommonVisible && \r\n !search && \r\n !!uncommonOptionsUpd.length && \r\n !!commonOptionsUpd.length\r\n ) || (\r\n !search && \r\n !commonOptionsUpd.length &&\r\n !!uncommonOptionsUpd.length\r\n )) &&\r\n <>\r\n {!!commonOptionsUpd.length &&\r\n \r\n }\r\n\r\n
\r\n {uncommonOptionsUpd.map(option => {\r\n const handleCheckboxChange = () => {\r\n onChangeSelectedItems(option.value, optionsType);\r\n };\r\n\r\n return (\r\n \r\n
\r\n {option.firstChar}\r\n
\r\n\r\n
\r\n item === option.value)}\r\n />\r\n
\r\n
\r\n );\r\n })}\r\n \r\n \r\n }\r\n\r\n {!!search &&\r\n \r\n {searchedOptions.map(option => {\r\n const handleCheckboxChange = () => {\r\n onChangeSelectedItems(option.value, optionsType);\r\n };\r\n\r\n return (\r\n \r\n
\r\n\r\n
\r\n item === option.value)}\r\n />\r\n
\r\n
\r\n );\r\n })}\r\n \r\n }\r\n \r\n\r\n {!search &&\r\n !!uncommonOptionsUpd.length && \r\n !!commonOptionsUpd.length &&\r\n \r\n {isUncommonVisible\r\n ? 'Show less'\r\n : 'Show all'\r\n }\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default SidebarDropdown;\r\n","var _path, _path2, _path3, _path4, _path5, _path6;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSettingsTemplate(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 6H21\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 12H21\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 18H21\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 18H4.01\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.5 11.5L4 13L6.5 10\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.5 5.5L4 7L6.5 4\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSettingsTemplate);\nexport default __webpack_public_path__ + \"static/media/settings-template.5f4d8b67.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport \"./GoToPremiumModal.scss\";\r\n\r\nimport { ReactComponent as BigCrown } from \"static/icons/big-crown.svg\";\r\nimport UniversalButton from \"../../uiComponents/UniversalButton\";\r\n\r\nconst GoToPremiumModal = ({text}) => {\r\n\r\n const onActionClick = () => {\r\n window.open('https://bim-search.com/en/pricing/');\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
Go Premium
\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default GoToPremiumModal;","import React from \"react\";\r\nimport \"./Tag.scss\";\r\n\r\nimport { ReactComponent as CloseIcon } from 'static/icons/close.svg';\r\n\r\nconst Tag = ({\r\n title,\r\n isWithoutRemovebutton,\r\n onRemoveTag,\r\n}) => {\r\n \r\n\r\n return (\r\n
\r\n

\r\n {title}\r\n

\r\n\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Tag;\r\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgHome(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 9L12 2L21 9V20C21 20.5304 20.7893 21.0391 20.4142 21.4142C20.0391 21.7893 19.5304 22 19 22H5C4.46957 22 3.96086 21.7893 3.58579 21.4142C3.21071 21.0391 3 20.5304 3 20V9Z\",\n stroke: \"#9D9FA4\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 22V12H15V22\",\n stroke: \"#9D9FA4\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHome);\nexport default __webpack_public_path__ + \"static/media/home.e378eb4d.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useEffect, useContext } from \"react\";\r\nimport { ModalContext } from \"components/ModalContext\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { updateFilter, setTemplateAction } from \"store/actions/filter\";\r\nimport {addSelectItems, updateTable} from \"store/actions/table\";\r\nimport { updateCategory } from \"utils/builder/IScheduleLogic\";\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport \"./SidebarProject.scss\";\r\n\r\nimport UniversalButton from \"components/uiComponents/UniversalButton\";\r\nimport RadioListModal from \"components/modals/RadioListModal\";\r\nimport SaveTemplateModals from \"components/modals/SaveTemplateModals\";\r\nimport SidebarButtonDropdown from \"components/sidebarComponents/SidebarButtonDropdown\";\r\nimport SidebarDropdown from \"components/sidebarComponents/SidebarDropdown\";\r\nimport GoToPremiumModal from \"components/modals/GoToPremiumModal\";\r\nimport Tag from \"components/uiComponents/Tag\";\r\nimport ModalComponent from \"../../modals/ModalComponent\";\r\n\r\nimport { ReactComponent as TemplateIcon } from 'static/icons/settings-template.svg';\r\nimport { checkPremium } from \"../../../utils/helpers\";\r\n\r\nconst select = {\r\n categories: null,\r\n filterValues: null,\r\n groups: null,\r\n properties: null,\r\n secondFilter: null,\r\n};\r\n\r\nconst initState = {\r\n categories: [],\r\n properties: [],\r\n group: [],\r\n};\r\n\r\nconst SidebarProject = () => {\r\n const dispatch = useDispatch();\r\n const { handleModal } = useContext(ModalContext);\r\n\r\n const [selectionState, setSelectionState] = useState(select);\r\n const [filterState, setFilterState] = useState(initState);\r\n const [isPremiumModalVisible, setPremiumModalVisible] = useState(false);\r\n const [isOpenInitialDropdown, setInitDropdownIsOpen] = useState(null);\r\n\r\n\r\n const {\r\n properties,\r\n selection,\r\n templates,\r\n template,\r\n commonCategories,\r\n uncommonCategories,\r\n commonProperties,\r\n uncommonProperties,\r\n commonGroupingOptions,\r\n uncommonGroupingOptions,\r\n templatesFolder\r\n } = useSelector((state) => state.viewer);\r\n\r\n const { subscreption } = useSelector((state) => state.user.info);\r\n\r\n const IS_PREMIUM = checkPremium(subscreption);\r\n\r\n const {\r\n setIsTableHidden,\r\n isModalLoaded,\r\n setIsModalLoaded,\r\n } = useDashboardState();\r\n\r\n //(Guy) ugly way to solve keeping the previous selection, should be changed\r\n if (selectionState.properties == null && properties != null) {\r\n selectionState.properties = [];\r\n var lists = document.getElementsByClassName(\"list_1\");\r\n if (lists != null && lists.length > 0) {\r\n var proplist = lists[lists.length - 1];\r\n if (proplist.children != null) {\r\n var checkboxes = proplist.children;\r\n for (var i = 0; i < checkboxes.length; i++) {\r\n if (properties.includes(checkboxes[i].outerText) && checkboxes[i].control.checked)\r\n selectionState.properties.push(checkboxes[i].outerText);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (selectionState.groups == null && properties != null) {\r\n selectionState.groups = [];\r\n var lists = document.getElementsByClassName(\"items-list\");\r\n if (lists != null && lists.length > 0) {\r\n var groupList = lists[0];\r\n if (groupList.children != null) {\r\n var groups = groupList.children;\r\n for (var i = 0; i < groups.length; i++) {\r\n if (properties.includes(groups[i].outerText))\r\n selectionState.groups.push(groups[i].outerText);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const dispatchFilters = (callback, type, ...data) => {\r\n\r\n dispatch(\r\n updateFilter(\r\n () => callback(...data),\r\n type\r\n )\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (selection) {\r\n setSelectionState(selection);\r\n } else {\r\n setSelectionState(select);\r\n }\r\n }, [selection]);\r\n\r\n useEffect(() => {\r\n if (isModalLoaded.status) {\r\n setIsModalLoaded({ status: false });\r\n\r\n handleClearOptions('categories');\r\n }\r\n }, [isModalLoaded])\r\n\r\n useEffect(() => {\r\n setFilterState((prevState) => {\r\n if (template) {\r\n return {\r\n ...prevState,\r\n categories: selectionState.categories ? selectionState.categories : [],\r\n properties: selectionState.properties ? selectionState.properties : [],\r\n group: selectionState.groups ? selectionState.groups : [],\r\n };\r\n } else {\r\n const newCategories = [...prevState.categories];\r\n\r\n selectionState?.categories?.forEach(item => {\r\n if (!newCategories.some(category => category === item)) {\r\n newCategories.push(item)\r\n }\r\n });\r\n\r\n return {\r\n ...prevState,\r\n categories: newCategories,\r\n };\r\n }\r\n });\r\n }, [\r\n selectionState?.categories,\r\n selectionState?.properties,\r\n selectionState?.groups,\r\n ]);\r\n\r\n const handleCloseModal = () => {\r\n handleModal(null, true);\r\n };\r\n\r\n const handleChangeTemplate = (template, folder) => {\r\n dispatch(setTemplateAction(template, folder))\r\n .then(() => {\r\n setIsTableHidden(false);\r\n });\r\n };\r\n\r\n const handleLoadSearchTemplate = () => {\r\n\r\n handleModal(\r\n \r\n );\r\n };\r\n const handleSaveTemplateModals = () => {\r\n\r\n handleModal(\r\n \r\n );\r\n };\r\n\r\n const handleChangeOptions = (option, optionsType) => {\r\n const currentOptions = [...filterState[optionsType]];\r\n const currentOptionIndex = currentOptions.findIndex(item => item === option);\r\n\r\n if (currentOptionIndex > -1) {\r\n currentOptions.splice(currentOptionIndex, 1);\r\n } else {\r\n currentOptions.push(option);\r\n }\r\n\r\n if (optionsType === 'categories') {\r\n dispatchFilters(updateCategory, \"CATEGORY\", currentOptions);\r\n\r\n if (!currentOptions.length) {\r\n setFilterState(initState);\r\n } else {\r\n setFilterState({\r\n ...filterState,\r\n [optionsType]: currentOptions,\r\n });\r\n }\r\n } else {\r\n setFilterState({\r\n ...filterState,\r\n [optionsType]: currentOptions,\r\n });\r\n }\r\n };\r\n\r\n const handleClearOptions = (optionsType) => {\r\n if (filterState?.[optionsType]?.length) {\r\n if (optionsType === 'categories') {\r\n dispatchFilters(updateCategory, \"CATEGORY\", []);\r\n setFilterState(initState);\r\n } else {\r\n setFilterState({\r\n ...filterState,\r\n [optionsType]: [],\r\n });\r\n }\r\n }\r\n };\r\n\r\n const handleCreateReport = async () => {\r\n dispatch(addSelectItems({selectItems: {}, id: 1}));\r\n await dispatch(updateTable(filterState.properties, filterState.group));\r\n\r\n setIsTableHidden(false);\r\n };\r\n\r\n const handleClosePremiumModal = () => {\r\n setPremiumModalVisible(false);\r\n };\r\n\r\n const handleOpenPremiumModal = () => {\r\n handleCloseModal();\r\n setPremiumModalVisible(true);\r\n };\r\n\r\n const scroll = () => {\r\n setInitDropdownIsOpen(!isOpenInitialDropdown);\r\n }\r\n\r\n const handleRemoveTag = (option, settingParameter) => {\r\n const currentOptions = [...filterState[settingParameter]];\r\n const currentOptionIndex = currentOptions.findIndex(item => item === option);\r\n\r\n if (currentOptionIndex > -1) {\r\n currentOptions.splice(currentOptionIndex, 1);\r\n }\r\n\r\n if(settingParameter === \"categories\") {\r\n dispatchFilters(updateCategory, \"CATEGORY\", currentOptions);\r\n\r\n if (currentOptions.length) {\r\n setFilterState({\r\n ...filterState,\r\n categories: currentOptions,\r\n });\r\n } else {\r\n setFilterState({\r\n ...filterState,\r\n categories: [],\r\n properties: [],\r\n group: [],\r\n });\r\n }\r\n } else {\r\n setFilterState({\r\n ...filterState,\r\n [settingParameter]: currentOptions,\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n\r\n
\r\n
Search
\r\n }\r\n onClick={handleLoadSearchTemplate}\r\n />\r\n\r\n

\r\n Search Settings\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n {\r\n filterState?.categories?.map(option => {\r\n\r\n return (\r\n handleRemoveTag(option, \"categories\")}\r\n />\r\n );\r\n })\r\n }\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n {\r\n filterState?.properties?.map(option => {\r\n\r\n return (\r\n handleRemoveTag(option, \"properties\")}\r\n />\r\n );\r\n })\r\n }\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n {\r\n filterState?.group?.map(option => {\r\n\r\n return (\r\n handleRemoveTag(option, \"group\")}\r\n />\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n Premium version allows you to save templates endlessly, save elements as you wish, and much more.

\r\n
\r\n

Take a look at our site to best understand what the premium upgrade has to offer!

\"\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SidebarProject;\r\n","import React, {useEffect, useState, useRef, useContext} from 'react';\r\n\r\nimport \"./OptionMenuCollection.scss\";\r\nimport SaveCollectionModal from \"../modals/SaveCollectionModal\";\r\nimport {ModalContext} from \"../ModalContext\";\r\nimport ProofModal from \"../modals/ProofModal\";\r\nimport {\r\n collectionDelete,\r\n assignToCollection,\r\n copyToCollectionUnsaved,\r\n unassignFromCollection\r\n} from \"../../store/actions/collections\";\r\nimport {useDispatch, useSelector} from \"react-redux\";\r\nimport {useDashboardState} from \"../DashboardContext\";\r\nimport {showToast} from \"../../utils/helpers\";\r\nimport {getSelection} from \"../../utils/builder/IScheduleLogic\";\r\nimport {tabType} from \"../../utils/data\";\r\n\r\nconst OptionMenuCollection = ({\r\n isOpenMenuCollection,\r\n closeOptionMenu,\r\n menuCollectionButtonPosition,\r\n infoAboutCollection,\r\n }) => {\r\n\r\n const { handleModal } = useContext(ModalContext);\r\n\r\n const { tabs } = useSelector((state) => state.table);\r\n\r\n const { setIsTableHidden } = useDashboardState();\r\n\r\n const optionMenu = useRef();\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [menuCollectionPosition, setMenuCollectionPosition] = useState(null);\r\n const [isAssignSelectionButton, setAssignSelectionButton] = useState(null);\r\n\r\n useEffect(async () => {\r\n const optionMenuClientRect = optionMenu.current?.getBoundingClientRect();\r\n const heightWindow = document.body.scrollHeight;\r\n\r\n const clientX = menuCollectionButtonPosition?.right + 10;\r\n let clientY = menuCollectionButtonPosition?.top - 20;\r\n\r\n if(heightWindow - menuCollectionButtonPosition?.y < optionMenuClientRect?.height) {\r\n clientY = clientY - optionMenuClientRect.height + 60;\r\n }\r\n\r\n setMenuCollectionPosition({clientX, clientY});\r\n\r\n const selectionElementsOnViewer = await getSelection();\r\n setAssignSelectionButton(!!selectionElementsOnViewer.length)\r\n\r\n }, [isOpenMenuCollection]);\r\n\r\n useEffect(() => {\r\n\r\n const checkElement = (event) => {\r\n const currentElement = event.target;\r\n const optionMenuElement = optionMenu.current;\r\n\r\n if(!optionMenuElement?.contains(currentElement)) {\r\n closeOptionMenu();\r\n }\r\n }\r\n\r\n document.addEventListener('click', (event) => checkElement(event));\r\n\r\n return(\r\n document.removeEventListener('click', (event) => checkElement(event))\r\n )\r\n }, [isOpenMenuCollection]);\r\n\r\n const handleCancel = () => {\r\n handleModal(null, true);\r\n };\r\n\r\n const openEditCollection = () => {\r\n handleModal(\r\n \r\n );\r\n closeOptionMenu();\r\n }\r\n\r\n const deleteCollection = async () => {\r\n\r\n try {\r\n await dispatch(collectionDelete({tabs, title: infoAboutCollection.title, folder: infoAboutCollection.folder, id: infoAboutCollection.collection.creationTime}));\r\n showToast(true,\"Selection set was deleted\");\r\n } catch (error) {\r\n showToast(false, error);\r\n }\r\n\r\n handleCancel();\r\n }\r\n\r\n const openProofModal = () => {\r\n handleModal(\r\n \r\n
You want to delete “{infoAboutCollection.title}” collection?
\r\n
\r\n );\r\n closeOptionMenu();\r\n }\r\n\r\n const assignElements = () => {\r\n try {\r\n dispatch(assignToCollection({title: infoAboutCollection.title, folder: infoAboutCollection.folder, id: infoAboutCollection.collection.creationTime}));\r\n showToast(true,`Assigned to ${infoAboutCollection.title}`);\r\n } catch (error) {\r\n showToast(false, \"Something went wrong\");\r\n }\r\n closeOptionMenu();\r\n }\r\n\r\n const unassignElements = () => {\r\n dispatch(unassignFromCollection({...infoAboutCollection, type: tabType.saved, name: infoAboutCollection.title, id: infoAboutCollection.collection.creationTime}));\r\n closeOptionMenu();\r\n }\r\n\r\n return (\r\n
\r\n {\r\n isOpenMenuCollection &&\r\n
\r\n
Edit
\r\n {\r\n isAssignSelectionButton &&\r\n <>\r\n
Assign selection
\r\n
Unassign selection
\r\n \r\n }\r\n
Delete
\r\n
\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default OptionMenuCollection;","import React, { useEffect, useRef, useState} from 'react';\r\nimport { FormattedDate } from 'react-intl';\r\n\r\nimport \"./QuickStatsCollections.scss\";\r\nimport {roundUp} from \"../../utils/helpers\";\r\n\r\nconst QuickStatsCollections = ({quickInfo, isOpenQuickStats, closeQuickStats, quickStatsButtonPosition}) => {\r\n\r\n const quickStatsCollections = useRef();\r\n\r\n const [quickStatsPosition, setQuickStatsPosition] = useState(null);\r\n\r\n useEffect(() => {\r\n const quickStatsCollectionsClientRect = quickStatsCollections.current?.getBoundingClientRect();\r\n const heightWindow = document.body.scrollHeight;\r\n\r\n const clientX = quickStatsButtonPosition?.right + 10;\r\n let clientY = quickStatsButtonPosition?.top - 20;\r\n\r\n if(heightWindow - quickStatsButtonPosition?.y < quickStatsCollectionsClientRect?.height) {\r\n clientY = clientY - quickStatsCollectionsClientRect.height + 60;\r\n }\r\n\r\n setQuickStatsPosition({clientX, clientY});\r\n\r\n }, [isOpenQuickStats]);\r\n\r\n useEffect(() => {\r\n\r\n const checkElement = (event) => {\r\n const currentElement = event.target;\r\n const quickStatsElement = quickStatsCollections.current;\r\n\r\n if(!quickStatsElement?.contains(currentElement)) {\r\n closeQuickStats();\r\n }\r\n }\r\n\r\n document.addEventListener('click', (event) => checkElement(event));\r\n\r\n return(\r\n document.removeEventListener('click', (event) => checkElement(event))\r\n )\r\n }, []);\r\n\r\n const {creationTime, descreption: description, parameters, quickData} = quickInfo;\r\n\r\n return (\r\n
\r\n {\r\n isOpenQuickStats &&\r\n
\r\n
\r\n
Created
\r\n \r\n
\r\n
\r\n {\r\n quickData.map((el) => {\r\n return(\r\n
\r\n {`${el.name}: `}\r\n {`${roundUp(el.value)} ${el.unit ? el.unit: \"\"}`}\r\n
\r\n )\r\n })\r\n }\r\n
\r\n {\r\n !!parameters.length &&\r\n
\r\n
Parameters
\r\n
\r\n {\r\n parameters.map((parameter, index) => {\r\n if(parameters.length - 1 === index) {\r\n return parameter\r\n } else {\r\n return parameter + \", \"\r\n }\r\n })\r\n }\r\n
\r\n
\r\n }\r\n {\r\n description &&\r\n
\r\n
Description
\r\n
{description}
\r\n
\r\n }\r\n
\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default QuickStatsCollections;","import React, {useEffect, useState} from 'react';\r\n\r\nimport \"./SidebarCollections.scss\";\r\nimport DropDownFolder from \"../../uiComponents/DropDownFolder\";\r\nimport OptionMenuCollection from \"../../OptionMenuCollection\";\r\nimport QuickStatsCollections from \"../../QuickStatsCollections\";\r\nimport {getCollectionInfo, getCollectionsForFolder, unColorCollection} from \"../../../utils/builder/IScheduleLogic\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n addActiveFolder,\r\n collectionsSave,\r\n selectCollectionOnView,\r\n unselectCollectionOnView,\r\n setUpModeCompare,\r\n сhangeCollectionCheckbox\r\n} from \"../../../store/actions/collections\";\r\nimport {CSSTransition} from \"react-transition-group\";\r\nimport UniversalLoader from \"../../uiComponents/UniversalLoader\";\r\nimport {ReactComponent as InfoImg} from \"../../../static/icons/info-gray.svg\";\r\nimport {ReactComponent as OptionImg} from \"../../../static/icons/options.svg\";\r\nimport {useDashboardState} from \"../../DashboardContext\";\r\nimport {ElementsAction, getTableCollection} from \"../../../store/actions/table\";\r\nimport UniversalCheckbox from \"../../uiComponents/UniversalCheckbox\";\r\nimport {onSelectionChange, setQuickInfoCompare} from \"../../../store/actions/filter\";\r\n\r\nconst SidebarCollections = () => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { setIsTableHidden } = useDashboardState();\r\n\r\n const defaultFolder = \"My selection sets\";\r\n const { collectionsFolders, collections, compare, quickInfoCompare } = useSelector((state) => state.viewer);\r\n const { tabs } = useSelector((state) => state.table);\r\n\r\n const [isOpenQuickStats, setOpenQuickStats] = useState(false);\r\n const [quickInfo, setQuickInfo] = useState(false);\r\n const [quickStatsButtonPosition, setQuickStatsButtonPosition] = useState(null);\r\n const [isOpenMenuCollection, setOpenMenuCollection] = useState(false);\r\n const [menuCollectionButtonPosition, setMenuCollectionButtonPosition] = useState(null);\r\n const [infoAboutCollection, setInfoAboutCollection] = useState(null);\r\n const [activeFolder, setActiveFolder] = useState(null);\r\n const [activeCollection, setActiveCollection] = useState(null);\r\n\r\n useEffect(() => {\r\n getCollections(defaultFolder);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if(!tabs.length) {\r\n setActiveCollection(null);\r\n }\r\n tabs.forEach((tab) => {\r\n if(tab?.active) {\r\n setActiveCollection(tab.collection);\r\n }\r\n })\r\n });\r\n\r\n useEffect(() => {\r\n return () => {\r\n turnOffModeCompare();\r\n }\r\n }, []);\r\n\r\n const getCollections = (folderName) => {\r\n getCollectionsForFolder(folderName).then((collections) => {\r\n\r\n let newCollections = collections;\r\n\r\n if(compare.isModeCompare) {\r\n newCollections = collections.map((collection) => {\r\n\r\n let checked = false;\r\n\r\n !!compare.collections[folderName] && compare.collections[folderName].forEach((collectionCompare) => {\r\n if (collection.creationTime === collectionCompare.creationTime) {\r\n checked = collectionCompare.checked;\r\n }\r\n })\r\n\r\n return {...collection, checked}\r\n })\r\n }\r\n\r\n dispatch(collectionsSave(newCollections));\r\n setActiveFolder(folderName);\r\n dispatch(addActiveFolder(folderName));\r\n });\r\n }\r\n\r\n const openQuickStats = (event, collection) => {\r\n event.stopPropagation();\r\n closeOptionMenu();\r\n\r\n const quickStatsButtonClientRect = event.target.getBoundingClientRect();\r\n setQuickStatsButtonPosition(quickStatsButtonClientRect);\r\n\r\n getCollectionInfo(collection)\r\n .then((info) => {\r\n setQuickInfo(info);\r\n if(collection.title === isOpenQuickStats) {\r\n closeQuickStats();\r\n } else {\r\n setOpenQuickStats(collection.title);\r\n }\r\n });\r\n }\r\n\r\n const closeQuickStats = () => {\r\n setOpenQuickStats(false);\r\n }\r\n\r\n const openMenuCollection = (event, collection) => {\r\n event.stopPropagation();\r\n closeQuickStats();\r\n\r\n const MenuCollectionButtonClientRect = event.target.getBoundingClientRect();\r\n setMenuCollectionButtonPosition(MenuCollectionButtonClientRect);\r\n\r\n if(collection.title === isOpenMenuCollection) {\r\n closeOptionMenu()\r\n } else {\r\n setOpenMenuCollection(collection.title);\r\n }\r\n\r\n setInfoAboutCollection({title: collection.title, description: collection.descreption, folder: activeFolder, color: collection.color, collection: collection})\r\n }\r\n\r\n const closeOptionMenu = () => {\r\n setOpenMenuCollection(false);\r\n }\r\n\r\n const isScroll = () => {\r\n closeQuickStats();\r\n closeOptionMenu();\r\n }\r\n\r\n const handleCollection = (collection) => {\r\n setActiveCollection(collection);\r\n unselectCollectionOnView();\r\n selectCollectionOnView([collection]);\r\n viewCollection(collection);\r\n }\r\n\r\n const viewCollection = (collection) => {\r\n dispatch(getTableCollection({collection, folder: activeFolder}));\r\n setIsTableHidden(false);\r\n }\r\n\r\n const turnOnModeCompare = () => {\r\n unselectCollectionOnView();\r\n dispatch(setUpModeCompare(true));\r\n dispatch(ElementsAction(null));\r\n setIsTableHidden(true);\r\n }\r\n\r\n const turnOffModeCompare = () => {\r\n unselectCollectionOnView();\r\n dispatch(setUpModeCompare(false));\r\n dispatch(setQuickInfoCompare(null));\r\n if(activeCollection) {\r\n selectCollectionOnView([activeCollection]);\r\n setIsTableHidden(false);\r\n }\r\n }\r\n\r\n const handleChangeCheckbox = (collection) => {\r\n\r\n const isChecked = !!collection?.checked;\r\n\r\n dispatch(сhangeCollectionCheckbox({collection, collections, activeFolder, isChecked, quickInfoCompare}));\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n Selection sets\r\n {\r\n compare.isModeCompare ?\r\n Close compare :\r\n Compare\r\n }\r\n
\r\n \r\n {\r\n collections &&\r\n
\r\n {\r\n collections.map((collection, index) => {\r\n return (\r\n
compare.isModeCompare ? handleChangeCheckbox(collection) : handleCollection(collection)}>\r\n
\r\n {\r\n compare.isModeCompare &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n
{collection.title}
\r\n
\r\n
\r\n openQuickStats(event, collection)} />\r\n {\r\n !compare.isModeCompare &&\r\n openMenuCollection(event, collection)}/>\r\n }\r\n
\r\n
\r\n )\r\n })\r\n }\r\n
\r\n }\r\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 SidebarCollections;","import React, {useState} from \"react\";\r\nimport {useSelector} from \"react-redux\";\r\nimport classNames from \"classnames\";\r\nimport \"./SidebarModule.scss\";\r\n\r\nimport { ReactComponent as CloseIcon } from 'static/icons/close-small.svg';\r\nimport { ReactComponent as Collection } from 'static/icons/collection.svg';\r\nimport { ReactComponent as Templates } from 'static/icons/templates.svg';\r\nimport { ReactComponent as Crown } from 'static/icons/crown.svg';\r\n\r\nimport SidebarProject from \"../SidebarProject\";\r\nimport { checkPremium } from \"utils/helpers\";\r\nimport ModalComponent from \"../../modals/ModalComponent\";\r\nimport GoToPremiumModal from \"../../modals/GoToPremiumModal\";\r\nimport SidebarCollections from \"../SidebarCollections\";\r\n\r\nconst SidebarModule = ({\r\n isOpened,\r\n onChangeSidebar\r\n}) => {\r\n\r\n const { subscreption } = useSelector((state) => state.user.info);\r\n\r\n const [moduleContent, setModuleContent] = useState(\"template\");\r\n const [isPremiumModalVisible, setPremiumModalVisible] = useState(false);\r\n\r\n const IS_PREMIUM = checkPremium(subscreption);\r\n\r\n const handleCloseClick = () => {\r\n onChangeSidebar?.(false);\r\n };\r\n\r\n const handleOpenClick = () => {\r\n if (!isOpened) {\r\n onChangeSidebar?.(true);\r\n }\r\n };\r\n\r\n const setActiveClass = (icon) => {\r\n return moduleContent === icon && isOpened ? \"_active\" : \"\";\r\n }\r\n\r\n const handleClosePremiumModal = () => {\r\n setPremiumModalVisible(false);\r\n };\r\n\r\n const handleOpenPremiumModal = (e) => {\r\n if(!IS_PREMIUM) {\r\n e.stopPropagation();\r\n setPremiumModalVisible(true);\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 moduleContent === \"template\" ?\r\n :\r\n \r\n }\r\n
\r\n \r\n \r\n
\r\n setModuleContent(\"template\")} />\r\n
\r\n
handleOpenPremiumModal(e)}>\r\n setModuleContent(\"collection\")} />\r\n {\r\n !IS_PREMIUM &&
\r\n }\r\n
\r\n \r\n \r\n Premium version allows you to save templates endlessly, save elements as you wish, and much more.

\r\n
\r\n

Take a look at our site to best understand what the premium upgrade has to offer!

\"\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SidebarModule;","import React, {useState, memo, useEffect, useRef, useContext} from \"react\";\r\nimport {useDispatch, useSelector} from \"react-redux\";\r\nimport {resizeViewer} from \"utils/builder/IScheduleLogic\";\r\nimport { Toaster } from 'react-hot-toast';\r\nimport { CSSTransition } from \"react-transition-group\";\r\nimport \"./DashboardProj.scss\";\r\nimport { ReactComponent as Control} from \"static/icons/double-right.svg\";\r\n\r\nimport DashboardInfoTable from \"components/DashboardInfoTable\";\r\nimport EditorSection from \"components/EditorSection\";\r\nimport SidebarModule from \"components/sidebarComponents/SidebarModule\";\r\nimport UniversalLoader from \"components/uiComponents/UniversalLoader\";\r\nimport {getFoldersCollections, selectCollectionOnView, unselectCollectionOnView} from \"../../store/actions/collections\";\r\nimport {setTabActive, closeTab, ElementsAction} from \"../../store/actions/table\";\r\nimport {ReactComponent as CloseIcon} from \"../../static/icons/close-small.svg\";\r\nimport {useDashboardState} from \"../../components/DashboardContext\";\r\nimport {ModalContext} from \"../../components/ModalContext\";\r\nimport ProofModal from \"../../components/modals/ProofModal\";\r\nimport {tabType} from \"../../utils/data\";\r\n\r\nconst DashboardProj = ({\r\n location,\r\n}) => {\r\n\r\n const dispatch = useDispatch();\r\n const tabs = useRef();\r\n const tabsWrapper = useRef();\r\n const scrollStep = 200;\r\n const { handleModal } = useContext(ModalContext);\r\n\r\n const {\r\n table,\r\n viewer: {\r\n quickCounterData,\r\n templates\r\n },\r\n } = useSelector((state) => state);\r\n const { setIsTableHidden } = useDashboardState();\r\n\r\n const [sidebarIsOpened, setSidebarIsOpened] = useState(true);\r\n const [activeTab, setActiveTab] = useState(null);\r\n const [activeLeftControl, setActiveLeftControl] = useState(false);\r\n const [activeRightControl, setActiveRightControl] = useState(false);\r\n\r\n useEffect(() => {\r\n const tabsEl = tabs.current;\r\n const tabsWrapperEl = tabsWrapper.current;\r\n\r\n if(tabsEl.scrollWidth > tabsWrapperEl.scrollWidth &&\r\n tabsEl.scrollWidth - tabsEl.scrollLeft !== tabsEl.clientWidth) {\r\n setActiveRightControl(true);\r\n } else {\r\n setActiveRightControl(false);\r\n }\r\n if(tabsEl.scrollLeft > 0) {\r\n setActiveLeftControl(true);\r\n } else {\r\n setActiveLeftControl(false);\r\n }\r\n }, [table.tabs.length])\r\n\r\n useEffect(() => {\r\n dispatch(getFoldersCollections());\r\n\r\n table?.tabs.forEach((tab) => {\r\n if(tab?.active) {\r\n setActiveTab(tab);\r\n \r\n }\r\n })\r\n\r\n if(!table.tabs.length) {\r\n setIsTableHidden(true);\r\n dispatch(ElementsAction(null));\r\n }\r\n }, [table, table?.active]);\r\n\r\n const handleChangeSidebar = status => {\r\n setSidebarIsOpened(status);\r\n\r\n setTimeout(() => {\r\n resizeViewer();\r\n }, 310);\r\n };\r\n\r\n const handleActiveTab = (tab) => {\r\n if(!tab.active) {\r\n dispatch(setTabActive(tab));\r\n unselectCollectionOnView();\r\n\r\n if(tab.type === tabType.saved) {\r\n selectCollectionOnView([tab.collection]);\r\n }\r\n }\r\n };\r\n\r\n const handleCloseTab = (event, tab) => {\r\n if(tab.type === tabType.unsaved) {\r\n handleModal(\r\n closeDownTab(event, tab)} cancelButtonText={\"Back to editing\"} proofButtonText={\"Close tab\"}>\r\n
You want to close “{tab.name} - unsaved” without saving. All your changes will be discarded.
\r\n
\r\n );\r\n } else {\r\n closeDownTab(event, tab);\r\n }\r\n };\r\n\r\n const closeDownTab = (event, tab) => {\r\n event.stopPropagation();\r\n dispatch(closeTab(tab));\r\n unselectCollectionOnView();\r\n if(tab.type === tabType.unsaved) {\r\n handleCancel();\r\n }\r\n };\r\n\r\n const handleCancel = () => {\r\n handleModal(null, true);\r\n };\r\n\r\n const nextTab = () => {\r\n const tabsEl = tabs.current;\r\n\r\n tabsEl.scroll(tabsEl.scrollLeft + scrollStep, 0);\r\n\r\n if(tabsEl.scrollWidth - tabsEl.scrollLeft === tabsEl.clientWidth) {\r\n setActiveRightControl(false);\r\n }\r\n if(tabsEl.scrollLeft !== 0) {\r\n setActiveLeftControl(true);\r\n }\r\n };\r\n\r\n const prevTab = () => {\r\n const tabsEl = tabs.current;\r\n\r\n tabsEl.scroll(tabsEl.scrollLeft - scrollStep, 0);\r\n\r\n if(tabsEl.scrollLeft === 0) {\r\n setActiveLeftControl(false);\r\n }\r\n if(tabsEl.scrollWidth - tabsEl.scrollLeft !== tabsEl.clientWidth) {\r\n setActiveRightControl(true);\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 activeLeftControl &&\r\n
\r\n }\r\n
\r\n {\r\n table.tabs.map((tab) => {\r\n\r\n return (\r\n
handleActiveTab(tab)}>\r\n {\r\n tab.type === tabType.saved &&\r\n \r\n }\r\n {tab.name}\r\n {\r\n tab.type === tabType.unsaved &&\r\n  - unsaved\r\n }\r\n handleCloseTab(event, tab)}/>\r\n
\r\n )\r\n })\r\n }\r\n
\r\n {\r\n activeRightControl &&\r\n
\r\n }\r\n
\r\n {activeTab && }\r\n
\r\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 memo(DashboardProj);\r\n","import React from \"react\";\r\nimport { Route } from \"react-router\";\r\nimport { Switch } from \"react-router-dom\";\r\n\r\nimport DashboardEmpty from \"screens/DashboardEmpty\";\r\nimport DashboardProj from \"screens/DashboardProj\";\r\n\r\nconst Dashboard = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Dashboard;\r\n","export default __webpack_public_path__ + \"static/media/bim.c226e97c.mp4\";","import React, { useEffect } from \"react\";\r\nimport video from \"../../static/video/bim.mp4\";\r\nimport { getNextLevel } from \"../../utils/builder/IModelsTree\";\r\nimport \"./loadingScreen.scss\";\r\nimport { treeAdd } from \"../../utils/helpers\";\r\nimport { logError } from \"../../utils/builder/IAmecLog\";\r\n\r\n\r\nconst LoadingScreen = ({ setLoader, afterFunction = () => { } }) => {\r\n useEffect(() => {\r\n let i = 0;\r\n let endTime = 60;\r\n const interval = setInterval(() => {\r\n i = i + 1;\r\n if (i >= endTime) {\r\n afterFunction();\r\n return setLoader((prevState) => ({\r\n ...prevState,\r\n signinState: 2,\r\n }));\r\n }\r\n if (endTime == 60) {\r\n getNextLevel(\"#\")\r\n .then((res) => {\r\n if (res.length > 0)\r\n endTime = i + 10;\r\n })\r\n .catch((err) => {\r\n logError(\"FrontEnd.src.screens.LoadingScreen.index.LoadingScreen.useEffect.setInterval\", err.toString());\r\n afterFunction();\r\n setLoader((prevState) => ({\r\n ...prevState,\r\n signinState: 2,\r\n }));\r\n });\r\n }\r\n }, 1000);\r\n return () => clearInterval(interval);\r\n }, []);\r\n return (\r\n
\r\n
\r\n

Performing first time setup

\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LoadingScreen;\r\n","export default __webpack_public_path__ + \"static/media/bim_logo.7fe0e591.svg\";","import \"./Entry.scss\";\r\nimport bimLogo from \"static/images/bim_logo.svg\";\r\n\r\nconst EntryWrap = ({ children }) => {\r\n return (\r\n
\r\n
\r\n
\r\n {children}\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n

\r\n Nearly there!\r\n

\r\n\r\n

\r\n Just a few more steps and you’ll have your project at your fingertips\r\n

\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default EntryWrap;\r\n","import classNames from \"classnames\";\r\nimport React, { memo } from \"react\";\r\n\r\nconst Input = memo(\r\n ({\r\n label,\r\n id,\r\n name,\r\n type,\r\n placeholder,\r\n onChange,\r\n value,\r\n isCommonStyle = false,\r\n }) => {\r\n return (\r\n \r\n \r\n {label}\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n);\r\n\r\nexport default Input;\r\n","import * as Yup from \"yup\";\r\n\r\nconst nameValid = (value) => /^[a-z ,.'-]+$/i.test(value);\r\nconst phoneRegExp =\r\n /^(\\+?\\d{0,4})?\\s?-?\\s?(\\(?\\d{3}\\)?)\\s?-?\\s?(\\(?\\d{3}\\)?)\\s?-?\\s?(\\(?\\d{4}\\)?)?$/;\r\n\r\nconst SchemaConfig = {\r\n name: Yup.string()\r\n .required(\"Required\")\r\n .test(\"Name format\", \"Name format is not valid\", nameValid),\r\n email: Yup.string().required(\"Required\").email(\"Wrong email format\"),\r\n phone: Yup.string()\r\n .required(\"Required\")\r\n .matches(phoneRegExp, \"Phone number is not valid\"),\r\n role: Yup.string().required(\"Required\"),\r\n};\r\n\r\nconst ValidationRules = (initValues) => {\r\n const filtered = Object.keys(SchemaConfig)\r\n .filter((key) => Object.keys(initValues).includes(key))\r\n .reduce((obj, key) => {\r\n obj[key] = SchemaConfig[key];\r\n return obj;\r\n }, {});\r\n return Yup.object().shape(filtered);\r\n};\r\nexport default ValidationRules;\r\n","import React from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport Input from \"../Input\";\r\nimport Button from \"../Button\";\r\nimport validationRules from \"../../../utils/validationRules\";\r\n\r\nconst Form = ({\r\n fields,\r\n initValues,\r\n submitValue,\r\n submitFunc,\r\n children,\r\n agreement = true,\r\n}) => {\r\n const formik = useFormik({\r\n initialValues: initValues,\r\n validationSchema: validationRules(initValues),\r\n onSubmit: (values) => {\r\n submitFunc(values);\r\n },\r\n enableReinitialize: true,\r\n });\r\n const handleChanges = (val) => {\r\n formik.handleChange(val);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {fields.map((el) => (\r\n
\r\n \r\n {formik.touched[el.name] && formik.errors[el.name] ? (\r\n
\r\n {formik.errors[el.name]}\r\n
\r\n ) : null}\r\n
\r\n ))}\r\n
\r\n {children}\r\n \r\n
\r\n );\r\n};\r\nexport default Form;\r\n","import React, { useState } from \"react\";\r\nimport { fields } from \"../../../utils/data\";\r\nimport Form from \"../../uiComponents/Form\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { updateUser } from \"../../../store/actions/user\";\r\n\r\nconst initialValues = {\r\n name: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n company: \"\",\r\n role: \"\",\r\n};\r\n\r\nconst SignUp = ({ setLoader }) => {\r\n const [agree, setAgree] = useState(false);\r\n const dispatch = useDispatch();\r\n const handleSubmit = (values) => {\r\n dispatch(updateUser(values, setLoader));\r\n };\r\n const agreement = () => {\r\n setAgree((prevState) => !prevState);\r\n };\r\n return (\r\n
\r\n

Create account

\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SignUp;\r\n","import React from \"react\";\r\nimport EntryWrap from \"../../components/entryComponents/EntryWrap\";\r\nimport SignUpContent from \"../../components/entryComponents/SignUp\";\r\n\r\nconst SignUp = ({ setLoader }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SignUp;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Route } from \"react-router-dom\";\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport Dashboard from \"../../routes/Dashboard\";\r\nimport LoadingScreen from \"../LoadingScreen\";\r\nimport SignUp from \"../SignUp\";\r\n\r\nconst WithUser = () => {\r\n var { newUser } = useSelector((state) => state.user.info);\r\n\r\n const {\r\n setSigningState,\r\n } = useDashboardState();\r\n // signinState: 0 - initial state, 1 - after new user form, 2 - after animation\r\n const [{ signinState }, setLoader] = useState({\r\n signinState: 0,\r\n });\r\n\r\n useEffect(() => {\r\n if (signinState === 2) {\r\n setSigningState(2);\r\n }\r\n }, [signinState]);\r\n\r\n return (\r\n <>\r\n {signinState == 0 && newUser && (\r\n } />\r\n )}\r\n\r\n {signinState == 1 &&\r\n \r\n }\r\n\r\n {(signinState == 0 && !newUser || signinState == 2) && \r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default WithUser;\r\n","import React, { useContext } from \"react\";\r\nimport Button from \"../../uiComponents/Button\";\r\nimport { ModalContext } from \"../../ModalContext\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { deleteUser } from \"../../../store/actions/user\";\r\nconst DeleteProfModal = () => {\r\n const { handleModal } = useContext(ModalContext);\r\n const dispatch = useDispatch();\r\n const handleClick = () => {\r\n dispatch(deleteUser());\r\n handleModal();\r\n };\r\n return (\r\n
\r\n

\r\n Are you sure you want to delete your profile?\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default DeleteProfModal;\r\n","export default __webpack_public_path__ + \"static/media/done.9651576c.svg\";","export default __webpack_public_path__ + \"static/media/error.321768c2.svg\";","import React, { useContext, useEffect } from \"react\";\r\nimport { ModalContext } from \"../../ModalContext\";\r\nimport doneIcon from \"../../../static/icons/done.svg\";\r\nimport errorIcon from \"../../../static/icons/error.svg\";\r\nimport \"./response.scss\";\r\nconst ResponseModal = ({ text, positive }) => {\r\n const { handleModal } = useContext(ModalContext);\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n handleModal();\r\n }, 1500);\r\n return () => {\r\n clearTimeout(timer);\r\n };\r\n }, []);\r\n return (\r\n
\r\n \"\"\r\n

{text}

\r\n
\r\n );\r\n};\r\n\r\nexport default ResponseModal;\r\n","import React, { useContext } from \"react\";\r\nimport \"./Settings.scss\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useHistory } from \"react-router\";\r\nimport { updateUser } from \"../../store/actions/user\";\r\nimport Form from \"../../components/uiComponents/Form\";\r\nimport { fields } from \"../../utils/data\";\r\nimport Button from \"../../components/uiComponents/Button\";\r\nimport { ModalContext } from \"../../components/ModalContext\";\r\nimport DeleteProfModal from \"../../components/modals/DeleteProfModal\";\r\nimport ResponseModal from \"../../components/modals/ResponseModal\";\r\n\r\nconst Settings = () => {\r\n const { handleModal } = useContext(ModalContext);\r\n const dispatch = useDispatch();\r\n const {\r\n info: { picture, name, email, phone, company, role },\r\n } = useSelector((state) => state.user);\r\n const { goBack } = useHistory();\r\n\r\n const handleDelete = () => {\r\n handleModal();\r\n };\r\n const handleSubmit = (values) => {\r\n dispatch(updateUser(values)).then(() => {\r\n handleModal(\r\n \r\n );\r\n });\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {\r\n goBack();\r\n }}\r\n >\r\n \r\n Back/Settings\r\n \r\n
\r\n

Personal Information

\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n

Delete Profile

\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Settings;\r\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgQuestionCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.4\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",\n stroke: \"#202329\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.09009 9C9.32519 8.33167 9.78924 7.76811 10.4 7.40913C11.0108 7.05016 11.729 6.91894 12.4273 7.03871C13.1255 7.15849 13.7589 7.52153 14.2152 8.06353C14.6714 8.60553 14.9211 9.29152 14.9201 10C14.9201 12 11.9201 13 11.9201 13\",\n stroke: \"#202329\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 17H12.01\",\n stroke: \"#202329\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgQuestionCircle);\nexport default __webpack_public_path__ + \"static/media/question-circle.2b3a0b4c.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useContext, useRef, useState } from \"react\";\r\nimport { ReactComponent as QuestionIcon } from \"../../../static/icons/question-circle.svg\";\r\nimport { ReactComponent as Triangle } from \"../../../static/icons/triangle.svg\";\r\nimport \"./DropDownSupport.scss\";\r\nimport { ModalContext } from \"../../ModalContext\";\r\nimport SupportModal from \"../../modals/SupportModal\";\r\nimport { useOnClickOutside } from \"../../../utils/helpers\";\r\n\r\nconst SupportDropDown = () => {\r\n const [toggleDropDown, setToggleDropDown] = useState(false);\r\n const { handleModal } = useContext(ModalContext);\r\n const ref = useRef();\r\n\r\n const handleContactSupportClick = () => {\r\n handleModal();\r\n };\r\n const handleToggleDropDown = () => {\r\n setToggleDropDown(prevState => !prevState);\r\n };\r\n useOnClickOutside(ref, () => {\r\n setToggleDropDown(false);\r\n });\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Help center\r\n Contact support\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SupportDropDown;\r\n","import React, { memo, useContext, useEffect, useMemo, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { ModalContext } from \"components/ModalContext\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport { checkPremium, getFoldersBreadcrumbs } from \"utils/helpers\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport \"./Header.scss\";\r\n\r\nimport LogoutModal from \"components/modals/LogoutModal\";\r\nimport BreabcrumbsItem from 'components/uiComponents/BreabcrumbsItem';\r\n\r\nimport bimLogoBlack from \"static/images/bim_logo_black.png\";\r\nimport { ReactComponent as HomeIcon } from 'static/icons/home.svg';\r\nimport SupportDropDown from \"../uiComponents/DropDownSupport\";\r\n\r\nconst Header = memo(() => {\r\n const {\r\n foldersTree,\r\n activeFolder,\r\n activeProject,\r\n setActiveFolder,\r\n setActiveProject,\r\n setIsTableHidden,\r\n } = useDashboardState();\r\n const history = useHistory();\r\n\r\n const [breadcrumbsData, setBreadcrumbsData] = useState({\r\n activeProject: null,\r\n foldersTree: null,\r\n activeFolder: null\r\n });\r\n\r\n useEffect(() => {\r\n const breadcrumbsData = {\r\n activeProject: activeProject,\r\n foldersTree: foldersTree,\r\n activeFolder: activeFolder\r\n };\r\n if((activeFolder === \"recent\" && !activeProject?.text) || history?.location?.pathname === \"/\") {\r\n localStorage.removeItem(\"breadcrumbsData\")\r\n } else {\r\n localStorage.setItem(\"breadcrumbsData\", JSON.stringify(breadcrumbsData));\r\n setBreadcrumbsData(breadcrumbsData);\r\n }\r\n }, [activeFolder, activeProject?.text]);\r\n\r\n\r\n\r\n const {\r\n info: { picture, name, subscreption },\r\n } = useSelector((state) => state.user);\r\n\r\n const IS_PREMIUM = checkPremium(subscreption);\r\n\r\n const { handleModal } = useContext(ModalContext);\r\n\r\n const logOut = () => {\r\n window.location.href = \"https://bimsearch.azurewebsites.net/\";\r\n return;\r\n handleModal();\r\n };\r\n\r\n const handleCloseModal = () => {\r\n handleModal(null, true);\r\n };\r\n\r\n const breadcrumbsArr = useMemo(() => {\r\n if (breadcrumbsData?.activeFolder !== 'favourites' && breadcrumbsData?.activeFolder !== 'recent' && breadcrumbsData?.activeFolder) {\r\n const breadcrumbs = getFoldersBreadcrumbs(breadcrumbsData?.activeFolder, breadcrumbsData?.foldersTree);\r\n breadcrumbs?.shift();\r\n\r\n return breadcrumbs;\r\n }\r\n\r\n if (breadcrumbsData?.activeFolder === 'favourites') {\r\n return [{\r\n id: 'favourites',\r\n text: 'Favorites'\r\n }];\r\n }\r\n\r\n if (breadcrumbsData?.activeFolder === 'recent') {\r\n return [{\r\n id: 'recent',\r\n text: 'Recent'\r\n }];\r\n }\r\n }, [breadcrumbsData?.foldersTree, breadcrumbsData?.activeFolder]);\r\n const handleHomeClick = () => {\r\n window.location.href = \"https://bimsearch.azurewebsites.net/\";\r\n return;\r\n\r\n setActiveFolder('recent');\r\n setActiveProject(null);\r\n setIsTableHidden(true);\r\n\r\n history.push({\r\n pathname: `/`,\r\n });\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {\r\n IS_PREMIUM ? Premium : null\r\n }\r\n \r\n
\r\n\r\n {breadcrumbsData?.activeProject?.text && history.location.pathname !== \"/\" &&\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n /\r\n \r\n
\r\n\r\n {breadcrumbsArr?.map((item, index) => {\r\n const handleBreadcrumbsItemClick = () => {\r\n setActiveFolder(item.id);\r\n setActiveProject(null);\r\n setIsTableHidden(true);\r\n\r\n history.push({\r\n pathname: `/`,\r\n });\r\n };\r\n\r\n return (\r\n \r\n );\r\n })}\r\n\r\n
\r\n {breadcrumbsData?.activeProject?.text}\r\n
\r\n
\r\n }\r\n\r\n
\r\n About\r\n \r\n
\r\n
\r\n \"\"\r\n

{name}

\r\n
\r\n\r\n
\r\n

\r\n Log In\r\n

\r\n
\r\n
\r\n
\r\n \r\n );\r\n});\r\n\r\nexport default Header;\r\n","export default \"data:image/png;base64,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\"","import React from \"react\";\r\nimport { Route, Switch } from \"react-router\";\r\nimport { BuilderDataProvider } from \"components/BuilderContext\";\r\nimport { useDashboardState } from \"components/DashboardContext\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport WithUser from \"screens/WithUser\";\r\nimport Settings from \"screens/Settigns\";\r\nimport Header from \"components/Header\";\r\n\r\nconst PrivateRoutes = () => {\r\n const { newUser } = useSelector((state) => state.user.info);\r\n const { signingState } = useDashboardState();\r\n\r\n return (\r\n
\r\n {(\r\n (signingState === null && !newUser)\r\n || signingState === 0 \r\n || signingState === 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
\r\n );\r\n};\r\n\r\nexport default PrivateRoutes;\r\n","export default __webpack_public_path__ + \"static/media/btn_img.0e32b3e4.svg\";","import Button from \"../../uiComponents/Button\";\r\nimport btnImg from \"../../../static/images/btn_img.svg\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { signInAtcion } from \"../../../store/actions/user\";\r\nimport \"./SignIn.scss\";\r\n\r\nconst SignIn = () => {\r\n const dispatch = useDispatch();\r\n const handleCLick = () => {\r\n dispatch(signInAtcion());\r\n };\r\n return (\r\n
\r\n
\r\n

\r\n Welcome\r\n

\r\n

\r\n To start: connect to your Autodesk account
\r\n Then: sign in to BIMSearch\r\n

\r\n \r\n Sign In with\r\n \r\n \r\n

\r\n First-time user? Read our sign-up guide\r\n

\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SignIn;\r\n","import React from \"react\";\r\nimport EntryWrap from \"../../components/entryComponents/EntryWrap\";\r\nimport SignInContent from \"../../components/entryComponents/SignIn\";\r\n\r\nconst SignIn = () => (\r\n \r\n \r\n \r\n);\r\nexport default SignIn;\r\n","import React from \"react\";\r\nimport { Route, Switch } from \"react-router\";\r\nimport SignIn from \"../../screens/SignIn\";\r\n\r\nconst EntryRoutes = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EntryRoutes;\r\n","import React, { useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport \"./scss/global.scss\";\r\nimport PrivateRoutes from \"./routes/PrivateRoutes\";\r\nimport EntryRoutes from \"./routes/EntryRoutes/index\";\r\nimport { ModalProvider } from \"./components/ModalContext\";\r\nimport { DashboardStateProvider } from \"components/DashboardContext\";\r\nimport { statusCheck } from \"./store/actions/user\";\r\n\r\nfunction App() {\r\n const auth = useSelector((state) => state.user.status);\r\n const dispatch = useDispatch();\r\n \r\n useEffect(() => {\r\n dispatch(statusCheck());\r\n }, []);\r\n\r\n return (\r\n \r\n {\r\n auth !== null &&\r\n \r\n {auth\r\n ? \r\n : \r\n }\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport { BrowserRouter as Router } from \"react-router-dom\";\r\nimport { IntlProvider } from 'react-intl';\r\nimport store from \"./store\";\r\nimport App from \"./App\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n"],"sourceRoot":""}