{"version":3,"sources":["serviceWorker.js","redux/settings/reducer.js","redux/menu/reducer.js","redux/utils/reducer.js","redux/reducers.js","components/common/ColorSwitcher.js","components/utils/Loader.js","views/index.js","helpers/IntlMessages.js","components/svg/MenuIcon.js","components/svg/MobileMenuIcon.js","containers/navs/Topnav.EasyAccess.js","data/notifications.js","containers/navs/Topnav.Notifications.js","containers/navs/Topnav.DarkSwitch.js","components/utils/ContactModal.js","containers/navs/Topnav.js","containers/navs/Sidebar.js","layout/AppLayout.js","data/justificationReasons.js","views/app/modules/custom/admJustification.js","helpers/ThemeColors.js","components/charts/Area.js","components/charts/util.js","components/charts/config.js","components/charts/SmallLine.js","components/charts/Bar.js","components/charts/Doughnut.js","components/charts/Line.js","components/charts/Pie.js","components/charts/PolarArea.js","components/charts/Radar.js","components/charts/Scatter.js","components/utils/ChartCard.js","components/cards/IconCard.js","views/app/modules/custom/admCommunications.js","data/icons.js","views/app/home/start.js","views/app/home/index.js","views/app/index.js","layout/UserLayout.js","data/countryCodes.js","views/user/login.js","redux/store.js","views/user/register.js","views/user/forgot-password.js","views/user/index.js","views/error.js","App.js","AppRenderer.js","components/common/react-notifications/NotificationManager.js","containers/pages/ContextMenuContainer.js","components/utils/DataTable.js","assets/img/doc.png","redux/menu/actions.js","redux/settings/actions.js","redux/utils/actions.js","redux/actions.js","redux/auth/actions.js","components/common/react-notifications/Notification.js","components/common/react-notifications/Notifications.js","components/common/CustomBootstrap.js","components/common/react-notifications/NotificationContainer.js","components/common/CustomSelectInput.js","config/defaultValues.js","views/app/modules/custom/admGrades.js","libs/moment.js","config/lang/locales/en_US.js","config/lang/entries/en-US.js","config/lang/locales/es_ES.js","config/lang/index.js","config/lang/entries/es-ES.js","components/utils/ExportTo.js","components/utils/FormCustom.js","assets/img/camera.png","redux/auth/reducer.js","components/utils/CustomDropZone.js","components/utils/Editor.js","components/utils/CustomImage.js","components/common/SliderTooltips.js","components/utils/CustomSortable.js","components/utils/Field.js","assets/img/user.png","components/utils/CustomSelect.js","components/utils/wizard/TopNavigation.js","components/utils/CustomModal.js","components/utils/AiAssist.js","components/utils/ImportTo.js","config/admModules/admPeriod.js","config/admModules/admGradesRep.js","config/admModules/admEvalConcept.js","config/admModules/admBehavior.js","config/admModules/admOtlt.js","config/admModules/admGradesMaster.js","config/admModules/admInfirmaryValues.js","components/common/react-notifications/index.js","components/utils/SideToSide.js","views/app/modules/custom/admAttendanceControl.js","index.js","assets/css/sass/themes lazy /^/.//gogo/..*/.scss$/ groupOptions: {} namespace object","components/utils/CustomDropdown.js","components/utils/Dialog.js","libs/axios.js","views/app/modules/crudGrid.js","components/utils/DateRange.js","helpers/Utils.js","components/utils/FormSmart.js","data/roles.js","config/admModules/admOrderGrid.js","config/admModules/admOrder.js","config/admModules/admSubject.js","components/utils/CustomPreviewWhatsApp.js","components/CalendarToolbar.js","components/utils/CustomCalendar.js","data/fetchInputTypes.js","config/admModules/modules.js","config/admModules/admUser.js","config/admModules/admStudent.js","config/admModules/admStaff.js","config/admModules/admGroup.js","config/admModules/admBilling.js","config/admModules/admBillingGrid.js","config/admModules/admOrderDetail.js","config/admModules/admBillingReport.js","config/admModules/admDirectory.js","config/admModules/admGrades.js","config/admModules/admActivityParts.js","config/admModules/admActivityMasters.js","config/admModules/admTracking.js","config/admModules/admBookingList.js","config/admModules/admLocalization.js","config/admModules/admSuperSection.js","config/admModules/admSectionMembers.js","config/admModules/admCommitment.js","config/admModules/admJournal.js","config/admModules/admActivitySession.js","config/admModules/admAttendanceType.js","config/admModules/admGradesBehavior.js","config/admModules/admSection.js","config/admModules/admDates.js","config/admModules/admInfirmary.js","config/admModules/admPublication.js","config/admModules/admPublicationPart.js","config/admModules/admFetch.js","config/admModules/admAssignmentQst.js","config/admModules/admCalendar.js","config/admModules/admNotification.js","config/admModules/admRelatives.js","config/admModules/admAudit.js","config/admModules/admTransport.js","config/admModules/admFetchInput.js","config/admModules/admFetchResponses.js"],"names":["Boolean","window","location","hostname","match","INIT_STATE","locale","localStorage","getItem","tenant","defaultLocale","tenants","JSON","parse","currentTenant","loader","menuItems","containerClassnames","defaultMenuType","subHiddenBreakpoint","menuHiddenBreakpoint","menuClickCount","selectedMenuHasSubItems","deepLink","url","href","d","indexOf","split","atob","params","modals","preview","reducers","combineReducers","menu","state","arguments","length","undefined","action","type","MENU_ITEMS","_objectSpread","payload","MENU_CHANGE_HAS_SUB_ITEM_STATUS","Object","assign","MENU_SET_CLASSNAMES","MENU_CLICK_MOBILE_MENU","MENU_CONTAINER_ADD_CLASSNAME","MENU_CHANGE_DEFAULT_CLASSES","settings","CHANGE_LOCALE","TENANTS","CURRENT_TENANT","LOADER","authUser","utils","DEEPLINK","PARAMS","MODALS","ColorSwitcher","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","getContainer","ReactDOM","findDOMNode","_assertThisInitialized","toggle","e","preventDefault","isOpen","removeEvents","addEvents","setState","changeThemeColor","color","setItem","themeColorStorageKey","setTimeout","reload","forEach","event","document","addEventListener","handleDocumentClick","removeEventListener","container","contains","target","selectedColor","_createClass","key","value","this","_this2","React","createElement","className","concat","onClick","Component","Loader","_React$Component","_len","args","Array","_key","apply","setLoader","Modal","size","centered","backdrop","fade","connect","_ref","Main","Redirect","to","injectIntl","FormattedMessage","withRef","MenuIcon","Fragment","xmlns","viewBox","x","y","width","height","MobileMenuIcon","TopnavEasyAccess","UncontrolledDropdown","DropdownToggle","DropdownMenu","right","id","NavLink","IntlMessages","data","img","title","date","NotificationItem","src","alt","TopnavNotifications","PerfectScrollbar","option","suppressScrollX","wheelPropagation","notifications","map","notification","index","TopnavDarkSwitch","prevState","tooltipOpen","getColor","defaultColor","changeMode","replace","switchChecked","Switch","checked","onChange","Tooltip","placement","ContactUs","handleChangeSelect","selectedOption","subject","send","bind","body","sender","userAdminEmail","err","label","NotificationManager","primary","_axios","post","servicePathDefault","Subject","Body","Sender","then","r","toggleModal","success","catch","error","_this3","modalOpen","wrapClassName","ModalHeader","ModalBody","Label","Select","components","Input","CustomSelectInput","classNamePrefix","name","options","placeholder","ModalFooter","Button","outline","TopNav","handleChangeLocale","direction","changeLocale","getDirection","setDirection","handleChangeTenant","t","setCurrentTenant","getTenant","get","pathOne","status","setMenuItems","msg","isInFullScreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","handleSearchIconClick","innerWidth","elem","classList","parentElement","search","remove","removeEventsSearch","add","addEventsSearch","handleDocumentClickSearch","isSearchClick","input","querySelector","searchKeyword","handleSearchInputChange","handleSearchInputKeyPress","history","push","toggleFullScreen","docElm","documentElement","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullScreen","msRequestFullscreen","handleLogout","logoutUser","menuButtonClick","createEvent","initEvent","dispatchEvent","setContainerClassnames","mobileMenuButtonClick","clickOnMobileMenu","_this$props","userAdmin","messages","intl","ContactModal","searchPath","data-search-path","onKeyPress","caret","modifiers","setMaxHeight","enabled","fn","styles","overflow","maxHeight","innerHeight","l","DropdownItem","version","localeOptions","toUpperCase","logo","onError","onerror","require","isDarkSwitchActive","topNavOptions","easyAccess","tag","pic","header","style","fontSize","loginUser","Sidebar","handleWindowResize","isTrusted","nextClasses","getMenuClassesForResize","join","isMenuClick","viewingParentMenu","classes","filter","windowWidth","includes","hasSubItems","getIsHasSubItem","changeSelectedMenuHasSubItems","_this$props2","currentClasses","clickIndex","handleProps","setSelectedLiActive","callback","oldli","selectedlink","selectedParentMenu","getAttribute","selectedParentNoSubItem","setHasSubItemStatus","hasSubmenu","menuItem","find","subs","openSubMenu","selectedParent","hasSubMenu","_this$props3","addContainerClassname","prevProps","pathname","scrollTo","_this$state","_this$props4","Nav","vertical","f","hidden","item","NavItem","classnames","active","newWindow","rel","icon","labelEn","data-flag","data-parent","sub","UncontrolledCollapse","toggler","thirdSub","thirdIndex","setParams","setupMsg","desc","withRouter","changeDefaultClassnames","AppLayout","children","defautltForm","ID","attendanceTypeId","attendanceTypeName","comment","createdBy","createdByEmail","createdByName","createdByPhone","doc","docUrl","externalId","face","justification","last","last2","sectionTag","tillDate","actions","create","edit","AdmJustification","execute","debounce","typeId","save","leading","listenStatesForm","s","form","listenStatesFormFilter","formFilter","listenBtnActionsFormFilter","a","rowData","getData","filterData","dataTemp","toLowerCase","modal","idItemSelected","pupils","sessions","toggleDelete","modalDelete","formFields","moduleName","path","slice","configFields","foundModule","flatMap","m","col","disabled","opts","renderIf","ctx","Number","isInteger","rules","selectsStart","startDate","moment","endDate","parent","selectsEnd","minDate","gradeName","setOutput","v","searchOnline","withImg","sectionName","isClearable","items","justificationReasons","rows","accept","output","ctxForm","L","_configFields","inactive","write","progressBar","from","_moment","format","dropzones","uploadActive","uploadFiles","sectionId","superSectionId","temp","Results","getFileExtension","_this4","validateForm","cloneDeep","console","log","file","isArray","note","reason","userId","fileType","ext","sessionId","numOfDay","diff","_this5","response","defaultValuesUploadFiles","_this6","_this7","processing","click","_this8","Promise","resolve","reject","setUploadActive","_this9","AppLocale","Row","Colxx","xxs","xxl","FormCustom","fields","pending","buttons","btnAction","listenStates","listenBtnActions","ref","el","componentRef","i","toString","getDataById","CustomModal","validate","Dialog","confirm","delete","setDeeplink","ThemeColors","rootStyle","getComputedStyle","themeColor1","getPropertyValue","trim","themeColor2","themeColor3","themeColor4","themeColor5","themeColor6","themeColor1_10","themeColor2_10","themeColor3_10","themeColor4_10","themeColor5_10","themeColor6_10","primaryColor","foregroundColor","separatorColor","Area","shadow","Chart","defaults","lineWithShadow","line","controllers","extend","draw","ease","prototype","chart","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","responsive","stroke","restore","areaChartOptions","legend","display","maintainAspectRatio","tooltips","backgroundColor","titleFontColor","borderColor","borderWidth","bodyFontColor","bodySpacing","xPadding","yPadding","cornerRadius","scales","yAxes","gridLines","lineWidth","drawBorder","ticks","beginAtZero","stepSize","min","max","padding","xAxes","ChartComponent","chart_instance","chartTooltip","centerTextPlugin","afterDatasetsUpdate","beforeDraw","chartArea","bottom","activeLabel","labels","activeValue","datasets","dataset","meta","_meta","keys","total","activePercentage","parseFloat","toFixed","legendItems","pointAvailable","pointIndex","pointDataIndex","font","fillStyle","textBaseline","text","textX","Math","round","measureText","textY","fillText","text2","textX2","textY2","beforeEvent","firstPoint","getElementAtEvent","_index","_datasetIndex","lineChartOptions","plugins","datalabels","polarAreaChartOptions","position","usePointStyle","scale","scatterChartOptions","barChartOptions","radarChartOptions","pieChartOptions","layout","doughnutChartOptions","cutoutPercentage","smallLineChartOptions","left","top","addCommas","nStr","x1","x2","rgx","test","ChartCard","_L$title","_L$caption","_ref$className","_ref$controls","controls","_ref$title","_ref$caption","caption","Key","values","Value","colors","areaChartData","pointBackgroundColor","pointBorderColor","pointHoverBackgroundColor","pointHoverBorderColor","pointRadius","pointBorderWidth","pointHoverRadius","fill","Card","CardBody","AreaChart","IconCard","AdmCommunications","listenCreateSuccess","listenEditSuccess","listenDeleteSuccess","listenStatesFormSendSummary","formSendSummary","M","formButtons","communicationTypes","chartNumberConvers","chartNumberMessages","noCommunications","formSendSummaryFields","successMsg","createForm","inline","list","slider","step","colxs","createManually","createWithAi","readMode","sendSummary","fieldsReadMode","lastComm","nextComm","ctxAdmNotification","notificationId","toDate","query","objToQueryString","setCardValue","val","totalEvents","totalImportant","totalMedia","totalNews","grid","notificationActive","createFormSendSummary","_this$state$communica","_this$state$communica2","_this$state$communica3","cat","categName","pinned","published","validateFor","commType","ctxAdmPublication","ctxAdmCalendar","AI","resetForm","validateFormSendSummary","_this7$state$formSend","day","hour","getNextDayOfWeek","time","dateTime","doWA","doWATemplate","placeholders","doMail","doPush","sendTo","filterBy","page","objectId","sendOn","hasRecurrence","recurrence","selectedField","Alert","lg","xl","md","wrapButtonsWithDiv","didUpdateStates","CustomDropdown","resourceUrl","showItemSelected","_item$img","_L$category$name","category","getCategory","Badge","pill","publishFrom","defaultDateFormat","showMenuOnHover","CrudGrid","onlyCrud","icons","Start","moduleCard","xs","goTo","stopPropagation","ai","isAdmin","marginLeft","fieldsDefault","userMenu","message","Icons","withIcon","isMulti","sm","userEdit","selected","userRead","_data$find","_this$state$fields","b","_m$subs","_m$subs2","Home","exact","Route","component","start","App","appModules","searchComponent","admGrades","admAttendanceControl","admJustification","admCommunications","crudGrid","otherModules","home","eee","modules","eeee","ee","UserLayout","hero","_regeneratorRuntime","exports","Op","hasOwn","hasOwnProperty","defineProperty","obj","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","makeInvokeMethod","tryCatch","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","record","result","__await","unwrapped","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","iter","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","initialState","Login","getParamsFromURL","token","getValueOfParameterFromURL","loginToken","_this$state$form","fields1","form1","countryCode","countryCodes","colClassName","filterOption","searchText","startsWith","autoComplete","verifyNumber","addon","append","pinSent","loginCellphone","prepend","texts","appName","wrapperClassName","form1Fields","readyForm1","fields2","form2Fields","readyForm2","validateForm2","authType","loginResourceOwner","loginRedirect","login","listenStatesForm1","listenStatesForm2","form2","validateForForm1","user","mobile","admin","getElementById","focus","validationFailed","validateForm1","pass","code","email","password","prelog","activeTab","redirectFlowUserDetails","parseInt","headers","loginSuccess","authParams","companyName","loggedIn","defaultLang","force","Path","ClientId","encodeURIComponent","origin","random","substr","config","Basic","GetUser","refresh_token","rt","access_token","rr","led","order","getTenants","multiTenant","_getTenants","_asyncToGenerator","_callee","singleTenant","_context","companyID","companyPic","pathAll","unshift","default","setTenants","_x","tabs","TabContent","TabPane","tabId","Register","plan","_this$state$form$plan","_this$state$form2","verifiedNumber","_L$mainName","_L$mainEmail","_L$mainPhone","regex","kind","iconStyle","marginRight","goToWhatsApp","isPro","register","readyForm","cel","countryCode2","companyPhone","alias","dialog","btnOkName","btnCancelHidden","CardTitle","ForgotPassword","Form","defaultValue","User","forgotPassword","backgroundImage","AuthRoute","rest","_objectWithoutProperties","_excluded","render","goToAppMobile","open","isRtl","currentAppLocale","IntlProvider","NotificationContainer","isMultiColorActive","Router","app","main","_ref2","Provider","store","createStore","navigator","serviceWorker","ready","registration","unregister","Constants","_EventEmitter","listNotify","notify","defaultNotify","c","timeOut","customClassName","priority","emitChange","n","emit","addListener","removeListener","EventEmitter","ContextMenuContainer","onContextMenuClick","ContextMenu","MenuItem","itemTypeToComponent","isActive","UltimatePagination","createUltimatePagination","WrapperComponent","DataTable","columnsFormat","cols","columns","_L$e$Header","_L$e$Header2","isBool","Header","dataTableList","isButton","classTable","alert","rowClickedData","getTbodyProps","expand","getTheadTrProps","handleOriginal","cursor","getTdProps","rowInfo","column","instance","enableContexMenu","onContextMenu","original","currentPage","nextProps","p","listenCurrentPage","rowCount","pageCount","defaultPageSize","getTrProps","hidePagination","customMsg","msgNoRecords","ContextMenuTrigger","disable","ReactTable","pageSize","showPageJump","showPageSizeOptions","showPagination","sortable","resizable","totalPages","ceil","handleOnChangePagination","hideFirstAndLastPageLinks","textAlign","replaceWords","module","isStoredMenu","nameEn","stringify","strCurrentClasses","classname","newClasses","lang","btoa","setModals","LOGIN_USER","LOGOUT_USER","redirect","global","removeItem","Notification","componentDidMount","timer","requestHide","componentWillUnmount","clearTimeout","handleClick","onRequestHide","role","defaultProps","Notifications","handleRequestHide","enterTimeout","leaveTimeout","CSSTransitionGroup","transitionName","transitionEnterTimeout","transitionLeaveTimeout","Date","getTime","Col","widths","componentWillMount","addChangeListener","handleStoreChange","removeChangeListener","customProps","autoCorrect","autoCapitalize","aria-autocomplete","now","servicePath","o","Id","Name","theme","defaultDirection","host","link","getElementsByTagName","appendChild","setAttribute","mobileStatusBarColor","AdmGrades","onChangeField","_params$inputId$split","inputId","_params$inputId$split2","_slicedToArray","fieldName","parentIndex","intParentIndex","intIndex","intValue","lastsConcepts","loadGrid","studentId","grades","grade","parentId","locked","sync","nextfield","isAndroidOrIos","beforeEdit","onBlurField","onKeyUpField","_defineProperty","getEvalConcept","onChangeFieldFilter","_this$setState","selectedReport","activityId","createHeader","addName","concept","abrev","innerHTML","evalConcept","maxLevel","level","numLevels","lasts","_loop","sort","lastIndexOf","h","offsetWidth","splice","childElementCount","nr","showTooltip","scrollY","element","element2","element3","scrollTop","evt","scrollLeft","getBoundingClientRect","scrollX","sl","w","scroll","behavior","selectedArrow","onChangeAutocomplete","showDialog","ok","_e$params","conceptId","modalGeneric","modalGenericVisible","getActivityMasters","mastersProgressBar","accessor","filters","alterType","masters","mastersRowCount","RowCount","mastersColumns","calcularPorAlumno","gradeTxt","calcularPorSeccion","view","resource","periodId","activityPartId","masterId","labelperiodId","labelsuperSectionId","labelsectionId","labelactivityId","labelmasterId","sectionReloader","activityReloader","masterReloader","toggleGenericVisible","isBehavior","master","masterFace","quantitativeGrades","getDefaultFilters","onscroll","defaultFilter","clearable","_loop2","res","findIndex","_this$state2","lc","tempGrades","gradeNum","qualifications","canEdit","_toConsumableArray","index2","g","_item$params","_item$params2","_e$params2","num","ReactToPrint","content","copyStyles","bodyClass","gr","q","mapGrade","_loop3","letters","_loop4","letter","currentCol","firstColumns","cells","merges","_loop5","ep","ws","XLSX","json_to_sheet","alignment","horizontal","bold","fgColor","rgb","array2","sheet_add_json","skipHeader","cell","decode_cell","wch","wb","book_new","book_append_sheet","writeFile","_this10","printTable","exportToExcel","extras","addCheck","FormGroup","row","Field","align","UncontrolledTooltip","tabIndex","shortcut","ii","getBorderColor","idParent","onBlur","ButtonGroup","minWidth","candidate","inputValue","candidateValue","_localStorage$getItem","addPrefixToObjectKeys","section","admSection","superSection","admSuperSection","group","admGroup","infirmary","admInfirmary","localization","admLocalization","publication","admPublication","assignment","admAssignment","attendance","admAttendance","admUser","student","admStudent","admModule","communications","calendar","admCalendar","admNotification","fetch","admFetch","fetchInput","admFetchInput","EnLang","enMessages","appLocaleData","en","enLang","es","esMessages","addLocaleData","ExportTo","multiDataSet","ctxExportTo","getKeyAndValue","newObj","_i","_Object$entries","entries","_Object$entries$_i","isDate","defaultTimeFormat","isDecimal","decimalFormat","generateExcel","local","localData","ctxParent","fieldsToFilter","customPathGet","remap","ExcelFile","ReactExport","ExcelSheet","hideElement","fileExtension","filename","dataSet","download","hideButton","colSpan","_L$c$Header","_props$subforms","_props$subGrids","_props$fields","defaultValuesForm","labelForValidator","_L$f$label","wizard","validator","allValid","showMessages","forceUpdate","_step","collapsibles","_iterator","_createForOfIteratorHelper","childs","toggleCollapsible","field","steps","_field$id","fieldId","scrollIntoView","wizardRef","current","some","_L$f$label2","saveByStep","flags","currentStepIndex","nextStep","requiredFields","keysValues","scrollToField","visibleFields","hideMessages","hideMessageFor","_field$rules","fieldValid","_field$id2","showMessageFor","toogleSubForm","subforms","listenToogleSubform","setCurrentStep","currentStepId","_this$wizardRef","process","nextTick","topNavClick","stepItem","topNavDisabled","createButtons","_b$opts","_L$b$label","btn","isMain","handleClickAiAssist","editor","aiAssistRef","setActiveTab","SimpleReactValidator","addLocale","validators","rule","messageReplace","required","helpers","humanizeFieldName","_field$split$","subGrids","_w$steps","stepsLength","bottomNavHidden","_t$value","tab","createRef","flatFields","onTooltip","collapsible","purgeFields","detailGrid","createField","_L$c$label","_L$c$placeholder","_c$childs","_L$f$label3","_L$f$placeholder","_L$f$hint","_L$f$label4","offset","hint","maxLength","rulesMessages","onFocus","parentValue","classNameF","aiAssist","onClickAiAssist","getValueLabelOfFieldSelect","aria-expanded","Collapse","child","Wizard","TopNavigation","disableNav","Steps","_L$s$name","_L$s$desc","Step","doField","_L$t$name","embeded","parentIdField","insideCustomForm","listenData","listenForm","sf","_sf$size","_L$sf$name","FormSmart","getUrl","getUrlF","postUrl","postUrlF","remapGET","onSuccess","autoClose","toogleSubGrid","AiAssist","_ref3","CustomDropzone","isImage","extensions","imageFormats","isDoc","handleOnDrop","drag","files","dataTransfer","getAsFile","validateFile","removeDragData","handleOnDragOver","handleOnChange","getBase64","reader","FileReader","readAsDataURL","onload","addFile","convert","newsFiles","deleteFile","progressPercentage","progressBytes","cancel","cancelToken","upload","maxFiles","urlFile","CancelToken","onUploadProgress","progressEvent","loaded","clear","clearData","_this$props$opts$acce","_this$props$opts","_this$props$opts2","_this$props$opts$acce2","_this$props$opts3","Progress","_this4$state$urlFile","openLink","onDrop","onDragOver","multiple","Editor","_props$placeholder","useRef","_useState","useState","toolbarButtonSize","enableDragAndDropFileToEditor","readonly","toolbarAdaptive","showXPathInStatusbar","showCharsCounter","showWordsCounter","askBeforePasteHTML","language","buttonsMD","buttonsXS","extraButtons","exec","openFile","events","afterRemoveNode","node","nodeName","afterInsertImage","paste","useEffect","handleChange","tables","border","borderCollapse","marginBottom","marginTop","j","rgbToHex","endsWith","useMemo","JoditEditor","CustomEditor","refInputFile","resizeImage","uploadFile","insertImage","toggleTab","execCommand","CardHeader","ReactDOMServer","dropzoneComponentConfig","dropzoneConfig","acceptedFiles","autoProcessQueue","maxFilesize","previewTemplate","renderToStaticMarkup","data-dz-thumbnail","data-dz-remove","CustomImage","thumbValue","loading","fileLoaded","fileAttached","base","_context$setState","canvas","getContext","drawImage","MAX_WIDTH","maxWidth","MAX_HEIGHT","dataurl","toDataURL","DropzoneComponent","eventHandlers","addedfile","djsConfig","sliderHandle","dragging","restProps","positionStyle","Slider","Handle","SliderTooltip","CustomSortable","_props$L$props$nameBu","_useState2","setItems","propsItems","ReactSortable","setList","newState","data-id","autoFocus","itemId","itemIndex","updatedItems","updatedItem","updateItem","answerId","nextId","addItem","nameButton","negate","handleDatePickerChange","handleFieldChange","handleTagChange","tags","handleCheckboxGroupChange","newArray","handleFocus","handleDatePickerOpen","onOpen","handleBlur","handleOnKeyUp","onKeyUp","handleOnKeyPress","handleChangeQuill","textQuillStandart","handleChangeJodit","toggleTooltip","customDatePickerInput","forwardRef","customAddon","_AppLocale$_this$prop","InputGroupAddon","addonType","_b$className","_L$b$name","isDisabled","isOutline","_L$text","InputGroupText","tooltipId","highlightDates","includeDates","datePickerRef","tooltip","_AppLocale$locale","_opts$colClassName","_opts$wrapperClassNam","_opts$inputWrapperCla","_opts$addon","_opts$startDate","_opts$startDate2","_opts$endDate","_opts$endDate2","_this$state$name","_opts$addon2","_L$this$state$name","_L$opts$labelBeforeBu","_opts$icon","_opts$iconStyle","_L$opts$desc","_opts$slider","_opts$slider2","_opts$slider3","_opts$color","_L$this$state$name2","onTooltipClick","onMouseEnter","onMouseLeave","Popover","PopoverBody","dangerouslySetInnerHTML","__html","InputGroup","inputWrapperClassName","DatePicker","placeholderText","dateFormat","timeFormat","showTimeSelect","showTimeSelectOnly","timeIntervals","timeCaption","minTime","maxTime","maxDate","onCalendarOpen","withPortal","customInput","CustomSelect","itemsF","onMenuOpen","listInLocalStorage","labelBeforeButton","frameBorder","TagsInput","inputProps","enterkeyhint","addKeys","validationRegex","onValidationReject","_L$opts$msgInvalidTag","msgInvalidTag","CustomInput","htmlFor","_L$e$label","listImgs","innerProps","listIcons","SelectCustom","fullPath","handleInputChange","_lsi$props$listInLoca","lsi","listName","_L$item$label","_this$setState3","_select$label","select","isEqual","Option","_this$props5","isSearchable","customize","onInputChange","clearValue","menuPlacement","noOptionsMessage","getClassName","isDone","WithWizard","previous","go","hideTopNav","itemClick","_window$location$hash","handleUrlChange","isLast","modalId","clickedBackButton","currentHash","hash","generateGUID","postInputMax","translate","aiModal","aiText","summarize","tone","inputMax","_this4$state$form","_this4$state$form2","_this4$state$form3","paragraphs","topic","seed","toogleAiModal","ImportTo","templateFile","csvfile","ctxImportTo","_L","_L2","reloadGrid","print","export","setValuesBeforePost","_v$showGradesOnlineMs","showGradesOnlineMsg","showGradesPDFMsg","showGradesFrom","showGradesOnline","confirmVisible","showClone","_ctx$state$confirm","eContext","customTitle","showGradesPDF","showGradesDefault","actionsInColumns","resetDataTable","afterEdit","remapOne","_v$showGradesOnlineMs2","_context$state$form","remapRow","toggleRight","modalRightContent","itemsInRowsTable","idItemPreSelected","hiddenTitle","l0","l1","okMsg","reportType","year","URL","webkitURL","xhr","XMLHttpRequest","responseType","Blob","createObjectURL","getFullYear","years","refreshData","sortConcept","editRow","deleteRow","moveConcept","levelTxt","move","footprint","indexAsBrother","brothers","index1","levels","indexGroup","getDataSuccess","maxActions","parentName","weightType","weight","specialType","notifOn","grado","dateFrom","masterName","IN","bookings","periodName","userName","labelNotifOn","values1","btn1","online","chips","false","true","saveGrade","averaged","openSubGrid","all","qualificationsList","updateAverage","average","btnSaveAll","CPROM","getGrades","update","getMyTeachers","sectionOwner","superSectionOwner","hideBtnSave","usePrevious","Side","setSearch","_useState3","_useState4","setFormFilter","_useState5","_useState6","setProgressBar","_useState7","_useState8","setData","_useState9","_useState10","setRowCount","_useState11","_useState12","setColumns","prevStateFormFilter","prevStateSearch","side","addItems","removeItems","checkedItem","isChecked","listenSelected","addColumn","checkedAll","Cell","GET","SideToSide","leftItemsSelected","rightItemsSelected","leftAdd","leftRemove","rightAdd","rightRemove","fromSectionId","studentIds","configLeft","POST","configRight","le","ri","alignItems","flexWrap","moveTo","AdmAttendanceControl","overlay","showPartId","ctxFormFilter","partId","registrationStarted","allPending","getSessions","regist","startAttendance","justifType","sideRight","scrollWidth","saveComment","webpackAsyncContext","req","__webpack_require__","ids","_props$items","_props$selected","dropdownOpen","loadingTxt","getItems","_L$selected$name","_L$label","isMobile","Dropdown","onMouseOver","_L$item$name","handleOnClick","_L$this$props$btnCanc","_L$this$props$btnOkNa","btnCancel","baseURL","transformRequest","prefix","_window$tenant$locale","_window$tenant$defaul","axios","interceptors","request","use","exp","parseJwt","Cancel","_error$response","_error$response$data","_error$response2","Message","base64","jsonPayload","decodeURIComponent","charCodeAt","_this$view3","_this$view3$form","_this$view4","_this$view4$config","_this$view5","_this$view5$config","_this$view$form7","_this$view$form7$fiel","selectedId","onGetDataById","handleChangeSearch","handleKeyPress","_this$view$form","beforeOpenModal","showFormCustom","restoreDefaultValues","afterCloseModal","togglePreview","modalPreview","_this$view","_this$view$form2","_this$view2","_this$view2$config","formDefault","formFlags","formFlagsDefault","btnSave","btnCreate","viewDefault","modalRight","selects","animateTrById","animationName","animationDuration","handleNextStepOfWizard","currentStep","_this$state$form$flag","handleNextStep","toggleDropdown","dropdown","previewOfGrid","_this$view$preview","_this$view$preview$pr","previewOf","handleData","previewOfForm","_this$view$preview2","_this$view$preview2$p","menuOptions","_this$view$actions","_this$view$actions2","_this$view$actions3","ctxExportToExcel","ctxExportToPrint","import","mod","modOption","findModuleInMenu","writePermission","_this$view$filter","_this$view$filter$fie","_this$view$form3","_this$view$form4","_this$view$form6","dateRange","pos","_this$view$form$field","pos2","index3","_w$steps$index2$field","_this$view$form5","modulePermissions","authorized","modalRightSize","animateTr","checkedList","keepFilters","Map","hiddenGrid","_this$view$preview3","_this$view$preview3$p","_this$view$preview4","_this$view$preview4$p","customEditIcon","_cloneDeep","fDate","isValid","colImg","_props$value","_e$chips$props$value","_e$chips$props$value2","CircularProgressbar","strokeWidth","percentage","defaultChecked","rowId","colId","mail","delet","extra","_AppLocale$_this4$pro","_this$state$formFilte","by","paramName","reduce","acc","_L$field$label","_selects$field$name","_L$field$label2","_r$data","PageCount","createMsgNoRecords","searchDropzones","_this$state$form2$fla","stepId","_wizard$steps","_wizard$steps$find","_this7$view$config$cu","stepMethod","_this7$state$form","_this7$state$form$fla","customPathPost","setValueDropZone","onCreateSuccess","_this7$view$actions","_this7$view$actions$c","array","rm","newItem","onCreateFailure","onEditSuccess","_this8$view$actions","_this8$view$actions$e","onEditFailure","_this$view$config$cus","_this$view$extras","_this$view$extras2","_this$view$actions4","_this$view$actions5","_this$view$actions6","_this$view$extras3","_L$this$view$extras$i","_this$view$actions7","_this$view$actions8","_this$view$actions9","_this$view$actions10","_this$view$actions11","_this$state$formField","_this$view$config$mod","_this$view$config$mod2","_this$view$config$mod3","_this$view$config$mod4","_this$state$form3","_this$state$form3$fla","_this$state$form4","_this$state$form4$fla","_L$this$state$modalRi","_this$view$preview5","_this11","TITLE","maxItems","forms","_L$f$name","spacer","sideToSide","hiddenButtons","customComponent","ctxCruGrid","listenChangeStep","handleSaveChanges","template","_ref4","_props$range","_props$from","_props$to","_customRange$name","_customFrom$name","_customTo$name","_range$opts","_customRange$opts","_from$opts","_customFrom$opts","_to$opts","_customTo$opts","customRange","range","customFrom","customTo","rangeName","fromName","toName","isFormCrud","_ctx$setState4","_ctx$setState5","_ctx$setState6","_ctx$setState7","startOf","endOf","_ctx$setState","_ctx$setState2","_ctx$setState3","rangeOpts","customRangeOpts","fromOpts","customFromOpts","toOpts","customToOpts","querystring","localValue","questionMark","ampersand","str","Image","parsedNum","param","_window$location$href","indiceInicio","indiceFin","substring","userAgent","phone","platform","searchBy","replacements","word","whatsToHtml","dayOfWeek","today","daysUntilNext","nextDay","postMyData","getMyData","_i2","_Object$entries2","_Object$entries2$_i","R","_i3","_Object$entries3","_Object$entries3$_i","_p$wrapClassName","_L$p$title","getSkeleton","currentYear","bulk","months","userIdsFor","userIdsForBulk","forYear","recurrent","admOrderGrid","module_admOrderGrid","setView","CustomPreviewWhatsApp","_L$name","setMessages","setOptions","sheet","setSheet","msgs","_m$buttons","i2","CalendarToolbar","toolbar","viewActive","setViewActive","onView","onNavigate","CustomCalendar","setDiff","prevDiff","setPrevDiff","localizer","momentLocalizer","end","isAllday","getDay","getHours","allDay","titleHtml","remapData","ContexMenu","showMenu","querySelectorAll","parentNode","removeChild","div","clientY","clientX","once","Calendar","views","defaultDate","selectable","onSelectEvent","onSelectSlot","currentMonth","dayPropGetter","isSame","eventWrapper","formats","monthHeaderFormat","culture","dayHeaderFormat","dayRangeHeaderFormat","itemAdmAudit","resUpload","_form$last","itemAdmRelatives","dependantId","admRelatives","admAudit","enrolled","superSectionName","country","birthplace","groups","staff","roles","amountReceipt","penalty","paid","orderId","refId","isChild","voided","screen","openPopupCentered","admPeriod","owner","canEnterEval","gradeId","ownerName","categoryId","categoryName","btn2","sections","sortBy","ss","admGradesRep","admEvalConcept","rol","alterTypeName","_context$props$locati","slot","completed","date2","time2","resourceId","notes","notesCompleted","CodigoPadreFamilia","trackingId","createSlot","set","minute","second","millisecond","ctxField","slots","dates","hours","ctxCustomSelect","fromSuperSectionId","fromSuperSectionName","otherPromote","superowner","superownerName","consecuencias","admBehavior","values2","admOtlt","admGradesMaster","entranceTime","leaveTime","datestypes","noClasses","createdDate","updatedDate","staffIds","prescription","symptomId","timeIn","timeInTxt","timeOutTxt","patient","symptomName","outcomeId","outcomeName","_context$state$form2","admInfirmaryValues","admPublicationPart","toDateType","superSections","_ctx$state$superSecti","_ctx$state$sections","baseUrl","baseUrl2","ctxSubFormDetailGrid","changeTemplate","fetchId","tagsContent","_ctx$state$placeholde","_t$defValue","artUrl","_ctx$state$placeholde2","_ctx$state$placeholde3","defValue","selectedTemplate","_tagsArray$","recipientType","triggerType","groupId","groupName","doWATemplateName","tagsArray","selectedRecipientType","scheduled","activeFrom","selectedTriggerType","url2","_v$select","_v$groupId$value","_v$groupId","_v$doWATemplate","_v$selectedTemplate","_v$selectedTemplate2","templateId","select1","select2","select3","select4","maxCollections","activeTo","_context$view","_context$view$form","inputs","selectedType","_context$state","_context$state2","_context$state2$form","_context$state$form3","_context$state3","_context$state3$form","_context$state$form4","_context$state4","_context$state4$form","_context$state$form5","groupIdOfFetch","_context$state$form6","_context$state$form7","_ctx$state$tags","langSwitch","_context$state$form8","isLive","countTarget","_context$state$form9","_context$state$form10","_context$state$form11","_context$state$form12","_context$state$form13","countSent","0","1","2","3","sendStatus","forDate","statusDetail","numberOfInputs","clipboard","writeText","share","useGroup","_ctx$state$data","_ctx$state$data$","phoneList","_r$data3","_r$data2","_context$state$form14","_context$state$form15","_context$state$form16","4","5","_data$selectedTemplat","_data$selectedTemplat2","replaceAll","_context$state$form17","_context$state$form18","_context$state$form19","msgConfirmFailure","msgConfirmSuccess","btnValidate","onFailure","objectType","fieldIndex","recurrenceName","month","sectionIds","userIds","principalUserIds","alert1","alert2","recurrenceId","city","district","nationality","workCountry","rip","_context$props","_context$props$filter","showPreview","_inputTypes$find","typeName","inputTypes","_data$options","columnsData"],"mappings":"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,sBACA,sBACA,qBACA,oBACA,0BACA,0BACA,0BACA,0BACA,2BACA,yBACA,yBACA,qBACA,wBACA,2BACA,sBACA,kBACA,oBACA,mBACA,sBACA,mBACA,uBACA,qBACA,yBACA,iBACA,kBACA,yBACA,iBACA,mBACA,qBACA,4BACA,2BACA,qBACA,0BACA,qBACA,uBACA,uBACA,wBACA,6BACA,2BACA,2BACA,kBACA,wBACA,yBACA,0BACA,oBACA,sBACA,sBACA,qBACA,mBACA,iBACA,mBACA,2BACA,2BACA,qBACA,qBACA,qBACA,qBACA,oBACA,sBACA,yBACA,oBACA,oBACA,mBACA,kBACA,qBACA,sBACA,wBACA,mBACA,0BACA,mBACA,uBACA,sBACA,qBACA,oBACA,gCACA,qBACA,kBACA,sBACA,uBACA,oBACA,sBACA,uBACA,oBACA,qBACA,qBACA,qBACA,sBACA,qBACA,mBACA,iBACA,iBACA,kBACA,qBACA,6BACA,sBACA,wBACA,iBACA,yBAGJ,CACErnB,MAAO,wBACPqnB,MAAO,CACL,yBACA,yBACA,qBACA,mCACA,uBACA,yBACA,kBACA,oBACA,oBACA,mBACA,2BACA,2BACA,wBACA,oBACA,oBACA,yBACA,sBACA,4BACA,yBACA,oBACA,kBACA,0BACA,6BACA,mBACA,kBACA,0BACA,sBACA,sBACA,oBACA,4BACA,+BACA,uBACA,4BACA,uBACA,oBACA,yBAGJ,CACErnB,MAAO,qBACPqnB,MAAO,CACL,mBACA,qBACA,qBACA,oBACA,2BACA,kBACA,yBACA,uBACA,uBACA,yBACA,uBACA,mBACA,0BACA,sBACA,oBACA,yBACA,wBACA,wBACA,0BACA,4BAGJ,CACErnB,MAAO,uBACPqnB,MAAO,CACL,mBACA,4BACA,iBACA,qBACA,0BACA,kBACA,oBACA,oBACA,kBACA,mBACA,iBACA,iBACA,kBACA,mBACA,uBACA,oBACA,oBACA,qBACA,oBACA,6BAGJ,CACErnB,MAAO,2BACPqnB,MAAO,CACL,kBACA,4BACA,kBACA,oCACA,mCACA,iBACA,uBACA,uBACA,2BACA,oBACA,yBACA,0BACA,sBACA,sBACA,4BACA,6BACA,sBACA,qBACA,8BACA,6BACA,8BACA,uBACA,8BACA,yBACA,qBACA,4BAGJ,CACErnB,MAAO,YACPqnB,MAAO,CACL,qBACA,yBACA,wBACA,kBACA,sBACA,mBACA,uBACA,uBACA,sBACA,qBACA,qBACA,uBACA,mBACA,gBACA,uBAGJ,CACErnB,MAAO,SACPqnB,MAAO,CACL,wBACA,2BACA,0BACA,yBACA,2BACA,0BACA,0BACA,wBACA,uBACA,uBACA,uBACA,wBACA,uBACA,yBACA,2BACA,wBACA,uBACA,2BACA,4BACA,wBACA,yBACA,uBACA,2BACA,yBACA,wBACA,+BACA,+BACA,sBACA,yBACA,uBACA,uBACA,mBACA,qBACA,uBACA,qBACA,sBACA,uBACA,sBACA,wBACA,mBACA,yBACA,2BACA,wBACA,wBACA,uBACA,yBACA,0BACA,yBACA,yBACA,kBACA,oBACA,oBACA,wBACA,gCAGJ,CACErnB,MAAO,gBACPqnB,MAAO,CACL,uBACA,sBACA,yBACA,oBACA,qBACA,oBACA,mBACA,wBACA,wBACA,2BACA,mBACA,kBACA,iBACA,mBACA,oBACA,sBACA,wBACA,sBACA,oBACA,yBACA,0BACA,qBACA,uBACA,qBACA,sBACA,kBACA,yBACA,uBACA,uBAGJ,CACErnB,MAAO,WACPqnB,MAAO,CACL,oBACA,uBACA,yBACA,4BACA,qBACA,iBACA,kBACA,iBACA,iBACA,uBACA,iBACA,sBACA,mBACA,qBACA,qBACA,mBACA,yBACA,+BACA,sBACA,uBAGJ,CACErnB,MAAO,YACPqnB,MAAO,CACL,wBACA,yBACA,2BACA,kBACA,kBACA,sBACA,oBACA,iBACA,iBACA,kBACA,yBACA,mBACA,mBACA,oBACA,4BACA,0BACA,2BACA,2BACA,oBACA,wBACA,sBACA,qBACA,qBACA,oBACA,kBACA,kBACA,2BACA,qBACA,sBACA,kBACA,qBACA,sBACA,oBACA,sBACA,mBACA,oBACA,qBACA,sBACA,0BACA,oBAGJ,CACErnB,MAAO,mBACPqnB,MAAO,CACL,wBACA,uBACA,4BACA,sBACA,kBACA,oBACA,qBACA,wBACA,kBACA,0BACA,0BAGJ,CACErnB,MAAO,gBACPqnB,MAAO,CACL,kBACA,oBACA,oBACA,oBACA,mBACA,qBACA,mBACA,mBACA,oBACA,oBACA,mBACA,qBACA,qBACA,qBACA,oBACA,sBACA,sBACA,sBACA,uBACA,uBACA,qBACA,uBAGJ,CACErnB,MAAO,QACPqnB,MAAO,CACL,yBACA,uBACA,wBACA,kBACA,kBACA,yBACA,uBACA,mBACA,wBACA,kBACA,yBACA,iBACA,0BACA,wBACA,uBACA,wBACA,mBACA,sBACA,0BACA,mBACA,uBACA,wBACA,qBACA,mBACA,6BACA,sBAGJ,CACErnB,MAAO,SACPqnB,MAAO,CACL,oBACA,sBACA,2BACA,6BACA,0BACA,0BACA,yBACA,mBACA,6BACA,uBACA,mBACA,yBACA,kBACA,4BACA,wBAGJ,CACErnB,MAAO,SACPqnB,MAAO,CACL,qBACA,oBACA,kBACA,yBACA,oBACA,sBACA,kBACA,qBACA,4BACA,0BACA,iCACA,sBACA,uBACA,sBACA,2BACA,uBACA,0BACA,gCACA,2BACA,4BACA,wBACA,oBACA,yBACA,oBACA,sBACA,2BAGJ,CACErnB,MAAO,oBACPqnB,MAAO,CACL,uBACA,uBACA,kBACA,sBACA,wBACA,qBACA,mBACA,sBACA,oBACA,oBACA,iBACA,mBACA,uBACA,mBACA,0BACA,wBACA,wBACA,qBACA,qBACA,qBACA,mBACA,yBACA,2BAGJ,CACErnB,MAAO,WACPqnB,MAAO,CACL,+BACA,4BACA,oBACA,iBACA,uBACA,sBACA,0BACA,sBACA,sBACA,2BACA,oBACA,sBACA,4BACA,oBACA,4BACA,0BACA,6BACA,8BAGJ,CACErnB,MAAO,YACPqnB,MAAO,CACL,wBACA,0BACA,oBACA,wBACA,uBACA,oBACA,oBACA,wBACA,+BACA,wBACA,0BACA,iBACA,oBACA,6BAGJ,CACErnB,MAAO,wBACPqnB,MAAO,CACL,0BACA,6BACA,2BACA,mBACA,qBACA,wBACA,sBACA,uBACA,0BACA,0BACA,0BACA,6BACA,uBACA,2BACA,6BACA,sBACA,0BACA,6BACA,oBACA,qBACA,uBACA,wBACA,2BACA,yBACA,kBACA,oBACA,oBACA,wBACA,mBACA,oBACA,yBACA,2BACA,yBAGJ,CACErnB,MAAO,kBACPqnB,MAAO,CACL,uBACA,sBACA,oBACA,yBACA,yBACA,sBACA,iBACA,mBACA,wBACA,qBACA,qBACA,sBACA,kBACA,oBACA,iBACA,wBACA,iBACA,oBACA,sBACA,oBACA,0BACA,wBACA,qBAGJ,CACErnB,MAAO,eACPqnB,MAAO,CACL,uBACA,qBACA,kBACA,wBACA,yBACA,sBACA,oBACA,uBACA,mBACA,mBACA,uBACA,iBACA,oBACA,0BACA,iBACA,uBACA,mBACA,wBACA,yBACA,wBACA,oBACA,qBACA,oBACA,qBACA,qBACA,mBACA,uBACA,mBACA,mBACA,kBACA,qBACA,iBACA,qBACA,kBACA,uBACA,qBACA,uBACA,wBACA,kBACA,mBACA,qBACA,mBACA,sBACA,sBACA,wBACA,oBACA,wBACA,uBACA,wBACA,oBACA,qBACA,iBACA,oBAGJ,CACErnB,MAAO,iBACPqnB,MAAO,CACL,2BACA,4BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,8BACA,8BACA,8BACA,8BACA,kCACA,mCACA,mCACA,mCACA,iCACA,oCAGJ,CACErnB,MAAO,SACPqnB,MAAO,CACL,sBACA,oBACA,yBACA,sBACA,qBACA,0BACA,sBACA,yBACA,qBACA,iBACA,mBACA,qBACA,sBACA,sBACA,wBACA,uBACA,yBACA,kBACA,wBACA,mBACA,uBACA,yBACA,mBACA,uBACA,qBACA,2BACA,uBACA,qBACA,yBACA,sBACA,oBACA,2BAGJ,CACErnB,MAAO,OACPqnB,MAAO,CACL,yBACA,0BACA,uBACA,yBACA,mBACA,m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","file":"static/js/main.f5dfc88f.chunk.js","sourcesContent":["// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","// import {defaultLocale,localeOptions} from '../../config/defaultValues'\r\n\r\nimport {\r\n CHANGE_LOCALE,\r\n TENANTS,\r\n\tCURRENT_TENANT,\r\n\tLOADER\r\n} from '../actions';\r\n\r\nconst INIT_STATE = {\r\n locale: localStorage.getItem('__current_locale') || window.tenant.defaultLocale,\r\n tenants: JSON.parse(localStorage.getItem('tenants')),\r\n\tcurrentTenant: JSON.parse(localStorage.getItem('current_tenant')),\r\n\tloader: false\r\n};\r\n\r\nexport default (state = INIT_STATE, action) => {\r\n\tswitch (action.type) {\r\n\t\tcase CHANGE_LOCALE:\r\n return { ...state, locale:action.payload};\r\n case TENANTS:\r\n\t\t\treturn { ...state, tenants:action.payload};\r\n\t\tcase CURRENT_TENANT:\r\n\t\t\treturn { ...state, currentTenant:action.payload};\r\n\t\tcase LOADER:\r\n\t\t\treturn { ...state, loader:action.payload};\r\n\t\tdefault: return { ...state };\r\n\t}\r\n}","import {\r\n MENU_ITEMS,\r\n\tMENU_SET_CLASSNAMES,\r\n\tMENU_CONTAINER_ADD_CLASSNAME,\r\n\tMENU_CLICK_MOBILE_MENU,\r\n\tMENU_CHANGE_DEFAULT_CLASSES,\r\n\tMENU_CHANGE_HAS_SUB_ITEM_STATUS\r\n} from '../actions';\r\n\r\nimport {defaultMenuType, subHiddenBreakpoint, menuHiddenBreakpoint } from '../../config/defaultValues'\r\n\r\nconst INIT_STATE = {\r\n \tmenuItems: localStorage.getItem('menu_items') ? JSON.parse(localStorage.getItem('menu_items')) : [],\r\n\tcontainerClassnames: defaultMenuType,\r\n\tsubHiddenBreakpoint,\r\n\tmenuHiddenBreakpoint,\r\n\tmenuClickCount: 0,\r\n\tselectedMenuHasSubItems: defaultMenuType===\"menu-default\" //if you use menu-sub-hidden as default menu type, set value of this variable to false\r\n};\r\n\r\nexport default (state = INIT_STATE, action) => {\r\n\tswitch (action.type) {\r\n\r\n case MENU_ITEMS:\r\n\t\treturn { ...state, menuItems: action.payload }\r\n \r\n\t\tcase MENU_CHANGE_HAS_SUB_ITEM_STATUS:\r\n\t\treturn Object.assign({}, state, {\r\n\t\t\tselectedMenuHasSubItems: action.payload\r\n\t\t})\r\n\r\n\t\tcase MENU_SET_CLASSNAMES:\r\n\t\treturn Object.assign({}, state, {\r\n\t\t\tcontainerClassnames: action.payload.containerClassnames,\r\n\t\t\tmenuClickCount:action.payload.menuClickCount\r\n\t\t})\r\n\r\n\t\tcase MENU_CLICK_MOBILE_MENU:\r\n\t\treturn Object.assign({}, state, {\r\n\t\t\tcontainerClassnames: action.payload.containerClassnames,\r\n\t\t\tmenuClickCount:action.payload.menuClickCount\r\n\t\t})\r\n\r\n\t\tcase MENU_CONTAINER_ADD_CLASSNAME:\r\n\t\treturn Object.assign({}, state, {\r\n\t\t\tcontainerClassnames: action.payload\r\n\t\t})\r\n\r\n\t\tcase MENU_CHANGE_DEFAULT_CLASSES:\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tcontainerClassnames: action.payload\r\n\t\t\t})\r\n\t\t\t\r\n\t\tdefault: return { ...state };\r\n\t}\r\n}\r\n","import {\r\n DEEPLINK,\r\n PARAMS,\r\n MODALS\r\n} from '../actions';\r\n\r\nconst INIT_STATE = {\r\n\tdeepLink: (() => {\r\n let url = window.location.href\r\n let d = null\r\n if (url.indexOf('deepLink') > -1) {\r\n d = url.split(\"=\")\r\n d = d[1] \r\n d = JSON.parse(atob(d))\r\n return d\r\n }\r\n\t})(),\r\n params: null,\r\n modals: [],\r\n preview: null\r\n};\r\n\r\nexport default (state = INIT_STATE, action) => {\r\n\tswitch (action.type) {\r\n\t\tcase DEEPLINK:\r\n return { ...state, deepLink:action.payload};\r\n case PARAMS:\r\n return { ...state, params:action.payload};\r\n case MODALS:\r\n return { ...state, modals:action.payload};\r\n\t\tdefault: return { ...state };\r\n\t}\r\n}","import { combineReducers } from 'redux';\r\nimport settings from './settings/reducer';\r\nimport menu from './menu/reducer';\r\nimport authUser from './auth/reducer';\r\nimport utils from './utils/reducer';\r\n\r\n\r\nconst reducers = combineReducers({\r\n menu,\r\n settings,\r\n authUser,\r\n utils\r\n});\r\n\r\nexport default reducers;","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport {themeColorStorageKey} from \"../../config/defaultValues\"\r\n\r\n\r\nclass ColorSwitcher extends Component {\r\n constructor(props) {\r\n super();\r\n\r\n this.state = {\r\n isOpen: false,\r\n selectedColor: localStorage.getItem(themeColorStorageKey)\r\n };\r\n }\r\n\r\n getContainer = () => {\r\n return ReactDOM.findDOMNode(this);\r\n };\r\n\r\n toggle = e => {\r\n e.preventDefault();\r\n const isOpen = this.state.isOpen;\r\n if (!isOpen) {\r\n this.addEvents();\r\n } else {\r\n this.removeEvents();\r\n }\r\n this.setState({\r\n isOpen: !isOpen\r\n });\r\n };\r\n changeThemeColor = (e, color) => {\r\n e.preventDefault();\r\n localStorage.setItem(themeColorStorageKey, color);\r\n this.toggle(e);\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 500);\r\n };\r\n\r\n componentWillMount() {\r\n this.removeEvents();\r\n }\r\n\r\n addEvents = () => {\r\n [\"click\", \"touchstart\"].forEach(event =>\r\n document.addEventListener(event, this.handleDocumentClick, true)\r\n );\r\n };\r\n removeEvents = () => {\r\n [\"click\", \"touchstart\"].forEach(event =>\r\n document.removeEventListener(event, this.handleDocumentClick, true)\r\n );\r\n };\r\n\r\n handleDocumentClick = e => {\r\n const container = this.getContainer();\r\n if (container.contains(e.target) || container === e.target) {\r\n return;\r\n }\r\n this.toggle(e);\r\n };\r\n\r\n render() {\r\n const selectedColor = this.state.selectedColor;\r\n return (\r\n
\r\n
\r\n

Light Theme

\r\n
\r\n this.changeThemeColor(e, \"light.purple\")}\r\n >\r\n light.purple\r\n \r\n this.changeThemeColor(e, \"light.blue\")}\r\n >\r\n light.blue\r\n \r\n this.changeThemeColor(e, \"light.green\")}\r\n >\r\n light.green\r\n \r\n this.changeThemeColor(e, \"light.orange\")}\r\n >\r\n light.orange\r\n \r\n this.changeThemeColor(e, \"light.red\")}\r\n >\r\n light.red\r\n \r\n
\r\n

Dark Theme

\r\n
\r\n this.changeThemeColor(e, \"dark.purple\")}\r\n >\r\n dark.purple\r\n \r\n this.changeThemeColor(e, \"dark.blue\")}\r\n >\r\n dark.blue\r\n \r\n this.changeThemeColor(e, \"dark.green\")}\r\n >\r\n dark.green\r\n \r\n this.changeThemeColor(e, \"dark.orange\")}\r\n >\r\n dark.orange\r\n \r\n this.changeThemeColor(e, \"dark.red\")}\r\n >\r\n dark.red\r\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 ColorSwitcher;\r\n","import React from \"react\";\r\nimport { Modal } from \"reactstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport { setLoader } from \"../../redux/actions\";\r\n\r\nclass Loader extends React.Component {\r\n toggle = () => {\r\n setLoader(!this.props.loader)\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n \r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = ({ settings }) => {\r\n const { loader } = settings\r\n return { loader };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps, { setLoader }\r\n)(Loader);","import React, { Component } from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nclass Main extends Component {\r\n render() {\r\n return \r\n }\r\n}\r\nexport default Main;\r\n","import React from 'react';\r\nimport { FormattedMessage, injectIntl } from 'react-intl';\r\n\r\nconst InjectMassage = props => ;\r\n\r\nexport default injectIntl(InjectMassage, {\r\n withRef: false\r\n});\r\n","import React, {Fragment} from \"react\";\r\nconst MenuIcon = () => {\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\nexport default MenuIcon;\r\n","import React from \"react\";\r\n\r\nconst MobileMenuIcon = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MobileMenuIcon;\r\n","import React from \"react\";\r\nimport { UncontrolledDropdown, DropdownToggle, DropdownMenu } from \"reactstrap\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport IntlMessages from \"../../helpers/IntlMessages\";\r\n\r\nconst TopnavEasyAccess = () => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default TopnavEasyAccess;\r\n","const data = [\r\n {\r\n img: '/assets/img/profile-pic-l-2.jpg',\r\n title: 'Joisse just sent a new comment!',\r\n date: '09.04.2018 - 12:45',\r\n id: 1\r\n },\r\n {\r\n img: '/assets/img/notification-thumb.jpg',\r\n title: '1 item is out of stock!',\r\n date: '09.04.2018 - 12:45',\r\n id: 2\r\n },\r\n {\r\n img: '/assets/img/notification-thumb-2.jpg',\r\n title: 'New order received! It is total $147,20.',\r\n date: '09.04.2018 - 12:45',\r\n id: 3\r\n },\r\n {\r\n img: '/assets/img/notification-thumb-3.jpg',\r\n title: '3 items just added to wish list by a user!',\r\n date: '09.04.2018 - 12:45',\r\n id: 4\r\n }\r\n]\r\nexport default data\r\n","import React from \"react\";\r\nimport { UncontrolledDropdown, DropdownToggle, DropdownMenu } from \"reactstrap\";\r\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\r\n\r\nimport notifications from \"../../data/notifications\";\r\n\r\nconst NotificationItem = ({ img, title, date }) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst TopnavNotifications = () => {\r\n return (\r\n
\r\n \r\n \r\n \r\n 3\r\n \r\n \r\n \r\n {notifications.map((notification, index) => {\r\n return ;\r\n })}\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default TopnavNotifications;\r\n","import React, { Component } from \"react\";\r\nimport Switch from \"rc-switch\";\r\nimport \"rc-switch/assets/index.css\";\r\nimport { Tooltip } from \"reactstrap\";\r\n\r\nimport { defaultColor,themeColorStorageKey } from \"../../config/defaultValues\";\r\n\r\nexport default class TopnavDarkSwitch extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n switchChecked: false,\r\n tooltipOpen: false\r\n };\r\n }\r\n componentDidMount() {\r\n const color = this.getColor();\r\n this.setState({\r\n switchChecked:color.indexOf('dark')>-1\r\n })\r\n }\r\n\r\n toggle = () => {\r\n this.setState(prevState => ({\r\n tooltipOpen: !prevState.tooltipOpen\r\n }));\r\n };\r\n\r\n getColor = () => {\r\n return localStorage.getItem(themeColorStorageKey)\r\n ? localStorage.getItem(themeColorStorageKey)\r\n : defaultColor;\r\n };\r\n\r\n changeMode = () => {\r\n let color = this.getColor();\r\n\r\n if(color.indexOf('dark')>-1){\r\n color= color.replace('dark','light')\r\n }else if(color.indexOf('light')>-1){\r\n color= color.replace('light','dark')\r\n }\r\n\r\n this.setState({\r\n switchChecked:color.indexOf('dark')>-1\r\n },()=>{\r\n localStorage.setItem(themeColorStorageKey,color)\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 500);\r\n })\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n\r\n \r\n Modo ecológico\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {\r\n Button,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n Input,\r\n Label\r\n} from \"reactstrap\";\r\nimport Select from \"react-select\";\r\nimport CustomSelectInput from \"../../components/common/CustomSelectInput\";\r\nimport IntlMessages from \"../../helpers/IntlMessages\";\r\nimport { servicePathDefault } from \"../../config/defaultValues\";\r\nimport _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\n\r\nexport default class ContactUs extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.send = this.send.bind(this);\r\n this.state = {\r\n subject: '',\r\n body:'',\r\n sender: props.userAdminEmail\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n \r\n }\r\n\r\n handleChangeSelect = selectedOption => {\r\n this.setState({ subject: selectedOption });\r\n };\r\n\r\n send() {\r\n let err = null;\r\n if (this.state.subject.label==='' || this.state.body==='') err = 'Please select a reason and enter a summary';\r\n else if (this.state.sender.indexOf('@') === -1) err = 'Please enter your email';\r\n \r\n if (err) {\r\n NotificationManager.primary(err, \"Please complete...\", 3000, null, null)\r\n return;\r\n }\r\n\r\n //this.props.setLoader(true);\r\n _axios.post(servicePathDefault + 'tenants/contact/us/', { Subject: this.state.subject.label, Body: this.state.body, Sender: this.state.sender })\r\n .then(r => {\r\n this.props.toggleModal();\r\n //this.props.setLoader(false);\r\n NotificationManager.success(\"We have received your message and also sent you a copy to \"+this.state.sender+\". Please make sure emails from support@getbee.com won't go into SPAM.\", \"Great!\", 3000, null, null)\r\n })\r\n .catch(e => {\r\n //this.props.setLoader(false);\r\n NotificationManager.error(e, \"Somehting bad happened :(\", 5000, null, null)\r\n })\r\n }\r\n\r\n render() {\r\n const modalOpen = this.props.modalOpen;\r\n const toggleModal = this.props.toggleModal;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n this.setState({ body: e.target.value })} />\r\n\r\n\r\n \r\n this.setState({ sender: e.target.value })} />\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport {\r\n UncontrolledDropdown,\r\n DropdownItem,\r\n DropdownToggle,\r\n DropdownMenu,\r\n Input\r\n} from \"reactstrap\";\r\n\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport {\r\n setContainerClassnames,\r\n clickOnMobileMenu,\r\n loginUser,\r\n logoutUser,\r\n changeLocale,\r\n setCurrentTenant,\r\n setMenuItems,\r\n setLoader\r\n} from \"../../redux/actions\";\r\n\r\nimport {\r\n menuHiddenBreakpoint,\r\n isDarkSwitchActive,\r\n searchPath,\r\n topNavOptions,\r\n tenants\r\n} from \"../../config/defaultValues\";\r\n\r\nimport IntlMessages from \"../../helpers/IntlMessages\";\r\nimport { MobileMenuIcon, MenuIcon } from \"../../components/svg\";\r\nimport TopnavEasyAccess from \"./Topnav.EasyAccess\";\r\nimport TopnavNotifications from \"./Topnav.Notifications\";\r\nimport TopnavDarkSwitch from \"./Topnav.DarkSwitch\";\r\nimport _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport { getDirection, setDirection } from \"../../helpers/Utils\";\r\nimport ContactModal from \"../../components/utils/ContactModal\";\r\n\r\nclass TopNav extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isInFullScreen: false,\r\n searchKeyword: \"\",\r\n modalOpen: false\r\n };\r\n\r\n if (this.props.currentTenant && this.props.currentTenant.id !== 0) this.getTenant(this.props.currentTenant.id);\r\n\r\n }\r\n\r\n handleChangeLocale = (locale, direction) => {\r\n this.props.changeLocale(locale);\r\n\r\n const currentDirection = getDirection().direction;\r\n if (direction !== currentDirection) {\r\n setDirection(direction);\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 500);\r\n }\r\n };\r\n\r\n handleChangeTenant = (t) => {\r\n if (t.id === 0) return;\r\n this.props.setCurrentTenant(t);\r\n this.props.setLoader(true);\r\n window.location.reload();\r\n };\r\n\r\n getTenant = (id) => {\r\n if (id === undefined) {\r\n // get from local\r\n let menu = JSON.parse(localStorage.getItem('menu_items'));\r\n this.props.setMenuItems(menu, true);\r\n return;\r\n }\r\n _axios.get(tenants.pathOne + '/' + id)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n this.props.setMenuItems(r.data.menu, true)\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n };\r\n\r\n isInFullScreen = () => {\r\n return (\r\n (document.fullscreenElement && document.fullscreenElement !== null) ||\r\n (document.webkitFullscreenElement &&\r\n document.webkitFullscreenElement !== null) ||\r\n (document.mozFullScreenElement &&\r\n document.mozFullScreenElement !== null) ||\r\n (document.msFullscreenElement && document.msFullscreenElement !== null)\r\n );\r\n };\r\n\r\n handleSearchIconClick = e => {\r\n if (window.innerWidth < menuHiddenBreakpoint) {\r\n let elem = e.target;\r\n if (!e.target.classList.contains(\"search\")) {\r\n if (e.target.parentElement.classList.contains(\"search\")) {\r\n elem = e.target.parentElement;\r\n } else if (\r\n e.target.parentElement.parentElement.classList.contains(\"search\")\r\n ) {\r\n elem = e.target.parentElement.parentElement;\r\n }\r\n }\r\n\r\n if (elem.classList.contains(\"mobile-view\")) {\r\n this.search();\r\n elem.classList.remove(\"mobile-view\");\r\n this.removeEventsSearch();\r\n } else {\r\n elem.classList.add(\"mobile-view\");\r\n this.addEventsSearch();\r\n }\r\n } else {\r\n this.search();\r\n }\r\n };\r\n\r\n addEventsSearch = () => {\r\n document.addEventListener(\"click\", this.handleDocumentClickSearch, true);\r\n };\r\n\r\n removeEventsSearch = () => {\r\n document.removeEventListener(\"click\", this.handleDocumentClickSearch, true);\r\n };\r\n\r\n handleDocumentClickSearch = e => {\r\n let isSearchClick = false;\r\n if (\r\n e.target &&\r\n e.target.classList &&\r\n (e.target.classList.contains(\"navbar\") ||\r\n e.target.classList.contains(\"simple-icon-magnifier\"))\r\n ) {\r\n isSearchClick = true;\r\n if (e.target.classList.contains(\"simple-icon-magnifier\")) {\r\n this.search();\r\n }\r\n } else if (\r\n e.target.parentElement &&\r\n e.target.parentElement.classList &&\r\n e.target.parentElement.classList.contains(\"search\")\r\n ) {\r\n isSearchClick = true;\r\n }\r\n\r\n if (!isSearchClick) {\r\n const input = document.querySelector(\".mobile-view\");\r\n if (input && input.classList) input.classList.remove(\"mobile-view\");\r\n this.removeEventsSearch();\r\n this.setState({\r\n searchKeyword: \"\"\r\n });\r\n }\r\n };\r\n\r\n handleSearchInputChange = e => {\r\n this.setState({\r\n searchKeyword: e.target.value\r\n });\r\n };\r\n\r\n handleSearchInputKeyPress = e => {\r\n if (e.key === \"Enter\") {\r\n this.search();\r\n }\r\n };\r\n\r\n search = () => {\r\n this.props.history.push(\"/app/pages/search/\" + this.state.searchKeyword);\r\n this.setState({\r\n searchKeyword: \"\"\r\n });\r\n };\r\n\r\n toggleModal = () => {\r\n this.setState({\r\n modalOpen: !this.state.modalOpen\r\n });\r\n };\r\n\r\n toggleFullScreen = () => {\r\n const isInFullScreen = this.isInFullScreen();\r\n\r\n var docElm = document.documentElement;\r\n if (!isInFullScreen) {\r\n if (docElm.requestFullscreen) {\r\n docElm.requestFullscreen();\r\n } else if (docElm.mozRequestFullScreen) {\r\n docElm.mozRequestFullScreen();\r\n } else if (docElm.webkitRequestFullScreen) {\r\n docElm.webkitRequestFullScreen();\r\n } else if (docElm.msRequestFullscreen) {\r\n docElm.msRequestFullscreen();\r\n }\r\n } else {\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n } else if (document.webkitExitFullscreen) {\r\n document.webkitExitFullscreen();\r\n } else if (document.mozCancelFullScreen) {\r\n document.mozCancelFullScreen();\r\n } else if (document.msExitFullscreen) {\r\n document.msExitFullscreen();\r\n }\r\n }\r\n this.setState({\r\n isInFullScreen: !isInFullScreen\r\n });\r\n };\r\n\r\n handleLogout = () => {\r\n this.props.logoutUser(this.props.history);\r\n };\r\n\r\n menuButtonClick = (e, menuClickCount, containerClassnames) => {\r\n e.preventDefault();\r\n\r\n setTimeout(() => {\r\n var event = document.createEvent(\"HTMLEvents\");\r\n event.initEvent(\"resize\", false, false);\r\n window.dispatchEvent(event);\r\n }, 350);\r\n this.props.setContainerClassnames(\r\n ++menuClickCount,\r\n containerClassnames,\r\n this.props.selectedMenuHasSubItems\r\n );\r\n };\r\n\r\n mobileMenuButtonClick = (e, containerClassnames) => {\r\n e.preventDefault();\r\n this.props.clickOnMobileMenu(containerClassnames);\r\n };\r\n\r\n render() {\r\n const { containerClassnames, menuClickCount, locale, currentTenant, userAdmin } = this.props;\r\n const { messages } = this.props.intl;\r\n return (\r\n \r\n\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ menu, settings, authUser }) => {\r\n const { containerClassnames, menuClickCount, selectedMenuHasSubItems } = menu;\r\n const { locale, tenants, currentTenant } = settings;\r\n const { userAdmin } = authUser;\r\n return {\r\n containerClassnames,\r\n menuClickCount,\r\n selectedMenuHasSubItems,\r\n locale,\r\n tenants,\r\n currentTenant,\r\n userAdmin\r\n };\r\n};\r\nexport default injectIntl(\r\n connect(\r\n mapStateToProps,\r\n { setContainerClassnames, clickOnMobileMenu, logoutUser, loginUser, changeLocale, setCurrentTenant, setMenuItems, setLoader }\r\n )(TopNav)\r\n);\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { Nav, NavItem, UncontrolledCollapse } from \"reactstrap\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport classnames from \"classnames\";\r\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { setParams } from \"../../redux/actions\";\r\n\r\n\r\nimport {\r\n setContainerClassnames,\r\n addContainerClassname,\r\n changeDefaultClassnames,\r\n changeSelectedMenuHasSubItems\r\n} from \"../../redux/actions\";\r\n\r\nclass Sidebar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedParentMenu: \"\",\r\n viewingParentMenu: \"\"\r\n };\r\n }\r\n\r\n handleWindowResize = event => {\r\n if (event && !event.isTrusted) {\r\n return;\r\n }\r\n const { containerClassnames } = this.props;\r\n let nextClasses = this.getMenuClassesForResize(containerClassnames);\r\n this.props.setContainerClassnames(\r\n 0,\r\n nextClasses.join(\" \"),\r\n this.props.selectedMenuHasSubItems\r\n );\r\n };\r\n\r\n handleDocumentClick = e => {\r\n const container = this.getContainer();\r\n let isMenuClick = false;\r\n if (\r\n e.target &&\r\n e.target.classList &&\r\n (e.target.classList.contains(\"menu-button\") ||\r\n e.target.classList.contains(\"menu-button-mobile\"))\r\n ) {\r\n isMenuClick = true;\r\n } else if (\r\n e.target.parentElement &&\r\n e.target.parentElement.classList &&\r\n (e.target.parentElement.classList.contains(\"menu-button\") ||\r\n e.target.parentElement.classList.contains(\"menu-button-mobile\"))\r\n ) {\r\n isMenuClick = true;\r\n } else if (\r\n e.target.parentElement &&\r\n e.target.parentElement.parentElement &&\r\n e.target.parentElement.parentElement.classList &&\r\n (e.target.parentElement.parentElement.classList.contains(\"menu-button\") ||\r\n e.target.parentElement.parentElement.classList.contains(\r\n \"menu-button-mobile\"\r\n ))\r\n ) {\r\n isMenuClick = true;\r\n }\r\n if (container.contains(e.target) || container === e.target || isMenuClick) {\r\n return;\r\n }\r\n this.setState({\r\n viewingParentMenu: \"\"\r\n });\r\n this.toggle();\r\n };\r\n\r\n getMenuClassesForResize = classes => {\r\n const { menuHiddenBreakpoint, subHiddenBreakpoint } = this.props;\r\n let nextClasses = classes.split(\" \").filter(x => x !== \"\");\r\n const windowWidth = window.innerWidth;\r\n if (windowWidth < menuHiddenBreakpoint) {\r\n nextClasses.push(\"menu-mobile\");\r\n } else if (windowWidth < subHiddenBreakpoint) {\r\n nextClasses = nextClasses.filter(x => x !== \"menu-mobile\");\r\n if (\r\n nextClasses.includes(\"menu-default\") &&\r\n !nextClasses.includes(\"menu-sub-hidden\")\r\n ) {\r\n nextClasses.push(\"menu-sub-hidden\");\r\n }\r\n } else {\r\n nextClasses = nextClasses.filter(x => x !== \"menu-mobile\");\r\n if (\r\n nextClasses.includes(\"menu-default\") &&\r\n nextClasses.includes(\"menu-sub-hidden\")\r\n ) {\r\n nextClasses = nextClasses.filter(x => x !== \"menu-sub-hidden\");\r\n }\r\n }\r\n return nextClasses;\r\n };\r\n\r\n getContainer = () => {\r\n return ReactDOM.findDOMNode(this);\r\n };\r\n\r\n toggle = () => {\r\n const hasSubItems = this.getIsHasSubItem();\r\n this.props.changeSelectedMenuHasSubItems(hasSubItems)\r\n const { containerClassnames, menuClickCount } = this.props;\r\n const currentClasses = containerClassnames\r\n ? containerClassnames.split(\" \").filter(x => x !== \"\")\r\n : \"\";\r\n let clickIndex = -1;\r\n\r\n if (!hasSubItems) {\r\n if (\r\n currentClasses.includes(\"menu-default\") &&\r\n (menuClickCount % 4 === 0 || menuClickCount % 4 === 3)\r\n ) {\r\n clickIndex = 1;\r\n } else if (\r\n currentClasses.includes(\"menu-sub-hidden\") &&\r\n (menuClickCount === 2 || menuClickCount === 3)\r\n ) {\r\n clickIndex = 0;\r\n } else if (\r\n currentClasses.includes(\"menu-hidden\") ||\r\n currentClasses.includes(\"menu-mobile\")\r\n ) {\r\n clickIndex = 0;\r\n }\r\n } else {\r\n if (currentClasses.includes(\"menu-sub-hidden\") && menuClickCount === 3) {\r\n clickIndex = 2;\r\n } else if (\r\n currentClasses.includes(\"menu-hidden\") ||\r\n currentClasses.includes(\"menu-mobile\")\r\n ) {\r\n clickIndex = 0;\r\n }\r\n }\r\n if (clickIndex >= 0) {\r\n this.props.setContainerClassnames(\r\n clickIndex,\r\n containerClassnames,\r\n hasSubItems\r\n );\r\n }\r\n };\r\n\r\n handleProps = () => {\r\n this.addEvents();\r\n };\r\n\r\n addEvents = () => {\r\n [\"click\", \"touchstart\", \"touchend\"].forEach(event =>\r\n document.addEventListener(event, this.handleDocumentClick, true)\r\n );\r\n };\r\n\r\n removeEvents = () => {\r\n [\"click\", \"touchstart\", \"touchend\"].forEach(event =>\r\n document.removeEventListener(event, this.handleDocumentClick, true)\r\n );\r\n };\r\n\r\n setSelectedLiActive = callback => {\r\n const oldli = document.querySelector(\".sub-menu li.active\");\r\n if (oldli != null) {\r\n oldli.classList.remove(\"active\");\r\n }\r\n\r\n /* set selected parent menu */\r\n const selectedlink = document.querySelector(\".sub-menu a.active\");\r\n if (selectedlink != null) {\r\n selectedlink.parentElement.classList.add(\"active\");\r\n this.setState(\r\n {\r\n selectedParentMenu: selectedlink.parentElement.parentElement.getAttribute(\r\n \"data-parent\"\r\n )\r\n },\r\n callback\r\n );\r\n } else {\r\n var selectedParentNoSubItem = document.querySelector(\r\n \".main-menu li a.active\"\r\n );\r\n if (selectedParentNoSubItem != null) {\r\n this.setState(\r\n {\r\n selectedParentMenu: selectedParentNoSubItem.getAttribute(\r\n \"data-flag\"\r\n )\r\n },\r\n callback\r\n );\r\n } else if (this.state.selectedParentMenu === \"\") {\r\n this.setState(\r\n {\r\n selectedParentMenu: this.props.menuItems.length>0 ? this.props.menuItems[0].id: undefined\r\n },\r\n callback\r\n );\r\n }\r\n }\r\n };\r\n\r\n setHasSubItemStatus = () => {\r\n const hasSubmenu = this.getIsHasSubItem();\r\n this.props.changeSelectedMenuHasSubItems(hasSubmenu);\r\n this.toggle();\r\n };\r\n\r\n getIsHasSubItem = () => {\r\n const { selectedParentMenu } = this.state;\r\n const menuItem = this.props.menuItems.find(x => x.id === selectedParentMenu);\r\n if (menuItem)\r\n return menuItem && menuItem.subs && menuItem.subs.length > 0\r\n ? true\r\n : false;\r\n else return false;\r\n };\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.location.pathname !== prevProps.location.pathname) {\r\n this.setSelectedLiActive(this.setHasSubItemStatus);\r\n\r\n window.scrollTo(0, 0);\r\n }\r\n this.handleProps();\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener(\"resize\", this.handleWindowResize);\r\n this.handleWindowResize();\r\n this.handleProps();\r\n this.setSelectedLiActive(this.setHasSubItemStatus);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.removeEvents();\r\n window.removeEventListener(\"resize\", this.handleWindowResize);\r\n }\r\n\r\n openSubMenu = (e, menuItem) => {\r\n const selectedParent = menuItem.id;\r\n const hasSubMenu = menuItem.subs && menuItem.subs.length > 0;\r\n this.props.changeSelectedMenuHasSubItems(hasSubMenu);\r\n if (!hasSubMenu) {\r\n this.setState({\r\n viewingParentMenu: selectedParent,\r\n selectedParentMenu: selectedParent\r\n });\r\n this.toggle();\r\n } else {\r\n e.preventDefault();\r\n\r\n const { containerClassnames, menuClickCount } = this.props;\r\n const currentClasses = containerClassnames\r\n ? containerClassnames.split(\" \").filter(x => x !== \"\")\r\n : \"\";\r\n\r\n if (!currentClasses.includes(\"menu-mobile\")) {\r\n if (\r\n currentClasses.includes(\"menu-sub-hidden\") &&\r\n (menuClickCount === 2 || menuClickCount === 0)\r\n ) {\r\n this.props.setContainerClassnames(3, containerClassnames, hasSubMenu);\r\n } else if (\r\n currentClasses.includes(\"menu-hidden\") &&\r\n (menuClickCount === 1 || menuClickCount === 3)\r\n ) {\r\n this.props.setContainerClassnames(2, containerClassnames, hasSubMenu);\r\n } else if (\r\n currentClasses.includes(\"menu-default\") &&\r\n !currentClasses.includes(\"menu-sub-hidden\") &&\r\n (menuClickCount === 1 || menuClickCount === 3)\r\n ) {\r\n this.props.setContainerClassnames(0, containerClassnames, hasSubMenu);\r\n }\r\n } else {\r\n this.props.addContainerClassname(\r\n \"sub-show-temporary\",\r\n containerClassnames\r\n );\r\n }\r\n this.setState({\r\n viewingParentMenu: selectedParent\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n const { selectedParentMenu, viewingParentMenu } = this.state;\r\n const { locale, menuItems } = this.props;\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 {menuItems &&\r\n menuItems.filter(f=>!f.hidden).map(item => {\r\n return (\r\n \r\n {item.subs &&\r\n item.subs.filter(f=>!f.hidden).map((sub, index) => {\r\n return (\r\n \r\n {sub.newWindow ? (\r\n \r\n {\" \"}\r\n {locale === 'es' ? sub.label : sub.labelEn} \r\n \r\n ) : sub.subs && sub.subs.length > 0 ? (\r\n \r\n \r\n {\" \"}\r\n {locale === 'es' ? sub.label : sub.labelEn} \r\n \r\n\r\n \r\n \r\n \r\n \r\n ) : (\r\n { setTimeout(() => {this.props.setParams({setupMsg: sub.setupMsg})}, 250) }}>\r\n
\r\n \r\n
\r\n
\r\n {locale === 'es' ? sub.label : sub.labelEn} \r\n
\r\n { sub.desc }\r\n
\r\n
\r\n \r\n )}\r\n
\r\n );\r\n })}\r\n \r\n );\r\n })}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ menu, settings, authUser, utils }) => {\r\n const {\r\n menuItems,\r\n containerClassnames,\r\n subHiddenBreakpoint,\r\n menuHiddenBreakpoint,\r\n menuClickCount,\r\n selectedMenuHasSubItems\r\n } = menu;\r\n const { userAdmin } = authUser;\r\n const { locale } = settings;\r\n const { params } = utils\r\n return {\r\n menuItems,\r\n containerClassnames,\r\n subHiddenBreakpoint,\r\n menuHiddenBreakpoint,\r\n menuClickCount,\r\n selectedMenuHasSubItems,\r\n userAdmin,\r\n locale,\r\n params\r\n };\r\n};\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n {\r\n setContainerClassnames,\r\n addContainerClassname,\r\n changeDefaultClassnames,\r\n changeSelectedMenuHasSubItems,\r\n setParams\r\n }\r\n )(Sidebar)\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter} from \"react-router-dom\";\r\n\r\nimport TopNav from \"../containers/navs/Topnav\";\r\nimport Sidebar from \"../containers/navs/Sidebar\";\r\nclass AppLayout extends Component {\r\n render() {\r\n const { containerClassnames, history, children } = this.props;\r\n return (\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\nconst mapStateToProps = ({ menu }) => {\r\n const { containerClassnames } = menu;\r\n return { containerClassnames };\r\n};\r\nconst mapActionToProps={}\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapActionToProps\r\n)(AppLayout));\r\n","\r\nconst data = [\r\n {value: 'Salud', label: 'Salud'},\r\n {value: 'Familiar', label: 'Familiar'},\r\n {value: 'Deporte', label: 'Deporte'},\r\n {value: 'Personal', label: 'Personal'},\r\n {value: 'Viaje', label: 'Viaje'}\r\n]\r\nexport default data","import React, { Component, Fragment } from \"react\";\r\nimport { setLoader, setDeeplink } from \"../../../../redux/actions\";\r\nimport moment from \"moment\"\r\nimport {\r\n Row,\r\n Button,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter\r\n} from \"reactstrap\";\r\nimport CustomModal from \"../../../../components/utils/CustomModal\";\r\nimport { Colxx } from \"../../../../components/common/CustomBootstrap\";\r\nimport _axios from \"../../../../libs/axios\";\r\nimport _moment from \"../../../../libs/moment\";\r\nimport { NotificationManager } from \"../../../../components/common/react-notifications\";\r\nimport FormCustom from \"../../../../components/utils/FormCustom\";\r\nimport Dialog from \"../../../../components/utils/Dialog\";\r\nimport { connect } from \"react-redux\";\r\nimport AppLocale from \"../../../../config/lang\";\r\nimport { getFileExtension } from \"../../../../helpers/Utils\"\r\nimport justificationReasons from '../../../../data/justificationReasons'\r\nimport { cloneDeep, debounce } from \"lodash\"\r\n\r\nconst defautltForm = {\r\n ID: null,\r\n attendanceTypeId: null,\r\n attendanceTypeName: null,\r\n comment: null,\r\n createdBy: null,\r\n createdByEmail: null,\r\n createdByName: null,\r\n createdByPhone: null,\r\n date: null,\r\n doc: null,\r\n docUrl: null,\r\n externalId: null,\r\n face: null,\r\n justification: null,\r\n last: null,\r\n last2: null,\r\n name: null,\r\n sectionTag: null,\r\n status: null,\r\n tillDate: null\r\n}\r\n\r\nlet actions = {\r\n create: true,\r\n edit: true\r\n}\r\n\r\nconst M = \"admJustification.\"\r\n\r\nclass AdmJustification extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n if (props.userAdmin.write.indexOf('admJustification') < 0) {\r\n actions.create = false\r\n actions.edit = false\r\n }\r\n\r\n this.state = {\r\n data: [],\r\n dataTemp: [],\r\n progressBar: false,\r\n form: defautltForm,\r\n formFilter: {\r\n status: 0,\r\n from: _moment().add(-6, 'days').format('YYYY-MM-DD'),\r\n to: _moment().format('YYYY-MM-DD'),\r\n search: \"\"\r\n },\r\n modal: false,\r\n modalDelete: false,\r\n idItemSelected: null,\r\n sessions: [],\r\n pupils: [],\r\n // upload files\r\n dropzones: [],\r\n uploadActive: -1,\r\n uploadFiles: null,\r\n actions: actions,\r\n preview: null\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n this.getData()\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n }\r\n\r\n componentWillUnmount() {\r\n }\r\n\r\n getData() {\r\n this.setState({ progressBar: true, data: [], dataTemp: [] })\r\n _axios\r\n .get('admJustification/get/?PageSize=1000&from=' + this.state.formFilter.from + '&to=' + this.state.formFilter.to + '§ionId=' + this.state.formFilter.sectionId + '&superSectionId=' + this.state.formFilter.superSectionId + '&type=' + this.state.formFilter.type + (this.state.formFilter.justification?'&justification=' + this.state.formFilter.justification:'') + '&justify=' + this.state.formFilter.status)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n let temp = r.data.Results.filter(e => e.status === this.state.formFilter.status || this.state.formFilter.status === 0)\r\n this.setState({ data: r.data.Results, dataTemp: temp })\r\n } else NotificationManager.error(r.msg, 'Opps', 4000, null, null, 'outline')\r\n this.setState({ progressBar: false })\r\n })\r\n }\r\n\r\n getDataById(item) {\r\n this.props.setLoader(true)\r\n _axios\r\n .get('admJustification/get/' + item.ID)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n if (r.data.doc && (r.data.doc.indexOf('.') === -1 || ['jpg','png','jpeg'].indexOf(getFileExtension(r.data.doc)) > -1)) {\r\n r.data.doc = r.data.doc+'.jpg'\r\n this.setState({preview: r.data.docUrl})\r\n }\r\n r.data.attendanceTypeId = r.data.attendanceTypeId === 0 ? null : { value: r.data.attendanceTypeId, label: r.data.attendanceTypeName }\r\n this.setState({ form: r.data, idItemSelected: item.ID }, () => {\r\n this.toggleModal(item)\r\n })\r\n } else NotificationManager.error(r.msg, 'Opps', 4000, null, null, 'outline')\r\n this.props.setLoader(false)\r\n })\r\n }\r\n\r\n create() {\r\n // console.log(this.state.form)\r\n this.validateForm().then(() => {\r\n let item = cloneDeep(this.state.form)\r\n console.log(item.doc)\r\n let body = {\r\n date: item.date + 'T00:00:00',\r\n file: item.doc && Array.isArray(item.doc) && item.doc.length > 0 ? item.doc[0].value : null, \r\n note: item.comment,\r\n reason: item.justification,\r\n userId: item.userId,\r\n // sessionId: item.sessionId,\r\n fileType: item.doc && item.doc.length > 0 ? item.doc[0].ext : null,\r\n sessionId: 0,\r\n numOfDay: item.tillDate ? (_moment(item.tillDate).diff(item.date, 'days') + 1) : 1\r\n }\r\n // console.log(body)\r\n this.props.setLoader(true)\r\n _axios\r\n .post('attendance/absence', body)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n this.toggleModal()\r\n this.getData()\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n this.props.setLoader(false)\r\n })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n\r\n edit() {\r\n this.validateForm().then(() => {\r\n let item = cloneDeep(this.state.form)\r\n let body = {\r\n ID: item.ID,\r\n comment: item.comment,\r\n justification: item.justification,\r\n doc: Array.isArray(item.doc) ? (item.doc.length > 0 ? item.doc[0].name : null) : item.doc,\r\n attendanceTypeId: item.attendanceTypeId,\r\n tillDate: item.tillDate\r\n }\r\n // console.log(body)\r\n this.props.setLoader(true)\r\n _axios\r\n .post('admJustification/edit/' + this.state.idItemSelected, body)\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) {\r\n this.uploadFiles(r.data).then((response) => {\r\n this.defaultValuesUploadFiles()\r\n if (r.msg) NotificationManager.success(r.msg, '', 4000, null, null, 'outline')\r\n this.toggleModal()\r\n this.getData()\r\n })\r\n } else NotificationManager.error(r.msg, 'Opps', 4000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n\r\n delete() {\r\n this.props.setLoader(true)\r\n _axios\r\n .post('admJustification/delete/' + this.state.idItemSelected)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n if (r.msg) NotificationManager.success(r.msg, '', 4000, null, null, 'outline')\r\n this.toggleDelete()\r\n this.toggleModal()\r\n this.getData()\r\n } else NotificationManager.error(r.msg, 'Opps', 4000, null, null, 'outline')\r\n this.props.setLoader(false)\r\n })\r\n }\r\n\r\n save(item, status, typeId) {\r\n\r\n let data = cloneDeep(this.state.data)\r\n let temp = cloneDeep(this.state.dataTemp)\r\n if (!typeId) {\r\n data.map(e => {\r\n if (e.ID === item.ID) {\r\n e.processing = true\r\n }\r\n return e\r\n })\r\n \r\n temp.map(e => {\r\n if (e.ID === item.ID) {\r\n e.processing = true\r\n }\r\n return e\r\n })\r\n }\r\n \r\n this.setState({ data: data, dataTemp: temp })\r\n /*\r\n if (typeId && [2, -1].indexOf(item.status) < 0) {\r\n NotificationManager.error('La opción que ha seleccionado no se ha guardado, se guardará cuando acepete o deniegue la justificación', '', 4000, null, null, 'outline')\r\n return\r\n }\r\n */\r\n let body = status ? { status: status } : { status: item.status, typeId : typeId }\r\n\r\n _axios\r\n .post('admAttendance/0/justifications/' + item.ID, body)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n if (!typeId) {\r\n data.map(e => {\r\n if (e.ID === item.ID) {\r\n e.status = status\r\n e.processing = false\r\n }\r\n return e\r\n })\r\n\r\n temp.map(e => {\r\n if (e.ID === item.ID) {\r\n e.status = status\r\n e.click = true\r\n e.processing = false\r\n }\r\n return e\r\n })\r\n this.setState({ data: data, dataTemp: temp })\r\n } \r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { })\r\n }\r\n\r\n execute = debounce((item, status, typeId) => { this.save(item, status, typeId) }, 500, { leading: true })\r\n\r\n uploadFiles (id) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n\r\n if (!this.state.idItemSelected) return resolve('empty')\r\n\r\n this.props.setLoader(true)\r\n\r\n let setUploadActive = () => {\r\n if (this.state.uploadActive < 1) {\r\n this.setState({\r\n uploadActive: this.state.uploadActive + 1}, () => {\r\n // console.log('cambio active', this.state.uploadActive)\r\n if (this.state.uploadActive >= 1) {\r\n this.props.setLoader(false)\r\n return resolve('ok')\r\n }\r\n this.setState({\r\n uploadFiles: {id: id, name: 'doc', success: setUploadActive },\r\n })\r\n })\r\n }\r\n }\r\n\r\n if (1 > 0) {\r\n this.setState({uploadActive: 0}, () => {\r\n this.setState({\r\n uploadFiles: {id: id, name: 'doc', success: setUploadActive },\r\n })\r\n })\r\n }\r\n\r\n } catch (error) {\r\n reject(error)\r\n }\r\n })\r\n }\r\n\r\n defaultValuesUploadFiles () {\r\n this.setState({\r\n dropzones: [],\r\n uploadActive: -1,\r\n uploadFiles: null,\r\n })\r\n }\r\n\r\n listenStatesForm = (s) => {\r\n this.setState({ form: s });\r\n }\r\n\r\n listenStatesFormFilter = (s) => {\r\n this.setState({ formFilter: s });\r\n }\r\n\r\n listenBtnActionsFormFilter = (a, s, rowData) => {\r\n if (a === 'filter') this.getData()\r\n }\r\n\r\n filterData = () => {\r\n if (!this.state.formFilter) return []\r\n else if (this.state.formFilter.search && this.state.formFilter.search !== \"\") {\r\n return this.state.dataTemp.filter(e => {\r\n return e.name.toLowerCase().includes(this.state.formFilter.search.toLowerCase()) || (e.last && e.last.toLowerCase().includes(this.state.formFilter.search.toLowerCase()))\r\n })\r\n } else return this.state.dataTemp\r\n }\r\n\r\n toggleModal = () => {\r\n this.setState(prevState => ({\r\n modal: !prevState.modal\r\n }), () => {\r\n if (!this.state.modal) this.setState({ form: defautltForm, idItemSelected: null, pupils: [], sessions: [], preview: null })\r\n })\r\n }\r\n\r\n toggleDelete = () => {\r\n this.setState(prevState => ({\r\n modalDelete: !prevState.modalDelete\r\n }), () => {\r\n // \r\n });\r\n };\r\n\r\n formFields = () => {\r\n const moduleName = this.props.match.path.split('/').slice(-1)[0]\r\n let configFields = null\r\n const menuSubs = this.props.menuItems.flatMap((m) => m.subs || [])\r\n const foundModule = menuSubs.find((s) => s.id === moduleName)\r\n if (foundModule) configFields = foundModule.configFields\r\n\r\n let form = [\r\n {\r\n name: \"ID\",\r\n value: this.state.form.ID,\r\n type: \"hidden\",\r\n },\r\n {\r\n name: \"name\",\r\n value: this.state.form.name,\r\n type: \"hidden\",\r\n },\r\n {\r\n name: \"last\",\r\n value: this.state.form.last,\r\n type: \"hidden\",\r\n },\r\n {\r\n name: \"last2\",\r\n value: this.state.form.last2,\r\n type: \"hidden\",\r\n },\r\n {\r\n col: 6,\r\n name: \"externalId\",\r\n value: this.state.form.externalId,\r\n type: \"text\",\r\n label: \"main.studentCode\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => { return Number.isInteger(ctx.state.ID) }\r\n },\r\n {\r\n col: 6,\r\n name: \"sectionTag\",\r\n value: this.state.form.sectionTag,\r\n type: \"text\",\r\n label: \"main.section\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => { return Number.isInteger(ctx.state.ID) }\r\n },\r\n {\r\n col: 12,\r\n name: \"attendanceTypeId\",\r\n value: this.state.form.attendanceTypeId,\r\n type: \"select\",\r\n label: \"main.type\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: (ctx) => { return \"admAttendanceType/get?pick=true\" },\r\n },\r\n renderIf: (ctx) => { return Number.isInteger(ctx.state.ID) }\r\n },\r\n {\r\n col: 6,\r\n name: \"date\",\r\n value: this.state.form.date,\r\n type: \"date\",\r\n label: \"main.from\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n selectsStart: true,\r\n startDate: (ctx) => ctx.state.date ? moment(ctx.state.date) : null,\r\n endDate: (ctx) => ctx.state.tillDate ? moment(ctx.state.tillDate) : null\r\n },\r\n disabled: () => { return this.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 6,\r\n name: \"tillDate\",\r\n value: this.state.form.tillDate,\r\n type: \"date\",\r\n label: \"main.to\",\r\n parent: \"date\",\r\n opts: {\r\n style: 'float-label',\r\n selectsEnd: true,\r\n startDate: (ctx) => moment(ctx.state.date),\r\n endDate: (ctx) => moment(ctx.state.tillDate),\r\n minDate: (ctx) => moment(ctx.state.date)\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"gradeName\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.grade\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n },\r\n renderIf: (ctx) => { return !Number.isInteger(ctx.state.ID)}\r\n },\r\n {\r\n col: 6,\r\n name: \"sectionName\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.section\",\r\n rules: 'required',\r\n parent: 'gradeName',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + this.state.form.gradeName },\r\n setOutput: v => v,\r\n },\r\n renderIf: (ctx) => { return !Number.isInteger(ctx.state.ID)}\r\n },\r\n {\r\n col: 12,\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.student\",\r\n rules: 'required',\r\n parent: 'sectionName',\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStudent/get?enrolled=1&pick=true\" + (this.state.form.sectionName ? \"§ionId=\" + this.state.form.sectionName.value : \"\") }\r\n },\r\n renderIf: (ctx) => { return !Number.isInteger(ctx.state.ID)}\r\n },\r\n {\r\n col: 12,\r\n name: \"justification\",\r\n value: this.state.form.justification,\r\n type: \"select\",\r\n label: `${M}justification`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n isClearable: true,\r\n items: justificationReasons\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"comment\",\r\n value: this.state.form.comment,\r\n type: \"textarea\",\r\n label: \"main.comment\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n rows: \"5\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"doc\",\r\n value: this.state.form.doc,\r\n type: \"dropzone\",\r\n label: `${M}attachFile`,\r\n rules: 'ext:jpeg,jpg,png,pdf,doc,docx',\r\n opts: {\r\n path: ()=> \"admJustification/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n url: this.state.form.docUrl,\r\n output: true\r\n },\r\n onChange: (ctxForm) => {\r\n if (ctxForm.state.doc === null) this.setState({preview: null})\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"createdByName\",\r\n value: this.state.form.createdByName,\r\n type: \"text\",\r\n label: \"main.createdBy\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => { return Number.isInteger(ctx.state.ID) }\r\n },\r\n {\r\n col: 4,\r\n name: \"createdByEmail\",\r\n value: this.state.form.createdByEmail,\r\n type: \"text\",\r\n label: (L) => `${L[\"main.email\"]} ${L[\"main.contact\"]}`,\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => { return Number.isInteger(ctx.state.ID) }\r\n },\r\n {\r\n col: 4,\r\n name: \"createdByPhone\",\r\n value: this.state.form.createdByPhone,\r\n type: \"number\",\r\n label: (L) => `${L[\"main.phone\"]} ${L[\"main.contact\"]}`,\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => { return Number.isInteger(ctx.state.ID) }\r\n }\r\n ]\r\n\r\n form = form.map(f => ({\r\n ...f,\r\n ...(configFields?.[f.name] || {})\r\n })).filter(f => !f.inactive)\r\n\r\n return form\r\n }\r\n\r\n render() {\r\n const { locale } = this.props\r\n const L = AppLocale[locale].messages\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* TITLE */}\r\n

Justificaciones

\r\n
\r\n
\r\n\r\n {/* FILTERS */}\r\n { return \"/admSection/get?pick=true&parentId=\" + this.state.formFilter.superSectionId }\r\n }\r\n },\r\n {\r\n name: \"type\",\r\n value: 0,\r\n type: \"select\",\r\n label: `${M}type`,\r\n opts: {\r\n style: 'float-label',\r\n isClearable: false,\r\n items: [\r\n {value: 0, label: 'TODAS'},\r\n {value: 1, label: 'Por horas'},\r\n {value: 2, label: 'Por día'},\r\n {value: 3, label: 'Por varios días'},\r\n ]\r\n },\r\n onChange: (ctx) => {\r\n }\r\n },\r\n {\r\n name: \"status\",\r\n value: this.state.formFilter.status,\r\n type: \"select\",\r\n label: `${M}status`,\r\n opts: {\r\n style: 'float-label',\r\n isClearable: false,\r\n items: [\r\n {value: 0, label: 'TODAS'},\r\n {value: 1, label: 'Pendientes'},\r\n {value: 2, label: 'Aceptadas'},\r\n {value: -1, label: 'Denegadas'}\r\n ]\r\n },\r\n onChange: (ctx) => {\r\n let data = cloneDeep(this.state.data)\r\n data.map(e => e.click = false)\r\n let pending = data.filter(e => e.status === ctx.state.status || ctx.state.status === 0)\r\n this.setState({ dataTemp: pending })\r\n },\r\n renderIf: (ctx) => { return !ctx.state.search || ctx.state.search === \"\" }\r\n },\r\n {\r\n name: \"from\",\r\n value: this.state.formFilter.from,\r\n type: \"date\",\r\n label: \"main.from\",\r\n opts: {\r\n style: 'float-label',\r\n selectsStart: true,\r\n startDate: (ctx) => ctx.state.from ? moment(ctx.state.from) : null,\r\n endDate: (ctx) => ctx.state.to ? moment(ctx.state.to) : null\r\n },\r\n renderIf: ctx => !ctx.state.search || ctx.state.search === \"\"\r\n },\r\n {\r\n name: \"to\",\r\n value: this.state.formFilter.to,\r\n type: \"date\",\r\n label: \"main.to\",\r\n opts: {\r\n style: 'float-label',\r\n selectsEnd: true,\r\n startDate: (ctx) => moment(ctx.state.from),\r\n endDate: (ctx) => moment(ctx.state.to),\r\n minDate: (ctx) => moment(ctx.state.from)\r\n },\r\n renderIf: ctx => (!ctx.state.search || ctx.state.search === \"\") && ctx.state.from\r\n },\r\n {\r\n name: \"justification\",\r\n value: this.state.formFilter.justification,\r\n type: \"select\",\r\n label: \"main.reason\",\r\n opts: {\r\n style: 'float-label',\r\n isClearable: true,\r\n items: [{value: null, label: 'TODAS'}].concat(justificationReasons)\r\n }\r\n },\r\n {\r\n name: \"search\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.search\",\r\n placeholder: \"main.studentFirstOrLastName\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n onChange: (ctx) => {\r\n let data = cloneDeep(this.state.data)\r\n data.map(e => e.click = false)\r\n this.setState({ dataTemp: data })\r\n },\r\n },\r\n ]\r\n }\r\n buttons = {\r\n [\r\n {\r\n label: 'main.applyFilter',\r\n renderIf: (ctx) => { return ctx.state.from || ctx.state.sectionId || ctx.state.superSectionId },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n }\r\n listenStates={this.listenStatesFormFilter}\r\n listenBtnActions={this.listenBtnActionsFormFilter}\r\n />\r\n\r\n
\r\n {/* CREATE */}\r\n {this.state.actions.create && \r\n \r\n }\r\n
\r\n\r\n
\r\n
\r\n\r\n {/* GRID */}\r\n \r\n \r\n {this.state.progressBar &&
}\r\n {this.filterData() && this.filterData().length === 0 && !this.state.progressBar &&
{L[\"main.noRecords\"]}
}\r\n {this.filterData() && this.filterData().length > 0 && \r\n
(this.componentRef = el)}>\r\n
\r\n\r\n
\r\n
\r\n
{L[\"main.student\"]}
\r\n
\r\n\r\n {/* Stundents */}\r\n {this.filterData().map((item, i) => {\r\n return (\r\n
\r\n
\r\n {e.target.onerror = null; e.target.src=require(\"../../../../assets/img/user.png\")}} alt=\"\"/>\r\n
\r\n
{item.name}
\r\n
\r\n )})\r\n }\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
{L[\"main.date\"] + \"(S)\"}
\r\n
\r\n
\r\n
{L[`${M}justification`]}
\r\n
\r\n
\r\n
\r\n
\r\n {/*\r\n
\r\n
Aprobación
\r\n
\r\n */}\r\n
\r\n
\r\n\r\n
\r\n\r\n {/* Stundents */}\r\n {this.filterData().map((item, i) => {\r\n return (\r\n
\r\n
\r\n
\r\n {_moment(item.date).format('dddd DD MMM')}
\r\n { item.tillDate ? ('➔ ' + _moment(item.tillDate).format('dddd DD MMM')) : '' }\r\n
\r\n
\r\n
\r\n
{ this.getDataById(item) }}>\r\n {e.target.onerror = null; e.target.src=require(\"../../../../assets/img/doc.png\")}}\r\n alt=\"\"\r\n />\r\n
\r\n { this.execute(item, 2) }}\r\n >\r\n \r\n \r\n { this.execute(item, -1) }}\r\n >\r\n \r\n \r\n
\r\n {/*\r\n
\r\n { return \"admAttendanceType/get?pick=true\" },\r\n }\r\n }\r\n onChange={(val) => {\r\n if (val && val !== item.attendanceTypeId) this.save(item, null, val)\r\n }}\r\n />\r\n
\r\n { this.getDataById(item) }}>\r\n
\r\n
\r\n */}\r\n\r\n
\r\n
\r\n { this.getDataById(item) }}>\r\n
\r\n
\r\n \r\n
\r\n )})\r\n }\r\n
\r\n
\r\n\r\n
\r\n
\r\n }\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n { this.state.idItemSelected ? (this.state.form.last + ' ' + this.state.form.last2 + ' ' + this.state.form.name) : 'Crear justificación' }\r\n \r\n \r\n {this.state.form && this.validateForm = ctx}\r\n uploadFiles={this.state.uploadFiles}\r\n />\r\n }\r\n {this.state.idItemSelected && this.state.form.doc && ['jpg','png','jpeg'].indexOf(getFileExtension(this.state.preview)) > -1 &&\r\n {e.target.onerror = null; e.target.src=require(\"../../../../assets/img/doc.png\")}}\r\n alt=\"\"\r\n />\r\n }\r\n \r\n \r\n { this.state.idItemSelected ? this.edit() : this.create() }}\r\n >\r\n {L[\"main.save\"]}\r\n \r\n {this.state.idItemSelected &&\r\n { this.toggleDelete() }}\r\n >\r\n {L[\"main.delete\"]}\r\n \r\n }\r\n \r\n \r\n \r\n\r\n {/* MODAL DELETE */}\r\n { r ? this.delete() : this.toggleDelete() }}\r\n >\r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings, menu, utils, authUser }) => {\r\n const { menuItems } = menu;\r\n const { locale } = settings\r\n const { deepLink } = utils\r\n const { userAdmin } = authUser;\r\n return { locale, menuItems, deepLink, userAdmin };\r\n};\r\n\r\nexport default connect(mapStateToProps, { setLoader, setDeeplink })(AdmJustification);"," export const ThemeColors = () => {\r\n let rootStyle = getComputedStyle(document.body);\r\n return {\r\n themeColor1 : rootStyle.getPropertyValue(\"--theme-color-1\").trim(),\r\n themeColor2 : rootStyle.getPropertyValue(\"--theme-color-2\").trim(),\r\n themeColor3 : rootStyle.getPropertyValue(\"--theme-color-3\").trim(),\r\n themeColor4 : rootStyle.getPropertyValue(\"--theme-color-4\").trim(),\r\n themeColor5 : rootStyle.getPropertyValue(\"--theme-color-5\").trim(),\r\n themeColor6 : rootStyle.getPropertyValue(\"--theme-color-6\").trim(),\r\n themeColor1_10 : rootStyle.getPropertyValue(\"--theme-color-1-10\").trim(),\r\n themeColor2_10 : rootStyle.getPropertyValue(\"--theme-color-2-10\").trim(),\r\n themeColor3_10 : rootStyle.getPropertyValue(\"--theme-color-3-10\").trim(),\r\n themeColor4_10 : rootStyle.getPropertyValue(\"--theme-color-3-10\").trim(),\r\n themeColor5_10 : rootStyle.getPropertyValue(\"--theme-color-3-10\").trim(),\r\n themeColor6_10 : rootStyle.getPropertyValue(\"--theme-color-3-10\").trim(),\r\n primaryColor: rootStyle.getPropertyValue(\"--primary-color\").trim(),\r\n foregroundColor: rootStyle.getPropertyValue(\"--foreground-color\").trim(),\r\n separatorColor: rootStyle.getPropertyValue(\"--separator-color\").trim()\r\n }\r\n}","import React from \"react\";\r\nimport ChartComponent, { Chart } from \"react-chartjs-2\"\r\nimport { ThemeColors } from '../../helpers/ThemeColors'\r\n\r\nexport default class Area extends React.Component {\r\n componentWillMount() {\r\n if (this.props.shadow) {\r\n Chart.defaults.lineWithShadow = Chart.defaults.line;\r\n Chart.controllers.lineWithShadow = Chart.controllers.line.extend({\r\n draw: function(ease) {\r\n Chart.controllers.line.prototype.draw.call(this, ease);\r\n var ctx = this.chart.ctx;\r\n ctx.save();\r\n ctx.shadowColor = \"rgba(0,0,0,0.15)\";\r\n ctx.shadowBlur = 10;\r\n ctx.shadowOffsetX = 0;\r\n ctx.shadowOffsetY = 10;\r\n ctx.responsive = true;\r\n ctx.stroke();\r\n Chart.controllers.line.prototype.draw.apply(this, arguments);\r\n ctx.restore();\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const areaChartOptions = {\r\n legend: {\r\n display: false\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n tooltips: {\r\n backgroundColor: ThemeColors().foregroundColor,\r\n titleFontColor: ThemeColors().primaryColor,\r\n borderColor: ThemeColors().separatorColor,\r\n borderWidth: 0.5,\r\n bodyFontColor: ThemeColors().primaryColor,\r\n bodySpacing: 10,\r\n xPadding: 15,\r\n yPadding: 15,\r\n cornerRadius: 0.15\r\n },\r\n scales: {\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: true,\r\n lineWidth: 1,\r\n color: 'rgba(0,0,0,0.1)',\r\n drawBorder: false\r\n },\r\n ticks: {\r\n beginAtZero: true,\r\n stepSize: 10,\r\n min: 0,\r\n max: 50,\r\n padding: 20\r\n }\r\n }\r\n ],\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n\r\n const { data, shadow } = this.props;\r\n return (\r\n (this.chart_instance = ref && ref.chart_instance)}\r\n type={shadow ? \"lineWithShadow\" : \"line\"}\r\n options={{...areaChartOptions}}\r\n data={data}\r\n />\r\n );\r\n }\r\n}\r\n","\r\nimport { ThemeColors } from \"../../helpers/ThemeColors\";\r\n\r\nexport const chartTooltip = {\r\n backgroundColor: ThemeColors().foregroundColor,\r\n titleFontColor: ThemeColors().primaryColor,\r\n borderColor: ThemeColors().separatorColor,\r\n borderWidth: 0.5,\r\n bodyFontColor: ThemeColors().primaryColor,\r\n bodySpacing: 10,\r\n xPadding: 15,\r\n yPadding: 15,\r\n cornerRadius: 0.15\r\n }\r\n \r\n export const centerTextPlugin = {\r\n afterDatasetsUpdate: function (chart) {},\r\n beforeDraw: function (chart) {\r\n var width = chart.chartArea.right\r\n var height = chart.chartArea.bottom\r\n var ctx = chart.chart.ctx\r\n ctx.restore()\r\n \r\n var activeLabel = chart.data.labels[0]\r\n var activeValue = chart.data.datasets[0].data[0]\r\n var dataset = chart.data.datasets[0]\r\n var meta = dataset._meta[Object.keys(dataset._meta)[0]]\r\n var total = meta.total\r\n \r\n var activePercentage = parseFloat(((activeValue / total) * 100).toFixed(1))\r\n activePercentage = chart.legend.legendItems[0].hidden\r\n ? 0\r\n : activePercentage\r\n \r\n if (chart.pointAvailable) {\r\n activeLabel = chart.data.labels[chart.pointIndex]\r\n activeValue =\r\n chart.data.datasets[chart.pointDataIndex].data[chart.pointIndex]\r\n \r\n dataset = chart.data.datasets[chart.pointDataIndex]\r\n meta = dataset._meta[Object.keys(dataset._meta)[0]]\r\n total = meta.total\r\n activePercentage = parseFloat(((activeValue / total) * 100).toFixed(1))\r\n activePercentage = chart.legend.legendItems[chart.pointIndex].hidden\r\n ? 0\r\n : activePercentage\r\n }\r\n \r\n ctx.font = '36px Nunito, sans-serif'\r\n ctx.fillStyle = ThemeColors().primaryColor\r\n ctx.textBaseline = 'middle'\r\n \r\n var text = activePercentage + '%'\r\n var textX = Math.round((width - ctx.measureText(text).width) / 2)\r\n var textY = height / 2\r\n ctx.fillText(text, textX, textY)\r\n \r\n ctx.font = '14px Nunito, sans-serif'\r\n ctx.textBaseline = 'middle'\r\n \r\n var text2 = activeLabel\r\n var textX2 = Math.round((width - ctx.measureText(text2).width) / 2)\r\n var textY2 = height / 2 - 30\r\n ctx.fillText(text2, textX2, textY2)\r\n \r\n ctx.save()\r\n },\r\n beforeEvent: function (chart, event, options) {\r\n var firstPoint = chart.getElementAtEvent(event)[0]\r\n \r\n if (firstPoint) {\r\n chart.pointIndex = firstPoint._index\r\n chart.pointDataIndex = firstPoint._datasetIndex\r\n chart.pointAvailable = true\r\n }\r\n }\r\n }\r\n ","import { chartTooltip } from './util'\r\n\r\nexport const lineChartOptions = {\r\n legend: {\r\n display: false\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n tooltips: chartTooltip,\r\n plugins: {\r\n datalabels: {\r\n display: false\r\n }\r\n },\r\n scales: {\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: true,\r\n lineWidth: 1,\r\n color: 'rgba(0,0,0,0.1)',\r\n drawBorder: false\r\n },\r\n ticks: {\r\n beginAtZero: true,\r\n stepSize: 5,\r\n min: 50,\r\n max: 70,\r\n padding: 20\r\n }\r\n }\r\n ],\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false\r\n }\r\n }\r\n ]\r\n }\r\n}\r\nexport const polarAreaChartOptions = {\r\n legend: {\r\n position: 'bottom',\r\n labels: {\r\n padding: 30,\r\n usePointStyle: true,\r\n fontSize: 12\r\n }\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scale: {\r\n ticks: {\r\n display: false\r\n }\r\n },\r\n plugins: {\r\n datalabels: {\r\n display: false\r\n }\r\n },\r\n tooltips: chartTooltip\r\n}\r\n\r\nexport const areaChartOptions = {\r\n legend: {\r\n display: false\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n tooltips: chartTooltip,\r\n scales: {\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: true,\r\n lineWidth: 1,\r\n color: 'rgba(0,0,0,0.1)',\r\n drawBorder: false\r\n },\r\n ticks: {\r\n beginAtZero: true,\r\n stepSize: 5,\r\n min: 50,\r\n max: 70,\r\n padding: 20\r\n }\r\n }\r\n ],\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false\r\n }\r\n }\r\n ]\r\n }\r\n}\r\n\r\nexport const scatterChartOptions = {\r\n legend: {\r\n position: 'bottom',\r\n labels: {\r\n padding: 30,\r\n usePointStyle: true,\r\n fontSize: 12\r\n }\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scales: {\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: true,\r\n lineWidth: 1,\r\n color: 'rgba(0,0,0,0.1)',\r\n drawBorder: false\r\n },\r\n ticks: {\r\n beginAtZero: true,\r\n stepSize: 20,\r\n min: -80,\r\n max: 80,\r\n padding: 20\r\n }\r\n }\r\n ],\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: true,\r\n lineWidth: 1,\r\n color: 'rgba(0,0,0,0.1)'\r\n }\r\n }\r\n ]\r\n },\r\n tooltips: chartTooltip\r\n}\r\n\r\nexport const barChartOptions = {\r\n legend: {\r\n position: 'bottom',\r\n labels: {\r\n padding: 30,\r\n usePointStyle: true,\r\n fontSize: 12\r\n }\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scales: {\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: true,\r\n lineWidth: 1,\r\n color: 'rgba(0,0,0,0.1)',\r\n drawBorder: false\r\n },\r\n ticks: {\r\n beginAtZero: true,\r\n stepSize: 100,\r\n min: 300,\r\n max: 800,\r\n padding: 20\r\n }\r\n }\r\n ],\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false\r\n }\r\n }\r\n ]\r\n },\r\n tooltips: chartTooltip\r\n}\r\n\r\nexport const radarChartOptions = {\r\n legend: {\r\n position: 'bottom',\r\n labels: {\r\n padding: 30,\r\n usePointStyle: true,\r\n fontSize: 12\r\n }\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scale: {\r\n ticks: {\r\n display: false\r\n }\r\n },\r\n tooltips: chartTooltip\r\n}\r\n\r\nexport const pieChartOptions = {\r\n legend: {\r\n position: 'bottom',\r\n labels: {\r\n padding: 30,\r\n usePointStyle: true,\r\n fontSize: 12\r\n }\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n title: {\r\n display: false\r\n },\r\n layout: {\r\n padding: {\r\n bottom: 20\r\n }\r\n },\r\n tooltips: chartTooltip\r\n}\r\n\r\nexport const doughnutChartOptions = {\r\n legend: {\r\n position: 'bottom',\r\n labels: {\r\n padding: 30,\r\n usePointStyle: true,\r\n fontSize: 12\r\n }\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n title: {\r\n display: false\r\n },\r\n cutoutPercentage: 80,\r\n layout: {\r\n padding: {\r\n bottom: 20\r\n }\r\n },\r\n tooltips: chartTooltip\r\n}\r\n\r\nexport const smallLineChartOptions = {\r\n layout: {\r\n padding: {\r\n left: 5,\r\n right: 5,\r\n top: 10,\r\n bottom: 10\r\n }\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: false\r\n },\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n beginAtZero: true\r\n },\r\n display: false\r\n }\r\n ],\r\n xAxes: [\r\n {\r\n display: false\r\n }\r\n ]\r\n }\r\n}\r\n","import React, { Fragment } from \"react\";\r\nimport ChartComponent, { Chart } from \"react-chartjs-2\";\r\n\r\nimport {smallLineChartOptions} from \"./config\"\r\n\r\nconst addCommas = nStr => {\r\n nStr += \"\";\r\n var x = nStr.split(\".\");\r\n var x1 = x[0];\r\n var x2 = x.length > 1 ? \".\" + x[1] : \"\";\r\n var rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, \"$1,$2\");\r\n }\r\n return x1 + x2;\r\n};\r\n\r\nexport default class SmallLine extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.changeState = this.changeState.bind(this);\r\n this.state = {\r\n currentValue: \"\",\r\n currentLabel: \"\"\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n Chart.defaults.lineWithLine = Chart.defaults.line;\r\n Chart.controllers.lineWithLine = Chart.controllers.line.extend({\r\n draw: function(ease) {\r\n Chart.controllers.line.prototype.draw.call(this, ease);\r\n\r\n if (this.chart.tooltip._active && this.chart.tooltip._active.length) {\r\n var activePoint = this.chart.tooltip._active[0];\r\n var ctx = this.chart.ctx;\r\n var x = activePoint.tooltipPosition().x;\r\n var topY = this.chart.scales[\"y-axis-0\"].top;\r\n var bottomY = this.chart.scales[\"y-axis-0\"].bottom;\r\n\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.moveTo(x, topY);\r\n ctx.lineTo(x, bottomY);\r\n ctx.lineWidth = 1;\r\n ctx.strokeStyle = \"rgba(0,0,0,0.1)\";\r\n ctx.stroke();\r\n ctx.restore();\r\n }\r\n }\r\n });\r\n }\r\n\r\n changeState(yLabel, xLabel) {\r\n this.setState({ currentValue: yLabel, currentLabel: xLabel });\r\n }\r\n\r\n render() {\r\n const changeState = this.changeState;\r\n const {data} = this.props\r\n \r\n return (\r\n \r\n
\r\n

\r\n {this.state.currentValue}\r\n

\r\n

{this.state.currentLabel}

\r\n
\r\n
\r\n (this.chart_instance = ref && ref.chart_instance)}\r\n type=\"lineWithLine\"\r\n options={{\r\n ...smallLineChartOptions,\r\n tooltips: {\r\n intersect: false,\r\n enabled: false,\r\n custom: function(tooltipModel) {\r\n if (tooltipModel && tooltipModel.dataPoints) {\r\n var yLabel = tooltipModel.dataPoints[0].yLabel;\r\n var xLabel = tooltipModel.dataPoints[0].xLabel;\r\n var label = tooltipModel.body[0].lines[0].split(\":\")[0];\r\n changeState(\"$\" + addCommas(yLabel), label + \"-\" + xLabel);\r\n }\r\n }\r\n }\r\n }}\r\n plugins={[\r\n {\r\n afterInit: function(chart, options) {\r\n var yLabel = chart.data.datasets[0].data[0];\r\n var xLabel = chart.data.labels[0];\r\n var label = chart.data.datasets[0].label;\r\n changeState(\"$\" + addCommas(yLabel), label + \"-\" + xLabel);\r\n }\r\n }\r\n ]}\r\n data={data}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ChartComponent, { Chart } from \"react-chartjs-2\";\r\n\r\nimport { barChartOptions } from \"./config\";\r\n\r\nexport default class Bar extends React.Component {\r\n componentWillMount() {\r\n if (this.props.shadow) {\r\n Chart.defaults.barWithShadow = Chart.defaults.bar;\r\n Chart.controllers.barWithShadow = Chart.controllers.bar.extend({\r\n draw: function(ease) {\r\n Chart.controllers.bar.prototype.draw.call(this, ease);\r\n var ctx = this.chart.ctx;\r\n ctx.save();\r\n ctx.shadowColor = \"rgba(0,0,0,0.2)\";\r\n ctx.shadowBlur = 7;\r\n ctx.shadowOffsetX = 5;\r\n ctx.shadowOffsetY = 7;\r\n ctx.responsive = true;\r\n Chart.controllers.bar.prototype.draw.apply(this, arguments);\r\n ctx.restore();\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const { data, shadow } = this.props;\r\n return (\r\n (this.chart_instance = ref && ref.chart_instance)}\r\n type={shadow ? \"barWithShadow\" : \"bar\"}\r\n options={{\r\n ...barChartOptions\r\n }}\r\n data={data}\r\n />\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ChartComponent, { Chart } from \"react-chartjs-2\";\r\n\r\nimport { centerTextPlugin } from \"./util\";\r\nimport { doughnutChartOptions } from \"./config\";\r\n\r\nexport default class Doughnut extends React.Component {\r\n componentWillMount() {\r\n if (this.props.shadow) {\r\n Chart.defaults.doughnutWithShadow = Chart.defaults.doughnut;\r\n Chart.controllers.doughnutWithShadow = Chart.controllers.doughnut.extend({\r\n draw: function(ease) {\r\n Chart.controllers.doughnut.prototype.draw.call(this, ease);\r\n let ctx = this.chart.chart.ctx;\r\n ctx.save();\r\n ctx.shadowColor = \"rgba(0,0,0,0.15)\";\r\n ctx.shadowBlur = 10;\r\n ctx.shadowOffsetX = 0;\r\n ctx.shadowOffsetY = 10;\r\n ctx.responsive = true;\r\n Chart.controllers.doughnut.prototype.draw.apply(this, arguments);\r\n ctx.restore();\r\n }\r\n });\r\n }\r\n }\r\n render() {\r\n const { data, shadow } = this.props;\r\n return (\r\n (this.chart_instance = ref && ref.chart_instance)}\r\n type={shadow ? \"doughnutWithShadow\" : \"doughnut\"}\r\n plugins={[centerTextPlugin]}\r\n options={{\r\n ...doughnutChartOptions\r\n }}\r\n data={data}\r\n />\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ChartComponent, { Chart } from \"react-chartjs-2\";\r\n\r\nimport { lineChartOptions } from \"./config\";\r\n\r\nexport default class Line extends React.Component {\r\n componentWillMount() {\r\n if (this.props.shadow) {\r\n Chart.defaults.lineWithShadow = Chart.defaults.line;\r\n Chart.controllers.lineWithShadow = Chart.controllers.line.extend({\r\n draw: function(ease) {\r\n Chart.controllers.line.prototype.draw.call(this, ease);\r\n var ctx = this.chart.ctx;\r\n ctx.save();\r\n ctx.shadowColor = \"rgba(0,0,0,0.15)\";\r\n ctx.shadowBlur = 10;\r\n ctx.shadowOffsetX = 0;\r\n ctx.shadowOffsetY = 10;\r\n ctx.responsive = true;\r\n ctx.stroke();\r\n Chart.controllers.line.prototype.draw.apply(this, arguments);\r\n ctx.restore();\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const { data, shadow } = this.props;\r\n return (\r\n (this.chart_instance = ref && ref.chart_instance)}\r\n type={shadow ? \"lineWithShadow\" : \"line\"}\r\n options={{\r\n ...lineChartOptions\r\n }}\r\n data={data}\r\n />\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ChartComponent, { Chart } from \"react-chartjs-2\";\r\n\r\nimport { pieChartOptions } from \"./config\";\r\n\r\nexport default class Pie extends React.Component {\r\n componentWillMount() {\r\n if (this.props.shadow) {\r\n Chart.defaults.pieWithShadow = Chart.defaults.pie;\r\n Chart.controllers.pieWithShadow = Chart.controllers.pie.extend({\r\n draw: function(ease) {\r\n Chart.controllers.pie.prototype.draw.call(this, ease);\r\n let ctx = this.chart.chart.ctx;\r\n ctx.save();\r\n ctx.shadowColor = \"rgba(0,0,0,0.15)\";\r\n ctx.shadowBlur = 10;\r\n ctx.shadowOffsetX = 0;\r\n ctx.shadowOffsetY = 10;\r\n ctx.responsive = true;\r\n Chart.controllers.pie.prototype.draw.apply(this, arguments);\r\n ctx.restore();\r\n }\r\n });\r\n }\r\n }\r\n render() {\r\n const { data, shadow } = this.props;\r\n return (\r\n (this.chart_instance = ref && ref.chart_instance)}\r\n type={shadow ? \"pieWithShadow\" : \"pie\"}\r\n options={{\r\n ...pieChartOptions\r\n }}\r\n data={data}\r\n />\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ChartComponent, { Chart } from \"react-chartjs-2\";\r\n\r\nimport { polarAreaChartOptions } from \"./config\";\r\n\r\nexport default class PolarArea extends React.Component {\r\n componentWillMount() {\r\n if (this.props.shadow) {\r\n Chart.defaults.polarWithShadow = Chart.defaults.polarArea;\r\n Chart.controllers.polarWithShadow = Chart.controllers.polarArea.extend({\r\n draw: function(ease) {\r\n Chart.controllers.radar.prototype.draw.call(this, ease);\r\n let ctx = this.chart.chart.ctx;\r\n ctx.save();\r\n ctx.shadowColor = \"rgba(0,0,0,0.2)\";\r\n ctx.shadowBlur = 7;\r\n ctx.shadowOffsetX = 0;\r\n ctx.shadowOffsetY = 7;\r\n ctx.responsive = true;\r\n Chart.controllers.radar.prototype.draw.apply(this, arguments);\r\n ctx.restore();\r\n }\r\n });\r\n }\r\n }\r\n render() {\r\n const { data,shadow } = this.props;\r\n return (\r\n (this.chart_instance = ref && ref.chart_instance)}\r\n type={shadow?\"polarWithShadow\":\"polarArea\"}\r\n options={{\r\n ...polarAreaChartOptions\r\n }}\r\n data={data}\r\n />\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ChartComponent, { Chart } from \"react-chartjs-2\";\r\n\r\nimport { radarChartOptions } from \"./config\";\r\n\r\nexport default class Radar extends React.Component {\r\n componentWillMount() {\r\n if (this.props.shadow) {\r\n Chart.defaults.radarWithShadow = Chart.defaults.radar;\r\n Chart.controllers.radarWithShadow = Chart.controllers.radar.extend({\r\n draw: function(ease) {\r\n Chart.controllers.radar.prototype.draw.call(this, ease);\r\n let ctx = this.chart.chart.ctx;\r\n ctx.save();\r\n ctx.shadowColor = \"rgba(0,0,0,0.2)\";\r\n ctx.shadowBlur = 7;\r\n ctx.shadowOffsetX = 0;\r\n ctx.shadowOffsetY = 7;\r\n ctx.responsive = true;\r\n Chart.controllers.radar.prototype.draw.apply(this, arguments);\r\n ctx.restore();\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const { data, shadow } = this.props;\r\n return (\r\n (this.chart_instance = ref && ref.chart_instance)}\r\n type={shadow ? \"radarWithShadow\" : \"radar\"}\r\n options={{\r\n ...radarChartOptions\r\n }}\r\n data={data}\r\n />\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ChartComponent, { Chart } from \"react-chartjs-2\";\r\n\r\nimport { scatterChartOptions } from \"./config\";\r\n\r\nexport default class Scatter extends React.Component {\r\n componentWillMount() {\r\n if (this.props.shadow) {\r\n Chart.defaults.scatterWithShadow = Chart.defaults.scatter;\r\n Chart.controllers.scatterWithShadow = Chart.controllers.scatter.extend({\r\n draw: function(ease) {\r\n Chart.controllers.scatter.prototype.draw.call(this, ease);\r\n let ctx = this.chart.chart.ctx;\r\n ctx.save();\r\n ctx.shadowColor = \"rgba(0,0,0,0.2)\";\r\n ctx.shadowBlur = 7;\r\n ctx.shadowOffsetX = 0;\r\n ctx.shadowOffsetY = 7;\r\n ctx.responsive = true;\r\n Chart.controllers.scatter.prototype.draw.apply(this, arguments);\r\n ctx.restore();\r\n }\r\n });\r\n }\r\n }\r\n render() {\r\n const { data, shadow } = this.props;\r\n return (\r\n (this.chart_instance = ref && ref.chart_instance)}\r\n type={shadow ? \"scatterWithShadow\" : \"scatter\"}\r\n options={{\r\n ...scatterChartOptions\r\n }}\r\n data={data}\r\n />\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {\r\n Card,\r\n CardBody,\r\n UncontrolledDropdown,\r\n DropdownItem,\r\n DropdownToggle,\r\n DropdownMenu,\r\n} from 'reactstrap';\r\nimport { AreaChart } from '../../components/charts';\r\nimport { ThemeColors } from '../../helpers/ThemeColors';\r\n\r\nconst ChartCard = ({ data, className = '', controls = true, L, title = \"\", caption = \"\" }) => {\r\n const labels = data.map(i => i = i.Key)\r\n const values = data.map(i => i = i.Value)\r\n const colors = ThemeColors()\r\n const areaChartData = {\r\n labels: labels,\r\n datasets: [\r\n {\r\n label: '',\r\n data: values,\r\n borderColor: colors.themeColor1,\r\n pointBackgroundColor: colors.foregroundColor,\r\n pointBorderColor: colors.themeColor1,\r\n pointHoverBackgroundColor: colors.themeColor1,\r\n pointHoverBorderColor: colors.foregroundColor,\r\n pointRadius: 4,\r\n pointBorderWidth: 2,\r\n pointHoverRadius: 5,\r\n fill: true,\r\n borderWidth: 2,\r\n backgroundColor: colors.themeColor1_10,\r\n },\r\n ],\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n {L[title]?? title}\r\n
\r\n \r\n {L[caption]?? title}\r\n \r\n
\r\n
\r\n {controls && (\r\n
\r\n \r\n \r\n {L[\"admCommunications.thisWeek\"]}\r\n \r\n \r\n \r\n {L[\"admCommunications.thisWeek\"]}\r\n \r\n \r\n {L[\"admCommunications.thisMonth\"]}\r\n \r\n \r\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 ChartCard;\r\n","import React from \"react\";\r\nimport { Card, CardBody } from \"reactstrap\";\r\n\r\nconst IconCard = ({className=\"mb-4\", icon, title, value, id, L }) => {\r\n const color = [\"act\", \"pub\", \"cal\"].indexOf(id) > -1 && value === 0 ? \"error-color\" : \"\"\r\n return (\r\n
\r\n \r\n \r\n \r\n

\r\n {L[title]}\r\n

\r\n

{value}

\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default IconCard;\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { setLoader, setDeeplink, setParams } from \"../../../../redux/actions\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n Row,\r\n Card,\r\n CardBody,\r\n Alert,\r\n Badge\r\n} from \"reactstrap\";\r\nimport { Colxx } from \"../../../../components/common/CustomBootstrap\";\r\nimport _axios from \"../../../../libs/axios\";\r\nimport { NotificationManager } from \"../../../../components/common/react-notifications\";\r\nimport ChartCard from \"../../../../components/utils/ChartCard\";\r\nimport AppLocale from \"../../../../config/lang\";\r\nimport CrudGrid from \"../crudGrid\";\r\nimport IconCard from '../../../../components/cards/IconCard';\r\nimport _moment from \"../../../../libs/moment\";\r\nimport CustomDropdown from \"../../../../components/utils/CustomDropdown\";\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport FormCustom from \"../../../../components/utils/FormCustom\";\r\nimport { getNextDayOfWeek, objToQueryString } from \"../../../../helpers/Utils\";\r\n\r\nclass AdmCommunications extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.M = \"admCommunications.\"\r\n this.state = {\r\n data: [],\r\n form: null,\r\n formFields: [],\r\n formButtons: [],\r\n communicationTypes: [\r\n { id: \"important\", title: `${this.M}important`, icon: 'iconsminds-clock', value: '...'},\r\n { id: \"act\", title: `${this.M}eventsActivities`, icon: 'iconsminds-basket-coins', value: '...' },\r\n { id: \"pub\", title: `${this.M}newsPost`, icon: 'iconsminds-arrow-refresh', value: '...' },\r\n { id: \"pho\", title: `${this.M}photosMedia`, icon: 'iconsminds-mail-read', value: '...' }\r\n ],\r\n progressBar: false,\r\n chartNumberConvers: [],\r\n chartNumberMessages: [],\r\n notification: null,\r\n noCommunications: false,\r\n formSendSummary: null,\r\n formSendSummaryFields: [],\r\n successMsg: null\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n this.getData()\r\n }\r\n\r\n componentDidMount() {\r\n this.createForm()\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.setParams(null)\r\n }\r\n\r\n createForm () {\r\n const fields = [\r\n {\r\n col: 3,\r\n name: \"label1\",\r\n value: `${this.M}communicationType`,\r\n type: \"label\"\r\n },\r\n {\r\n col: 9,\r\n name: \"commType\",\r\n value: \"pub\",\r\n type: \"radioGroup\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n inline: true,\r\n list: [\r\n {value: \"pub\", label: `${this.M}newsPost`},\r\n {value: \"cal\", label: `${this.M}eventsActivities`},\r\n {value: \"pho\", label: `${this.M}photosMedia`}\r\n ]\r\n }\r\n },\r\n {\r\n col: 3,\r\n name: \"label2\",\r\n value: \"main.title\",\r\n type: \"label\"\r\n },\r\n {\r\n col: 9,\r\n name: \"topic\",\r\n value: \"\",\r\n type: \"text\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 3,\r\n name: \"label3\",\r\n value: `${this.M}briefSeed`,\r\n type: \"label\"\r\n },\r\n {\r\n col: 9,\r\n name: \"seed\",\r\n value: \"\",\r\n type: \"textarea\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 3,\r\n name: \"label4\",\r\n value: `${this.M}communicationTone`,\r\n type: \"label\"\r\n },\r\n {\r\n col: 9,\r\n name: \"tone\",\r\n value: \"\",\r\n type: \"radioGroup\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n inline: true,\r\n list: [\r\n {value: \"Joyful\", label: \"admCommunications.joyful\"},\r\n {value: \"Inspiring\", label: \"admCommunications.inspiring\"},\r\n {value: \"Neutral\", label: \"admCommunications.neutral\"},\r\n {value: \"Serious\", label: \"admCommunications.serious\"},\r\n {value: \"Critical\", label: \"admCommunications.critical\"}\r\n ]\r\n }\r\n },\r\n {\r\n col: 3,\r\n name: \"label5\",\r\n value: `${this.M}numberOfParagraphs`,\r\n type: \"label\"\r\n },\r\n {\r\n col: 9,\r\n name: \"paragraphs\",\r\n value: 1,\r\n type: \"slider\",\r\n rules: \"required|numeric|min:1,num\",\r\n opts: {\r\n slider: {\r\n min: 0,\r\n max: 20,\r\n step: 1\r\n }\r\n }\r\n }\r\n ]\r\n\r\n const buttons = [\r\n {\r\n col: 4,\r\n colxs: 6,\r\n name: \"btnProceedManually\",\r\n value: \"\",\r\n type: \"button\",\r\n label: \"admCommunications.proceedManually\",\r\n opts: {\r\n outline: true\r\n },\r\n onClick: () => this.createManually()\r\n },\r\n {\r\n col: 4,\r\n colxs: 6,\r\n name: \"btnProceedWithAI\",\r\n value: \"\",\r\n type: \"button\",\r\n label: \"admCommunications.proceedWithAI\",\r\n onClick: () => this.createWithAi()\r\n }\r\n ]\r\n this.setState({formFields: fields, formButtons: buttons})\r\n }\r\n\r\n createFormSendSummary (readMode = false) {\r\n const { notification } = this.state\r\n const fields = [\r\n {\r\n col: 6,\r\n name: \"day\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.day\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: 1, label: \"main.monday\"},\r\n {value: 2, label: \"main.tuesday\"},\r\n {value: 3, label: \"main.wednesday\"},\r\n {value: 4, label: \"main.thursday\"},\r\n {value: 5, label: \"main.friday\"},\r\n {value: 6, label: \"main.saturday\"},\r\n {value: 0, label: \"main.sunday\"}\r\n ]\r\n }\r\n },\r\n {\r\n col: 3,\r\n name: \"hour\",\r\n value: \"\",\r\n type: \"time\",\r\n label: \"main.hour\",\r\n rules: \"required\",\r\n opts: {\r\n style: \"float-label\"\r\n }\r\n },\r\n {\r\n col: 3,\r\n name: \"btnSendSummary\",\r\n value: \"\",\r\n type: \"button\",\r\n label: \"main.activate\",\r\n onClick: () => { this.sendSummary() }\r\n }\r\n ]\r\n\r\n const fieldsReadMode = [\r\n {\r\n col: 3,\r\n name: \"notificationActive\",\r\n value: !!notification?.lastComm,\r\n type: \"switch\",\r\n label: \"main.active\"\r\n },\r\n {\r\n col: 3,\r\n name: \"lastComm\",\r\n value: (L) => `${L[`${this.M}lastSend`]}
${notification?.lastComm ? _moment(notification.lastComm).format(\"MMM DD hhA\") : \"\"}`,\r\n type: \"label\",\r\n },\r\n {\r\n col: 3,\r\n name: \"nextComm\",\r\n value: (L) => `${L[`${this.M}nextSend`]}
${notification?.nextComm ? _moment(notification.nextComm).format(\"MMM DD hhA\") : \"\"}`,\r\n type: \"label\",\r\n },\r\n {\r\n col: 3,\r\n name: \"btnEdit\",\r\n value: \"\",\r\n type: \"button\",\r\n label: \"main.edit\",\r\n onClick: () => {\r\n this.ctxAdmNotification.getDataById(notification?.notificationId)\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"alert2\",\r\n value: () => this.state.successMsg,\r\n type: \"alert\",\r\n opts: {\r\n color: \"info\"\r\n },\r\n renderIf: () => this.state.successMsg\r\n },\r\n ]\r\n this.setState({formSendSummaryFields: notification?.notificationId > 0 || readMode ? fieldsReadMode : fields})\r\n }\r\n\r\n getData(loader = true, superSectionId) {\r\n if (loader) this.setState({ progressBar: true, data: []})\r\n const params = {\r\n toDate: `${_moment().format(\"YYYY-MM-DD\")}`,\r\n superSectionId: superSectionId\r\n }\r\n const query = objToQueryString(params)\r\n _axios\r\n .get(`admCommunications/get?${query}`)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n const setCardValue = (id, val) => this.state.communicationTypes.map(e => { if(e.id === id) e.value = val; return e } )\r\n setCardValue(\"act\", r.data.totalEvents)\r\n setCardValue(\"important\", r.data.totalImportant)\r\n setCardValue(\"pho\", r.data.totalMedia)\r\n setCardValue(\"pub\", r.data.totalNews)\r\n\r\n this.setState({\r\n data: r.data.grid.Results,\r\n noCommunications: r.data.grid.Results.length === 0,\r\n chartNumberConvers: r.data.chartNumberConvers,\r\n chartNumberMessages: r.data.chartNumberMessages,\r\n notification: {\r\n lastComm: r.data.lastComm,\r\n nextComm: r.data.nextComm,\r\n notificationActive: r.data.notificationActive,\r\n notificationId: r.data.notificationId,\r\n }\r\n }, () => { this.createFormSendSummary() /* console.log(this.state.data) */ })\r\n } else NotificationManager.error(r.msg, 'Opps', 4000, null, null, 'outline')\r\n this.setState({ progressBar: false })\r\n })\r\n }\r\n\r\n getCategory(item) {\r\n let cat = {}\r\n if ([\"pho\"].indexOf(item.categName) > -1) cat = {id: 1, color: \"success\", name: this.state.communicationTypes.find(t => t.id === \"pho\")?.title}\r\n else if ([\"pub\"].indexOf(item.categName) > -1) cat = {id: 2, color: \"success\", name: this.state.communicationTypes.find(t => t.id === \"pub\")?.title}\r\n else if ([\"act\", \"cal\"].indexOf(item.categName) > -1) cat = {id: 3, color: \"info\", name: this.state.communicationTypes.find(t => t.id === \"act\")?.title}\r\n if (item.pinned) cat = {id: 4, color: \"warning\", name: `${this.M}important`}\r\n else if (item.published === false) cat = {id: 5, color: \"danger\", name: `${this.M}draft`}\r\n return cat\r\n }\r\n\r\n createManually () {\r\n this.validateFor(null, ['commType']).then((v) => {\r\n [\"pub\", \"pho\"].indexOf(this.state.form.commType) > -1 ? this.ctxAdmPublication.toggle() : this.ctxAdmCalendar.toggle()\r\n })\r\n }\r\n\r\n createWithAi () {\r\n this.validateForm().then(() => {\r\n this.props.setLoader(true)\r\n let body = this.state.form\r\n body = {...body, ...{AI: true}}\r\n _axios\r\n .post(\"admCommunications/create\", body)\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) {\r\n const commType = this.state.form.commType\r\n const id = r.data;\r\n [\"pub\", \"pho\"].indexOf(commType) > -1 ? this.ctxAdmPublication.getDataById(id) : this.ctxAdmCalendar.getDataById(id)\r\n this.resetForm()\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n\r\n sendSummary () {\r\n this.validateFormSendSummary().then(() => {\r\n this.props.setLoader(true)\r\n const { day, hour } = this.state.formSendSummary\r\n const date = getNextDayOfWeek(day)\r\n const time = _moment(hour).format(\"HH:mm\")\r\n const dateTime = _moment(`${date} ${time}`)\r\n const body = {\r\n name: \"Weekly Comms\",\r\n doWA: true,\r\n doWATemplate: \"comms-en\",\r\n placeholders: [],\r\n doMail: false,\r\n doPush: false,\r\n sendTo: 0,\r\n filterBy: \"sections\",\r\n page: \"comms\",\r\n objectId: null,\r\n sendOn: dateTime.format(\"YYYY-MM-DD HH:mm:ss\"),\r\n hasRecurrence: true,\r\n recurrence: `0 ${dateTime.format(\"H\")} * * ${day}`,\r\n confirm: false,\r\n selectedField: null\r\n }\r\n _axios\r\n .post(\"admNotification/create\", body)\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) {\r\n this.createFormSendSummary(true)\r\n this.setState({ successMsg: r.msg })\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n\r\n listenStatesForm = (s) => {\r\n this.setState({ form: s })\r\n }\r\n\r\n listenCreateSuccess = (success) => {\r\n if (success) this.getData()\r\n }\r\n\r\n listenEditSuccess = (success) => {\r\n if (success) this.getData(false)\r\n }\r\n\r\n listenDeleteSuccess = (success) => {\r\n if (success) this.getData(false)\r\n }\r\n\r\n listenStatesFormSendSummary = (s) => {\r\n this.setState({ formSendSummary: s })\r\n }\r\n\r\n render() {\r\n const { locale, params } = this.props\r\n const L = AppLocale[locale].messages\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n

{L[`${this.M}communications`]}

\r\n
\r\n
\r\n
\r\n
\r\n\r\n {params?.setupMsg && {params.setupMsg}}\r\n\r\n \r\n \r\n \r\n {this.state.communicationTypes.map((item, index) => {\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
{L[`${this.M}composeCommunication`]}
\r\n {this.state.noCommunications &&
}\r\n
\r\n this.validateForm = fn}\r\n validateFor={fn => this.validateFor = fn}\r\n resetForm={fn => this.resetForm = fn}\r\n didUpdateStates={true}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{L[`${this.M}sendSummaryToAllParents`]}
\r\n
\r\n this.validateFormSendSummary = fn}\r\n didUpdateStates={true}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
{L[`${this.M}activeCommunicationsForTheWeek`]}
\r\n {\r\n this.getData(true, item.id)\r\n }}\r\n />\r\n
\r\n
{this.state.progressBar &&
}
\r\n {this.state.noCommunications && {L[\"main.noRecords\"]}}\r\n
\r\n \r\n {this.state.data.map((item, index) => {\r\n const category = this.getCategory(item)\r\n return (\r\n
\r\n
\r\n {\"\"}{e.target.onerror = null; e.target.src=require(\"../../../../assets/img/camera.png\")}}/>\r\n \r\n {L[category.name]?? category.name}\r\n \r\n
\r\n
\r\n

{item.name}

\r\n
\r\n

\r\n {item.desc}\r\n

\r\n
\r\n
\r\n {_moment(item.publishFrom).format(window.tenant.defaultDateFormat)}\r\n
\r\n
\r\n
\r\n {\r\n if ([\"pho\", \"pub\"].indexOf(item.categName) > -1) this.ctxAdmPublication.getDataById(item.id)\r\n else this.ctxAdmCalendar.getDataById(item.id)\r\n }},\r\n {icon: 'simple-icon-trash', name: 'main.delete', onClick: () => {\r\n if ([\"pho\", \"pub\"].indexOf(item.categName) > -1) this.ctxAdmPublication.toggleDelete(item.id)\r\n else this.ctxAdmCalendar.toggleDelete(item.id)\r\n }}\r\n ]}\r\n />\r\n
\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n this.ctxAdmPublication = ctx}\r\n match={{ path: '/app/admPublication' }}\r\n onlyCrud={true}\r\n listenCreateSuccess={this.listenCreateSuccess}\r\n listenEditSuccess={this.listenEditSuccess}\r\n listenDeleteSuccess={this.listenDeleteSuccess}\r\n />\r\n\r\n this.ctxAdmCalendar = ctx}\r\n match={{ path: '/app/admCalendar' }}\r\n onlyCrud={true}\r\n listenCreateSuccess={this.listenCreateSuccess}\r\n listenEditSuccess={this.listenEditSuccess}\r\n listenDeleteSuccess={this.listenDeleteSuccess}\r\n />\r\n\r\n this.ctxAdmNotification = ctx}\r\n match={{ path: '/app/admNotification' }}\r\n onlyCrud={true}\r\n listenCreateSuccess={this.listenCreateSuccess}\r\n listenEditSuccess={this.listenEditSuccess}\r\n listenDeleteSuccess={this.listenDeleteSuccess}\r\n />\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings, menu, utils, authUser }) => {\r\n const { menuItems } = menu\r\n const { locale } = settings\r\n const { deepLink, params } = utils\r\n const { userAdmin } = authUser\r\n return { locale, menuItems, deepLink, params, userAdmin }\r\n}\r\n\r\nexport default connect(mapStateToProps, { setLoader, setDeeplink, setParams })(AdmCommunications);","let icons = [\r\n {\r\n title: 'Basic',\r\n icons: [\r\n 'iconsminds-billing',\r\n 'iconsminds-binocular',\r\n 'iconsminds-bone',\r\n 'iconsminds-box-close',\r\n 'iconsminds-box-with-folders',\r\n 'iconsminds-brush',\r\n 'iconsminds-bucket',\r\n 'iconsminds-camera-3',\r\n 'iconsminds-camera-4',\r\n 'iconsminds-candle',\r\n 'iconsminds-candy',\r\n 'iconsminds-chair',\r\n 'iconsminds-control',\r\n 'iconsminds-control-2',\r\n 'iconsminds-crop-2',\r\n 'iconsminds-crown-2',\r\n 'iconsminds-dashboard',\r\n 'iconsminds-data-center',\r\n 'iconsminds-data-cloud',\r\n 'iconsminds-data-download',\r\n 'iconsminds-data-storage',\r\n 'iconsminds-delete-file',\r\n 'iconsminds-dice',\r\n 'iconsminds-drill',\r\n 'iconsminds-duplicate-layer',\r\n 'iconsminds-electricity',\r\n 'iconsminds-factory',\r\n 'iconsminds-feather',\r\n 'iconsminds-file',\r\n 'iconsminds-file-clipboard-file---text',\r\n 'iconsminds-file-clipboard',\r\n 'iconsminds-file-copy',\r\n 'iconsminds-file-edit',\r\n 'iconsminds-file-horizontal',\r\n 'iconsminds-files',\r\n 'iconsminds-file-zip',\r\n 'iconsminds-filter-2',\r\n 'iconsminds-flash-2',\r\n 'iconsminds-folder',\r\n 'iconsminds-folder-add--',\r\n 'iconsminds-folder-block',\r\n 'iconsminds-folder-close',\r\n 'iconsminds-folder-cloud',\r\n 'iconsminds-folder-delete',\r\n 'iconsminds-folder-edit',\r\n 'iconsminds-folder-open',\r\n 'iconsminds-folders',\r\n 'iconsminds-folder-zip',\r\n 'iconsminds-funny-bicycle',\r\n 'iconsminds-gas-pump',\r\n 'iconsminds-gear',\r\n 'iconsminds-gear-2',\r\n 'iconsminds-gears',\r\n 'iconsminds-gift-box',\r\n 'iconsminds-grave',\r\n 'iconsminds-headphone',\r\n 'iconsminds-headset',\r\n 'iconsminds-hipster-men',\r\n 'iconsminds-hub',\r\n 'iconsminds-idea',\r\n 'iconsminds-information',\r\n 'iconsminds-key',\r\n 'iconsminds-knife',\r\n 'iconsminds-lantern',\r\n 'iconsminds-layer-backward',\r\n 'iconsminds-layer-forward',\r\n 'iconsminds-library',\r\n 'iconsminds-light-bulb-2',\r\n 'iconsminds-loading',\r\n 'iconsminds-loading-2',\r\n 'iconsminds-loading-3',\r\n 'iconsminds-magic-wand',\r\n 'iconsminds-magnifi-glass--',\r\n 'iconsminds-magnifi-glass',\r\n 'iconsminds-memory-card-2',\r\n 'iconsminds-mine',\r\n 'iconsminds-mustache-2',\r\n 'iconsminds-office-lamp',\r\n 'iconsminds-old-sticky-2',\r\n 'iconsminds-on-off',\r\n 'iconsminds-on-off-2',\r\n 'iconsminds-on-off-3',\r\n 'iconsminds-palette',\r\n 'iconsminds-paper',\r\n 'iconsminds-pen',\r\n 'iconsminds-photo',\r\n 'iconsminds-photo-album-2',\r\n 'iconsminds-power-station',\r\n 'iconsminds-preview',\r\n 'iconsminds-pricing',\r\n 'iconsminds-profile',\r\n 'iconsminds-project',\r\n 'iconsminds-puzzle',\r\n 'iconsminds-refinery',\r\n 'iconsminds-remove-file',\r\n 'iconsminds-rename',\r\n 'iconsminds-repair',\r\n 'iconsminds-ruler',\r\n 'iconsminds-save',\r\n 'iconsminds-scissor',\r\n 'iconsminds-scroller',\r\n 'iconsminds-scroller-2',\r\n 'iconsminds-share',\r\n 'iconsminds-smoking-pipe',\r\n 'iconsminds-solar',\r\n 'iconsminds-statistic',\r\n 'iconsminds-suitcase',\r\n 'iconsminds-support',\r\n 'iconsminds-switch',\r\n 'iconsminds-tripod-with-camera',\r\n 'iconsminds-upgrade',\r\n 'iconsminds-user',\r\n 'iconsminds-windmill',\r\n 'iconsminds-witch-hat',\r\n 'iconsminds-wrench',\r\n 'iconsminds-add-file',\r\n 'iconsminds-affiliate',\r\n 'iconsminds-anchor',\r\n 'iconsminds-balloon',\r\n 'iconsminds-beard-3',\r\n 'iconsminds-bicycle',\r\n 'iconsminds-big-data',\r\n 'iconsminds-printer',\r\n 'iconsminds-sheep',\r\n 'iconsminds-cow',\r\n 'iconsminds-dog',\r\n 'iconsminds-deer',\r\n 'iconsminds-pantone',\r\n 'iconsminds-digital-drawing',\r\n 'iconsminds-trophy-2',\r\n 'iconsminds-life-safer',\r\n 'iconsminds-usb',\r\n 'iconsminds-flowerpot',\r\n ],\r\n },\r\n {\r\n title: 'Buildings & Landmarks',\r\n icons: [\r\n 'iconsminds-eifel-tower',\r\n 'iconsminds-el-castillo',\r\n 'iconsminds-embassy',\r\n 'iconsminds-empire-state-building',\r\n 'iconsminds-factory-1',\r\n 'iconsminds-fire-staion',\r\n 'iconsminds-home',\r\n 'iconsminds-home-3',\r\n 'iconsminds-home-4',\r\n 'iconsminds-hotel',\r\n 'iconsminds-japanese-gate',\r\n 'iconsminds-leaning-tower',\r\n 'iconsminds-lighthouse',\r\n 'iconsminds-museum',\r\n 'iconsminds-office',\r\n 'iconsminds-opera-house',\r\n 'iconsminds-piramids',\r\n 'iconsminds-police-station',\r\n 'iconsminds-post-office',\r\n 'iconsminds-prater',\r\n 'iconsminds-roof',\r\n 'iconsminds-space-needle',\r\n 'iconsminds-the-white-house',\r\n 'iconsminds-tower',\r\n 'iconsminds-bank',\r\n 'iconsminds-berlin-tower',\r\n 'iconsminds-big-bang',\r\n 'iconsminds-building',\r\n 'iconsminds-castle',\r\n 'iconsminds-chinese-temple',\r\n 'iconsminds-chrysler-building',\r\n 'iconsminds-city-hall',\r\n 'iconsminds-clothing-store',\r\n 'iconsminds-colosseum',\r\n 'iconsminds-column',\r\n 'iconsminds-taj-mahal',\r\n ],\r\n },\r\n {\r\n title: 'Business & Finance',\r\n icons: [\r\n 'iconsminds-coins',\r\n 'iconsminds-coins-2',\r\n 'iconsminds-diamond',\r\n 'iconsminds-dollar',\r\n 'iconsminds-dollar-sign-2',\r\n 'iconsminds-euro',\r\n 'iconsminds-euro-sign-2',\r\n 'iconsminds-financial',\r\n 'iconsminds-handshake',\r\n 'iconsminds-pie-chart-3',\r\n 'iconsminds-pie-chart',\r\n 'iconsminds-pound',\r\n 'iconsminds-pound-sign-2',\r\n 'iconsminds-safe-box',\r\n 'iconsminds-wallet',\r\n 'iconsminds-bar-chart-4',\r\n 'iconsminds-calendar-1',\r\n 'iconsminds-calendar-4',\r\n 'iconsminds-line-chart-1',\r\n 'iconsminds-line-chart-3',\r\n ],\r\n },\r\n {\r\n title: 'Clothes & Accesories',\r\n icons: [\r\n 'iconsminds-jeans',\r\n 'iconsminds-sunglasses-w-3',\r\n 'iconsminds-tie',\r\n 'iconsminds-t-shirt',\r\n 'iconsminds-baby-clothes',\r\n 'iconsminds-belt',\r\n 'iconsminds-bikini',\r\n 'iconsminds-blouse',\r\n 'iconsminds-boot',\r\n 'iconsminds-bow-3',\r\n 'iconsminds-bra',\r\n 'iconsminds-cap',\r\n 'iconsminds-coat',\r\n 'iconsminds-dress',\r\n 'iconsminds-glasses-3',\r\n 'iconsminds-gloves',\r\n 'iconsminds-hanger',\r\n 'iconsminds-heels-2',\r\n 'iconsminds-jacket',\r\n 'iconsminds-walkie-talkie',\r\n ],\r\n },\r\n {\r\n title: 'Communications & Network',\r\n icons: [\r\n 'iconsminds-wifi',\r\n 'iconsminds-address-book-2',\r\n 'iconsminds-bell',\r\n 'iconsminds-bird-delivering-letter',\r\n 'iconsminds-communication-tower-2',\r\n 'iconsminds-fax',\r\n 'iconsminds-megaphone',\r\n 'iconsminds-newspaper',\r\n 'iconsminds-old-telephone',\r\n 'iconsminds-router',\r\n 'iconsminds-telephone-2',\r\n 'iconsminds-smartphone-4',\r\n 'iconsminds-tablet-3',\r\n 'iconsminds-computer',\r\n 'iconsminds-laptop---phone',\r\n 'iconsminds-laptop---tablet',\r\n 'iconsminds-laptop-3',\r\n 'iconsminds-monitor',\r\n 'iconsminds-monitor---laptop',\r\n 'iconsminds-monitor---phone',\r\n 'iconsminds-monitor---tablet',\r\n 'iconsminds-monitor-3',\r\n 'iconsminds-monitor-vertical',\r\n 'iconsminds-orientation',\r\n 'iconsminds-phone-3',\r\n 'iconsminds-smartphone-3',\r\n ],\r\n },\r\n {\r\n title: 'Education',\r\n icons: [\r\n 'iconsminds-quill-3',\r\n 'iconsminds-student-hat',\r\n 'iconsminds-blackboard',\r\n 'iconsminds-book',\r\n 'iconsminds-bookmark',\r\n 'iconsminds-books',\r\n 'iconsminds-compass-2',\r\n 'iconsminds-diploma-2',\r\n 'iconsminds-eraser-2',\r\n 'iconsminds-formula',\r\n 'iconsminds-notepad',\r\n 'iconsminds-open-book',\r\n 'iconsminds-pen-2',\r\n 'iconsminds-pi',\r\n 'iconsminds-pipette',\r\n ],\r\n },\r\n {\r\n title: 'Emails',\r\n icons: [\r\n 'iconsminds-mail-block',\r\n 'iconsminds-mailbox-empty',\r\n 'iconsminds-mailbox-full',\r\n 'iconsminds-mail-delete',\r\n 'iconsminds-mail-favorite',\r\n 'iconsminds-mail-forward',\r\n 'iconsminds-mail-gallery',\r\n 'iconsminds-mail-inbox',\r\n 'iconsminds-mail-link',\r\n 'iconsminds-mail-lock',\r\n 'iconsminds-mail-love',\r\n 'iconsminds-mail-money',\r\n 'iconsminds-mail-open',\r\n 'iconsminds-mail-outbox',\r\n 'iconsminds-mail-password',\r\n 'iconsminds-mail-photo',\r\n 'iconsminds-mail-read',\r\n 'iconsminds-mail-remove-x',\r\n 'iconsminds-mail-reply-all',\r\n 'iconsminds-mail-reply',\r\n 'iconsminds-mail-search',\r\n 'iconsminds-mail-send',\r\n 'iconsminds-mail-settings',\r\n 'iconsminds-mail-unread',\r\n 'iconsminds-mail-video',\r\n 'iconsminds-mail-with-at-sign',\r\n 'iconsminds-mail-with-cursors',\r\n 'iconsminds-new-mail',\r\n 'iconsminds-post-mail-2',\r\n 'iconsminds-post-mail',\r\n 'iconsminds-spam-mail',\r\n 'iconsminds-stamp',\r\n 'iconsminds-stamp-2',\r\n 'iconsminds-voicemail',\r\n 'iconsminds-at-sign',\r\n 'iconsminds-box-full',\r\n 'iconsminds-empty-box',\r\n 'iconsminds-envelope',\r\n 'iconsminds-envelope-2',\r\n 'iconsminds-inbox',\r\n 'iconsminds-inbox-empty',\r\n 'iconsminds-inbox-forward',\r\n 'iconsminds-inbox-full',\r\n 'iconsminds-inbox-into',\r\n 'iconsminds-inbox-out',\r\n 'iconsminds-inbox-reply',\r\n 'iconsminds-letter-close',\r\n 'iconsminds-letter-open',\r\n 'iconsminds-letter-sent',\r\n 'iconsminds-mail',\r\n 'iconsminds-mail-2',\r\n 'iconsminds-mail-3',\r\n 'iconsminds-mail-add--',\r\n 'iconsminds-mail-attachement',\r\n ],\r\n },\r\n {\r\n title: 'Food & Drinks',\r\n icons: [\r\n 'iconsminds-ice-cream',\r\n 'iconsminds-lollipop',\r\n 'iconsminds-open-banana',\r\n 'iconsminds-pepper',\r\n 'iconsminds-tee-mug',\r\n 'iconsminds-tomato',\r\n 'iconsminds-apple',\r\n 'iconsminds-apple-bite',\r\n 'iconsminds-beer-glass',\r\n 'iconsminds-birthday-cake',\r\n 'iconsminds-bread',\r\n 'iconsminds-cake',\r\n 'iconsminds-can',\r\n 'iconsminds-can-2',\r\n 'iconsminds-cheese',\r\n 'iconsminds-chef-hat',\r\n 'iconsminds-chopsticks',\r\n 'iconsminds-cocktail',\r\n 'iconsminds-coffee',\r\n 'iconsminds-coffee-bean',\r\n 'iconsminds-coffee-to-go',\r\n 'iconsminds-cookies',\r\n 'iconsminds-croissant',\r\n 'iconsminds-cupcake',\r\n 'iconsminds-doughnut',\r\n 'iconsminds-fish',\r\n 'iconsminds-glass-water',\r\n 'iconsminds-hamburger',\r\n 'iconsminds-hot-dog',\r\n ],\r\n },\r\n {\r\n title: 'Hardware',\r\n icons: [\r\n 'iconsminds-webcam',\r\n 'iconsminds-battery-0',\r\n 'iconsminds-battery-100',\r\n 'iconsminds-battery-charge',\r\n 'iconsminds-charger',\r\n 'iconsminds-cpu',\r\n 'iconsminds-disk',\r\n 'iconsminds-dvd',\r\n 'iconsminds-fan',\r\n 'iconsminds-gamepad-2',\r\n 'iconsminds-hdd',\r\n 'iconsminds-keyboard',\r\n 'iconsminds-mouse',\r\n 'iconsminds-mouse-3',\r\n 'iconsminds-plug-in',\r\n 'iconsminds-power',\r\n 'iconsminds-power-cable',\r\n 'iconsminds-remote-controll-2',\r\n 'iconsminds-server-2',\r\n 'iconsminds-speaker',\r\n ],\r\n },\r\n {\r\n title: 'Interface',\r\n icons: [\r\n 'iconsminds-start-ways',\r\n 'iconsminds-synchronize',\r\n 'iconsminds-synchronize-2',\r\n 'iconsminds-undo',\r\n 'iconsminds-up-1',\r\n 'iconsminds-upload-1',\r\n 'iconsminds-upward',\r\n 'iconsminds-yes',\r\n 'iconsminds-add',\r\n 'iconsminds-back',\r\n 'iconsminds-broken-link',\r\n 'iconsminds-check',\r\n 'iconsminds-close',\r\n 'iconsminds-cursor',\r\n 'iconsminds-cursor-click-2',\r\n 'iconsminds-cursor-click',\r\n 'iconsminds-cursor-move-2',\r\n 'iconsminds-cursor-select',\r\n 'iconsminds-down-1',\r\n 'iconsminds-download-1',\r\n 'iconsminds-downward',\r\n 'iconsminds-endways',\r\n 'iconsminds-forward',\r\n 'iconsminds-left-1',\r\n 'iconsminds-link',\r\n 'iconsminds-next',\r\n 'iconsminds-orientation-1',\r\n 'iconsminds-pointer',\r\n 'iconsminds-previous',\r\n 'iconsminds-redo',\r\n 'iconsminds-refresh',\r\n 'iconsminds-reload-1',\r\n 'iconsminds-remove',\r\n 'iconsminds-repeat-1',\r\n 'iconsminds-reset',\r\n 'iconsminds-rewind',\r\n 'iconsminds-right-1',\r\n 'iconsminds-rotation',\r\n 'iconsminds-rotation-390',\r\n 'iconsminds-spot',\r\n ],\r\n },\r\n {\r\n title: 'Maps & Locations',\r\n icons: [\r\n 'iconsminds-satelite-2',\r\n 'iconsminds-compass-1',\r\n 'iconsminds-direction-east',\r\n 'iconsminds-edit-map',\r\n 'iconsminds-geo2',\r\n 'iconsminds-geo2--',\r\n 'iconsminds-globe-2',\r\n 'iconsminds-location-2',\r\n 'iconsminds-map2',\r\n 'iconsminds-map-marker-2',\r\n 'iconsminds-map-marker',\r\n ],\r\n },\r\n {\r\n title: 'Media control',\r\n icons: [\r\n 'iconsminds-stop',\r\n 'iconsminds-stop-2',\r\n 'iconsminds-back-1',\r\n 'iconsminds-back-2',\r\n 'iconsminds-eject',\r\n 'iconsminds-eject-2',\r\n 'iconsminds-end-1',\r\n 'iconsminds-end-2',\r\n 'iconsminds-next-1',\r\n 'iconsminds-next-2',\r\n 'iconsminds-pause',\r\n 'iconsminds-pause-2',\r\n 'iconsminds-power-2',\r\n 'iconsminds-power-3',\r\n 'iconsminds-record',\r\n 'iconsminds-record-2',\r\n 'iconsminds-repeat-5',\r\n 'iconsminds-repeat-6',\r\n 'iconsminds-shuffle-1',\r\n 'iconsminds-shuffle-3',\r\n 'iconsminds-start-1',\r\n 'iconsminds-start-2',\r\n ],\r\n },\r\n {\r\n title: 'Music',\r\n icons: [\r\n 'iconsminds-volume-down',\r\n 'iconsminds-volume-up',\r\n 'iconsminds-back-music',\r\n 'iconsminds-cd-2',\r\n 'iconsminds-clef',\r\n 'iconsminds-earphones-2',\r\n 'iconsminds-equalizer',\r\n 'iconsminds-first',\r\n 'iconsminds-headphones',\r\n 'iconsminds-last',\r\n 'iconsminds-loudspeaker',\r\n 'iconsminds-mic',\r\n 'iconsminds-microphone-4',\r\n 'iconsminds-next-music',\r\n 'iconsminds-old-radio',\r\n 'iconsminds-play-music',\r\n 'iconsminds-radio',\r\n 'iconsminds-record-1',\r\n 'iconsminds-record-music',\r\n 'iconsminds-sound',\r\n 'iconsminds-speaker-1',\r\n 'iconsminds-stop-music',\r\n 'iconsminds-trumpet',\r\n 'iconsminds-voice',\r\n 'iconsminds-electric-guitar',\r\n 'iconsminds-guitar',\r\n ],\r\n },\r\n {\r\n title: 'Nature',\r\n icons: [\r\n 'iconsminds-tree-3',\r\n 'iconsminds-eci-icon',\r\n 'iconsminds-environmental',\r\n 'iconsminds-environmental-3',\r\n 'iconsminds-fire-flame-2',\r\n 'iconsminds-green-energy',\r\n 'iconsminds-green-house',\r\n 'iconsminds-leafs',\r\n 'iconsminds-light-bulb-leaf',\r\n 'iconsminds-palm-tree',\r\n 'iconsminds-plant',\r\n 'iconsminds-recycling-2',\r\n 'iconsminds-seed',\r\n 'iconsminds-trash-with-men',\r\n 'iconsminds-forest-1',\r\n ],\r\n },\r\n {\r\n title: 'People',\r\n icons: [\r\n 'iconsminds-id-card',\r\n 'iconsminds-king-2',\r\n 'iconsminds-male',\r\n 'iconsminds-male-female',\r\n 'iconsminds-male-2',\r\n 'iconsminds-man-sign',\r\n 'iconsminds-mens',\r\n 'iconsminds-network',\r\n 'iconsminds-student-female',\r\n 'iconsminds-student-male',\r\n 'iconsminds-student-male-female',\r\n 'iconsminds-students',\r\n 'iconsminds-woman-man',\r\n 'iconsminds-add-user',\r\n 'iconsminds-administrator',\r\n 'iconsminds-assistant',\r\n 'iconsminds-business-man',\r\n 'iconsminds-business-man-woman',\r\n 'iconsminds-business-mens',\r\n 'iconsminds-business-woman',\r\n 'iconsminds-conference',\r\n 'iconsminds-doctor',\r\n 'iconsminds-engineering',\r\n 'iconsminds-female',\r\n 'iconsminds-female-2',\r\n 'iconsminds-temperature',\r\n ],\r\n },\r\n {\r\n title: 'Science & Medical',\r\n icons: [\r\n 'iconsminds-test-tube',\r\n 'iconsminds-ambulance',\r\n 'iconsminds-atom',\r\n 'iconsminds-band-aid',\r\n 'iconsminds-bio-hazard',\r\n 'iconsminds-biotech',\r\n 'iconsminds-brain',\r\n 'iconsminds-chemical',\r\n 'iconsminds-clinic',\r\n 'iconsminds-danger',\r\n 'iconsminds-dna',\r\n 'iconsminds-dna-2',\r\n 'iconsminds-first-aid',\r\n 'iconsminds-flask',\r\n 'iconsminds-medical-sign',\r\n 'iconsminds-medicine-3',\r\n 'iconsminds-microscope',\r\n 'iconsminds-physics',\r\n 'iconsminds-plasmid',\r\n 'iconsminds-plaster',\r\n 'iconsminds-pulse',\r\n 'iconsminds-radioactive',\r\n 'iconsminds-stethoscope',\r\n ],\r\n },\r\n {\r\n title: 'Security',\r\n icons: [\r\n 'iconsminds-security-settings',\r\n 'iconsminds-securiy-remove',\r\n 'iconsminds-shield',\r\n 'iconsminds-ssl',\r\n 'iconsminds-type-pass',\r\n 'iconsminds-unlock-2',\r\n 'iconsminds-finger-print',\r\n 'iconsminds-firewall',\r\n 'iconsminds-key-lock',\r\n 'iconsminds-laptop-secure',\r\n 'iconsminds-lock-2',\r\n 'iconsminds-password',\r\n 'iconsminds-password-field',\r\n 'iconsminds-police',\r\n 'iconsminds-security-block',\r\n 'iconsminds-security-bug',\r\n 'iconsminds-security-camera',\r\n 'iconsminds-security-check',\r\n ],\r\n },\r\n {\r\n title: 'Seo Icons',\r\n icons: [\r\n 'iconsminds-testimonal',\r\n 'iconsminds-broke-link-2',\r\n 'iconsminds-coding',\r\n 'iconsminds-consulting',\r\n 'iconsminds-copyright',\r\n 'iconsminds-idea-2',\r\n 'iconsminds-link-2',\r\n 'iconsminds-management',\r\n 'iconsminds-monitor-analytics',\r\n 'iconsminds-monitoring',\r\n 'iconsminds-optimization',\r\n 'iconsminds-tag',\r\n 'iconsminds-target',\r\n 'iconsminds-target-market',\r\n ],\r\n },\r\n {\r\n title: 'Shopping & E-commerce',\r\n icons: [\r\n 'iconsminds-shopping-bag',\r\n 'iconsminds-shopping-basket',\r\n 'iconsminds-shopping-cart',\r\n 'iconsminds-tag-3',\r\n 'iconsminds-add-bag',\r\n 'iconsminds-add-basket',\r\n 'iconsminds-add-cart',\r\n 'iconsminds-bag-items',\r\n 'iconsminds-bag-quantity',\r\n 'iconsminds-basket-coins',\r\n 'iconsminds-basket-items',\r\n 'iconsminds-basket-quantity',\r\n 'iconsminds-car-items',\r\n 'iconsminds-cart-quantity',\r\n 'iconsminds-cash-register-2',\r\n 'iconsminds-checkout',\r\n 'iconsminds-checkout-bag',\r\n 'iconsminds-checkout-basket',\r\n 'iconsminds-home-1',\r\n 'iconsminds-qr-code',\r\n 'iconsminds-receipt-4',\r\n 'iconsminds-remove-bag',\r\n 'iconsminds-remove-basket',\r\n 'iconsminds-remove-cart',\r\n 'iconsminds-shop',\r\n 'iconsminds-shop-2',\r\n 'iconsminds-shop-3',\r\n 'iconsminds-calculator',\r\n 'iconsminds-scale',\r\n 'iconsminds-shop-4',\r\n 'iconsminds-credit-card',\r\n 'iconsminds-credit-card-3',\r\n 'iconsminds-money-bag',\r\n ],\r\n },\r\n {\r\n title: 'Signs & Symbols',\r\n icons: [\r\n 'iconsminds-ying-yang',\r\n 'iconsminds-bisexual',\r\n 'iconsminds-cancer',\r\n 'iconsminds-couple-sign',\r\n 'iconsminds-family-sign',\r\n 'iconsminds-female-1',\r\n 'iconsminds-gey',\r\n 'iconsminds-heart',\r\n 'iconsminds-homosexual',\r\n 'iconsminds-inifity',\r\n 'iconsminds-lesbian',\r\n 'iconsminds-lesbians',\r\n 'iconsminds-love',\r\n 'iconsminds-male-1',\r\n 'iconsminds-men',\r\n 'iconsminds-no-smoking',\r\n 'iconsminds-paw',\r\n 'iconsminds-quotes',\r\n 'iconsminds-redirect',\r\n 'iconsminds-ribbon',\r\n 'iconsminds-venn-diagram',\r\n 'iconsminds-wheelchair',\r\n 'iconsminds-women',\r\n ],\r\n },\r\n {\r\n title: 'Social Media',\r\n icons: [\r\n 'iconsminds-instagram',\r\n 'iconsminds-last-fm',\r\n 'iconsminds-like',\r\n 'iconsminds-linkedin-2',\r\n 'iconsminds-livejournal',\r\n 'iconsminds-newsvine',\r\n 'iconsminds-picasa',\r\n 'iconsminds-pinterest',\r\n 'iconsminds-plaxo',\r\n 'iconsminds-plurk',\r\n 'iconsminds-posterous',\r\n 'iconsminds-qik',\r\n 'iconsminds-reddit',\r\n 'iconsminds-reverbnation',\r\n 'iconsminds-rss',\r\n 'iconsminds-sharethis',\r\n 'iconsminds-skype',\r\n 'iconsminds-soundcloud',\r\n 'iconsminds-stumbleupon',\r\n 'iconsminds-technorati',\r\n 'iconsminds-tumblr',\r\n 'iconsminds-twitter',\r\n 'iconsminds-unlike',\r\n 'iconsminds-ustream',\r\n 'iconsminds-viddler',\r\n 'iconsminds-vimeo',\r\n 'iconsminds-wordpress',\r\n 'iconsminds-xanga',\r\n 'iconsminds-yahoo',\r\n 'iconsminds-yelp',\r\n 'iconsminds-youtube',\r\n 'iconsminds-ask',\r\n 'iconsminds-behance',\r\n 'iconsminds-bing',\r\n 'iconsminds-blinklist',\r\n 'iconsminds-blogger',\r\n 'iconsminds-delicious',\r\n 'iconsminds-deviantart',\r\n 'iconsminds-digg',\r\n 'iconsminds-diigo',\r\n 'iconsminds-dribble',\r\n 'iconsminds-email',\r\n 'iconsminds-evernote',\r\n 'iconsminds-facebook',\r\n 'iconsminds-feedburner',\r\n 'iconsminds-flickr',\r\n 'iconsminds-formspring',\r\n 'iconsminds-forsquare',\r\n 'iconsminds-friendster',\r\n 'iconsminds-google',\r\n 'iconsminds-gowalla',\r\n 'iconsminds-icq',\r\n 'iconsminds-imdb',\r\n ],\r\n },\r\n {\r\n title: 'Speech Bubbles',\r\n icons: [\r\n 'iconsminds-speach-bubble',\r\n 'iconsminds-speach-bubbles',\r\n 'iconsminds-speach-bubble-2',\r\n 'iconsminds-speach-bubble-3',\r\n 'iconsminds-speach-bubble-4',\r\n 'iconsminds-speach-bubble-5',\r\n 'iconsminds-speach-bubble-6',\r\n 'iconsminds-speach-bubble-7',\r\n 'iconsminds-speach-bubble-8',\r\n 'iconsminds-speach-bubble-9',\r\n 'iconsminds-speach-bubble-10',\r\n 'iconsminds-speach-bubble-11',\r\n 'iconsminds-speach-bubble-12',\r\n 'iconsminds-speach-bubble-13',\r\n 'iconsminds-speach-bubble-asking',\r\n 'iconsminds-speach-bubble-comic-2',\r\n 'iconsminds-speach-bubble-comic-3',\r\n 'iconsminds-speach-bubble-comic-4',\r\n 'iconsminds-speach-bubble-comic',\r\n 'iconsminds-speach-bubble-dialog',\r\n ],\r\n },\r\n {\r\n title: 'Sports',\r\n icons: [\r\n 'iconsminds-trekking',\r\n 'iconsminds-trophy',\r\n 'iconsminds-weight-lift',\r\n 'iconsminds-aerobics',\r\n 'iconsminds-archery',\r\n 'iconsminds-ballet-shoes',\r\n 'iconsminds-baseball',\r\n 'iconsminds-basket-ball',\r\n 'iconsminds-bowling',\r\n 'iconsminds-box',\r\n 'iconsminds-chess',\r\n 'iconsminds-cricket',\r\n 'iconsminds-dumbbell',\r\n 'iconsminds-football',\r\n 'iconsminds-football-2',\r\n 'iconsminds-footprint',\r\n 'iconsminds-footprint-2',\r\n 'iconsminds-golf',\r\n 'iconsminds-gymnastics',\r\n 'iconsminds-hokey',\r\n 'iconsminds-jump-rope',\r\n 'iconsminds-life-jacket',\r\n 'iconsminds-medal',\r\n 'iconsminds-pilates-2',\r\n 'iconsminds-rafting',\r\n 'iconsminds-running-shoes',\r\n 'iconsminds-skydiving',\r\n 'iconsminds-snorkel',\r\n 'iconsminds-soccer-ball',\r\n 'iconsminds-swimming',\r\n 'iconsminds-tennis',\r\n 'iconsminds-tennis-ball',\r\n ],\r\n },\r\n {\r\n title: 'Time',\r\n icons: [\r\n 'iconsminds-over-time-2',\r\n 'iconsminds-sand-watch-2',\r\n 'iconsminds-stopwatch',\r\n 'iconsminds-time-backup',\r\n 'iconsminds-timer',\r\n 'iconsminds-watch',\r\n 'iconsminds-24-hour',\r\n 'iconsminds-alarm-clock-2',\r\n 'iconsminds-alarm-clock',\r\n 'iconsminds-clock',\r\n 'iconsminds-clock-2',\r\n 'iconsminds-clock-back',\r\n 'iconsminds-clock-forward',\r\n 'iconsminds-old-clock',\r\n ],\r\n },\r\n {\r\n title: 'Transportation',\r\n icons: [\r\n 'iconsminds-scooter',\r\n 'iconsminds-ship',\r\n 'iconsminds-skateboard',\r\n 'iconsminds-taxi-sign',\r\n 'iconsminds-traffic-light',\r\n 'iconsminds-train',\r\n 'iconsminds-yacht',\r\n 'iconsminds-bicycle-1',\r\n 'iconsminds-bus-2',\r\n 'iconsminds-car',\r\n 'iconsminds-gaugage',\r\n 'iconsminds-gaugage-2',\r\n 'iconsminds-helicopter',\r\n 'iconsminds-jeep',\r\n 'iconsminds-jet',\r\n 'iconsminds-motorcycle',\r\n 'iconsminds-plane',\r\n 'iconsminds-road-2',\r\n 'iconsminds-sailing-ship',\r\n 'iconsminds-air-balloon-1',\r\n 'iconsminds-tractor',\r\n ],\r\n },\r\n {\r\n title: 'Video',\r\n icons: [\r\n 'iconsminds-video-tripod',\r\n 'iconsminds-3d-eyeglasses',\r\n 'iconsminds-cinema',\r\n 'iconsminds-director',\r\n 'iconsminds-film',\r\n 'iconsminds-film-video',\r\n 'iconsminds-old-tv',\r\n 'iconsminds-tv',\r\n 'iconsminds-video',\r\n 'iconsminds-video-5',\r\n 'iconsminds-video-6',\r\n 'iconsminds-video-len',\r\n ],\r\n },\r\n {\r\n title: 'Weather',\r\n icons: [\r\n 'iconsminds-sunrise',\r\n 'iconsminds-sunset',\r\n 'iconsminds-temperature-2',\r\n 'iconsminds-thunder',\r\n 'iconsminds-umbrella-2',\r\n 'iconsminds-wave',\r\n 'iconsminds-wind-turbine',\r\n 'iconsminds-windy',\r\n 'iconsminds-cloud-hail',\r\n 'iconsminds-cloud-moon',\r\n 'iconsminds-cloud-rain',\r\n 'iconsminds-cloud-snow',\r\n 'iconsminds-cloud-sun',\r\n 'iconsminds-cloud-weather',\r\n 'iconsminds-drop',\r\n 'iconsminds-dry',\r\n 'iconsminds-fog-day',\r\n 'iconsminds-fog-night',\r\n 'iconsminds-half-moon',\r\n 'iconsminds-rain-drop',\r\n 'iconsminds-snow',\r\n 'iconsminds-snowflake-3',\r\n 'iconsminds-snow-storm',\r\n 'iconsminds-spring',\r\n 'iconsminds-storm',\r\n 'iconsminds-summer',\r\n 'iconsminds-sun',\r\n 'iconsminds-sun-cloudy-rain',\r\n ],\r\n },\r\n]\r\n\r\nlet data = []\r\nicons.forEach(i => {\r\n data = data.concat(i.icons)\r\n})\r\n\r\ndata = data.map((e) => {\r\n e = {value: e, label: e.replace(\"iconsminds-\", \"\")}\r\n return e\r\n})\r\n\r\nexport default data","import React, { Component, Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { setLoader, setParams, setContainerClassnames } from \"../../../redux/actions\";\r\nimport {\r\n Row,\r\n Card,\r\n CardBody,\r\n Button,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter\r\n} from \"reactstrap\";\r\nimport CustomModal from \"../../../components/utils/CustomModal\";\r\nimport { Colxx } from \"../../../components/common/CustomBootstrap\";\r\nimport _axios from \"../../../libs/axios\";\r\nimport { NotificationManager } from \"../../../components/common/react-notifications\";\r\nimport AppLocale from \"../../../config/lang\";\r\nimport FormCustom from \"../../../components/utils/FormCustom\";\r\nimport { cloneDeep } from \"lodash\"\r\nimport Icons from '../../../data/icons';\r\nimport CustomDropdown from \"../../../components/utils/CustomDropdown\";\r\n\r\nclass Start extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n data: [],\r\n form: null,\r\n fields: [],\r\n fieldsDefault: [],\r\n idItemSelected: null,\r\n isAdmin: null,\r\n userMenu: [],\r\n message: null\r\n }\r\n\r\n this.M = \"admModule.\"\r\n this.L = AppLocale[props.locale].messages\r\n }\r\n\r\n componentWillMount() {\r\n this.getData()\r\n this.createForm()\r\n }\r\n\r\n componentDidMount() {\r\n if (window.innerWidth >= this.props.menuHiddenBreakpoint) this.props.setContainerClassnames(2,\"menu-default\",true)\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n }\r\n\r\n componentWillUnmount() {\r\n if (window.innerWidth >= this.props.menuHiddenBreakpoint) this.props.setContainerClassnames(0,\"menu-default\",true)\r\n }\r\n\r\n createForm() {\r\n const fields = [\r\n {\r\n col: 4,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.name\",\r\n rules: \"required\",\r\n opts: {\r\n style: \"float-label\"\r\n }\r\n },\r\n {\r\n col: 8,\r\n name: \"desc\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.desc\",\r\n rules: \"required\",\r\n opts: {\r\n style: \"float-label\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"icon\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.icon\",\r\n opts: {\r\n style: \"float-label\",\r\n items: Icons,\r\n withIcon: true\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"parentId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${this.M}groupMenu`,\r\n opts: {\r\n style: \"float-label\",\r\n path: \"admModule/get?level=0&pick=true\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"sort\",\r\n value: \"\",\r\n type: \"number\",\r\n label: \"main.order\",\r\n rules: \"required\",\r\n opts: {\r\n style: \"float-label\"\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"userRead\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${this.M}userGroupAccess`,\r\n opts: {\r\n style: \"float-label\",\r\n path: \"admGroup/get?pick=true\",\r\n isMulti: true,\r\n setOutput: v => v\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"userEdit\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${this.M}userGroupAccessModify`,\r\n opts: {\r\n style: \"float-label\",\r\n path: \"admGroup/get?pick=true\",\r\n isMulti: true,\r\n setOutput: v => v\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 4,\r\n name: \"hidden\",\r\n value: null,\r\n type: \"switch\",\r\n label: \"main.hidden\"\r\n }\r\n ]\r\n\r\n this.setState({fieldsDefault: fields})\r\n }\r\n\r\n getData(isAdmin = null) {\r\n this.setState({isAdmin: isAdmin, data: [], message: null}, () => {\r\n if (isAdmin === null) {\r\n let userMenu = cloneDeep(this.props.menuItems)\r\n userMenu = userMenu.filter(m => !m.hidden && m.id !== 'home').map(m => {\r\n m.subs = m.subs.filter(sm => !sm.hidden)\r\n return m\r\n })\r\n this.setState({data: userMenu})\r\n return\r\n }\r\n this.props.setLoader(true)\r\n _axios\r\n .get(`admModule/get?admin=${isAdmin}&classic=false`)\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) {\r\n r.data.Results.map(e => { e.label = e.name; e.id = e.ID; e.to = `/app/${e.ID}`; return e })\r\n // r.data.Results.map(e => { e.label = e.name; e.id = e.ID; e.to = `/app/${e.ID}`; e.setupMsg = \"Mensaje de prueba\"; return e })\r\n this.setState({data: r.data.Results, message: r.data.Results.length === 0 ? 'main.noRecords' : null})\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch(() => {\r\n this.props.setLoader(false)\r\n })\r\n })\r\n }\r\n\r\n getDataById(id) {\r\n this.setState({idItemSelected: id})\r\n this.props.setLoader(true)\r\n _axios\r\n .get(`admModule/get/${id}`)\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) {\r\n let fields = cloneDeep(this.state.fieldsDefault)\r\n fields.forEach((f) => {\r\n if (f.type !== 'label') f.value = r.data[f.name]\r\n if (f.name === 'parentId') f.value = {value: r.data['parentId'], label: r.data['parentName']}\r\n })\r\n this.setState({fields: fields}, () => { this.toggle() })\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch(() => {\r\n this.props.setLoader(false)\r\n })\r\n }\r\n\r\n edit () {\r\n this.validateForm().then(() => {\r\n let body = cloneDeep(this.state.form)\r\n if (body.userEdit) {\r\n body.userEdit = body.userEdit.map(e => {\r\n e = { ID: e.value, name: e.label, selected: true }\r\n return e\r\n })\r\n }\r\n if (body.userRead) {\r\n body.userRead = body.userRead.map(e => {\r\n e = { ID: e.value, name: e.label, selected: true }\r\n return e\r\n })\r\n }\r\n\r\n this.props.setLoader(true)\r\n _axios\r\n .post(`admModule/edit/${this.state.idItemSelected}`, body)\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) {\r\n this.toggle()\r\n this.getData(this.state.isAdmin)\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n\r\n listenStatesForm = (form) => {\r\n this.setState({form: form})\r\n }\r\n\r\n toggle = () => {\r\n this.setState(prevState => ({\r\n modal: !prevState.modal,\r\n }))\r\n }\r\n\r\n goTo(m) {\r\n if (m.hidden) return\r\n else if (this.state.isAdmin === false) {\r\n this.getDataById(m.id)\r\n return\r\n }\r\n this.props.setParams({setupMsg: m.setupMsg})\r\n this.props.history.push(m.to)\r\n }\r\n\r\n moduleCard = (m, i) => {\r\n const card = \r\n { this.goTo(m) }}>\r\n \r\n
\r\n {m.setupMsg && }\r\n {false && }\r\n {m.ai && }\r\n {this.state.isAdmin !== null && }\r\n
\r\n
\r\n
{m.label}
\r\n

{m.desc}

\r\n
\r\n
\r\n
\r\n return card\r\n }\r\n\r\n render() {\r\n const { locale } = this.props\r\n const L = AppLocale[locale].messages\r\n const { data, isAdmin, idItemSelected } = this.state\r\n const { M } = this\r\n return (\r\n \r\n \r\n \r\n
\r\n { this.getData(null) }},\r\n {name: `${M}manageAdminModules`, onClick: () => { this.getData(true) }},\r\n {name: `${M}manageAppAIModules`, onClick: () => { this.getData(false) }}\r\n ]}\r\n />\r\n
\r\n
\r\n \r\n {this.state.message &&
{L[this.state.message]}
}\r\n \r\n {data.map((m, i) => {\r\n const a = (m, i) => {\r\n return \r\n \r\n

{m.name}

\r\n {m.subs?.length === 0 && this.moduleCard(m, i)}\r\n {m.subs?.map((sm, i) => this.moduleCard(sm, i))}\r\n
\r\n
\r\n }\r\n const b = this.moduleCard(m, i)\r\n return (isAdmin == null ? a(m, i) : b)\r\n })}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n { `${idItemSelected ? L[\"main.edit\"] : L[\"main.create\"]}: ${data.find(d => d.id === idItemSelected)?.label}`}\r\n \r\n \r\n {this.state.fields?.length > 0 &&\r\n this.validateForm = fn}\r\n didUpdateStates={true}\r\n />\r\n }\r\n \r\n \r\n { idItemSelected ? this.edit() : this.create() }}>\r\n {idItemSelected ? L[\"main.save\"] : L[\"main.create\"]}\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings, menu, utils, authUser }) => {\r\n const { menuItems, menuHiddenBreakpoint } = menu\r\n const { locale } = settings\r\n const { params } = utils\r\n const { userAdmin } = authUser\r\n return { locale, menuHiddenBreakpoint, menuItems, userAdmin, params }\r\n};\r\n\r\nexport default connect(mapStateToProps, { setLoader, setParams, setContainerClassnames })(Start);\r\n\r\n","import React from \"react\";\r\nimport { Redirect, Route, Switch } from \"react-router-dom\";\r\n\r\nimport start from \"./start\";\r\n\r\nconst Home = ({ match }) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n);\r\nexport default Home;\r\n","import React, { Component} from \"react\";\r\nimport { Route, withRouter, Switch, Redirect } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport AppLayout from \"../../layout/AppLayout\";\r\nimport crudGrid from './modules/crudGrid';\r\nimport admGrades from './modules/custom/admGrades';\r\nimport admAttendanceControl from './modules/custom/admAttendanceControl';\r\nimport admJustification from './modules/custom/admJustification';\r\nimport admCommunications from './modules/custom/admCommunications';\r\nimport modules from \"../../config/admModules/modules\";\r\nimport home from \"./home\"\r\n\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.appModules = () => {\r\n const searchComponent = (name) => {\r\n if (['admGrades', 'admGradesBehavior'].indexOf(name) > -1) return admGrades\r\n else if (name === 'admAttendanceControl') return admAttendanceControl\r\n else if (name === 'admJustification') return admJustification\r\n else if (name === 'admCommunications') return admCommunications\r\n else return crudGrid\r\n }\r\n\r\n let r = []\r\n let otherModules = [\r\n {id: 'home', component: home}\r\n ]\r\n \r\n this.props.menuItems.forEach(e => {\r\n\r\n if (e.subs && e.subs.length > 0) {\r\n // submenus\r\n e.subs.forEach(eee => {\r\n modules.forEach(eeee => { if (eee.id === eeee.id) r.push({ id: eee.id, component: searchComponent(eee.id) }) });\r\n });\r\n }\r\n else {\r\n // menus\r\n modules.forEach(ee => { if (e.id === ee.id) r.push({ id: e.id, component: searchComponent(e.id) }) });\r\n }\r\n \r\n otherModules.forEach(ee => { if (e.id === ee.id) r.push(ee) });\r\n \r\n });\r\n if (!r.find((e) => { return e.id === 'home' })) r.push(otherModules[0])\r\n return r\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n // console.log(prevProps)\r\n }\r\n\r\n render() {\r\n const { match } = this.props;\r\n return (\r\n \r\n \r\n \r\n {this.appModules().filter(f=>!f.hidden).map(e => {\r\n return ( )\r\n })}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nconst mapStateToProps = ({ menu }) => {\r\n const { containerClassnames, menuItems } = menu;\r\n return { containerClassnames, menuItems };\r\n};\r\n\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n {}\r\n )(App)\r\n);\r\n","import React, { Component, Fragment } from \"react\";\r\n\r\nclass UserLayout extends Component {\r\n componentDidMount() {\r\n document.body.classList.add(\"background\");\r\n }\r\n componentWillUnmount() {\r\n document.body.classList.remove(\"background\");\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n {window.tenant.url.includes(\"theschool.cool\") && \"\"}\r\n
\r\n
\r\n
{this.props.children}
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserLayout;\r\n","const data = [\r\n { value: 93, label: \"+93 Afghanistan\" },\r\n { value: 355, label: \"+355 Albania\" },\r\n { value: 213, label: \"+213 Algeria\" },\r\n { value: 1684, label: \"+1684 American Samoa\" },\r\n { value: 376, label: \"+376 Andorra\" },\r\n { value: 244, label: \"+244 Angola\" },\r\n { value: 1264, label: \"+1264 Anguilla\" },\r\n { value: 1268, label: \"+1268 Antigua and Barbuda\" },\r\n { value: 54, label: \"+54 Argentina\" },\r\n { value: 374, label: \"+374 Armenia\" },\r\n { value: 297, label: \"+297 Aruba\" },\r\n { value: 61, label: \"+61 Australia\" },\r\n { value: 43, label: \"+43 Austria\" },\r\n { value: 994, label: \"+994 Azerbaijan\" },\r\n { value: 1242, label: \"+1242 Bahamas\" },\r\n { value: 973, label: \"+973 Bahrain\" },\r\n { value: 880, label: \"+880 Bangladesh\" },\r\n { value: 1246, label: \"+1246 Barbados\" },\r\n { value: 375, label: \"+375 Belarus\" },\r\n { value: 32, label: \"+32 Belgium\" },\r\n { value: 501, label: \"+501 Belize\" },\r\n { value: 229, label: \"+229 Benin\" },\r\n { value: 1441, label: \"+1441 Bermuda\" },\r\n { value: 975, label: \"+975 Bhutan\" },\r\n { value: 591, label: \"+591 Bolivia\" },\r\n { value: 387, label: \"+387 Bosnia and Herzegovina\" },\r\n { value: 267, label: \"+267 Botswana\" },\r\n { value: 55, label: \"+55 Brazil\" },\r\n { value: 246, label: \"+246 British Indian Ocean Territory\" },\r\n { value: 673, label: \"+673 Brunei Darussalam\" },\r\n { value: 359, label: \"+359 Bulgaria\" },\r\n { value: 226, label: \"+226 Burkina Faso\" },\r\n { value: 257, label: \"+257 Burundi\" },\r\n { value: 855, label: \"+855 Cambodia\" },\r\n { value: 237, label: \"+237 Cameroon\" },\r\n { value: 1, label: \"+1 Canada\" },\r\n { value: 238, label: \"+238 Cape Verde\" },\r\n { value: 1345, label: \"+1345 Cayman Islands\" },\r\n { value: 236, label: \"+236 Central African Republic\" },\r\n { value: 235, label: \"+235 Chad\" },\r\n { value: 56, label: \"+56 Chile\" },\r\n { value: 86, label: \"+86 China\" },\r\n { value: 61, label: \"+61 Christmas Island\" },\r\n { value: 672, label: \"+672 Cocos (Keeling) Islands\" },\r\n { value: 57, label: \"+57 Colombia\" },\r\n { value: 269, label: \"+269 Comoros\" },\r\n { value: 242, label: \"+242 Congo\" },\r\n { value: 242, label: \"+242 Congo, the Democratic Republic of the\" },\r\n { value: 682, label: \"+682 Cook Islands\" },\r\n { value: 506, label: \"+506 Costa Rica\" },\r\n { value: 225, label: \"+225 Cote D'Ivoire\" },\r\n { value: 385, label: \"+385 Croatia\" },\r\n { value: 53, label: \"+53 Cuba\" },\r\n { value: 357, label: \"+357 Cyprus\" },\r\n { value: 420, label: \"+420 Czech Republic\" },\r\n { value: 45, label: \"+45 Denmark\" },\r\n { value: 253, label: \"+253 Djibouti\" },\r\n { value: 1767, label: \"+1767 Dominica\" },\r\n { value: 1809, label: \"+1809 Dominican Republic\" },\r\n { value: 593, label: \"+593 Ecuador\" },\r\n { value: 20, label: \"+20 Egypt\" },\r\n { value: 503, label: \"+503 El Salvador\" },\r\n { value: 240, label: \"+240 Equatorial Guinea\" },\r\n { value: 291, label: \"+291 Eritrea\" },\r\n { value: 372, label: \"+372 Estonia\" },\r\n { value: 251, label: \"+251 Ethiopia\" },\r\n { value: 500, label: \"+500 Falkland Islands (Malvinas)\" },\r\n { value: 298, label: \"+298 Faroe Islands\" },\r\n { value: 679, label: \"+679 Fiji\" },\r\n { value: 358, label: \"+358 Finland\" },\r\n { value: 33, label: \"+33 France\" },\r\n { value: 594, label: \"+594 French Guiana\" },\r\n { value: 689, label: \"+689 French Polynesia\" },\r\n { value: 241, label: \"+241 Gabon\" },\r\n { value: 220, label: \"+220 Gambia\" },\r\n { value: 995, label: \"+995 Georgia\" },\r\n { value: 49, label: \"+49 Germany\" },\r\n { value: 233, label: \"+233 Ghana\" },\r\n { value: 350, label: \"+350 Gibraltar\" },\r\n { value: 30, label: \"+30 Greece\" },\r\n { value: 299, label: \"+299 Greenland\" },\r\n { value: 1473, label: \"+1473 Grenada\" },\r\n { value: 590, label: \"+590 Guadeloupe\" },\r\n { value: 1671, label: \"+1671 Guam\" },\r\n { value: 502, label: \"+502 Guatemala\" },\r\n { value: 224, label: \"+224 Guinea\" },\r\n { value: 245, label: \"+245 Guinea-Bissau\" },\r\n { value: 592, label: \"+592 Guyana\" },\r\n { value: 509, label: \"+509 Haiti\" },\r\n { value: 39, label: \"+39 Holy See (Vatican City State)\" },\r\n { value: 504, label: \"+504 Honduras\" },\r\n { value: 852, label: \"+852 Hong Kong\" },\r\n { value: 36, label: \"+36 Hungary\" },\r\n { value: 354, label: \"+354 Iceland\" },\r\n { value: 91, label: \"+91 India\" },\r\n { value: 62, label: \"+62 Indonesia\" },\r\n { value: 98, label: \"+98 Iran, Islamic Republic of\" },\r\n { value: 964, label: \"+964 Iraq\" },\r\n { value: 353, label: \"+353 Ireland\" },\r\n { value: 972, label: \"+972 Israel\" },\r\n { value: 39, label: \"+39 Italy\" },\r\n { value: 1876, label: \"+1876 Jamaica\" },\r\n { value: 81, label: \"+81 Japan\" },\r\n { value: 962, label: \"+962 Jordan\" },\r\n { value: 7, label: \"+7 Kazakhstan\" },\r\n { value: 254, label: \"+254 Kenya\" },\r\n { value: 686, label: \"+686 Kiribati\" },\r\n { value: 850, label: \"+850 Korea, Democratic People's Republic of\" },\r\n { value: 82, label: \"+82 Korea, Republic of\" },\r\n { value: 965, label: \"+965 Kuwait\" },\r\n { value: 996, label: \"+996 Kyrgyzstan\" },\r\n { value: 856, label: \"+856 Lao People's Democratic Republic\" },\r\n { value: 371, label: \"+371 Latvia\" },\r\n { value: 961, label: \"+961 Lebanon\" },\r\n { value: 266, label: \"+266 Lesotho\" },\r\n { value: 231, label: \"+231 Liberia\" },\r\n { value: 218, label: \"+218 Libyan Arab Jamahiriya\" },\r\n { value: 423, label: \"+423 Liechtenstein\" },\r\n { value: 370, label: \"+370 Lithuania\" },\r\n { value: 352, label: \"+352 Luxembourg\" },\r\n { value: 853, label: \"+853 Macao\" },\r\n { value: 389, label: \"+389 Macedonia, the Former Yugoslav Republic of\" },\r\n { value: 261, label: \"+261 Madagascar\" },\r\n { value: 265, label: \"+265 Malawi\" },\r\n { value: 60, label: \"+60 Malaysia\" },\r\n { value: 960, label: \"+960 Maldives\" },\r\n { value: 223, label: \"+223 Mali\" },\r\n { value: 356, label: \"+356 Malta\" },\r\n { value: 692, label: \"+692 Marshall Islands\" },\r\n { value: 596, label: \"+596 Martinique\" },\r\n { value: 222, label: \"+222 Mauritania\" },\r\n { value: 230, label: \"+230 Mauritius\" },\r\n { value: 269, label: \"+269 Mayotte\" },\r\n { value: 52, label: \"+52 Mexico\" },\r\n { value: 691, label: \"+691 Micronesia, Federated States of\" },\r\n { value: 373, label: \"+373 Moldova, Republic of\" },\r\n { value: 377, label: \"+377 Monaco\" },\r\n { value: 976, label: \"+976 Mongolia\" },\r\n { value: 1664, label: \"+1664 Montserrat\" },\r\n { value: 212, label: \"+212 Morocco\" },\r\n { value: 258, label: \"+258 Mozambique\" },\r\n { value: 95, label: \"+95 Myanmar\" },\r\n { value: 264, label: \"+264 Namibia\" },\r\n { value: 674, label: \"+674 Nauru\" },\r\n { value: 977, label: \"+977 Nepal\" },\r\n { value: 31, label: \"+31 Netherlands\" },\r\n { value: 599, label: \"+599 Netherlands Antilles\" },\r\n { value: 687, label: \"+687 New Caledonia\" },\r\n { value: 64, label: \"+64 New Zealand\" },\r\n { value: 505, label: \"+505 Nicaragua\" },\r\n { value: 227, label: \"+227 Niger\" },\r\n { value: 234, label: \"+234 Nigeria\" },\r\n { value: 683, label: \"+683 Niue\" },\r\n { value: 672, label: \"+672 Norfolk Island\" },\r\n { value: 1670, label: \"+1670 Northern Mariana Islands\" },\r\n { value: 47, label: \"+47 Norway\" },\r\n { value: 968, label: \"+968 Oman\" },\r\n { value: 92, label: \"+92 Pakistan\" },\r\n { value: 680, label: \"+680 Palau\" },\r\n { value: 970, label: \"+970 Palestinian Territory, Occupied\" },\r\n { value: 507, label: \"+507 Panama\" },\r\n { value: 675, label: \"+675 Papua New Guinea\" },\r\n { value: 595, label: \"+595 Paraguay\" },\r\n { value: 51, label: \"+51 Peru\" },\r\n { value: 63, label: \"+63 Philippines\" },\r\n { value: 48, label: \"+48 Poland\" },\r\n { value: 351, label: \"+351 Portugal\" },\r\n { value: 1787, label: \"+1787 Puerto Rico\" },\r\n { value: 974, label: \"+974 Qatar\" },\r\n { value: 262, label: \"+262 Reunion\" },\r\n { value: 40, label: \"+40 Romania\" },\r\n { value: 70, label: \"+70 Russian Federation\" },\r\n { value: 250, label: \"+250 Rwanda\" },\r\n { value: 290, label: \"+290 Saint Helena\" },\r\n { value: 1869, label: \"+1869 Saint Kitts and Nevis\" },\r\n { value: 1758, label: \"+1758 Saint Lucia\" },\r\n { value: 508, label: \"+508 Saint Pierre and Miquelon\" },\r\n { value: 1784, label: \"+1784 Saint Vincent and the Grenadines\" },\r\n { value: 684, label: \"+684 Samoa\" },\r\n { value: 378, label: \"+378 San Marino\" },\r\n { value: 239, label: \"+239 Sao Tome and Principe\" },\r\n { value: 966, label: \"+966 Saudi Arabia\" },\r\n { value: 221, label: \"+221 Senegal\" },\r\n { value: 381, label: \"+381 Serbia and Montenegro\" },\r\n { value: 248, label: \"+248 Seychelles\" },\r\n { value: 232, label: \"+232 Sierra Leone\" },\r\n { value: 65, label: \"+65 Singapore\" },\r\n { value: 421, label: \"+421 Slovakia\" },\r\n { value: 386, label: \"+386 Slovenia\" },\r\n { value: 677, label: \"+677 Solomon Islands\" },\r\n { value: 252, label: \"+252 Somalia\" },\r\n { value: 27, label: \"+27 South Africa\" },\r\n { value: 34, label: \"+34 Spain\" },\r\n { value: 94, label: \"+94 Sri Lanka\" },\r\n { value: 249, label: \"+249 Sudan\" },\r\n { value: 597, label: \"+597 Suriname\" },\r\n { value: 47, label: \"+47 Svalbard and Jan Mayen\" },\r\n { value: 268, label: \"+268 Swaziland\" },\r\n { value: 46, label: \"+46 Sweden\" },\r\n { value: 41, label: \"+41 Switzerland\" },\r\n { value: 963, label: \"+963 Syrian Arab Republic\" },\r\n { value: 886, label: \"+886 Taiwan, Province of China\" },\r\n { value: 992, label: \"+992 Tajikistan\" },\r\n { value: 255, label: \"+255 Tanzania, United Republic of\" },\r\n { value: 66, label: \"+66 Thailand\" },\r\n { value: 670, label: \"+670 Timor-Leste\" },\r\n { value: 228, label: \"+228 Togo\" },\r\n { value: 690, label: \"+690 Tokelau\" },\r\n { value: 676, label: \"+676 Tonga\" },\r\n { value: 1868, label: \"+1868 Trinidad and Tobago\" },\r\n { value: 216, label: \"+216 Tunisia\" },\r\n { value: 90, label: \"+90 Turkey\" },\r\n { value: 7370, label: \"+7370 Turkmenistan\" },\r\n { value: 1649, label: \"+1649 Turks and Caicos Islands\" },\r\n { value: 688, label: \"+688 Tuvalu\" },\r\n { value: 256, label: \"+256 Uganda\" },\r\n { value: 380, label: \"+380 Ukraine\" },\r\n { value: 971, label: \"+971 United Arab Emirates\" },\r\n { value: 44, label: \"+44 United Kingdom\" },\r\n { value: 1, label: \"+1 United States\" },\r\n { value: 1, label: \"+1 United States Minor Outlying Islands\" },\r\n { value: 598, label: \"+598 Uruguay\" },\r\n { value: 998, label: \"+998 Uzbekistan\" },\r\n { value: 678, label: \"+678 Vanuatu\" },\r\n { value: 58, label: \"+58 Venezuela\" },\r\n { value: 84, label: \"+84 Viet Nam\" },\r\n { value: 1284, label: \"+1284 Virgin Islands, British\" },\r\n { value: 1340, label: \"+1340 Virgin Islands, U.s.\" },\r\n { value: 681, label: \"+681 Wallis and Futuna\" },\r\n { value: 212, label: \"+212 Western Sahara\" },\r\n { value: 967, label: \"+967 Yemen\" },\r\n { value: 260, label: \"+260 Zambia\" },\r\n { value: 263, label: \"+263 Zimbabwe\" }\r\n]\r\nexport default data","import React, { Component } from \"react\";\r\nimport { Row, Card, Nav, NavItem, NavLink, TabContent, TabPane } from \"reactstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport { loginUser, logoutUser, setLoader, setTenants, setCurrentTenant, setMenuItems, changeLocale, } from \"../../redux/actions\";\r\nimport { Colxx } from \"../../components/common/CustomBootstrap\";\r\nimport _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport { logo, authType, authParams, tenants } from \"../../config/defaultValues\";\r\nimport {getValueOfParameterFromURL} from \"../../helpers/Utils\";\r\nimport AppLocale from \"../../config/lang\";\r\nimport classnames from 'classnames';\r\nimport FormCustom from \"../../components/utils/FormCustom\";\r\nimport countryCodes from '../../data/countryCodes'\r\n\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n email: null,\r\n password: null,\r\n prelog: null,\r\n activeTab: window.tenant.appName !== 'AppOnCloud' ? \"1\" : \"2\",\r\n form1: null,\r\n form2: null,\r\n form1Fields: [],\r\n form2Fields: [],\r\n pinSent: false,\r\n readyForm1: false,\r\n readyForm2: false\r\n };\r\n\r\n if (authType === 2) {\r\n //check for token from redirection\r\n if (localStorage.getItem(\"token\")) {\r\n this.redirectFlowUserDetails(localStorage.getItem(\"token\"));\r\n //localStorage.removeItem(\"token\");\r\n }\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n this.getParamsFromURL()\r\n .then(() => {\r\n this.createForm()\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n }) \r\n }\r\n\r\n componentDidMount() {\r\n let form1 = this.state.form1\r\n let code = parseInt(localStorage.getItem('countryCode'))\r\n form1 = {...form1, ...{countryCode: code?? ''}}\r\n this.setState({form1: form1})\r\n }\r\n\r\n getParamsFromURL = () => {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let token = getValueOfParameterFromURL(\"token\")\r\n if (token) {\r\n this.loginToken(token)\r\n resolve()\r\n } else resolve()\r\n } catch (error) {\r\n reject(error)\r\n }\r\n })\r\n }\r\n\r\n createForm = () => {\r\n const L = AppLocale[this.props.locale].messages\r\n\r\n const fields1 = [\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"countryCode\",\r\n value: this.state.form1?.countryCode,\r\n type: \"select\",\r\n label: \"\",\r\n rules: \"required\",\r\n placeholder: \"main.plusCountryCode\",\r\n opts: {\r\n items: countryCodes,\r\n isClearable: false,\r\n colClassName: \"pr-0\",\r\n filterOption: (option, searchText) => {\r\n let label = option.data.label.split(\" \")\r\n if (label[1].toLowerCase().startsWith(searchText.toLowerCase()) || label[0].toLowerCase().includes(searchText.toLowerCase())) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n },\r\n onChange: (ctx) => {\r\n if (ctx.state.countryCode) localStorage.setItem('countryCode', ctx.state.countryCode)\r\n }\r\n },\r\n {\r\n col: 8,\r\n colxs: 8,\r\n id: \"mobile\",\r\n name: \"mobile\",\r\n value: \"\",\r\n type: \"number\",\r\n label: \"\",\r\n placeholder: \"main.mobileNumber\",\r\n rules: \"required|max:9\",\r\n autoComplete: true,\r\n onKeyPress: e => e.key === 'Enter' ? this.verifyNumber() : null,\r\n opts: {\r\n colClassName: \"pl-0\",\r\n addon: {\r\n append: {\r\n buttons: [\r\n {\r\n icon: \"icomoon-message\",\r\n className: \"btn-send-phoneNumber\",\r\n outline: () => this.state.pinSent,\r\n onClick: () => { this.verifyNumber() }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"code\",\r\n value: \"\",\r\n type: \"number\",\r\n rules: \"required\",\r\n onKeyPress: e => e.key === 'Enter' ? this.loginCellphone() : null,\r\n opts: {\r\n addon: {\r\n prepend: {\r\n texts: [\"main.otp\"]\r\n }\r\n }\r\n },\r\n renderIf: () => this.state.pinSent\r\n },\r\n {\r\n col: 6,\r\n colxs: 5,\r\n value: `${L[\"main.mod_app\"]}`,\r\n name: \"label2\",\r\n type: \"label\",\r\n renderIf: () => window.tenant.appName === 'AppOnCloud'\r\n },\r\n {\r\n col: window.tenant.appName !== 'AppOnCloud' ? 12 : 6,\r\n colxs: window.tenant.appName !== 'AppOnCloud' ? 12 : 7,\r\n name: \"btnLogin2\",\r\n type: \"button\",\r\n label: \"main.login\",\r\n className: \"px-5\",\r\n onClick: () => { this.loginCellphone() },\r\n opts: {\r\n wrapperClassName: \"d-flex justify-content-end\"\r\n },\r\n renderIf: () => this.state.pinSent\r\n }\r\n ]\r\n this.setState({form1Fields: fields1}, () => {\r\n this.setState({readyForm1: true})\r\n })\r\n\r\n const fields2 = [\r\n {\r\n col: 12,\r\n name: \"email\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.mail\",\r\n rules: \"required|email\",\r\n autoComplete: true,\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"pass\",\r\n value: \"\",\r\n type: \"password\",\r\n label: \"main.password\",\r\n rules: \"required\",\r\n autoComplete: true,\r\n onKeyPress: e => e.key === 'Enter' ? this.validateForm() : null,\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 6,\r\n colxs: 5,\r\n value: `${L[\"main.mod_app\"]}`,\r\n name: \"label1\",\r\n type: \"label\",\r\n renderIf: () => window.tenant.appName === 'AppOnCloud'\r\n },\r\n {\r\n col: window.tenant.appName !== 'AppOnCloud' ? 12 : 6,\r\n colxs: window.tenant.appName !== 'AppOnCloud' ? 12 : 7,\r\n name: \"btnLogin1\",\r\n type: \"button\",\r\n label: \"main.login\",\r\n className: \"px-5\",\r\n onClick: () => { this.validateForm() },\r\n opts: {\r\n wrapperClassName: \"d-flex justify-content-end\"\r\n }\r\n }\r\n ]\r\n this.setState({form2Fields: fields2}, () => {\r\n this.setState({readyForm2: true})\r\n })\r\n }\r\n\r\n validateForm = () => {\r\n this.validateForm2().then(() => {\r\n this.props.setLoader(true);\r\n authType === 3 ? this.loginResourceOwner() : authType === 2 ? this.loginRedirect() : this.login()\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n\r\n listenStatesForm1 = (s) => {\r\n this.setState({ form1: s });\r\n }\r\n\r\n listenStatesForm2 = (s) => {\r\n this.setState({ form2: s });\r\n }\r\n\r\n verifyNumber = () => {\r\n this.validateForForm1(null, ['countryCode', 'mobile']).then(() => {\r\n this.props.setLoader(true)\r\n _axios\r\n .post('user/mauthpin', {user: `${this.state.form1.countryCode}${this.state.form1.mobile}`, admin: true})\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) this.setState({pinSent: true}, () => {\r\n setTimeout(() => { document.getElementById(\"form-login-cellphone-code\").focus()}, 500)\r\n })\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n })\r\n .catch(validationFailed => {\r\n // console.log(validationFailed)\r\n })\r\n }\r\n\r\n loginCellphone = () => {\r\n this.validateForm1().then(() => {\r\n this.props.setLoader(true)\r\n _axios\r\n .post('user/login', {user: `${this.state.form1.countryCode}${this.state.form1.mobile}`, pass: this.state.form1.code, admin: true})\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) {\r\n this.loginToken(r.data.token)\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n\r\n loginToken(token) {\r\n this.props.setLoader(true)\r\n _axios\r\n .get(\"admStaff/loginToken\", {headers: {'Content-Type': 'application/json;charset=UTF-8', 'token': token}})\r\n .then(r => {\r\n this.loginSuccess(r)\r\n })\r\n .catch(() => {\r\n this.props.setLoader(false)\r\n })\r\n }\r\n\r\n login() {\r\n this.props.setLoader(true)\r\n _axios\r\n .post(\"admStaff/login?adm=true\", { ext: '', user: this.state.form2.email, pass: this.state.form2.pass })\r\n .then(r => {\r\n this.loginSuccess(r)\r\n })\r\n .catch(() => {\r\n this.props.setLoader(false)\r\n })\r\n }\r\n\r\n loginSuccess(r) {\r\n if (authParams.map) r = authParams.map(r);\r\n if (r.status >= 0) {\r\n\r\n /*\r\n // test quitando permisos de escritura\r\n console.log(r.data.write)\r\n let w = r.data.write.filter(e => {\r\n return ['admBehavior', 'admBookingList', 'admJournal', 'admJustification', 'admCommitment', 'admDirectory', 'admGradesMaster', 'admSubject'].indexOf(e) < 0\r\n })\r\n r.data.write = w\r\n */\r\n // r.data.write.push(\"admFetch\")\r\n // r.data.write.push(\"admNotification\")\r\n // r.data.write.push(\"admAudit\")\r\n r.data.write.push(\"admFetchInput\")\r\n\r\n if (['sansilvestre', 'santamaria'].indexOf(window.tenant.id) === -1) document.title = `${window.tenant.appName} - ${r.data.companyName}`\r\n\r\n this.loggedIn(r.data);\r\n if(r.data.defaultLang) this.props.changeLocale(r.data.defaultLang.toLowerCase());\r\n } else NotificationManager.error(r.msg, \"Opps\", 5000, null, null, 'outline')\r\n this.props.setLoader(false)\r\n }\r\n\r\n loginRedirect(force) {\r\n document.location.href = authParams.Path + '/auth/core/connect/authorize?client_id='\r\n + authParams.ClientId\r\n + (force ?'&prompt=login' :'')\r\n + '&redirect_uri=' + encodeURIComponent(document.location.origin + '/authorized.html')\r\n + '&response_type=id_token%20token&scope=openid%20profile%20email%20roles%20all_claims%20getbee&nonce=' + Math.random().toString(36).substr(2);\r\n }\r\n\r\n continueLogin() {\r\n this.loggedIn(this.state.prelog);\r\n }\r\n\r\n loginResourceOwner() {\r\n let config = {\r\n headers: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n \"Accept\": \"*/*\",\r\n \"Authorization\": 'Basic ' + authParams.Basic\r\n }\r\n };\r\n\r\n _axios\r\n .post(authParams.Path + '/auth/core/connect/token', 'grant_type=password&username=' + this.state.email + '&password=' + this.state.password + '&scope=offline_access', config)\r\n .then(r => {\r\n if (!r.error) {\r\n if (!authParams.GetUser || authParams.GetUser.length === '') {\r\n NotificationManager.error('authGetUser url not set', \"!\", 5000, null, null, 'outline');\r\n return;\r\n }\r\n\r\n _axios.post(authParams.Path + '/auth/core/connect/token', 'grant_type=refresh_token&refresh_token=' + r.refresh_token, config)\r\n .then(rt => {\r\n\r\n //make user details call\r\n this.redirectFlowUserDetails(rt.access_token);\r\n });\r\n\r\n } else NotificationManager.error(r.error, \"!\", 5000, null, null, 'outline')\r\n })\r\n }\r\n\r\n redirectFlowUserDetails(token) {\r\n this.props.setLoader(true);\r\n\r\n let config = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": 'Bearer ' + token\r\n }\r\n };\r\n\r\n _axios.get(authParams.GetUser, config).then(rr => {\r\n if (authParams.map) rr = authParams.map(rr);\r\n rr.data.token = token;\r\n if(authType === 2)\r\n {\r\n this.setState({ prelog: rr.data });\r\n this.props.setLoader(false); // allow manual continue\r\n }\r\n else this.loggedIn(rr);\r\n },\r\n err => {\r\n if(authType === 2) this.loginRedirect(true);\r\n else {\r\n this.props.setLoader(false);\r\n NotificationManager.error('Could not login. Maybe you do not have permissions? :(', \"!\", 5000, null, null, 'outline');\r\n }\r\n }\r\n );\r\n }\r\n\r\n loggedIn(r) {\r\n r.menu.map((e) => {\r\n e.to = \"/app/\" + e.id\r\n e.subs = e.subs.map((ee) => {\r\n ee.label = ee.name\r\n ee.labelEn = ee.name\r\n ee.to = \"/app/\" + ee.id\r\n ee.configFields = ee.config\r\n delete ee.name\r\n delete ee.img\r\n delete ee.led\r\n delete ee.order\r\n delete ee.fields\r\n return ee\r\n })\r\n \r\n delete e.desc\r\n delete e.fields\r\n delete e.img\r\n delete e.led\r\n delete e.order\r\n return e\r\n })\r\n\r\n let temp = [\r\n /*{\r\n \"id\": \"admFetchInput\",\r\n \"icon\": \"iconsminds-bell\",\r\n \"hidden\": true,\r\n \"config\": null,\r\n \"name\": \"Inputs / questions\",\r\n \"to\": \"/app/admFetchInput\"\r\n },\r\n {\r\n \"id\": \"admTransport\",\r\n \"icon\": \"iconsminds-bell\",\r\n \"hidden\": false,\r\n \"config\": null,\r\n \"name\": \"Salida/Recojo\",\r\n \"to\": \"/app/admTransport\"\r\n },\r\n {\r\n \"id\": \"admNotification\",\r\n \"icon\": \"iconsminds-bell\",\r\n \"hidden\": false,\r\n \"config\": null,\r\n \"name\": \"Notificaciones\",\r\n \"to\": \"/app/admNotification\"\r\n },\r\n */\r\n {\r\n \"id\": \"home\",\r\n \"icon\": \"iconsminds-home\",\r\n \"hidden\": false,\r\n \"config\": null,\r\n \"name\": \"Inicio\",\r\n \"nameEn\": \"Home\",\r\n \"to\": \"/app/home/start\"\r\n },\r\n ]\r\n\r\n r.menu = r.menu.concat(temp)\r\n\r\n this.props.setMenuItems(r.menu);\r\n this.props.loginUser(r, this.props.history);\r\n\r\n this.getTenants(r.multiTenant ? false : r);\r\n }\r\n\r\n async getTenants(singleTenant) {\r\n var t;\r\n \r\n if (singleTenant!==false) {\r\n t = [\r\n { id: singleTenant.companyID, name: singleTenant.companyName, url: '', img: singleTenant.companyPic },\r\n ];\r\n }\r\n else {\r\n this.props.setLoader(true);\r\n await _axios\r\n .get(tenants.pathAll)\r\n .then(r => {\r\n if (tenants.map) r = tenants.map(r);\r\n t = r.data;\r\n t.unshift({ id: 0, name: '[Select tenant]' });\r\n },\r\n err => {\r\n t = tenants.default;\r\n });\r\n }\r\n\r\n this.props.setTenants(t);\r\n this.props.setCurrentTenant(t[0]);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.setLoader(false);\r\n }\r\n\r\n render() {\r\n const L = AppLocale[this.props.locale].messages\r\n return (\r\n \r\n \r\n\r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n

{L[\"main.login\"]}

\r\n\r\n \r\n\r\n \r\n {window.tenant.appName !== 'AppOnCloud' && \r\n {this.state.readyForm1 && this.validateForm1 = fn}\r\n validateFor={fn => this.validateForForm1 = fn}\r\n didUpdateStates={true}\r\n />}\r\n }\r\n\r\n \r\n {this.state.readyForm2 && this.validateForm2 = fn}\r\n didUpdateStates={true}\r\n />}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ authUser, settings }) => {\r\n const { user } = authUser;\r\n const { locale } = settings\r\n return { user, locale };\r\n};\r\n\r\nexport default connect(mapStateToProps, { loginUser, logoutUser, setLoader, setTenants, setCurrentTenant, setMenuItems, changeLocale })(Login);","import { createStore} from 'redux';\r\nimport reducers from './reducers';\r\n\r\nexport function configureStore(initialState) {\r\n\r\n const store = createStore(\r\n reducers,\r\n initialState\r\n );\r\n\r\n /* if (module.hot) {\r\n module.hot.accept('./reducers', () => {\r\n const nextRootReducer = require('./reducers');\r\n store.replaceReducer(nextRootReducer);\r\n });\r\n } */\r\n\r\n return store;\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Row, Card, CardTitle } from \"reactstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport { loginUser, logoutUser, setLoader } from \"../../redux/actions\";\r\nimport { Colxx } from \"../../components/common/CustomBootstrap\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport { logo } from \"../../config/defaultValues\";\r\nimport {getValueOfParameterFromURL} from \"../../helpers/Utils\";\r\nimport AppLocale from \"../../config/lang\";\r\nimport FormCustom from \"../../components/utils/FormCustom\";\r\nimport _axios from \"../../libs/axios\";\r\nimport countryCodes from '../../data/countryCodes'\r\nimport Dialog from \"../../components/utils/Dialog\";\r\nimport { goToWhatsApp } from \"../../helpers/Utils\";\r\n\r\nclass Register extends Component {\r\n constructor(props) {\r\n // console.log(props)\r\n super(props);\r\n this.state = {\r\n form: null,\r\n formFields: [],\r\n formButtons: [],\r\n pinSent: false,\r\n verifiedNumber: false,\r\n readyForm: false,\r\n dialog: {\r\n isOpen: false,\r\n toggle: () => {},\r\n title: null,\r\n msg: null,\r\n confirm: () => {}\r\n }\r\n }\r\n }\r\n\r\n componentWillMount () {\r\n this.getParamsFromURL()\r\n .then(() => {\r\n this.createForm()\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n }) \r\n }\r\n\r\n componentDidMount () {\r\n let form = this.state.form\r\n let code = parseInt(localStorage.getItem('countryCode'))\r\n form = {...form, ...{countryCode: code?? ''}}\r\n this.setState({form: form})\r\n }\r\n\r\n getParamsFromURL = () => {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let plan = getValueOfParameterFromURL(\"plan\")\r\n if (plan) {\r\n let form = this.state.form\r\n form = { form, ...{ plan: plan } }\r\n this.setState({ form: form}, () => {\r\n resolve()\r\n })\r\n } else resolve()\r\n } catch (error) {\r\n reject(error)\r\n }\r\n })\r\n }\r\n\r\n createForm = () => {\r\n const fields = [\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"countryCode\",\r\n value: this.state.form?.countryCode,\r\n type: \"select\",\r\n placeholder: \"main.plusCountryCode\",\r\n rules: \"required\",\r\n opts: {\r\n colClassName: \"pr-0\",\r\n items: countryCodes,\r\n isClearable: false,\r\n filterOption: (option, searchText) => {\r\n let label = option.data.label.split(\" \")\r\n if (label[1].toLowerCase().startsWith(searchText.toLowerCase()) || label[0].toLowerCase().includes(searchText.toLowerCase())) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n },\r\n onChange: (ctx) => {\r\n if (ctx.state.countryCode) localStorage.setItem('countryCode', ctx.state.countryCode)\r\n }\r\n },\r\n {\r\n col: 8,\r\n colxs: 8,\r\n id: \"mobile\",\r\n name: \"mobile\",\r\n value: \"\",\r\n type: \"number\",\r\n placeholder: \"main.mobileNumber\",\r\n rules: \"required|max:9\",\r\n onKeyPress: e => e.key === 'Enter' ? this.verifyNumber() : null,\r\n opts: {\r\n colClassName: \"pl-0\",\r\n addon: {\r\n append: {\r\n buttons: [\r\n {\r\n icon: \"icomoon-message\",\r\n className: \"btn-send-phoneNumber\",\r\n outline: () => this.state.pinSent,\r\n onClick: () => { this.verifyNumber() }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"code\",\r\n value: \"\",\r\n type: \"number\",\r\n label: \"\",\r\n rules: \"required\",\r\n onKeyPress: e => e.key === 'Enter' ? this.login() : null,\r\n opts: {\r\n addon: {\r\n prepend: {\r\n texts: [\"main.otp\"]\r\n }\r\n }\r\n },\r\n renderIf: () => this.state.pinSent\r\n },\r\n {\r\n col: 12,\r\n name: \"plan\",\r\n value: this.state.form?.plan?? \"\",\r\n type: \"select\",\r\n label: \"Plan\",\r\n placeholder: \"main.selectPlan\",\r\n rules: ['required'],\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: \"Starter\", label: \"Starter\"},\r\n {value: \"Empower\", label: \"Empower\"},\r\n {value: \"Custom\", label: \"Custom\"}\r\n ]\r\n },\r\n renderIf: () => this.state.pinSent && this.state.verifiedNumber\r\n },\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: L => `${L[\"main.company\"]} ${L[\"main.name\"]?.toLowerCase()}`,\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: () => this.state.pinSent && this.state.verifiedNumber\r\n },\r\n {\r\n col: 6,\r\n name: \"email\",\r\n value: \"\",\r\n type: \"text\",\r\n label: L => `${L[\"main.company\"]} ${L[\"main.email\"]?.toLowerCase()}`,\r\n rules: \"required|email\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: () => this.state.pinSent && this.state.verifiedNumber\r\n },\r\n {\r\n col: 4,\r\n colxs: 5,\r\n name: \"countryCode2\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.countryCode\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n items: countryCodes,\r\n isClearable: false,\r\n filterOption: (option, searchText) => {\r\n let label = option.data.label.split(\" \")\r\n if (label[1].toLowerCase().startsWith(searchText.toLowerCase()) || label[0].toLowerCase().includes(searchText.toLowerCase())) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n },\r\n renderIf: () => this.state.pinSent && this.state.verifiedNumber\r\n },\r\n {\r\n col: 8,\r\n colxs: 7,\r\n name: \"companyPhone\",\r\n value: \"\",\r\n type: \"number\",\r\n label: L => `${L[\"main.company\"]} ${L[\"main.phone\"]?.toLowerCase()}`,\r\n rules: \"required|max:9\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: () => this.state.pinSent && this.state.verifiedNumber\r\n },\r\n {\r\n col: 12,\r\n name: \"alias\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"\",\r\n placeholder: \"main.alias\",\r\n rules: ['required', {regex:'^[a-zA-Z0-9-]*$'}],\r\n opts: {\r\n style: 'float-label',\r\n addon: {\r\n append: {\r\n texts: [\".theschool.cool\"]\r\n }\r\n }\r\n },\r\n renderIf: () => this.state.pinSent && this.state.verifiedNumber\r\n },\r\n {\r\n col: 12,\r\n name: \"msg\",\r\n value: L => `
${L[\"main.startCreateAccountA\"]}
`,\r\n type: \"label\",\r\n renderIf: () => !this.state.pinSent\r\n },\r\n {\r\n col: 12,\r\n name: \"btnWhatsApp\",\r\n value: \"\",\r\n label: \"main.tryOnWhatsapp\",\r\n type: \"button\",\r\n className: \"d-flex align-items-center\",\r\n opts: {\r\n outline: true,\r\n icon: \"icomoon-whatsapp\",\r\n kind: \"success\",\r\n iconStyle: {fontSize: \"20px\", marginRight: \"8px\"},\r\n },\r\n onClick: () => goToWhatsApp(window.tenant.isPro ? \"15744440040\" : \"14159430840\", \"Hello\"),\r\n renderIf: () => !this.state.pinSent\r\n }\r\n ]\r\n\r\n const buttons = [\r\n {\r\n col: 12,\r\n name: \"btnSentPin\",\r\n type: \"button\",\r\n label: \"main.continue\",\r\n onClick: () => { this.login() },\r\n renderIf: () => this.state.pinSent && !this.state.verifiedNumber\r\n },\r\n {\r\n col: 12,\r\n name: \"btnRegister\",\r\n type: \"button\",\r\n label: \"main.register\",\r\n onClick: () => { this.register() },\r\n renderIf: () => this.state.pinSent && this.state.verifiedNumber\r\n }\r\n ]\r\n\r\n this.setState({formFields: fields, formButtons: buttons}, () => {\r\n this.setState({readyForm: true})\r\n })\r\n }\r\n\r\n listenStatesForm = (s) => {\r\n this.setState({ form: s });\r\n }\r\n\r\n verifyNumber = () => {\r\n this.validateFor(null, ['countryCode', 'mobile']).then(() => {\r\n this.props.setLoader(true)\r\n _axios\r\n .post('user/mauthpin', {user: `${this.state.form.countryCode}${this.state.form.mobile}`})\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) this.setState({pinSent: true}, () => {\r\n setTimeout(() => { document.getElementById(\"form-register-code\").focus()}, 500)\r\n })\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n })\r\n .catch(validationFailed => {\r\n // console.log(validationFailed)\r\n })\r\n }\r\n\r\n login = () => {\r\n this.validateForm().then(() => {\r\n this.props.setLoader(true)\r\n _axios\r\n .post('user/login', {user: `${this.state.form.countryCode}${this.state.form.mobile}`, pass: this.state.form.code})\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) {\r\n this.setState({verifiedNumber: true})\r\n this.props.loginUser(r.data, this.props.history, false)\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n\r\n register = () => {\r\n this.validateForm().then(() => {\r\n this.props.setLoader(true)\r\n _axios\r\n .post('company/setup', {\r\n email: this.state.form.email, \r\n cel: `${this.state.form.countryCode2}${this.state.form.companyPhone}`, \r\n name: this.state.form.name, \r\n alias: this.state.form.alias,\r\n plan: this.state.form.plan\r\n })\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) {\r\n this.props.logoutUser(this.props.history)\r\n this.setState({dialog: {\r\n isOpen: true,\r\n toggle: () => {\r\n let d = this.state.dialog\r\n d.isOpen = !d.isOpen\r\n this.setState({dialog: d})\r\n },\r\n msg: r.msg,\r\n confirm: (e) => {\r\n if (e) window.location.assign(`https://${r.data.alias}.theschool.cool/adm/`);\r\n this.state.dialog.toggle()\r\n },\r\n btnOkName: \"main.launchAdmin\",\r\n btnCancelHidden: true\r\n }})\r\n } else NotificationManager['error'](r.msg, 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n\r\n render() {\r\n const L = AppLocale[this.props.locale].messages\r\n return (\r\n \r\n \r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n {L[\"main.registerTenant\"]}\r\n \r\n {this.state.readyForm && this.validateForm = fn}\r\n validateFor={fn => this.validateFor = fn}\r\n />}\r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ authUser, settings }) => {\r\n const { user } = authUser;\r\n const { locale } = settings\r\n return { user, locale };\r\n};\r\n\r\nexport default connect(mapStateToProps, { loginUser, logoutUser, setLoader})(Register);\r\n","import React, { Component } from \"react\";\r\nimport { Row, Card, CardTitle, Form, Label, Input, Button } from \"reactstrap\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { Colxx } from \"../../components/common/CustomBootstrap\";\r\nimport IntlMessages from \"../../helpers/IntlMessages\";\r\n\r\nexport default class ForgotPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n email: \"name@email.com\"\r\n };\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n \r\n
\r\n

MAGIC IS IN THE DETAILS

\r\n

\r\n Please use your e-mail to reset your password.
\r\n If you are not a member, please{\" \"}\r\n \r\n register\r\n \r\n .\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Route, Switch, Redirect } from \"react-router-dom\";\r\nimport UserLayout from \"../../layout/UserLayout\";\r\n\r\nimport login from \"./login\";\r\nimport register from \"./register\";\r\nimport forgotPassword from \"./forgot-password\";\r\n\r\nconst User = ({ match }) => {\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\nexport default User;\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { Row, Card, CardTitle,Button } from \"reactstrap\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { Colxx } from \"../components/common/CustomBootstrap\";\r\nimport IntlMessages from \"../helpers/IntlMessages\";\r\nimport { logo } from \"../config/defaultValues\";\r\n\r\nclass Error extends Component {\r\n componentDidMount() {\r\n document.body.classList.add(\"background\");\r\n }\r\n componentWillUnmount() {\r\n document.body.classList.remove(\"background\");\r\n }\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {/*\r\n

MAGIC IS IN THE DETAILS

\r\n

Yes, it is indeed!

\r\n */}\r\n
\r\n
\r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n\r\n

:|

\r\n \r\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 Error;\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n Button,\r\n} from \"reactstrap\";\r\nimport {\r\n HashRouter as Router,\r\n Route,\r\n Switch,\r\n Redirect\r\n} from \"react-router-dom\";\r\nimport { IntlProvider } from \"react-intl\";\r\nimport AppLocale from \"./config/lang\";\r\nimport ColorSwitcher from \"./components/common/ColorSwitcher\";\r\nimport NotificationContainer from \"./components/common/react-notifications/NotificationContainer\";\r\nimport Loader from \"./components/utils/Loader\";\r\nimport { isMultiColorActive } from \"./config/defaultValues\";\r\nimport main from \"./views\";\r\nimport app from \"./views/app\";\r\nimport user from \"./views/user\";\r\nimport error from \"./views/error\";\r\nimport { getDirection } from \"./helpers/Utils\";\r\n\r\nconst AuthRoute = ({ component: Component, authUser, ...rest }) => (\r\n \r\n authUser ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n);\r\n\r\nclass App extends Component {\r\n componentWillMount() {\r\n const direction = getDirection();\r\n if (direction.isRtl) {\r\n document.body.classList.add(\"rtl\");\r\n document.body.classList.remove(\"ltr\");\r\n } else {\r\n document.body.classList.add(\"ltr\");\r\n document.body.classList.remove(\"rtl\");\r\n }\r\n }\r\n\r\n goToAppMobile = () => {\r\n window.open('/close-webview', '_self')\r\n }\r\n\r\n render() {\r\n const { locale, userAdmin } = this.props;\r\n const currentAppLocale = AppLocale[locale];\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {isMultiColorActive && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ authUser, settings }) => {\r\n const { userAdmin } = authUser;\r\n const { locale } = settings;\r\n return { userAdmin, locale };\r\n};\r\nconst mapActionsToProps = {};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapActionsToProps\r\n)(App);\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport { Provider } from \"react-redux\";\r\nimport { configureStore } from \"./redux/store\";\r\n\r\nimport App from \"./App\";\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n/*\r\n * If you want your app to work offline and load faster, you can change\r\n * unregister() to register() below. Note this comes with some pitfalls.\r\n * Learn more about service workers: https://bit.ly/CRA-PWA\r\n */\r\nserviceWorker.unregister();\r\n","import { EventEmitter } from 'events';\r\n\r\nconst createUUID = () => {\r\n const pattern = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';\r\n return pattern.replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16) | 0;\r\n const v = c === 'x' ? r : ((r & 0x3) | 0x8);\r\n return v.toString(16);\r\n });\r\n};\r\n\r\nconst Constants = {\r\n CHANGE: 'change',\r\n PRIMARY: 'primary',\r\n SECONDARY: 'secondary',\r\n INFO: 'info',\r\n SUCCESS: 'success',\r\n WARNING: 'warning',\r\n ERROR: 'error'\r\n};\r\n\r\nclass NotificationManager extends EventEmitter {\r\n constructor() {\r\n super();\r\n this.listNotify = [];\r\n }\r\n\r\n create(notify) {\r\n if (!notify.title && !notify.message) return\r\n const defaultNotify = {\r\n id: createUUID(),\r\n type: 'info',\r\n title: null,\r\n message: null,\r\n timeOut: 5000,\r\n customClassName:\"\"\r\n };\r\n if (notify.priority) {\r\n this.listNotify.unshift(Object.assign(defaultNotify, notify));\r\n } else {\r\n this.listNotify.push(Object.assign(defaultNotify, notify));\r\n }\r\n this.emitChange();\r\n }\r\n\r\n \r\n primary(message, title, timeOut, onClick, priority, customClassName) {\r\n this.create({\r\n type: Constants.PRIMARY,\r\n message,\r\n title,\r\n timeOut,\r\n onClick,\r\n priority,\r\n customClassName\r\n });\r\n }\r\n\r\n secondary(message, title, timeOut, onClick, priority, customClassName) {\r\n this.create({\r\n type: Constants.SECONDARY,\r\n message,\r\n title,\r\n timeOut,\r\n onClick,\r\n priority,\r\n customClassName\r\n });\r\n }\r\n\r\n info(message, title, timeOut, onClick, priority, customClassName) {\r\n this.create({\r\n type: Constants.INFO,\r\n message,\r\n title,\r\n timeOut,\r\n onClick,\r\n priority,\r\n customClassName\r\n });\r\n }\r\n\r\n success(message, title, timeOut, onClick, priority, customClassName) {\r\n this.create({\r\n type: Constants.SUCCESS,\r\n message,\r\n title,\r\n timeOut,\r\n onClick,\r\n priority,\r\n customClassName\r\n });\r\n }\r\n\r\n warning(message, title, timeOut, onClick, priority, customClassName) {\r\n this.create({\r\n type: Constants.WARNING,\r\n message,\r\n title,\r\n timeOut,\r\n onClick,\r\n priority,\r\n customClassName\r\n });\r\n }\r\n\r\n error(message, title, timeOut, onClick, priority, customClassName) {\r\n this.create({\r\n type: Constants.ERROR,\r\n message,\r\n title,\r\n timeOut,\r\n onClick,\r\n priority,\r\n customClassName\r\n });\r\n }\r\n\r\n remove(notification) {\r\n this.listNotify = this.listNotify.filter(n => notification.id !== n.id);\r\n this.emitChange();\r\n }\r\n\r\n emitChange() {\r\n this.emit(Constants.CHANGE, this.listNotify);\r\n }\r\n\r\n addChangeListener(callback) {\r\n this.addListener(Constants.CHANGE, callback);\r\n }\r\n\r\n removeChangeListener(callback) {\r\n this.removeListener(Constants.CHANGE, callback);\r\n }\r\n}\r\n\r\nexport default new NotificationManager();\r\n","import React from \"react\";\r\nimport { ContextMenu, MenuItem } from \"react-contextmenu\";\r\n\r\nconst ContextMenuContainer = ({onContextMenuClick}) => {\r\n return (\r\n \r\n \r\n Copy\r\n \r\n \r\n Move to archive\r\n \r\n \r\n Delete\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContextMenuContainer;\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport ReactTable from \"react-table\";\r\nimport { Card, CardBody } from \"reactstrap\";\r\nimport 'react-table/react-table.css';\r\nimport { createUltimatePagination } from \"react-ultimate-pagination\";\r\nimport { cloneDeep } from \"lodash\";\r\nimport { ContextMenuTrigger } from \"react-contextmenu\";\r\nimport ContextMenuContainer from \"../../containers/pages/ContextMenuContainer\";\r\nimport AppLocale from \"../../config/lang\";\r\nimport { replaceWords } from \"../../helpers/Utils\";\r\n\r\nfunction Page(props) {\r\n return (\r\n
  • \r\n {props.value}\r\n
  • \r\n );\r\n}\r\n\r\nfunction Ellipsis(props) {\r\n return
  • \r\n}\r\n\r\nfunction PreviousPageLink(props) {\r\n return
  • \r\n}\r\n\r\nfunction NextPageLink(props) {\r\n return
  • \r\n}\r\n\r\nfunction Wrapper(props) {\r\n return
      {props.children}
    \r\n}\r\n\r\nvar itemTypeToComponent = {\r\n 'PAGE': Page,\r\n 'ELLIPSIS': Ellipsis,\r\n 'PREVIOUS_PAGE_LINK': PreviousPageLink,\r\n 'NEXT_PAGE_LINK': NextPageLink,\r\n};\r\n\r\nvar UltimatePagination = createUltimatePagination({\r\n itemTypeToComponent: itemTypeToComponent,\r\n WrapperComponent: Wrapper\r\n});\r\n\r\nclass DataTable extends Component {\r\n constructor(props) {\r\n // console.log(props)\r\n super(props);\r\n this.state = {\r\n currentPage: 1,\r\n rowClickedData: null,\r\n expand: false\r\n };\r\n }\r\n\r\n componentWillReceiveProps (nextProps) {\r\n if (nextProps.currentPage > -1) this.setState({currentPage: nextProps.currentPage})\r\n }\r\n\r\n handleOnChangePagination(p) {\r\n if (p === -1) this.props.listenCurrentPage(p)\r\n else {\r\n this.props.data.length = 0;\r\n this.setState(({ currentPage: p }), () => { this.props.listenCurrentPage(p) })\r\n }\r\n }\r\n\r\n columnsFormat = () => {\r\n const { locale } = this.props\r\n const L = AppLocale[locale].messages\r\n let cols = cloneDeep(this.props.columns)\r\n cols = cols.filter(c => !c.hidden)\r\n cols.map((e, i) => {\r\n if (e.isBool || e.type === \"check\") e.Header =
    {L[e.Header]?? e.Header}
    \r\n else e.Header = L[e.Header]?? e.Header\r\n if (this.props.dataTableList) e.className = e.classList ? e.classList : (i > 3 && !e.isButton) ? 'd-none' : ''\r\n else e.className = e.classTable || ''\r\n return e\r\n })\r\n return cols\r\n }\r\n\r\n onContextMenuClick = (e, data, target) => {\r\n console.log(\"onContextMenuClick - action : \", data.action);\r\n alert(data.action + ': ' + this.state.rowClickedData.ID)\r\n };\r\n\r\n getTbodyProps = () => {\r\n let r = {}\r\n r.className = this.state.expand ? 'expand' : ''\r\n return r\r\n }\r\n\r\n getTheadTrProps = () => {\r\n let r = {}\r\n r.onClick = (e, handleOriginal) => {\r\n this.setState({\r\n expand: !this.state.expand\r\n });\r\n if (handleOriginal) {\r\n handleOriginal()\r\n }\r\n }\r\n r.style = {\r\n cursor: 'pointer'\r\n }\r\n return r\r\n }\r\n\r\n getTdProps = (state, rowInfo, column, instance) => {\r\n \r\n let r = {}\r\n /*\r\n r.onClick = (e, handleOriginal) => {\r\n this.setState({\r\n expand: !this.state.expand\r\n });\r\n if (handleOriginal) {\r\n handleOriginal()\r\n }\r\n }\r\n r.style = {\r\n cursor: 'pointer'\r\n }\r\n */\r\n if (this.props.enableContexMenu) {\r\n r.onContextMenu = () => {\r\n console.log(\"contextMenu\", rowInfo);\r\n this.setState({rowClickedData: rowInfo.original});\r\n }\r\n }\r\n return r\r\n };\r\n\r\n maxHeight = () => {\r\n let r = null\r\n if (this.props.maxHeight) {\r\n r = {\r\n overflow: 'auto',\r\n maxHeight: this.props.maxHeight\r\n }\r\n }\r\n return r\r\n }\r\n\r\n render() {\r\n const { locale, rowCount, pageCount, progressBar, title, dataTableList, data, enableContexMenu, defaultPageSize, getTrProps, hidePagination, customMsg, msgNoRecords } = this.props\r\n const { currentPage } = this.state\r\n const L = AppLocale[locale].messages\r\n return (\r\n
    \r\n
    {progressBar &&
    }
    \r\n \r\n \r\n {title &&
    {L[title]?? title}
    }\r\n {(this.props.currentPage === -1 || (!progressBar && data.length > 0)) &&\r\n \r\n {})()}\r\n getTdProps={this.getTdProps}\r\n />\r\n \r\n }\r\n\r\n {/* show menu when right clicking on a table row */}\r\n {enableContexMenu && }\r\n \r\n {(!hidePagination && data.length !== 0) &&\r\n { this.handleOnChangePagination(p) }}\r\n hideFirstAndLastPageLinks={true}\r\n />}\r\n\r\n {!hidePagination &&
    \r\n {/* customMsg || (data.length === 0 && !progressBar ? `${L[\"main.noRecords\"]}` : `${L[\"main.showing\"]} ${data.length}`) */}\r\n {customMsg || (\r\n data.length === 0 && !progressBar \r\n ? msgNoRecords?? `${L[\"main.noRecords\"]}`\r\n : rowCount === -1 && !progressBar\r\n ?
    {`${data.length} ${L[\"main.records\"]}`} { this.handleOnChangePagination(-1) }}>[Total]
    \r\n : data.length >= 0 && progressBar\r\n ? L[\"main.loading\"]\r\n :
    {`${replaceWords(L[\"main.paginationDetail\"], {\"{0}\":data.length, \"{1}\":rowCount, \"{2}\":currentPage, \"{3}\":pageCount })}`}
    \r\n )}\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = ({ settings }) => {\r\n const { locale } = settings\r\n return { locale };\r\n};\r\n\r\nexport default connect(mapStateToProps)(DataTable);","module.exports = \"data:image/png;base64,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\"","import {\r\n MENU_ITEMS,\r\n MENU_SET_CLASSNAMES,\r\n MENU_CONTAINER_ADD_CLASSNAME,\r\n MENU_CLICK_MOBILE_MENU,\r\n MENU_CHANGE_DEFAULT_CLASSES,\r\n MENU_CHANGE_HAS_SUB_ITEM_STATUS\r\n} from '../actions';\r\n\r\nexport const setMenuItems = (payload, isStoredMenu) => {\r\n const items = isStoredMenu ? payload : [];\r\n if (!isStoredMenu) {\r\n let top = payload;\r\n \r\n top.forEach(e => {\r\n let subs = [];\r\n if (e.subs) e.subs.forEach(s => {\r\n subs.push({\r\n id: s.id,\r\n icon: s.icon,\r\n label: s.label,\r\n labelEn: s.labelEn || s.label,\r\n to: \"/app/\" + s.id,\r\n desc: s.desc,\r\n subs: s.subs,\r\n hidden: s.hidden,\r\n configFields: s.configFields,\r\n setupMsg: s.setupMsg,\r\n ai: s.ai\r\n });\r\n });\r\n\r\n items.push({\r\n id: e.id,\r\n icon: e.icon,\r\n name: e.name,\r\n label: e.name,\r\n labelEn: e.nameEn || e.name,\r\n to: \"/app/\" + e.id,\r\n subs: subs,\r\n hidden: e.hidden,\r\n setupMsg: e.setupMsg,\r\n ai: e.ai\r\n });\r\n });\r\n\r\n localStorage.setItem('menu_items', JSON.stringify(items));\r\n }\r\n \r\n return (\r\n {\r\n type: MENU_ITEMS,\r\n payload: items\r\n }\r\n );\r\n}\r\n\r\nexport const changeSelectedMenuHasSubItems = (payload) => {\r\n return (\r\n {\r\n type: MENU_CHANGE_HAS_SUB_ITEM_STATUS,\r\n payload: payload\r\n }\r\n )\r\n}\r\n\r\nexport const changeDefaultClassnames = (strCurrentClasses) => {\r\n return (\r\n {\r\n type: MENU_CHANGE_DEFAULT_CLASSES,\r\n payload: strCurrentClasses\r\n }\r\n )\r\n}\r\n\r\nexport const addContainerClassname = (classname, strCurrentClasses) => {\r\n const newClasses = !strCurrentClasses.indexOf(classname) > -1 ? strCurrentClasses + ' ' + classname : strCurrentClasses;\r\n return (\r\n {\r\n type: MENU_CONTAINER_ADD_CLASSNAME,\r\n payload: newClasses\r\n }\r\n )\r\n}\r\n\r\nexport const clickOnMobileMenu = (strCurrentClasses) => {\r\n const currentClasses = strCurrentClasses ? strCurrentClasses.split(' ').filter(x => x !== '' && x !== 'sub-show-temporary') : '';\r\n let nextClasses = '';\r\n if (currentClasses.includes('main-show-temporary')) {\r\n nextClasses = (currentClasses.filter(x => x !== 'main-show-temporary')).join(' ');\r\n } else {\r\n nextClasses = currentClasses.join(' ') + ' main-show-temporary';\r\n }\r\n return (\r\n {\r\n type: MENU_CLICK_MOBILE_MENU,\r\n payload: { containerClassnames: nextClasses, menuClickCount: 0 }\r\n }\r\n )\r\n}\r\n\r\nexport const setContainerClassnames = (clickIndex, strCurrentClasses, selectedMenuHasSubItems) => {\r\n const currentClasses = strCurrentClasses ? strCurrentClasses.split(' ').filter(x => x !== '') : '';\r\n let nextClasses = '';\r\n if (!selectedMenuHasSubItems) {\r\n if (currentClasses.includes(\"menu-default\") && (clickIndex % 4 === 0 || clickIndex % 4 === 3)) {\r\n clickIndex = 1;\r\n }\r\n if (currentClasses.includes(\"menu-sub-hidden\") && (clickIndex % 4 === 2)) {\r\n clickIndex = 0;\r\n }\r\n if (currentClasses.includes(\"menu-hidden\") && (clickIndex % 4 === 2 || clickIndex % 4 === 3)) {\r\n clickIndex = 0;\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n if (clickIndex % 4 === 0) {\r\n if (currentClasses.includes('menu-default') && currentClasses.includes('menu-sub-hidden')) {\r\n nextClasses = 'menu-default menu-sub-hidden';\r\n } else if (currentClasses.includes('menu-default')) {\r\n nextClasses = 'menu-default';\r\n } else if (currentClasses.includes('menu-sub-hidden')) {\r\n nextClasses = 'menu-sub-hidden';\r\n } else if (currentClasses.includes('menu-hidden')) {\r\n nextClasses = 'menu-hidden';\r\n }\r\n clickIndex = 0;\r\n } else if (clickIndex % 4 === 1) {\r\n if (currentClasses.includes('menu-default') && currentClasses.includes('menu-sub-hidden')) {\r\n nextClasses = 'menu-default menu-sub-hidden main-hidden sub-hidden';\r\n } else if (currentClasses.includes('menu-default')) {\r\n nextClasses = 'menu-default sub-hidden';\r\n } else if (currentClasses.includes('menu-sub-hidden')) {\r\n nextClasses = 'menu-sub-hidden main-hidden sub-hidden';\r\n } else if (currentClasses.includes('menu-hidden')) {\r\n nextClasses = 'menu-hidden main-show-temporary';\r\n }\r\n } else if (clickIndex % 4 === 2) {\r\n if (currentClasses.includes('menu-default') && currentClasses.includes('menu-sub-hidden')) {\r\n nextClasses = 'menu-default menu-sub-hidden sub-hidden';\r\n } else if (currentClasses.includes('menu-default')) {\r\n nextClasses = 'menu-default main-hidden sub-hidden';\r\n } else if (currentClasses.includes('menu-sub-hidden')) {\r\n nextClasses = 'menu-sub-hidden sub-hidden';\r\n } else if (currentClasses.includes('menu-hidden')) {\r\n nextClasses = 'menu-hidden main-show-temporary sub-show-temporary';\r\n }\r\n } else if (clickIndex % 4 === 3) {\r\n if (currentClasses.includes('menu-default') && currentClasses.includes('menu-sub-hidden')) {\r\n nextClasses = 'menu-default menu-sub-hidden sub-show-temporary';\r\n } else if (currentClasses.includes('menu-default')) {\r\n nextClasses = 'menu-default sub-hidden';\r\n } else if (currentClasses.includes('menu-sub-hidden')) {\r\n nextClasses = 'menu-sub-hidden sub-show-temporary';\r\n } else if (currentClasses.includes('menu-hidden')) {\r\n nextClasses = 'menu-hidden main-show-temporary';\r\n }\r\n }\r\n if (currentClasses.includes('menu-mobile')) {\r\n nextClasses += ' menu-mobile';\r\n }\r\n return (\r\n {\r\n type: MENU_SET_CLASSNAMES,\r\n payload: { containerClassnames: nextClasses, menuClickCount: clickIndex }\r\n }\r\n )\r\n}","import {\r\n CHANGE_LOCALE,\r\n TENANTS,\r\n CURRENT_TENANT,\r\n LOADER\r\n} from '../actions';\r\n\r\nexport const changeLocale = (locale) => {\r\n localStorage.setItem('__current_locale', locale);\r\n document.documentElement.lang = locale;\r\n return (\r\n {\r\n type: CHANGE_LOCALE,\r\n payload: locale\r\n }\r\n )\r\n}\r\n\r\nexport const setTenants = (payload) => {\r\n localStorage.setItem('tenants', JSON.stringify(payload));\r\n return (\r\n {\r\n type: TENANTS,\r\n payload: payload\r\n }\r\n )\r\n}\r\n\r\nexport const setCurrentTenant = (payload) => {\r\n localStorage.setItem('current_tenant', JSON.stringify(payload));\r\n return (\r\n {\r\n type: CURRENT_TENANT,\r\n payload: payload\r\n }\r\n )\r\n}\r\n\r\nexport const setLoader = (payload) => {\r\n return (\r\n {\r\n type: LOADER,\r\n payload: payload\r\n }\r\n )\r\n}\r\n\r\n","import {\r\n DEEPLINK,\r\n PARAMS,\r\n MODALS\r\n } from '../actions';\r\n \r\n export const setDeeplink = (payload, history) => {\r\n let params = \"\"\r\n if (payload) {\r\n if (payload.type === 0) params = \"?deepLink=\" + btoa(JSON.stringify(payload))\r\n if (payload.type === 0 || payload.type === 1) history.push(payload.module + params)\r\n }\r\n \r\n return (\r\n {\r\n type: DEEPLINK,\r\n payload: payload\r\n }\r\n )\r\n }\r\n\r\n export const setParams = (payload) => {\r\n return (\r\n {\r\n type: PARAMS,\r\n payload: payload\r\n }\r\n )\r\n }\r\n\r\n export const setModals = (payload) => {\r\n return (\r\n {\r\n type: MODALS,\r\n payload: payload\r\n }\r\n )\r\n }","/* SETTINGS */\r\nexport const CHANGE_LOCALE = \"CHANGE_LOCALE\";\r\nexport const TENANTS = \"TENANTS\"\r\nexport const CURRENT_TENANT = \"CURRENT_TENANT\"\r\nexport const LOADER = \"LOADER\";\r\n\r\n/* AUTH */\r\nexport const LOGIN_USER = \"LOGIN_USER\";\r\nexport const LOGOUT_USER = \"LOGOUT_USER\";\r\n\r\n/* MENU */\r\nexport const MENU_ITEMS = \"MENU_ITEMS\";\r\nexport const MENU_SET_CLASSNAMES = \"MENU_SET_CLASSNAMES\";\r\nexport const MENU_CONTAINER_ADD_CLASSNAME = \"MENU_CONTAINER_ADD_CLASSNAME\";\r\nexport const MENU_CLICK_MOBILE_MENU = \"MENU_CLICK_MOBILE_MENU\";\r\nexport const MENU_CHANGE_DEFAULT_CLASSES = \"MENU_CHANGE_DEFAULT_CLASSES\";\r\nexport const MENU_CHANGE_HAS_SUB_ITEM_STATUS = \"MENU_CHANGE_HAS_SUB_ITEM_STATUS\";\r\n\r\n/* UTILS */\r\nexport const DEEPLINK = \"DEEPLINK\";\r\nexport const PARAMS = \"PARAMS\";\r\nexport const MODALS = \"MODALS\";\r\n\r\nexport * from \"./menu/actions\";\r\nexport * from \"./settings/actions\";\r\nexport * from \"./auth/actions\";\r\nexport * from \"./utils/actions\";\r\n","import {\r\n LOGIN_USER,\r\n LOGOUT_USER\r\n} from '../actions';\r\nimport { authType, authParams } from \"../../config/defaultValues\";\r\n\r\n\r\nexport const loginUser = (user, history, redirect = true) => {\r\n localStorage.setItem('user_admin', JSON.stringify(user));\r\n global.user = user;\r\n if (redirect) setTimeout(() => { history.push('/'); }, 500)\r\n return (\r\n {\r\n type: LOGIN_USER,\r\n payload: user\r\n }\r\n )\r\n}\r\n\r\nexport const logoutUser = (history) => {\r\n if (authType === 2) window.location.href = authParams.Path + '/auth/core/connect/endsession?id_token_hint=' + localStorage.getItem('id_token') + '&post_logout_redirect_uri=' + document.location.origin;\r\n\r\n let keys = Object.keys(localStorage);\r\n let items = keys.filter(e => ['__theme_color', '__current_locale', 'countryCode'].indexOf(e) === -1)\r\n items.forEach(item => localStorage.removeItem(item))\r\n\r\n return (\r\n {\r\n type: LOGOUT_USER,\r\n payload: { history }\r\n }\r\n )\r\n}","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nclass Notification extends React.Component {\r\n static propTypes = {\r\n type: PropTypes.oneOf(['info', 'success', 'warning', 'error', \"primary\", \"secondary\"]),\r\n title: PropTypes.node,\r\n message: PropTypes.node.isRequired,\r\n timeOut: PropTypes.number,\r\n onClick: PropTypes.func,\r\n onRequestHide: PropTypes.func,\r\n customClassName: PropTypes.string,\r\n };\r\n\r\n static defaultProps = {\r\n type: 'info',\r\n title: null,\r\n message: null,\r\n timeOut: 5000,\r\n onClick: () => {\r\n },\r\n onRequestHide: () => {\r\n },\r\n customClassName:\"\"\r\n };\r\n\r\n componentDidMount = () => {\r\n const { timeOut } = this.props;\r\n if (timeOut !== 0) {\r\n this.timer = setTimeout(this.requestHide, timeOut);\r\n }\r\n };\r\n\r\n componentWillUnmount = () => {\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n }\r\n };\r\n\r\n handleClick = () => {\r\n const { onClick } = this.props;\r\n if (onClick) {\r\n onClick();\r\n }\r\n this.requestHide();\r\n };\r\n\r\n requestHide = () => {\r\n const { onRequestHide } = this.props;\r\n if (onRequestHide) {\r\n onRequestHide();\r\n }\r\n };\r\n\r\n render() {\r\n const { type, message } = this.props;\r\n let { title } = this.props;\r\n const className = classnames(['notification', `notification-${type}`, this.props.customClassName]);\r\n title = title ? (

    {title}

    ) : null;\r\n return (\r\n
    \r\n
    \r\n {title}\r\n
    {message}
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Notification;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { CSSTransitionGroup } from 'react-transition-group';\r\nimport classnames from 'classnames';\r\nimport Notification from './Notification';\r\n\r\nclass Notifications extends React.Component {\r\n static propTypes = {\r\n notifications: PropTypes.array.isRequired,\r\n onRequestHide: PropTypes.func,\r\n enterTimeout: PropTypes.number,\r\n leaveTimeout: PropTypes.number\r\n };\r\n\r\n static defaultProps = {\r\n notifications: [],\r\n onRequestHide: () => {\r\n },\r\n enterTimeout: 400,\r\n leaveTimeout: 400\r\n };\r\n\r\n handleRequestHide = notification => () => {\r\n const { onRequestHide } = this.props;\r\n if (onRequestHide) {\r\n onRequestHide(notification);\r\n }\r\n };\r\n\r\n render() {\r\n const { notifications, enterTimeout, leaveTimeout } = this.props;\r\n const className = classnames('notification-container', {\r\n 'notification-container-empty': notifications.length === 0\r\n });\r\n return (\r\n
    \r\n \r\n {notifications.map((notification) => {\r\n const key = notification.id || new Date().getTime();\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Notifications;\r\n","import React from 'react';\r\nimport { Col } from 'reactstrap';\r\nconst Colxx = (props) => (\r\n \r\n);\r\nconst Separator = (props) => (\r\n
    \r\n);\r\nexport { Colxx,Separator }","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport NotificationManager from './NotificationManager';\r\nimport Notifications from './Notifications';\r\n\r\nclass NotificationContainer extends React.Component {\r\n static propTypes = {\r\n enterTimeout: PropTypes.number,\r\n leaveTimeout: PropTypes.number\r\n };\r\n\r\n static defaultProps = {\r\n enterTimeout: 400,\r\n leaveTimeout: 400\r\n };\r\n\r\n state = {\r\n notifications: []\r\n };\r\n\r\n componentWillMount = () => {\r\n NotificationManager.addChangeListener(this.handleStoreChange);\r\n };\r\n\r\n componentWillUnmount = () => {\r\n NotificationManager.removeChangeListener(this.handleStoreChange);\r\n };\r\n\r\n handleStoreChange = (notifications) => {\r\n this.setState({\r\n notifications\r\n });\r\n };\r\n\r\n handleRequestHide = (notification) => {\r\n NotificationManager.remove(notification);\r\n };\r\n\r\n render() {\r\n const { notifications } = this.state;\r\n const { enterTimeout, leaveTimeout } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default NotificationContainer;\r\n","import React from \"react\";\r\nimport { components } from \"react-select\";\r\n\r\nconst CustomSelectInput = props => {\r\n var customProps = Object.assign({}, props);\r\n delete customProps.autoCorrect;\r\n delete customProps.autoCapitalize;\r\n return ;\r\n};\r\n\r\nexport default CustomSelectInput\r\n","/* \r\nMenu Types: \"menu-default\", \"menu-sub-hidden\", \"menu-hidden\"\r\n*/\r\nexport const defaultMenuType = \"menu-default\";\r\nexport const subHiddenBreakpoint = 1000;\r\nexport const menuHiddenBreakpoint = 768;\r\n/*\r\nexport const defaultLocale = \"es\";\r\nexport const localeOptions = [\r\n { id: \"es\", name: \"Español\", direction: \"ltr\" },\r\n { id: \"en\", name: \"English\", direction: \"ltr\" }\r\n];\r\n*/\r\nexport const title = window.tenant.title;\r\nexport const name = window.tenant.name;\r\nexport const logo = window.tenant.logo;\r\nexport const hero = window.tenant.hero;\r\nexport const url = window.tenant.url;\r\nexport const lang = localStorage.getItem('__current_locale') || window.tenant.defaultLocale;\r\nexport const searchPath = \"\"; // \"/app/pages/search\"\r\nexport const servicePathDefault = url + 'api';\r\nexport const servicePath = localStorage.getItem('servicePath') || servicePathDefault;\r\nexport const authType = 1;\r\nexport const authParams = {\r\n Path: servicePathDefault + '/admStaff/login',\r\n ClientId: \"\",\r\n Basic: \"cm8uYWRtaW46c2VjcmV0\",\r\n Header: \"token\",\r\n GetUser: \"\"\r\n};\r\nexport const topNavOptions = {\r\n easyAccess: false,\r\n notifications: false\r\n};\r\nexport const tenants = {\r\n pathAll: \"admStaff/tenants\",\r\n pathOne: \"getTenant\",\r\n map: o => {\r\n return {\r\n \"id\": o.Id,\r\n \"name\": o.Name\r\n }\r\n },\r\n default: [\r\n ]\r\n};\r\n/* \r\nColor Options:\r\n\"light.purple\", \"light.blue\", \"light.green\", \"light.orange\", \"light.red\", \"dark.purple\", \"dark.blue\", \"dark.green\", \"dark.orange\", \"dark.red\"\r\n*/\r\nexport const isMultiColorActive = false;\r\nexport const defaultColor = window.tenant.theme;\r\nexport const defaultDirection = \"ltr\";\r\nexport const isDarkSwitchActive = true;\r\nexport const themeColorStorageKey = \"__theme_color\";\r\n\r\n// set title and favicon\r\n(function() {\r\n if (window.location.host.indexOf('localhost') === -1) document.title = title;\r\n var link = document.querySelector(\"link[rel*='icon']\") || document.createElement('link');\r\n link.type = 'image/x-icon';\r\n link.rel = 'shortcut icon';\r\n link.href = logo;\r\n document.getElementsByTagName('head')[0].appendChild(link);\r\n document.documentElement.lang = lang;\r\n const themeColorMeta = document.querySelector('meta[name=\"theme-color\"]');\r\n themeColorMeta.setAttribute('content', window.tenant.mobileStatusBarColor);\r\n})();","import React, { Component, Fragment } from \"react\";\r\nimport { setLoader, setDeeplink } from \"../../../../redux/actions\";\r\nimport {\r\n Row,\r\n Button,\r\n ButtonGroup,\r\n FormGroup,\r\n Form,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n UncontrolledTooltip\r\n} from \"reactstrap\";\r\nimport CustomModal from \"../../../../components/utils/CustomModal\";\r\nimport Field from \"../../../../components/utils/Field\"\r\nimport { Colxx } from \"../../../../components/common/CustomBootstrap\";\r\nimport CustomDropdown from \"../../../../components/utils/CustomDropdown\";\r\nimport Dialog from \"../../../../components/utils/Dialog\";\r\nimport DataTable from \"../../../../components/utils/DataTable\";\r\nimport _axios from \"../../../../libs/axios\";\r\nimport { NotificationManager } from \"../../../../components/common/react-notifications\";\r\nimport { connect } from \"react-redux\";\r\nimport modules from \"../../../../config/admModules/modules\";\r\nimport { cloneDeep, debounce } from \"lodash\"\r\nimport ReactToPrint from 'react-to-print';\r\nimport XLSX from 'xlsx-js-style';\r\nimport { objToQueryString, isAndroidOrIos } from \"../../../../helpers/Utils\"\r\n\r\nclass AdmGrades extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.view = (() => {\r\n\r\n let m = modules.find((e) => { return e.path === this.props.match.path })\r\n \r\n let n = this.props.menuItems.find((e) => {\r\n return e.to === this.props.match.path\r\n });\r\n \r\n // look in submenus\r\n if (n === undefined) {\r\n this.props.menuItems.forEach(menu => {\r\n if (n === undefined && menu.subs && menu.subs.length > 0) {\r\n n = menu.subs.find((ee) => { return ee.to === this.props.match.path });\r\n }\r\n });\r\n }\r\n\r\n let module = m.module(this)\r\n \r\n if (m && n) {\r\n n = { ...module, ...n }\r\n return n\r\n }\r\n })();\r\n\r\n this.state = {\r\n resource: null,\r\n data: [],\r\n progressBar: false,\r\n evalConcept: [],\r\n numLevels: 0,\r\n lastsConcepts: [],\r\n selectedArrow: 0,\r\n selectedReport: 0,\r\n \r\n periodId: null,\r\n superSectionId: null,\r\n sectionId: null,\r\n activityId: null,\r\n\r\n activityPartId: null,\r\n masterId: null,\r\n\r\n labelperiodId: '-',\r\n labelsuperSectionId: '-',\r\n labelsectionId: '-',\r\n labelactivityId: '-',\r\n labelmasterId: null,\r\n\r\n sectionReloader: true,\r\n activityReloader: true,\r\n masterReloader: true,\r\n\r\n showTooltip: false,\r\n\r\n toggleGenericVisible:false,\r\n modalGeneric: { title:'', msg:''},\r\n\r\n ready: false,\r\n isBehavior: this.view.config && this.view.config.isBehavior,\r\n loadGrid: false,\r\n master: null,\r\n masterFace: null,\r\n modal: false,\r\n\r\n masters: [],\r\n mastersColumns: [],\r\n mastersRowCount: 0,\r\n mastersProgressBar: false,\r\n quantitativeGrades: [\r\n {value: \"\", label: \"Sin nota\"},\r\n {value: \"0\", label: \"0\"},\r\n {value: \"1\", label: \"1\"},\r\n {value: \"2\", label: \"2\"},\r\n {value: \"3\", label: \"3\"},\r\n {value: \"4\", label: \"4\"},\r\n {value: \"5\", label: \"5\"},\r\n {value: \"6\", label: \"6\"},\r\n {value: \"7\", label: \"7\"},\r\n {value: \"8\", label: \"8\"},\r\n ]\r\n };\r\n }\r\n\r\n defaultFilter () {\r\n this.setState({\r\n selectedReport: this.state.isBehavior ? 4 : 2,\r\n periodId: { value: \"0\", label: \"[Actual]\" }\r\n }, () => {\r\n this.setState({ ready: true })\r\n })\r\n }\r\n\r\n componentWillMount() {\r\n if (this.props.deepLink) {\r\n // console.log(this.props.deepLink.params)\r\n this.setState({\r\n selectedReport: 5,\r\n periodId: { value: \"0\", label: \"[Actual]\" },\r\n superSectionId: this.props.deepLink.params[0],\r\n activityId: this.props.deepLink.params[1],\r\n }, () => {\r\n this.setState({ ready: true })\r\n })\r\n } else {\r\n // if (this.view.config && this.state.isBehavior) this.defaultFilter()\r\n // else this.getDefaultFilters()\r\n this.getDefaultFilters()\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n window.onscroll = () => { this.scrollY() }\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevState.selectedReport !== this.state.selectedReport) {\r\n switch (this.state.selectedReport)\r\n {\r\n case 1: this.setState({ data: [],superSectionId: null,sectionId: null,activityId: null,activityPartId: null,masterId: null}); break; // masters\r\n default: this.setState({ data: [],sectionId: null,activityId: null, activityPartId: null,masterId: null}); break; // rest\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.view = null\r\n window.onscroll = null\r\n this.props.setDeeplink(null)\r\n }\r\n\r\n getDefaultFilters() {\r\n _axios\r\n .get('admGrades/defaultFilters')\r\n .then(r => {\r\n if (r.status >= 0) {\r\n if (!r.data) {\r\n this.defaultFilter()\r\n return\r\n }\r\n this.setState({\r\n ready: true,\r\n selectedReport: this.state.isBehavior ? 4 : (r.data.selectedReport || 2),\r\n periodId: r.data.periodId || null,\r\n superSectionId: r.data.superSectionId || null \r\n }, () => {\r\n this.setState({ sectionId: r.data.sectionId || null, activityId: r.data.activityId || null })\r\n })\r\n } else NotificationManager.error(r.msg, 'Opps', 5000, null, null, 'outline')\r\n })\r\n }\r\n\r\n getEvalConcept(clearable = true) {\r\n this.setState({ progressBar: true });\r\n if (clearable) this.setState({ data: [] });\r\n let path = ''\r\n const {activityId, periodId, sectionId, selectedReport, activityPartId} = this.state\r\n\r\n if (this.state.isBehavior) {\r\n path = '/admEvalConcept/getHeaderFinal' + (this.state.isBehavior ? '/behavior' :'')+'?periodId=' + periodId + '§ionId='+ sectionId +'&levelCount=1&isBehavior=true' + (selectedReport === 3 ? '&type=4':'')\r\n } else {\r\n path = 'admEvalConcept/getHeader/?PageSize=40&activityId='+ (activityId||activityPartId) + (activityPartId ? '&isPart=true':'') + (sectionId ? ('§ionId='+sectionId):'') + '&page=1'+ (selectedReport === 6 ? '&levelCount=1&type=2':'')\r\n if (selectedReport === 3) path = 'admEvalConcept/getHeaderFinal' + (this.state.isBehavior ? '/behavior' :'') + '?periodId='+ periodId +'§ionId=' + sectionId + '&levelCount=0'\r\n else if (selectedReport === 4) path = 'admEvalConcept/getHeaderFinal' + (this.state.isBehavior ? '/behavior' :'') + '?periodId='+ periodId +'§ionId=' + sectionId + '&levelCount=-1'\r\n }\r\n \r\n _axios\r\n .get(path)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n if (!r.data || r.data.length === 0) {\r\n this.setState({ progressBar: false });\r\n return NotificationManager.error(\"No hay conceptos de evaluación\", 'Opps', 5000, null, null, 'outline')\r\n }\r\n\r\n let order = []\r\n var maxLevel = Math.max.apply(Math, r.data.map(function(o) { return o.level; }));\r\n // ordeno el array segun level\r\n for(let i = 0; i<=maxLevel; i++) {\r\n order = order.concat(r.data.filter((e) => { return e.level === i }).sort((a, b) => { return a.order - b.order })) // ordeno segun order\r\n }\r\n\r\n // ordenar segun jerarquía\r\n let res = []\r\n let index = 0\r\n res = order.filter(e => e.parentId === null)\r\n /*\r\n const parentsId = res.map(p => { p = p.ID; return p })\r\n const childrenConcepts = order.filter(o => parentsId.indexOf(o.parentId) > -1)\r\n const totalConcepts = parentsId.length + childrenConcepts.length\r\n console.log(parentsId)\r\n console.log(childrenConcepts)\r\n console.log(totalConcepts)\r\n */\r\n\r\n if (res.length > 0) {\r\n let f = () => {\r\n if (res.length === order.length) return\r\n order.forEach((e) => {\r\n if (e.parentId === res[index].ID) res.splice(index + (res.filter(e => e.parentId === res[index].ID).length + 1), 0, e)\r\n });\r\n index++\r\n f()\r\n }\r\n f()\r\n }\r\n\r\n // obtengo a los ultimos conceptos de cada jerarquía\r\n let lasts = []\r\n res.forEach(e => {\r\n if (res.findIndex(d => d.parentId === e.ID) < 0) lasts.push(e)\r\n });\r\n\r\n this.setState({ evalConcept: res, lastsConcepts: lasts }, () => {\r\n // console.log(this.state.lastsConcepts)\r\n this.getData(clearable)\r\n });\r\n } else NotificationManager.error(r.msg, 'Opps', 5000, null, null, 'outline')\r\n // this.setState({ progressBar: false });\r\n })\r\n }\r\n\r\n getData(clearable = true) {\r\n this.setState({ progressBar: true });\r\n if (clearable) this.setState({ loadGrid: false });\r\n let path = ''\r\n const {activityId, periodId, sectionId, selectedReport, activityPartId} = this.state\r\n\r\n if (this.state.isBehavior) {\r\n path = '/admGrades/getFinal?periodId='+ periodId +'§ionId=' + sectionId + '&levelCount=1&isBehavior=true' + (selectedReport === 3 ? '&type=4':'')\r\n } else {\r\n path = 'admGrades/get?activityId='+ (activityId || 0) + '&activityPartId=' + activityPartId + '&periodId=' + periodId + (sectionId ? ('§ionId=' + sectionId) : '')\r\n if (selectedReport === 3) path = 'admGrades/getFinal?periodId=' + periodId + '§ionId=' + sectionId + '&levelCount=0'\r\n else if (selectedReport === 4) path = 'admGrades/getFinal?periodId=' + periodId + '§ionId=' + sectionId + '&levelCount=-1'\r\n }\r\n\r\n _axios\r\n .get(path)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n if (!r.data || r.data.length === 0) {\r\n this.setState({ progressBar: false });\r\n return NotificationManager.error(\"No hay alumnos\", 'Opps', 5000, null, null, 'outline')\r\n }\r\n let temp = cloneDeep(r.data)\r\n let lc = cloneDeep(this.state.lastsConcepts)\r\n let tempGrades = []\r\n\r\n lc.forEach((e, i) => {\r\n // if (i === 1 ) e.canEdit = false\r\n let n = {\r\n abrev: e.abrev,\r\n conceptId: e.ID,\r\n studentId: \"\",\r\n gradeNum: \"\",\r\n gradeTxt: \"\",\r\n type: e.type,\r\n parentId: e.parentId,\r\n locked: e.locked,\r\n qualifications: (() => {\r\n let r = []\r\n r.push({value: '', label: 'Sin nota'})\r\n if (e.qualifications) {\r\n let p = e.qualifications.split(',')\r\n p.forEach(e => { r.push({value: e, label: e}) });\r\n }\r\n return r\r\n })(),\r\n canEdit: e.canEdit\r\n }\r\n tempGrades = [...tempGrades, n]\r\n });\r\n\r\n temp.forEach(e => {\r\n e.grades = cloneDeep(tempGrades)\r\n });\r\n\r\n temp.forEach((e, index) => {\r\n e.grades.forEach((ee, index2) => {\r\n let o = r.data[index].grades.find(g => g.conceptId === ee.conceptId)\r\n if (o) temp[index].grades[index2] = {...temp[index].grades[index2], ...o}\r\n });\r\n });\r\n\r\n this.setState({ showTooltip: false })\r\n this.setState({ data: temp }, () => {\r\n // console.log(this.state.data)\r\n this.createHeader()\r\n setTimeout(() => { this.setState({loadGrid: true}) }, 1000)\r\n });\r\n } else NotificationManager.error(r.msg, 'Error', 5000, null, null, 'outline')\r\n this.setState({ progressBar: false });\r\n })\r\n }\r\n\r\n edit(items) {\r\n let grades = []\r\n items.forEach(item => {\r\n const {conceptId, studentId, type} = item.params\r\n grades.push(\r\n {\r\n conceptId: conceptId,\r\n studentId: studentId,\r\n gradeNum: type === 0 ? (item.val === \"\" ? null : item.val) : undefined,\r\n gradeTxt: type > 0 ? (item.val === \"\" ? null : item.val) : undefined\r\n }\r\n )\r\n });\r\n\r\n let body = {\r\n grades: grades\r\n }\r\n _axios\r\n .post('admGrades' + (this.state.isBehavior ? '/behavior' :''), body)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n let d = cloneDeep(this.state.data)\r\n\r\n items.forEach(item => {\r\n const {conceptId, studentId, type, parentId} = item.params\r\n let f = d.find(e => e.studentId === studentId)\r\n if (f) {\r\n let n = f.grades.find(e => e.conceptId === conceptId)\r\n if (type === 0) n.gradeNum = item.val === '' ? null : parseInt(item.val, 10)\r\n if (type > 0) n.gradeTxt = item.val\r\n f.grades.map(g => {\r\n if (g.parentId === parentId) g.sync = true\r\n return g\r\n })\r\n }\r\n });\r\n\r\n this.setState({data: d})\r\n } else NotificationManager.error(r.msg, 'No se guardó la nota!', 10000, null, null, 'outline')\r\n })\r\n .catch((e) => { })\r\n }\r\n\r\n beforeEdit (e) {\r\n // console.log('beforeEdit', e.value)\r\n if (e.value === undefined || e.value === null) return\r\n const {conceptId, studentId, type} = e.params\r\n // const {type} = e.params\r\n const val = e.value\r\n\r\n // type input\r\n if (type === 0) {\r\n let num = parseInt(val, 10)\r\n if (num < 0 || num > 8) return\r\n }\r\n\r\n // type select\r\n /*\r\n if (type !== 0) {\r\n if (val.length > 1 ) return\r\n }\r\n */\r\n\r\n \r\n let f = this.state.data.find(e => e.studentId === studentId)\r\n if (f) {\r\n let n = f.grades.find(e => e.conceptId === conceptId)\r\n if (type === 0 && n.gradeNum === parseInt(val, 10)) return\r\n if (type === 1 && n.gradeTxt === val) return\r\n if ((type === 2 || type === 4) && n.gradeTxt === val) return\r\n }\r\n\r\n this.edit([{val: e.value, params: e.params}])\r\n }\r\n\r\n onChangeField = (e) => {\r\n if (e.value === undefined || e.value === null) return\r\n const { value, params } = e;\r\n const [fieldName, parentIndex, index] = params.inputId.split(\"-\");\r\n // console.log(params)\r\n \r\n let intParentIndex = parseInt(parentIndex, 10);\r\n let intIndex = parseInt(index, 10);\r\n let intValue = parseInt(value, 10);\r\n\r\n // save last field automatically\r\n if (intParentIndex === (this.state.data.length -1) && intIndex === (this.state.lastsConcepts.length - 1) && [2,4].indexOf(params.type) === -1 && this.state.loadGrid) {\r\n return this.edit([{val: e.value, params: e.params}])\r\n }\r\n\r\n if (this.state.loadGrid) {\r\n this.state.data.forEach((e) => {\r\n if (e.studentId === params.studentId) {\r\n e.grades.forEach((grade) => {\r\n if (grade.parentId === params.parentId && grade.locked) {\r\n // console.log(\"sync\")\r\n grade.sync = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n \r\n if ((value.length >= 2 && params.type === 0) || (params.type === 1 && (value.length >= 1 || value === ''))) {\r\n if (params.type === 0 && (intValue < 0 || intValue > 8)) {\r\n NotificationManager.error('Solo se permite igresar números del 0 al 8', \"Error\", 5000, null, null, 'outline')\r\n return\r\n }\r\n\r\n if (intIndex < this.state.lastsConcepts.length && intParentIndex < this.state.data.length) {\r\n\r\n /*\r\n // focus horizontal\r\n if (intIndex === (this.state.lastsConcepts.length - 1)) {\r\n intParentIndex = intParentIndex + 1\r\n intIndex = 0\r\n } else intIndex = intIndex + 1\r\n */\r\n\r\n // focus vertical\r\n if (intParentIndex === (this.state.data.length - 1)) {\r\n intParentIndex = 0\r\n intIndex = intIndex + 1\r\n } else intParentIndex = intParentIndex + 1\r\n \r\n const nextfield = document.querySelector(\r\n '#grades-'+fieldName+'-'+intParentIndex+'-'+(intIndex)\r\n );\r\n \r\n if (nextfield !== null) {\r\n if (isAndroidOrIos()) this.beforeEdit(e)\r\n if(this.state.loadGrid) nextfield.focus();\r\n }\r\n }\r\n }\r\n }\r\n\r\n onBlurField = (e) => {\r\n if (isAndroidOrIos()) return\r\n // console.log('blur', e)\r\n this.beforeEdit(e)\r\n }\r\n\r\n onKeyUpField = (e, ctx) => {\r\n let value = parseInt(e.target.value)\r\n if(typeof value === 'number') {\r\n if (value < 0 || value > 8) ctx.setState({[ctx.props.name]: ''})\r\n } else ctx.setState({[ctx.props.name]: ''})\r\n }\r\n\r\n\r\n execute = debounce(() => { this.getEvalConcept() }, 300)\r\n\r\n onChangeFieldFilter = (name, value) => {\r\n this.setState({data:[]});\r\n if (!value) return\r\n this.setState({[name]: value.value, ['label'+name]: value.label}, () => {\r\n \r\n if (value.value\r\n && (\r\n (name === 'sectionId' && (this.state.selectedReport === 3 || this.state.selectedReport === 4))\r\n || (name === 'sectionId' && this.state.activityId && (this.state.selectedReport === 2 || this.state.selectedReport === 6))\r\n || (name === 'activityId' && (this.state.selectedReport === 2 || this.state.selectedReport === 6))\r\n || (name === 'activityPartId' && this.state.selectedReport === 1)\r\n || (name === 'sectionId' && this.state.selectedReport === 5)\r\n )\r\n ) this.execute()\r\n })\r\n }\r\n\r\n createHeader = () => {\r\n // console.log(this.state.lastsConcepts)\r\n const addName = (concept) => {\r\n const n = this.state.lastsConcepts.find(e => e.ID === concept.ID)\r\n return ''+(n ? concept.abrev : concept.name)+''\r\n }\r\n\r\n document.getElementById('notas-header').innerHTML = '';\r\n let data = this.state.evalConcept\r\n let order = []\r\n var maxLevel = Math.max.apply(Math, data.map(function(o) { return o.level; }));\r\n this.setState({numLevels: (maxLevel + 1)})\r\n let lasts = []\r\n // ordeno el array segun level\r\n for(let i = 0; i<=maxLevel; i++) {\r\n order = order.concat(data.filter((e) => { return e.level === i }).sort((a, b) => { return a.order - b.order })) // ordeno segun order\r\n lasts.push(order[order.map(e => e.level).lastIndexOf(i)].ID)\r\n }\r\n\r\n // console.log(lasts)\r\n // console.log(order)\r\n\r\n // ordenar segun jerarquía\r\n let r = []\r\n let index = 0\r\n r = order.filter(e => e.parentId === null)\r\n\r\n // create header\r\n let h = document.createElement('div');\r\n h.className = 'notas-row'\r\n // create firsts columns\r\n r.forEach(e => {\r\n let i = document.createElement('div')\r\n i.className = 'notas-col' + (e.type === 2 || e.type === 4 ? ' type-descriptive' : '')\r\n i.id = e.ID\r\n let n = document.createElement('div')\r\n n.className = 'notas-name'\r\n n.id = 'nn-' + e.ID\r\n if (lasts.indexOf(e.ID) > -1) n.classList.add('notas-last-child')\r\n setTimeout(() => { n.style.width = n.offsetWidth + 'px' }, 100)\r\n setTimeout(() => { n.innerHTML = addName(e) }, 200)\r\n // n.append(e.abrev)\r\n i.appendChild(n)\r\n h.appendChild(i)\r\n });\r\n\r\n document.getElementById('notas-header').appendChild(h)\r\n \r\n if (r.length > 0) {\r\n let f = () => {\r\n if (r.length === order.length) {\r\n this.setState({ showTooltip: true })\r\n return\r\n }\r\n order.forEach((e) => {\r\n if (e.parentId === r[index].ID) {\r\n r.splice(index + (r.filter(e => e.parentId === r[index].ID).length + 1), 0, e)\r\n let p = document.getElementById(r[index].ID)\r\n if (p && p.childElementCount === 1) {\r\n // create new row\r\n let nr = document.createElement('div')\r\n nr.className = 'notas-row'\r\n // create new col\r\n let i = document.createElement('div')\r\n i.className = 'notas-col' + (e.type === 2 || e.type === 4 ? ' type-descriptive' : '')\r\n i.id = e.ID\r\n let n = document.createElement('div')\r\n n.className = 'notas-name'\r\n n.id = 'nn-' + e.ID\r\n if (lasts.indexOf(e.ID) > -1) n.classList.add('notas-last-child')\r\n setTimeout(() => { n.style.width = n.offsetWidth + 'px' }, 100)\r\n setTimeout(() => { n.innerHTML = addName(e) }, 200)\r\n // n.append(e.abrev)\r\n i.appendChild(n)\r\n nr.appendChild(i)\r\n // add to parent\r\n p.appendChild(nr)\r\n } else if (p) {\r\n // create new col\r\n let a = p.getElementsByTagName('div')[1]\r\n let i = document.createElement('div')\r\n i.className = 'notas-col' + (e.type === 2 ? ' type-descriptive' : '')\r\n i.id = e.ID\r\n let n = document.createElement('div')\r\n n.className = 'notas-name'\r\n n.id = 'nn-' + e.ID\r\n if (lasts.indexOf(e.ID) > -1) n.classList.add('notas-last-child')\r\n setTimeout(() => { n.style.width = n.offsetWidth + 'px' }, 100)\r\n setTimeout(() => { n.innerHTML = addName(e) }, 200)\r\n // n.append(e.abrev)\r\n i.appendChild(n)\r\n // add parent\r\n a.appendChild(i)\r\n }\r\n }\r\n });\r\n index++\r\n f()\r\n }\r\n f()\r\n }\r\n // console.log(h)\r\n return r\r\n }\r\n\r\n scrollY = () => {\r\n let element = document.getElementById(\"notas-header\");\r\n let element2 = document.getElementById(\"notas-header-pupil\");\r\n let element3 = document.getElementById(\"notas-right\");\r\n if (!element || !element2 || !element3) return\r\n if (document.body.scrollTop > 256 || document.documentElement.scrollTop > 256) {\r\n element3.addEventListener(\"scroll\", (evt) => {\r\n let x = evt.target.scrollLeft\r\n // console.log(x)\r\n element.scrollLeft = x\r\n }, true)\r\n let p = element3.getBoundingClientRect();\r\n // console.log(p.width)\r\n element.style.width = p.width + 'px'\r\n element.classList.add(\"float\");\r\n element.scrollLeft = element3.scrollLeft\r\n element2.classList.add(\"float\");\r\n } else {\r\n element.classList.remove(\"float\");\r\n element2.classList.remove(\"float\");\r\n }\r\n }\r\n\r\n scrollX = (val) => {\r\n let nr = document.getElementById(\"notas-right\");\r\n // console.log(nr.offsetWidth)\r\n let sl = nr.scrollLeft\r\n let w = nr.offsetWidth * 0.8\r\n sl = val === 1 ? (sl - w) : (sl + w)\r\n nr.scroll({ left: sl, behavior: 'smooth' });\r\n this.setState({selectedArrow: val})\r\n }\r\n\r\n printTable () {\r\n let tableToPrint = new ReactToPrint({\r\n content: () => this.componentRef,\r\n copyStyles: true,\r\n bodyClass: 'body-print-custom'\r\n })\r\n tableToPrint.handleClick()\r\n }\r\n\r\n mapGrade(gr) {\r\n let qualifications = \"AD,A,A,B,B,C,C,C\";\r\n if (gr === null) return \"\";\r\n\r\n gr = Math.round(gr);\r\n\r\n const q = qualifications.split(',');\r\n\r\n const max = q.length;\r\n\r\n if (gr >= 1 && gr <= max) {\r\n return q[max - gr];\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n getBorderColor(grade) {\r\n if (grade === null || grade === undefined) return;\r\n \r\n if (typeof grade === 'number') {\r\n grade = this.mapGrade(grade);\r\n }\r\n\r\n const gradeColorMap = {\r\n 'AD': 'blue-grade',\r\n '8': 'blue-grade',\r\n 'A': 'green-grade',\r\n '7': 'green-grade',\r\n 'B+': 'light-blue-grade',\r\n '6': 'light-blue-grade',\r\n 'B': 'yellow-grade',\r\n '5': 'yellow-grade',\r\n 'B-': 'orange-grade',\r\n '4': 'orange-grade',\r\n 'C': 'red-grade',\r\n '3': 'red-grade',\r\n 'D': 'brown-grade',\r\n '2': 'brown-grade',\r\n 'F': 'gray-grade',\r\n '1': 'gray-grade'\r\n };\r\n\r\n return gradeColorMap[grade.toString()] || '';\r\n }\r\n\r\n exportToExcel () {\r\n if (this.state.evalConcept.length === 0) return\r\n /* ------- HEADER ------- */\r\n const header = cloneDeep(this.state.evalConcept)\r\n header.map(e => {\r\n e.abrev = e.abrev.toUpperCase()\r\n e.name = e.name.toUpperCase()\r\n return e\r\n })\r\n let order = []\r\n var maxLevel = Math.max.apply(Math, header.map(function(o) { return o.level; }));\r\n // ordeno el array segun level\r\n for(let i = 0; i<=maxLevel; i++) {\r\n order = order.concat(header.filter((e) => { return e.level === i }).sort((a, b) => { return a.order - b.order })) // ordeno segun order\r\n }\r\n\r\n const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('')\r\n let cols = letters\r\n let index = 0\r\n const lastsConcepts = cloneDeep(this.state.lastsConcepts)\r\n\r\n // console.log(lastsConcepts.length, cols.length)\r\n\r\n while (cols.length < lastsConcepts.length) {\r\n const letter = letters[index]\r\n cols = cols.concat(letters.map(e => e = letter + e ))\r\n index++\r\n }\r\n\r\n // console.log(cols)\r\n\r\n let startCol = 1\r\n let currentCol = startCol\r\n let firstColumns = header.filter(e => e.level === 0)\r\n let cells = {}\r\n let merges = []\r\n \r\n firstColumns.forEach(item => {\r\n cells[cols[currentCol]+(item.level+1)] = {t: 's', v: item.abrev}\r\n const search = (item) => {\r\n order.forEach((e, i) => {\r\n if (e.parentId === item.ID) {\r\n let f = order.filter(ee => ee.parentId === item.ID)\r\n if (f.length > 0 && f[0].ID !== e.ID) currentCol++\r\n cells[cols[currentCol]+(e.level+1)] = {t: 's', v: e.abrev}\r\n search(e)\r\n } else {\r\n return\r\n }\r\n });\r\n }\r\n search(item)\r\n currentCol++\r\n });\r\n\r\n cells['A'+(maxLevel+1)] = {t: 's', v: 'Alumno'}\r\n\r\n // console.log(cells)\r\n \r\n // merges\r\n for(let l=0; l<=maxLevel; l++) {\r\n let temp = [] // index cols\r\n Object.keys(cells).forEach(key => {\r\n if (key.search(l + 1) > -1) temp.push(cols.indexOf(key.replace(/\\d+/g, '')))\r\n });\r\n // console.log(temp)\r\n temp.forEach((c, i) => {\r\n let p = merges.find(cel => cel.s.r === (l - 1) && c >= cel.s.c && c <= cel.e.c) // level parent\r\n let ep = 0\r\n if (p) ep = p.e.c // parent end column\r\n // console.log(ep)\r\n merges.push(\r\n {\r\n s: {r: l, c: c},\r\n // e: {r: l, c: (temp[i + 1] ? (temp[i + 1] -1) : c)}\r\n e: {r: l, c: l === 0 ? ((temp[i + 1] ? (temp[i + 1] -1) : c)) : (temp[i + 1] ? (temp[i + 1] -1) >= ep ? ep : (temp[i + 1] -1) : c)}\r\n }\r\n )\r\n });\r\n }\r\n\r\n // console.log(merges)\r\n \r\n let array = []\r\n let ws = XLSX.utils.json_to_sheet(array)\r\n\r\n ws = {...ws, ...cells}\r\n ws['!merges'] = merges\r\n ws['!ref'] = cols[startCol]+'1:'+cols[currentCol - 1]+(maxLevel + 1)\r\n\r\n for (const i in ws) {\r\n if (typeof(ws[i]) !== 'object') continue;\r\n ws[i].s = { // styling for all cells\r\n alignment: {\r\n horizontal: 'center'\r\n },\r\n font: {\r\n bold: true\r\n },\r\n fill: {\r\n fgColor: { rgb: 'e7e7e7' }\r\n }\r\n };\r\n }\r\n\r\n // console.log(ws)\r\n\r\n /* ------- STUDENT GRADES ------- */\r\n const data = cloneDeep(this.state.data)\r\n let array2 = []\r\n \r\n data.forEach((e, i) => {\r\n array2[i] = {}\r\n array2[i]['Alumno'] = e.name\r\n e.grades.forEach(ee => {\r\n if (!ee.gradeNum) ee.gradeNum = ''\r\n if (!ee.gradeTxt) ee.gradeTxt = ''\r\n array2[i]['ID-' + ee.conceptId] = ee.type === 0 ? ee.gradeNum : ee.gradeTxt \r\n });\r\n })\r\n\r\n ws = XLSX.utils.sheet_add_json(ws, array2, {origin: 'A'+(maxLevel + 2), skipHeader: true})\r\n\r\n for (const i in ws) {\r\n if (typeof(ws[i]) !== 'object') continue;\r\n let cell = XLSX.utils.decode_cell(i);\r\n \r\n if (!ws[i].s) {\r\n ws[i].s = { // styling for all cells\r\n alignment: {\r\n horizontal: 'center'\r\n }\r\n };\r\n\r\n // if (!ws[i].v) ws[i].s = {...ws[i].s, ...{fill: {fgColor: {rgb: 'eae700'}}}}\r\n if (ws[i].v === 'AD') ws[i].s = {...ws[i].s, ...{fill: {fgColor: {rgb: '006699'}}, font: {color: {rgb: 'ffffff'}}}}\r\n else if (ws[i].v === 'A') ws[i].s = {...ws[i].s, ...{fill: {fgColor: {rgb: '66CC66'}}, font: {color: {rgb: 'ffffff'}}}}\r\n else if (ws[i].v === 'B+') ws[i].s = {...ws[i].s, ...{fill: {fgColor: {rgb: '52ebff'}}, font: {color: {rgb: 'ffffff'}}}}\r\n else if (ws[i].v === 'B') ws[i].s = {...ws[i].s, ...{fill: {fgColor: {rgb: 'FFEB3B'}}, font: {color: {rgb: 'ffffff'}}}}\r\n else if (ws[i].v === 'B-') ws[i].s = {...ws[i].s, ...{fill: {fgColor: {rgb: 'FF9900'}}, font: {color: {rgb: 'ffffff'}}}}\r\n else if (ws[i].v === 'C') ws[i].s = {...ws[i].s, ...{fill: {fgColor: {rgb: 'FF6666'}}, font: {color: {rgb: 'ffffff'}}}}\r\n else if (ws[i].v === 'D') ws[i].s = {...ws[i].s, ...{fill: {fgColor: {rgb: '795548'}}, font: {color: {rgb: 'ffffff'}}}}\r\n else if (ws[i].v === 'F') ws[i].s = {...ws[i].s, ...{fill: {fgColor: {rgb: '9e9e9e'}}, font: {color: {rgb: 'ffffff'}}}}\r\n }\r\n\r\n if (cell.c === 0) { // first column\r\n ws[i].s.alignment.horizontal = 'left'\r\n }\r\n }\r\n\r\n var wscols = [\r\n {wch:35} // first column num \"characters\"\r\n ];\r\n \r\n ws['!cols'] = wscols\r\n\r\n var wb = XLSX.utils.book_new()\r\n XLSX.utils.book_append_sheet(wb, ws, 'notas')\r\n XLSX.writeFile(wb, 'calificaciones.xlsx')\r\n }\r\n\r\n onChangeAutocomplete = (e) => {\r\n // console.log(e)\r\n if (e.value === undefined || e.value === null) return\r\n this.showDialog({\r\n title: 'Se perderán las evaluaciones actuales.',\r\n msg: '¿Está seguro que desea modificar toda la columna?',\r\n action: (ok) => {\r\n if (ok) {\r\n // console.log(this.state.data)\r\n const {conceptId, type, parentId} = e.params\r\n const val = e.value\r\n let items = []\r\n const data = cloneDeep(this.state.data)\r\n data.forEach(item => {\r\n /*\r\n let g = item.grades.find(e => e.conceptId === conceptId)\r\n if (g && g.gradeTxt) return\r\n */\r\n items.push(\r\n {\r\n val: val,\r\n params: {\r\n conceptId: conceptId,\r\n studentId: item.studentId,\r\n type: type,\r\n parentId: parentId\r\n }\r\n }\r\n )\r\n });\r\n \r\n if(items.length > 0) this.edit(items)\r\n }\r\n }\r\n })\r\n }\r\n\r\n showDialog = (opts) => {\r\n if(opts){\r\n this.setState(prevState => {\r\n let modalGeneric = Object.assign({}, prevState.modalGeneric);\r\n modalGeneric.title = opts.title\r\n modalGeneric.msg = opts.msg\r\n modalGeneric.action = opts.action \r\n return { modalGeneric }; \r\n })\r\n }\r\n this.setState(prevState => ({\r\n modalGenericVisible: !prevState.modalGenericVisible\r\n }), () => { });\r\n };\r\n\r\n toggleModal = () => {\r\n this.setState(prevState => ({\r\n modal: !prevState.modal\r\n }), () => {\r\n if (this.state.modal) this.getActivityMasters()\r\n })\r\n };\r\n\r\n getActivityMasters = () => {\r\n this.setState({ mastersProgressBar: true })\r\n const columns = [\r\n {\r\n Header: \"Nombre\",\r\n accessor: \"name\",\r\n }\r\n ]\r\n\r\n let filters = {\r\n alterType: 5,\r\n superSectionId: this.state.superSectionId,\r\n sectionId: this.state.sectionId,\r\n activityId: this.state.activityId,\r\n }\r\n\r\n filters = objToQueryString(filters)\r\n _axios\r\n .get('admActivityMasters/get/?' + filters)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n this.setState({masters: r.data.Results, mastersRowCount: r.data.RowCount, mastersColumns: columns})\r\n } else NotificationManager.error(r.msg, 'Opps', 5000, null, null, 'outline')\r\n this.setState({ mastersProgressBar: false })\r\n })\r\n }\r\n\r\n static shortcut = (candidate, input) => {\r\n if (input) {\r\n const inputValue = input.toLowerCase();\r\n const candidateValue = candidate.value\r\n \r\n switch (inputValue) {\r\n case 'z':\r\n return candidateValue === 'AD';\r\n case 'a':\r\n return candidateValue === 'A';\r\n case '+':\r\n return candidateValue === 'B+';\r\n case 'b':\r\n return candidateValue === 'B';\r\n case '-':\r\n return candidateValue === 'B-';\r\n case 'c':\r\n return candidateValue === 'C';\r\n case 'd':\r\n return candidateValue === 'D';\r\n case 'f':\r\n return candidateValue === 'F';\r\n case 's':\r\n return candidateValue === '';\r\n default:\r\n return candidateValue.toLowerCase().startsWith(inputValue);\r\n }\r\n }\r\n \r\n return true;\r\n }\r\n\r\n calcularPorAlumno = (studentId, grades) => {\r\n let body = {\r\n grades: []\r\n }\r\n\r\n grades.forEach(e => {\r\n let item = {conceptId: e.conceptId, gradeTxt: e.gradeTxt, studentId: studentId}\r\n body.grades.push(item)\r\n });\r\n \r\n _axios\r\n .post('admGrades/behavior', body)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n NotificationManager.success('', 'CPROM recalculado', 4000, null, null, 'outline')\r\n } else {\r\n NotificationManager.error(r.msg, 'No se guardó la nota!', 10000, null, null, 'outline')\r\n }\r\n })\r\n .catch((e) => { })\r\n }\r\n\r\n calcularPorSeccion = () => {\r\n let body = {\r\n grades: []\r\n }\r\n\r\n this.state.data.forEach(e => {\r\n let item = {conceptId: e.grades[0].conceptId, gradeTxt: e.grades[0].gradeTxt, studentId: e.studentId}\r\n body.grades.push(item)\r\n });\r\n\r\n _axios\r\n .post('admGrades/behavior', body)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n NotificationManager.success('', 'CPROM recalculado', 4000, null, null, 'outline')\r\n } else {\r\n NotificationManager.error(r.msg, 'No se guardó la nota!', 10000, null, null, 'outline')\r\n }\r\n })\r\n .catch((e) => { })\r\n }\r\n\r\n render() {\r\n const { locale } = this.props\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* TITLE */}\r\n

    \r\n { locale === 'es' ? this.view.label : this.view.labelEn }\r\n {this.state.data.length > 0 && { this.getEvalConcept() }}>}\r\n

    \r\n
    \r\n \r\n
    \r\n {/* PRINT */}\r\n \r\n\r\n {/* EXCEL */}\r\n \r\n \r\n {/* ACCIONES EXTRA */}\r\n {this.state.ready && this.view.extras && this.view.extras.items && this.view.extras.items.length > 1 &&\r\n
    \r\n \r\n
    \r\n }\r\n\r\n {this.state.isBehavior && this.props.userAdmin.ID === 18163 && { this.calcularPorSeccion() }}\r\n >\r\n Calcular CPROM\r\n \r\n /* El boton solo se muestra para un usuario del entorno de producción */\r\n }\r\n
    \r\n \r\n \r\n \r\n Profesores\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n {/* FILTERS */}\r\n\r\n
    \r\n {this.state.ready && \r\n \r\n {\r\n this.setState({activityId:this.state.activityId, activityReloader: false, masterReloader: false},\r\n () => this.setState({activityReloader:true, masterReloader:true}))\r\n this.onChangeFieldFilter('periodId', v) \r\n }}\r\n opts= {{\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\",\r\n setOutput: v => v\r\n }}\r\n />\r\n\r\n {(this.state.periodId && [2,3,4,5,6].indexOf(this.state.selectedReport) >-1) &&\r\n {\r\n this.setState({sectionId: this.state.sectionId, activityId: this.state.activityId, sectionReloader: false, activityReloader: false, superSectionId: v},\r\n () => this.setState({sectionReloader:true, activityReloader: true}))\r\n this.onChangeFieldFilter('superSectionId', v) \r\n }}\r\n opts= {{\r\n style: 'float-label',\r\n path: () => { return \"/admSuperSection/get?pick=true&periodId=\" + this.state.periodId },\r\n setOutput: v => v\r\n }}\r\n />\r\n }\r\n\r\n {(this.state.periodId && this.state.sectionReloader && this.state.superSectionId && [2,3,4,6].indexOf(this.state.selectedReport) >-1) &&\r\n (this.sectionId=v)}\r\n col=\"3\"\r\n name=\"sectionId\"\r\n label=\"Sección\"\r\n value={this.state.sectionId}\r\n type=\"select\"\r\n placeholder='[Seleccionar]'\r\n onChange={(v) => {\r\n if (typeof this.state.activityId !== 'object' || !this.state.activityId) {\r\n this.setState({activityId: null, activityReloader: false, sectionId: v}, () => {\r\n this.setState({activityReloader: true})\r\n this.onChangeFieldFilter('sectionId', v)\r\n } )\r\n } else this.onChangeFieldFilter('sectionId', v)\r\n \r\n }}\r\n opts= {{\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&roleFilter=master&parentId=\" + this.state.superSectionId + '&periodId=' + this.state.periodId },\r\n setOutput: v => v\r\n }}\r\n />\r\n }\r\n\r\n {this.state.periodId && this.state.masterReloader && this.state.selectedReport === 1 &&\r\n { \r\n this.setState({activityId:this.state.activityId, activityReloader: false},\r\n () => this.setState({activityReloader:true}))\r\n this.onChangeFieldFilter('masterId', v) \r\n }}\r\n opts= {{\r\n style: 'float-label',\r\n path: () => { return \"/admStaff/get?type=5&pick=true&filterBy=academic&filter=\" + this.state.periodId },\r\n setOutput: v => v\r\n }}\r\n />\r\n } \r\n\r\n {this.state.periodId && this.state.activityReloader &&\r\n ((this.state.superSectionId && this.state.sectionId && (this.state.selectedReport === 2 || this.state.selectedReport === 6))\r\n || (this.state.superSectionId && this.state.selectedReport === 5)) &&\r\n {\r\n if (v && typeof v === 'object') {\r\n this.setState({\r\n master: v.master || (v.original && v.original.master),\r\n masterFace: v.masterFace || (v.original && v.original.masterFace)\r\n })\r\n }\r\n if (this.state.selectedReport === 5) {\r\n this.setState({\r\n sectionReloader: false,\r\n activityId: v,\r\n },\r\n () => this.setState({sectionReloader:true}))\r\n }\r\n this.onChangeFieldFilter('activityId', v)\r\n }}\r\n opts= {{\r\n style: 'float-label',\r\n path: () => { \r\n let p = \"/admSubject/get?pick=true&periodId=\" + this.state.periodId + '&superSectionId=' + this.state.superSectionId + '§ionId=' + this.state.sectionId\r\n return p\r\n },\r\n setOutput: v => v\r\n }}\r\n />\r\n }\r\n\r\n {this.state.periodId && this.state.activityReloader &&\r\n ((this.state.selectedReport === 1 && this.state.masterId)) &&\r\n { \r\n this.onChangeFieldFilter('activityPartId', v) \r\n }}\r\n opts= {{\r\n style: 'float-label',\r\n path: () => { return \"/admSubject/getParts?pick=true&periodId=\" + this.state.periodId + '&masterId=' + this.state.masterId },\r\n setOutput: v => v\r\n }}\r\n />\r\n }\r\n\r\n {(this.state.periodId && this.state.superSectionId && this.state.sectionReloader && [5].indexOf(this.state.selectedReport) > -1 && this.state.activityId) &&\r\n {\r\n this.setState({sectionId:v})\r\n this.onChangeFieldFilter('sectionId', v)\r\n }}\r\n opts= {{\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&roleFilter=master&parentId=\" + this.state.superSectionId },\r\n setOutput: v => v\r\n }}\r\n />\r\n }\r\n \r\n }\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n {/* GRID */}\r\n {this.state.progressBar &&
    }\r\n \r\n \r\n {this.state.data.length > 0 &&\r\n
    (this.componentRef = el)}>\r\n {/* header only for printing */}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \"logo\" Reporte de notas
    \r\n  \r\n
    \r\n Periodo: {this.state.labelperiodId}\r\n \r\n Grado/Sección: {this.state.labelsuperSectionId + ' ' + this.state.labelsectionId}\r\n \r\n Curso: {this.state.labelactivityId}\r\n \r\n Profesor: { this.state.labelmasterId || this.state.master || '-' }\r\n
    \r\n  \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    Alumno
    */}\r\n
    \r\n {e.target.onerror = null; e.target.src=require(\"../../../../assets/img/user.png\")}} alt=\"\"/>\r\n
    Profesor(a): {this.state.master}
    \r\n
    \r\n
    \r\n
    \r\n {/* autocomplete label */}\r\n
    \r\n
    Auto completar notas faltantes con:
    \r\n
    \r\n {/* Stundents */}\r\n {this.state.data.map((i, index) => {\r\n return (\r\n
    \r\n
    \r\n {e.target.onerror = null; e.target.src=require(\"../../../../assets/img/user.png\")}} alt=\"\"/>\r\n
    \r\n
    {i.name}
    \r\n
    \r\n )})\r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n {/* Header EvalConcept */}\r\n
    \r\n
    \r\n
    \r\n \r\n {/* Tooltips EvalConcept */}\r\n {this.state.showTooltip && this.state.evalConcept.map((i, index) => {\r\n return (\r\n \r\n {i.name}\r\n \r\n )})\r\n }\r\n\r\n {/* Student grades */}\r\n
    \r\n\r\n {/* autocomplete */}\r\n {this.state.data && this.state.data[0].grades.length > 0 &&\r\n
    \r\n {this.state.data && this.state.data[0].grades.map((i, index) => {\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 {/* grades */}\r\n {this.state.data.map((i, index) => {\r\n return (\r\n
    \r\n {i.grades.map((ii, index2) => {\r\n return (\r\n
    \r\n \r\n {ii.locked \r\n ? \r\n (\r\n
    \r\n {!ii.sync &&
    }\r\n \r\n
    \r\n )\r\n : \r\n \r\n (ii.type === 1\r\n ?\r\n
    \r\n
    \r\n \r\n
    \r\n :\r\n // \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n )})\r\n }\r\n {\r\n /*\r\n this.state.isBehavior && this.props.userAdmin.ID === 18163 &&
    \r\n this.calcularPorAlumno(i.studentId, i.grades)}\r\n >\r\n Calcular CPROM\r\n \r\n
    \r\n // El boton solo se muestra para un usuario del entorno de producción\r\n */\r\n }\r\n
    \r\n )})\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n {/* Scroll X */}\r\n
    \r\n \r\n this.scrollX(1)}\r\n active={this.state.selectedArrow === 1}\r\n >\r\n
    \r\n \r\n this.scrollX(2)}\r\n active={this.state.selectedArrow === 2}\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n {/* MODAL GENERIC */}\r\n { this.state.modalGeneric.action(r); this.showDialog() }}\r\n >\r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings, menu, utils, authUser }) => {\r\n const { menuItems } = menu;\r\n const { locale } = settings\r\n const { deepLink } = utils\r\n const { userAdmin } = authUser;\r\n return { locale, menuItems, deepLink, userAdmin };\r\n};\r\n\r\nexport default connect(mapStateToProps, { setLoader, setDeeplink })(AdmGrades);","import moment from \"moment\";\r\nimport 'moment/locale/es';\r\n\r\nmoment.locale(`${localStorage.getItem('__current_locale')?? 'en'}`);\r\nlet _moment = moment;\r\n\r\nexport default _moment\r\n","import {addPrefixToObjectKeys} from '../../../helpers/Utils';\r\nimport main from './en/main.json';\r\nimport admSection from './en/admSection.json';\r\nimport admSuperSection from './en/admSuperSection.json';\r\nimport admGroup from './en/admGroup.json';\r\nimport admInfirmary from './en/admInfirmary.json';\r\nimport admLocalization from './en/admLocalization.json';\r\nimport admPublication from './en/admPublication.json';\r\nimport admAssignment from './en/admAssignment.json';\r\nimport admJustification from './en/admJustification.json';\r\nimport admAttendance from './en/admAttendance.json';\r\nimport admUser from './en/admUser.json';\r\nimport admStudent from './en/admStudent.json';\r\nimport admModule from './en/admModule.json';\r\nimport admCommunications from './en/admCommunications.json';\r\nimport admCalendar from './en/admCalendar.json';\r\nimport admNotification from './en/admNotification.json';\r\nimport admFetch from './en/admFetch.json';\r\nimport admFetchInput from './en/admFetchInput.json';\r\n\r\nconst m = addPrefixToObjectKeys(main, \"main.\");\r\nconst section = addPrefixToObjectKeys(admSection, \"admSection.\");\r\nconst superSection = addPrefixToObjectKeys(admSuperSection, \"admSuperSection.\");\r\nconst group = addPrefixToObjectKeys(admGroup, \"admGroup.\");\r\nconst infirmary = addPrefixToObjectKeys(admInfirmary, \"admInfirmary.\");\r\nconst localization = addPrefixToObjectKeys(admLocalization, \"admLocalization.\");\r\nconst publication = addPrefixToObjectKeys(admPublication, \"admPublication.\");\r\nconst assignment = addPrefixToObjectKeys(admAssignment, \"admAssignment.\");\r\nconst justification = addPrefixToObjectKeys(admJustification, \"admJustification.\");\r\nconst attendance = addPrefixToObjectKeys(admAttendance, \"admAttendance.\");\r\nconst user = addPrefixToObjectKeys(admUser, \"admUser.\");\r\nconst student = addPrefixToObjectKeys(admStudent, \"admStudent.\");\r\nconst module = addPrefixToObjectKeys(admModule, \"admModule.\");\r\nconst communications = addPrefixToObjectKeys(admCommunications, \"admCommunications.\");\r\nconst calendar = addPrefixToObjectKeys(admCalendar, \"admCalendar.\");\r\nconst notification = addPrefixToObjectKeys(admNotification, \"admNotification.\");\r\nconst fetch = addPrefixToObjectKeys(admFetch, \"admFetch.\");\r\nconst fetchInput = addPrefixToObjectKeys(admFetchInput, \"admFetchInput.\");\r\n\r\nconst r = {\r\n ...m, ...group, ...infirmary, ...publication, ...localization, ...assignment, ...section, ...superSection,\r\n ...justification, ...attendance, ...user, ...student, ...module, ...communications, ...calendar, ...notification, ...fetch, ...fetchInput\r\n}\r\nexport default r;\r\n","import appLocaleData from 'react-intl/locale-data/en';\r\nimport enMessages from '../locales/en_US';\r\n\r\nconst EnLang = {\r\n messages: {\r\n ...enMessages\r\n },\r\n locale: 'en-US',\r\n data: appLocaleData\r\n};\r\nexport default EnLang;","import {addPrefixToObjectKeys} from '../../../helpers/Utils';\r\nimport main from './es/main.json';\r\nimport admSection from './es/admSection.json';\r\nimport admSuperSection from './es/admSuperSection.json';\r\nimport admGroup from './es/admGroup.json';\r\nimport admInfirmary from './es/admInfirmary.json';\r\nimport admLocalization from './es/admLocalization.json';\r\nimport admPublication from './es/admPublication.json';\r\nimport admAssignment from './es/admAssignment.json';\r\nimport admJustification from './es/admJustification.json';\r\nimport admAttendance from './es/admAttendance.json';\r\nimport admUser from './es/admUser.json';\r\nimport admStudent from './es/admStudent.json';\r\nimport admModule from './es/admModule.json';\r\nimport admCommunications from './es/admCommunications.json';\r\nimport admCalendar from './es/admCalendar.json';\r\nimport admNotification from './es/admNotification.json';\r\nimport admFetch from './es/admFetch.json';\r\nimport admFetchInput from './es/admFetchInput.json';\r\n\r\nconst m = addPrefixToObjectKeys(main, \"main.\");\r\nconst section = addPrefixToObjectKeys(admSection, \"admSection.\");\r\nconst superSection = addPrefixToObjectKeys(admSuperSection, \"admSuperSection.\");\r\nconst group = addPrefixToObjectKeys(admGroup, \"admGroup.\");\r\nconst infirmary = addPrefixToObjectKeys(admInfirmary, \"admInfirmary.\");\r\nconst localization = addPrefixToObjectKeys(admLocalization, \"admLocalization.\");\r\nconst publication = addPrefixToObjectKeys(admPublication, \"admPublication.\");\r\nconst assignment = addPrefixToObjectKeys(admAssignment, \"admAssignment.\");\r\nconst justification = addPrefixToObjectKeys(admJustification, \"admJustification.\");\r\nconst attendance = addPrefixToObjectKeys(admAttendance, \"admAttendance.\");\r\nconst user = addPrefixToObjectKeys(admUser, \"admUser.\");\r\nconst student = addPrefixToObjectKeys(admStudent, \"admStudent.\");\r\nconst module = addPrefixToObjectKeys(admModule, \"admModule.\");\r\nconst communications = addPrefixToObjectKeys(admCommunications, \"admCommunications.\");\r\nconst calendar = addPrefixToObjectKeys(admCalendar, \"admCalendar.\");\r\nconst notification = addPrefixToObjectKeys(admNotification, \"admNotification.\");\r\nconst fetch = addPrefixToObjectKeys(admFetch, \"admFetch.\");\r\nconst fetchInput = addPrefixToObjectKeys(admFetchInput, \"admFetchInput.\");\r\n\r\nconst r = {\r\n ...m, ...group, ...infirmary, ...publication, ...localization, ...assignment, ...section, ...superSection,\r\n ...justification, ...attendance, ...user, ...student, ...module, ...communications, ...calendar, ...notification, ...fetch, ...fetchInput\r\n}\r\nexport default r;","import { addLocaleData } from 'react-intl';\r\nimport enLang from './entries/en-US';\r\nimport esLang from './entries/es-ES';\r\n\r\nconst AppLocale = {\r\n en: enLang,\r\n es: esLang\r\n};\r\naddLocaleData(AppLocale.en.data);\r\naddLocaleData(AppLocale.es.data);\r\n\r\nexport default AppLocale;\r\n","import appLocaleData from 'react-intl/locale-data/es';\r\nimport esMessages from '../locales/es_ES';\r\n\r\nconst EsLang = {\r\n messages: {\r\n ...esMessages\r\n },\r\n locale: 'es-ES',\r\n data: appLocaleData\r\n};\r\nexport default EsLang;","import React, {Component } from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { Button } from \"reactstrap\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport ReactToPrint from 'react-to-print';\r\nimport _axios from \"../../libs/axios\";\r\nimport {objToQueryString, decimalFormat} from \"../../helpers/Utils\"\r\nimport moment from \"moment\";\r\nimport AppLocale from \"../../config/lang\";\r\nimport ReactExport from 'react-data-export';\r\nimport { cloneDeep } from \"lodash\"\r\n\r\nclass ExportTo extends Component {\r\n constructor(props) {\r\n super(props);\r\n let columns = cloneDeep(props.columns)\r\n columns.forEach((c, i) => { if(c.type === 'img') columns.splice(i, 1) })\r\n this.state = {\r\n data: [],\r\n disabled: false,\r\n multiDataSet: [],\r\n columns: columns\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.ctxExportTo) this.props.ctxExportTo(this)\r\n }\r\n\r\n getData() {\r\n const success = (r) => {\r\n const getKeyAndValue = (obj) => {\r\n let newObj = {}\r\n this.state.columns.forEach(c => {\r\n for (const [key, value] of Object.entries(obj)) {\r\n if (key === c.accessor) {\r\n if (c.isDate) newObj[key] = (value ? moment(value).format(`${window.tenant.defaultDateFormat} ${window.tenant.defaultTimeFormat}`) : '')\r\n else if (c.isDecimal) newObj[key] = decimalFormat(value)\r\n else newObj[key] = value\r\n }\r\n }\r\n });\r\n return newObj\r\n }\r\n let items = []\r\n r.forEach(e => {\r\n if (Array.isArray(e)) e.forEach(ee => { items.push(getKeyAndValue(ee)) });\r\n else items.push(getKeyAndValue(e));\r\n });\r\n this.setState(({data: items}),() => {\r\n this.props.to === 'excel' ? this.generateExcel() : this.printTable()\r\n this.setState({data: []})\r\n })\r\n }\r\n\r\n if (this.props.local) {\r\n let localData = cloneDeep(this.props.ctxParent.state.data)\r\n success(localData)\r\n return\r\n }\r\n\r\n this.props.ctxParent.setState({progressBar: true})\r\n this.setState({ disabled: true})\r\n let fieldsToFilter = this.props.ctxParent.state.formFilter ? this.props.ctxParent.state.formFilter : {};\r\n\r\n // parent ID filter\r\n if(this.props.ctxParent.state.parentId) fieldsToFilter.parentId = this.props.ctxParent.state.parentId;\r\n\r\n // add filterBy\r\n if(this.props.ctxParent.props.filterBy) fieldsToFilter = {...fieldsToFilter, ...this.props.ctxParent.props.filterBy}\r\n\r\n let filters = objToQueryString(fieldsToFilter, false, true)\r\n let search = this.props.ctxParent.state.search ? ('&filter=' + this.props.ctxParent.state.search) : ''\r\n let path = this.props.ctxParent.state.resource + \"/get/?print=true\" + filters + search\r\n if (this.props.ctxParent.view.config.customPathGet) path = this.props.ctxParent.view.config.customPathGet + \"/?print=true\" + filters + search\r\n _axios\r\n .get(path)\r\n .then(r => {\r\n this.props.ctxParent.setState({progressBar: false})\r\n this.setState({ disabled: false})\r\n if (r.status >= 0) {\r\n if (r.data.Results.length > 0) {\r\n if (this.props.remap) r = this.props.ctxParent.view.config.remap(r)\r\n success(r.data.Results)\r\n } else NotificationManager.success(\"No hay datos\", '', 5000, null, null, 'outline')\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n }\r\n\r\n generateExcel () {\r\n const ExcelFile = ReactExport.ExcelFile;\r\n const ExcelSheet = ReactExport.ExcelFile.ExcelSheet;\r\n \r\n let multiDataSet = [\r\n {\r\n columns: [],\r\n data: []\r\n }\r\n ];\r\n \r\n // headers\r\n const {locale} = this.props\r\n const L = AppLocale[locale].messages\r\n this.state.columns.forEach(e => {\r\n multiDataSet[0].columns.push({title: L[e.Header]?? e.Header})\r\n });\r\n \r\n // rows\r\n this.state.data.forEach(e => {\r\n let row = []\r\n Object.keys(e).forEach(name => {\r\n row.push({value: e[name] ? e[name].toString() : \"\"})\r\n });\r\n multiDataSet[0].data.push(row)\r\n });\r\n\r\n let excelFile = new ExcelFile({\r\n hideElement: false,\r\n fileExtension: 'xlsx',\r\n filename: this.props.filename,\r\n children: \r\n });\r\n excelFile.download()\r\n }\r\n\r\n printTable () {\r\n let tableToPrint = new ReactToPrint({\r\n content: () => this.componentRef,\r\n copyStyles: true,\r\n bodyClass: 'body-print'\r\n })\r\n tableToPrint.handleClick()\r\n }\r\n \r\n render() {\r\n const {locale, hideButton} = this.props\r\n const L = AppLocale[locale].messages\r\n return (\r\n
    \r\n {!hideButton && }\r\n\r\n
    \r\n {this.state.data.length > 0 && this.props.to !== 'excel' &&\r\n (this.componentRef = el)}>\r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n {this.state.columns.map(c => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n {this.state.data.map((e, i) => {\r\n return (\r\n \r\n {Object.keys(e).map((name, index) => {\r\n return \r\n })}\r\n \r\n )\r\n })}\r\n \r\n
    \r\n \"logo\"\r\n Nombre reporte: {this.props.filename}\r\n
    \r\n Filtro 1: Valor filtro 1, Filtro 2: Valor filtro 2,Filtro 3: Valor filtro 3\r\n
    \r\n  \r\n
    {L[c.Header]?? c.Header}
    {e[name]}
    \r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings }) => {\r\n const { locale } = settings\r\n return { locale };\r\n};\r\n\r\nexport default connect(mapStateToProps)(ExportTo);","import React, { Component } from \"react\";\r\nimport { setLoader } from \"../../redux/actions\";\r\nimport {\r\n Form,\r\n FormGroup,\r\n Button,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n Collapse,\r\n Card,\r\n CardBody,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n TabContent,\r\n TabPane\r\n} from \"reactstrap\";\r\nimport CustomModal from \"./CustomModal\";\r\nimport { connect } from \"react-redux\";\r\nimport { Colxx } from \"../../components/common/CustomBootstrap\";\r\nimport Field from \"../../components/utils/Field\";\r\nimport FormSmart from \"../../components/utils/FormSmart\";\r\nimport SimpleReactValidator from 'simple-react-validator';\r\nimport CrudGrid from \"../../views/app/modules/crudGrid\";\r\nimport es from 'simple-react-validator/dist/locale/es';\r\nimport { Wizard, Steps, Step } from 'react-albus';\r\nimport TopNavigation from '../../components/utils/wizard/TopNavigation';\r\nimport AppLocale from \"../../config/lang\";\r\nimport { cloneDeep } from \"lodash\"\r\nimport AiAssist from \"./AiAssist\";\r\n\r\nclass FormCustom extends Component {\r\n constructor(props) {\r\n // console.log(props)\r\n super(props);\r\n SimpleReactValidator.addLocale('es', es)\r\n this.validator = new SimpleReactValidator(\r\n {\r\n locale: this.props.locale,\r\n validators: {\r\n ext: {\r\n message: 'Solo se permiten los siguientes tipos de archivos: :values.',\r\n rule: (val, params, validator) => {\r\n if (Array.isArray(val)) {\r\n const file = val[0].ext.toLowerCase()\r\n return params.indexOf(file) > -1\r\n } else return true // si es solo un string (nombre de la imagen sin extensión)\r\n },\r\n messageReplace: (message, params) => {\r\n return message.replace(':values', params.join()) // optional\r\n }\r\n }\r\n },\r\n messages: {\r\n required: this.props.locale === 'en' ? 'The :attribute field is required.' : 'El campo :attribute es requerido.',\r\n email: this.props.locale === 'en' ? 'The :attribute must be a valid email address.' : 'El campo :attribute no es un correo válido',\r\n max: this.props.locale === 'en' ? 'The :attribute may not be greater than :max characters.' : ':attribute no debe ser mayor a :max caracteres.',\r\n min: this.props.locale === 'en' ? 'The :attribute must be at least :min characters.' : ':attribute no debe ser menor a :min caracteres.'\r\n }\r\n }\r\n );\r\n\r\n this.validator.helpers.humanizeFieldName = function humanizeFieldName(field) {\r\n // supports snake_case or camelCase\r\n return field.replace(/([A-Z])/g, ' $1').replace(/_/g, ' ');\r\n }\r\n\r\n this.validator.helpers.message = function (rule, field, options, rules) {\r\n options.messages = options.messages || {};\r\n var message = options.messages[rule] || options.messages.default || this.parent.messages[rule] || this.parent.messages.default || rules[rule].message;\r\n return message.replace(':attribute', this.humanizeFieldName(field.split(\"_\")[1]?? field));\r\n }\r\n\r\n this.validateForm = this.validateForm.bind(this)\r\n \r\n var s = {}\r\n\r\n if (props.flags) s.flags = props.flags\r\n\r\n if (props.edit) s.edit = props.edit\r\n\r\n if (props.subforms?.length > 0) {\r\n if (!s.flags) s.flags = {}\r\n props.subforms.forEach((e, i) => {\r\n s.flags['subformOpen' + i] = false\r\n });\r\n }\r\n\r\n if (props.subGrids?.length > 0) {\r\n if (!s.flags) s.flags = {}\r\n props.subGrids.forEach((e, i) => {\r\n s.flags['subGridOpen' + i] = false\r\n });\r\n }\r\n\r\n if (props.fields?.length > 0) {\r\n let c = props.fields.filter(e => e.type === 'collapsible')\r\n if (c.length > 0) {\r\n if (!s.flags) s.flags = {}\r\n c.forEach(e => {\r\n s.flags[e.name] = e.value\r\n e.childs.forEach(ee => s[ee.name] = ee.value);\r\n });\r\n }\r\n\r\n let w = props.fields.find(e => e.type === 'wizard')\r\n if (w) {\r\n if (!s.flags) s.flags = {}\r\n s.flags.currentStepId = w.steps.length > 0 ? w.steps.filter(step => step.renderIf ? step.renderIf() : true)[0].id : null\r\n s.flags.currentStepIndex = 0\r\n s.flags.stepsLength = w.steps?.filter(step => step.renderIf ? step.renderIf() : true)\r\n s.flags.bottomNavHidden = false\r\n s.flags.topNavDisabled = false\r\n w.steps.forEach(step => {\r\n step.fields.forEach(field => {\r\n s[field.name] = field.value\r\n if (field.childs) field.childs.forEach(c => { s[c.name] = c.value })\r\n })\r\n });\r\n }\r\n\r\n let t = props.fields.find(e => e.type === 'tabs')\r\n if (t) {\r\n if (!s.flags) s.flags = {}\r\n s.flags.activeTab = t.value?? (t.tabs.length > 0 ? t.tabs[0].id : \"\")\r\n t.tabs.forEach(tab => {\r\n tab.fields.forEach(field => {\r\n s[field.name] = field.value\r\n })\r\n });\r\n }\r\n }\r\n\r\n if (props.fields) props.fields.forEach(e => { if(['tabs', 'collapsible', 'wizard', 'separator'].indexOf(e.type) === -1) s[e.name] = e.value })\r\n \r\n s.selectedField = null\r\n this.state = s\r\n this.defaultValuesForm = cloneDeep(this.state)\r\n\r\n this.wizardRef = React.createRef()\r\n this.aiAssistRef = React.createRef()\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.listenStates) this.props.listenStates(this.state)\r\n if (this.props.validate) this.props.validate(this.validateForm)\r\n if (this.props.validateFor) this.props.validateFor(this.validateFor)\r\n if (this.props.nextStep) this.props.nextStep(this.nextStep)\r\n if (this.props.resetForm) this.props.resetForm(this.resetForm)\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (this.props.didUpdateStates) {\r\n const { fields } = this.props\r\n const { fields: prevFields } = prevProps\r\n if (fields !== prevFields) {\r\n fields.forEach(field => {\r\n if(['tabs', 'collapsible', 'wizard', 'separator'].indexOf(field.type) === -1) this.setState({ [field.name]: field.value })\r\n if (field.type === 'wizard') {\r\n field.steps.forEach(step => {\r\n step.fields.forEach(f => {\r\n this.setState({ [f.name]: f.value })\r\n })\r\n })\r\n }\r\n })\r\n }\r\n }\r\n \r\n if (this.state !== prevState) {\r\n if (this.props.listenStates) this.props.listenStates(this.state)\r\n }\r\n\r\n if (!this.state.edit) {\r\n // si exiten fields que dependen de otros\r\n let flatFields = cloneDeep(this.props.fields)\r\n let wizard = flatFields.find(f => f.type === \"wizard\")\r\n if (wizard) {\r\n wizard.steps.forEach(step => {\r\n flatFields = flatFields.concat(step.fields)\r\n })\r\n }\r\n\r\n flatFields.filter(e => e.parent).forEach((ee) => {\r\n if (prevState[ee.parent] !== this.state[ee.parent]) this.setState({ [ee.name]: null })\r\n })\r\n }\r\n\r\n if (this.state.edit) {\r\n setTimeout(() => { this.setState({edit: false}) }, 500)\r\n }\r\n }\r\n\r\n resetForm = () => {\r\n this.setState(this.defaultValuesForm)\r\n }\r\n\r\n labelForValidator = (f, L) => {\r\n return `${f.name}_${typeof f.label === 'function' ? f.label(L, this.state) : L[f.label]?? f.label?? ''}`\r\n }\r\n\r\n btnAction(action) {\r\n if (this.props.listenBtnActions) this.props.listenBtnActions(action, this.state)\r\n }\r\n\r\n showTooltip(field) {\r\n if (this.props.listenBtnActions) this.props.listenBtnActions('tooltip', field); // when used from FormCustom\r\n if (this.props.onTooltip) this.props.onTooltip(field); // when used from FormSmart\r\n }\r\n\r\n validateForm = () => {\r\n return new Promise((resolve, reject) => {\r\n const wizard = this.props.fields.find(f => f.type === \"wizard\")\r\n if (this.validator.allValid() && !wizard) {\r\n resolve(true)\r\n } else {\r\n // console.log(this.validator)\r\n this.validator.showMessages();\r\n this.forceUpdate();\r\n \r\n const { locale } = this.props\r\n const L = AppLocale[locale].messages\r\n \r\n // open collapsible if fields have invalid data\r\n let collapsibles = this.props.fields.filter(f => f.type === \"collapsible\")\r\n for(const c of collapsibles) {\r\n let m = c.childs.find(f => this.validator.fields[this.labelForValidator(f, L)] === false)\r\n if (m) {\r\n this.toggleCollapsible(c.name, true)\r\n break\r\n }\r\n }\r\n \r\n // scroll and focus in input required\r\n let fields = this.props.fields\r\n fields = fields.concat(this.props.fields.flatMap(f => f.childs || [])) // for collapsibles fields\r\n fields = fields.concat(this.props.fields.flatMap(w => w.steps || []).flatMap(f => f.fields || [])) // for step fields\r\n let field = fields.find(f => this.validator.fields[this.labelForValidator(f, L)] === false)\r\n if (field) {\r\n const id = field.id?? `${this.props.id}-${field.name}`\r\n const fieldId = document.getElementById(id)\r\n if (fieldId) {\r\n fieldId.scrollIntoView()\r\n fieldId.focus()\r\n }\r\n }\r\n\r\n // validate by step\r\n if (wizard) {\r\n let fieldsCurrentStep = wizard.steps.find(s => s.id === this.wizardRef.current.state.step.id).fields\r\n const invalidStep = fieldsCurrentStep.some(f => this.validator.fields[`${f.name}_${L[f.label]?? f.label}`] === false)\r\n if (invalidStep) reject(false)\r\n else {\r\n if (wizard.saveByStep || this.props.edit) resolve(true)\r\n else {\r\n if ((this.wizardRef.current.state.steps.length - 1) === this.state.flags.currentStepIndex) resolve(true)\r\n else this.nextStep()\r\n }\r\n }\r\n }\r\n\r\n reject(false)\r\n }\r\n })\r\n }\r\n\r\n validateFor = (fieldName, requiredFields) => {\r\n return new Promise((resolve, reject) => {\r\n const { locale } = this.props\r\n const L = AppLocale[locale].messages\r\n const keysValues = {}\r\n let scrollToField = null\r\n this.validator.visibleFields = []\r\n this.validator.hideMessages()\r\n this.forceUpdate()\r\n let fields = this.props.fields\r\n fields = fields.concat(this.props.fields.flatMap(f => f.childs || [])) // for collapsibles fields\r\n fields = fields.concat(this.props.fields.flatMap(w => w.steps || []).flatMap(f => f.fields || [])) // for step fields\r\n const field = fields.find(f => f.name === fieldName)\r\n if (field) this.validator.hideMessageFor(`${field.name}_${L[field.label]}`)\r\n\r\n if (!requiredFields || requiredFields.length === 0) resolve({})\r\n\r\n requiredFields.forEach(r => {\r\n const field = fields.find(f => f.name === r)\r\n if (field) {\r\n const name = this.labelForValidator(field, L)\r\n this.validator.message(name, this.state[field.name], field.rules?? 'required')\r\n this.forceUpdate()\r\n if (!this.validator.fieldValid(name)) {\r\n const id = field.id?? `${this.props.id}-${field.name}`\r\n if(!scrollToField) scrollToField = id\r\n this.validator.showMessageFor(name)\r\n this.forceUpdate()\r\n } else {\r\n Object.assign(keysValues, { [field.name]: this.state[field.name] })\r\n }\r\n }\r\n })\r\n\r\n const fieldId = document.getElementById(scrollToField)\r\n if (fieldId) {\r\n fieldId.scrollIntoView()\r\n fieldId.focus()\r\n }\r\n \r\n if (Object.keys(keysValues).length === requiredFields.length) resolve(keysValues)\r\n else reject(keysValues)\r\n })\r\n }\r\n\r\n toogleSubForm = (index) => {\r\n let flags = { ...this.state.flags }\r\n flags['subformOpen' + index] = !flags['subformOpen' + index]\r\n this.setState({ flags }, () => {\r\n if (this.props.subforms[index].listenToogleSubform) this.props.subforms[index].listenToogleSubform(flags['subformOpen' + index])\r\n })\r\n }\r\n\r\n toogleSubGrid(index) {\r\n let flags = { ...this.state.flags }\r\n flags['subGridOpen' + index] = !flags['subGridOpen' + index]\r\n this.setState({ flags })\r\n }\r\n\r\n toggleCollapsible(collapsible, open) {\r\n const prevState = this.state.flags;\r\n this.props.fields.forEach(e => { if (e.type === 'collapsible' && e.name !== collapsible) prevState[e.name] = false });\r\n prevState[collapsible] = open || !prevState[collapsible]\r\n this.setState({ flags: prevState });\r\n }\r\n\r\n // Wizard ------------------------------\r\n setCurrentStep = (index, id) => {\r\n let flags = this.state.flags\r\n flags.currentStepIndex = index\r\n flags.currentStepId = id\r\n this.setState({flags: flags}, () => {\r\n const w = this.props.fields.find(e => e.type === 'wizard')\r\n if (w.onChange) w.onChange(id)\r\n })\r\n }\r\n\r\n nextStep = () => {\r\n return new Promise((resolve, reject) => {\r\n if (!this.wizardRef?.current) {\r\n return reject(new Error(\"wizardRef.current is not available\"))\r\n }\r\n\r\n this.wizardRef.current.next()\r\n this.validator.hideMessages()\r\n \r\n process.nextTick(() => {\r\n try {\r\n const currentStepId = this.wizardRef.current.state.step.id\r\n const currentStepIndex = this.wizardRef.current.state.steps.findIndex(s => s.id === currentStepId)\r\n this.setCurrentStep(currentStepIndex, currentStepId)\r\n resolve({index: currentStepIndex, id: currentStepId})\r\n } catch (error) {\r\n reject(error)\r\n }\r\n })\r\n })\r\n }\r\n\r\n topNavClick = (stepItem, push) => {\r\n this.validator.hideMessages()\r\n const currentStepIndex = this.wizardRef.current.state.steps.findIndex(s => s.id === stepItem.id)\r\n this.setCurrentStep(currentStepIndex, stepItem.id)\r\n if (this.state.flags.topNavDisabled) return\r\n push(stepItem.id)\r\n }\r\n // End Wizard ------------------------------\r\n\r\n createButtons = (wrapButtonsWithDiv, buttons, L) => {\r\n return buttons.map(b => {\r\n const btn = \r\n { b.onClick(this) } : () => { }}\r\n outline={!!b.opts?.outline}\r\n >\r\n {typeof b.label === 'function' ? b.label(L) : L[b.label]?? b.label}\r\n \r\n \r\n const wrap = wrapButtonsWithDiv ?
    {btn}
    : {btn}\r\n return (\r\n (b.renderIf ? b.renderIf(this) : true) && wrap\r\n )\r\n })\r\n }\r\n\r\n handleClickAiAssist = (field, editor) => {\r\n if (editor) this.editor = editor\r\n this.setState({selectedField: field}, () => {\r\n this.aiAssistRef.current.execute()\r\n })\r\n }\r\n\r\n setActiveTab = (id) => {\r\n this.validator.hideMessages()\r\n this.resetForm()\r\n this.setState({flags: {...this.state.flags, ...{activeTab: id}}})\r\n }\r\n\r\n render() {\r\n const { locale } = this.props\r\n const L = AppLocale[locale].messages\r\n this.validator.purgeFields();\r\n const p = this.props\r\n const detailGrid = p.detailGrid ? p.detailGrid(this) : null\r\n return (\r\n
    \r\n {(p.fields || p.buttons) &&\r\n
    \r\n \r\n {p.fields && p.fields.map((field, i) => {\r\n const createField = (c) => {\r\n const create = (f) => {\r\n let disabled = typeof f.disabled === 'function' ? f.disabled(this) : f.disabled\r\n return { this.setState({ [f.name]: n }, () => { if (f.onChange) f.onChange(this) }) }}\r\n onKeyPress={f.onKeyPress}\r\n onFocus={f.onFocus}\r\n onClick={f.onClick ? () => { f.onClick(this) } : () => { }}\r\n onTooltip={e => this.showTooltip(e)}\r\n uploadFiles={f.type === \"dropzone\" ? p.uploadFiles : null}\r\n parentValue={f.parent ? this.state[f.parent] : null}\r\n className={f.classNameF ? f.classNameF(this) : f.className}\r\n ctx={this}\r\n checked={f.type === \"radio\" ? (this.state[f.name] === f.opts.value) : false}\r\n locale={p.locale}\r\n aiAssist={f.aiAssist}\r\n onClickAiAssist={this.handleClickAiAssist}\r\n autoComplete={f.autoComplete}\r\n getValueLabelOfFieldSelect={this.props.getValueLabelOfFieldSelect && f.type === \"select\" ? this.props.getValueLabelOfFieldSelect : null}\r\n />\r\n }\r\n if (c.type === 'collapsible')\r\n {\r\n return \r\n \r\n
    \r\n this.toggleCollapsible(c.name)}\r\n aria-expanded={this.state.flags[c.name]}\r\n >\r\n {L[c.label]?? c.label}\r\n {L[c.placeholder]?? L[\"main.clickToExpand\"]}\r\n \r\n \r\n
    \r\n \r\n {c.childs && c.childs.map(child => {\r\n return (\r\n (child.renderIf ? child.renderIf(this) : true) && create(child)\r\n );\r\n })}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n else if (c.type === 'wizard') \r\n {\r\n return \r\n \r\n \r\n \r\n \r\n \r\n {c.steps.filter(step => step.renderIf ? step.renderIf() : true).map((s, i) => {\r\n return (\r\n \r\n
    \r\n {this.state.flags.currentStepId === s.id &&\r\n \r\n {s.fields.map(f => {\r\n const doField = [\"fieldset\", \"collapsible\"].includes(f.type) ? createField : create\r\n return (\r\n (f.renderIf ? f.renderIf(this) : true) && doField(f)\r\n );\r\n })}\r\n \r\n }\r\n
    \r\n \r\n )\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n else if (c.type === 'tabs') \r\n {\r\n return \r\n \r\n \r\n {c.tabs.map((t, i) => {\r\n return (\r\n \r\n {this.state.flags.activeTab === t.id &&\r\n \r\n {t.fields.map(f => {\r\n return (\r\n (f.renderIf ? f.renderIf(this) : true) && create(f)\r\n );\r\n })}\r\n \r\n }\r\n \r\n )}\r\n )}\r\n \r\n \r\n }\r\n else if (c.type === 'fieldset')\r\n {\r\n return \r\n \r\n {c.childs?.map(f => {\r\n return (\r\n (f.renderIf ? f.renderIf(this) : true) && create(f)\r\n )\r\n })}\r\n \r\n \r\n }\r\n else return create(c)\r\n }\r\n return (\r\n (field.renderIf ? field.renderIf(this) : true) && createField(field)\r\n );\r\n })}\r\n\r\n {p.wrapButtonsWithDiv && p.buttons &&
    {this.createButtons(p.wrapButtonsWithDiv, p.buttons, L)}
    }\r\n {!p.wrapButtonsWithDiv && p.buttons && this.createButtons(false, p.buttons, L)}\r\n
    \r\n
    \r\n }\r\n\r\n {detailGrid && (detailGrid.renderIf ? detailGrid.renderIf(this) : true) &&\r\n
    \r\n {}}\r\n insideCustomForm={true}\r\n listenData={detailGrid.listenData}\r\n listenForm={detailGrid.listenForm}\r\n />\r\n
    \r\n }\r\n\r\n {p.subforms && p.subforms.map((sf, i) => {\r\n const detailGrid = sf.detailGrid ? sf.detailGrid() : null\r\n return (\r\n { this.toogleSubForm(i) }}\r\n backdrop={'static'}\r\n wrapClassName={'modal-right'}\r\n size={sf.size?? 'lg'}\r\n key={i}\r\n >\r\n { this.toogleSubForm(i) }}>\r\n {L[sf.name]?? sf.name}\r\n \r\n \r\n {(sf.fields || sf.buttons) &&\r\n { if (sf.autoClose) this.toogleSubForm(i); sf.onSuccess(s) } : () => { }}\r\n onError={sf.onError ? (e) => { sf.onError(e) } : () => { }}\r\n remap={sf.remap}\r\n wrapClassName={sf.wrapClassName}\r\n />\r\n }\r\n\r\n {detailGrid && (detailGrid.renderIf ? detailGrid.renderIf(this) : true) &&\r\n {}}\r\n insideCustomForm={true}\r\n />\r\n }\r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n\r\n {p.subGrids && p.subGrids.map((g, i) => {\r\n return (\r\n { this.toogleSubGrid(i) }} backdrop={'static'} wrapClassName={'modal-right'} size=\"lg\" key={i}>\r\n { this.toogleSubGrid(i) }}>\r\n {g.name ? g.name(this) : ''}\r\n \r\n \r\n {} }\r\n insideCustomForm={true}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n\r\n {this.state.selectedField && }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings }) => {\r\n const { locale } = settings\r\n return { locale }\r\n}\r\n\r\nexport default connect(mapStateToProps, { setLoader })(FormCustom)","module.exports = \"data:image/png;base64,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\"","import {\r\n LOGIN_USER,\r\n LOGOUT_USER\r\n} from '../actions';\r\n\r\nconst INIT_STATE = {\r\n userAdmin: JSON.parse(localStorage.getItem('user_admin'))\r\n};\r\n\r\nglobal.user = INIT_STATE;\r\n\r\nexport default (state = INIT_STATE, action) => {\r\n switch (action.type) {\r\n case LOGIN_USER:\r\n return { ...state, userAdmin: action.payload };\r\n case LOGOUT_USER:\r\n return { ...state ,userAdmin: null};\r\n default: return { ...state };\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Progress } from \"reactstrap\";\r\nimport _axios from \"../../libs/axios\";\r\nimport { openLink } from \"../../helpers/Utils\"\r\nimport { NotificationManager } from \"../common/react-notifications\";\r\nimport { cloneDeep } from \"lodash\"\r\n\r\nexport default class CustomDropzone extends Component {\r\n constructor(props) {\r\n // console.log(props)\r\n super(props);\r\n let s = {}\r\n s[props.name] = props.value\r\n s.files = []\r\n s.drag = false\r\n s.progressPercentage = 0\r\n s.progressBytes = 0\r\n s.cancel = null\r\n s.cancelToken = null\r\n s.upload = null\r\n s.maxFiles = (this.props.opts && this.props.opts.maxFiles) ? this.props.opts.maxFiles : 1\r\n s.urlFile = props.opts.url\r\n s.accept = \".gif, .jpg, .jpeg, .png, .pdf, .docx, .xlsx, .zip\"\r\n\t\tthis.state = s\r\n\t}\r\n\r\n componentDidUpdate (prevProps, prevState) {\r\n if (this.props.uploadFiles && this.props.name === this.props.uploadFiles.name && this.state.upload === null && prevState.upload === null) {\r\n this.setState({upload: cloneDeep(this.props.uploadFiles)}, () => {\r\n this.state.files.length === 0 ? this.state.upload.success() : this.save(0)\r\n })\r\n }\r\n if (this.props.uploadFiles !== prevProps.uploadFiles && !prevProps.uploadFiles && this.state.upload) this.setState({upload: null})\r\n }\r\n\r\n isImage = (extensions) => {\r\n if (!extensions) return false\r\n extensions = extensions.toLowerCase()\r\n var imageFormats = [\".jpeg\", \".jpg\", \".png\", \".gif\"];\r\n for (var i = 0; i < imageFormats.length; i++) {\r\n if (extensions.includes(imageFormats[i])) return true\r\n }\r\n return false\r\n }\r\n\r\n isDoc = (ext) => {\r\n if (!ext) return false\r\n return ['gif','jpg','png','jpeg'].indexOf(ext) === -1\r\n }\r\n\r\n save (i, data) {\r\n if (i > (this.state.files.length - 1)) {\r\n this.state.upload.success(data)\r\n return\r\n }\r\n \r\n const body = {\r\n name: this.props.name + '.' + this.state.files[i].ext,\r\n doc: this.isDoc(this.state.files[i].ext),\r\n data: this.state.files[i].value\r\n }\r\n\r\n const CancelToken = _axios.CancelToken;\r\n let ctx = this;\r\n _axios.post(this.props.opts.path()+'?id=' + this.state.upload.id, body,\r\n {\r\n onUploadProgress: (progressEvent) => {\r\n var p = Math.round( (progressEvent.loaded * 100) / progressEvent.total );\r\n this.setState({progressPercentage: p, progressBytes: progressEvent.loaded});\r\n },\r\n cancelToken: new CancelToken(function executor(c) {\r\n ctx.setState({cancel: c})\r\n })\r\n })\r\n .then(r => {\r\n if (r.status >= 0) {\r\n this.save(i + 1, r.data)\r\n } else {\r\n NotificationManager.error(r.msg || '', \"Error\", 5000, null, null, 'outline')\r\n this.props.uploadFiles.error(r)\r\n this.clear()\r\n }\r\n })\r\n .catch((e) => {\r\n this.props.uploadFiles.error(e)\r\n this.clear()\r\n })\r\n }\r\n\r\n clear () {\r\n this.setState({\r\n progressPercentage: 0,\r\n progressBytes: 0,\r\n cancel: null,\r\n cancelToken: null,\r\n upload: null\r\n })\r\n }\r\n\r\n handleOnDrop = (e) => {\r\n e.preventDefault()\r\n this.setState({drag: false})\r\n let files = []\r\n if (e.dataTransfer.items) {\r\n for (var i = 0; i < e.dataTransfer.items.length; i++) {\r\n // If dropped items aren't files, reject them\r\n if (e.dataTransfer.items[i].kind === 'file') {\r\n files.push(e.dataTransfer.items[i].getAsFile())\r\n }\r\n }\r\n if (files.length > 0) this.validateFile(files)\r\n } else {\r\n\r\n }\r\n this.removeDragData(e)\r\n }\r\n\r\n handleOnDragOver = (e) => {\r\n this.setState({drag: true})\r\n e.preventDefault();\r\n }\r\n\r\n handleOnChange = (e) => {\r\n // console.log(e.target.files)\r\n const files = e.target.files\r\n if (!files || files.length === 0) return\r\n this.validateFile(files)\r\n }\r\n\r\n removeDragData(e) {\r\n if (e.dataTransfer.items) {\r\n // Use DataTransferItemList interface to remove the drag data\r\n e.dataTransfer.items.clear()\r\n } else {\r\n // Use DataTransfer interface to remove the drag data\r\n e.dataTransfer.clearData()\r\n }\r\n this.setState({drag: false})\r\n }\r\n\r\n getBase64 = (f) => {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(f);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n }\r\n\r\n validateFile(files) {\r\n let length = files.length + this.state.files.length\r\n if (length > this.state.maxFiles) {\r\n NotificationManager.error('Solo se admite como máximo ' + this.state.maxFiles + ' archivos', 'Error', 5000, null, null, 'outline')\r\n return\r\n }\r\n this.addFile(files)\r\n }\r\n\r\n addFile = (files) => {\r\n // console.log(files)\r\n let n = []\r\n let convert = (i) => {\r\n if (i > (files.length - 1)) {\r\n const newsFiles = this.state.files.concat(n)\r\n this.setState({files: newsFiles}, () => { /*console.log(this.state.files) */ })\r\n if (this.props.opts.output) this.props.onChange(newsFiles)\r\n return\r\n }\r\n this.getBase64(files[i]).then(\r\n data => {\r\n n.push({name: files[i].name, size: files[i].size, type: files[i].type, value: data, ext: files[i].name.split('.').pop() })\r\n i = i + 1\r\n convert(i)\r\n }\r\n );\r\n }\r\n convert(0)\r\n }\r\n\r\n deleteFile = (i) => {\r\n const temp = this.state.files\r\n temp.splice(i,1)\r\n this.setState({files : temp})\r\n if (temp.length === 0) this.props.onChange(null)\r\n }\r\n\r\n render() {\r\n const { name, disabled } = this.props\r\n return (\r\n
    \r\n
    \r\n {this.state.files.length > 0 &&
    \r\n {this.state.files.length === 1 && ['gif','jpg','jpeg','png'].includes(this.state.files[0].ext)\r\n ?
    \r\n {!disabled &&\r\n
    0 ? ()=> {this.state.cancel()} : ()=> {this.deleteFile(this.state.files[0])}}>\r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n \"\"\r\n\r\n {this.state.progressPercentage > 0 && \r\n
    \r\n
    \r\n
    {this.state.progressPercentage}%
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n :
    \r\n {this.state.files.map((f, i) => {\r\n return
    \r\n
    \r\n {/*
    {f.type}
    */}\r\n
    {f.name}
    \r\n {!disabled &&\r\n
    0 ? ()=> {this.state.cancel()} : ()=> {this.deleteFile(i)}}>\r\n \r\n
    \r\n }\r\n
    \r\n {this.state.progressPercentage > 0 && \r\n
    \r\n
    \r\n
    {this.state.progressPercentage}%
    \r\n
    \r\n }\r\n
    \r\n })}\r\n
    \r\n }\r\n
    \r\n }\r\n\r\n {this.state[name] && typeof this.state[name] === 'string' &&
    \r\n {!disabled &&\r\n
    { this.setState({[name] : null}); this.props.onChange(null) }}>\r\n \r\n
    \r\n }\r\n
    \r\n {['.gif', '.jpg', '.jpge', '.png', ].some(ext => this.state.urlFile?.includes(ext))\r\n ?
    { openLink(this.state.urlFile) }}>\r\n \"\" { e.target.onerror = null; e.target.src = require(\"../../assets/img/user.png\") }} \r\n />\r\n
    \r\n :
    { openLink(this.state.urlFile) }}>\r\n
    {this.state[name]}
    \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n }\r\n \r\n {this.state[name] && Array.isArray(this.state[name]) &&
    \r\n
    \r\n
    \r\n
    { openLink(this.state.urlFile) }}>{this.state[name]}
    \r\n
    { openLink(this.state.urlFile) }}>\r\n \r\n
    \r\n {!disabled &&\r\n
    {}}>\r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n {((this.state.files.length < this.state.maxFiles) && !this.state[name]) &&
    \r\n
    \r\n \r\n {this.props.placeholder &&

    {this.props.placeholder.replace('{0}', this.props.opts?.accept?? this.accept)}

    }\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","import React, { useRef, useState, useMemo, useEffect } from 'react'\r\nimport {\r\n Row,\r\n Modal,\r\n ModalFooter,\r\n Button,\r\n Card,\r\n CardHeader,\r\n CardTitle,\r\n CardBody,\r\n Nav,\r\n NavLink,\r\n NavItem,\r\n TabContent,\r\n TabPane\r\n} from \"reactstrap\";\r\nimport { Colxx } from \"../../components/common/CustomBootstrap\";\r\nimport classnames from \"classnames\";\r\nimport CustomDropzone from \"./CustomDropZone\";\r\nimport JoditEditor from 'jodit-react'\r\nimport { resizeImage, rgbToHex } from \"../../helpers/Utils\"\r\nimport _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\n\r\nconst Editor = props => {\r\n // console.log(props)\r\n const editor = useRef(null)\r\n let [content] = useState(props.value)\r\n const buttons = ['source','|','bold','strikethrough','underline','italic','ul','ol','font','fontsize','brush','align','paragraph','table','link']\r\n let config = {\r\n theme: localStorage.getItem(\"__theme_color\")?.indexOf(\"dark\") > -1 ? \"dark\" : \"\",\r\n toolbarButtonSize: 'medium',\r\n enableDragAndDropFileToEditor: false,\r\n readonly: props.disabled,\r\n toolbarAdaptive: true,\r\n showXPathInStatusbar: false,\r\n showCharsCounter: false,\r\n showWordsCounter: false,\r\n askBeforePasteHTML: false,\r\n placeholder: props.placeholder?? '...',\r\n language: 'es',\r\n buttons: buttons,\r\n buttonsMD: buttons,\r\n buttonsXS: buttons,\r\n /*\r\n controls: {\r\n align: {\r\n command: 'align',\r\n list: {\r\n left: 'left',\r\n right: 'right',\r\n center: 'center'\r\n }\r\n }\r\n },\r\n */\r\n extraButtons: [\r\n {\r\n name: 'insertImage',\r\n icon: 'image',\r\n exec: (editor) => {\r\n props.openFile(editor)\r\n }\r\n },\r\n /*\r\n {\r\n name: 'insertVideo',\r\n icon: 'video',\r\n exec: function (editor) {\r\n props.toggle(editor)\r\n // editor.s.insertHTML((new Date()).toDateString());\r\n // editor.s.insertImage('https://miracomosehace.com/wp-content/uploads/2020/05/hombre-gorra-camara-1.jpg', {width: '300px', height: ''});\r\n }\r\n }\r\n */\r\n ],\r\n /*\r\n uploader: {\r\n insertImageAsBase64URI: true\r\n },\r\n */\r\n events: {\r\n afterRemoveNode: (node) => {\r\n if (node.nodeName === 'IMG') {\r\n // console.log(node.src)\r\n props.deleteFile(node.src)\r\n }\r\n },\r\n afterInsertImage: (e) => {\r\n // console.log('afterInsertImage', e)\r\n },\r\n paste: (e) => {\r\n console.log(e)\r\n }\r\n }\r\n }\r\n\r\n if (props.aiAssist) {\r\n config.extraButtons.push(\r\n {\r\n name: 'AI',\r\n exec: (editor) => {\r\n props.aiAssist(editor)\r\n }\r\n }\r\n )\r\n }\r\n\r\n // equal to componentDidMount\r\n useEffect(() => {\r\n // console.log('montado')\r\n }, []);\r\n\r\n let handleChange = (val) => {\r\n const d = document.createElement('div')\r\n d.innerHTML = val;\r\n const tables = d.getElementsByTagName('table')\r\n\r\n for (let i = 0; i < tables.length; i++) {\r\n tables[i].style.border = 'none'\r\n tables[i].style.borderCollapse = 'collapse'\r\n tables[i].style.marginBottom = '20px'\r\n tables[i].style.marginTop = '20px'\r\n // tables[i].style.maxWidth = '100%'\r\n // tables[i].style.width = '100%'\r\n\r\n const cells = tables[i].getElementsByTagName('td')\r\n\r\n for (let j = 0; j < cells.length; j++) {\r\n let borderColor = rgbToHex(cells[j].style.borderColor)\r\n cells[j].style.border = '1px solid ' + (borderColor || '#cdcdcd')\r\n if (cells[j].style.backgroundColor) cells[j].style.backgroundColor = rgbToHex(cells[j].style.backgroundColor)\r\n if (cells[j].style.color) cells[j].style.color = rgbToHex(cells[j].style.color)\r\n cells[j].style.minWidth = '32px'\r\n cells[j].style.padding = cells[j].style.padding || '6px'\r\n }\r\n }\r\n \r\n function cerrarEtiquetasImg(texto) {\r\n const regex = /]*>/gi;\r\n return texto.replace(regex, (match) => {\r\n if (match.endsWith(\"/>\")) {\r\n return match; // La etiqueta ya está cerrada\r\n } else {\r\n return match.slice(0, -1) + \" />\"; // Agregar el cierre si no está presente\r\n }\r\n });\r\n }\r\n\r\n val = cerrarEtiquetasImg(d.innerHTML)\r\n // val = d.innerHTML\r\n // console.log(val)\r\n props.onChange(val)\r\n }\r\n\r\n return useMemo(() => (\r\n \r\n // eslint-disable-next-line\t\t\t\r\n ), [])\r\n}\r\n\r\nclass CustomEditor extends React.Component {\r\n constructor(props) {\r\n // console.log(props)\r\n super(props);\r\n this.refInputFile = React.createRef();\r\n this.toggleTab = this.toggleTab.bind(this);\r\n this.state = {\r\n isOpen: false,\r\n editor: null,\r\n activeTab: \"1\",\r\n name: '',\r\n file: null\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n // if (this.props.aiAssist && this.props.value) this.state.editor.s.insertHTML(this.props.value)\r\n }\r\n\r\n toggle = (editor) => {\r\n if (editor) this.setState({editor: editor})\r\n this.setState({isOpen: !this.state.isOpen})\r\n }\r\n\r\n toggleTab (tab) {\r\n if (this.state.activeTab !== tab) {\r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n openFile = (editor) => {\r\n if (editor) this.setState({editor: editor})\r\n this.refInputFile.current.click()\r\n }\r\n\r\n uploadFile (file) {\r\n _axios\r\n .post('misc/content/file', {data: file})\r\n .then(r => {\r\n if (r.status === 0) {\r\n this.state.editor.execCommand('insertLineBreak')\r\n this.state.editor.s.insertImage(r.data.url, {width: '300px', height: ''})\r\n } else NotificationManager.error(r.msg, \"Error\", 5000, null, null, 'outline')\r\n })\r\n .catch((e) => {})\r\n }\r\n\r\n deleteFile (name) {\r\n _axios\r\n .post('misc/content/file/delete', {name: name})\r\n .then(r => {\r\n })\r\n .catch((e) => {})\r\n }\r\n\r\n handleOnChange = (e) => {\r\n let reader = new FileReader()\r\n reader.onload = () => {\r\n resizeImage(reader.result).then((r) => {\r\n // console.log(r)\r\n this.refInputFile.current.value = ''\r\n this.uploadFile(r)\r\n })\r\n }\r\n reader.readAsDataURL(e.target.files[0])\r\n }\r\n\r\n save = () => {\r\n this.state.editor.s.insertImage('https://miracomosehace.com/wp-content/uploads/2020/05/hombre-gorra-camara-1.jpg', {width: '300px', height: ''});\r\n this.toggle()\r\n }\r\n\r\n aiAssist = (editor) => {\r\n this.props.aiAssist(editor)\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Dos...\r\n \r\n \r\n \r\n \r\n \r\n \r\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 CustomEditor","import React, { Component } from \"react\";\r\nimport DropzoneComponent from \"react-dropzone-component\";\r\nimport \"react-dropzone-component/styles/filepicker.css\";\r\nimport \"dropzone/dist/min/dropzone.min.css\";\r\nvar ReactDOMServer = require('react-dom/server');\r\n\r\nvar dropzoneComponentConfig = {\r\n\tpostUrl: \"no-url\",\r\n};\r\nvar dropzoneConfig = {\r\n\tacceptedFiles: \"image/jpeg,image/png\",\r\n\tautoProcessQueue: false, //This prevents automatic posting until we press 'save'\r\n\tmaxFilesize: 2, //in megabytes.\r\n\tmaxFiles: 1,\r\n\tpreviewTemplate: ReactDOMServer.renderToStaticMarkup(\r\n\t\t
    \r\n\t\t\t\"\"\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
    \r\n )\r\n};\r\n\r\nclass CustomImage extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tvalue: null,\r\n\t\t\tthumbValue: null,\r\n\t\t\tloading: true,\r\n\t\t\tfileLoaded: false,\r\n\t\t\tfileAttached: false\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\t\r\n\t\tif (this.props.value !== '...') {\r\n\t\t\tthis.setState({\r\n\t\t\t\tthumbValue: (this.props.value.indexOf('http') === -1 && this.props.opts && this.props.opts.base ? this.props.opts.base : '') + this.props.value,\r\n\t\t\t\tfileLoaded: true,\r\n\t\t\t\tloading: false\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tthis.handleChange('sameimage');\r\n\t\t}\r\n\t}\r\n\r\n\thandleChange = value => {\r\n\t\tthis.setState({ [this.props.name]: value });\r\n\t\tthis.props.onChange(value);\r\n\t};\r\n\t\t\t\r\n\taddedfile (file, context) {\r\n\t\t\r\n\t\t// if (this.state.value !== \"\") {\r\n\t\t// \t//Display error & remove the file. cannot upload duplicates.\r\n\t\t// \tthis.state.myDropZone.removeFile(file);\r\n\t\t// }\r\n\t\t\r\n\t\tvar img = document.createElement(\"img\");\r\n\t\tvar reader = new FileReader();\r\n\t\treader.onload = function (e) {\r\n\t\t\timg.src = e.target.result;\r\n\t\t\timg.onload = function () {\r\n\r\n\t\t\t\tvar canvas = document.createElement(\"canvas\");\r\n\t\t\t\tvar ctx = canvas.getContext(\"2d\");\r\n\t\t\t\tctx.drawImage(img, 0, 0);\r\n\r\n\t\t\t\tvar MAX_WIDTH = context.props.opts.maxWidth;\r\n\t\t\t\tvar MAX_HEIGHT = context.props.opts.maxHeight;\r\n\t\t\t\tvar width = img.width;\r\n\t\t\t\tvar height = img.height;\r\n\r\n\t\t\t\tif (width > height) {\r\n\t\t\t\t\tif (width > MAX_WIDTH) {\r\n\t\t\t\t\t\theight *= MAX_WIDTH / width;\r\n\t\t\t\t\t\twidth = MAX_WIDTH;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (height > MAX_HEIGHT) {\r\n\t\t\t\t\t\twidth *= MAX_HEIGHT / height;\r\n\t\t\t\t\t\theight = MAX_HEIGHT;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tcanvas.width = width;\r\n\t\t\t\tcanvas.height = height;\r\n\t\t\t\tconsole.log(MAX_WIDTH);\r\n\t\t\t\t\r\n\t\t\t\tctx.drawImage(img, 0, 0, width, height);\r\n\r\n\t\t\t\tvar dataurl = canvas.toDataURL(\"image/png\");\r\n\r\n\t\t\t\t//We have the base64 string now.\r\n\t\t\t\t//Set the value in the form.\r\n\t\t\t\tcontext.setState({ [context.props.name]: dataurl, fileLoaded: true, fileAttached: true, thumbValue: dataurl });\r\n\t\t\t\tcontext.props.onChange(dataurl);\r\n\t\t\t}\r\n\t\t}\r\n\t\treader.readAsDataURL(file);\r\n\t}\r\n\r\n\tclear() {\r\n\t\tthis.setState({ fileLoaded: false });\r\n\t\tthis.handleChange('removeimage'); // set to remove\r\n\t};\r\n\r\n\trender() {\r\n\t\tif (this.state.loading) {\r\n\t\t\treturn ('Loading...')\r\n\t\t}\r\n\t\telse if (!this.state.fileLoaded) {\r\n\t\t\treturn (\r\n\t\t\t\t
    \r\n\t\t\t\t\t this.addedfile(file, this) }}\r\n\t\t\t\t\t\tconfig={dropzoneComponentConfig}\r\n\t\t\t\t\t\tdjsConfig={dropzoneConfig}\r\n\t\t\t\t\t/>\r\n\t\t\t\t
    \r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\treturn (\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t this.clear()}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{false && this.state.fileAttached && Not saved}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
    \t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport default CustomImage;","import React, {Fragment} from \"react\";\r\nimport Slider, { Range } from \"rc-slider\";\r\nimport \"rc-slider/assets/index.css\";\r\n\r\nconst sliderHandle = props => {\r\n const { value, dragging, index, offset, ...restProps } = props;\r\n const positionStyle = {\r\n position: \"absolute\",\r\n left: `${offset}%`\r\n };\r\n\r\n\r\n return (\r\n \r\n
    \r\n {value}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport class SliderTooltip extends React.Component {\r\n\r\n handleChange = (val) => {\r\n this.props.onChange(val)\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport class RangeTooltip extends React.Component {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}","import React, {useEffect, useState} from 'react';\r\nimport { FormGroup, Input, Badge, Button } from 'reactstrap';\r\nimport { ReactSortable } from 'react-sortablejs';\r\n\r\nconst CustomSortable = (props) => {\r\n const [items, setItems] = useState([])\r\n\r\n useEffect(() => {\r\n if (props.value) {\r\n let propsItems = props.value.split(\"|\")\r\n propsItems= propsItems.map((item, index) => item = {id: index, label: item })\r\n setItems(propsItems)\r\n } else setItems([{id: 0, label: \"\"}])\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n let value = [...items]\r\n value = value.map(item => item = item.label)\r\n props.onChange(value.join(\"|\"))\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [items])\r\n\r\n const addItem = () => {\r\n let nextId = 0\r\n if (items.length > 0) {\r\n var orderedAnswers = items.slice().sort((a, b) => b.id - a.id)\r\n nextId = orderedAnswers[0].id + 1\r\n }\r\n setItems([...items, { id: nextId, label: \"\" }])\r\n }\r\n\r\n const updateItem = (itemId, event) => {\r\n var itemIndex = items.findIndex(item => item.id === itemId)\r\n const updatedItems = [...items]\r\n const updatedItem = { ...updatedItems[itemIndex] }\r\n updatedItem.label = event.target.value\r\n updatedItems[itemIndex] = updatedItem\r\n setItems(updatedItems);\r\n }\r\n\r\n const removeItem = answerId => {\r\n setItems(items.filter(item => item.id !== answerId))\r\n }\r\n\r\n return (\r\n
    \r\n setItems(newState)}\r\n className=\"answers\"\r\n options={{\r\n handle: '.handle',\r\n }}\r\n >\r\n {items.map(item => {\r\n return (\r\n \r\n {\r\n updateItem(item.id, event)\r\n }}\r\n />\r\n
    \r\n \r\n \r\n \r\n removeItem(item.id)}\r\n >\r\n \r\n \r\n
    \r\n \r\n )\r\n })}\r\n \r\n\r\n
    \r\n addItem()}\r\n >\r\n {props.L[props.nameButton]?? \"Add option\"}\r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default CustomSortable\r\n\r\n","import React, { Component, Fragment } from \"react\";\r\nimport {\r\n Input,\r\n FormGroup,\r\n Label,\r\n Popover,\r\n PopoverBody,\r\n CustomInput,\r\n Button,\r\n Tooltip,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Alert\r\n} from \"reactstrap\";\r\nimport { Colxx } from \"../../components/common/CustomBootstrap\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport CustomSelect from \"./CustomSelect\"\r\nimport Editor from \"./Editor\"\r\nimport CustomImage from \"./CustomImage\"\r\nimport Switch from \"rc-switch\";\r\nimport \"rc-switch/assets/index.css\";\r\nimport TagsInput from \"react-tagsinput\";\r\nimport \"react-tagsinput/react-tagsinput.css\";\r\nimport CustomDropzone from \"./CustomDropZone\";\r\nimport moment from \"moment\";\r\nimport {isAndroidOrIos} from \"../../helpers/Utils\"\r\nimport { SliderTooltip } from '../common/SliderTooltips';\r\nimport AppLocale from \"../../config/lang\";\r\nimport CustomSortable from \"./CustomSortable\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\"\r\n\r\nclass Field extends Component {\r\n constructor(props) {\r\n super(props);\r\n // console.log(props)\r\n let value = props.value\r\n if (props.opts && props.opts.default && (value === null || value === \"\")) {\r\n value = typeof props.opts.default === 'function' ? props.opts.default() : props.opts.default\r\n props.onChange(value)\r\n }\r\n this.state = { pop: false, tooltipId: props.name.replace('(', '').replace(')', '').replace(/\\./g, '') };\r\n this.state[props.name] = ['date', 'time', 'datetime'].indexOf(props.type) > -1 ? (value ? moment(value) : null) : value\r\n this.state.highlightDates = undefined\r\n this.state.includeDates = undefined\r\n this.state.tooltipOpen = false\r\n this.datePickerRef = React.createRef()\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n // necesario para actualizar los values de los componentes hijos\r\n // if (prevProps.value !== this.props.value) this.setState({ [this.props.name]: this.props.value });\r\n if (prevProps.value !== this.props.value) this.setState({ \r\n [this.props.name]: ['date', 'time', 'datetime'].indexOf(this.props.type) > -1 ? (this.props.value ? moment(this.props.value) : null) : this.props.value \r\n }, () => {\r\n if (this.props.type === 'date' && !this.state[this.props.name] && this.props.opts && this.props.opts.onOpen) this.setState({ \r\n highlightDates: undefined,\r\n includeDates: undefined\r\n })\r\n });\r\n }\r\n\r\n handleChange = value => {\r\n var val;\r\n val = this.props.opts && !!this.props.opts.negate ? !value : value;\r\n this.setState({ [this.props.name]: val }, () => {\r\n if (this.props.params) this.props.onChange({value: val, params: this.props.params})\r\n else this.props.onChange(val)\r\n });\r\n };\r\n\r\n handleDatePickerChange = value => {\r\n let format = ['datetime', 'time'].indexOf(this.props.type) > -1 ? 'YYYY-MM-DD HH:mm' : 'YYYY-MM-DD'\r\n let date = value ? moment(value).format(format) : null;\r\n this.setState({ [this.props.name]: value }); // cambiar estado local\r\n this.props.onChange(date); // enviar al componente padre --> Formcustom\r\n };\r\n\r\n handleFieldChange = (e) => {\r\n let val = e.target.value\r\n this.setState({ [this.props.name]: val }, () => {\r\n if (this.props.params) this.props.onChange({value: val, params: this.props.params})\r\n else this.props.onChange(val)\r\n });\r\n }\r\n\r\n handleTagChange = tags => {\r\n this.setState({ [this.props.name]: tags });\r\n this.props.onChange(tags)\r\n };\r\n\r\n handleCheckboxGroupChange = (e) => {\r\n let newArray = this.state[this.props.name]\r\n let index = newArray.indexOf(e.target.value)\r\n if (index > -1) newArray.splice(index, 1)\r\n else newArray.push(e.target.value)\r\n this.setState({ [this.props.name]: newArray });\r\n this.props.onChange(newArray)\r\n }\r\n\r\n handleFocus = (e) => {\r\n if(!this.props.onFocus) return\r\n this.props.onFocus({\r\n value: this.state[this.props.name],\r\n params: this.props.params\r\n })\r\n }\r\n\r\n handleDatePickerOpen = () => {\r\n // suport touch backdrop mobile\r\n document.addEventListener('touchstart', function(event) {\r\n event.stopPropagation()\r\n }, true)\r\n if(!this.props.opts || !this.props.opts.onOpen) return\r\n this.props.opts.onOpen(this.props.ctx, this)\r\n }\r\n\r\n handleBlur = (e) => {\r\n if(!this.props.onBlur) return\r\n this.props.onBlur({\r\n value: this.state[this.props.name],\r\n params: this.props.params\r\n })\r\n }\r\n\r\n handleOnKeyUp = (e) => {\r\n // console.log(e.target.value)\r\n if(this.props.onKeyUp) this.props.onKeyUp(e, this)\r\n }\r\n\r\n handleOnKeyPress = (e) => {\r\n // console.log(e.target.value)\r\n if(this.props.onKeyPress) this.props.onKeyPress(e)\r\n }\r\n\r\n handleChangeQuill = (textQuillStandart) => {\r\n let val = textQuillStandart\r\n this.setState({ [this.props.name]: val }, () => {\r\n if (this.props.params) this.props.onChange({value: val, params: this.props.params})\r\n else this.props.onChange(val)\r\n });\r\n }\r\n\r\n handleChangeJodit = (val) => {\r\n // console.log('guardo')\r\n this.setState({ [this.props.name]: val }, () => {\r\n this.props.onChange(val)\r\n });\r\n }\r\n\r\n onTooltipClick() {\r\n if (this.props.opts && this.props.opts.tooltip && this.props.onTooltip) this.props.onTooltip({ name: this.props.label || this.props.hint, value: this.props.name });\r\n }\r\n\r\n toggleTooltip = () => {\r\n this.setState(prevState => ({\r\n tooltipOpen: !prevState.tooltipOpen\r\n }));\r\n };\r\n\r\n customDatePickerInput = React.forwardRef(({ value, onClick }, ref) => (\r\n \r\n ))\r\n\r\n customAddon = (props) => {\r\n const L = AppLocale[this.props.locale]?.messages\r\n const {addon, type} = props\r\n const {buttons, texts} = addon\r\n \r\n return \r\n {buttons?.map((b, i) => {\r\n const isDisabled = typeof b.disabled === \"function\" ? b.disabled(this) : b.disabled\r\n const isOutline = typeof b.outline === 'function' ? b.outline() : !!b.outline\r\n const show = b.renderIf ? b.renderIf() : true\r\n return show ? { b.onClick(this.props.ctx) } : () => {}}>\r\n {L[b.name]?? b.name} {b.icon ? : \"\"}\r\n : \"\"\r\n })}\r\n\r\n {texts?.map((text, i) => {return {L[text]?? text}})}\r\n \r\n }\r\n\r\n render() {\r\n const {\r\n col, colxs, offset, name, type, label, hint, validate, opts, onClick, disabled, placeholder, maxLength, tabIndex,\r\n className, idParent, locale, aiAssist, autoComplete, id\r\n } = this.props\r\n\r\n const L = AppLocale[locale]?.messages\r\n return (\r\n \r\n \r\n {hint &&\r\n this.onTooltipClick()}\r\n onMouseEnter={e => this.setState({ pop: true })}\r\n onMouseLeave={e => this.setState({ pop: false })}\r\n >\r\n {hint}\r\n {opts && opts.tooltip &&\r\n
    \r\n \r\n Click to learn more about this feature!\r\n \r\n
    \r\n }\r\n
    \r\n }\r\n\r\n {['text', 'textarea', 'password', 'select', 'date', 'time', 'datetime', 'number', 'tel'].indexOf(type) >= 0 &&\r\n \r\n }\r\n\r\n {type === 'label' &&\r\n \r\n
    \r\n {validate}\r\n
    \r\n }\r\n\r\n {type === 'image' &&\r\n \r\n
    \r\n }\r\n\r\n {type === 'button' &&\r\n
    \r\n {opts?.labelBeforeButton && }\r\n { }}\r\n className={className}\r\n >\r\n {label}\r\n \r\n
    \r\n }\r\n\r\n {type === 'switch' &&\r\n
    \r\n \r\n {label &&
    {label}
    }\r\n
    \r\n }\r\n\r\n {type === 'file' &&\r\n \r\n }\r\n\r\n {type === 'dropzone' &&\r\n \r\n {label &&
    }\r\n \r\n {validate}\r\n
    \r\n }\r\n\r\n {type === 'embed' &&\r\n \r\n }\r\n\r\n {type === 'tag' &&\r\n \r\n {label && }\r\n {\r\n if (r) {\r\n const msg = `${L[\"main.invalidTag\"]}: ${r[0]}`\r\n NotificationManager.error((L[opts?.msgInvalidTag] ?? opts?.msgInvalidTag) || msg, \"\", 4000, null, null, \"outline\")\r\n }\r\n }}\r\n />\r\n {validate}\r\n \r\n }\r\n\r\n {type === 'checkbox' &&\r\n \r\n \r\n {validate}\r\n \r\n }\r\n\r\n {type === 'checkboxGroup' &&\r\n \r\n {label && }\r\n
    \r\n {opts.list.map((e, i) => {\r\n return (\r\n -1}\r\n onChange={this.handleCheckboxGroupChange}\r\n disabled={disabled}\r\n />\r\n )\r\n })}\r\n
    \r\n {validate}\r\n
    \r\n }\r\n\r\n {type === 'radio' &&\r\n \r\n
    \r\n { this.props.onClick(this) } : () => {}}\r\n />\r\n \r\n
    \r\n {validate}\r\n
    \r\n }\r\n\r\n {type === 'radioGroup' &&\r\n \r\n {label && }\r\n
    \r\n {opts.list.map((e, i) => {\r\n return (\r\n \r\n )\r\n })}\r\n
    \r\n {validate}\r\n
    \r\n }\r\n \r\n {type === 'editor' &&\r\n \r\n {label && }\r\n { this.props.onClickAiAssist(this.props, editor) } : null}\r\n />\r\n {validate}\r\n \r\n }\r\n\r\n {type === 'slider' &&\r\n \r\n \r\n {validate}\r\n \r\n }\r\n\r\n {type === 'separator' &&\r\n
    \r\n }\r\n\r\n {type === 'select2' &&\r\n
    Select
    \r\n }\r\n\r\n {type === 'alert' &&\r\n {L[this.state[name]]?? this.state[name]}\r\n }\r\n\r\n {type === 'sortable' &&\r\n \r\n {validate}\r\n \r\n \r\n }\r\n\r\n {type === 'component' && }\r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default Field;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAAdVBMVEX6+vrU1NTV1dX5+fn4+PjW1tb39/fX19f29vbn5+fl5eX09PTb29vg4ODt7e3s7Oze3t7Y2Nj19fXy8vLZ2dnv7+/k5OTa2trm5ubp6eno6Ojj4+Pw8PDr6+vx8fHd3d3h4eHq6urf39/c3Nzi4uLu7u7z8/M2S+sIAAAGiUlEQVR4Xu3d2XIjKwwGYAl63zfv+5K8/yOei6kx2OOTicdNulr9f9cuV4pgEAIEWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvHa3vB4WYahYheHicF3uWo/+AFG5WfAz2aaMyIAmzvgrWdyQMWXe7sB/d9gFaKp0o/h71CalSfvM+RX5J01WdORXHSOaJB0rfp2KNU3PfsH/ZrGnidEJP6UW+Tw+7Xa7UzzPF4qfSjRNSZPxn7KkSDXZdFokTz/Z0HTMQn5U7SJ6LtpV/Cic0VSc+EG9jugr0brmByuahoTvLUpNf6PLBd9LaAqufKcr6HuKju9cJ9dW/krTd+mVP7HW2rCtaugVTcW2Dcm2ZIta06vWii1LkmzHlnpPr9vXbNmRXHvFxiWgfxFc2FB7kiqq2cg1/Ruds1FHJFTFxlXTv9JHNiqSacVGTu/IxYfyqeKbg6Z36APfqJQEOvBN5tF7vMxqeJKn5JuwoXc1Id+UJI1X882M3jfjm9ojYWK+SfrOXcQkS+CbjIymPmiTs/EDsR1rT/3YS+1a2ozHR+qLiU1DLTORrCLqS2QCtxMJYsKixEl+OiM5WtOxAupPYLpWS2LM+be5s+8VwwSkKfUpNYEpSWEm+YOz9eZW3kbhzlmaOhE3FyqP+uUpafNhwL9VDpOvAYlgEgRr6tvaSmWIEDuMhlph60OTMfc19U37JqsvQmcCB4fJ6o4k0Mrl2YQN/6ZJgIZ/WzndX2tIgK3TCWsmK4b/eFwYOloefsg6ORNR/yJZJ2pM3OhR/zwzIspqLHLBLA9ENZZPLvgyQnj0rNetMGZ93+mHZsMTCVD8UJxVyIrgt06/fU8CpE5/KCer3wqgnW7uzWVlHahzebK4kpXPojP/wiH1L+Rf+Cztvk7qcEBcEsnK0ewcpjQ+pO0b5u42QziQtiPt974j7Ys7oZU4i7ILeWcdtuxqyjrLO0WjQ0dr6UjiEdyNowl+KfG69J6dDPGeL2gVbSxMPtNJDnYh815mGFBfglDkDU37BzN3kHDwPaH1HNQn9eNTCa3vYF8duVA/LvYVF1mW3PMYvxZcOMQzo7Fq6X2t6aqhJ7nCWBfQu4KOb04kz4VvKk3v0RXfXEigT9Vf6asr27OrRDEbSW+F8GKS6cLGsqciXBcSqgnZmPfSr8KGpJqxJdfv1zjiGcm1ZkuW0uvSjC1rkmzOFr+gVxU+W+Yk25FtG49e4W3YdiThdM62+oO+76NmW65pYq3FVUvf01Y8mbYyNnyv2tLf7Su+d6VpiPnBpdD0FV0c+EFMU1EofhButpqe09tNyA9UQVNhKkrb/PzUarqn21P+9LMrTdNQ1vy/unOyKmfb7XZWrpJzx/+rLmkC2oz7kbUknJdwf+YeSTaruU/1jMTSc+7bXJNMacaPjvv2yN+kju3+yI+ylCQqFd/zlxERURTX/Hd1/OvDS5/vqZLkWf7RVIFZy8xr/ko935spIvbZkLnHeuY7KgnozufqHPIz4Xn1SXeCRPGds0eSRBnfqVJ6oinW10Pn8y9+d7iui4aeSB+aPotIjqZjW1jQV3QQNVGg6StFyLauISnSmm15QO8LjmyrU5IhDdni76gfpc+WMCUJmpoti5T6ki7YUjc0flHHltyj/ng5W7qIxs7L2LJ0GbxlnoCbmS5fmyjZchb08KP6oP59KDYSMQ+p+VtyYavY2Ak5v6a25MZWiTjZphd8o2bkygcbnSdhN7Ukd0oBe68FG/GP7doWNEZByDc5uZXzTRiM/EeYeT8Y+m5GfSGT/ZRcS32+2Y96Jtz9bES30CMOR3P6Cfl4Q1Mv/OkRNwhHe/Mp/iLCch9txWN9oe8wwDumfiDnlq/7lWgs4P64Y/NRFhBZObi+LPYNv26gdFzC46sAuB1qpA388VU9Og6W503GdlXFfqOxGax8hArGds8+H7BTr8b2yP1swOHyMLLikfWgj3QG48o3JHIennS/B90O+rDweVRPgy2GLQKn9Jgi0iUNIRlTXBoP/MfOxpR6qAb+GWjlpvy820eDqqH/W/6IXjOMBx8H0vHs2c8Gr+FSjGd8DwZfQcSjSc+ENJRwNGmay/BzUTWa2lr18OczNg4W8m4oU61p8LpTajT5mZKGUjoo1e940b8dfnXKLckCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8BAY9Ig1pLhfEAAAAASUVORK5CYII=\"","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport Select from \"react-select\";\r\nimport CustomSelectInput from \"../../components/common/CustomSelectInput\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport _axios from \"../../libs/axios\";\r\nimport { debounce, isEqual } from \"lodash\";\r\nimport AppLocale from \"../../config/lang\";\r\n\r\nconst listImgs = props => {\r\n if (!props.isDisabled) {\r\n return (\r\n
    \r\n
    \r\n \"Profile\"{e.target.onerror = null; e.target.src=require(\"../../assets/img/user.png\")}}/>\r\n
    \r\n
    \r\n
    {props.data.label}
    \r\n
    {props.data.desc}
    \r\n
    \r\n
    \r\n )\r\n } else return null\r\n}\r\n\r\nconst listIcons = props => {\r\n if (!props.isDisabled) {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    {props.data.label}
    \r\n
    \r\n
    \r\n )\r\n } else return null\r\n}\r\n\r\n/*\r\nconst Menu = (props) => {\r\n console.log(props)\r\n if (!props.isDisabled){\r\n return (\r\n
    \r\n ddddd\r\n
    \r\n )\r\n } else return null\r\n}\r\n*/\r\n \r\nclass SelectCustom extends Component {\r\n constructor(props) {\r\n super(props)\r\n const { locale } = props\r\n const L = AppLocale[locale].messages\r\n let items = []\r\n if (props.listInLocalStorage) {\r\n let lsi = localStorage.getItem(props.listInLocalStorage.name)\r\n if (lsi) {\r\n lsi = JSON.parse(lsi)\r\n const list = lsi[props.listInLocalStorage.listName]?? []\r\n items = list.map(item => item = {value: item.id, label: item.name})\r\n }\r\n }\r\n this.state = {\r\n items: props.items ? props.items.map(item => item = {value: item.value, label: L[item.label]?? item.label}) : items,\r\n filter: null,\r\n loading: false\r\n }\r\n // default value {value: 1, label: ''}\r\n // default value for multiSelection [{id: 1, name: ''}, ...]\r\n let v = (() => {\r\n let r = null\r\n if (props.value !== null && props.value !== undefined && !props.isMulti) return props.value\r\n else if (props.value !== null && props.value !== undefined && props.items) return props.items.find((e) => { return e.value === props.value })\r\n return r\r\n })()\r\n this.state[props.name] = v\r\n }\r\n\r\n componentDidMount() {\r\n const { name, value, onChange, setOutput, getValueLabelOfFieldSelect } = this.props\r\n if (Array.isArray(value)) {\r\n // console.log(value)\r\n let v = []\r\n value.forEach(e => { v.push({ value: e.ID, label: e.name }) })\r\n this.setState({ [name]: v, items: [] }, () => {\r\n onChange(setOutput ? setOutput(v) : v.map(m => m.value))\r\n })\r\n } else {\r\n // console.log(value)\r\n let v = null\r\n v = this.state.items.find(item => item.value === value)\r\n if (!v && value) v = value\r\n this.setState({ [name]: v }, () => {\r\n onChange(setOutput ? setOutput(v) : (v ? v.value : null))\r\n if (getValueLabelOfFieldSelect && v) process.nextTick(() => { getValueLabelOfFieldSelect({[name]: {value: v.value, label: v.label}}) })\r\n })\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { name, value, onChange, setOutput, path, parentValue } = this.props\r\n if (prevProps.value !== value && (value === undefined || value === null)) {\r\n this.setState({ [name]: null }, () => { /* console.log('cambio'); */ if(path) this.setState({items: []}) })\r\n } else if (prevProps.value !== value && typeof value === 'string' && this.state.items.length > 0) {\r\n const select = this.state.items.find(item => item.value === value)\r\n this.setState({ [name]: {value: value, label: select?.label ?? null} })\r\n } else if (typeof value === 'object' && (this.state[name] === undefined || this.state[name] === null) && !isEqual(prevProps.value, value)) {\r\n this.setState({ [name]: {value: value.value, label: value.label} }, () => {\r\n onChange(setOutput ? setOutput(value) : value)\r\n })\r\n }\r\n if (prevProps.parentValue !== parentValue) {\r\n if (path) this.setState({items: []})\r\n }\r\n }\r\n\r\n getData = (filter) => {\r\n const { path, ctx, remap, isMulti, name } = this.props\r\n if (!filter) {\r\n if (!path || this.state.items.length > 0) return\r\n }\r\n\r\n this.setState(({ items: [], loading: true }))\r\n filter = filter ? `&filterBy=name&filter=${filter}` : \"\"\r\n let fullPath = typeof path == \"function\" ? `${path(ctx)}${filter}` : `${path}${filter}`\r\n _axios\r\n .get(fullPath)\r\n .then(r => {\r\n if (remap) r = remap(r)\r\n if (r.status >= 0) {\r\n let items = []\r\n r.data.Results && r.data.Results.forEach(e => {\r\n items.push({ value: e.ID, label: e.name, img: e.img, desc: e.desc, original: e })\r\n })\r\n this.setState(({ items: items }), () => { })\r\n if (isMulti) this.setState({ [name]: this.state[name] })\r\n }\r\n this.setState({ loading: false })\r\n NotificationManager[r.status >= 0 ? \"success\" : \"error\"](r.msg, r.status >= 0 ? \"\" : \"Opps\", 5000, null, null, \"outline\")\r\n })\r\n }\r\n\r\n handleChange = selectedOption => {\r\n const { name, onChange, params, isMulti, setOutput, getValueLabelOfFieldSelect } = this.props\r\n this.setState({ [name]: selectedOption })\r\n if (selectedOption === null || selectedOption === undefined) onChange(selectedOption)\r\n else if (params) onChange({params: params, value: selectedOption.value})\r\n else if (setOutput) onChange(setOutput(selectedOption))\r\n else if (isMulti === true) onChange(selectedOption.map(m => m.value))\r\n else onChange(selectedOption.value)\r\n if (getValueLabelOfFieldSelect) getValueLabelOfFieldSelect({[name]: {value: selectedOption?.value, label: selectedOption?.label}})\r\n }\r\n\r\n handleFocus = e => {\r\n if (!this.props.onFocus) return\r\n this.props.onFocus({\r\n value: this.state[this.props.name],\r\n props: this.props.params\r\n })\r\n }\r\n\r\n handleBlur = e => {\r\n if (!this.props.onBlur) return\r\n this.props.onBlur({\r\n value: this.state[this.props.name],\r\n props: this.props.params\r\n })\r\n }\r\n\r\n handleInputChange = debounce((text) => { this.getData(text) }, 400);\r\n\r\n customize () {\r\n let r = {Input: CustomSelectInput}\r\n // r.Menu = Menu\r\n if (this.props.withImg) r.Option = listImgs\r\n if (this.props.withIcon) r.Option = listIcons\r\n return r\r\n }\r\n\r\n render() {\r\n const { locale } = this.props\r\n const L = AppLocale[locale].messages\r\n const { name, onMenuOpen, ctx, isMulti, id, searchOnline, isClearable, placeholder, disabled, tabIndex, filterOption} = this.props\r\n return (\r\n { onMenuOpen ? onMenuOpen(ctx, this, L) : this.getData() }}\r\n components={this.customize()}\r\n onChange={this.handleChange}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n options={this.state.items}\r\n isMulti={isMulti}\r\n id={`react-select-wrap-${name}`}\r\n inputId={id}\r\n onInputChange={searchOnline ? (e) => this.handleInputChange(e) : () => {}}\r\n isClearable={isClearable}\r\n clearValue={() => undefined}\r\n menuPlacement=\"auto\"\r\n placeholder={this.state.loading ? \"Cargando..\" : placeholder}\r\n noOptionsMessage={() => this.state.loading ? \"Cargando..\" : \"No hay items\"}\r\n isDisabled={disabled}\r\n tabIndex={tabIndex}\r\n filterOption={filterOption}\r\n autoFocus={false}\r\n // closeMenuOnSelect={false}\r\n />\r\n )\r\n }\r\n}\r\n \r\nconst mapStateToProps = ({ settings }) => {\r\n const { locale } = settings\r\n return { locale }\r\n}\r\n\r\nexport default connect(mapStateToProps)(SelectCustom)","/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable no-param-reassign */\r\nimport React from 'react';\r\nimport { WithWizard } from 'react-albus';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { getValueOfParameterFromURL } from '../../../helpers/Utils';\r\n\r\nconst TopNavigation = ({ className, disableNav, topNavClick }) => {\r\n const getClassName = (steps, step, index, stepItem) => {\r\n if (steps.indexOf(step) === index) {\r\n return 'step-doing';\r\n }\r\n if (steps.indexOf(step) > index || stepItem.isDone) {\r\n stepItem.isDone = true;\r\n return 'step-done';\r\n }\r\n return 'step';\r\n };\r\n\r\n const itemClick = (stepItem, push) => {\r\n if (disableNav) {\r\n return;\r\n }\r\n topNavClick(stepItem, push);\r\n };\r\n\r\n return (\r\n (\r\n \r\n {steps.map((stepItem, index) => {\r\n if (!stepItem.hideTopNav) {\r\n return (\r\n \r\n itemClick(stepItem, push)}\r\n >\r\n {stepItem.name}\r\n {stepItem.desc}\r\n \r\n \r\n );\r\n }\r\n return ;\r\n })}\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default TopNavigation;\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { setModals } from '../../redux/actions';\r\nimport { Modal } from 'reactstrap';\r\nimport { getValueOfParameterFromURL, generateGUID } from '../../helpers/Utils';\r\n\r\nclass CustomModal extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n modalId: null,\r\n clickedBackButton: false,\r\n currentHash: window.location.hash.split(\"?\")[0]?? \"\"\r\n }\r\n }\r\n\r\n componentDidMount () {\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const handle = () => {\r\n if (this.props.isOpen !== prevProps.isOpen) {\r\n if (this.props.isOpen) {\r\n window.location.hash = `${this.state.currentHash}?modalId=${this.state.modalId}`\r\n }\r\n else {\r\n const id = getValueOfParameterFromURL(\"modalId\", window.location.href)\r\n if (id && this.state.clickedBackButton === false) {\r\n window.history.go(-1);\r\n }\r\n }\r\n }\r\n }\r\n if (this.props.isOpen && this.state.modalId === null) {\r\n const id = generateGUID()\r\n this.setState({modalId: id}, () => {\r\n let modals = this.props.modals\r\n modals.push(this.state.modalId)\r\n this.props.setModals(modals)\r\n window.addEventListener('popstate', this.handleUrlChange)\r\n handle()\r\n })\r\n } else handle()\r\n }\r\n\r\n componentWillUnmount () {\r\n window.removeEventListener('popstate', this.handleUrlChange)\r\n }\r\n\r\n handleUrlChange = () => {\r\n let modals = this.props.modals\r\n const id = getValueOfParameterFromURL(\"modalId\", window.location.href)\r\n const isLast = this.props.modals[this.props.modals.length - 1] === this.state.modalId\r\n if (this.props.isOpen && this.state.modalId !== id && (isLast || id === null || this.props.modals.indexOf(id) === -1)) {\r\n this.setState({clickedBackButton: true}, () => {\r\n modals.pop(this.state.modalId)\r\n this.props.setModals(modals)\r\n this.props.toggle()\r\n })\r\n } else this.setState({clickedBackButton: false})\r\n }\r\n\r\n render() {\r\n const { setModals, modals, children, ...rest } = this.props\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ utils }) => {\r\n const { modals } = utils\r\n return { modals }\r\n}\r\n\r\nexport default connect(mapStateToProps, { setModals })(CustomModal)","import React from \"react\";\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from \"reactstrap\";\r\nimport { NotificationManager } from \"../common/react-notifications\";\r\nimport FormCustom from \"../../components/utils/FormCustom\";\r\nimport Dialog from \"../../components/utils/Dialog\";\r\nimport _axios from \"../../libs/axios\";\r\nimport {debounce} from \"lodash\";\r\n\r\nexport default class AiAssist extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n progressBar: false,\r\n aiModal: false,\r\n aiText: null,\r\n form: null,\r\n formFields: [],\r\n dialog: {\r\n isOpen: false,\r\n toggle: () => {},\r\n title: null,\r\n msg: null,\r\n confirm: () => {}\r\n }\r\n }\r\n }\r\n\r\n postInputMax = debounce(() => { this.write(true) }, 400)\r\n\r\n componentWillMount() {\r\n this.createForm()\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n }\r\n\r\n componentWillUnmount() {\r\n }\r\n\r\n execute = () => {\r\n const action = this.props.field.aiAssist.action\r\n if (action === 'translate') this.translate()\r\n else if (action === 'write') this.write()\r\n }\r\n\r\n createForm () {\r\n const fields = [\r\n {\r\n col: 12,\r\n name: \"summarize\",\r\n type: \"radioGroup\",\r\n value: \"\",\r\n label: \"main.summarize\",\r\n opts: {\r\n list: [\r\n {value: \"1\", label: \"main.short\"},\r\n {value: \"2\", label: \"main.moderate\"},\r\n {value: \"3\", label: \"main.extensive\"}\r\n ],\r\n inline: true\r\n },\r\n onChange: (ctx) => { if (ctx.state.summarize) this.write(true) }\r\n },\r\n {\r\n col: 12,\r\n name: \"tone\",\r\n type: \"radioGroup\",\r\n value: \"\",\r\n label: \"main.tone\",\r\n opts: {\r\n list: [\r\n {value: \"friendly\", label: \"main.friendly\"},\r\n {value: \"formal\", label: \"main.formal\"},\r\n {value: \"professional\", label: \"main.professional\"},\r\n {value: \"important\", label: \"main.important\"},\r\n {value: \"critical\", label: \"main.critical\"}\r\n ],\r\n inline: true\r\n },\r\n onChange: (ctx) => { if (ctx.state.tone) this.write(true) }\r\n },\r\n {\r\n col: 6,\r\n name: \"inputMax\",\r\n type: \"number\",\r\n value: \"\",\r\n label: \"main.maximumCharacters\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n onChange: (ctx) => { if (ctx.state.inputMax) this.postInputMax() }\r\n }\r\n ]\r\n this.setState({formFields: fields})\r\n }\r\n\r\n listenStatesForm = (s) => {\r\n this.setState({ form: s });\r\n }\r\n\r\n toogleAiModal(accept) {\r\n this.setState({aiModal: !this.state.aiModal}, () => {\r\n if (accept) this.props.ctxForm.setState({[this.props.field.name]: this.state.aiText}, () => {\r\n if (this.props.editor) {\r\n // this.editor.s.insertHTML(this.state.aiText)\r\n this.props.editor.value = this.state.aiText\r\n }\r\n })\r\n })\r\n }\r\n\r\n translate = () => {\r\n const { L, ctxForm, field, editor } = this.props\r\n ctxForm.validateFor(field.name, field.aiAssist.requiredFields).then(values => {\r\n const post = () => {\r\n let body = values\r\n body = {\r\n ...body,\r\n ...{\r\n aiAssist: {\r\n field: field.name,\r\n translate: true\r\n }\r\n }\r\n }\r\n ctxForm.props.setLoader(true)\r\n _axios\r\n .post(field.aiAssist.postUrl, body)\r\n .then(r => {\r\n ctxForm.props.setLoader(false)\r\n if (r.status >= 0) {\r\n for (const key in r.data) {\r\n if (r.data.hasOwnProperty(key) && r.data[key]) {\r\n ctxForm.setState({[key]: r.data[key]}, () => {\r\n if (field.name === key && field.type === 'editor') editor.value = r.data[key]\r\n })\r\n }\r\n }\r\n } else NotificationManager.error(r.msg, \"Opps\", 5000, null, null, 'outline')\r\n }).catch(e => {\r\n ctxForm.props.setLoader(false)\r\n })\r\n }\r\n\r\n if (ctxForm.state[field.name]) {\r\n this.setState({dialog: {\r\n isOpen: true,\r\n toggle: () => {\r\n let d = this.state.dialog\r\n d.isOpen = !d.isOpen\r\n this.setState({dialog: d})\r\n },\r\n msg: L[\"main.replaceContentSelectedTextField\"],\r\n confirm: (e) => {\r\n if (e) post()\r\n this.state.dialog.toggle()\r\n },\r\n btnOkName: \"main.accept\"\r\n }})\r\n } else post()\r\n })\r\n .catch(validationFailed => {\r\n NotificationManager.error(L[\"main.completeRequiredFieldsAssistantTranslate\"], \"Opps\", 5000, null, null, 'outline')\r\n })\r\n }\r\n\r\n write(options) {\r\n const { ctxForm, field, L } = this.props\r\n ctxForm.validateFor(field.name, field.aiAssist.requiredFields).then(values => {\r\n let body = values\r\n body = {\r\n ...body,\r\n ...{aiAssist: {\r\n summarize: this.state.form?.summarize,\r\n tone: this.state.form?.tone,\r\n inputMax: this.state.form?.inputMax,\r\n field: field.name, \r\n paragraphs: 1,\r\n commType: null,\r\n topic: null,\r\n seed: null\r\n }\r\n }\r\n }\r\n !options ? ctxForm.props.setLoader(true) : this.setState({progressBar: true})\r\n _axios\r\n .post(field.aiAssist.postUrl, body)\r\n .then(r => {\r\n !options ? ctxForm.props.setLoader(false) : this.setState({progressBar: false})\r\n if (r.status >= 0) {\r\n this.setState({ aiText: 'cambiooo'}, () => {\r\n if (!options) this.toogleAiModal()\r\n })\r\n } else {\r\n NotificationManager.error(r.msg, \"Opps\", 5000, null, null, 'outline')\r\n }\r\n }).catch(e => {\r\n !options ? ctxForm.props.setLoader(false) : this.setState({progressBar: false})\r\n })\r\n })\r\n .catch(validationFailed => {\r\n NotificationManager.error(L[\"main.completeRequiredFieldsAssistantWrite\"], \"Opps\", 5000, null, null, 'outline')\r\n })\r\n }\r\n\r\n render() {\r\n const {L} = this.props\r\n return (\r\n \r\n )\r\n }\r\n}","import React, {Component } from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { setLoader } from \"../../redux/actions\";\r\nimport {\r\n Button,\r\n ModalHeader,\r\n ModalBody\r\n} from \"reactstrap\";\r\nimport FormSmart from './FormSmart';\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport AppLocale from \"../../config/lang\";\r\nimport _axios from '../../libs/axios';\r\nimport CustomModal from './CustomModal';\r\n\r\nclass ImportTo extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n modal: false,\r\n formFields: [],\r\n formButtons: []\r\n }\r\n\r\n this.M = `${this.props.moduleName}.`\r\n }\r\n\r\n componentWillMount() {\r\n this.createForm()\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.ctxImportTo) this.props.ctxImportTo(this)\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n }\r\n\r\n componentWillUnmount() {\r\n }\r\n\r\n createForm = () => {\r\n let fields = [\r\n {\r\n col: 12,\r\n name: \"label1\",\r\n value: `${this.M}importNote`,\r\n type: \"label\",\r\n },\r\n {\r\n col: 12,\r\n name: \"btnTemplate\",\r\n type: \"button\",\r\n label: \"main.downloadExcelTemplate\",\r\n onClick: () => {\r\n window.open(`${window.tenant.url}tplmails/dwn/${this.props.templateFile}`, \"_blank\")\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"csvfile\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n rules: \"required\",\r\n placeholder: \"main.selectFile\",\r\n opts: {\r\n accept: '.csv',\r\n output: true\r\n }\r\n }\r\n ]\r\n\r\n let buttons = [\r\n {\r\n label: `${this.M}importBtn`,\r\n isMain: true,\r\n onClick: (ctx) => {\r\n ctx.validateForm().then(() => {\r\n this.props.setLoader(true)\r\n const body = {\r\n name: ctx.state.csvfile[0].name,\r\n doc: true,\r\n data: ctx.state.csvfile[0].value\r\n }\r\n\r\n _axios\r\n .post(`${this.props.moduleName}/importAttach`, body)\r\n .then(r => {\r\n if (r.status === 0) {\r\n this.toggle()\r\n this.props.ctx.getData()\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n this.props.setLoader(false)\r\n }).catch(e => {\r\n console.log(e)\r\n this.props.setLoader(false)\r\n })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n }\r\n ]\r\n\r\n this.setState({formFields: fields, formButtons: buttons})\r\n }\r\n\r\n toggle = () => {\r\n this.setState(prevState => ({\r\n modal: !prevState.modal\r\n }))\r\n }\r\n\r\n render() {\r\n const {locale} = this.props\r\n const L = AppLocale[locale].messages\r\n return (\r\n
    \r\n {!this.props.hideButton && }\r\n \r\n \r\n {L[`${this.M}importSyncMenu`]?? \"\"}\r\n \r\n {this.state.modal && }\r\n \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings }) => {\r\n const { locale } = settings\r\n return { locale }\r\n}\r\n\r\nexport default connect(mapStateToProps, { setLoader })(ImportTo)","import _axios from \"../../libs/axios\";\r\nimport moment from \"moment\"\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nexport default (context) => {\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false\r\n },\r\n\r\n actions: {\r\n create: {\r\n reloadGrid: true\r\n },\r\n edit: {\r\n reloadGrid: true\r\n },\r\n delete: true,\r\n print: false,\r\n export: true,\r\n search: true\r\n },\r\n\r\n filter: {\r\n fields: [],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => false,\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n setValuesBeforePost: (v) => {\r\n v.showGradesOnlineMsg = v.showGradesOnlineMsg?? \"\"\r\n v.showGradesPDFMsg = moment(v.showGradesFrom) > moment() ? v.showGradesPDFMsg : \"\"\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"ID\",\r\n value: null,\r\n type: \"number\",\r\n label: \"Código\",\r\n rules: 'required|numeric|min:202200,num|size:6',\r\n rulesMessages: {messages: {min: 'El :attribute debe ser un número mayor o igual a: :min', size: 'El :attribute debe de ser un número de solo :size dígitos'}},\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: () => { return context.state.idItemSelected ? false : true }\r\n },\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Nombre\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"from\",\r\n value: null,\r\n type: \"date\",\r\n label: \"main.from\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n selectsStart: true,\r\n startDate: (ctx) => ctx.state.from ? moment(ctx.state.from) : null,\r\n endDate: (ctx) => ctx.state.to ? moment(ctx.state.to) : null\r\n },\r\n },\r\n {\r\n col: 6,\r\n name: \"to\",\r\n value: null,\r\n type: \"date\",\r\n label: \"main.to\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n selectsEnd: true,\r\n startDate: (ctx) => moment(ctx.state.from),\r\n endDate: (ctx) => moment(ctx.state.to),\r\n minDate: (ctx) => moment(ctx.state.from)\r\n },\r\n renderIf: ctx => ctx.state.from\r\n },\r\n {\r\n col: 4,\r\n name: \"active\",\r\n value: true,\r\n type: \"switch\",\r\n label: \"Periodo activo\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"closed\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Periodo cerrado\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"current\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Periodo actual\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"showGradesFrom\",\r\n value: null,\r\n type: \"datetime\",\r\n label: \"Mostrar libreta a partir de:\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n isClearable: true,\r\n dateFormat: 'YYYY/MM/DD HH:mm'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"showGradesOnline\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Mostrar notas en línea\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"showGradesOnlineMsg\",\r\n value: null,\r\n type: \"textarea\",\r\n label: \"Mensaje a mostrar - notas en línea\",\r\n placeholder: \"Escribe un mensaje para que se muestre en la app móvil cuando se desactive la visualización de las notas en línea.\",\r\n maxLength: \"255\",\r\n parent: \"showGradesOnline\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => ctx.state.showGradesOnline === false\r\n },\r\n {\r\n col: 12,\r\n name: \"showGradesPDFMsg\",\r\n value: null,\r\n type: \"textarea\",\r\n label: \"Mensaje a mostrar - notas en PDF\",\r\n placeholder: \"Escribe un mensaje para que se muestre en la app móvil cuando la libreta de notas aún no este disponible para la descarga.\",\r\n maxLength: \"255\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => moment(ctx.state.showGradesFrom) > moment()\r\n },\r\n {\r\n col:6,\r\n name:\"confirmVisible\",\r\n value:false,\r\n type: \"switch\",\r\n label: \"\",\r\n renderIf:()=>false\r\n },\r\n {\r\n col: 12,\r\n name: \"confirm\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Se clonarán todos los cursos. Para confirmar la clonación escribir aquí el código del nuevo periodo\",\r\n rules: 'required|numeric|min:6|max:6',\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => ctx.state.confirmVisible\r\n },\r\n {\r\n col: 12,\r\n name: \"clone\",\r\n value: null,\r\n type: \"button\",\r\n label: \"Clonar este periodo\",\r\n opts: {\r\n kind: 'danger'\r\n },\r\n renderIf: (ctx) => { if(!ctx.state.showClone)ctx.state.showClone = ctx.state.ID?1:-1; return ctx.state.showClone===1; },\r\n onClick: (ctx) => {\r\n ctx.setState({confirmVisible:true})\r\n if(ctx.state.confirm?.length===6) {\r\n context.props.setLoader(true)\r\n _axios.post('admSubject/duplicate?newId='+ctx.state.confirm+'&periodId=' + ctx.state.ID, { })\r\n .then(r => {\r\n if(r.status===0){\r\n context.props.setLoader(false)\r\n context.edit()\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n \r\n })\r\n }\r\n }\r\n }\r\n ],\r\n detailGrid: () => {\r\n return {\r\n module: 'admSuperSection',\r\n parentIdField: 'ID',\r\n embeded: (eContext) => {\r\n return {\r\n config: {\r\n customTitle: \"Excepción a la configuración del periodo\",\r\n pageSize: 40,\r\n customPathGet: 'admPeriod/supersections',\r\n remap: (r) => {\r\n r.data.Results.map(e => e.showGradesPDF = moment(e.showGradesFrom) <= moment())\r\n return r\r\n } \r\n },\r\n \r\n actions: {\r\n create: false,\r\n edit: {\r\n reloadGrid: true\r\n },\r\n delete: false,\r\n print: false,\r\n export: false \r\n },\r\n \r\n filter: {\r\n fields: [\r\n {\r\n name: \"showGradesDefault\",\r\n value: false,\r\n type: \"hidden\"\r\n },\r\n {\r\n name: \"btnCreate\",\r\n value: null,\r\n type: \"button\",\r\n label: \"Crear excepción\",\r\n opts: {\r\n wrapperClassName: 'mb-0 d-flex justify-content-end',\r\n colClassName: \"offset-sm-9\"\r\n },\r\n onClick: (ctx) => {\r\n ctx.setState({showGradesDefault: true}, () => {\r\n eContext.actionsInColumns('simple-icon-plus')\r\n process.nextTick(() => { eContext.resetDataTable() })\r\n }) \r\n },\r\n renderIf: (ctx) => ctx.state.showGradesDefault === false || ctx.state.showGradesDefault === null\r\n },\r\n {\r\n name: \"btnCancel\",\r\n value: null,\r\n type: \"button\",\r\n label: \"\",\r\n opts: {\r\n icon: \"simple-icon-arrow-left\",\r\n wrapperClassName: 'mb-0 d-flex justify-content-end',\r\n colClassName: \"offset-sm-9\"\r\n },\r\n onClick: (ctx) => {\r\n ctx.setState({showGradesDefault: false}, () => {\r\n eContext.actionsInColumns('simple-icon-pencil')\r\n process.nextTick(() => { eContext.resetDataTable() })\r\n }) \r\n },\r\n renderIf: (ctx) => ctx.state.showGradesDefault === true\r\n }\r\n ]\r\n },\r\n \r\n form: {\r\n afterEdit: () => {\r\n let formFilter = eContext.state.formFilter\r\n formFilter.showGradesDefault = false\r\n eContext.setState({formFilter: formFilter}, () => {\r\n eContext.actionsInColumns('simple-icon-pencil')\r\n }) \r\n },\r\n remapOne: (r) => {\r\n r.data.showGradesFrom = r.data.showGradesDefault === false ? r.data.showGradesFrom : moment().format('YYYY-MM-DD HH:mm:ss')\r\n r.data.showGradesDefault = !r.data.showGradesDefault\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n v.showGradesDefault = !v.showGradesDefault\r\n v.showGradesOnlineMsg = v.showGradesOnlineMsg?? \"\"\r\n v.showGradesPDFMsg = moment(v.showGradesFrom) > moment() ? v.showGradesPDFMsg : \"\"\r\n return v\r\n },\r\n fields: [\r\n {\r\n name: \"owner\",\r\n type: \"hidden\",\r\n },\r\n {\r\n col: 6,\r\n name: \"showGradesDefault\",\r\n value: null,\r\n type: \"switch\",\r\n label: \"Hablitar excepción\",\r\n },\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"showGradesFrom\",\r\n value: null,\r\n type: \"datetime\",\r\n label: \"Mostrar libreta a partir de:\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n isClearable: true,\r\n dateFormat: 'YYYY/MM/DD HH:mm'\r\n },\r\n renderIf: ctx => ctx.state.showGradesDefault\r\n },\r\n {\r\n col: 6,\r\n name: \"showGradesOnline\",\r\n value: null,\r\n type: \"switch\",\r\n label: \"Mostar notas en linea\",\r\n renderIf: ctx => ctx.state.showGradesDefault\r\n },\r\n {\r\n col: 12,\r\n name: \"showGradesOnlineMsg\",\r\n value: null,\r\n type: \"textarea\",\r\n label: \"Mensaje a mostrar - notas en línea\",\r\n parent: \"showGradesOnline\",\r\n placeholder: \"Escribe un mensaje para que se muestre en la app móvil cuando se desactive la visualización de las notas en línea.\",\r\n maxLength: \"255\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.showGradesOnline && ctx.state.showGradesDefault\r\n },\r\n {\r\n col: 12,\r\n name: \"showGradesPDFMsg\",\r\n value: null,\r\n type: \"textarea\",\r\n label: \"Mensaje a mostrar - notas en PDF\",\r\n placeholder: \"Escribe un mensaje para que se muestre en la app móvil cuando la libreta de notas aún no este disponible para la descarga.\",\r\n maxLength: \"255\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => ctx.state.showGradesDefault && moment(ctx.state.showGradesFrom) > moment()\r\n }\r\n ] \r\n },\r\n \r\n columns: [\r\n {\r\n Header: \"Grado\",\r\n accessor: \"name\",\r\n \r\n },\r\n {\r\n Header: \"Mostar a partir de\",\r\n accessor: \"showGradesFrom\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Libreta en línea\",\r\n accessor: \"showGradesPDF\",\r\n isBool: true\r\n },\r\n {\r\n Header: \"Mensaje a mostrar - Notas en linea\",\r\n accessor: \"showGradesOnlineMsg\"\r\n },\r\n {\r\n Header: \"Mensaje a mostrar - Notas en PDF\",\r\n accessor: \"showGradesPDFMsg\"\r\n }\r\n ]\r\n }\r\n },\r\n renderIf: () => context.state.idItemSelected && context.state.form?.current\r\n }\r\n }\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"Nombre\",\r\n accessor: \"name\",\r\n },\r\n {\r\n Header: \"Desde\",\r\n accessor: \"from\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Hasta\",\r\n accessor: \"to\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Activo\",\r\n accessor: \"active\",\r\n isBool: true\r\n },\r\n {\r\n Header: \"Actual\",\r\n accessor: \"current\",\r\n isBool: true\r\n }\r\n ]\r\n }\r\n}","import _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nexport default (context) => {\r\n return {\r\n\r\n config: {\r\n pageSize: 40,\r\n customPathGet: \"admGrades/reports\",\r\n list: false,\r\n enableContexMenu: true,\r\n remap: (r, row) => {\r\n r.data.Results = r.data.Results.map(row)\r\n return r;\r\n },\r\n remapRow: (row) => {\r\n if(row.grades>0)row.grades+=' notas';\r\n else if(row.grades===0) row.grades='No';\r\n else row.grades='Sí';\r\n return row;\r\n }\r\n },\r\n\r\n actions: {\r\n create: false,\r\n edit: false,\r\n delete: false,\r\n print: false,\r\n export: false,\r\n search: true\r\n },\r\n\r\n extras:{\r\n items: [\r\n {id: 0, icon: 'simple-icon-cloud-download', name: 'Generar libretas', onClick: () => {\r\n const content = {\r\n name: \"Generar libretas\",\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grado\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"periodId\",\r\n value: context.state.formFilter.periodId,\r\n type: \"hidden\",\r\n },\r\n ],\r\n buttons: [\r\n {\r\n label: \"Descargar\",\r\n onClick: (ctx) => {\r\n ctx.validateForm().then(() => {\r\n context.props.setLoader(true)\r\n _axios\r\n .get(`admGrades/job/archive/zip?supersectionId=${ctx.state.superSectionId}&periodId=${ctx.state.periodId}`)\r\n .then(r => {\r\n if (r.status === 0) {\r\n if (r.data && r.data.url) window.open(r.data.url)\r\n context.toggleRight()\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }).catch(e => {\r\n context.props.setLoader(false)\r\n })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n }\r\n ]\r\n }\r\n\r\n context.setState({modalRightContent: content}, () => {\r\n context.toggleRight() \r\n })\r\n }}\r\n ],\r\n itemsInRowsTable: [\r\n {\r\n icon: 'simple-icon-note',\r\n name: 'Ver notas de alumno',\r\n onClick: (row, ctx) => {\r\n ctx.view.extras.itemsInRowsTable[0].form.name = 'Notas para: ' + row.name\r\n },\r\n form: {\r\n name: 'Notas de alumno',\r\n remapGET: () => {\r\n return { studentId: context.state.idItemPreSelected }\r\n },\r\n detailGrid: () => {\r\n return {\r\n module: 'admGradesDetail',\r\n parentIdField: 'studentId',\r\n embeded: (c) => {\r\n return {\r\n config: {\r\n hiddenTitle: true,\r\n pageSize: 1000,\r\n list: false,\r\n customPathGet: 'admGrades/getByStudent/' + context.state.idItemPreSelected,\r\n remap: (list,row) =>{ list.data.Results = list.data.Results.map(row); return list},\r\n remapRow: (r) => {\r\n r.grade = r.gradeNum || r.gradeTxt\r\n if (r.l) { r.l0 = '-'; r.l1 = '-' }\r\n else if (r.l0) { r.l1 = '-' }\r\n return r\r\n }\r\n },\r\n \r\n actions: {\r\n print:true,\r\n export: {local: true}\r\n },\r\n \r\n filter: {\r\n fields: [\r\n {\r\n col: 4,\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"admPeriod/get?pick=true\",\r\n isClearable: false\r\n },\r\n onChange: (ctx) => {\r\n if (context.state.formFilter.periodId && (context.state.formFilter.periodId.value === ctx.state.periodId)) return\r\n process.nextTick(() => { c.resetDataTable() })\r\n }\r\n },\r\n {\r\n name: \"levelCount\",\r\n value: 1,\r\n hidden: true\r\n }\r\n ]\r\n },\r\n \r\n columns: [\r\n { Header: \"Curso\", accessor: \"l\" },\r\n { Header: \"Concepto 1\", accessor: \"l0\" },\r\n { Header: \"Concepto 2\", accessor: \"l1\" },\r\n { Header: \"Nota\", accessor: \"grade\" }\r\n ]\r\n }\r\n }\r\n }\r\n },\r\n okMsg: 'Ok',\r\n fields: [\r\n { name: \"studentId\", value: 0, type: \"hidden\" },\r\n { name: \"levelCount\", value: 1, type: \"hidden\" }\r\n ],\r\n onSuccess: (r) => { },\r\n onError: (e) => { }\r\n }\r\n },\r\n {\r\n id: 1, icon: 'simple-icon-cloud-download', name: 'Descargar reporte',\r\n onClick: (row, ctx) => {\r\n var path = ctx.state.formFilter.reportType === 'lib' ? \r\n ('grades/pdfreport/' + ctx.state.formFilter.year + '/' + row.ID + '?periodId=' + ctx.state.formFilter.periodId) :\r\n ('grades/memo/' + ctx.state.formFilter.periodId + '/' + row.ID) \r\n context.props.setLoader(true)\r\n _axios\r\n .get(path)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n window.URL = window.URL || window.webkitURL;\r\n var xhr = new XMLHttpRequest(), a = document.createElement('a'), file;\r\n xhr.open('GET', r.data.url, true);\r\n xhr.responseType = 'blob';\r\n xhr.onload = function () {\r\n file = new Blob([xhr.response], { type : 'application/octet-stream' });\r\n a.href = window.URL.createObjectURL(file);\r\n a.download = r.data.filename; \r\n a.click();\r\n };\r\n xhr.send();\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }).catch(e => {\r\n context.props.setLoader(false)\r\n })\r\n }\r\n }\r\n ]\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"reportType\",\r\n value: \"lib\",\r\n type: \"select\",\r\n label: \"Tipo de reporte\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: \"lib\",\r\n label: \"Libretas de notas\"\r\n },\r\n {\r\n value: \"mem\",\r\n label: \"Memorandos\"\r\n }\r\n ],\r\n isClearable: false\r\n }\r\n },\r\n {\r\n name: \"year\",\r\n value: new Date().getFullYear(),\r\n type: \"select\",\r\n label: \"Año\",\r\n opts: {\r\n style: 'float-label',\r\n items: function(){\r\n var years=[];\r\n for (let i = new Date().getFullYear(); i > new Date().getFullYear()-5; i--) years.push(i);\r\n return years.map((m)=> {return {\r\n value: m,\r\n label: m\r\n }});\r\n }(),\r\n isClearable: false\r\n }\r\n },\r\n {\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n parent: \"year\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admPeriod/get?pick=true&year=\"+context.state.formFilter.year },\r\n isClearable: false\r\n }\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFilter.superSectionId }\r\n },\r\n renderIf: (ctx) => { return ctx.state.superSectionId }\r\n },\r\n ],\r\n buttons: [\r\n {\r\n label: 'Ver reportes',\r\n renderIf: (ctx) => { return ctx.state.periodId || ctx.state.superSectionId },\r\n onClick: (ctx) => {\r\n context.view.config.customPathGet = ctx.state.reportType === 'lib' ? 'admGrades/reports' : 'admGrades/notpassed';\r\n ctx.btnAction('filter') \r\n }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n fields: []\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"Código\",\r\n accessor: \"externalId\"\r\n },\r\n {\r\n Header: \"Alumno\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Grado / sección\",\r\n accessor: \"sectionTag\"\r\n },\r\n {\r\n Header: \"Notas ingresadas\",\r\n accessor: \"grades\"\r\n }\r\n ]\r\n }\r\n}","import { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport _axios from \"../../libs/axios\";\r\nimport { cloneDeep } from \"lodash\"\r\n\r\nexport default (context) => {\r\n context.refreshData = function () {\r\n _axios\r\n .get('admEvalConcept/get/?PageSize=40&isBehavior=' + this.state.formFilter.isBehavior + '&activityId=' + this.props.filterBy.activityId + '&page=1')\r\n .then(r => {\r\n if (r.status >= 0) {\r\n let data = this.sortConcept(r.data.Results)\r\n this.setState({data: data})\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n }).catch((e) => { this.props.setLoader(false) })\r\n }\r\n\r\n context.sortConcept = function (data) {\r\n data.map(e => {\r\n e.editRow = this.getDataById\r\n e.deleteRow = this.toggleDelete\r\n e.moveConcept = this.moveConcept\r\n e.levelTxt = (e.level + 1)\r\n e.hidden = !e.hidden\r\n return e\r\n })\r\n\r\n let order = []\r\n var maxLevel = Math.max.apply(Math, data.map(function(o) { return o.level; }));\r\n // ordeno el array segun level\r\n for(let i = 0; i<=maxLevel; i++) {\r\n order = order.concat(data.filter((e) => { return e.level === i }).sort((a, b) => { return a.order - b.order })) // ordeno segun order\r\n }\r\n // ordenar segun jerarquía\r\n let items = []\r\n let index = 0\r\n items = order.filter(e => e.parentId === null)\r\n if (items.length > 0) {\r\n let f = () => {\r\n if (items.length === order.length) return\r\n order.forEach((e) => {\r\n if (e.parentId === items[index].ID) items.splice(index + (items.filter(e => e.parentId === items[index].ID).length + 1), 0, e)\r\n });\r\n index++\r\n f()\r\n }\r\n f()\r\n }\r\n\r\n return items\r\n }\r\n\r\n context.moveConcept = function (item, move) {\r\n // console.log(this.state.data)\r\n const footprint = cloneDeep(this.state.data)\r\n let data = cloneDeep(this.state.data)\r\n if (move === 'up')\r\n {\r\n let index = data.findIndex(e => e.ID === item.ID)\r\n let brothers = data.filter(e => e.parentId === item.parentId)\r\n let indexAsBrother = brothers.findIndex(e => e.ID === item.ID)\r\n if (index === 0 || indexAsBrother === 0) return NotificationManager.error(\"No se puede mover '\"+item.name+\"' más arriba\", \"No se ha movido el concepto\", 3000, null, null, 'outline')\r\n\r\n else {\r\n /*\r\n const indexOfBrother = data.findIndex(e => e.ID === brothers[indexAsBrother - 1].ID)\r\n const temp1 = data[index].order\r\n const temp2 = data[indexOfBrother].order\r\n data[indexOfBrother].order = temp1\r\n */\r\n data[index].order = -1000\r\n // console.log(data[index].order)\r\n }\r\n }\r\n if (move === 'down')\r\n {\r\n let index = data.findIndex(e => e.ID === item.ID)\r\n let brothers = data.filter(e => e.parentId === item.parentId)\r\n let indexAsBrother = brothers.findIndex(e => e.ID === item.ID)\r\n if (((indexAsBrother + 1) === brothers.length)) return NotificationManager.error(\"No se puede mover '\"+item.name+\"' más abajo\", \"No se ha movido el concepto\", 3000, null, null, 'outline')\r\n else {\r\n /*\r\n const indexOfBrother = data.findIndex(e => e.ID === brothers[indexAsBrother + 1].ID)\r\n const temp1 = data[index].order\r\n const temp2 = data[indexOfBrother].order\r\n data[indexOfBrother].order = temp1\r\n */\r\n data[index].order = 1000\r\n // console.log(data[index].order)\r\n }\r\n }\r\n if (move === 'left')\r\n {\r\n // get new parent or make parent\r\n let brothers = data.filter(e => e.parentId === item.parentId)\r\n // console.log(brothers)\r\n if (item.level === 0 || brothers[brothers.length - 1].ID !== item.ID) return NotificationManager.error(\"No se puede mover '\"+item.name+\"' a la izquierda, mueva primero los últimos de cada nivel\", \"No se ha movido el concepto\", 3000, null, null, 'outline')\r\n data[data.findIndex(e => e.ID === item.ID)].parentId = item.level === 1 ? null : data[data.findIndex(e => e.ID === brothers[0].ID) - 1].parentId\r\n\r\n // change level\r\n let start = data.findIndex(e => e.ID === item.ID)\r\n let stop = data.findIndex((e, index1) => index1 > start && e.level <= item.level)\r\n stop = stop === -1 ? data.length : stop - 1\r\n\r\n // console.log(start, stop)\r\n data.forEach((e, index) => {\r\n if(index >= start && index <= stop) e.level = e.level - 1\r\n });\r\n }\r\n else if (move === 'right')\r\n {\r\n // get new parent\r\n let levels = data.filter(e => e.level === item.level)\r\n let index = levels.findIndex(e => e.ID === item.ID)\r\n let indexGroup = levels.filter(e => e.parentId === item.parentId).findIndex(e => e.ID === item.ID)\r\n if (index <= 0 || indexGroup <= 0) return NotificationManager.error(\"No se puede mover '\"+item.name+\"' más a la derecha\", \"No se ha movido el concepto\", 3000, null, null, 'outline')\r\n else data[data.findIndex(e => e.ID === item.ID)].parentId = levels[index - 1].ID\r\n\r\n // change level\r\n let start = data.findIndex(e => e.ID === item.ID)\r\n let stop = data.findIndex((e, index1) => index1 > start && e.level <= item.level)\r\n stop = stop === -1 ? data.length : stop - 1\r\n\r\n // console.log(start, stop)\r\n data.forEach((e, index) => {\r\n if(index >= start && index <= stop) e.level = e.level + 1\r\n });\r\n }\r\n \r\n let order = []\r\n var maxLevel = Math.max.apply(Math, data.map(function(o) { return o.level; }));\r\n // ordeno el array segun level\r\n for(let i = 0; i<=maxLevel; i++) {\r\n order = order.concat(data.filter((e) => { return e.level === i }).sort((a, b) => { return a.order - b.order })) // ordeno segun order\r\n }\r\n // console.log(order)\r\n // ordenar segun jerarquía\r\n let res = []\r\n let index = 0\r\n res = order.filter(e => e.parentId === null)\r\n if (res.length > 0) {\r\n let f = () => {\r\n if (res.length === order.length) return\r\n order.forEach((e) => {\r\n if (e.parentId === res[index].ID) res.splice(index + (res.filter(e => e.parentId === res[index].ID).length + 1), 0, e)\r\n });\r\n index++\r\n f()\r\n }\r\n f()\r\n }\r\n \r\n res.map(e => e.levelTxt = (e.level+1))\r\n\r\n /*\r\n this.setState({data: r}, () => {\r\n this.props.setLoader(true)\r\n // console.log(this.state.data)\r\n const temp = cloneDeep(this.state.data)\r\n const save = (i) => {\r\n if (i > (temp.length - 1)) {\r\n this.props.setLoader(false)\r\n return\r\n }\r\n const item = temp[i]\r\n delete item.moveConcept\r\n delete item.toggle\r\n delete item.toggleDelete\r\n delete item.name\r\n delete item.abrev\r\n item.grid = true\r\n // item.level = 0\r\n // item.order = 0\r\n // item.parentId = null\r\n _axios\r\n .post('admEvalConcept/edit/' + item.ID, item)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n i = i + 1\r\n save(i)\r\n } else NotificationManager.error(r.msg, \"Error\", 5000, null, null, 'outline')\r\n }).catch((e) => { this.props.setLoader(false) })\r\n }\r\n save(0)\r\n })\r\n */\r\n\r\n this.props.setLoader(true)\r\n let temp = cloneDeep(res)\r\n temp = temp.filter(f => footprint.some(s=> s.ID === f.ID && (f.level!==s.level || f.order!==s.order || f.parentId!==s.parentId)))\r\n\r\n const save = (i) => {\r\n if (i > (temp.length - 1)) {\r\n this.props.setLoader(false)\r\n this.refreshData()\r\n return\r\n }\r\n const item = temp[i]\r\n delete item.moveConcept\r\n delete item.toggle\r\n delete item.toggleDelete\r\n delete item.name\r\n delete item.abrev\r\n item.hidden = !item.hidden\r\n item.grid = true\r\n if (move === 'up') item.order = -1\r\n if (move === 'down') item.order = 1\r\n if (['left', 'right'].indexOf(move) > -1) delete item.order\r\n \r\n \r\n _axios\r\n .post('admEvalConcept/edit/' + item.ID, item)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n /*\r\n let d = cloneDeep(res)\r\n d.map((e) => {\r\n if (e.ID === item.ID) e = item\r\n return e\r\n })\r\n this.setState({data: d})\r\n */\r\n i = i + 1\r\n save(i)\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n }).catch((e) => { this.props.setLoader(false) })\r\n }\r\n save(0)\r\n }\r\n\r\n return {\r\n config: {\r\n hiddenTitle: true,\r\n pageSize: 100,\r\n list: false,\r\n getDataSuccess: (data) => {\r\n let r = context.sortConcept(data)\r\n return r\r\n }\r\n },\r\n\r\n actions: {\r\n create: context.props.userAdmin.role === '100' ? {\r\n reloadGrid: true\r\n } : false,\r\n edit: {\r\n reloadGrid: true\r\n },\r\n delete: true,\r\n print: {\r\n local: true\r\n },\r\n export: {\r\n local: true\r\n }\r\n },\r\n\r\n extras: {\r\n maxActions: 0,\r\n itemsInRowsTable: (() => {\r\n let items = [\r\n {\r\n icon: 'simple-icon-plus', name: 'Agregar Nivel', onClick: (rowData, ctx) => {\r\n context.state.formFields.map((e) => {\r\n if (e.name === 'parentId') e.value = { value: rowData.ID, label: rowData.name }\r\n if (e.name === 'level') e.value = rowData.level + 1\r\n return e\r\n })\r\n context.toggle()\r\n setTimeout(() => { context.view.actions.create = {reloadGrid: true} }, 500)\r\n }\r\n },\r\n {\r\n icon: 'simple-icon-arrow-up-circle', name: 'Mover arriba', onClick: (rowData, ctx) => {\r\n ctx.moveConcept(rowData, 'up')\r\n }\r\n },\r\n {\r\n icon: 'simple-icon-arrow-down-circle', name: 'Mover abajo', onClick: (rowData, ctx) => {\r\n ctx.moveConcept(rowData, 'down')\r\n }\r\n },\r\n {\r\n icon: 'simple-icon-arrow-right-circle', name: 'Mover derecha', onClick: (rowData, ctx) => {\r\n ctx.moveConcept(rowData, 'right')\r\n }\r\n },\r\n {\r\n icon: 'simple-icon-arrow-left-circle', name: 'Mover izquierda', onClick: (rowData, ctx) => {\r\n ctx.moveConcept(rowData, 'left')\r\n }\r\n }\r\n ]\r\n return items\r\n })()\r\n },\r\n\r\n filter:{\r\n fields: [\r\n {\r\n name: \"isBehavior\",\r\n value: false,\r\n type: \"select\",\r\n label: \"Tipo\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: false,\r\n label: \"Notas\"\r\n },\r\n {\r\n value: true,\r\n label: \"Conducta\"\r\n }\r\n ],\r\n isClearable: false\r\n },\r\n onChange: (ctx) => {\r\n if (ctx.state.isBehavior === context.state.formFilter.isBehavior) return\r\n process.nextTick(() => { context.resetDataTable() })\r\n }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.type = r.data.type + ''\r\n if (r.data.parentId) r.data.parentId = { value: r.data.parentId, label: r.data.parentName }\r\n // Set weightType based on weight value\r\n r.data.weightType = r.data.weight === 0 ? \"none\" : r.data.weight === -1 ? \"auto\" : \"manual\"\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n v.order = 0\r\n // Set weight to -1 if weightType is auto\r\n if (v.weightType === \"auto\") v.weight = -1\r\n else if (v.weightType === \"none\") v.weight = 0\r\n \r\n // create\r\n if (!context.state.idItemSelected) {\r\n v.weight = v.weightType === \"auto\" ? -1 : 0\r\n v.activityId = context.props.filterBy.activityId\r\n v.ID = 0\r\n v.type = v.type || 0\r\n }\r\n\r\n if (v.parentId && v.parentId.value) v.parentId=v.parentId.value\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"specialType\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Tipo:\",\r\n opts: {\r\n style: 'float-label',\r\n itemsF: () => {\r\n const r = context.state.formFilter.isBehavior ? \r\n [\r\n {\r\n value: \"3\",\r\n label: \"Conducta\"\r\n },\r\n {\r\n value: \"4\",\r\n label: \"Conducta Descriptiva\"\r\n }\r\n ]\r\n :\r\n [\r\n {\r\n value: \"\",\r\n label: \"Nota\"\r\n },\r\n {\r\n value: \"2\",\r\n label: \"Nota Descriptiva\"\r\n },\r\n {\r\n value: \"5\",\r\n label: \"Concepto > Unidad > Evaluación\"\r\n }\r\n ]\r\n return r\r\n },\r\n isClearable: false\r\n },\r\n renderIf: (ctx) => !context.state.idItemSelected && ([0, \"0\"].indexOf(ctx.state.level) > -1)\r\n },\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Concepto\",\r\n hint:\"Nombre del concepto\",\r\n rules: 'required|max:400',\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"parentId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Concepto padre\",\r\n parent: \"specialType\",\r\n opts: {\r\n style: 'float-label',\r\n path: (ctx) => { return \"/admEvalConcept/get?pick=true&activityId=\" + context.props.filterBy.activityId + \"&isBehavior=\" + ([3, \"3\"].indexOf(ctx.state.specialType) > -1 ? \"true\" : \"false\") },\r\n \r\n },\r\n renderIf: (ctx) => !context.state.idItemSelected,\r\n disabled: context.props.userAdmin.role !== '100'\r\n },\r\n {\r\n name: \"level\",\r\n value: \"0\",\r\n type: \"hidden\",\r\n },\r\n {\r\n name: \"order\",\r\n value: \"\",\r\n type: \"hidden\",\r\n },\r\n {\r\n col: 4,\r\n name: \"abrev\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Abreviación\",\r\n rules: 'required|min:2|max:5',\r\n opts: {\r\n style: 'float-label',\r\n },\r\n },\r\n {\r\n name: \"type\",\r\n value: \"\",\r\n type: \"hidden\", //\"select\",\r\n label: \"Tipo de evaluación\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: \"0\", label: \"Cuantitativa\"},\r\n {value: \"1\", label: \"Cualitativa\"}\r\n ],\r\n isClearable: false\r\n }\r\n }, \r\n {\r\n col: 5,\r\n name: \"weightType\",\r\n value: \"auto\",\r\n type: \"select\", \r\n label: \"Tipo de ponderación\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: \"auto\", label: \"% automático\"},\r\n {value: \"manual\", label: \"% manual\"}, \r\n {value: \"none\", label: \"Ninguna\"}\r\n ],\r\n isClearable: false\r\n },\r\n renderIf: () => context.props.userAdmin.role === '100' \r\n },\r\n {\r\n col: 3,\r\n name: \"weight\",\r\n value: \"100\",\r\n type: \"number\",\r\n label: \"Ponderación (% del 1 al 100)\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => ctx.state.weightType === \"manual\" && context.props.userAdmin.role === '100'\r\n },\r\n {\r\n col: 12,\r\n name: \"separator1\", \r\n type: \"separator\"\r\n },\r\n {\r\n col: 12,\r\n name: \"qualifications\",\r\n value: \"AD,A,B,C\",\r\n type: \"hidden\", //\"text\",\r\n label: \"Opciones de calificación cualitativa\",\r\n hint: \"Ingresar los caracteres cualitativos en orden de valor mayor a menor, separarlos por comas\",\r\n opts: {\r\n style: 'float-label' \r\n },\r\n renderIf: (ctx)=> ctx.state.type === \"1\"\r\n },\r\n {\r\n name: \"locked\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Promedia según subconceptos\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => context.props.userAdmin.role === '100'\r\n },\r\n {\r\n col: 6,\r\n name: \"canEdit\",\r\n value: true,\r\n type: \"switch\",\r\n label: \"Permitir editar a profesores del curso/sección\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx)=> context.props.userAdmin.role === '100' && ([0, \"0\"].indexOf(ctx.state.level) > -1)\r\n },\r\n {\r\n col: 6,\r\n name: \"hidden\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Ocultar en libreta\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: () => context.props.userAdmin.role === '100' \r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"Nivel\",\r\n accessor: \"levelTxt\",\r\n type: 'text',\r\n maxWidth: 50,\r\n },\r\n {\r\n Header: \"Concepto\",\r\n accessor: \"name\",\r\n type: 'concept',\r\n maxWidth: 380\r\n },\r\n {\r\n Header: \"Abrev\",\r\n accessor: \"abrev\",\r\n type: 'text',\r\n maxWidth: 60\r\n },\r\n {\r\n Header: \"Visible\",\r\n accessor: \"hidden\",\r\n isBool: true,\r\n maxWidth: 60\r\n }\r\n ]\r\n }\r\n}","import _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport moment from \"moment\";\r\nexport default (context) => {\r\n return {\r\n config: {\r\n resource: \"admTracking\",\r\n pageSize: 40,\r\n list: false,\r\n remap: (r) => {\r\n r.data.Results.map(d => d.notifOn = d.notifOn ? \"Sí\" : null)\r\n return r\r\n },\r\n remapRow: (form, data, action) => {\r\n if (data) form.status = data.status\r\n form.grado = form.sectionName.label\r\n form.user = form.userId.label\r\n form.dateFrom = moment(form.dateFrom).format('YYYY-MM-DD HH:mm')\r\n form.masterName = action === \"create\" && context.props.userAdmin.role === '5' ? (context.props.userAdmin.name + ' ' + context.props.userAdmin.last) : form.masterId.label\r\n form.notifOn = form.notify ? \"Sí\" : form.notifOn ? \"Sí\" : null\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"type\",\r\n value: \"behavior\",\r\n type: \"hidden\",\r\n },\r\n {\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFilter.superSectionId }\r\n }\r\n },\r\n {\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n rules: 'required',\r\n parent: \"sectionId\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStudent/get?pick=true§ionId=\" + context.state.formFilter.sectionId }\r\n }\r\n },\r\n {\r\n type: \"daterange\"\r\n },\r\n {\r\n name: \"status\",\r\n value: -1,\r\n type: \"select\",\r\n label: \"Estado\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: -1,\r\n label: \"[Todos]\"\r\n },\r\n {\r\n value: 0,\r\n label: \"Iniciado\"\r\n },\r\n {\r\n value: 1,\r\n label: \"En proceso\"\r\n },\r\n {\r\n value: 2,\r\n label: \"Terminado\"\r\n },\r\n ]\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return ctx.state.periodId || ctx.state.superSectionId || ctx.state.userId || ctx.state.from || ctx.state.to },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n detailGrid: () => {\r\n return context.state.idItemSelected ?\r\n {\r\n module: 'admBookingList', \r\n filterBy: (ctx) => { return { userId: ctx.state.userId, IN: ctx.state.bookings ? JSON.stringify(ctx.state.bookings) : \"[]\" } },\r\n embeded: (c) => {\r\n process.nextTick(() => { c.setState({ dataTableList: true }) })\r\n return {\r\n config: {\r\n resource: \"admBooking\", \r\n pageSize: 20\r\n },\r\n actions: {\r\n create: false,\r\n edit: true,\r\n delete: false,\r\n search: false,\r\n print: false,\r\n export: false\r\n },\r\n form: {\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"userName\",\r\n type: \"text\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"resourceName\",\r\n type: \"text\",\r\n label: \"Profesor\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"dtDate\",\r\n type: \"date\",\r\n label: \"Fecha\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"status\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"Estado\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: 0,\r\n label: \"Separada\"\r\n },\r\n {\r\n value: 1,\r\n label: \"Confirmada\"\r\n },\r\n {\r\n value: 2,\r\n label: \"Completada\"\r\n },\r\n ]\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 12,\r\n name: \"notes\",\r\n type: \"textarea\",\r\n label: \"Anotaciones / Comentarios\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"notesCompleted\",\r\n type: \"textarea\",\r\n label: \"Informe\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n }\r\n ]\r\n },\r\n columns: [ \r\n {\r\n Header: \"Fecha\",\r\n accessor: \"dtDate\",\r\n isDate: true,\r\n classList:'w-50'\r\n },\r\n {\r\n Header: \"Profesor\",\r\n accessor: \"resourceName\",\r\n classList:'w-50'\r\n },\r\n {\r\n Header: \"Asunto\",\r\n accessor: \"notes\",\r\n classList:'w-100'\r\n },\r\n {\r\n Header: \"Informe\",\r\n accessor: \"notesCompleted\",\r\n classList:'w-100'\r\n }\r\n ]\r\n }\r\n }\r\n } : null\r\n },\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.periodId = { value: r.data.periodId, label: r.data.periodName }\r\n r.data.gradeName = { value: r.data.gradeName, label: r.data.gradeName }\r\n r.data.sectionName = { value: r.data.sectionName, label: r.data.sectionName }\r\n r.data.userId = { value: r.data.userId, label: r.data.userName }\r\n r.data.masterId = { value: r.data.masterId, label: r.data.masterName }\r\n r.data.labelNotifOn = `
    ${r.data.notifOn ? \"Notificado: Sí\" : \"Notificado: No\"}
    ` \r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n v.values1.map(e => {\r\n e.selected = true\r\n e.ID = e.value\r\n e.name = e.label\r\n delete e.desc\r\n delete e.id\r\n delete e.img\r\n delete e.value\r\n delete e.label\r\n return e\r\n })\r\n\r\n v.sectionName = v.sectionName.value\r\n v.userId = v.userId.value\r\n v.masterId = context.state.idItemSelected ? v.masterId.value : (context.props.userAdmin.role === '5' ? context.props.userAdmin.ID : v.masterId.value)\r\n\r\n delete v.flags\r\n delete v.btn1\r\n delete v.notifOn\r\n return v\r\n },\r\n fields: [\r\n {\r\n name: \"type\",\r\n value: \"behavior\",\r\n type: \"hidden\",\r\n },\r\n {\r\n name: \"status\",\r\n value: 0,\r\n type: \"hidden\",\r\n },\r\n {\r\n col: 4,\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 4,\r\n name: \"gradeName\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Grado\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 4,\r\n name: \"sectionName\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n rules: 'required',\r\n parent: 'gradeName',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.form.gradeName },\r\n setOutput: v => v,\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 6,\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n rules: 'required',\r\n parent: 'sectionName',\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStudent/get?pick=true\" + (context.state.form.sectionName ? \"§ionId=\" + context.state.form.sectionName.value : \"\") },\r\n setOutput: v => v,\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 6,\r\n name: \"masterId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Profesor\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStaff/get?pick=true\" },\r\n setOutput: v => v,\r\n },\r\n renderIf: () => { return context.props.userAdmin.role !== '5' }\r\n },\r\n {\r\n col: 6,\r\n name: \"dateFrom\",\r\n value: \"\",\r\n type: \"date\",\r\n label: \"Fecha\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"values1\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Valor relacionado\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n isMulti: true,\r\n path: () => { return \"general/getlist/trackingValues1\" },\r\n remap: (r) => {\r\n return {\r\n data: {\r\n Results: r.data.map(e => {\r\n e.ID = e.id\r\n return e\r\n })\r\n },\r\n msg: r.msg,\r\n status: r.status\r\n }\r\n },\r\n setOutput: v => v\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-1\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Descripción de la situación\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note1\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Descripción de la situación\",\r\n rules: \"required\"\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-2\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Testimonio del estudiante\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note2\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Testimonio del estudiante\",\r\n rules: \"required\"\r\n }\r\n ]\r\n },\r\n {\r\n col: 4,\r\n name: \"negative\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Tipo\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {label: 'Felicitación', value: false},\r\n {label: 'Oportunidad de Mejora', value: true}\r\n ]\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"readOn\",\r\n value: \"\",\r\n type: \"date\",\r\n label: \"Visto por padre(s)\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: () => true,\r\n renderIf: () => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 4,\r\n name: \"online\",\r\n value: false,\r\n type: \"select\",\r\n label: \"Tipo de informe\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {label: 'Presencial', value: false}\r\n /* {label: 'Virtual', value: true} */\r\n ]\r\n },\r\n disabled: () => context.state.idItemSelected ? true : false,\r\n },\r\n {\r\n col: 4,\r\n name: \"notify\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Notificar al padre de familia\",\r\n renderIf: () => ['20', '100'].indexOf(context.props.userAdmin.role) > -1 // Solo mostrar si el usuario tiene tiene rol de \"Coordinador de nivel\" o \"admin\"\r\n },\r\n {\r\n name: \"notifOn\",\r\n value: null,\r\n type: \"hidden\",\r\n },\r\n {\r\n col: 4,\r\n name: \"labelNotifOn\",\r\n value: \"\",\r\n type: \"label\"\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-3\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Entrevista con el tutor\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note3\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Entrevista con el tutor\"\r\n }\r\n ],\r\n renderIf: (ctx) => { return ctx.state.online === false }\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-4\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Entrevista con el coordinador de nivel\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note4\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Entrevista con el coordinador de nivel\"\r\n }\r\n ],\r\n renderIf: (ctx) => { return ctx.state.online === false }\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-5\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Entrevista con el padre de familia\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note5\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Entrevista con el padre de familia\"\r\n }\r\n ],\r\n renderIf: (ctx) => { return ctx.state.online === false }\r\n },\r\n {\r\n col: 12,\r\n name: \"colEmpty1\",\r\n type: \"separator\"\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file1\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 1\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file2\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 2\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file3\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 3\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"bookings\",\r\n value: null,\r\n type: \"hidden\",\r\n label: \"\"\r\n },\r\n {\r\n col: 12,\r\n name: \"userName\",\r\n value: \"\",\r\n type: \"hidden\",\r\n label: \"\"\r\n },\r\n {\r\n col: 12,\r\n label: \"Descargar PDF\",\r\n name: \"downloadPDF\",\r\n value: \"\",\r\n type: \"button\",\r\n onClick: () => {\r\n context.props.setLoader(true)\r\n _axios\r\n .get('admTracking/pdf/' + context.state.idItemSelected)\r\n .then(r => {\r\n if (r.status === 0) {\r\n window.URL = window.URL || window.webkitURL;\r\n var xhr = new XMLHttpRequest(), a = document.createElement('a'), file;\r\n xhr.open('GET', r.data.url, true);\r\n xhr.responseType = 'blob';\r\n xhr.onload = function () {\r\n file = new Blob([xhr.response], { type : 'application/octet-stream' });\r\n a.href = window.URL.createObjectURL(file);\r\n a.download = r.data.filename; \r\n a.click();\r\n };\r\n xhr.send();\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }).catch(e => {\r\n context.props.setLoader(false)\r\n })\r\n },\r\n renderIf: () => { return context.state.idItemSelected }\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"Estado\",\r\n accessor: \"status\",\r\n type: 'chip',\r\n chips: {\r\n '0': {text:'INICIADO',color:'red'},\r\n '1': {text:'EN PROCESO',color:'orange'},\r\n '2': {text:'FINALIZADO',color:'green'}\r\n }\r\n },\r\n {\r\n Header: \"Alumno\",\r\n accessor: \"user\"\r\n },\r\n {\r\n Header: \"Grado\",\r\n accessor: \"grado\"\r\n },\r\n {\r\n Header: \"Fecha\",\r\n accessor: \"dateFrom\",\r\n isDate: true,\r\n format: \"YYYY-MM-DD\"\r\n },\r\n {\r\n Header: \"Profesor\",\r\n accessor: \"masterName\"\r\n },\r\n {\r\n Header: \"Visto\",\r\n accessor: \"readOn\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Notificado PPFF\",\r\n accessor: \"notifOn\"\r\n }\r\n ]\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","export default (context) => {\r\n return {\r\n \r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form) => {\r\n return form\r\n }\r\n },\r\n \r\n actions: {\r\n create: {\r\n reloadGrid: true\r\n },\r\n edit: {\r\n reloadGrid: true\r\n },\r\n delete: true,\r\n print: false,\r\n export: false,\r\n search: true\r\n },\r\n \r\n filter: {\r\n fields: [\r\n {\r\n name: \"type\",\r\n value: { value: \"none\", label: \"[Seleccionar]\" },\r\n type: \"select\",\r\n label: \"Tipo\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admOtlt/types\",\r\n remap: (r) => {\r\n if (r.data.Results) r.data.Results = r.data.Results.map(e => e = { ID: e, name: e })\r\n return r\r\n },\r\n isClearable: false\r\n },\r\n onChange: (ctx) => {\r\n if (context.state.formFilter.type && (context.state.formFilter.type.value === ctx.state.type)) return\r\n process.nextTick(() => { context.resetDataTable() })\r\n }\r\n },\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.type = {value: r.data.type, label: r.data.type }\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Tipo\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admOtlt/types\",\r\n remap: (r) => {\r\n if (r.data.Results) r.data.Results = r.data.Results.map(e => e = { ID: e, name: e })\r\n return r\r\n }\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"value\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Valor\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"label\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Etiqueta\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"createdDate\",\r\n value: null,\r\n type: \"datetime\",\r\n label: `Fecha creación`,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true,\r\n renderIf: (ctx) => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 6,\r\n name: \"createdByName\",\r\n value: null,\r\n type: \"text\",\r\n label: `Creado por`,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true,\r\n renderIf: (ctx) => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 6,\r\n name: \"updatedDate\",\r\n value: null,\r\n type: \"datetime\",\r\n label: \"Fecha modificación\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true,\r\n renderIf: (ctx) => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 6,\r\n name: \"updatedByName\",\r\n value: null,\r\n type: \"text\",\r\n label: `Modficado por`,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true,\r\n renderIf: (ctx) => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 12,\r\n name: \"inactive\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"main.inactive\"\r\n }\r\n ]\r\n },\r\n \r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\",\r\n width: 50\r\n },\r\n {\r\n Header: \"Valor\",\r\n accessor: \"value\"\r\n },\r\n {\r\n Header: \"Etiqueta\",\r\n accessor: \"label\"\r\n },\r\n {\r\n Header: \"Estado\",\r\n accessor: \"inactive\",\r\n type: 'chip',\r\n chips: {\r\n false: {text:'',color:'lightgreen'},\r\n true: {text:'',color:'orange'}\r\n }\r\n },\r\n {\r\n Header: \"Fecha creación\",\r\n accessor: \"createdDate\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Fecha modificación\",\r\n accessor: \"updatedDate\",\r\n isDate: true\r\n }\r\n ]\r\n }\r\n }","import _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport { cloneDeep } from \"lodash\"\r\n\r\nexport default (context) => {\r\n\r\n context.saveGrade = function (item) {\r\n this.props.setLoader(true);\r\n // console.log(this.state.form)\r\n let body = {\r\n grades: [\r\n {\r\n averaged: \"0\",\r\n conceptId: item.conceptId,\r\n gradeTxt: this.state.form[item.concept].toUpperCase(),\r\n studentId: this.state.idItemSelected,\r\n }\r\n ]\r\n }\r\n // console.log(body)\r\n _axios\r\n .post('admGrades/master', body)\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r && r.msg) NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n }).catch((e) => {\r\n console.log(e)\r\n this.props.setLoader(false)\r\n })\r\n }\r\n\r\n context.openSubGrid = function (ctx) {\r\n context.props.setLoader(true);\r\n _axios\r\n .get(\"/admGrades/getByStudent/\" + context.state.idItemSelected + \"?periodId=0&isBehavior=true&periodId=\" + this.state.formFilter.periodId)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n // console.log(this.view.form.subforms[0].fields)\r\n if (r.data && r.data.Results) {\r\n this.all = null\r\n const qualifications = r.data.Results[0].qualifications\r\n const qualificationsList = qualifications.split(',').map(e => e = {value: e, label: e})\r\n\r\n r.data.Results.forEach(e => {\r\n this[\"grade_\" + e.conceptId] = e.gradeTxt\r\n })\r\n let updateAverage = (ctxForm) => {\r\n _axios\r\n .get('admGrades/group?studentId=' + this.state.idItemSelected + '&isBehavior=true')\r\n .then(r => {\r\n if (r && r.status >= 0) {\r\n ctxForm.setState({average: r.data.find(e => e.concept === 'CPROM').gradeTxt})\r\n }\r\n }).catch((e) => {\r\n console.log(e)\r\n })\r\n }\r\n\r\n let temp = []\r\n temp.push(\r\n {\r\n col: 12,\r\n name: \"Actualizar\",\r\n value: \"Actualizar todas las notas\",\r\n type: \"label\"\r\n },\r\n {\r\n col: 6,\r\n name: \"all\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Nota\",\r\n opts: {\r\n style: 'float-label',\r\n items: qualificationsList\r\n },\r\n onChange: (ctx) => {\r\n ctx.setState({btnSaveAll: this['all'] !== ctx.state['all']})\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"btnSaveAll\",\r\n type: \"button\",\r\n label: \"Guardar\",\r\n onClick: (ctx) => {\r\n context.props.setLoader(true);\r\n let body = {\r\n grades: []\r\n }\r\n // console.log(ctx)\r\n ctx.props.fields.forEach(e => {\r\n if (e.name.indexOf(\"grade\") > -1) {\r\n ctx.setState({[e.name]: ctx.state.all})\r\n context[e.name] = ctx.state.all\r\n body.grades.push(\r\n {\r\n averaged: \"0\",\r\n conceptId: e.name.split('_')[1],\r\n gradeTxt: ctx.state.all,\r\n studentId: context.state.idItemSelected\r\n }\r\n )\r\n }\r\n })\r\n _axios\r\n .post('admGrades/master', body)\r\n .then(r => {\r\n context.props.setLoader(false)\r\n if (r && r.status >= 0) {\r\n ctx.setState({btnSaveAll: false})\r\n context.all = ctx.state.all\r\n updateAverage(ctx)\r\n }\r\n if (r && r.msg) NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n }).catch((e) => {\r\n context.props.setLoader(false);\r\n })\r\n },\r\n classNameF: (ctx) => {\r\n return ctx.state.btnSaveAll && ctx.state.all ? '' : 'd-none'\r\n },\r\n },\r\n {\r\n col: 12,\r\n name: \"hr\",\r\n value: \"
    \",\r\n type: \"label\"\r\n },\r\n {\r\n col: 6,\r\n name: \"average\",\r\n value: ctx.state.CPROM,\r\n type: \"text\",\r\n label: \"Consejo de Promoción\",\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"space\",\r\n value: \"\",\r\n type: \"label\"\r\n }\r\n )\r\n\r\n r.data.Results.forEach((e, i) => {\r\n // console.log(e.gradeTxt, e.l0)\r\n if (e.l0) {\r\n temp.push(\r\n /*\r\n {\r\n col: 6,\r\n name: \"grade_\" + e.conceptId,\r\n value: e.gradeTxt,\r\n type: \"text\",\r\n label: e.l0,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n maxLength: \"2\"\r\n },\r\n */\r\n {\r\n col: 6,\r\n name: \"grade_\" + e.conceptId,\r\n value: e.gradeTxt,\r\n type: \"select\",\r\n label: e.l0,\r\n opts: {\r\n style: 'float-label',\r\n items: qualificationsList\r\n },\r\n onChange: (ctx) => {\r\n ctx.setState({['btn_' + e.conceptId]: this['grade_' + e.conceptId] !== ctx.state['grade_' + e.conceptId]})\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"btn_\" + e.conceptId,\r\n type: \"button\",\r\n label: \"Modificar\",\r\n value: false,\r\n onClick: (ctx) => {\r\n context.props.setLoader(true);\r\n const body = {\r\n grades: [\r\n {\r\n averaged: \"0\",\r\n conceptId: e.conceptId,\r\n gradeTxt: ctx.state[\"grade_\" + e.conceptId],\r\n studentId: context.state.idItemSelected\r\n }\r\n ]\r\n }\r\n _axios\r\n .post('admGrades/master', body)\r\n .then(r => {\r\n context.props.setLoader(false);\r\n if (r && r.status >= 0) {\r\n ctx.setState({['btn_' + e.conceptId]: false})\r\n context[\"grade_\" + e.conceptId] = ctx.state['grade_' + e.conceptId]\r\n updateAverage(ctx)\r\n }\r\n if (r && r.msg) NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n }).catch((e) => {\r\n context.props.setLoader(false);\r\n })\r\n },\r\n classNameF: (ctx) => {\r\n return ctx.state['btn_' + e.conceptId] && ctx.state[\"grade_\" + e.conceptId] ? '' : 'd-none'\r\n },\r\n }\r\n )\r\n }\r\n });\r\n\r\n this.view.form.subforms[0].fields = temp\r\n this.view.form.subforms[0].listenToogleSubform = (open) => {\r\n if (!open) this.getGrades(true)\r\n }\r\n // console.log(temp)\r\n // process.nextTick(() => { ctx.setState({ formFields: temp }) })\r\n }\r\n\r\n ctx.toogleSubForm(0)\r\n } else NotificationManager.error(r.msg, \"Error\", 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }).catch((e) => {\r\n context.props.setLoader(false);\r\n console.log(e)\r\n })\r\n }\r\n\r\n context.getGrades = function (update) {\r\n _axios\r\n .get('admGrades/group?studentId=' + this.state.idItemSelected + '&isBehavior=true&periodId=' + this.state.formFilter.periodId)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n const temp = cloneDeep(this.state.formFields)\r\n r.data.map(e => e.gradeTxt = e.gradeTxt ? e.gradeTxt.toUpperCase() : \"\")\r\n\r\n if (update) {\r\n temp.map((f) => {\r\n if (f.type === 'text') {\r\n let item = r.data.find(e => e.concept === f.name)\r\n if (item) f.value = item.gradeTxt\r\n }\r\n return f\r\n })\r\n } else {\r\n temp.push(\r\n {\r\n col: 12,\r\n type: \"label\",\r\n name: \"Conducta\",\r\n value: r.data.length === 0 ? \"No hay notas de conducta ingresadas\" : \"

    Comportamiento

    \"\r\n }\r\n )\r\n r.data.forEach(e => {\r\n temp.push(\r\n {\r\n col: 4,\r\n name: e.concept,\r\n label: e.concept === \"CPROM\" ? \"CONSEJO DE PROMOCION\" : e.name,\r\n type: \"text\",\r\n value: e.gradeTxt,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n onChange: (ctx) => {\r\n ctx.setState({['btn_' + e.concept]: true})\r\n },\r\n maxLength: \"2\",\r\n disabled: [\"CONDF\", \"TUTR\"].indexOf(e.concept) > -1 ? false : true\r\n },\r\n /*\r\n {\r\n col: 4,\r\n name: e.concept,\r\n label: e.name,\r\n type: \"select\",\r\n value: e.gradeTxt,\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: \"AD\", label: \"AD\" },\r\n { value: \"A\", label: \"A\" },\r\n { value: \"B\", label: \"B\" },\r\n { value: \"C\", label: \"C\" },\r\n { value: \"D\", label: \"D\" }\r\n ]\r\n },\r\n onChange: (ctx) => {\r\n console.log(ctx)\r\n ctx.setState({['btn_' + e.concept]: true})\r\n },\r\n },\r\n */\r\n {\r\n col: 8,\r\n name: 'btn_' + e.concept,\r\n type: \"button\",\r\n label: \"Modificar\",\r\n value: e.concept === \"CPROM\" ? true : false,\r\n onClick: (ctx) => {\r\n if ([\"CONDF\", \"TUTR\"].indexOf(e.concept) > -1) this.saveGrade(e)\r\n else if (e.concept === \"CPROM\") this.openSubGrid(ctx)\r\n },\r\n classNameF: (ctx) => {\r\n return e.concept === 'CPROM' || (ctx.state['btn_' + e.concept] && ctx.state[e.concept]) ? '' : 'd-none'\r\n },\r\n disabled: [\"CPROM\", \"CONDF\", \"TUTR\"].indexOf(e.concept) > -1 ? false : true\r\n }\r\n )\r\n });\r\n }\r\n\r\n this.setState({formFields: temp})\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n }).catch((e) => { console.log(e) })\r\n }\r\n\r\n context.getMyTeachers = function () {\r\n _axios\r\n .get('me/teachers?userId=' + this.state.idItemSelected)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n // console.log(this.state.formFields)\r\n const sectionOwner = r.data.find(e => e.role === 'section-owner')\r\n const superSectionOwner = r.data.find(e => e.role === 'supersection-owner')\r\n const temp = cloneDeep(this.state.formFields)\r\n temp.map(e => {\r\n if (e.name === 'sectionOwner') e.value = sectionOwner ? (sectionOwner.name + ' ' + sectionOwner.last) : ''\r\n if (e.name === 'superSectionOwner') e.value = superSectionOwner ? (superSectionOwner.name + ' ' + superSectionOwner.last) : ''\r\n return e\r\n })\r\n this.setState({formFields: temp}, () => {\r\n this.getGrades()\r\n })\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n }).catch((e) => { console.log(e) })\r\n }\r\n\r\n return {\r\n\r\n config: {\r\n resource: \"admStudent\",\r\n pageSize: 40,\r\n list: false,\r\n hideBtnSave:true,\r\n remapRow: (form) => {\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: false,\r\n edit: true,\r\n delete: false,\r\n print: false,\r\n export: false,\r\n search: true\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFilter.superSectionId }\r\n }\r\n },\r\n {\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n rules: 'required',\r\n parent: \"sectionId\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStudent/get?pick=true§ionId=\" + context.state.formFilter.sectionId }\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return ctx.state.periodId || ctx.state.superSectionId || ctx.state.userId },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n process.nextTick(() => { context.getMyTeachers() })\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n delete v.flags\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"faceUrl\",\r\n value: null,\r\n type: \"image\",\r\n label: \"Foto\",\r\n opts: {\r\n backgroundImage: require(\"../../assets/img/user.png\")\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"superSectionName\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"sectionName\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Sección\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n /*\r\n {\r\n col: 12,\r\n name: \"trimestre\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Trimestre\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n */\r\n {\r\n col: 12,\r\n name: \"sectionOwner\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Tutor\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 12,\r\n name: \"superSectionOwner\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Asesor de promoción\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n ],\r\n subforms: [\r\n {\r\n name: 'Registrar notas', \r\n fields: []\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"Alumno\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Grado\",\r\n accessor: \"sectionTag\"\r\n }\r\n ]\r\n }\r\n}","export default (context) => { \r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n },\r\n \r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: false,\r\n export: true,\r\n search: true\r\n },\r\n \r\n filter: {\r\n fields: [\r\n {\r\n name: \"type\",\r\n value: \"SYM\",\r\n type: \"select\",\r\n label: \"main.type\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: \"SYM\", label: \"Síntoma\" },\r\n { value: \"OUT\", label: \"Partió a\" }\r\n ],\r\n },\r\n onChange: (ctx) => {\r\n if (context.state.formFilter.type && (context.state.formFilter.type.value === ctx.state.type)) return\r\n process.nextTick(() => { context.resetDataTable() })\r\n }\r\n }\r\n ]\r\n },\r\n \r\n form: {\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.type\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: \"SYM\", label: \"Síntoma\" },\r\n { value: \"OUT\", label: \"Partio a\" }\r\n ],\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.name\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"desc\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.desc\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n }\r\n ]\r\n },\r\n \r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.desc\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"desc\",\r\n }\r\n ]\r\n }\r\n }","import Notifications from './Notifications.js';\r\nimport NotificationContainer from './NotificationContainer';\r\nimport NotificationManager from './NotificationManager';\r\n\r\nexport { Notifications, NotificationContainer, NotificationManager };\r\nexport default Notifications;\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport { setLoader } from \"../../redux/actions\";\r\nimport {\r\n Row,\r\n Button,\r\n CustomInput,\r\n} from \"reactstrap\";\r\nimport { Colxx } from \"../common/CustomBootstrap\";\r\nimport FormCustom from \"./FormCustom\";\r\nimport { connect } from \"react-redux\";\r\nimport DataTable from \"./DataTable\";\r\nimport _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../common/react-notifications\";\r\nimport { objToQueryString } from \"../../helpers/Utils\"\r\nimport { cloneDeep } from \"lodash\"\r\n\r\nfunction usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n\r\nconst Side = props => {\r\n\r\n const [search, setSearch] = useState('')\r\n const [formFilter, setFormFilter] = useState(null)\r\n const [progressBar, setProgressBar] = useState(false)\r\n const [data, setData] = useState([])\r\n const [rowCount, setRowCount] = useState(0)\r\n const [columns, setColumns] = useState([])\r\n\r\n const prevStateFormFilter = usePrevious(formFilter);\r\n const prevStateSearch = usePrevious(search);\r\n\r\n const { config, side, addItems, removeItems } = props\r\n\r\n // const prevPropsAddItems = usePrevious(addItems);\r\n // const prevPropsRemoveItems = usePrevious(removeItems);\r\n\r\n const checkedItem = (id, val) => {\r\n console.log(val)\r\n let temp = cloneDeep(data)\r\n temp.map(e => e.isChecked = e.ID === id ? val : e.isChecked )\r\n setData(temp)\r\n const selected = {\r\n formFilter: formFilter,\r\n data: temp.filter(e => e.isChecked)\r\n }\r\n props.listenSelected(selected)\r\n }\r\n\r\n const checkedAll = (val) => {\r\n let temp = cloneDeep(data)\r\n temp.map(e => {\r\n e.isChecked = val\r\n return e\r\n })\r\n setData(temp)\r\n const selected = {\r\n formFilter: formFilter,\r\n data: temp.filter(e => e.isChecked)\r\n }\r\n props.listenSelected(selected)\r\n }\r\n\r\n const addColumn = () => {\r\n let temp = cloneDeep(config.columns)\r\n temp.push(\r\n {\r\n Header:
    \r\n {\r\n // console.log(e.target.checked)\r\n checkedAll(e.target.checked)\r\n }}\r\n />\r\n
    ,\r\n accessor: \"isChecked\",\r\n sortable: false,\r\n type: 'check',\r\n minWidth: 50,\r\n classList: \"w-sm-100\",\r\n Cell: (props) => {\r\n return
    \r\n {\r\n // console.log(e.target.checked)\r\n checkedItem(props.original.ID, e.target.checked)\r\n }}\r\n />\r\n
    \r\n }\r\n }\r\n )\r\n setColumns(temp)\r\n }\r\n\r\n // equal to componentDidMount\r\n useEffect(() => {\r\n // console.log('mounted')\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (prevStateFormFilter === null && formFilter) {\r\n addColumn()\r\n getData()\r\n }\r\n const selected = {\r\n formFilter: formFilter,\r\n }\r\n props.listenSelected(selected)\r\n // console.log(selected)\r\n // eslint-disable-next-line\r\n }, [formFilter]);\r\n\r\n useEffect(() => {\r\n // console.log(data)\r\n addColumn();\r\n // eslint-disable-next-line\r\n }, [data]);\r\n\r\n useEffect(() => {\r\n if (prevStateSearch && search === '') getData()\r\n // eslint-disable-next-line\r\n }, [search]);\r\n\r\n useEffect(() => {\r\n if(addItems && addItems.length > 0) {\r\n // console.log('add', addItems)\r\n const d = addItems.concat(data)\r\n setData(d)\r\n }\r\n // eslint-disable-next-line\r\n }, [addItems]);\r\n\r\n useEffect(() => {\r\n if(removeItems && removeItems.length > 0) {\r\n const d = data.filter(e => removeItems.map(o => o = o.ID).indexOf(e.ID) < 0)\r\n setData(d)\r\n }\r\n // eslint-disable-next-line\r\n }, [removeItems]);\r\n\r\n const query = () => {\r\n let pageSize = \"?PageSize=10000\"\r\n let fieldsToFilter = formFilter || {};\r\n let filters = objToQueryString(fieldsToFilter, false, true);\r\n let s = search ? '&filterBy=&filter=' + search : ''\r\n let page = '&page=1'\r\n return pageSize + filters + s + page\r\n }\r\n\r\n const getData = () => {\r\n setProgressBar(true)\r\n var path = config.GET\r\n _axios\r\n .get(path + query())\r\n .then(r => {\r\n if (r.status >= 0) {\r\n r.data.Results.map(e => {\r\n e.isChecked = false\r\n return e\r\n })\r\n setData(r.data.Results)\r\n setRowCount(r.data.Results.length)\r\n const selected = {\r\n formFilter: formFilter,\r\n data: []\r\n }\r\n props.listenSelected(selected)\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n setProgressBar(false)\r\n })\r\n }\r\n\r\n const listenStatesFormFilter = (s) => {\r\n // console.log(s)\r\n setFormFilter(s)\r\n }\r\n\r\n const handleChangeSearch = (e) => {\r\n setSearch(e.target.value)\r\n }\r\n\r\n const handleKeyPress = (event) => {\r\n if (event.key === 'Enter') getData()\r\n }\r\n\r\n return config ? \r\n \r\n
    {config.title}
    \r\n
    \r\n\r\n \r\n {config.fields &&\r\n \r\n }\r\n \r\n\r\n \r\n {config.search &&\r\n
    \r\n \r\n { setSearch('') }}\r\n >\r\n
    \r\n }\r\n \r\n\r\n \r\n { getData() }}\r\n >\r\n Aplicar Filtros\r\n \r\n \r\n\r\n \r\n \r\n \r\n : ''\r\n}\r\n\r\nclass SideToSide extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: '',\r\n leftItemsSelected: null,\r\n rightItemsSelected: null,\r\n leftAdd: null,\r\n leftRemove: null,\r\n rightAdd: null,\r\n rightRemove: null,\r\n }\r\n }\r\n\r\n moveTo(to) {\r\n let left = cloneDeep(this.state.leftItemsSelected)\r\n let right = cloneDeep(this.state.rightItemsSelected)\r\n // console.log(left, right)\r\n let msg = () => NotificationManager.error('En el origen debe de seleccionar a los alumnos a mover y en el destino el grado y sección', \"Error\", 5000, null, null, 'outline')\r\n if (to === 'left' && (!right.formFilter || !right.data || right.data.length === 0 || !left.formFilter || !left.formFilter.sectionId)) return msg()\r\n else if (to === 'right' && (!left.formFilter || !left.data || left.data.length === 0 || !right.formFilter || !right.formFilter.sectionId)) return msg()\r\n\r\n let body = []\r\n if (to === 'left') body = right\r\n else body = left\r\n\r\n body = {\r\n fromSectionId: body.formFilter.sectionId ? body.formFilter.sectionId.value : null,\r\n sectionId: to === 'left' ? left.formFilter.sectionId.value : right.formFilter.sectionId.value,\r\n studentIds: body.data.map(e => e = e.ID)\r\n }\r\n // console.log(body)\r\n const path = to === 'left' ? this.props.configLeft.POST : this.props.configRight.POST\r\n _axios\r\n .post(path, body)\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) {\r\n this.props.setLoader(false)\r\n let data = cloneDeep(to === 'left' ? this.state.rightItemsSelected.data : this.state.leftItemsSelected.data)\r\n data.map(e => {\r\n e.isChecked = false\r\n e.sectionTag = to === 'left' ? (left.formFilter.superSectionId.label + ' ' + left.formFilter.sectionId.label.split(' ')[0]) : (right.formFilter.superSectionId.label + ' ' + right.formFilter.sectionId.label.split(' ')[0])\r\n return e\r\n }\r\n )\r\n if (to === 'left') this.setState({leftAdd: data, leftRemove: null, rightAdd: null, rightRemove: data})\r\n else this.setState({leftAdd: null, leftRemove: data, rightAdd: data, rightRemove: null})\r\n // reset data\r\n let le = this.state.leftItemsSelected\r\n let ri = this.state.rightItemsSelected\r\n le.data = []\r\n ri.data = []\r\n this.setState({ leftItemsSelected: le, rightItemsSelected: ri })\r\n NotificationManager.success(r.msg, \"\", 5000, null, null, 'outline')\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n }\r\n\r\n render() {\r\n const { configLeft, configRight } = this.props\r\n return (\r\n \r\n \r\n { this.setState({leftItemsSelected: selected }) }}\r\n addItems={this.state.leftAdd}\r\n removeItems={this.state.leftRemove}\r\n />\r\n \r\n\r\n \r\n
    \r\n { this.moveTo('right') }}\r\n >\r\n \r\n \r\n { this.moveTo('left') }}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n { this.setState({rightItemsSelected: selected }) }}\r\n addItems={this.state.rightAdd}\r\n removeItems={this.state.rightRemove}\r\n />\r\n \r\n
    \r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = ({ settings }) => {\r\n const { locale } = settings\r\n return { locale };\r\n};\r\n\r\nexport default connect(mapStateToProps, { setLoader })(SideToSide);\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { setLoader, setDeeplink, setParams } from \"../../../../redux/actions\";\r\nimport {\r\n Row,\r\n Button,\r\n Alert\r\n} from \"reactstrap\";\r\nimport Field from \"../../../../components/utils/Field\"\r\nimport { Colxx } from \"../../../../components/common/CustomBootstrap\";\r\nimport _axios from \"../../../../libs/axios\";\r\nimport { NotificationManager } from \"../../../../components/common/react-notifications\";\r\nimport FormCustom from \"../../../../components/utils/FormCustom\";\r\nimport AppLocale from \"../../../../config/lang\";\r\nimport { connect } from \"react-redux\";\r\nimport { cloneDeep, debounce } from \"lodash\"\r\nimport _moment from \"../../../../libs/moment\";\r\n\r\nconst M = \"admAttendance.\"\r\n\r\nclass AdmAttendanceControl extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n resource: null,\r\n data: [],\r\n dataTemp: [],\r\n progressBar: false,\r\n formFilter: {\r\n sessionId: null\r\n },\r\n sessionId: null,\r\n sessions: [],\r\n overlay: true,\r\n userAdmin: props.userAdmin,\r\n showPartId: false\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.setParams(null)\r\n }\r\n\r\n getSessions(ctxFormFilter) {\r\n this.setState({ progressBar: true, data: [], dataTemp: [], sessions: [] });\r\n let date = cloneDeep(this.state.formFilter.date)\r\n\r\n _axios\r\n .get('admAttendance/' + this.state.formFilter.partId.value + '/sessions?dt='+ date+'§ionId='+(this.state.formFilter.sectionId ? this.state.formFilter.sectionId : -1))\r\n .then(r => {\r\n if (r.status >= 0) {\r\n let sessions = r.data.filter(e => e.date.indexOf(_moment(date).format('YYYY-MM-DD')) > -1)\r\n\r\n let items = []\r\n sessions.forEach(e => {\r\n items.push({ value: e.ID, label: _moment(e.date).format('HH:mm'), registrationStarted: e.registrationStarted})\r\n });\r\n this.setState({ sessions: items })\r\n\r\n if (sessions.length === 1 && this.state.formFilter.type === true) {\r\n let formFilter = cloneDeep(this.state.formFilter)\r\n formFilter.sessionId = sessions[0].ID\r\n this.setState({ formFilter: formFilter}, () => {\r\n ctxFormFilter.setState({ sessionId: sessions[0].ID }, () => {\r\n this.getData(this.state.formFilter.sessionId)\r\n })\r\n })\r\n } else {\r\n this.setState({ progressBar: false })\r\n }\r\n } else NotificationManager.error(r.msg, 'Opps', 5000, null, null, 'outline')\r\n })\r\n }\r\n\r\n getData(id) {\r\n this.setState({ progressBar: true, data: [], dataTemp: [] });\r\n _axios\r\n .get('admAttendance/' + this.state.formFilter.partId.value + '/sessions/'+ id + '/list?sectionId='+ (this.state.formFilter.sectionId ? this.state.formFilter.sectionId : -1))\r\n .then(r => {\r\n if (r.status >= 0) {\r\n let status = this.state.formFilter ? this.state.formFilter.status : -1\r\n let temp = status === -1 ? r.data : r.data.filter(e => e.status === status)\r\n let allPending = !this.state.sessions.find( f => f.value === this.state.formFilter.sessionId).registrationStarted \r\n this.setState({ data: r.data, dataTemp: temp, overlay: allPending }, () => { this.setState({ progressBar: false }) })\r\n } else NotificationManager.error(r.msg, 'Opps', 5000, null, null, 'outline')\r\n })\r\n }\r\n\r\n startAttendance() {\r\n // console.log(this.state.formFilter.sessionId)\r\n this.props.setLoader(true)\r\n _axios\r\n .post('admAttendance/session/' + this.state.formFilter.sessionId + '/init?sectionId=' + this.state.formFilter.sectionId)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n this.state.sessions.find( f => f.value === this.state.formFilter.sessionId).registrationStarted = true\r\n this.setState({ overlay: false }, () => {\r\n this.getData(this.state.formFilter.sessionId)\r\n })\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n this.props.setLoader(false)\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n }\r\n\r\n save(item, status) {\r\n let body = [\r\n {\r\n userId: item.id,\r\n comment: item.comment,\r\n status: status\r\n }\r\n ]\r\n\r\n _axios\r\n .post('admAttendance/session/' + this.state.formFilter.sessionId + '/status', body)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n let data = cloneDeep(this.state.data)\r\n data.map(e => {\r\n if (e.id === item.id) {\r\n e.comment = item.comment\r\n e.status = status\r\n }\r\n return e\r\n })\r\n\r\n let temp = cloneDeep(this.state.dataTemp)\r\n temp.map(e => {\r\n if (e.id === item.id) {\r\n e.comment = item.comment\r\n e.status = status\r\n e.click = true\r\n }\r\n return e\r\n })\r\n this.setState({ data: data, dataTemp: temp })\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { })\r\n }\r\n\r\n execute = debounce((item, status) => { this.save(item, status) }, 500, { leading: true })\r\n\r\n saveComment (item) {\r\n if (item.status === 0) {\r\n NotificationManager.error('La observación no se ha guardado, se guardará cuando marque la asistencia respectiva', '', 5000, null, null, 'outline')\r\n return\r\n }\r\n let body = [\r\n {\r\n userId: item.id,\r\n comment: item.comment\r\n }\r\n ]\r\n\r\n let data = cloneDeep(this.state.data)\r\n let temp = cloneDeep(this.state.dataTemp)\r\n\r\n data.map(e => {\r\n if (e.id === item.id) {\r\n e.processing = true\r\n }\r\n return e\r\n })\r\n\r\n temp.map(e => {\r\n if (e.id === item.id) {\r\n e.processing = true\r\n }\r\n return e\r\n })\r\n\r\n this.setState({ data: data, dataTemp: temp })\r\n\r\n _axios\r\n .post('admAttendance/session/' + this.state.formFilter.sessionId + '/comment', body)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n data.map(e => {\r\n if (e.id === item.id) {\r\n e.comment = item.comment\r\n e.processing = false\r\n }\r\n return e\r\n })\r\n\r\n data.map(e => {\r\n if (e.id === item.id) {\r\n e.comment = item.comment\r\n e.processing = false\r\n }\r\n return e\r\n })\r\n this.setState({ data: data, dataTemp: temp })\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { })\r\n }\r\n\r\n listenStatesFormFilter = (s) => {\r\n this.setState({ formFilter: s });\r\n }\r\n\r\n listenBtnActionsFormFilter = (a, s, rowData) => {\r\n }\r\n\r\n filterData = () => {\r\n if (!this.state.formFilter) return []\r\n else if (this.state.formFilter.search && this.state.formFilter.search !== \"\") {\r\n return this.state.dataTemp.filter(e => {\r\n return e.name.toLowerCase().includes(this.state.formFilter.search.toLowerCase()) || e.last.toLowerCase().includes(this.state.formFilter.search.toLowerCase())\r\n })\r\n } else {\r\n return this.state.dataTemp\r\n }\r\n }\r\n\r\n render() {\r\n const { locale, params } = this.props\r\n const L = AppLocale[locale].messages\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* TITLE */}\r\n

    Asistencia

    \r\n
    \r\n
    \r\n\r\n {params?.setupMsg && {params.setupMsg}}\r\n\r\n {/* FILTERS */}\r\n {\r\n this.setState({ data: [], dataTemp: [] })\r\n },\r\n },\r\n {\r\n name: \"type\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.type\",\r\n parent: \"date\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: true, label: 'Asistencia diaria'},\r\n {value: false, label: 'Asistencia a curso'},\r\n ]\r\n },\r\n onChange: (ctx) => {\r\n this.setState({sessionId: null, sessions: []})\r\n if (ctx.state.type) {\r\n _axios\r\n .get('/admAttendance?dt=' + ctx.state.date + '&masterId='+this.state.userAdmin.ID + '&daily=' + ctx.state.type)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n if (!r.data) return r\r\n // r.data.splice(1,2)\r\n this.setState({showPartId: r.data.length > 1}, () => {\r\n if (r.data.length === 1) ctx.setState({partId: { value: r.data[0].ID, label: r.data[0].name, original: r.data[0] }})\r\n })\r\n } else {\r\n NotificationManager.error(r.msg, 'Opps', 5000, null, null, 'outline')\r\n this.setState({showPartId: false})\r\n }\r\n })\r\n } else if (ctx.state.type === false) this.setState({showPartId: true})\r\n },\r\n renderIf: (ctx) => { return ctx.state.date }\r\n },\r\n {\r\n name: \"partId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.course\",\r\n parent: \"type\",\r\n opts: {\r\n style: 'float-label',\r\n isClearable: false,\r\n path: (ctx) => { return '/admAttendance?dt=' + ctx.state.date + '&masterId='+this.state.userAdmin.ID + '&daily=' + ctx.state.type },\r\n remap: (r, ctx) => {\r\n if (!r.data) return r\r\n r.data.Results = r.data\r\n return r\r\n },\r\n setOutput: v => v,\r\n },\r\n onChange: (ctx) => {\r\n if (ctx.state.partId) process.nextTick(() => {\r\n this.getSessions(ctx) \r\n })\r\n },\r\n renderIf: (ctx) => { return (ctx.state.type === true || ctx.state.type === false) && this.state.showPartId }\r\n },\r\n {\r\n name: \"sessionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.session\",\r\n opts: {\r\n style: 'float-label',\r\n items: this.state.sessions,\r\n isClearable: false,\r\n },\r\n onChange: (ctx) => {\r\n // console.log(ctx.state.sessionId)\r\n if (ctx.state.sessionId) process.nextTick(() => {\r\n this.getData(ctx.state.sessionId)\r\n })\r\n },\r\n renderIf: (ctx) => { return this.state.sessions.length > 0 && ctx.state.type === false }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: -1,\r\n type: \"select\",\r\n label: \"main.section\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?roleFilter=sectionOwner&pick=true\" }\r\n },\r\n onChange: (ctx) => {\r\n if (ctx.state.sectionId) process.nextTick(() => {\r\n this.getSessions(ctx) \r\n })\r\n },\r\n renderIf: (ctx) => { return ctx.state.partId && ctx.state.partId.original.regist > 0 }\r\n },\r\n {\r\n name: \"status\",\r\n value: -1,\r\n type: \"select\",\r\n label: \"main.filter\",\r\n opts: {\r\n style: 'float-label',\r\n isClearable: false,\r\n items: [\r\n {value: -1, label: 'TODOS'},\r\n {value: 0, label: 'PENDIENTES'},\r\n {value: 1, label: 'PRESENTES'},\r\n {value: 2, label: 'TARDE'},\r\n {value: 3, label: 'AUSENTES'},\r\n ]\r\n },\r\n onChange: (ctx) => {\r\n let data = cloneDeep(this.state.data)\r\n data.map(e => e.click = false)\r\n let temp = ctx.state.status === -1 ? data : data.filter(e => e.status === ctx.state.status)\r\n this.setState({ dataTemp: temp })\r\n },\r\n renderIf: (ctx) => { return ctx.state.partId && ctx.state.partId.value && (!ctx.state.search || ctx.state.search === \"\") }\r\n },\r\n {\r\n name: \"search\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.search\",\r\n placeholder: \"main.studentFirstOrLastName\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n onChange: (ctx) => {\r\n let data = cloneDeep(this.state.data)\r\n data.map(e => e.click = false)\r\n this.setState({ dataTemp: data })\r\n },\r\n },\r\n ]\r\n }\r\n listenStates={this.listenStatesFormFilter}\r\n />\r\n
    \r\n
    \r\n\r\n {this.state.overlay && this.filterData().length > 0 &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {/* GRID */}\r\n \r\n \r\n {this.state.progressBar &&
    }\r\n {this.filterData().length === 0 && !this.state.progressBar &&
    {L[\"main.noRecords\"]}
    }\r\n {this.filterData().length > 0 &&\r\n
    (this.componentRef = el)}>\r\n {this.state.overlay &&
    }\r\n
    \r\n\r\n
    \r\n
    \r\n
    {L[\"main.student\"]}
    \r\n
    \r\n\r\n {/* Stundents */}\r\n {this.filterData().map((item, i) => {\r\n return (\r\n
    \r\n
    \r\n {e.target.onerror = null; e.target.src=require(\"../../../../assets/img/user.png\")}} alt=\"\"/>\r\n
    \r\n
    {item.last + ' ' + item.name}
    \r\n
    \r\n )})\r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {L[`${M}attendance`]}
    \r\n
    \r\n
    \r\n
    {L[\"main.justification\"]}
    \r\n
    \r\n
    \r\n
    {L[\"main.observations\"]}
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n {/* Stundents */}\r\n {this.filterData().map((item, i) => {\r\n return (\r\n
    \r\n
    \r\n { this.execute(item, 1) }}\r\n disabled={item.processing || item.status === 1}\r\n >\r\n \r\n \r\n { this.execute(item, 2) }}\r\n disabled={item.processing || item.status === 2}\r\n >\r\n \r\n \r\n { this.execute(item, 3) }}\r\n disabled={item.processing || item.status === 3}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n {item.justifType}\r\n
    \r\n
    \r\n {\r\n let temp = cloneDeep(this.state.dataTemp)\r\n temp.map(e => {\r\n if (e.id === item.id) e.comment = n\r\n return e\r\n })\r\n this.setState({dataTemp: temp}, () => {\r\n // console.log(this.state.data)\r\n })\r\n }}\r\n onFocus={() => {\r\n const sideRight = document.getElementById('attendance-side-right')\r\n sideRight.scrollLeft = sideRight.scrollWidth\r\n }}\r\n />\r\n
    \r\n e.id === item.id).comment ? \"d-block\" : \"d-none\" )}\r\n onClick={() => { this.saveComment(item) }}\r\n >\r\n Guardar\r\n \r\n
    \r\n
    \r\n
    \r\n )})\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings, menu, utils, authUser }) => {\r\n const { menuItems } = menu;\r\n const { locale } = settings\r\n const { deepLink, params } = utils\r\n const { userAdmin } = authUser;\r\n return { locale, menuItems, deepLink, params, userAdmin };\r\n};\r\n\r\nexport default connect(mapStateToProps, { setLoader, setDeeplink, setParams })(AdmAttendanceControl);","import \"./assets/css/vendor/bootstrap.min.css\";\r\nimport \"./assets/css/vendor/bootstrap.rtl.only.min.css\";\r\nimport \"react-circular-progressbar/dist/styles.css\";\r\nimport \"react-perfect-scrollbar/dist/css/styles.css\";\r\nimport \"react-big-calendar/lib/css/react-big-calendar.css\";\r\nimport \"react-table/react-table.css\";\r\n\r\nimport { isMultiColorActive, defaultColor,themeColorStorageKey,isDarkSwitchActive } from \"./config/defaultValues\";\r\nconst color =\r\n (isMultiColorActive||isDarkSwitchActive ) && localStorage.getItem(themeColorStorageKey)\r\n ? localStorage.getItem(themeColorStorageKey)\r\n : defaultColor;\r\n\r\nlocalStorage.setItem(themeColorStorageKey, color);\r\n\r\nlet render = () => {\r\n import('./assets/css/sass/themes/gogo.' + color + '.scss').then(x => {\r\n require('./AppRenderer');\r\n });\r\n};\r\nrender();","var map = {\n\t\"./gogo.dark.blue.scss\": [\n\t\t1009,\n\t\t3\n\t],\n\t\"./gogo.dark.green.scss\": [\n\t\t1010,\n\t\t4\n\t],\n\t\"./gogo.dark.greysteel.scss\": [\n\t\t1011,\n\t\t5\n\t],\n\t\"./gogo.dark.orange.scss\": [\n\t\t1012,\n\t\t6\n\t],\n\t\"./gogo.dark.purple.scss\": [\n\t\t1013,\n\t\t7\n\t],\n\t\"./gogo.dark.red.scss\": [\n\t\t1014,\n\t\t8\n\t],\n\t\"./gogo.light.blue.scss\": [\n\t\t1015,\n\t\t9\n\t],\n\t\"./gogo.light.green.scss\": [\n\t\t1016,\n\t\t10\n\t],\n\t\"./gogo.light.greysteel.scss\": [\n\t\t1017,\n\t\t11\n\t],\n\t\"./gogo.light.orange.scss\": [\n\t\t1018,\n\t\t12\n\t],\n\t\"./gogo.light.purple.scss\": [\n\t\t1019,\n\t\t13\n\t],\n\t\"./gogo.light.red.scss\": [\n\t\t1020,\n\t\t14\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 519;\nmodule.exports = webpackAsyncContext;","import React from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport AppLocale from \"../../config/lang\";\r\nimport _axios from '../../libs/axios';\r\nimport { NotificationManager } from '../common/react-notifications';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\n\r\nclass CustomDropdown extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n // console.log(props)\r\n this.toggle = this.toggle.bind(this);\r\n this.onMouseEnter = this.onMouseEnter.bind(this);\r\n this.onMouseLeave = this.onMouseLeave.bind(this);\r\n this.state = {\r\n items: props.items ?? [],\r\n dropdownOpen: false,\r\n selected: props.selected ?? null,\r\n loadingTxt: null\r\n }\r\n }\r\n\r\n toggle() {\r\n this.setState(prevState => ({\r\n dropdownOpen: !prevState.dropdownOpen\r\n }), () => {\r\n if (this.state.dropdownOpen) {\r\n if(this.state.items.length === 0) this.getItems()\r\n }\r\n })\r\n }\r\n\r\n getItems() {\r\n this.setState({ loadingTxt: \"main.loading\" })\r\n _axios\r\n .get(this.props.resourceUrl)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n const items = r.data.Results.map(item => item = {id: item.ID, name: item.name})\r\n this.setState({items: items})\r\n } else NotificationManager.error(r.msg, 'Opps', 4000, null, null, 'outline')\r\n this.setState({ loadingTxt: null })\r\n })\r\n }\r\n\r\n onMouseEnter() {\r\n this.setState({dropdownOpen: true})\r\n }\r\n\r\n onMouseLeave() {\r\n this.setState({dropdownOpen: false})\r\n }\r\n\r\n handleOnClick(item) {\r\n const { rowData, ctx, listenBtnActions, onChange } = this.props\r\n this.setState({selected: item?.id}, () => {\r\n if (onChange) onChange(item)\r\n })\r\n if (item.onClick) item.onClick(rowData, ctx, item.id)\r\n if (listenBtnActions) listenBtnActions('menu', item, rowData)\r\n }\r\n \r\n render() {\r\n const isMobile = window.innerWidth <= 500\r\n const { locale, label, icon, addCheck, style, direction, rowData, showMenuOnHover, showItemSelected, size } = this.props\r\n const { items, dropdownOpen, selected, loadingTxt } = this.state\r\n const L = AppLocale[locale].messages\r\n return (\r\n \r\n {icon && \r\n \r\n }\r\n {label && \r\n {showItemSelected && selected ? (L[selected.name] ?? selected.name) : (L[label] ?? label)}\r\n }\r\n = 7 ? {height: \"264px\"} : {maxHeight: \"200px\"}}>\r\n {loadingTxt && {`${L[loadingTxt]}`}}\r\n \r\n {items.map((item, index) => {\r\n return (\r\n { this.handleOnClick(item) } } key={index}>\r\n
    \r\n {(addCheck || item.icon) &&
    \r\n {item.id === selected && addCheck && }\r\n {item.icon && } \r\n
    }\r\n
    {typeof item.name == \"function\" ? item.name(rowData) : L[item.name] ?? item.name}
    \r\n
    \r\n
    \r\n )\r\n })}\r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings }) => {\r\n const { locale } = settings\r\n return { locale }\r\n}\r\n\r\nexport default connect(mapStateToProps)(CustomDropdown)","import React, {Component} from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from \"reactstrap\";\r\nimport AppLocale from \"../../config/lang\";\r\n\r\nclass Dialog extends Component {\r\n render() {\r\n const { locale } = this.props\r\n const L = AppLocale[locale].messages\r\n return (\r\n \r\n {this.props.title && {this.props.title}}\r\n {this.props.msg}\r\n \r\n {!this.props.btnCancelHidden && }\r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = ({ settings }) => {\r\n const { locale } = settings\r\n return { locale};\r\n};\r\n\r\nexport default connect(mapStateToProps, {})(Dialog);","import axios from \"axios\";\r\nimport { NotificationManager } from \"../components/common/react-notifications\";\r\nimport { servicePath, authParams } from \"../config/defaultValues\";\r\nimport { setLoader } from \"../redux/actions\";\r\nimport { logoutUser } from \"../redux/auth/actions\"\r\n\r\n\r\nlet token;\r\nlet config = {\r\n baseURL: servicePath,\r\n transformRequest: [\r\n (data, headers) => {\r\n var prefix = authParams.Header === \"Authorization\" ? 'Bearer ' : '';\r\n token = (localStorage.getItem('user_admin') ? JSON.parse(localStorage.getItem('user_admin')).token : undefined);\r\n if (!headers[authParams.Header])headers[authParams.Header] = prefix + token;\r\n return JSON.stringify(data);\r\n }\r\n ],\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept-Language\": window.tenant.localeOptions? window.tenant.localeOptions.map(l => l = l.id)?.toString() : window.tenant.defaultLocale?? \"es\"\r\n }\r\n};\r\n\r\nconst _axios = axios.create(config);\r\n\r\n_axios.CancelToken = axios.CancelToken;\r\n\r\n_axios.interceptors.request.use(\r\n request => {\r\n if (token !== undefined) {\r\n var exp = parseJwt(token).exp;\r\n var current_time = Date.now() / 1000;\r\n if (current_time > exp) {\r\n logoutUser();\r\n throw new axios.Cancel('Session expired! Please login again...');\r\n }\r\n }\r\n return request\r\n },\r\n error => {\r\n return Promise.reject(error)\r\n }\r\n)\r\n\r\n// Add a response interceptor\r\n_axios.interceptors.response.use(\r\n (request) => {\r\n return request.data ? request.data : request\r\n },\r\n (error) => {\r\n setLoader(false);\r\n NotificationManager.error(error.response?.data?.Message || error.response?.data || `${error}`, 'Ooops', 5000, null, null, 'outline')\r\n if (error.response && error.response.status === 401) {\r\n logoutUser(); // no es reactivo solo limpia el localstorage\r\n window.location.hash = '#/user/login'\r\n }\r\n return Promise.reject(error)\r\n }\r\n)\r\n\r\nvar parseJwt = function(token) {\r\n var base64Url = token.split('.')[1];\r\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n var jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n\r\n return JSON.parse(jsonPayload);\r\n};\r\n\r\nexport default _axios\r\n","import React, { Component, Fragment } from \"react\"\r\nimport { connect } from \"react-redux\"\r\nimport { setLoader, setDeeplink, setParams } from \"../../../redux/actions\";\r\nimport {\r\n Row,\r\n Button,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n Badge,\r\n CustomInput,\r\n UncontrolledTooltip,\r\n Alert,\r\n Modal\r\n} from \"reactstrap\"\r\nimport CircularProgressbar from \"react-circular-progressbar\"\r\nimport AppLocale from \"../../../config/lang\"\r\nimport _axios from \"../../../libs/axios\"\r\nimport _moment from \"../../../libs/moment\"\r\nimport { cloneDeep } from \"lodash\"\r\nimport { objToQueryString, decimalFormat, findModuleInMenu } from \"../../../helpers/Utils\"\r\nimport { Colxx } from \"../../../components/common/CustomBootstrap\"\r\nimport DataTable from \"../../../components/utils/DataTable\"\r\nimport FormCustom from \"../../../components/utils/FormCustom\"\r\nimport FormSmart from \"../../../components/utils/FormSmart\"\r\nimport CustomDropdown from \"../../../components/utils/CustomDropdown\"\r\nimport Dialog from \"../../../components/utils/Dialog\"\r\nimport { NotificationManager } from \"../../../components/common/react-notifications\"\r\nimport ExportTo from \"../../../components/utils/ExportTo\"\r\nimport ImportTo from \"../../../components/utils/ImportTo\"\r\nimport modules from \"../../../config/admModules/modules\"\r\nimport SideToSide from \"../../../components/utils/SideToSide\"\r\nimport dateRange from \"../../../components/utils/DateRange\"\r\nimport CustomModal from \"../../../components/utils/CustomModal\"\r\n// import Breadcrumb from \"../../../containers/navs/Breadcrumb\"\r\n// import { DataListIcon, ThumbListIcon } from \"../../../components/svg\"\r\n\r\nclass CrudGrid extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.view = (() => {\r\n let mod = props.embeded \r\n ? { id: props.module, path: props.match.path, module: props.embeded }\r\n : modules.find(m => m.path === props.match.path)\r\n\r\n let modOption = findModuleInMenu(props.menuItems, \"to\", props.match.path)\r\n\r\n if (!modOption) return\r\n\r\n let module = mod.module(this)\r\n\r\n if (mod && modOption) {\r\n modOption = { ...module, ...modOption }\r\n return modOption\r\n }\r\n else return module\r\n })();\r\n\r\n let writePermission = false\r\n\r\n if (this.view) {\r\n // setup date range for form filter \r\n const index = this.view.filter?.fields.findIndex(e => e.type === \"daterange\")\r\n if (index > -1) this.view.filter.fields.splice(index, 1, ...dateRange(this.view.filter.fields[index]))\r\n\r\n // setup date range for form crud \r\n if (this.view.form?.fields) {\r\n let fields = cloneDeep(this.view.form.fields)\r\n let pos = 0\r\n fields.forEach((item, index) => {\r\n if(item.type === \"daterange\") {\r\n this.view.form.fields.splice(index + pos, 1, ...dateRange(this.view.form.fields[index + pos]))\r\n pos+=2\r\n }\r\n\r\n const w = item.type === 'wizard' ? item : null\r\n if (w) {\r\n w.steps.forEach((step, index2) => {\r\n let pos2 = 0\r\n step.fields.forEach((field, index3) => {\r\n if(field.type === \"daterange\") {\r\n w.steps[index2].fields.splice(index3 + pos2, 1, ...dateRange(w.steps[index2].fields[index3 + pos2]))\r\n pos2+=2\r\n }\r\n })\r\n })\r\n this.view.form.fields[index] = w\r\n }\r\n })\r\n }\r\n \r\n // setup module\r\n let configFields = null\r\n const moduleName = this.view.id // props.match.path.split('/').slice(-1)[0]\r\n const menuSubs = props.menuItems.flatMap((m) => m.subs || [])\r\n const foundModule = menuSubs.find((s) => s.id === moduleName)\r\n if (foundModule) configFields = foundModule.configFields\r\n\r\n if (this.view.form?.fields) {\r\n this.view.form.fields = this.view.form.fields\r\n .map(f => ({\r\n ...f,\r\n ...((configFields?.[f.name]) || {})\r\n }))\r\n .filter(f => !f.inactive)\r\n }\r\n \r\n // write permissions\r\n writePermission = props.userAdmin.write.indexOf(this.view.id) > -1\r\n if (!writePermission) {\r\n this.view.actions.create = false\r\n this.view.actions.delete = false\r\n if (this.view.form?.fields) {\r\n this.view.form.fields.map(f => {if(!f.modulePermissions) f.disabled = true; return f})\r\n }\r\n }\r\n // fields with permissions from other modules\r\n if (this.view.form?.fields) {\r\n this.view.form.fields.map(f => {if(f.modulePermissions) f.disabled = props.userAdmin.write.indexOf(f.modulePermissions) === -1; return f})\r\n }\r\n\r\n if (props.ctx) props.ctx(this)\r\n }\r\n\r\n this.viewDefault = cloneDeep(this.view)\r\n\r\n this.state = {\r\n L: AppLocale[this.props.locale]?.messages,\r\n parentId: props.parentId,\r\n authorized: this.view ? true : false,\r\n resource: null,\r\n data: [],\r\n columns: [],\r\n pageSize: 0,\r\n rowCount: 0,\r\n pageCount: 0,\r\n currentPage: 1,\r\n progressBar: false,\r\n hidePagination: false,\r\n formFilter: null,\r\n search: '',\r\n modal: false,\r\n modalRight: false,\r\n modalRightSize: \"lg\",\r\n modalRightContent: null,\r\n modalDelete: false,\r\n toggleGenericVisible:false,\r\n modalGeneric: { title:'', msg:''},\r\n idItemSelected: null,\r\n idItemPreSelected: null,\r\n \r\n form: null, // component customForm values\r\n formDefault: null, // component customForm original values\r\n formFlags: null, // component customForm flags\r\n formFlagsDefault: null, // component customForm save default flags\r\n formFields: this.view?.form?.fields, // component customForm \r\n animateTr: null,\r\n dataTableList: this.view?.config?.list,\r\n // upload files\r\n dropzones: [],\r\n uploadActive: 0,\r\n uploadFiles: null,\r\n writePermission: writePermission,\r\n\r\n btnCancel: \"main.cancel\",\r\n btnSave: \"main.save\",\r\n btnCreate: \"main.create\",\r\n customMsg: null,\r\n msgNoRecords: null,\r\n checkedList: [],\r\n hideBtnSave: this.view?.config?.hideBtnSave,\r\n showFormCustom: false,\r\n wizard: this.view.form?.fields?.find(f => f.type === \"wizard\"), // this.view?.form?.fields?.some(f => f.type === \"wizard\"),\r\n dropdown: false,\r\n selects: null, // stores key, value and label of the selection fields\r\n preview: null,\r\n modalPreview: false\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n if (this.state.authorized) {\r\n if (this.view) this.setState({ pageSize: this.view.config.pageSize, hidePagination: !!this.view.config.hidePagination, resource: this.view.config.resource || this.view.id})\r\n if (this.view.form && this.view.form.flags) {\r\n this.setState({ formFlagsDefault: this.viewDefault.form.flags });\r\n this.setState({ formFlags: this.view.form.flags });\r\n }\r\n if (this.props.deepLink) {\r\n if(this.props.deepLink.keepFilters) {\r\n this.view.filter.fields.forEach((e, i) => {\r\n let obj = this.props.deepLink.params.find(p => p.name === e.name )\r\n if (obj) this.view.filter.fields[i] = obj\r\n });\r\n this.view.filter.fields = this.view.filter.fields.concat(this.props.deepLink.params)\r\n // remove duplicate parameters\r\n this.view.filter.fields = [...new Map(this.view.filter.fields.map(item => [item.name, item])).values()]\r\n } else this.view.filter.fields = this.props.deepLink.params\r\n }\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (this.state.authorized) {\r\n this.actionsInColumns()\r\n if (!this.view.filter && !this.props.onlyCrud && !this.view.config.hiddenGrid) this.getData()\r\n } else NotificationManager.error(\"No tienes permiso para acceder a este módulo: \" + this.props.match.path, \"No autorizado\", 3000, null, null, 'outline')\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevProps.locale !== this.props.locale) {\r\n this.setState({L: AppLocale[this.props.locale].messages})\r\n }\r\n if (this.state.authorized) {\r\n if (prevState.formFilter === null && this.state.formFilter) {\r\n setTimeout(() => { this.getData() }, 150)\r\n }\r\n if (prevState.data !== this.state.data) {\r\n if (this.props.listenData) this.props.listenData(this.state.data)\r\n if (this.view.preview?.previewOf?.grid) this.previewOfGrid(this.state.data)\r\n }\r\n if (prevState.form !== this.state.form) {\r\n if (this.props.listenForm) this.props.listenForm(this.state.form)\r\n if (this.view.preview?.previewOf?.form) this.previewOfForm(this.state.form)\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.viewDefault = null\r\n this.view = null\r\n this.props.setDeeplink(null)\r\n this.props.setParams(null)\r\n }\r\n\r\n actionsInColumns(customEditIcon) {\r\n let temp = cloneDeep(this.view.columns)?? []\r\n const fDate = (props, format) => props.value && _moment(props.value).isValid() ? _moment(props.value).format(format || `${window.tenant.defaultDateFormat} ${window.tenant.defaultTimeFormat}`) : ''\r\n const colImg = props =>
    \"Profile\" { e.target.onerror = null; e.target.src = require(\"../../../assets/img/user.png\") }} />
    \r\n temp.forEach((e, i) => {\r\n if (e.isBool) temp[i].Cell = props =>
    \r\n else if (e.isDate) temp[i].Cell = props => fDate(props, e.format)\r\n else if (e.isDecimal) temp[i].Cell = props => decimalFormat(props.value)\r\n else if (e.type && e.type === 'chip') temp[i].Cell = props =>
    {e.chips[props.value]?.text}
    \r\n else if (e.type && e.type === 'html') temp[i].Cell = e.cell\r\n else if (e.type && e.type === 'img') temp[i].Cell = colImg\r\n else if (e.type && e.type === 'progress') temp[i].Cell = props =>
    \r\n else if (e.type && e.type === 'check') {\r\n temp[i].Cell = (props) => {\r\n if (props.value) {\r\n return
    \r\n {\r\n props.original['isChecked_'+e.accessor] = !props.original['isChecked_'+e.accessor]\r\n let list = this.state.checkedList\r\n const i = list.findIndex(item => item.rowId === props.original.ID && item.colId === e.accessor && item.mail === props.value)\r\n i > -1 ? list.splice(i, 1) : list.push({rowId: props.original.ID, colId: e.accessor , mail: props.value})\r\n }}\r\n />\r\n \r\n {props.value}\r\n \r\n
    \r\n } else return ''\r\n }\r\n }\r\n // concept\r\n else if (e.type && e.type === 'concept') temp[i].Cell = (props) => { \r\n return
    {props.value}
    \r\n }\r\n /* end admEvalConcept */\r\n });\r\n\r\n const edit = {\r\n width: 50,\r\n Cell: props => props.original.editRow(props.original.ID)} />,\r\n isButton: true,\r\n classList: 'd-none d-md-block d-lg-block d-xl-block'\r\n }\r\n\r\n const delet = {\r\n width: 50,\r\n Cell: props => props.original.deleteRow(props.original.ID)} />,\r\n isButton: true,\r\n classList: 'd-none d-md-block d-lg-block d-xl-block'\r\n }\r\n\r\n let extra = []\r\n if (this.view.extras && this.view.extras.itemsInRowsTable && this.view.extras.itemsInRowsTable.length > 0) {\r\n const maxActions = this.view.extras.maxActions || 0\r\n this.view.extras.itemsInRowsTable.slice(0, maxActions).forEach(item => {\r\n extra.push({\r\n width: 50,\r\n Cell: props =>\r\n
    \r\n {\r\n this.setState({ idItemPreSelected: props.original.ID }, () => {\r\n item.onClick(props.original, this);\r\n this.listenBtnActionsFormFilter('menu', item, props.original);\r\n });\r\n }\r\n }\r\n />\r\n \r\n {AppLocale[this.props.locale].messages[item.name]?? item.name}\r\n \r\n
    ,\r\n isButton: true,\r\n classList: 'd-none d-md-block d-lg-block d-xl-block'\r\n })\r\n });\r\n\r\n if ((this.view.extras.itemsInRowsTable.length - maxActions) > 0) {\r\n extra.push(\r\n {\r\n width: 50,\r\n Cell: props => \r\n ,\r\n isButton: true,\r\n classList: 'd-none d-md-block d-lg-block d-xl-block'\r\n }\r\n )\r\n }\r\n }\r\n\r\n /* add drop down menu for mobile screens */\r\n if (temp && temp.length > 0 && (this.view.actions.edit || this.view.actions.delete || (this.view.extras && this.view.extras.itemsInRowsTable)) && temp[0].type !== 'concept') {\r\n temp[0].Cell = props =>\r\n
    \r\n
    {temp[0].isDate ? fDate(props, temp[0].format) : temp[0].type === \"img\" ? colImg(props) : temp[0].type === \"html\" ? temp[0].cell(props) : props.value}
    \r\n
    \r\n {\r\n let r = []\r\n if (this.view.actions.edit) r.push({ icon: (this.state.writePermission ? \"simple-icon-pencil\" : \"simple-icon-eye\"), name: (this.state.writePermission ? \"Editar\" : \"Ver detalle\"), onClick: () => props.original.editRow(props.original.ID) })\r\n if (this.view.actions.delete) r.push({ icon: 'simple-icon-trash', name: 'Eliminar', onClick: () => props.original.deleteRow(props.original.ID) })\r\n if (this.view.extras && this.view.extras.itemsInRowsTable) r = r.concat(this.view.extras.itemsInRowsTable)\r\n return r\r\n })()}\r\n rowData={props.original}\r\n ctx={this}\r\n />\r\n
    \r\n
    \r\n }\r\n\r\n if (this.view.extras && this.view.extras.itemsInRowsTable) temp = temp.concat(extra)\r\n if (this.view.actions.edit) temp.push(edit)\r\n if (this.view.actions.delete) temp.push(delet)\r\n this.setState(({ columns: temp }), () => { /*console.log(this.state.columns)*/ })\r\n }\r\n\r\n query() {\r\n let pageSize = \"?PageSize=\" + this.state.pageSize\r\n let fieldsToFilter = this.state.formFilter?? {};\r\n // parent ID filter\r\n if(this.state.parentId) fieldsToFilter.parentId = this.state.parentId;\r\n // add params\r\n if(this.props.filterBy) fieldsToFilter = {...fieldsToFilter, ...this.props.filterBy}\r\n \r\n let filters = objToQueryString(fieldsToFilter, false, true);\r\n let search = this.state.search ? ('&filterBy=' + (this.view.actions.search.by || '') + '&' + (this.view.actions.search.paramName || 'filter') +'=' + this.state.search) : ''\r\n let page = this.state.currentPage ? ('&page=' + this.state.currentPage) : ''\r\n return pageSize + filters + search + page\r\n }\r\n\r\n createMsgNoRecords () {\r\n const formFilter = cloneDeep(this.state.formFilter)\r\n let msg = null\r\n if (formFilter && Object.values(formFilter).some(val => val !== null && val !== undefined && val !== \"\")) {\r\n const filters = Object.entries(formFilter).reduce((acc, [key, value]) => {\r\n if (value !== null && value !== undefined && value !== \"\") {\r\n acc[key] = value\r\n }\r\n return acc\r\n }, {})\r\n const { L, selects } = this.state\r\n const fields = this.view.filter.fields.filter(f => Object.keys(filters).indexOf(f.name) > -1 && f.type !== \"hidden\")\r\n msg = `${L[\"main.noRecordsForFilters\"]} `\r\n fields.forEach((field, index) => {\r\n if (field.type === \"select\") msg+= `${L[field.label]?? field.label}: ${selects[field.name]?.label}${index === (fields.length -1) ? \". \" : \", \"}`\r\n else msg+= `${L[field.label]?? field.label}: ${filters[field.name]}${index === (fields.length -1) ? \". \" : \", \"}`\r\n })\r\n if (this.view.actions.create) msg += L[\"main.addRecordsWithCreateButton\"]\r\n this.setState({msgNoRecords: msg})\r\n }\r\n }\r\n\r\n getData() {\r\n this.setState({ progressBar: true })\r\n let path = `${this.view.config.customPathGet || `${this.state.resource}/get/`}${this.query()}`\r\n _axios\r\n .get(path)\r\n .then(r => {\r\n if (r.status >= 0 && r.data?.RowCount > -1) {\r\n this.setState({ rowCount: r.data.RowCount, pageCount: r.data.PageCount, progressBar: false })\r\n return\r\n }\r\n if (this.view.config.remap) r = this.view.config.remap(r, this.view.config.remapRow)\r\n\r\n if (r.status >= 0) {\r\n if (r.data.Results.length === 0) {\r\n this.createMsgNoRecords()\r\n let msg = AppLocale[this.props.locale].messages[\"main.noRecords\"]\r\n this.props.insideCustomForm ? this.setState({customMsg: msg}) : NotificationManager.success(msg, AppLocale[this.props.locale].messages[\"main.info\"], 5000, null, null, 'outline')\r\n }\r\n \r\n let data = []\r\n if (this.view.config.getDataSuccess) data = this.view.config.getDataSuccess(r.data.Results)\r\n else {\r\n r.data.Results.forEach(e => {\r\n e.editRow = this.getDataById\r\n e.deleteRow = this.toggleDelete\r\n data.push(e)\r\n })\r\n }\r\n this.setState({ data: data, rowCount: r.data.RowCount })\r\n } else {\r\n this.props.insideCustomForm ? this.setState({customMsg: r.msg}) : NotificationManager.error(r.msg, 'Opps', 5000, null, null, 'outline')\r\n }\r\n this.setState({ progressBar: false })\r\n })\r\n }\r\n\r\n getDataById = (id, selectedId = true) => {\r\n if (selectedId) this.setState({idItemSelected: id})\r\n this.props.setLoader(true)\r\n var path = `${this.state.resource}/get/${id}`\r\n _axios\r\n .get(path)\r\n .then(r => {\r\n this.props.setLoader(false)\r\n\r\n if (this.view.form.remapOne) r = this.view.form.remapOne(r)\r\n\r\n if (r.status >= 0) {\r\n let fields = cloneDeep(this.state.formFields)\r\n fields.forEach((f) => {\r\n if (f.type !== 'label' && f.type !== 'alert') f.value = r.data[f.name]\r\n if (f.type === 'dropzone') f.opts.url = r.data[f.name + 'Url']\r\n // for collapsible type fields\r\n if (f.childs) f.childs = (f.childs || []).map(c => ({ ...c, value: r.data[c.name] }))\r\n // for wizard type fields\r\n if (f.steps) {\r\n f.steps = f.steps.map(step => \r\n ({ ...step, fields: step.fields.map(field =>\r\n (field.type !== 'label' && field.type !== 'alert'\r\n ? field.childs \r\n ? { ...field, childs: field.childs.map(c => ({ ...c, value: r.data[c.name] }))}\r\n : { ...field, value: r.data[field.name] }\r\n : field\r\n )\r\n )})\r\n )\r\n }\r\n // for tabs type fields\r\n if (f.tabs) f.tabs = f.tabs.map(tab => ({ ...tab, fields: tab.fields.map(field => (field.type !== 'label' && field.type !== 'alert' ? { ...field, value: r.data[field.name] } : field)) }))\r\n })\r\n\r\n this.setState({ formFields: fields }, () => {\r\n if (selectedId && !this.state.modal) this.toggle()\r\n if (this.view.form.onGetDataById) this.view.form.onGetDataById()\r\n })\r\n } else NotificationManager.error(r.msg, \"Opps\", 5000, null, null, 'outline')\r\n \r\n }).catch(e => {\r\n this.props.setLoader(false)\r\n })\r\n }\r\n\r\n uploadFiles (id) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n if (!id) return resolve('empty')\r\n id = typeof id === 'object' ? id.ID : id\r\n\r\n const dropzones = this.searchDropzones()\r\n this.setState({ dropzones: dropzones }, () => {\r\n if (this.state.dropzones.length === 0) return resolve('empty')\r\n this.props.setLoader(true)\r\n\r\n const error = (error) => {\r\n this.props.setLoader(false)\r\n return reject(error)\r\n }\r\n const setUploadActive = (data) => {\r\n if (this.state.uploadActive < this.state.dropzones.length) {\r\n // console.log('active', this.state.uploadActive)\r\n this.setState({uploadActive: this.state.uploadActive + 1}, () => {\r\n if (this.state.uploadActive >= this.state.dropzones.length) {\r\n this.props.setLoader(false)\r\n return resolve(data)\r\n }\r\n this.setState({\r\n uploadFiles: {id: id, name: this.state.dropzones[this.state.uploadActive].name, success: setUploadActive, error: error },\r\n })\r\n })\r\n }\r\n }\r\n\r\n if (this.state.dropzones.length > 0) {\r\n this.setState({uploadActive: 0}, () => {\r\n this.setState({\r\n uploadFiles: {id: id, name: this.state.dropzones[this.state.uploadActive].name, success: setUploadActive, error: error },\r\n })\r\n })\r\n }\r\n })\r\n } catch (error) {\r\n reject(error)\r\n }\r\n })\r\n }\r\n\r\n searchDropzones() {\r\n let dropzones = this.state.formFields.filter(f => f.type === 'dropzone')\r\n const wizard = this.state.formFields.find(f => f.type === \"wizard\")\r\n if (wizard && Array.isArray(wizard.steps)) {\r\n const stepId = this.state.form?.flags?.currentStepId\r\n const currentStep = wizard.steps.find(s => s.id === stepId)\r\n if (currentStep && Array.isArray(currentStep.fields)) {\r\n currentStep.fields.forEach(sf => {\r\n if (sf.type === \"dropzone\") {\r\n dropzones = [...dropzones, sf]\r\n }\r\n if (sf.type === \"fieldset\" && Array.isArray(sf.childs)) {\r\n sf.childs.forEach(f => {\r\n if (f.type === \"dropzone\") {\r\n dropzones = [...dropzones, f]\r\n }\r\n })\r\n }\r\n })\r\n }\r\n }\r\n return dropzones\r\n }\r\n\r\n setValueDropZone(form) {\r\n const dropzones = this.searchDropzones()\r\n dropzones.forEach(e => {\r\n if (form[e.name] && Array.isArray(form[e.name])) form[e.name] = null\r\n })\r\n return form\r\n }\r\n\r\n defaultValuesUploadFiles () {\r\n this.setState({\r\n dropzones: [],\r\n uploadActive: 0,\r\n uploadFiles: null,\r\n })\r\n }\r\n\r\n create() {\r\n this.validateForm().then(() => {\r\n this.props.setLoader(true)\r\n const wizard = this.state.wizard\r\n const stepMethod = wizard?.steps?.find(s => s.id === this.state.form?.flags?.currentStepId)?.method\r\n let path = this.view.config.customPathPost?? (stepMethod ? stepMethod() : `${this.state.resource}/create`)\r\n let form = cloneDeep(this.state.form)\r\n form = this.setValueDropZone(form)\r\n // modify values before post\r\n if (this.view.form.setValuesBeforePost) {\r\n form = this.view.form.setValuesBeforePost(form)\r\n }\r\n _axios\r\n .post(`${path}${this.state.parentId ? `?parentId=${this.state.parentId}` : ''}`, form)\r\n .then(r => {\r\n if (!this.view.form.onCreateSuccess) this.props.setLoader(false)\r\n ///Temp fix\r\n // if (!r.status) r = { status: 0, data: r };\r\n if (r.status === undefined || r.status === null) r = { status: 0, data: r }\r\n // TBD: user remap in axios for response format\r\n if (r.status >= 0) {\r\n this.uploadFiles(r.data).then((response) => {\r\n this.defaultValuesUploadFiles()\r\n if (this.view.actions?.create?.reloadGrid) this.getData()\r\n else if (r.data) {\r\n const ID = r.data.ID || r.data\r\n const index = this.state.data.findIndex(e => e.ID === ID )\r\n let array = [...this.state.data] // make a separate copy of the array\r\n const rm = this.view.config.remapRow ? this.view.config.remapRow(this.state.form, r.data, 'create', response) : this.state.form\r\n if (index > -1) {\r\n array[index] = { ...array[index], ...rm }\r\n } else {\r\n let newItem = { ...rm }\r\n newItem.ID = ID\r\n newItem.editRow = this.getDataById\r\n newItem.deleteRow = this.toggleDelete\r\n array.splice(0, 0, newItem)\r\n }\r\n this.setState({ data: array, animateTr: this.animateTrById(ID) }, () => {\r\n setTimeout(() => { this.setState({ animateTr: null }) }, 3000)\r\n })\r\n }\r\n if (!this.state.idItemSelected && wizard) this.handleNextStepOfWizard()\r\n process.nextTick(() => {\r\n if (this.view.form.onCreateSuccess) this.view.form.onCreateSuccess(r)\r\n else this.toggle()\r\n this.props.listenCreateSuccess && this.props.listenCreateSuccess(true)\r\n })\r\n })\r\n .catch((e) => { console.log(e) })\r\n } else {\r\n if (this.view.form.onCreateFailure) this.view.form.onCreateFailure(r)\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n\r\n edit() {\r\n this.validateForm().then(() => {\r\n this.props.setLoader(true);\r\n const wizard = this.state.wizard\r\n var path = this.view.config.customPathPost ? this.view.config.customPathPost.replace('{ID}', this.state.idItemSelected) : `${this.state.resource}/edit/${this.state.idItemSelected}`\r\n var form = cloneDeep(this.state.form)\r\n // If the editor type field has not changed its value, null must be sent\r\n let fields = cloneDeep(this.state.formFields)\r\n fields.forEach((f) => {\r\n for (const [key] of Object.entries(form)) {\r\n if (f.type === 'editor' && f.name === key) {\r\n if (form[key] === this.state.formDefault[key]) form[key] = null\r\n }\r\n /* for collapsible type fields */\r\n if (f.childs && f.childs.length > 0) {\r\n for (var i=0; i {\r\n if (!this.view.form.onEditSuccess) this.props.setLoader(false)\r\n\r\n ///Temp fix\r\n if (r.status === undefined || r.status === null) r = { status: 0, data: r }\r\n // TBD: user remap in axios for response format\r\n ///\r\n\r\n if (r.status >= 0) {\r\n this.uploadFiles(r.data).then((response) => {\r\n this.defaultValuesUploadFiles()\r\n if (this.view.form.afterEdit) this.view.form.afterEdit()\r\n if (this.view.actions?.edit?.reloadGrid) this.getData()\r\n else if (r.data) {\r\n const index = this.state.data.findIndex((e) => { return e.ID === this.state.idItemSelected })\r\n var array = [...this.state.data] // make a separate copy of the array\r\n const rm = this.view.config.remapRow ? this.view.config.remapRow(this.state.form, r.data, 'edit', response) : this.state.form\r\n array[index] = { ...array[index], ...rm }\r\n this.setState(({ data: array, animateTr: this.animateTrById(this.state.idItemSelected) }), () => {\r\n setTimeout(() => { this.setState({ animateTr: null }) }, 3000)\r\n })\r\n }\r\n if (wizard) this.handleNextStepOfWizard()\r\n if (this.view.form.onEditSuccess) this.view.form.onEditSuccess(r)\r\n else this.toggle()\r\n this.props.listenEditSuccess && this.props.listenEditSuccess(true)\r\n })\r\n .catch((e) => { /* console.log(e) */ })\r\n } else {\r\n if (this.view.form.onEditFailure) this.view.form.onEditFailure(r)\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.props.setLoader(false) })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n\r\n delete() {\r\n this.props.setLoader(true)\r\n let path = `${this.state.resource}/delete/${this.state.idItemSelected}?confirm=true`\r\n _axios\r\n .post(path)\r\n .then(r => {\r\n this.props.setLoader(false)\r\n if (r.status >= 0) {\r\n let index = this.state.data.findIndex((e) => { return e.ID === this.state.idItemSelected })\r\n let array = [...this.state.data]; // make a separate copy of the array\r\n array.splice(index, 1)\r\n this.setState({ data: array }, () => {\r\n this.toggleDelete()\r\n })\r\n this.props.listenDeleteSuccess && this.props.listenDeleteSuccess(true)\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n })\r\n .catch((e) => { this.toggleDelete(); this.props.setLoader(false) })\r\n }\r\n\r\n resetDataTable() {\r\n this.setState(({ currentPage: 1 }), () => { this.getData() })\r\n }\r\n\r\n handleChangeSearch = (e) => {\r\n this.setState({ search: e.target.value });\r\n }\r\n\r\n handleKeyPress = (event) => {\r\n if (event.key === 'Enter') this.resetDataTable()\r\n }\r\n\r\n toggle = async () => {\r\n if (!this.state.modal && this.view.form?.beforeOpenModal) {\r\n await this.view.form.beforeOpenModal()\r\n }\r\n this.setState(prevState => ({\r\n modal: !prevState.modal\r\n }), () => {\r\n if (this.state.modal) this.setState({showFormCustom: true})\r\n else {\r\n this.restoreDefaultValues()\r\n if (this.view.form.afterCloseModal) {\r\n this.view.form.afterCloseModal()\r\n }\r\n }\r\n })\r\n }\r\n\r\n togglePreview = () => {\r\n this.setState(prevState => ({\r\n modalPreview: !prevState.modalPreview\r\n }))\r\n }\r\n\r\n restoreDefaultValues = () => {\r\n this.setState({\r\n idItemSelected: null,\r\n form: null,\r\n formDefault: null,\r\n formFlags: cloneDeep(this.state.formFlagsDefault),\r\n formFields: this.view?.form?.fields,\r\n hideBtnSave: this.view?.config?.hideBtnSave,\r\n showFormCustom: false,\r\n modalPreview: false,\r\n btnCancel: \"main.cancel\",\r\n btnSave: \"main.save\",\r\n btnCreate: \"main.create\"\r\n })\r\n this.view = cloneDeep(this.viewDefault)\r\n }\r\n\r\n toggleRight = () => {\r\n this.setState(prevState => ({\r\n modalRight: !prevState.modalRight\r\n }))\r\n }\r\n\r\n toggleDelete = (id) => {\r\n this.setState(prevState => ({\r\n modalDelete: !prevState.modalDelete\r\n }), () => {\r\n this.setState(({ idItemSelected: id || null }), () => { /* console.log(this.state.idItemSelected) */ });\r\n })\r\n }\r\n\r\n showDialog = (opts) => {\r\n if(opts){\r\n this.setState(prevState => {\r\n let modalGeneric = Object.assign({}, prevState.modalGeneric);\r\n modalGeneric.title = opts.title\r\n modalGeneric.msg = opts.msg\r\n modalGeneric.action = opts.action \r\n return { modalGeneric }; \r\n })\r\n }\r\n this.setState(prevState => ({\r\n modalGenericVisible: !prevState.modalGenericVisible\r\n }), () => { });\r\n }\r\n\r\n listenStatesForm = (form) => {\r\n // console.log('statesForm', form)\r\n this.setState({ form: form })\r\n if (this.state.formDefault === null && this.state.modal) this.setState({ formDefault: form })\r\n }\r\n\r\n listenStatesFormFilter = (s) => {\r\n this.setState({ formFilter: s })\r\n }\r\n\r\n getValueLabelOfFieldSelect = (s) => {\r\n let selects = this.state.selects || {}\r\n selects = {...selects, ...s}\r\n this.setState({ selects: selects })\r\n }\r\n\r\n listenBtnActionsFormFilter = (a, s, rowData) => {\r\n if (a === 'filter') this.resetDataTable()\r\n else if (a === 'menu') {\r\n if (s.form) {\r\n this.setState({ modalRightContent: s.form, idItemPreSelected: rowData.ID }, () => {\r\n this.toggleRight();\r\n })\r\n }\r\n }\r\n }\r\n\r\n listenCurrentPage = (p) => {\r\n this.setState(({ currentPage: p }), () => { this.getData() })\r\n }\r\n\r\n animateTrById = (id) => {\r\n let f = (state, rowInfo, column) => {\r\n if (rowInfo?.row.ID === id || rowInfo?.original.ID === id) {\r\n return {\r\n style: {\r\n animationName: \"flash\",\r\n animationDuration: \"3s\"\r\n }\r\n }\r\n } else return {}\r\n }\r\n return f\r\n }\r\n\r\n getTenant = () => { var t = JSON.parse(localStorage.getItem('current_tenant')); return t ? t.id : 0 }\r\n\r\n handleNextStepOfWizard = () => {\r\n if (!this.nextStep) return\r\n const currentStep = this.state.wizard.steps.find(s => s.id === this.state.form?.flags?.currentStepId)\r\n if (currentStep.handleNextStep) currentStep.handleNextStep()\r\n else this.nextStep()\r\n }\r\n\r\n toggleDropdown = () => {\r\n this.setState({dropdown: !this.state.dropdown})\r\n }\r\n\r\n previewOfGrid = (data) => {\r\n const previewOfGrid = this.view.preview?.previewOf?.grid\r\n if (previewOfGrid) {\r\n this.setState({\r\n preview: {\r\n name: previewOfGrid.name,\r\n data: data,\r\n handleData: previewOfGrid.handleData,\r\n toggle: this.togglePreview\r\n }\r\n }, () => {\r\n if (!this.state.modalPreview && window.innerWidth >= 1150) {this.setState({modalPreview: true})}\r\n })\r\n }\r\n }\r\n\r\n previewOfForm = (form) => {\r\n const previewOfForm = this.view.preview?.previewOf?.form\r\n if (previewOfForm) {\r\n this.setState({\r\n preview: {\r\n name: previewOfForm.name,\r\n data: form,\r\n handleData: previewOfForm.handleData,\r\n toggle: this.togglePreview\r\n }\r\n }, () => {\r\n if (!this.state.modalPreview && window.innerWidth >= 1150 && this.state.showFormCustom) {this.setState({modalPreview: true})}\r\n })\r\n }\r\n }\r\n\r\n menuOptions = () => {\r\n const options = []\r\n if (this.view.actions?.export) options.push({name: \"main.excel\", onClick: () => { this.ctxExportToExcel.getData() }})\r\n if (this.view.actions?.print) options.push({name: \"main.print\", onClick: () => { this.ctxExportToPrint.getData() }})\r\n if (this.view.actions?.import) options.push({name: `${this.view.id}.importSyncMenu`, onClick: () => { this.ctxImportTo.toggle() }})\r\n return options \r\n }\r\n\r\n render() {\r\n const { locale, params } = this.props\r\n const { L } = this.state\r\n const TITLE = this.view ? this.view.config.customTitle?? (locale === 'es' ? this.view.label : this.view.labelEn) : \"\"\r\n return (\r\n this.state.authorized && \r\n {/* HEADER */}\r\n {!this.props.onlyCrud &&\r\n \r\n \r\n \r\n {/* TITLE */}\r\n {!this.view.config.hiddenTitle && \r\n \r\n {/*!this.view.config.hiddenTitle && */}\r\n { (this.props.insideCustomForm ?
    { TITLE }
    :

    { TITLE }

    )}\r\n
    \r\n }\r\n \r\n {/* ACCIONES EXTRA */}\r\n {this.view.extras?.items && (this.view.extras.items.length > 1 || this.view.extras.maxItems >= 1) &&\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n\r\n {params?.setupMsg && {params.setupMsg}}\r\n\r\n {/* FORM EXTRAS */}\r\n {this.view.extras?.forms && \r\n \r\n {this.view.extras.forms.map((f, index) => {\r\n if (f.spacer) return ()\r\n else if (f.type === 'sideToSide') return (\r\n \r\n \r\n \r\n )\r\n else return (\r\n \r\n
    \r\n f.onSuccess(s) : () => { }}\r\n remap={f.remap}\r\n sideToSide={f.sideToSide}\r\n />\r\n
    \r\n
    \r\n )\r\n })}\r\n
    \r\n }\r\n \r\n {/* FILTERS */}\r\n {this.view.filter &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {/* BUTONS ACTIONS */}\r\n {!this.view.config.hiddenButtons &&\r\n \r\n \r\n
    \r\n
    \r\n {/* SEARCH */}\r\n {this.view.actions?.search &&\r\n
    \r\n \r\n { this.setState(({ search: '' }), () => { this.resetDataTable() }) }}\r\n >\r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n {/* CREATE */}\r\n {this.view.actions?.create &&\r\n \r\n }\r\n\r\n {/* IMPORT DATA */}\r\n {this.view.actions?.import && \r\n this.ctxImportTo = ctx}\r\n hideButton={this.state.data.length > 0}\r\n />\r\n }\r\n\r\n {/* OTHER BUTTONS */}\r\n {this.view.extras?.items && this.view.extras.items.length === 1 && !this.view.extras.maxItems &&\r\n \r\n }\r\n\r\n {(this.view.actions?.export || this.view.actions?.print || this.view.actions?.import) && }\r\n
    \r\n \r\n {/* EXPORT EXCEL */}\r\n {this.view.actions?.export &&\r\n this.ctxExportToExcel = ctx}\r\n />\r\n }\r\n\r\n {/* PRINT */}\r\n {this.view.actions?.print &&\r\n this.ctxExportToPrint = ctx}\r\n />\r\n }\r\n\r\n {/* DATATABLE CONTROLS */}\r\n {/*\r\n {this.view.config && this.view.config.list &&\r\n
    \r\n { this.setState({ dataTableList: false }) }}\r\n >\r\n \r\n Mostrar tabla\r\n
    \r\n { this.setState({ dataTableList: true }) }}\r\n >\r\n \r\n Mostrar lista\r\n
    \r\n \r\n }\r\n */}\r\n \r\n \r\n \r\n \r\n }\r\n\r\n {/* DATATABLE */}\r\n {!this.view.config.hiddenGrid &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {/* CUSTOM COMPONENT */}\r\n {this.view.customComponent &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n }\r\n\r\n {/* MODAL CREATE/UPDATE */}\r\n {this.state.formFields?.length > 0 &&\r\n \r\n \r\n {(TITLE ? `${TITLE}: ` : \"\")}\r\n {this.state.idItemSelected ? L[\"main.edit\"] : L[\"main.create\"]}\r\n \r\n \r\n {this.state.formFields.length > 0 && this.state.showFormCustom &&\r\n this.validateFor = fn}\r\n validate={fn => this.validateForm = fn}\r\n nextStep={fn => this.nextStep = fn}\r\n listenBtnActions={this.listenBtnActionsFormFilter}\r\n listenChangeStep={this.listenChangeStep}\r\n listenStates={this.listenStatesForm}\r\n didUpdateStates={true}\r\n />\r\n }\r\n \r\n \r\n {!this.state.hideBtnSave && this.state.writePermission &&\r\n { this.view.form.handleSaveChanges ? this.view.form.handleSaveChanges (this) : (this.state.idItemSelected ? this.edit() : this.create()) }}\r\n >\r\n {this.state.idItemSelected\r\n ? L[this.state.btnSave]\r\n : this.state.wizard ? ((this.state.form?.flags?.currentStepIndex + 1 >= this.state.form?.flags?.stepsLength ? L[\"main.finish\"] : L[\"main.next\"])) : L[this.state.btnCreate]\r\n }\r\n \r\n }\r\n \r\n \r\n \r\n }\r\n \r\n {/* MODAL FOR CUSTOM MENU FORMS */}\r\n \r\n {this.state.modalRight?L[this.state.modalRightContent.name]?? this.state.modalRightContent.name:''}\r\n \r\n {this.state.modalRight && }\r\n \r\n \r\n\r\n {/* MODAL PREVIEW */}\r\n {this.state.modalPreview && (this.view.preview?.renderIf ? this.view.preview.renderIf() : true) &&\r\n \r\n {this.state.preview && }\r\n \r\n }\r\n \r\n {/* MODAL DELETE */}\r\n { r ? this.delete() : this.toggleDelete() }}\r\n >\r\n \r\n\r\n {/* MODAL GENERIC */}\r\n { this.state.modalGeneric.action(r); this.showDialog() }}\r\n >\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ settings, menu, utils, authUser }) => {\r\n const { menuItems } = menu\r\n const { locale } = settings\r\n const { deepLink, params } = utils\r\n const { userAdmin } = authUser\r\n return { locale, menuItems, deepLink, userAdmin, params }\r\n}\r\n\r\nexport default connect(mapStateToProps, { setLoader, setDeeplink, setParams })(CrudGrid)","import _moment from \"../../libs/moment\"\r\nconst dateRange = (props) => {\r\n const customRange = props?.range?? {}\r\n const customFrom = props?.from?? {}\r\n const customTo = props?.to?? {}\r\n\r\n const rangeName = customRange.name?? \"range\"\r\n const fromName = customFrom.name?? \"from\"\r\n const toName = customTo.name?? \"to\"\r\n\r\n const defaultOptionsFormFilter = [\r\n {value: 0, label: \"main.lastWeek\"},\r\n {value: 1, label: \"main.lastMonth\"},\r\n {value: 2, label: \"main.custom\"}\r\n ]\r\n\r\n const defaultOptionsFormCreateUpdate = [\r\n {value: 0, label: \"main.onlyForToday\"},\r\n {value: 1, label: \"main.oneWeekfromToday\"},\r\n {value: 2, label: \"main.oneMonthFromToday\"},\r\n {value: 3, label: \"main.anotherDateRange\"}\r\n ]\r\n\r\n const defaultOnChangeFormFilter = (ctx) => {\r\n if (ctx.state[rangeName] === 0) ctx.setState({\r\n [fromName]: _moment().add(-7, 'days').format('YYYY-MM-DD'),\r\n [toName]: _moment().format('YYYY-MM-DD')\r\n })\r\n else if (ctx.state[rangeName] === 1) ctx.setState({\r\n [fromName]: _moment().add(-30, 'days').format('YYYY-MM-DD'),\r\n [toName]: _moment().format('YYYY-MM-DD')\r\n })\r\n else ctx.setState({[fromName]: null, [toName]: null})\r\n }\r\n\r\n const defaultOnChangeFormCreateUpdate = (ctx) => {\r\n if (ctx.state[rangeName] === 0) ctx.setState({[fromName]: _moment().startOf('day').format('YYYY-MM-DD HH:mm:ss'), [toName]: _moment().endOf('day').format('YYYY-MM-DD HH:mm:ss')})\r\n else if (ctx.state[rangeName] === 1) ctx.setState({[fromName]: _moment().format('YYYY-MM-DD'), [toName]: _moment().add(+7, 'days').format('YYYY-MM-DD')})\r\n else if (ctx.state[rangeName] === 2) ctx.setState({[fromName]: _moment().format('YYYY-MM-DD'), [toName]: _moment().add(+30, 'days').format('YYYY-MM-DD')})\r\n else if (ctx.state[rangeName] === 3) ctx.setState({[fromName]: null, [toName]: null})\r\n }\r\n\r\n const items = props?.isFormCrud ? defaultOptionsFormCreateUpdate : defaultOptionsFormFilter\r\n const onChange = props?.isFormCrud ? defaultOnChangeFormCreateUpdate : defaultOnChangeFormFilter\r\n\r\n let range = {\r\n name: rangeName,\r\n value: null,\r\n type: \"select\",\r\n label: \"main.dateRange\",\r\n placeholder: \"main.dateRange\",\r\n opts: {\r\n style: 'float-label',\r\n items: items\r\n },\r\n onChange: onChange\r\n }\r\n\r\n const rangeOpts = range.opts?? {}\r\n const customRangeOpts = customRange.opts?? {}\r\n range = {...range, ...customRange}\r\n range.opts = {...rangeOpts, ...customRangeOpts}\r\n\r\n let from = {\r\n name: fromName,\r\n value: null,\r\n type: \"date\",\r\n label: \"main.from\",\r\n opts: {\r\n style: 'float-label',\r\n selectsStart: true,\r\n startDate: (ctx) => ctx.state[fromName] ? _moment(ctx.state[fromName]) : null,\r\n endDate: (ctx) => ctx.state[toName] ? _moment(ctx.state[toName]) : null\r\n },\r\n renderIf: props?.isFormCrud \r\n ? ctx => (ctx.state[fromName] || ctx.state[rangeName] === 3) && (range.renderIf ? range.renderIf(ctx) : true)\r\n : ctx => ctx.state[rangeName] === 2 && (range.renderIf ? range.renderIf(ctx) : true)\r\n }\r\n\r\n const fromOpts = from.opts?? {}\r\n const customFromOpts = customFrom.opts?? {}\r\n from = {...from, ...customFrom}\r\n from.opts = {...fromOpts, ...customFromOpts}\r\n\r\n let to = {\r\n name: toName,\r\n value: null,\r\n type: \"date\",\r\n label: \"main.to\",\r\n opts: {\r\n style: 'float-label',\r\n selectsEnd: true,\r\n startDate: (ctx) => _moment(ctx.state[fromName]),\r\n endDate: (ctx) => _moment(ctx.state[toName]),\r\n minDate: (ctx) => _moment(ctx.state[fromName])\r\n },\r\n renderIf: props?.isFormCrud \r\n ? ctx => (ctx.state[toName] || (ctx.state[rangeName] === 3 && ctx.state[fromName])) && (range.renderIf ? range.renderIf(ctx) : true)\r\n : ctx => (ctx.state[rangeName] === 2 && ctx.state[fromName]) && (range.renderIf ? range.renderIf(ctx) : true)\r\n }\r\n\r\n const toOpts = to.opts?? {}\r\n const customToOpts = customTo.opts?? {}\r\n to = {...to, ...customTo}\r\n to.opts = {...toOpts, ...customToOpts}\r\n\r\n return [range, from, to]\r\n}\r\nexport default dateRange","import { defaultDirection } from \"../config/defaultValues\";\r\nimport _moment from \"../libs/moment\";\r\nconst querystring = require('querystring')\r\n\r\nexport const mapOrder = (array, order, key) => {\r\n array.sort(function (a, b) {\r\n var A = a[key], B = b[key];\r\n if (order.indexOf(A + \"\") > order.indexOf(B + \"\")) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n return array;\r\n};\r\n\r\nexport const getDirection = () => {\r\n let direction = defaultDirection;\r\n if (localStorage.getItem(\"direction\")) {\r\n const localValue = localStorage.getItem(\"direction\");\r\n if (localValue === \"rtl\" || localValue === \"ltr\") {\r\n direction = localValue;\r\n }\r\n }\r\n return {\r\n direction,\r\n isRtl: direction === \"rtl\"\r\n };\r\n};\r\n\r\nexport const setDirection = localValue => {\r\n let direction = \"ltr\";\r\n if (localValue === \"rtl\" || localValue === \"ltr\") {\r\n direction = localValue;\r\n }\r\n localStorage.setItem(\"direction\", direction);\r\n};\r\n\r\n// devuelve un objeto con solo los atrbibutos que tienen un valor valido\r\nexport const objToQueryString = (obj, questionMark, ampersand) => {\r\n if (!obj) return ''\r\n let o = JSON.parse(JSON.stringify(obj))\r\n for(var key in o) {\r\n if(o[key] === null || o[key] === undefined || o[key] === \"\" || o[key] === \" \") delete o[key]\r\n if (typeof o[key] === \"object\") o[key] = o[key].value\r\n }\r\n if (Object.keys(o).length === 0 && o.constructor === Object) return ''\r\n else return (questionMark ? '?' : '') + (ampersand ? '&' : '') + querystring.stringify(o)\r\n}\r\n\r\nexport const openLink = (url) => {\r\n window.open(url, '_blank')\r\n}\r\n\r\nexport const resizeImage = (str, maxWidth = 800) => {\r\n return new Promise((resolve) => {\r\n let img = new Image()\r\n img.src = str\r\n img.onload = () => {\r\n let canvas = document.createElement('canvas')\r\n let w = maxWidth\r\n let r = w / img.width\r\n let h = img.height * r\r\n canvas.width = w\r\n canvas.height = h\r\n let ctx = canvas.getContext('2d')\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height)\r\n resolve(canvas.toDataURL('image/jpeg'))\r\n }\r\n })\r\n}\r\n\r\nexport const rgbToHex = (rgb) => {\r\n var match = rgb.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\r\n \r\n if (!match) {\r\n return rgb;\r\n }\r\n \r\n var r = parseInt(match[1]).toString(16);\r\n var g = parseInt(match[2]).toString(16);\r\n var b = parseInt(match[3]).toString(16);\r\n \r\n if (r.length === 1) r = \"0\" + r;\r\n if (g.length === 1) g = \"0\" + g;\r\n if (b.length === 1) b = \"0\" + b;\r\n \r\n return \"#\" + r + g + b;\r\n}\r\n\r\nexport const getFileExtension = (filename) => {\r\n if (typeof filename !== \"string\") return\r\n const extension = filename.split('.').pop();\r\n return extension.toLowerCase();\r\n}\r\n\r\nexport const decimalFormat = (num) => {\r\n const parsedNum = Number(num)\r\n return !isNaN(parsedNum) ? parsedNum.toFixed(2) : ''\r\n}\r\n\r\nexport const addPrefixToObjectKeys = (obj, prefix) => {\r\n const result = {};\r\n for (const key in obj) {\r\n result[`${prefix}${key}`] = obj[key];\r\n }\r\n return result;\r\n}\r\n\r\nexport const getValueOfParameterFromURL = (param, href) => {\r\n const url = window.location.href?? href;\r\n const length = `${param}=`.length\r\n const indiceInicio = url.indexOf(`${param}=`);\r\n\r\n if (indiceInicio !== -1) {\r\n var indiceFin = url.indexOf(\"&\", indiceInicio);\r\n var value;\r\n \r\n if (indiceFin !== -1) {\r\n value = url.substring(indiceInicio + length, indiceFin);\r\n } else {\r\n value = url.substring(indiceInicio + length);\r\n }\r\n\r\n value = decodeURIComponent(value);\r\n return value;\r\n } else return null;\r\n}\r\n\r\nexport const isAndroidOrIos = () => {\r\n return /Android/i.test(navigator.userAgent) === true || /iPhone|iPad/i.test(navigator.userAgent) === true;\r\n}\r\n\r\nexport const goToWhatsApp = (phone, text = \"\", countryCode = \"\") => {\r\n // si es dispositivo android o ios no emulado abrira el app\r\n if ((navigator.userAgent.match(/(android|ip(hone|ad|od))/i) && (!navigator.platform || !navigator.platform.match(/(win|mac)/i))) || navigator.userAgent.match(/(windows phone|iemobile|wpdesktop|blackberry)/i)) window.open(`whatsapp://send?${phone ? (`phone=${countryCode}${phone}&`) : ''}text=${encodeURIComponent(text)}`, '_system')\r\n else window.open(`https://web.whatsapp.com/send?${phone ? (`phone=${countryCode}${phone}&`) : ''}text=${encodeURIComponent(text)}`, '_blank')\r\n}\r\n\r\nexport const findModuleInMenu = (menu, searchBy, value) => {\r\n let modOption = menu.find(m => m[searchBy] === value)\r\n // look in submenus\r\n if (modOption === undefined) {\r\n menu.forEach(m => {\r\n if (modOption === undefined && m.subs?.length > 0) {\r\n modOption = m.subs.find((sm) => sm[searchBy] === value)\r\n }\r\n })\r\n }\r\n return modOption\r\n}\r\n\r\nexport const generateGUID = () => {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n var r = Math.random() * 16 | 0;\r\n var v = c === 'x' ? r : ((r & 0x3) | 0x8);\r\n return v.toString(16);\r\n });\r\n}\r\n\r\nexport const replaceWords = (str, replacements) => {\r\n for (let word in replacements) {\r\n str = str.replace(word, replacements[word])\r\n }\r\n return str\r\n}\r\n\r\nexport const whatsToHtml = (msg) => {\r\n if (!msg) return;\r\n\r\n return msg\r\n .replace(/~(~*[^~\\n]+~*)~/g, '$1')\r\n .replace(/_(_*[^_\\n]+_*)_/g, '$1')\r\n .replace(/\\*(\\**[^*\\n]+\\**)\\*/g, '$1')\r\n .replace(/```([^`]+)```/g, '$1')\r\n .replace(/(?:\\r\\n|\\r|\\n)/g, '
    ');\r\n}\r\n\r\nexport const getNextDayOfWeek = (dayOfWeek) => {\r\n if (dayOfWeek < 0 || dayOfWeek > 6) {\r\n throw new Error('dayOfWeek must be between 0 (Sunday) and 6 (Saturday)')\r\n }\r\n\r\n const today = _moment()\r\n const currentDay = today.day()\r\n let daysUntilNext = (dayOfWeek - currentDay + 7) % 7\r\n \r\n if (daysUntilNext === 0) {\r\n daysUntilNext = 7\r\n }\r\n\r\n const nextDay = today.add(daysUntilNext, 'days')\r\n nextDay.startOf('day')\r\n\r\n return nextDay.format('YYYY-MM-DD')\r\n}","import React, { Component } from \"react\";\r\nimport { setLoader } from \"../../redux/actions\";\r\nimport {\r\n Card,\r\n CardBody,\r\n CardTitle\r\n} from \"reactstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport FormCustom from \"../../components/utils/FormCustom\";\r\nimport _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport { cloneDeep } from \"lodash\"\r\nimport AppLocale from \"../../config/lang\";\r\n\r\nclass FormSmart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n formFields: props.fields,\r\n form: null,\r\n loaded: false,\r\n prevState: null,\r\n progressBar: false,\r\n // upload files\r\n dropzones: [],\r\n uploadActive: -1,\r\n uploadFiles: null,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.listenStates) this.props.listenStates(this.state.formFields)\r\n setTimeout(() => {\r\n this.getMyData();\r\n }, 300);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (this.state.formFields !== prevState.formFields) {\r\n if (this.props.listenStates) this.props.listenStates(this.state.formFields)\r\n }\r\n }\r\n\r\n listenStatesForm = (s) => {\r\n if (!this.props.fields) return\r\n let fields = cloneDeep(this.props.fields);\r\n fields.forEach((f, i) => {\r\n for (const [key, val] of Object.entries(s)) {\r\n if (f.name === key) fields[i].value = val\r\n }\r\n });\r\n\r\n this.setState({ formFields: fields, form: s });\r\n\r\n // Detect changes in form\r\n if (this.state.loaded && this.state.prevState !== null && this.state.prevState !== s) {\r\n if (this.props.buttons) this.props.buttons[0].disabled = false;\r\n this.forceUpdate();\r\n }\r\n }\r\n\r\n listenBtnActionsFormFilter = (a, s) => {\r\n if (a === 'save') {\r\n this.postMyData();\r\n }\r\n }\r\n\r\n uploadFiles (id) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.setState({ dropzones: this.props.fields.filter((e) => { return e.type === 'dropzone'}) }, () => {\r\n if (this.state.dropzones.length === 0) return resolve('empty')\r\n\r\n this.props.setLoader(true)\r\n\r\n let error = (e) => {\r\n this.setState({\r\n dropzones: [],\r\n uploadActive: -1,\r\n uploadFiles: null,\r\n })\r\n this.props.setLoader(false)\r\n reject(e)\r\n }\r\n\r\n let setUploadActive = () => {\r\n if (this.state.uploadActive < this.state.dropzones.length) {\r\n this.setState({\r\n uploadActive: this.state.uploadActive + 1}, () => {\r\n if (this.state.uploadActive >= this.state.dropzones.length) {\r\n this.props.setLoader(false)\r\n return resolve('ok')\r\n }\r\n this.setState({\r\n uploadFiles: {id: id, name: this.state.dropzones[this.state.uploadActive].name, success: setUploadActive, error: error },\r\n })\r\n })\r\n }\r\n }\r\n\r\n if (this.state.dropzones.length > 0) {\r\n this.setState({uploadActive: 0}, () => {\r\n this.setState({\r\n uploadFiles: {id: id, name: this.state.dropzones[this.state.uploadActive].name, success: setUploadActive, error: error },\r\n })\r\n })\r\n }\r\n })\r\n } catch (error) {\r\n reject(error)\r\n }\r\n })\r\n }\r\n\r\n getMyData() {\r\n var path = this.props.getUrl;\r\n let fields = cloneDeep(this.props.fields)\r\n\r\n if(!path && this.props.remapGET) {\r\n fields.forEach((f, i) => {\r\n for (const [key, val] of Object.entries(this.props.remapGET())) {\r\n if (f.name === key) fields[i].value = val\r\n }\r\n });\r\n\r\n this.setState({ formFields: fields, loaded: true, progressBar: false });\r\n this.setState({ prevState: this.state });\r\n return;\r\n }\r\n \r\n if(!path) {\r\n this.setState({ loaded: true });\r\n this.setState({ prevState: this.state });\r\n return;\r\n }\r\n\r\n let R = (r) => {\r\n if (this.props.remapGET) r = this.props.remapGET(r);\r\n else if (r && r.data) r = r.data;\r\n\r\n if (r) {\r\n fields.forEach((f, i) => {\r\n for (const [key, val] of Object.entries(r)) {\r\n if (f.name === key) fields[i].value = val\r\n }\r\n });\r\n }\r\n \r\n this.setState({ formFields: fields, loaded: true, progressBar: false });\r\n this.setState({ prevState: this.state });\r\n\r\n // disable save button\r\n if (this.props.buttons) this.props.buttons[0].disabled = true;\r\n this.forceUpdate();\r\n };\r\n\r\n if (!path) R();\r\n else _axios\r\n .get(path)\r\n .then(R).catch(e => {\r\n console.log(e);\r\n })\r\n }\r\n\r\n postMyData() {\r\n this.validateForm().then(() => {\r\n this.setState({ progressBar: true });\r\n this.props.buttons[0].disabled = true;\r\n this.forceUpdate();\r\n\r\n var path = this.props.postUrl;\r\n\r\n let body = cloneDeep(this.state.form)\r\n delete body.flags\r\n delete body.selectedField\r\n\r\n _axios\r\n .post(path, body)\r\n .then(r => {\r\n this.setState({ progressBar: false });\r\n\r\n if (r.status === 0) {\r\n this.uploadFiles(r.data).then((response) => {\r\n NotificationManager.success(r.msg || this.props.okMsg, this.props.title, 5000, null, null, 'outline');\r\n if (this.props.onSuccess) this.props.onSuccess(this)\r\n }).catch(e => {\r\n this.props.buttons[0].disabled = false;\r\n this.forceUpdate();\r\n console.log(e);\r\n });\r\n }\r\n else {\r\n NotificationManager.error(r.msg, this.props.title, 10000, null, null, 'outline');\r\n this.props.buttons[0].disabled = false;\r\n this.forceUpdate();\r\n }\r\n })\r\n .catch((e) => {\r\n this.props.buttons[0].disabled = false;\r\n this.forceUpdate();\r\n })\r\n })\r\n .catch(e => {\r\n NotificationManager.error(\"Campos requeridos\", \"Completar los campos requeridos\", 3000, null, null, 'outline')\r\n })\r\n }\r\n\r\n getSkeleton() {\r\n if (!this.state.formFields) return\r\n let temp = cloneDeep(this.state.formFields);\r\n\r\n temp.forEach(e => {\r\n if (['label', 'dropzone'].indexOf(e.type) === -1) e.value = e.value === true || e.value === false ? false : '...';\r\n });\r\n\r\n return temp;\r\n }\r\n\r\n showTooltip(field) {\r\n if (this.props.listenBtnActions) this.props.listenBtnActions('tooltip', field);\r\n }\r\n\r\n render() {\r\n const { locale } = this.props\r\n const L = AppLocale[locale].messages\r\n const p = this.props\r\n return (\r\n \r\n
    {this.state.progressBar &&
    }
    \r\n \r\n {p.title && {L[p.title]?? p.title}}\r\n {!this.state.loaded &&
    }\r\n {this.state.loaded && this.validateForm = ctx}\r\n onTooltip={e => this.showTooltip(e)}\r\n uploadFiles={this.state.uploadFiles}\r\n detailGrid={this.props.detailGrid}\r\n subforms={this.props.subforms}\r\n />}\r\n
    \r\n
    \r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = ({ settings }) => {\r\n const { locale } = settings\r\n return { locale };\r\n};\r\n\r\nexport default connect(mapStateToProps, { setLoader })(FormSmart);","const data = [\r\n { value: 0, label: \"Acceso básico\" },\r\n { value: 2, label: \"Asesores / Asistentes\" },\r\n { value: 3, label: \"Coordinador Curso\" },\r\n { value: 4, label: \"Tutores\" },\r\n { value: 5, label: \"Profesores / Instructores\" },\r\n { value: 6, label: \"Psicólogos\" },\r\n { value: 7, label: \"Supervisión académica\" },\r\n { value: 8, label: \"Staff médico\" },\r\n { value: 9, label: \"Usuarios externos de app\" },\r\n { value: 10, label: \"Usuarios externos de admin\" },\r\n { value: 20, label: \"Coordinación de nivel\" },\r\n { value: 90, label: \"Directivos\" },\r\n { value: 95, label: \"Admins\" },\r\n { value: 99, label: \"API\" },\r\n { value: 100, label: \"Super-Admins\" }\r\n]\r\nexport default data\r\n ","import moment from \"moment\"\r\n\r\nexport default (context) => {\r\n let years = []\r\n let year = 2021\r\n const currentYear = parseInt(moment().format('Y'))\r\n while (year <= currentYear) {\r\n years.push({ value: year, label: year.toString() })\r\n year++\r\n }\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n customPathGet: \"admOrder/getGrid\",\r\n customPathPost: \"admOrder/createbulk\"\r\n },\r\n \r\n actions: {\r\n create: {\r\n reloadGrid: true,\r\n btn: (ctx) => {\r\n ctx.state.formFlags.bulk = false\r\n ctx.toggle();\r\n }\r\n },\r\n edit: false,\r\n delete: false,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n extras: {\r\n items: [\r\n { icon: 'simple-icon-reload', name: 'En masivo', onClick: (ctx) => {\r\n ctx.state.formFlags.bulk = true\r\n ctx.toggle();\r\n } \r\n }\r\n ],\r\n itemsInRowsTable: [\r\n { icon: 'simple-icon-eye', name: 'Ver mensualidades', onClick: (rowData, ctx) => {\r\n let obj = {\r\n module: 'admOrder',\r\n params: [\r\n {\r\n name: \"studentId\",\r\n value: {value: rowData.ID, label: rowData.name},\r\n type: \"select\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admStudent/get?pick=true\",\r\n withImg: true\r\n }\r\n },\r\n {\r\n name: \"range\",\r\n value: 2,\r\n type: \"select\",\r\n label: \"main.dateRange\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: 0, label: \"main.lastWeek\"},\r\n {value: 1, label: \"main.lastMonth\"},\r\n {value: 2, label: \"main.custom\"}\r\n ]\r\n },\r\n onChange: (ctx) => {\r\n if (ctx.state.range === 0) ctx.setState({from: moment().add(-7, 'days').format(), to: moment().format()})\r\n else if (ctx.state.range === 1) ctx.setState({from: moment().add(-30, 'days').format(), to: moment().format()})\r\n // else ctx.setState({from: null, to: null})\r\n }\r\n },\r\n {\r\n name: \"from\",\r\n value: new Date(ctx.state.formFilter.year,0,1),\r\n type: \"date\",\r\n label: \"main.from\",\r\n opts: {\r\n style: 'float-label',\r\n selectsStart: true,\r\n startDate: (ctx) => ctx.state.from ? moment(ctx.state.from) : null,\r\n endDate: (ctx) => ctx.state.to ? moment(ctx.state.to) : null\r\n },\r\n renderIf: ctx => ctx.state.range === 2\r\n },\r\n {\r\n name: \"to\",\r\n value: new Date(ctx.state.formFilter.year+1,0,1),\r\n type: \"date\",\r\n label: \"main.to\",\r\n opts: {\r\n style: 'float-label',\r\n selectsEnd: true,\r\n startDate: (ctx) => moment(ctx.state.from),\r\n endDate: (ctx) => moment(ctx.state.to),\r\n minDate: (ctx) => moment(ctx.state.from)\r\n },\r\n renderIf: ctx => ctx.state.range === 2 && ctx.state.from\r\n }\r\n ],\r\n type: 0,\r\n keepFilters: true\r\n }\r\n ctx.props.setDeeplink(obj, ctx.props.history)\r\n }\r\n },\r\n { icon: 'simple-icon-eye', name: 'Ver pagos', onClick: (rowData, ctx) => {\r\n let obj = {\r\n module: 'admBilling',\r\n params: [\r\n {\r\n name: \"studentId\",\r\n value: {value: rowData.ID, label: rowData.name},\r\n type: \"select\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admStudent/get?pick=true\",\r\n withImg: true\r\n }\r\n }\r\n ],\r\n type: 0,\r\n keepFilters: true\r\n }\r\n ctx.props.setDeeplink(obj, ctx.props.history)\r\n }\r\n }\r\n ]\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"year\",\r\n value: currentYear,\r\n type: \"select\",\r\n label: \"Año\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: years\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admSection/get?pick=true\"\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return ctx.state.year || ctx.state.sectionId },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n flags:{\r\n bulk: false\r\n },\r\n setValuesBeforePost: (values) => {\r\n values.months = values.months || []\r\n values.userIdsFor = values.userIdsFor || []\r\n values.userIdsForBulk = values.userIdsForBulk || null\r\n values.forYear = values.forYear ? parseInt(values.forYear) : 0\r\n delete values.flags\r\n return values\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"userIdsFor\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n rules: 'required',\r\n renderIf: (ctx) => { return !ctx.state.flags.bulk },\r\n opts: {\r\n style: 'float-label',\r\n isMulti: true,\r\n searchOnline: true,\r\n path: \"/admStudent/get?pick=true\",\r\n withImg: true\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"userIdsForBulk\",\r\n value: \"\",\r\n type: \"textarea\",\r\n label: \"Para los siguientes alumnos\",\r\n rules: 'required',\r\n renderIf: (ctx) => { return ctx.state.flags.bulk },\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"recurrent\",\r\n value: false,\r\n type: \"switch\",\r\n hint: \"Recurrente\",\r\n label: \"El último día del mes\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"months\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Para meses\",\r\n rules: 'required',\r\n renderIf: (ctx) => { return ctx.state.recurrent },\r\n opts: {\r\n style: 'float-label',\r\n isMulti: true,\r\n items: [\r\n {\r\n value: 1,\r\n label: \"Enero\"\r\n },\r\n {\r\n value: 2,\r\n label: \"Febrero\"\r\n },\r\n {\r\n value: 3,\r\n label: \"Marzo\"\r\n },\r\n {\r\n value: 4,\r\n label: \"Abril\"\r\n },\r\n {\r\n value: 5,\r\n label: \"Mayo\"\r\n },\r\n {\r\n value: 6,\r\n label: \"Junio\"\r\n },\r\n {\r\n value: 7,\r\n label: \"Julio\"\r\n },\r\n {\r\n value: 8,\r\n label: \"Agosto\"\r\n },\r\n {\r\n value: 9,\r\n label: \"Setiembre\"\r\n },\r\n {\r\n value: 10,\r\n label: \"Octubre\"\r\n },\r\n {\r\n value: 11,\r\n label: \"Noviembre\"\r\n },\r\n {\r\n value: 12,\r\n label: \"Diciembre\"\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"forYear\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Para año\",\r\n rules: 'required',\r\n renderIf: (ctx) => { return ctx.state.recurrent },\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admActivity/get?type=ayr\",\r\n remap: (r) => {\r\n return {\r\n data: {\r\n Results: r.data.Results.map(e => e = {ID: moment(e.startDate).format('Y'), name: moment(e.startDate).format('Y')}),\r\n },\r\n msg: r.msg,\r\n status: r.status\r\n }\r\n }\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"brief\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Descripción / Concepto general\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"dueDate\",\r\n value: null,\r\n type: \"date\",\r\n label: \"Fecha de vencimiento\",\r\n rules: 'required',\r\n renderIf: (ctx) => { return !ctx.state.recurrent },\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"concept1\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Concepto 1\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"concept1amount\",\r\n value: null,\r\n type: \"number\",\r\n label: \"Monto 1\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"concept2\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Concepto 2\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"concept2amount\",\r\n value: null,\r\n type: \"number\",\r\n label: \"Monto 2\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"concept3\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Concepto 3\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"concept3amount\",\r\n value: null,\r\n type: \"number\",\r\n label: \"Monto 3\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"clearDetail\",\r\n value: false,\r\n type: \"switch\",\r\n hint: \"Eliminar conceptos existentes\",\r\n label: 'Se reenplazarán los conceptos existentes por los conceptos de arriba',\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => ctx.state.recurrent,\r\n },\r\n {\r\n col: 12,\r\n name: \"hasPenalty\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Cobrar penalidad por pago tardío\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\",\r\n minWidth: 60\r\n },\r\n {\r\n Header: \"Nombre\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Grado / Sección\",\r\n accessor: \"sectionTag\"\r\n },\r\n {\r\n Header: \"ID Externo\",\r\n accessor: \"externalId\"\r\n },\r\n {\r\n Header: \"1\",\r\n accessor: \"M1\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"2\",\r\n accessor: \"M2\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"3\",\r\n accessor: \"M3\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"4\",\r\n accessor: \"M4\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"5\",\r\n accessor: \"M5\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"6\",\r\n accessor: \"M6\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"7\",\r\n accessor: \"M7\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"8\",\r\n accessor: \"M8\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"9\",\r\n accessor: \"M9\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"10\",\r\n accessor: \"M10\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"11\",\r\n accessor: \"M11\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"12\",\r\n accessor: \"M12\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"Beca\",\r\n accessor: \"condition\",\r\n isBool: true,\r\n minWidth: 50\r\n }\r\n ]\r\n }\r\n}","import module_admOrderGrid from './admOrderGrid'\r\nimport { findModuleInMenu } from \"../../helpers/Utils\"\r\nconst admOrderGrid = module_admOrderGrid()\r\n\r\nlet setView = (ctx) => {\r\n ctx.view.config.customPathPost = admOrderGrid.config.customPathPost\r\n ctx.view.form = admOrderGrid.form\r\n ctx.state.formFlagsDefault = admOrderGrid.form.flags\r\n ctx.state.formFlags = admOrderGrid.form.flags\r\n}\r\n\r\nexport default (context) => {\r\n const admOrderDetail = () => {\r\n return context.state.idItemSelected ?\r\n {\r\n module: 'admOrderDetail',\r\n parentIdField: 'ID'\r\n } : null\r\n }\r\n\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false\r\n },\r\n\r\n actions: {\r\n create: {\r\n reloadGrid: true,\r\n btn: (ctx) => {\r\n setView(ctx)\r\n ctx.state.formFlags.bulk = false\r\n ctx.toggle()\r\n }\r\n },\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n extras: {\r\n items: [\r\n {\r\n id: 1, icon: 'simple-icon-reload', name: 'En masivo', onClick: (ctx) => {\r\n setView(ctx)\r\n ctx.state.formFlags.bulk = true\r\n ctx.toggle();\r\n }\r\n },\r\n ]\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"studentId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admStudent/get?enrolled=-1&pick=true\",\r\n withImg: true\r\n }\r\n },\r\n {\r\n type: \"daterange\"\r\n },\r\n {\r\n name: \"status\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"Estado\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: -1,\r\n label: \"Anulado\"\r\n },\r\n {\r\n value: 0,\r\n label: \"No pagado\"\r\n },\r\n {\r\n value: 1,\r\n label: \"Pagado\"\r\n }\r\n ]\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return ctx.state.from || ctx.state.to || Number.isInteger(ctx.state.status) || Number.isInteger(ctx.state.studentId) },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n detailGrid: findModuleInMenu(context.props.menuItems, \"id\", \"admOrderDetail\") ? admOrderDetail : null,\r\n handleSaveChanges : () => {\r\n context.edit()\r\n },\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"easyId\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Número de documento\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"externalId\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Código externo\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"curr\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Moneda\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"total\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Monto\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"brief\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Concepto\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"dueDate\",\r\n value: null,\r\n type: \"date\",\r\n label: \"Vencimiento\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"created\",\r\n value: null,\r\n type: \"date\",\r\n label: \"Fecha creación\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"hasPenalty\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Penalidad\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"principalName\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Nombre responsable\",\r\n rules: 'required',\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"dependantName\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Nombre dependiente\",\r\n rules: 'required',\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n { name: \"paid\", type: \"hidden\" },\r\n {\r\n col: 2,\r\n name: \"btnPayOrder\",\r\n value: null,\r\n type: \"button\",\r\n label: \"Registrar pago\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => !ctx.state.paid,\r\n onClick: (ctx) => {\r\n ctx.toogleSubForm(0)\r\n }\r\n },\r\n {\r\n col: 2,\r\n name: \"btnPayments\",\r\n value: null,\r\n type: \"button\",\r\n label: \"Ver pagos\",\r\n // renderIf: (ctx) => ctx.state.paid,\r\n onClick: (ctx) => {\r\n ctx.toogleSubGrid(0)\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"ID\",\r\n value: null,\r\n type: \"text\",\r\n label: \"ID de orden\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"voidOrder\",\r\n value: null,\r\n type: \"button\",\r\n label: \"Anular pago\",\r\n opts: {\r\n kind: 'danger'\r\n },\r\n renderIf: (ctx) => ctx.state.paid,\r\n onClick: (ctx) => {\r\n ctx.toogleSubForm(1)\r\n }\r\n },\r\n ],\r\n subGrids: [\r\n {\r\n module: 'admBilling',\r\n filterBy: () => { return { orderId: context.state.idItemSelected } }\r\n }\r\n ],\r\n subforms: [\r\n {\r\n name: 'Registrar pago',\r\n postUrlF: (ctx) => 'admBilling/setpaymentbyorder/' + ctx.state.ID,\r\n autoClose: true,\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"amount\",\r\n value: '',\r\n type: \"number\",\r\n label: \"Monto\",\r\n hint: \"Ingrese el monto total\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n tooltip: true\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"note\",\r\n value: '',\r\n type: \"text\",\r\n label: \"Referencia\",\r\n hint: \"Ingrese una nota sobre este pago\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n tooltip: true\r\n }\r\n },\r\n {\r\n name: \"card\",\r\n value: \"\",\r\n col: 12,\r\n type: \"select\",\r\n label: \"Medio\",\r\n hint: \"Medio de pago\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: \"CASH\",\r\n label: \"Efectivo\"\r\n },\r\n {\r\n value: \"DEPOSIT\",\r\n label: \"Depósito en cuenta\"\r\n },\r\n {\r\n value: \"OTHER\",\r\n label: \"Otro\"\r\n }\r\n ],\r\n isMulti: false,\r\n tooltip: true\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Registrar pago',\r\n col: 12,\r\n isMain: true,\r\n onClick: (ctx) => { ctx.btnAction('save') }\r\n }\r\n ],\r\n onSuccess: (r) => { context.getDataById(context.state.idItemSelected) },\r\n onError: (e) => { },\r\n },\r\n {\r\n name: 'Anular pago',\r\n getUrlF: (ctx) => 'admOrder/request2pay/' + ctx.state.ID,\r\n postUrlF: (ctx) => 'admBilling/refundbyorder/' + ctx.state.ID,\r\n autoClose: true,\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"amount\",\r\n value: '',\r\n type: \"number\",\r\n label: \"Monto\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label',\r\n tooltip: true\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"note\",\r\n value: '',\r\n type: \"text\",\r\n label: \"Referencia\",\r\n hint: \"Ingrese una nota sobre esta anulación\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n tooltip: true\r\n }\r\n },\r\n {\r\n name: \"card\",\r\n value: \"\",\r\n col: 12,\r\n type: \"select\",\r\n label: \"Medio\",\r\n hint: \"Medio de reembolso\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: \"CASH\",\r\n label: \"Efectivo\"\r\n },\r\n {\r\n value: \"DEPOSIT\",\r\n label: \"Depósito en cuenta\"\r\n },\r\n {\r\n value: \"OTHER\",\r\n label: \"Otro\"\r\n }\r\n ],\r\n isMulti: false,\r\n tooltip: true\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Registrar anulación',\r\n col: 12,\r\n isMain: true,\r\n onClick: (ctx) => { ctx.btnAction('save') }\r\n }\r\n ],\r\n onSuccess: (r) => { context.getDataById(context.state.idItemSelected) },\r\n onError: (e) => { },\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"Nombre responsable\",\r\n accessor: \"principalName\",\r\n minWidth: 200\r\n },\r\n {\r\n Header: \"Dependiente\",\r\n accessor: \"dependantName\"\r\n },\r\n {\r\n Header: \"Fecha\",\r\n accessor: \"date\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Vencimiento\",\r\n accessor: \"dueDate\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Monto\",\r\n accessor: \"total\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"Concepto\",\r\n accessor: \"det\"\r\n },\r\n {\r\n Header: \"Código externo\",\r\n accessor: \"externalId\"\r\n },\r\n {\r\n Header: \"Pagado\",\r\n accessor: \"paid\",\r\n isBool: true,\r\n minWidth: 50\r\n }\r\n ]\r\n }\r\n}","import _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport admGrades from \"../../views/app/modules/custom/admGrades\"\r\n\r\nconst qualifications = \"AD,A,B+,B,B-,C,D,F\";\r\nconst qualificationsList = qualifications.split(',').map(e => e = {value: e, label: e})\r\n\r\nexport default (context) => {\r\n return {\r\n\r\n config: {\r\n pageSize: 40,\r\n remapRow: (form) => {\r\n form.owner = form.owner.label\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: { reloadGrid: true },\r\n edit: {\r\n reloadGrid: true\r\n },\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n extras: {\r\n items: context.props.userAdmin.role === '100' ? \r\n [\r\n {\r\n id: 0, name: 'Habilitar ingreso de notas', onClick: (row, ctx) => {\r\n if (ctx.state.formFilter.periodId === '0') {\r\n NotificationManager.success('Por favor seleccionar el periodo', 'Habilitar ingreso de notas', 5000, null, null, 'outline');\r\n return\r\n }\r\n ctx.showDialog({\r\n title: 'Habilitar ingreso de notas',\r\n msg: '¿Confirmar?',\r\n action: (ok) => {\r\n if (ok) {\r\n context.props.setLoader(true)\r\n _axios.post('admSubject/bulkedit?periodId=' + ctx.state.formFilter.periodId, { canEnterEval: true })\r\n .then(r => {\r\n NotificationManager.success(r.msg, 'Habilitar ingreso de notas', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n })\r\n }\r\n }\r\n })\r\n }\r\n },\r\n {\r\n id: 1, name: 'Inhabilitar ingreso de notas', onClick: (row, ctx) => {\r\n if (ctx.state.formFilter.periodId === '0') {\r\n NotificationManager.success('Por favor seleccionar el periodo', 'Inhabilitar ingreso de notas', 5000, null, null, 'outline');\r\n return\r\n }\r\n ctx.showDialog({\r\n title: 'Inhabilitar ingreso de notas',\r\n msg: '¿Confirmar?',\r\n action: (ok) => {\r\n if (ok) {\r\n context.props.setLoader(true)\r\n _axios.post('admSubject/bulkedit?periodId=' + ctx.state.formFilter.periodId, { canEnterEval: false })\r\n .then(r => {\r\n NotificationManager.success(r.msg, 'Inhabilitar ingreso de notas', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n })\r\n }\r\n }\r\n })\r\n }\r\n },\r\n // {\r\n // id: 2, name: 'Clonar cursos en nuevo periodo', onClick: (row, ctx) => {\r\n\r\n // if (ctx.state.formFilter.periodId === '0') {\r\n // NotificationManager.primary('Por favor seleccionar el periodo del cual se clonará los cursos', 'Clonar cursos en nuevo periodo', 5000, null, null, 'outline');\r\n // return\r\n // }\r\n\r\n // ctx.showDialog({\r\n // title: 'Clonar cursos en nuevo periodo',\r\n // msg: 'Se creará un nuevo periodo y se clonará los cursos existentes en periodo ' + ctx.state.formFilter.periodId + '. ¿Confirmar?',\r\n // action: (ok) => {\r\n\r\n // if (ok) {\r\n // context.props.setLoader(true)\r\n // _axios.post('admSubject/duplicate?periodId=' + ctx.state.formFilter.periodId)\r\n // .then(r => {\r\n // NotificationManager.primary(r.msg, 'Clonar cursos en nuevo periodo', 5000, null, null, 'outline')\r\n // context.props.setLoader(false)\r\n // ctx.setState({ formFilter: { periodId: r.data.periodId } })\r\n // ctx.listenBtnActionsFormFilter('filter');\r\n // })\r\n // .catch(e => {\r\n // NotificationManager.primary('Ocurrió un error', 'Clonar cursos en nuevo periodo', 5000, null, null, 'outline')\r\n // context.props.setLoader(false)\r\n // })\r\n // }\r\n // }\r\n // })\r\n // }\r\n //}\r\n ] : [],\r\n itemsInRowsTable: [\r\n {\r\n icon: 'simple-icon-note', name: 'Ingresar notas', onClick: (rowData, ctx) => {\r\n let obj = {\r\n module: 'admGrades',\r\n params: [\r\n { value: rowData.gradeId, label: rowData.grade },\r\n { value: rowData.ID, label: rowData.name }\r\n ],\r\n type: 0,\r\n keepFilters: false\r\n }\r\n ctx.props.setDeeplink(obj, ctx.props.history)\r\n }\r\n },\r\n {\r\n icon: 'simple-icon-note',\r\n name: 'Importar notas',\r\n onClick: (rowData, ctx) => {\r\n context.state.formFlags={ activityId: rowData.ID, sectionId: rowData.gradeId }\r\n },\r\n form: {\r\n name: 'Importar notas',\r\n remapGET: () => {\r\n return { activityId: context.state.formFlags.activityId, sectionId: context.state.formFlags.sectionId }\r\n },\r\n postUrlF: (ctx) => {\r\n return 'admGrades/import';\r\n },\r\n okMsg: 'Se han importando las notas!',\r\n fields: [\r\n {\r\n name: \"activityId\",\r\n value: 0,\r\n type: \"hidden\"\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: 0,\r\n type: \"hidden\"\r\n },\r\n {\r\n col: 12,\r\n name: \"l1\",\r\n value: \"Se importará las notas ingresadas en el siguiente file (descargar). El archivo deberá ser guardado como CSV.\",\r\n type: \"label\"\r\n },\r\n {rules:\"required\", col: 12, name: \"sectionId\", value: \"\", type: \"select\", label: \"Sección\", opts: { style: 'float-label', path: (c) => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFlags.sectionId } }},\r\n\r\n {\r\n col: 12,\r\n name: \"l2\",\r\n value: \"Especificar un máximo de 10 Conceptos de Evaluación a ingresar via Excel. Cada uno deberá ser ingresado en una columna. Ej: Para el Concepto 1 usará la columna C1\",\r\n type: \"label\"\r\n },\r\n { rules:\"required\", col: 4, name: \"c1\", value: \"\", type: \"select\", label: \"Concepto 1\", opts: { style: 'float-label', path: (c) => { return \"/admEvalConcept/get?pick=true&activityId=\" + context.state.formFlags.activityId } }},\r\n { col: 4, name: \"c2\", value: \"\", type: \"select\", label: \"Concepto 2\", opts: { style: 'float-label', path: (c) => { return \"/admEvalConcept/get?pick=true&activityId=\" + context.state.formFlags.activityId } }},\r\n { col: 4, name: \"c3\", value: \"\", type: \"select\", label: \"Concepto 3\", opts: { style: 'float-label', path: (c) => { return \"/admEvalConcept/get?pick=true&activityId=\" + context.state.formFlags.activityId } }},\r\n { col: 4, name: \"c4\", value: \"\", type: \"select\", label: \"Concepto 4\", opts: { style: 'float-label', path: (c) => { return \"/admEvalConcept/get?pick=true&activityId=\" + context.state.formFlags.activityId } }},\r\n { col: 4, name: \"c5\", value: \"\", type: \"select\", label: \"Concepto 5\", opts: { style: 'float-label', path: (c) => { return \"/admEvalConcept/get?pick=true&activityId=\" + context.state.formFlags.activityId } }},\r\n { col: 4, name: \"c6\", value: \"\", type: \"select\", label: \"Concepto 6\", opts: { style: 'float-label', path: (c) => { return \"/admEvalConcept/get?pick=true&activityId=\" + context.state.formFlags.activityId } }},\r\n { col: 4, name: \"c7\", value: \"\", type: \"select\", label: \"Concepto 7\", opts: { style: 'float-label', path: (c) => { return \"/admEvalConcept/get?pick=true&activityId=\" + context.state.formFlags.activityId } }},\r\n { col: 4, name: \"c8\", value: \"\", type: \"select\", label: \"Concepto 8\", opts: { style: 'float-label', path: (c) => { return \"/admEvalConcept/get?pick=true&activityId=\" + context.state.formFlags.activityId } }},\r\n { col: 4, name: \"c9\", value: \"\", type: \"select\", label: \"Concepto 9\", opts: { style: 'float-label', path: (c) => { return \"/admEvalConcept/get?pick=true&activityId=\" + context.state.formFlags.activityId } }},\r\n { col: 4, name: \"c10\", value: \"\", type: \"select\", label: \"Concepto 10\", opts: { style: 'float-label', path: (c) => { return \"/admEvalConcept/get?pick=true&activityId=\" + context.state.formFlags.activityId } }},\r\n {\r\n col: 12,\r\n name: \"csvfile\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Archivo CSV\",\r\n opts: {\r\n path: ()=> \"admGrades/importAttach\",\r\n accept: '.csv'\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Cargar e importar notas',\r\n col: 12,\r\n isMain: true,\r\n onClick: (ctx) => { ctx.btnAction('save') }\r\n }\r\n ],\r\n onSuccess: (r) => { },\r\n onError: (e) => { }\r\n }\r\n }\r\n ]\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return ctx.state.periodId || ctx.state.superSectionId },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.owner = { value: r.data.owner, label: r.data.ownerName }\r\n r.data.periodId = { value: r.data.periodId, label: r.data.periodName }\r\n r.data.categoryId = { value: r.data.categoryId, label: r.data.categoryName }\r\n // let ss = r.data.superSections\r\n // r.data.superSections = ss && ss.length > 0 ? { value: ss[0].ID, label: ss[0].name } : null\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n delete v.flags\r\n delete v.btn1\r\n delete v.btn2\r\n delete v.sections\r\n v.desc = ''\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"periodId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Periodo\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"categoryId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Categoría\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admCategory/get?type=aca&pick=true\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"superSections\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Grado(s)\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\",\r\n isMulti: true,\r\n setOutput: (v) => {\r\n if (v) return v.map((m) => { return { ID: m.value, name: m.label, selected: true } })\r\n }\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Nombre\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"owner\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Coordinador / responsable\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admStaff/get?pick=true\"\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"type\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"Tipo de evaluación\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: 0, label: \"Cuantitativa\"},\r\n {value: 1, label: \"Cualitativa\"}\r\n ],\r\n isClearable: false\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 6,\r\n name: \"qualifications\",\r\n value: qualifications,\r\n type: \"text\",\r\n rules: ['required', {regex:'^([A-F+-]{1,2})(,[A-F+-]{1,2}){1,}?$'}],\r\n label: \"Opciones de calificación cualitativa\",\r\n hint: \"Ingresar los caracteres cualitativos en orden de valor mayor a menor, separarlos por comas\",\r\n opts: {\r\n style: 'float-label' \r\n },\r\n renderIf: (ctx)=> ctx.state.type === 1,\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 6,\r\n name: \"minToPass\",\r\n value: \"\",\r\n type: \"select\",\r\n // rules: 'required|alpha|max:2',\r\n label: \"Nota mínima para aprobar\",\r\n opts: {\r\n style: 'float-label',\r\n items: qualificationsList,\r\n filterOption: admGrades.shortcut\r\n },\r\n renderIf: (ctx)=> ctx.state.type === 1\r\n },\r\n {\r\n col: 6,\r\n name: \"minToPassNum\",\r\n value: \"\",\r\n type: \"number\",\r\n rules: 'required|numeric|min:0,num|max:20,num',\r\n label: \"Nota mínima para aprobar (numérico)\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx)=> ctx.state.type === 0\r\n },\r\n {\r\n col: 6,\r\n name: \"calcAverage\",\r\n value: true,\r\n type: \"switch\",\r\n label: \"Promedia según sub conceptos\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => ctx.state.type === 0\r\n },\r\n {\r\n col: 4,\r\n name: \"isAcademic\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Curso curricular\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"canEnterEval\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Permitir ingreso de notas\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"hasGrades\",\r\n value: true,\r\n type: \"switch\",\r\n label: \"Mostrar notas en app\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"hasBehavior\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Evaluar conducta\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n // renderIf: (ctx) => (!ctx.state.hasBehavior && !context.state.idItemSelected) || (!ctx.state.hasBehavior && context.state.idItemSelected)\r\n },\r\n {\r\n col: 12,\r\n name: \"btn1\",\r\n value: null,\r\n type: \"button\",\r\n label: \"Configurar secciones\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => { return context.state.idItemSelected },\r\n onClick: (ctx) => {\r\n ctx.toogleSubGrid(0)\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"btn2\",\r\n value: null,\r\n type: \"button\",\r\n label: \"Conceptos evaluación\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => { return context.state.idItemSelected },\r\n onClick: (ctx) => {\r\n ctx.toogleSubGrid(1)\r\n },\r\n modulePermissions: \"admEvalConcept\"\r\n }\r\n ],\r\n subGrids: [\r\n {\r\n name: (ctx) => { return 'Secciones curso: ' + ctx.state.name },\r\n module: 'admActivityParts',\r\n filterBy: () => { return { parentId: context.state.idItemSelected, sortBy: \"name\", desc: false} }\r\n },\r\n {\r\n name: (ctx) => { return 'Evaluaciones curso: ' + ctx.state.name },\r\n module: 'admEvalConcept',\r\n filterBy: () => { return { activityId: context.state.idItemSelected } }\r\n },\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"Nombre\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Grado\",\r\n accessor: \"grade\"\r\n },\r\n {\r\n Header: \"Nro. conceptos Ev.\",\r\n accessor: \"parts\"\r\n },\r\n {\r\n Header: \"Coordinador / responsable\",\r\n accessor: \"owner\"\r\n }\r\n ]\r\n }\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport { Button } from \"reactstrap\";\r\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\r\nimport { whatsToHtml } from \"../../helpers/Utils\";\r\n\r\nconst CustomPreviewWhatsApp = (props) => {\r\n const [messages, setMessages] = useState([])\r\n const [options, setOptions] = useState([])\r\n const [sheet, setSheet] = useState(false)\r\n const { L, preview } = props\r\n const { name, data, handleData, toggle } = preview?? {}\r\n\r\n useEffect(() => {\r\n // console.log(\"change preview:\", preview)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [preview])\r\n\r\n useEffect(() => {\r\n if (handleData) {\r\n let msgs = handleData(data)\r\n if (msgs.length > 1) msgs = msgs.flatMap(msg => [msg, {type: \"sent\", content: \"...\"}])\r\n setMessages(msgs)\r\n }\r\n else setMessages(data)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data])\r\n\r\n return (\r\n
    \r\n
    {L[name]?? name}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"Profile\" { e.target.onerror = null; e.target.src = require(\"../../assets/img/user.png\") }} />\r\n
    \r\n
    \r\n {window.tenant.name}
    \r\n {L[\"admNotification.online\"]}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {messages && \r\n \r\n {messages.map((m, i) => {\r\n return (\r\n
    \r\n
    \r\n {m.buttons?.length > 0 && \r\n
    \r\n {m.buttons.slice(0, m.buttons.length <= 3 ? m.buttons.length : 2).map((b, i2) => {\r\n return
    {b}
    \r\n })}\r\n {m.buttons.length > 3 && \r\n {setSheet(true); setOptions(m.buttons)}}\r\n >\r\n {L[\"main.seeAllOptions\"]}\r\n
    \r\n }\r\n
    \r\n }\r\n
    \r\n )\r\n })}\r\n \r\n }\r\n
    \r\n {sheet &&\r\n
    \r\n
    \r\n \r\n
    \r\n
    {setSheet(false)}}>×
    \r\n {L[\"main.allOptions\"]}\r\n
    \r\n {options.map((o, i) => {\r\n return
    {setSheet(false)}}>{o}
    \r\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 CustomPreviewWhatsApp","/* eslint-disable jsx-a11y/label-has-for */\r\n/* eslint-disable jsx-a11y/label-has-associated-control */\r\nimport React, { useState } from \"react\";\r\n\r\nconst CalendarToolbar = (toolbar) => {\r\n const [viewActive, setViewActive] = useState('month')\r\n\r\n const goToBack = () => {\r\n toolbar.onNavigate('PREV')\r\n }\r\n\r\n const goToNext = () => {\r\n toolbar.onNavigate('NEXT')\r\n }\r\n\r\n const goToCurrent = () => {\r\n toolbar.onNavigate('TODAY')\r\n toolbar.onView('month')\r\n setViewActive('month')\r\n }\r\n\r\n const viewDay = () => {\r\n toolbar.onView('day')\r\n setViewActive('day')\r\n }\r\n\r\n const viewWeek = () => {\r\n toolbar.onView('week')\r\n setViewActive('week')\r\n }\r\n \r\n const viewMonth = () => {\r\n toolbar.onView('month')\r\n setViewActive('month')\r\n }\r\n\r\n const { L, label } = toolbar\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\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\nexport default CalendarToolbar;\r\n","import React, {useEffect, useState} from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Button, Card, CardBody } from 'reactstrap';\r\nimport { Calendar, momentLocalizer } from 'react-big-calendar';\r\nimport CalendarToolbar from '../CalendarToolbar'\r\nimport _moment from '../../libs/moment';\r\nimport { isAndroidOrIos } from '../../helpers/Utils';\r\n\r\nconst CustomCalendar = (props) => {\r\n const [data, setData] = useState([])\r\n const [diff, setDiff] = useState(0)\r\n const [prevDiff, setPrevDiff] = useState(0)\r\n const {ctxCruGrid, L} = props\r\n const localizer = momentLocalizer(_moment)\r\n\r\n useEffect(() => {\r\n const remapData = () => {\r\n let data = props.ctxCruGrid.state.data\r\n data = data.map(item => {\r\n const start = _moment(item.startDate).toDate()\r\n const end = _moment(item.endDate).toDate()\r\n const isAllday = (start.getDay() !== end.getDay()) || (start.getHours() === 0 && end.getHours() === 23)\r\n item = {\r\n id: item.ID,\r\n title: item.name,\r\n allDay: isAllday,\r\n start: start,\r\n end: end,\r\n titleHtml: `${!isAllday ? `${_moment(start).format('HH:mm ')}` : ''}${item.name}`\r\n }\r\n return item\r\n })\r\n setData(data)\r\n }\r\n remapData()\r\n }, [props])\r\n\r\n useEffect(() => {\r\n setPrevDiff(diff)\r\n }, [diff])\r\n\r\n useEffect(() => {\r\n if (prevDiff !== diff) {\r\n ctxCruGrid.view.config.customPathGet = `admActivity/month/${diff}`\r\n ctxCruGrid.getData()\r\n }\r\n }, [prevDiff, diff, ctxCruGrid])\r\n\r\n const onNavigate = (date) => {\r\n const currentMonth = _moment().startOf('month')\r\n const selectedMonth = _moment(date).startOf('month')\r\n const diff = selectedMonth.diff(currentMonth, 'months')\r\n setDiff(diff)\r\n }\r\n\r\n const onSelectEvent = (e) => {\r\n if (!isAndroidOrIos()) ctxCruGrid.getDataById(e.id)\r\n }\r\n\r\n const onSelectSlot = (e) => {\r\n ctxCruGrid.state.formFields.map(f => {\r\n if (f.name === 'startDate') f.value = _moment(e.start).format('YYYY-MM-DD HH:mm:ss')\r\n if (f.name === 'endDate') f.value = _moment(e.end).format('YYYY-MM-DD HH:mm:ss')\r\n return f\r\n })\r\n ctxCruGrid.toggle()\r\n }\r\n\r\n const ContexMenu = (event) => {\r\n return
    \r\n \r\n \r\n
    \r\n }\r\n\r\n const showMenu = (e, event) => {\r\n e.preventDefault()\r\n var menus = document.querySelectorAll('.rbc-event-context-menu')\r\n menus.forEach(function(menu) {\r\n menu.parentNode.removeChild(menu)\r\n })\r\n var div = document.createElement('div')\r\n div.classList.add('rbc-event-context-menu')\r\n div.style.top = e.clientY + window.scrollY + 'px';\r\n div.style.left = e.clientX + window.scrollX + 'px';\r\n ReactDOM.render(, div);\r\n document.body.appendChild(div)\r\n div.addEventListener('click', function() {\r\n if (document.body.contains(div)) document.body.removeChild(div)\r\n })\r\n div.addEventListener('mouseleave', function() {\r\n if (document.body.contains(div)) document.body.removeChild(div)\r\n })\r\n document.addEventListener('click', function(event) {\r\n if (!event.target.classList.contains('rbc-event-context-menu') && document.body.contains(div)) {\r\n document.body.removeChild(div)\r\n }\r\n }, { once: true })\r\n }\r\n\r\n const eventWrapperComponent = ({ event, children }) => (\r\n {\r\n if (isAndroidOrIos()) showMenu(e, event)\r\n }\r\n }\r\n onContextMenu={\r\n e => {\r\n if (!isAndroidOrIos()) showMenu(e, event)\r\n }\r\n }\r\n >\r\n {children}\r\n \r\n )\r\n\r\n const eventComponent = ({ event }) => (\r\n
    \r\n )\r\n\r\n const now = new Date()\r\n\r\n const dayStyleGetter = date => {\r\n if (_moment(date).isSame(now, 'day')) {\r\n return {\r\n className: 'rbc-highlight-today'\r\n }\r\n }\r\n return {}\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n {ctxCruGrid.state.progressBar &&
    }\r\n \r\n ,\r\n eventWrapper: eventWrapperComponent,\r\n event: eventComponent\r\n }\r\n }\r\n formats={\r\n {\r\n monthHeaderFormat: (date, culture, localizer) => `${localizer.format(date, 'MMMM YYYY', culture)}`.toUpperCase(),\r\n dayHeaderFormat: (date, culture, localizer) => `${localizer.format(date, 'DD MMMM YYYY', culture)}`.toUpperCase(),\r\n dayRangeHeaderFormat: ({ start, end }, culture, localizer) => `${localizer.format(start, 'DD MMMM', culture)} - ${localizer.format(end, 'DD MMMM', culture)}`.toUpperCase()\r\n }\r\n }\r\n />\r\n \r\n
    \r\n
    \r\n )\r\n}\r\nexport default CustomCalendar","const M = \"admFetchInput.\"\r\nconst data = [\r\n { value: \"text\", label: `${M}typeText` },\r\n { value: \"option\", label: `${M}typeOption` },\r\n { value: \"multiple\", label: `${M}typeMultiple` },\r\n { value: \"location\", label: `${M}typeLocation` },\r\n { value: \"signature\", label: `${M}typeSignature` },\r\n { value: \"kyc\", label: `${M}typeIdentity` },\r\n { value: \"payment\", label: `${M}typePayment` }\r\n]\r\nexport default data","import admUser from \"./admUser\";\r\nimport admStudent from \"./admStudent\";\r\nimport admStaff from \"./admStaff\";\r\nimport admGroup from \"./admGroup\";\r\nimport admBilling from \"./admBilling\";\r\nimport admBillingGrid from \"./admBillingGrid\";\r\nimport admOrder from \"./admOrder\";\r\nimport admOrderGrid from \"./admOrderGrid\";\r\nimport admOrderDetail from \"./admOrderDetail\";\r\nimport admBillingReport from \"./admBillingReport\";\r\nimport admDirectory from \"./admDirectory\";\r\nimport admPeriod from \"./admPeriod\"\r\nimport admSubject from \"./admSubject\";\r\nimport admGrades from \"./admGrades\";\r\nimport admGradesRep from \"./admGradesRep\";\r\nimport admEvalConcept from \"./admEvalConcept\";\r\nimport admActivityParts from \"./admActivityParts\";\r\nimport admActivityMasters from \"./admActivityMasters\";\r\nimport admTracking from \"./admTracking\";\r\nimport admBookingList from \"./admBookingList\";\r\nimport admLocalization from \"./admLocalization\";\r\nimport admSuperSection from \"./admSuperSection\";\r\nimport admSectionMembers from \"./admSectionMembers\";\r\nimport admCommitment from \"./admCommitment\";\r\nimport admBehavior from \"./admBehavior\";\r\nimport admJournal from \"./admJournal\";\r\nimport admOtlt from \"./admOtlt\";\r\nimport admAttendanceType from \"./admAttendanceType\";\r\nimport admGradesBehavior from \"./admGradesBehavior\";\r\nimport admActivitySession from \"./admActivitySession\";\r\nimport admGradesMaster from \"./admGradesMaster\";\r\nimport admSection from \"./admSection\";\r\nimport admDates from \"./admDates\";\r\nimport admInfirmary from \"./admInfirmary\";\r\nimport admInfirmaryValues from \"./admInfirmaryValues\";\r\nimport admPublication from \"./admPublication\";\r\nimport admPublicationPart from \"./admPublicationPart\";\r\nimport admFetch from \"./admFetch\";\r\nimport admAssignmentQst from \"./admAssignmentQst\";\r\nimport admCalendar from \"./admCalendar\";\r\nimport admNotification from \"./admNotification\";\r\nimport admRelatives from \"./admRelatives\";\r\nimport admAudit from \"./admAudit\";\r\nimport admTransport from \"./admTransport\";\r\nimport admFetchInput from \"./admFetchInput\";\r\nimport admFetchResponses from \"./admFetchResponses\";\r\n\r\nexport default [\r\n {id: 'admUser', path: '/app/admUser', module: admUser},\r\n {id: 'admStudent', path: '/app/admStudent', module: admStudent},\r\n {id: 'admStaff', path: '/app/admStaff', module: admStaff},\r\n {id: 'admGroup', path: '/app/admGroup', module: admGroup},\r\n {id: 'admBilling', path: '/app/admBilling', module: admBilling},\r\n {id: 'admBillingGrid', path: '/app/admBillingGrid', module: admBillingGrid},\r\n {id: 'admOrder', path: '/app/admOrder', module: admOrder},\r\n {id: 'admOrderGrid', path: '/app/admOrderGrid', module: admOrderGrid},\r\n {id: 'admOrderDetail', path: '/app/admOrderDetail', module: admOrderDetail},\r\n {id: 'admBillingReport', path: '/app/admBillingReport', module: admBillingReport},\r\n {id: 'admDirectory', path: '/app/admDirectory', module: admDirectory},\r\n {id: 'admPeriod', path: '/app/admPeriod', module: admPeriod},\r\n {id: 'admSubject', path: '/app/admSubject', module: admSubject},\r\n {id: 'admGrades', path: '/app/admGrades', module: admGrades},\r\n {id: 'admGradesRep', path: '/app/admGradesRep', module: admGradesRep},\r\n {id: 'admEvalConcept', path: '/app/admEvalConcept', module: admEvalConcept},\r\n {id: 'admActivityParts', path: '/app/admActivityParts', module: admActivityParts},\r\n {id: 'admActivityMasters', path: '/app/admActivityMasters', module: admActivityMasters},\r\n {id: 'admTracking', path: '/app/admTracking', module: admTracking},\r\n {id: 'admBookingList', path: '/app/admBookingList', module: admBookingList},\r\n {id: 'admLocalization', path: '/app/admLocalization', module: admLocalization},\r\n {id: 'admSuperSection', path: '/app/admSuperSection', module: admSuperSection},\r\n {id: 'admSectionMembers', path: '/app/admSectionMembers', module: admSectionMembers},\r\n {id: 'admCommitment', path: '/app/admCommitment', module: admCommitment},\r\n {id: 'admBehavior', path: '/app/admBehavior', module: admBehavior},\r\n {id: 'admJournal', path: '/app/admJournal', module: admJournal},\r\n {id: 'admOtlt', path: '/app/admOtlt', module: admOtlt},\r\n {id: 'admActivitySession', path: '/app/admActivitySession', module: admActivitySession},\r\n {id: 'admAttendanceType', path: '/app/admAttendanceType', module: admAttendanceType},\r\n {id: 'admGradesBehavior', path: '/app/admGradesBehavior', module: admGradesBehavior},\r\n {id: 'admGradesMaster', path: '/app/admGradesMaster', module: admGradesMaster},\r\n {id: 'admSection', path: '/app/admSection', module: admSection},\r\n {id: 'admDates', path: '/app/admDates', module: admDates},\r\n {id: 'admInfirmary', path: '/app/admInfirmary', module: admInfirmary},\r\n {id: 'admInfirmaryValues', path: '/app/admInfirmaryValues', module: admInfirmaryValues},\r\n {id: 'admPublication', path: '/app/admPublication', module: admPublication},\r\n {id: 'admPublicationPart', path: '/app/admPublicationPart', module: admPublicationPart},\r\n {id: 'admFetch', path: '/app/admFetch', module: admFetch},\r\n {id: 'admAssignmentQst', path: '/app/admAssignmentQst', module: admAssignmentQst},\r\n {id: 'admCalendar', path: '/app/admCalendar', module: admCalendar},\r\n {id: 'admNotification', path: '/app/admNotification', module: admNotification},\r\n {id: 'admRelatives', path: '/app/admRelatives', module: admRelatives},\r\n {id: 'admAudit', path: '/app/admAudit', module: admAudit},\r\n {id: 'admTransport', path: '/app/admTransport', module: admTransport},\r\n {id: 'admFetchInput', path: '/app/admFetchInput', module: admFetchInput},\r\n {id: 'admAttendanceControl', path: '/app/admAttendanceControl'},\r\n {id: 'admJustification', path: '/app/admJustification'},\r\n {id: 'admCommunications', path: '/app/admCommunications'},\r\n {id: 'admFetchResponses', path: '/app/admFetchResponses', module: admFetchResponses}\r\n]","import { findModuleInMenu } from \"../../helpers/Utils\"\r\nexport default (context) => {\r\n const M = \"admUser.\"\r\n const itemAdmAudit = {\r\n id: 1,\r\n icon: 'simple-icon-check',\r\n name: `${M}auditHistory`,\r\n onClick: (row, ctx) => {\r\n const index = ctx.view.extras.itemsInRowsTable.findIndex(f => f.id === 1)\r\n ctx.view.extras.itemsInRowsTable[index].form.name = `Historial / Auditoria: ${row.name}`\r\n },\r\n form: {\r\n name: 'Historial / Auditoría',\r\n detailGrid: () => {\r\n return {\r\n module: 'admAudit',\r\n parentIdField: null,\r\n filterBy: () => { return {userId: context.state.idItemPreSelected} }\r\n }\r\n },\r\n okMsg: 'Ok',\r\n fields: [],\r\n onSuccess: (r) => { },\r\n onError: (e) => { }\r\n }\r\n }\r\n let itemsInRowsTable = []\r\n const admAudit = findModuleInMenu(context.props.menuItems, \"id\", \"admAudit\")\r\n if (admAudit) itemsInRowsTable.push(itemAdmAudit)\r\n\r\n let filter = {\r\n fields: [\r\n {\r\n name: \"type\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"main.userType\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: 0, label: \"main.all\" },\r\n { value: 1, label: `${M}parents` },\r\n { value: 2, label: `${M}nonParents` },\r\n { value: 3, label: `${M}dependants` },\r\n { value: 4, label: `${M}externals` },\r\n ]\r\n }\r\n },\r\n {\r\n name: \"active\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"main.activity\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: 0, label: \"main.all\" },\r\n { value: 1, label: `${M}activeLastWeek` },\r\n { value: 3, label: `${M}activeInBrowser` },\r\n { value: 2, label: `${M}activeInApp` },\r\n { value: 5, label: `${M}activeInWhatsApp` },\r\n { value: 4, label: `${M}dormant` },\r\n ]\r\n },\r\n renderIf: (ctx) => { return Number.isInteger(ctx.state.type) }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'main.applyFilter',\r\n onClick: ctx => ctx.btnAction('filter'),\r\n renderIf: ctx => Number.isInteger(ctx.state.type) || Number.isInteger(ctx.state.active)\r\n }\r\n ]\r\n }\r\n\r\n let columns = [\r\n {\r\n Header: \"\",\r\n accessor: \"img\",\r\n type: \"img\"\r\n },\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.lastName\",\r\n accessor: \"last\" \r\n },\r\n {\r\n Header: \"main.lastAccess\",\r\n accessor: \"lastSeen\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"main.externalId\",\r\n accessor: \"externalId\"\r\n }\r\n ]\r\n\r\n const module = {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form, res, action, resUpload) => {\r\n form.img = form.face\r\n form.name = `${form.last} ${form.last2?? ''}, ${form.name}`\r\n if (resUpload?.url) form.img = `${resUpload.url}?date=${Date.now()}`\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: false,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: {\r\n by: \"search\"\r\n },\r\n import: {\r\n templateFile: \"UsersImport.xlsx\"\r\n }\r\n },\r\n\r\n extras: {\r\n itemsInRowsTable: itemsInRowsTable\r\n },\r\n\r\n filter: filter,\r\n\r\n form: {\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"face\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"main.photography\",\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"admUser/file\",\r\n accept: '.jpeg,.jpg,.png'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.name\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"last\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.lastName\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"mail\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.email\",\r\n rules: 'required|email',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"cel\",\r\n value: null,\r\n type: \"number\",\r\n label: \"main.cellPhone\",\r\n rules: \"max:13\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"gender\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.gender\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: 'M', label: 'M'},\r\n { value: 'F', label: 'F'}\r\n ]\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"doc\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.identityDocument\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"notifModes\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.notifyVia\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"externalId\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.externalId\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"userKind\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.userType\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: 0, label: 'Titular / Padre de familia' },\r\n { value: 3, label: 'Externo / invitado' }\r\n ]\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"inactive\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"main.inactive\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n }\r\n ]\r\n },\r\n\r\n columns: columns\r\n }\r\n return module\r\n}","\r\nimport { findModuleInMenu } from \"../../helpers/Utils\"\r\nimport _axios from \"../../libs/axios\"\r\nimport { NotificationManager } from \"../../components/common/react-notifications\"\r\nexport default (context) => {\r\n const M = \"admStudent.\"\r\n const itemAdmRelatives = {\r\n id: 1,\r\n icon: 'simple-icon-people',\r\n name: `admUser.relatives`,\r\n onClick: (row, ctx) => {\r\n const index = ctx.view.extras.itemsInRowsTable.findIndex(f => f.id === 1)\r\n ctx.view.extras.itemsInRowsTable[index].form.name = `Familiares de: ${row.name}`\r\n },\r\n form: {\r\n name: 'Familiares',\r\n remapGET: () => {\r\n return { studentId: context.state.idItemPreSelected }\r\n },\r\n detailGrid: () => {\r\n return {\r\n module: 'admRelatives',\r\n filterBy: () => { return { type: 5, dependantId: context.state.idItemPreSelected } }\r\n }\r\n },\r\n okMsg: 'Ok',\r\n fields: [\r\n { name: \"studentId\", value: 0, type: \"hidden\" }\r\n ],\r\n onSuccess: (r) => { },\r\n onError: (e) => { }\r\n }\r\n }\r\n const itemAdmAudit = {\r\n id: 2,\r\n icon: 'simple-icon-check',\r\n name: `admUser.auditHistory`,\r\n onClick: (row, ctx) => {\r\n const index = ctx.view.extras.itemsInRowsTable.findIndex(f => f.id === 2)\r\n ctx.view.extras.itemsInRowsTable[index].form.name = `Historial / Auditoria: ${row.name}`\r\n },\r\n form: {\r\n name: 'Historial / Auditoría',\r\n detailGrid: () => {\r\n return {\r\n module: 'admAudit',\r\n parentIdField: null,\r\n filterBy: () => { return {userId: context.state.idItemPreSelected} }\r\n }\r\n },\r\n okMsg: 'Ok',\r\n fields: [],\r\n onSuccess: (r) => { },\r\n onError: (e) => { }\r\n }\r\n }\r\n let itemsInRowsTable = []\r\n const admRelatives = findModuleInMenu(context.props.menuItems, \"id\", \"admRelatives\")\r\n const admAudit = findModuleInMenu(context.props.menuItems, \"id\", \"admAudit\")\r\n if (admRelatives) itemsInRowsTable.push(itemAdmRelatives)\r\n if (admAudit) itemsInRowsTable.push(itemAdmAudit)\r\n\r\n const module = {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form, res, action, resUpload) => {\r\n form.img = form.face\r\n form.name = `${form.last} ${form.last2?? ''}, ${form.name}`\r\n if (resUpload?.url) form.img = `${resUpload.url}?date=${Date.now()}`\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: {\r\n by: \"search\"\r\n },\r\n import: {\r\n templateFile: \"StudentsImport.xlsx\"\r\n }\r\n },\r\n\r\n extras: {\r\n items: [\r\n {id: 0, icon: 'simple-icon-refresh', name: 'Sincronizar con Classroom', onClick: () => { \r\n context.props.setLoader(true)\r\n _axios\r\n .post(`/admStudent/syncclassroom`)\r\n .then(r => {\r\n context.props.setLoader(false)\r\n if (r.status >= 0) {\r\n console.log(r)\r\n }\r\n if (r.msg) NotificationManager[r.status >= 0 ? \"success\" : \"error\"](r.msg, \"\", 5000, null, null, 'outline')\r\n }).catch(e => context.props.setLoader(false))\r\n }}\r\n ],\r\n maxItems: 1,\r\n maxActions: 1,\r\n itemsInRowsTable: itemsInRowsTable\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"active\",\r\n value: 1,\r\n type: \"select\",\r\n label: \"main.status\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: -1, label: `${M}all` },\r\n { value: 1, label: `${M}active` },\r\n { value: 0, label: `${M}inactive` }\r\n ],\r\n isClearable: false\r\n }\r\n },\r\n {\r\n name: \"enrolled\",\r\n value: 1,\r\n type: \"select\",\r\n label: \"main.enrollment\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: -1, label: `${M}all` },\r\n { value: 1, label: `${M}enrolled` },\r\n { value: 0, label: `${M}notEnrolled`}\r\n ],\r\n isClearable: false\r\n }\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.grade\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.section\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFilter.superSectionId }\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'main.applyFilter',\r\n onClick: ctx => ctx.btnAction('filter'),\r\n renderIf: ctx => Number.isInteger(ctx.state.active) || Number.isInteger(ctx.state.enrolled) || Number.isInteger(ctx.state.superSectionId)\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.superSectionId = { value: r.data.superSectionId, label: r.data.superSectionName }\r\n r.data.sectionId = { value: r.data.sectionId, label: r.data.sectionName }\r\n r.data.country = { value: r.data.country, label: r.data.country }\r\n r.data.birthplace = { value: r.data.birthplace, label: r.data.birthplace }\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n if (v.groups) {\r\n v.groups = v.groups.map(e => {\r\n e = { ID: e.value, name: e.label, selected: true }\r\n return e\r\n })\r\n }\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"face\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"main.photography\",\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"admUser/file\",\r\n accept: '.jpeg,.jpg,.png'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.name\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"last\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.lastName\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"last2\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Apellido M.\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"mail\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.email\",\r\n rules: 'required|email',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"gender\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.gender\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: 'M', label: 'M'},\r\n { value: 'F', label: 'F'}\r\n ]\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"separator1\",\r\n type: \"separator\",\r\n },\r\n {\r\n col: 6,\r\n name: \"inactive\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"main.inactive\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"enrolled\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"main.registered\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"documenttype\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.documentType\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"documentname\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.documentNumber\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"superSectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.grade\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.section\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.form.superSectionId }\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"groups\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.group\",\r\n opts: {\r\n style: 'float-label',\r\n isMulti: true,\r\n path: () => { return \"/admGroup/get?staff=2\" },\r\n setOutput: v => v\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"notifModes\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.notifyVia\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"externalId\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.externalId\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"house\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"House\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: 'Conroy', label: 'Conroy'},\r\n { value: 'Kufal', label: 'Kufal'},\r\n { value: 'Evans', label: 'Evans'},\r\n { value: 'Hope', label: 'Hope'}\r\n ]\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"label1\",\r\n value: L => `
    ${L['admUser.personalInformation']}
    `,\r\n type: \"label\"\r\n },\r\n {\r\n col: 6,\r\n name: \"birthday\",\r\n value: null,\r\n type: \"date\",\r\n label: \"main.birthdate\",\r\n placeholder: \"YYYY/MM/DD\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"natId\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.nationality\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"birthplace\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.birthplace\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/general/getcountries\",\r\n remap: (r) => {\r\n r.data.Results = r.data.map(item => ({ ID: item.id, name: item.name }))\r\n return r\r\n }\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"language\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.language\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"livewith\",\r\n value: \"PM\",\r\n type: \"select\",\r\n label: \"main.liveWith\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: 'PM', label: 'Padre y Madre'},\r\n { value: 'P', label: 'Padre'},\r\n { value: 'M', label: 'Madre'},\r\n { value: 'O', label: 'Otro'}\r\n ]\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"legalwith\",\r\n value: null,\r\n type: \"text\",\r\n label: L => `${L['main.liveWith']} (${L['main.other']})`,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"address\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.address\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"country\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.birthplace\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/general/getcountries\",\r\n remap: (r) => {\r\n r.data.Results = r.data.map(item => ({ ID: item.id, name: item.name }))\r\n return r\r\n }\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"familyPast\",\r\n value: null,\r\n type: \"text\",\r\n label: L => `Familiar ${L['main.exStudent']}`,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"label2\",\r\n value: L => `
    ${L['admUser.consents']}
    `,\r\n type: \"label\"\r\n },\r\n {\r\n col: 6,\r\n name: \"consentEmail\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"admUser.contactConsentToEmail\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: null, label: '[Sin especificar]'},\r\n { value: false, label: 'NO'},\r\n { value: true, label: 'SÍ'}\r\n ]\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"consentImagesAuth\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"admUser.imageUseConsent\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: null, label: '[Sin especificar]'},\r\n { value: false, label: 'NO'},\r\n { value: true, label: 'SÍ'}\r\n ]\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"status\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.status\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: 0, label: 'Nuevo'},\r\n { value: 10, label: 'Estudiante'},\r\n { value: 11, label: 'Ingresante'},\r\n { value: 12, label: 'Re-ingresante'},\r\n { value: 20, label: 'Graduado'},\r\n { value: 21, label: 'Retirado durante año'},\r\n { value: 22, label: 'Fallecido'},\r\n { value: 23, label: 'Retirado fin de año'},\r\n { value: 24, label: 'Retirado - Otros'}\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"\",\r\n accessor: \"img\",\r\n type: \"img\"\r\n },\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.section\",\r\n accessor: \"sectionTag\" \r\n },\r\n {\r\n Header: \"main.externalId\",\r\n accessor: \"externalId\"\r\n },\r\n {\r\n Header: \"main.document\",\r\n accessor: \"doc\"\r\n },\r\n {\r\n Header: `${M}mainAdult`,\r\n accessor: \"principalName\"\r\n },\r\n {\r\n Header: `${M}documentAdult`,\r\n accessor: \"principalDoc\"\r\n },\r\n ]\r\n }\r\n return module\r\n}","export default (context) => {\r\n return {\r\n config: {\r\n pageSize: 40,\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n filter:{\r\n fields: [\r\n {\r\n name: \"type\",\r\n value: -1,\r\n type: \"select\",\r\n label: \"main.type\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: -1, label: \"[Todos]\" },\r\n { value: 0, label: \"Acceso básico\" },\r\n { value: 2, label: \"Asesores / Asistentes\" },\r\n { value: 4, label: \"Tutores\" },\r\n { value: 5, label: \"Profesores / Instructores\" },\r\n { value: 6, label: \"Psicólogos\" },\r\n { value: 7, label: \"Supervisión académica\" },\r\n { value: 8, label: \"Staff médico\" },\r\n { value: 9, label: \"Usuarios externos de app\" },\r\n { value: 10, label: \"Usuarios externos de admin\" },\r\n { value: 20, label: \"Coordinación grado\" },\r\n { value: 90, label: \"Directivos\" },\r\n { value: 95, label: \"Admins\" },\r\n { value: 99, label: \"API\" },\r\n { value: 100, label: \"Super-Admins\" }\r\n ]\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: \"main.applyFilter\",\r\n renderIf: (ctx) => { return Number.isInteger(ctx.state.type) },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.name\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"last\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.lastName\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"mail\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.email\",\r\n rules: 'required|email',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"cel\",\r\n value: null,\r\n type: \"number\",\r\n label: \"main.cellPhone\",\r\n rules: \"required|max:13\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"pass\",\r\n value: null,\r\n type: \"password\",\r\n label: \"main.password\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"inactive\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"main.inactive\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"face\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"main.photography\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"/admStaff/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n output: true\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"sign\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"main.signature\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"/admStaff/sign\",\r\n accept: '.jpeg,.jpg,.png',\r\n output: true\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"notifModes\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.notifyVia\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"externalId\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.externalId\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"groupId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.group\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n path: 'admGroup/get'\r\n }\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.lastName\",\r\n accessor: \"last\"\r\n },\r\n {\r\n Header: \"main.email\",\r\n accessor: \"mail\"\r\n }\r\n ]\r\n }\r\n}","import roles from '../../data/roles'\r\n\r\nexport default (context) => {\r\n const M = \"admGroup.\"\r\n return {\r\n config: {\r\n pageSize: 50\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"staff\",\r\n value: 1,\r\n type: \"select\",\r\n label: \"main.type\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: 0,\r\n label: \"Todos\"\r\n },\r\n {\r\n value: 1,\r\n label: \"Staff\"\r\n },\r\n {\r\n value: 2,\r\n label: \"Usuarios\"\r\n }\r\n ]\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: \"main.applyFilter\",\r\n renderIf: (ctx) => { return Number.isInteger(ctx.state.staff) },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.name\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"type\",\r\n value: null,\r\n type: \"select\",\r\n label: `${M}userGroupType`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: roles,\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"staff\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}staffAdmin`,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"canRead\",\r\n value: null,\r\n type: \"select\",\r\n label: `${M}permissionsRead`,\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n path: '/admModule/get?pick=true&classic=false',\r\n isMulti: true,\r\n setOutput: (v) => {\r\n if (v) return v.map((m) => { return { ID: m.value, name: m.label, selected: true } })\r\n }\r\n },\r\n renderIf: (ctx) => { return ctx.state.staff }\r\n },\r\n {\r\n col: 12,\r\n name: \"canEdit\",\r\n value: null,\r\n type: \"select\",\r\n label: `${M}permissionsWrite`,\r\n opts: {\r\n style: 'float-label',\r\n path: '/admModule/get?pick=true&classic=false',\r\n isMulti: true,\r\n setOutput: (v) => {\r\n if (v) return v.map((m) => { return { ID: m.value, name: m.label, selected: true } })\r\n }\r\n },\r\n renderIf: (ctx) => { return ctx.state.staff }\r\n },\r\n {\r\n col: 12,\r\n name: \"categories\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.categories\",\r\n opts: {\r\n style: 'float-label',\r\n path: '/admCategory/get?pick=true',\r\n isMulti: true,\r\n setOutput: (v) => {\r\n if (v) return v.map((m) => { return { ID: m.value, name: m.label, selected: true } })\r\n }\r\n },\r\n renderIf: (ctx) => { return ctx.state.staff }\r\n },\r\n {\r\n col: 12,\r\n name: \"forceLogout\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}forceLogout`,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => { return ctx.state.staff }\r\n },\r\n {\r\n col: 12,\r\n name: \"members\",\r\n value: null,\r\n type: \"select\",\r\n label: `${M}members`,\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n path: 'admUser/get?type=2&pick=true',\r\n withImg: true,\r\n isMulti: true,\r\n searchOnline: true,\r\n setOutput: (v) => {\r\n if (v) return v.map((m) => { return { ID: m.value, name: m.label, selected: true } })\r\n }\r\n },\r\n renderIf: (ctx) => { return false }\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\",\r\n },\r\n {\r\n Header: \"main.staff\",\r\n accessor: \"staff\",\r\n isBool: true\r\n },\r\n {\r\n Header: \"main.type\",\r\n accessor: \"type\",\r\n }\r\n ]\r\n }\r\n}","export default (context) => {\r\n let columns = [\r\n {\r\n Header: \"Cliente\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Monto\",\r\n accessor: \"total\",\r\n isDecimal: true,\r\n minWidth: 70\r\n },\r\n {\r\n Header: \"Monto recibo\",\r\n accessor: \"amountReceipt\",\r\n isDecimal: true,\r\n minWidth: 70\r\n },\r\n {\r\n Header: \"Mora\",\r\n accessor: \"penalty\",\r\n isDecimal: true,\r\n minWidth: 70\r\n },\r\n {\r\n Header: \"Fecha\",\r\n accessor: \"date\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Dependiente\",\r\n accessor: \"depend\"\r\n },\r\n {\r\n Header: \"Documento\",\r\n accessor: \"dependDoc\"\r\n },\r\n {\r\n Header: \"Detalle\",\r\n accessor: \"det\",\r\n minWidth: 200\r\n },\r\n {\r\n Header: \"Tarjeta\",\r\n accessor: \"card\",\r\n minWidth: 70\r\n },\r\n {\r\n Header: \"Num. Oper.\",\r\n accessor: \"opnum\",\r\n minWidth: 70\r\n },\r\n {\r\n Header: \"Código Externo\",\r\n accessor: \"externalId\"\r\n },\r\n {\r\n Header: \"Referencia\",\r\n accessor: \"note\"\r\n }\r\n ]\r\n\r\n if(window.location.href.indexOf('admOrder') > -1) columns = columns.filter(e => ['name','depend'].indexOf(e.accessor) === -1)\r\n \r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n remap: r => {\r\n r.data.Results.map(e => e.amountReceipt = (e.total - e.penalty))\r\n return r\r\n }\r\n },\r\n\r\n actions: {\r\n create: false,\r\n edit: false,\r\n delete: false,\r\n print: {remap: true},\r\n export: {remap: true},\r\n search: window.location.href.indexOf('admBilling') > -1\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"studentId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admStudent/get?enrolled=-1&pick=true\",\r\n withImg: true\r\n },\r\n renderIf: (ctx) => { return window.location.href.indexOf('admBilling') > -1 }\r\n },\r\n {\r\n type: \"daterange\",\r\n range: {\r\n value: 1,\r\n renderIf: () => window.location.href.indexOf('admBilling') > -1\r\n },\r\n from: {\r\n renderIf: ctx => window.location.href.indexOf('admBilling') > -1 && ctx.state.range === 2\r\n },\r\n to: {\r\n renderIf: ctx => window.location.href.indexOf('admBilling') > -1 && (ctx.state.range === 2 && ctx.state.from)\r\n }\r\n },\r\n {\r\n name: \"status\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Estado\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: 1,\r\n label: \"Confirmados\"\r\n },\r\n {\r\n value: 0,\r\n label: \"Pendientes\"\r\n },\r\n {\r\n value: -1,\r\n label: \"Abandonados\"\r\n },\r\n {\r\n value: -2,\r\n label: \"Con error\"\r\n },\r\n ]\r\n },\r\n renderIf: (ctx) => { return window.location.href.indexOf('admBilling') > -1 }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return ctx.state.from || ctx.state.to || Number.isInteger(ctx.state.status) || Number.isInteger(ctx.state.studentId)},\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n columns: columns\r\n }\r\n}","import moment from \"moment\"\r\n\r\nexport default (context) => {\r\n let years = []\r\n let year = 2018\r\n const currentYear = parseInt(moment().format('Y'))\r\n while (year <= currentYear) {\r\n years.push({ value: year, label: year.toString() })\r\n year++\r\n }\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n customPathGet: \"admBilling/getGrid\",\r\n customPathPost: \"admBilling/createbulk\"\r\n // customPathPost: \"admOrder/createbulk\"\r\n },\r\n \r\n actions: {\r\n create: false,\r\n edit: false,\r\n delete: false,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n extras: {\r\n itemsInRowsTable: [\r\n { icon: 'simple-icon-eye', name: 'Ver ordenes', onClick: (rowData, ctx) => {\r\n let obj = {\r\n module: 'admOrder',\r\n params: [\r\n {\r\n name: \"studentId\",\r\n value: {value: rowData.ID, label: (rowData.name) },\r\n type: \"select\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admStudent/get?pick=true\",\r\n withImg: true\r\n }\r\n },\r\n ],\r\n type: 0,\r\n keepFilters: false\r\n }\r\n ctx.props.setDeeplink(obj, ctx.props.history)\r\n }\r\n },\r\n { icon: 'simple-icon-eye', name: 'Ver pagos', onClick: (rowData, ctx) => {\r\n console.log(rowData)\r\n let obj = {\r\n module: 'admBilling',\r\n params: [\r\n {\r\n name: \"studentId\",\r\n value: {value: rowData.ID, label: (rowData.name) },\r\n type: \"select\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admStudent/get?pick=true\",\r\n withImg: true\r\n }\r\n },\r\n ],\r\n type: 0,\r\n keepFilters: false\r\n }\r\n ctx.props.setDeeplink(obj, ctx.props.history)\r\n }\r\n }\r\n ]\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"year\",\r\n value: currentYear,\r\n type: \"select\",\r\n label: \"Año\",\r\n opts: {\r\n style: 'float-label',\r\n items: years\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admSection/get?pick=true\"\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return Number.isInteger(ctx.state.year) && ctx.state.name !== \"\" },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n fields: []\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"ID Alumno\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"Nombre\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Grado / Sección\",\r\n accessor: \"sectionTag\"\r\n },\r\n {\r\n Header: \"ID Externo\",\r\n accessor: \"externalId\"\r\n },\r\n {\r\n Header: \"1\",\r\n accessor: \"M1\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"2\",\r\n accessor: \"M2\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"3\",\r\n accessor: \"M3\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"4\",\r\n accessor: \"M4\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"5\",\r\n accessor: \"M5\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"6\",\r\n accessor: \"M6\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"7\",\r\n accessor: \"M7\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"8\",\r\n accessor: \"M8\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"9\",\r\n accessor: \"M9\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"10\",\r\n accessor: \"M10\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"11\",\r\n accessor: \"M11\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"12\",\r\n accessor: \"M12\",\r\n isDecimal: true,\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"Beca\",\r\n accessor: \"condition\",\r\n isBool: true,\r\n minWidth: 50\r\n }\r\n ]\r\n }\r\n}","export default (context) => {\r\n return {\r\n config: {\r\n pageSize: 10,\r\n list: false,\r\n resource:'admOrder/detail',\r\n hiddenTitle: false\r\n },\r\n \r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true\r\n },\r\n\r\n extras: {\r\n items: []\r\n },\r\n\r\n filter: {\r\n fields: [],\r\n buttons: []\r\n },\r\n\r\n form: {\r\n setValuesBeforePost: (values) => {\r\n return values\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"item\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Concepto\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"quantity\",\r\n value: null,\r\n type: \"number\",\r\n label: \"Cantidad\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"amount\",\r\n value: null,\r\n type: \"number\",\r\n label: \"Monto\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"Concepto\",\r\n accessor: \"item\"\r\n },{\r\n Header: \"Cantidad\",\r\n accessor: \"quantity\",\r\n minWidth: 50\r\n },{\r\n Header: \"Monto\",\r\n accessor: \"amount\",\r\n isDecimal: true,\r\n minWidth: 50\r\n }\r\n ]\r\n }\r\n}","import _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport dateRange from \"../../components/utils/DateRange\";\r\n\r\nexport default (context) => {\r\n return {\r\n config: {\r\n pageSize: 40,\r\n customPathGet: \"admBilling/report/receipts/get/\",\r\n resource: \"admBilling/receipts\",\r\n list: false,\r\n enableContexMenu: false,\r\n remap: (r) => {\r\n r.data.Results = r.data.Results.map(e => {e.type = e.type === 0 ? \"Recibo de ingreso\" : \"Nota de ingreso\"; return e})\r\n return r\r\n },\r\n remapRow: (form) => {\r\n form.type = form.type === 0 ? \"Recibo de ingreso\" : \"Nota de ingreso\"\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: false,\r\n edit: false,\r\n delete: false,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n extras: {\r\n items: [\r\n {id: 0, icon: 'simple-icon-cloud-download', name: 'Descargar recibos', onClick: () => { \r\n let content = {\r\n name: \"Descargar recibos masivamente en formato PDF\",\r\n fields: [...dateRange()],\r\n buttons: [\r\n {\r\n label: \"Descargar\",\r\n onClick: (ctx) => {\r\n ctx.validateForm().then(() => {\r\n context.props.setLoader(true)\r\n _axios\r\n .get('admBilling/report/receipts/zip?from=' + ctx.state.from + '&to=' + ctx.state.to)\r\n .then(r => {\r\n if (r.status === 0) {\r\n if (r.data && r.data.url) window.open(r.data.url)\r\n context.toggleRight()\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }).catch(e => {\r\n console.log(e)\r\n context.props.setLoader(false)\r\n })\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n }\r\n ]\r\n }\r\n\r\n context.setState({modalRightContent: content}, () => {\r\n context.toggleRight() \r\n })\r\n }}\r\n ],\r\n itemsInRowsTable: [\r\n {\r\n id: 1, icon: 'simple-icon-cloud-download', name: row => row.refId === null ? \"Descargar recibo de ingreso\" : \"Descargar nota de ingreso\",\r\n onClick: (row, ctx) => {\r\n context.props.setLoader(true)\r\n let isChild = row.refId !== null\r\n _axios\r\n .get('admBilling/receipt/' + row.orderId + '/' + isChild)\r\n .then(r => {\r\n if (r.status === 0) {\r\n window.URL = window.URL || window.webkitURL;\r\n var xhr = new XMLHttpRequest(), a = document.createElement('a'), file;\r\n xhr.open('GET', r.data.url, true);\r\n xhr.responseType = 'blob';\r\n xhr.onload = function () {\r\n file = new Blob([xhr.response], { type : 'application/octet-stream' });\r\n a.href = window.URL.createObjectURL(file);\r\n a.download = r.data.filename;\r\n a.click();\r\n };\r\n xhr.send();\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }).catch(e => {\r\n console.log(e)\r\n context.props.setLoader(false);\r\n })\r\n }\r\n },\r\n {\r\n id: 2, icon: 'simple-icon-pencil', name: \"Editar recibo\",\r\n onClick: (row, ctx) => {\r\n context.getDataById(row.ID)\r\n }\r\n }\r\n ]\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n col: 3,\r\n name: \"status\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Estado\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: -1,\r\n label: \"Todos los recibos\"\r\n },\r\n {\r\n value: 0,\r\n label: \"Pendientes de pago\"\r\n },\r\n {\r\n value: 1,\r\n label: \"Pagados\"\r\n },\r\n {\r\n value: 2,\r\n label: \"Anulados\"\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n col: 2,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Tipo\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: -1,\r\n label: \"Todos\"\r\n },\r\n {\r\n value: 0,\r\n label: \"Recibo de ingreso\"\r\n },\r\n {\r\n value: 1,\r\n label: \"Nota de ingreso\"\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n col: 3,\r\n name: \"studentId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admStudent/get?pick=true&enrolled=-1\",\r\n withImg: true\r\n }\r\n },\r\n {\r\n type: \"daterange\"\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return ctx.state.from || ctx.state.to || Number.isInteger(ctx.state.status) || Number.isInteger(ctx.state.studentId) || Number.isInteger(ctx.state.type)},\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n fields: [\r\n {\r\n col: 4,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"hidden\"\r\n },\r\n {\r\n col: 4,\r\n name: \"ID\",\r\n value: \"\",\r\n type: \"hidden\"\r\n },\r\n {\r\n col: 8,\r\n name: \"label1\",\r\n value: (L, state) => state.type === 0 ? `
    Recibo de ingreso Nro. ${state.ID}
    ` : `
    Nota de ingreso Nro. ${state.ID}
    `,\r\n type: \"label\"\r\n },\r\n {\r\n col: 4,\r\n name: \"label2\",\r\n value: (L, state) => state.voided ? `
    ANULADO
    ` : \"\",\r\n type: \"label\",\r\n renderIf: ctx => ctx.state.voided\r\n },\r\n {\r\n col: 6,\r\n name: \"date\",\r\n value: \"\",\r\n type: \"datetime\",\r\n label: \"Fecha de emisión\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"datePaid\",\r\n value: \"\",\r\n type: \"datetime\",\r\n label: \"Fecha de vencimiento\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"doc\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"DNI\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"principalName\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Nombre\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 4,\r\n name: \"dependantName\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 4,\r\n name: \"dependantDoc\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Código de alumno\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 4,\r\n name: \"sectionTag\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Sección\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 8,\r\n name: \"brief\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Concepto\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 4,\r\n name: \"amount\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Monto\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 12,\r\n name: \"notes\",\r\n value: \"\",\r\n type: \"textarea\",\r\n label: \"Observaciones\",\r\n rules: \"max:200\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"Código\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"Tipo\",\r\n accessor: \"type\"\r\n },\r\n {\r\n Header: \"Fecha\",\r\n accessor: \"date\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Referencia\",\r\n accessor: \"refId\"\r\n },\r\n {\r\n Header: \"Fecha pago\",\r\n accessor: \"datePaid\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Vencimiento\",\r\n accessor: \"dueDate\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Responsable\",\r\n accessor: \"principalName\"\r\n },\r\n {\r\n Header: \"Nro. Doc.\",\r\n accessor: \"doc\"\r\n },\r\n {\r\n Header: \"Dependiente\",\r\n accessor: \"dependantName\"\r\n },\r\n {\r\n Header: \"Código\",\r\n accessor: \"dependantCode\"\r\n },\r\n {\r\n Header: \"DNI\",\r\n accessor: \"dependantDoc\"\r\n },\r\n {\r\n Header: \"Sección\",\r\n accessor: \"sectionTag\"\r\n },\r\n {\r\n Header: \"Concepto\",\r\n accessor: \"brief\"\r\n },\r\n {\r\n Header: \"Monto\",\r\n accessor: \"amount\",\r\n isDecimal: true,\r\n minWidth: 70\r\n },\r\n {\r\n Header: \"Nro cuota\",\r\n accessor: \"code\"\r\n },\r\n {\r\n Header: \"Pagado\",\r\n accessor: \"paid\",\r\n isBool: true\r\n },\r\n {\r\n Header: \"Anulado\",\r\n accessor: \"voided\",\r\n isBool: true\r\n },\r\n {\r\n Header: \"Observaciones\",\r\n accessor: \"notes\"\r\n },\r\n {\r\n Header: \"ID\",\r\n accessor: \"orderId\",\r\n hidden: true\r\n }\r\n ]\r\n }\r\n}\r\n","export default (context) => {\r\n return {\r\n config: {\r\n pageSize: 20,\r\n list: false,\r\n customPathGet: 'admStudent/contacts',\r\n remap: (r) => {\r\n r.data.Results.forEach(e => {\r\n ['depMail', 'rel1mail', 'rel2mail'].forEach(col => {\r\n e[`isChecked_${col}`] = context.state.checkedList.some(c => c.colId === col && c.rowId === e.ID && c.mail === e[col])\r\n })\r\n })\r\n return r\r\n }\r\n },\r\n \r\n actions: {\r\n print: false,\r\n export: context.props.userAdmin.role === '100',\r\n search: true\r\n },\r\n\r\n extras: {\r\n items: [\r\n { id: 1, icon: 'simple-icon-envelope-open', name: 'Enviar correo', onClick: () => {\r\n let openPopupCentered = (url,width,height) => {\r\n var x=(window.screen.width/2)-(width/2);\r\n var y=(window.screen.height/2)-(height/2);\r\n window.open(url, 'popup', 'width=' + width + ', height=' + height + ', left=' + x + ', top=' + y +'');\r\n }\r\n let url = 'https://mail.google.com/mail/u/5/?fs=1&bcc='\r\n context.state.checkedList.forEach(e => {\r\n url += e.mail + ','\r\n });\r\n url = url.slice(0, -1)\r\n url += '&tf=cm'\r\n // console.log(url)\r\n openPopupCentered(url, 800, 600)\r\n } \r\n },\r\n ]\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"studentId\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admStudent/get?enrolled=-1&active=-1&pick=true\",\r\n withImg: true\r\n },\r\n onChange: (ctx) => {\r\n ctx.setState({sectionId: 0 })\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"Sección\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admSection/get?pick=true\"\r\n },\r\n onChange: (ctx) => {\r\n ctx.setState({studentId: 0 })\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return Number.isInteger(ctx.state.studentId) || Number.isInteger(ctx.state.sectionId)},\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"ID\",\r\n value: null,\r\n type: \"text\",\r\n label: \"ID\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"easyId\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Número de documento\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"externalId\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Código externo\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"total\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Monto\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"paid\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Pagado\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"brief\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Concepto\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"curr\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Moneda\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"dueDate\",\r\n value: null,\r\n type: \"date\",\r\n label: \"Vencimiento\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"created\",\r\n value: null,\r\n type: \"date\",\r\n label: \"Fecha creación\",\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"hasPenalty\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Penalidad\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"principalName\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Nombre responsable\",\r\n rules: 'required',\r\n disabled:true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"dependantName\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Nombre dependiente\",\r\n rules: 'required',\r\n disabled:true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"Nombre\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Apellido paterno\",\r\n accessor: \"last\"\r\n },\r\n {\r\n Header: \"Apellido materno\",\r\n accessor: \"last2\"\r\n },\r\n {\r\n Header: \"Código\",\r\n accessor: \"externalId\"\r\n },\r\n {\r\n Header: \"Padre\",\r\n accessor: \"rel1\"\r\n },\r\n {\r\n Header: \"Tel. Padre\",\r\n accessor: \"rel1Tel\"\r\n },\r\n {\r\n Header: \"Madre\",\r\n accessor: \"rel2\"\r\n },\r\n {\r\n Header: \"Tel. Madre\",\r\n accessor: \"rel2Tel\"\r\n },\r\n {\r\n Header: \"Mail padre\",\r\n accessor: \"rel1mail\",\r\n type: 'check',\r\n id: 'parent',\r\n minWidth: 50,\r\n classList: \"w-sm-100\"\r\n },\r\n {\r\n Header: \"Mail madre\",\r\n accessor: \"rel2mail\",\r\n type: 'check',\r\n id: 'mother',\r\n minWidth: 50,\r\n classList: \"w-sm-100\"\r\n },\r\n {\r\n Header: \"Mail alumno\",\r\n accessor: \"depMail\",\r\n type: 'check',\r\n id: 'pupil',\r\n minWidth: 50,\r\n classList: \"w-sm-100\"\r\n }\r\n ]\r\n } \r\n}","export default (context) => {\r\n\r\n const items = [\r\n {id: 2, name: 'Por grado / seccion', onClick: (row, ctx, id) => {\r\n context.setState({selectedReport: id})\r\n }},\r\n {id: 1, name: 'Por profesor', onClick: (row, ctx, id) => {\r\n context.setState({selectedReport: id})\r\n }},\r\n {id: 5, name: 'Por curso', onClick: (row, ctx, id) => {\r\n context.setState({selectedReport: id})\r\n }},\r\n {id: 6, name: 'Conclusiones descriptivas', onClick: (row, ctx, id) => {\r\n context.setState({selectedReport: id})\r\n }},\r\n {id: 4, name: 'Notas finales', module:'admGradesRep', onClick: (row, ctx, id) => {\r\n context.setState({selectedReport: id})\r\n }},\r\n {id: 3, name: 'Notas finales Minedu', module:'admGradesRep', onClick: (row, ctx, id) => {\r\n context.setState({selectedReport: id})\r\n }},\r\n {id: 7, name: 'Ver todos los profesores', onClick: (row, ctx, id) => {\r\n context.toggleModal()\r\n }}\r\n ]\r\n\r\n const allowedItems = items.filter(f => { return !f.module || context.props.userAdmin.menu.some(s=> s.subs.some(ss=>ss.id === f.module))})\r\n\r\n return {\r\n extras: {\r\n items: allowedItems\r\n }\r\n }\r\n}","import roles from '../../data/roles'\r\n\r\nexport default (context) => {\r\n return {\r\n config: {\r\n hiddenTitle: true,\r\n pageSize: 40,\r\n customPathPost: \"admActivityParts/update/{ID}\",\r\n remapRow: (d) => {\r\n d.master = d.masterId.label\r\n return d\r\n }\r\n },\r\n \r\n actions: {\r\n create: false,\r\n edit: true,\r\n delete: true\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.masterId = { value: r.data.masterId, label: r.data.masterName }\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (values) => {\r\n values.masterId = values.masterId.value\r\n return values\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Sección\",\r\n rules: 'required',\r\n disabled: true,\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"masterId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Profesor principal\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admStaff/get?pick=true\",\r\n setOutput: (v) => v\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"ID\",\r\n value: \"\"\r\n }\r\n ],\r\n detailGrid: () => {\r\n return context.state.idItemSelected ?\r\n {\r\n module: 'admActivityMasters',\r\n parentIdField: 'ID',\r\n embeded: (c) => {\r\n return {\r\n config: {\r\n pageSize: 40,\r\n remap: (list,row) => { list.data.Results = list.data.Results.map(row); return list },\r\n remapRow: (r) => { \r\n let rol = roles.find(f => f.value === r.alterType)\r\n if (rol) r.alterTypeName = rol.label\r\n return r\r\n }\r\n },\r\n \r\n actions: {\r\n create: {\r\n reloadGrid: true\r\n },\r\n edit: {\r\n reloadGrid: true\r\n },\r\n delete: true,\r\n print: false,\r\n export: false\r\n },\r\n \r\n filter: {\r\n fields: []\r\n },\r\n \r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.userId = { value: r.data.userId, label: r.data.userName }\r\n }\r\n return r\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Maestro / instructor\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admStaff/get?pick=true\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"role\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Rol en curso/sección\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n name: \"alterType\",\r\n value: \"\",\r\n col: 12,\r\n type: \"select\",\r\n label: \"Tipo de rol\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: roles,\r\n isMulti: false,\r\n tooltip: true\r\n }\r\n }\r\n ] \r\n },\r\n \r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\",\r\n maxWidth: 40\r\n },\r\n {\r\n Header: \"Nombres\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Rol en curso/sección\",\r\n accessor: \"alterTypeName\"\r\n }\r\n ]\r\n }\r\n }\r\n } : null\r\n }\r\n }, \r\n \r\n columns: [\r\n {\r\n Header: \"Sección\",\r\n accessor: \"section\"\r\n },\r\n {\r\n Header: \"Profesor principal\",\r\n accessor: \"master\"\r\n }\r\n ]\r\n }\r\n }","import roles from '../../data/roles'\r\n\r\nexport default (context) => {\r\n\r\n return {\r\n config: {\r\n pageSize: 40,\r\n remap: (list,row) =>{ list.data.Results = list.data.Results.map(row); return list},\r\n remapRow: (r) => { \r\n r.alterTypeName=roles.find(f=>f.value === r.alterType).label;\r\n return r;\r\n }\r\n },\r\n\r\n actions: {\r\n create: {\r\n reloadGrid: true\r\n },\r\n edit: {\r\n reloadGrid: true\r\n },\r\n delete: true,\r\n print: false,\r\n export: true\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"alterType\",\r\n value: 5,\r\n type: \"select\",\r\n label: \"Rol en curso/sección\",\r\n opts: {\r\n style: 'float-label',\r\n items: roles\r\n }\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Sección\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFilter.superSectionId }\r\n }\r\n },\r\n {\r\n name: \"activityId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Curso\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSubject/get?pick=true&superSectionId=\" + context.state.formFilter.superSectionId }\r\n }\r\n },\r\n {\r\n name: \"userId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Usuario\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admStaff/get?pick=true\",\r\n withImg: true\r\n }\r\n },\r\n\r\n {\r\n name: \"groupId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grupo / tipo de usuario\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admGroup/get?pick=true&staff=1\"\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => true,\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.userId = { value: r.data.userId, label: r.data.userName }\r\n }\r\n return r\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Maestro / instructor\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admStaff/get?pick=true\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"role\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Rol en curso/sección\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n name: \"alterType\",\r\n value: \"\",\r\n col: 12,\r\n type: \"select\",\r\n label: \"Tipo de rol\",\r\n opts: {\r\n style: 'float-label',\r\n items: roles,\r\n isMulti: false,\r\n tooltip: true\r\n }\r\n }\r\n ] \r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\",\r\n maxWidth: 40\r\n },\r\n {\r\n Header: \"Nombres\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Rol en curso/sección\",\r\n accessor: \"alterTypeName\"\r\n },\r\n {\r\n Header: \"Curso\",\r\n accessor: \"subject\"\r\n },\r\n {\r\n Header: \"Sección\",\r\n accessor: \"section\"\r\n },\r\n {\r\n Header: \"Grupo\",\r\n accessor: \"group\"\r\n },\r\n ]\r\n }\r\n}","import _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nexport default (context) => {\r\n return {\r\n\r\n config: {\r\n pageSize: 40,\r\n list: false\r\n },\r\n\r\n actions: {\r\n create: {\r\n reloadGrid: true\r\n },\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n parent: 'superSectionId',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFilter.superSectionId }\r\n },\r\n renderIf: (ctx) => { return ctx.state.superSectionId }\r\n },\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return ctx.state.periodId || ctx.state.superSectionId },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.periodId = { value: r.data.periodId, label: r.data.periodName }\r\n r.data.gradeName = { value: r.data.gradeName, label: r.data.gradeName }\r\n r.data.sectionName = { value: r.data.sectionName, label: r.data.sectionName }\r\n r.data.userId = { value: r.data.userId, label: r.data.userName }\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n delete v.flags\r\n delete v.btn1\r\n v.userId = v.userId.value\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 4,\r\n name: \"periodId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Periodo\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"gradeName\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Grado\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"sectionName\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n rules: 'required',\r\n parent: 'gradeName',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.form.gradeName }\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n rules: 'required',\r\n parent: 'sectionName',\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStudent/get?pick=true\" + (context.state.form.sectionName ? \"§ionId=\" + context.state.form.sectionName : \"\") },\r\n setOutput: e => e\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"dateFrom\",\r\n value: \"\",\r\n type: \"date\",\r\n label: \"Fecha\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n },\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-1\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Perfil psicopedagógico: cognitivo, comunicativo, emocional y autonomía\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note1\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"\"\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-2\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Recomendaciones psicopedagógicas\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note2\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"\"\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-3\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Recomendaciones por área académica\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note3\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"\"\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-4\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Recomendaciones por perfil\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note4\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"\"\r\n }\r\n ]\r\n },\r\n {\r\n col: 4,\r\n name: \"flag1\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"AD\"\r\n },\r\n {\r\n col: 8,\r\n name: \"flag2\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"I\"\r\n },\r\n\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file1\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 1\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file2\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 2\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file3\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 3\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"btn1\",\r\n type: \"button\",\r\n label: \"Ver Citas\",\r\n onClick: (ctx) => {\r\n ctx.toogleSubGrid(0)\r\n },\r\n renderIf: (ctx) => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 4,\r\n label: \"Descargar PDF\",\r\n name: \"Descargar PDF\",\r\n value: \"commitment\",\r\n type: \"button\",\r\n onClick: () => {\r\n context.props.setLoader(true)\r\n _axios\r\n .get('admTracking/pdf/' + context.state.idItemSelected)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n window.URL = window.URL || window.webkitURL;\r\n var xhr = new XMLHttpRequest(), a = document.createElement('a'), file;\r\n xhr.open('GET', r.data.url, true);\r\n xhr.responseType = 'blob';\r\n xhr.onload = function () {\r\n file = new Blob([xhr.response], { type : 'application/octet-stream' });\r\n a.href = window.URL.createObjectURL(file);\r\n a.download = r.data.filename; \r\n a.click();\r\n };\r\n xhr.send();\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }).catch(e => {\r\n context.props.setLoader(false)\r\n })\r\n },\r\n renderIf: () => { return context.state.idItemSelected },\r\n },\r\n {\r\n col: 12,\r\n name: \"bookings\",\r\n value: null,\r\n type: \"hidden\",\r\n label: \"\"\r\n },\r\n {\r\n col: 12,\r\n name: \"userName\",\r\n value: \"\",\r\n type: \"hidden\",\r\n label: \"\"\r\n }\r\n ],\r\n subGrids: [\r\n {\r\n name: (ctx) => { return 'CITAS CON: ' + ctx.state.userName },\r\n module: 'admBookingList',\r\n filterBy: (ctx) => { return { userId: ctx.state.userId.value, userName: ctx.state.userId.label, IN: ctx.state.bookings?JSON.stringify(ctx.state.bookings):\"[]\" } }\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"Alumno\",\r\n accessor: \"user\"\r\n },\r\n {\r\n Header: \"Grado\",\r\n accessor: \"grado\"\r\n },\r\n {\r\n Header: \"Fecha\",\r\n accessor: \"dateFrom\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Registrado por\",\r\n accessor: \"createdByName\"\r\n }\r\n ]\r\n }\r\n}","import moment from \"moment\";\r\nimport _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\n\r\nexport default (context) => {\r\n const filter = {\r\n fields: [\r\n {\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n }\r\n },\r\n {\r\n type: \"daterange\"\r\n },\r\n {\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { \r\n return \"/admStudent/get?pick=true\"\r\n }\r\n }\r\n },\r\n {\r\n col: 3,\r\n name: \"resourceId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Profesor\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admResource/get?pick=true\" }\r\n }\r\n },\r\n {\r\n name: \"status\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Estado\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: 0,\r\n label: \"Separadas\"\r\n },\r\n {\r\n value: 1,\r\n label: \"Confirmadas\"\r\n },\r\n {\r\n value: 2,\r\n label: \"Completadas\"\r\n },\r\n ]\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n }\r\n return {\r\n config: {\r\n resource: \"admBooking\",\r\n pageSize: 40,\r\n list: false\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: false,\r\n search: true,\r\n print: true,\r\n export: true\r\n },\r\n\r\n filter: context.props.location?.pathname.indexOf('admBookingList') > -1 ? filter : null,\r\n\r\n form: {\r\n handleSaveChanges : () => {\r\n const ctx = context\r\n if (ctx.state.idItemSelected) ctx.edit()\r\n else {\r\n ctx.validateForm().then(() => {\r\n const save = () => {\r\n let body = {\r\n slot: ctx.state.form.completed ? moment(ctx.state.form.date2 + ' ' + moment(ctx.state.form.time2).format('HH:mm:ss')).format('YYYYMMDDHHmm') : ctx.state.form.time,\r\n resourceId: context.resourceId,\r\n userId: ctx.state.form.userId.value,\r\n externalId: null,\r\n notes: ctx.state.form.notes,\r\n notesCompleted: ctx.state.form.notesCompleted,\r\n extras: {\r\n CodigoPadreFamilia: ctx.state.form.CodigoPadreFamilia.map((e) => {\r\n e = { ID: e.value, name: e.label }\r\n return e\r\n }),\r\n Subject: null,\r\n trackingId: ctx.state.form.trackingId,\r\n },\r\n completed: ctx.state.form.completed\r\n }\r\n\r\n // console.log(body)\r\n \r\n _axios\r\n .post('booking/book', body)\r\n .then(r => {\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n if (r.status >= 0) {\r\n context.toggle()\r\n context.getData()\r\n }\r\n context.props.setLoader(false)\r\n }).catch(e => {\r\n context.props.setLoader(false)\r\n })\r\n }\r\n\r\n const createSlot = () => {\r\n let body = {\r\n date: ctx.state.form.completed ? moment(ctx.state.form.date2 + ' ' + moment(ctx.state.form.time2).format('HH:mm:ss')).format('YYYYMMDDHHmm') : ctx.state.form.time,\r\n endDate: ctx.state.form.completed ? moment(ctx.state.form.date2 + ' ' + moment(ctx.state.form.time2).format('HH:mm:ss')).add(20, 'minutes').format('YYYYMMDDHHmm') : null\r\n }\r\n _axios\r\n .post('/booking/slots/' + context.resourceId , body)\r\n .then(r => {\r\n if (r.status >= 0) save()\r\n else {\r\n context.props.setLoader(false)\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n }\r\n }).catch(e => {\r\n console.log(e)\r\n context.props.setLoader(false)\r\n })\r\n }\r\n\r\n const getResource = () => {\r\n _axios\r\n .get('/admResource/active')\r\n .then(r => {\r\n if (r.status === 0) {\r\n let resource = r.data.find(e => e.owner === context.props.userAdmin.ID)\r\n if (resource) {\r\n context.resourceId = resource.ID\r\n createSlot()\r\n }\r\n else NotificationManager.error('Antes de registrar una cita debe de registrar al profesor como un recurso.', 'Error', 5000, null, null, 'outline')\r\n } else {\r\n NotificationManager.error(r.msg, 'Opps', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }\r\n }).catch(e => {\r\n console.log(e)\r\n context.props.setLoader(false)\r\n })\r\n }\r\n\r\n context.props.setLoader(true)\r\n ctx.state.form.completed ? getResource() : ctx.state.form.exception ? createSlot() : save()\r\n })\r\n .catch(e => { /* console.log(e) */ }) \r\n }\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"completed\",\r\n type: \"switch\",\r\n label: \"CITA YA FUE REALIZADA\",\r\n renderIf: () => { return !context.state.idItemSelected }\r\n },\r\n {\r\n col: 4,\r\n name: \"userId\",\r\n value: window.location.href.indexOf('admTracking') > -1 ? { value: context.props.filterBy.userId, label: context.props.filterBy.userName } : \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n withImg: true,\r\n isClearable: false,\r\n path: () => { return \"/teacher/\" + context.props.userAdmin.ID + \"/students\" },\r\n remap: (r) => {\r\n return {\r\n data: {\r\n Results: r.data.map(e => {\r\n e.ID = e.id\r\n e.name = e.last + ', ' + e.name\r\n e.img = e.face\r\n return e\r\n })\r\n },\r\n msg: r.msg,\r\n status: r.status\r\n }\r\n },\r\n setOutput: v => v\r\n },\r\n renderIf: () => { return !context.state.idItemSelected },\r\n disabled: () => { return window.location.href.indexOf('admTracking') > -1 }\r\n },\r\n {\r\n col: 3,\r\n name: \"exception\",\r\n type: \"switch\",\r\n label: \"Horario de excepción\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => { return !context.state.idItemSelected && !ctx.state.completed}\r\n },\r\n {\r\n col: 4,\r\n name: \"date2\",\r\n type: \"date\",\r\n label: \"Fecha\",\r\n rules: 'required',\r\n parent: \"completed\",\r\n opts: {\r\n style: 'float-label',\r\n maxDate: moment()\r\n },\r\n disabled: () => { return context.state.form && context.state.form.userId ? false : true },\r\n renderIf: (ctx) => { return !context.state.idItemSelected && ctx.state.completed}\r\n },\r\n {\r\n col: 4,\r\n name: \"time2\",\r\n type: \"time\",\r\n label: \"Hora\",\r\n rules: 'required',\r\n parent: \"date2\",\r\n opts: {\r\n style: 'float-label',\r\n timeIntervals: 1,\r\n minTime: (ctx) => { return moment(ctx.state.date2).format(\"DD\") === moment().date().toString() ? moment().set({hour:0,minute:0,second:0,millisecond:0}) : null },\r\n maxTime: (ctx) => { return moment(ctx.state.date2).format(\"DD\") === moment().date().toString() ? moment() : null },\r\n },\r\n disabled: () => { return context.state.form && context.state.form.userId ? false : true },\r\n renderIf: (ctx) => { return !context.state.idItemSelected && ctx.state.date2 && ctx.state.completed}\r\n },\r\n {\r\n col: 2,\r\n name: \"date\",\r\n type: \"date\",\r\n label: \"Fecha\",\r\n rules: 'required',\r\n parent: \"exception\",\r\n opts: {\r\n style: 'float-label',\r\n onOpen: (ctxForm, ctxField) => {\r\n if (context.resourceId) context.resourceId = null\r\n if (ctxForm.state.exception) ctxField.setState({ highlightDates: undefined, includeDates: undefined })\r\n // if (!ctxForm.state.exception && ctxField.state.includeDates && ctxForm.state.date) return\r\n context.props.setLoader(true)\r\n _axios\r\n // .get('/booking/resources/' + (window.tenant.isPro ? 118 : 117) + '?from=' + moment().format('YYYY-MM-DDTHH:mm:ss') + '&to='+ moment().add(moment().daysInMonth() - moment().format('D'), 'd').format('YYYY-MM-DDTHH:mm:ss') +'&id=' + context.state.form.userId.value + '&variation=resOwnerByUserId')\r\n .get('/booking/resources/' + (window.tenant.isPro ? 118 : 117) + '?from=' + moment().format('YYYY-MM-DDTHH:mm:ss') + '&to='+ moment().add(1, 'months').endOf('month').format('YYYY-MM-DDTHH:mm:ss') +'&id=' + context.state.form.userId.value + '&variation=resOwnerByUserId')\r\n .then(r => {\r\n if (r.status >= 0) {\r\n if (r.data && r.data[0].slots) {\r\n if (!ctxForm.state.exception) {\r\n let slots = r.data[0].slots.filter(s => s.status !== 1)\r\n let dates = slots.map(e => moment(e.date,'YYYYMMDDHHmm'))\r\n ctxField.setState({ highlightDates: dates, includeDates: dates }, () => {\r\n ctxForm.dates = slots\r\n context.resourceId = r.data[0].id\r\n })\r\n } else context.resourceId = r.data[0].id\r\n }\r\n } else {\r\n ctxField.setState({ highlightDates: [], includeDates: [] })\r\n /*\r\n if (!ctxForm.state.exception) {\r\n ctxField.setState({ highlightDates: [], includeDates: [] }, () => {\r\n // setTimeout(() => { ctxField.datePickerRef.current.setOpen(false) }, 100)\r\n })\r\n }\r\n */\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }).catch(e => {\r\n context.props.setLoader(false)\r\n })\r\n }\r\n },\r\n onChange: (ctxForm) => {\r\n if (!ctxForm.state.exception) return\r\n _axios\r\n .get('/agenda/hours?day=' + moment(ctxForm.state.date).format('YYYY-MM-DD') + 'T00:00:00&onDemand=true')\r\n .then(r => {\r\n if (r.status >= 0) {\r\n if (r.data && r.data.hours) {\r\n ctxForm.dates = r.data.hours.split(',')\r\n ctxForm.dates = ctxForm.dates.map(e => { return e = moment(ctxForm.state.date).format('YYYYMMDD') + e.replace(':', '') } )\r\n }\r\n } else {\r\n ctxForm.dates = []\r\n NotificationManager.error(r.msg, 'Opps', 5000, null, null, 'outline')\r\n }\r\n }).catch(e => {\r\n console.log(e)\r\n })\r\n },\r\n disabled: () => { return context.state.form && context.state.form.userId ? false : true },\r\n renderIf: (ctx) => { return !context.state.idItemSelected && !ctx.state.completed}\r\n },\r\n {\r\n col: 3,\r\n name: \"time\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Hora\",\r\n rules: 'required',\r\n parent: \"date\",\r\n opts: {\r\n style: 'float-label',\r\n onMenuOpen: (ctxForm, ctxCustomSelect) => {\r\n let hours = []\r\n if (ctxForm.state.exception) {\r\n if (ctxForm.dates) hours = ctxForm.dates.map(e => { return {value: parseInt(e), label: moment(e, 'YYYYMMDDHHmm').format('HH:mm')} })\r\n } else {\r\n let date = ctxForm.dates.filter(e => moment(e.date, 'YYYYMMDDHHmm').format('YYYY-MM-DD') === ctxForm.state.date)\r\n hours = date.map((e) => { return {value: e.date, label: moment(e.date, 'YYYYMMDDHHmm').format('HH:mm') + '- ' + moment(e.endDate, 'YYYYMMDDHHmm').format('HH:mm'), isDisabled: e.status === 1 ? true : false} })\r\n }\r\n ctxCustomSelect.setState({ items: hours })\r\n },\r\n isClearable: true\r\n },\r\n onChange: (ctxForm) => {\r\n /*\r\n if (!ctxForm.state.exception || !ctxForm.state.time) return\r\n _axios\r\n .post('/booking/slots/' + context.resourceId, {date: ctxForm.state.time})\r\n .then(r => {\r\n if (r.status < 0) NotificationManager.error(r.msg, 'Error', 5000, null, null, 'outline')\r\n else context.canCreateException = true\r\n }).catch(e => {\r\n console.log(e)\r\n })\r\n */\r\n },\r\n disabled: () => { return context.state.form && context.state.form.date ? false : true },\r\n renderIf: (ctx) => { return !context.state.idItemSelected && !ctx.state.completed}\r\n },\r\n {\r\n col: 6,\r\n name: \"CodigoPadreFamilia\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Participante(s)\",\r\n rules: 'required',\r\n parent: \"userId\",\r\n opts: {\r\n style: 'float-label',\r\n isMulti: true,\r\n path: () => { return \"me/family?studentId=\" + context.state.form.userId.value + \"&externalId=null\" },\r\n remap: (r) => {\r\n let data = r.data.map(e => {\r\n e.ID = e.id\r\n e.name = e.last + ' ' + e.last2 + ', ' + e.name\r\n return e\r\n })\r\n data.splice(0, 0, {ID: context.state.form.userId.value, name: context.state.form.userId.label})\r\n return {\r\n data: {\r\n Results: data\r\n },\r\n msg: r.msg,\r\n status: r.status\r\n }\r\n },\r\n setOutput: v => v\r\n },\r\n disabled: () => {\r\n let r = true\r\n if ((context.state.form && context.state.form.time) || (context.state.form && context.state.form.completed)) r = false\r\n // if (context.state.form && context.state.form.exception && !context.canCreateException) r = true\r\n return r\r\n },\r\n renderIf: () => { return !context.state.idItemSelected }\r\n },\r\n {\r\n col: 6,\r\n name: \"trackingId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Tipo de cita\",\r\n rules: 'required',\r\n parent: \"userId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"tracking/bookingoptions?userId=\" + context.state.form.userId.value },\r\n remap: (r) => {\r\n r.data.splice(0, 0, {id: -1, name: 'Normal'})\r\n return {\r\n data: {\r\n Results: r.data.map(e => {\r\n e.ID = e.id\r\n return e\r\n })\r\n },\r\n msg: r.msg,\r\n status: r.status\r\n }\r\n },\r\n },\r\n disabled: () => { return context.state.form && context.state.form.CodigoPadreFamilia ? false : true },\r\n renderIf: () => { return !context.state.idItemSelected }\r\n },\r\n {\r\n col: 6,\r\n name: \"userName\",\r\n type: \"text\",\r\n label: \"Alumno\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true,\r\n renderIf: () => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 6,\r\n name: \"resourceName\",\r\n type: \"text\",\r\n label: \"Profesor\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true,\r\n renderIf: () => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 6,\r\n name: \"dtDate\",\r\n type: \"date\",\r\n label: \"Fecha\",\r\n opts: {\r\n style: 'float-label',\r\n dateFormat: 'YYYY/MM/DD HH:mm'\r\n },\r\n disabled: true,\r\n renderIf: () => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 6,\r\n name: \"status\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"Estado\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: 0,\r\n label: \"Separadas\"\r\n },\r\n {\r\n value: 1,\r\n label: \"Confirmadas\"\r\n },\r\n {\r\n value: 2,\r\n label: \"Completadas\"\r\n },\r\n ]\r\n },\r\n disabled: true,\r\n renderIf: () => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 12,\r\n name: \"notes\",\r\n type: \"textarea\",\r\n label: \"Motivo\",\r\n rules: 'max:1500',\r\n opts: {\r\n style: 'float-label',\r\n rows: 6\r\n },\r\n // renderIf: () => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 12,\r\n name: \"notesCompleted\",\r\n type: \"textarea\",\r\n label: \"Acuerdos de cita\",\r\n rules: 'max:1500',\r\n opts: {\r\n style: 'float-label',\r\n rows: 6\r\n }\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"Alumno\",\r\n accessor: \"userName\"\r\n },\r\n {\r\n Header: \"Grado/Sección\",\r\n accessor: \"sectionTag\"\r\n },\r\n {\r\n Header: \"Inicio\",\r\n accessor: \"dtDate\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Fin\",\r\n accessor: \"dtEndDate\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Profesor\",\r\n accessor: \"resourceName\"\r\n },\r\n {\r\n Header: \"Motivo\",\r\n accessor: \"notes\"\r\n },\r\n {\r\n Header: \"Acuerdo de Cita\",\r\n accessor: \"notesCompleted\"\r\n }\r\n ]\r\n }\r\n}","export default (context) => {\r\n const M = \"admLocalization.\"\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n customPathGet: \"admLocalization/get\",\r\n },\r\n\r\n actions: {\r\n create: {\r\n reloadGrid: true\r\n },\r\n edit: true,\r\n delete: true,\r\n print: false,\r\n export: false,\r\n search: true\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"ID\",\r\n rules: \"required|max:32|alpha_num_dash\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}uniqueCodeOfTheText`,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: null,\r\n type: \"text\",\r\n rules: \"required|max:100\",\r\n label: `${M}descriptionName`,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"content\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"\"\r\n },\r\n {\r\n col: 12,\r\n name: \"printParams\",\r\n value: \"\",\r\n type: \"textarea\",\r\n label: `${M}advancedParameters`,\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.desc\",\r\n accessor: \"desc\"\r\n }\r\n ]\r\n }\r\n}","export default (context) => {\r\n const M = \"admSuperSection.\"\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form) => {\r\n form.owner = form.owner.label\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: { reloadGrid: true },\r\n edit: { reloadGrid: true },\r\n delete: false,\r\n print: false,\r\n export: false,\r\n search: true\r\n },\r\n\r\n extras: {\r\n items: [],\r\n itemsInRowsTable: [\r\n {\r\n icon: 'simple-icon-note',\r\n name: `${M}promoteStudents`,\r\n onClick: (rowData, ctx) => {\r\n context.state.formFlags = { fromSuperSectionId: rowData.ID, fromSuperSectionName: rowData.name }\r\n },\r\n form: {\r\n name: `${M}promoteStudents`,\r\n remapGET: () => {\r\n return { fromSuperSectionId: context.state.formFlags.fromSuperSectionId, fromSuperSectionName: context.state.formFlags.fromSuperSectionName }\r\n },\r\n postUrlF: (ctx) => {\r\n return 'admSuperSection/promote';\r\n },\r\n okMsg: 'Se han promovido los estudiantes!',\r\n fields: [\r\n {\r\n name: \"fromSuperSectionId\",\r\n value: 0,\r\n type: \"hidden\"\r\n },\r\n {\r\n col: 12,\r\n name: \"fromSuperSectionName\",\r\n value: null,\r\n type: \"text\",\r\n label: `${M}promoteFromGrade`,\r\n disabled: true,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"otherPromote\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}promoteToAnotherState`,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n name: \"otherPromoteStatus\",\r\n rules: \"required\",\r\n value: \"\",\r\n col: 12,\r\n type: \"select\",\r\n label: \"main.type\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: \"0\", label: \"Nuevo\" },\r\n { value: \"10\", label: \"Estudiante\" },\r\n { value: \"11\", label: \"Ingresante\" },\r\n { value: \"12\", label: \"Re-ingresante\" },\r\n { value: \"20\", label: \"Graduado\" },\r\n { value: \"21\", label: \"Retirado durante año\" },\r\n { value: \"22\", label: \"Fallecido\" },\r\n { value: \"23\", label: \"Retirado fin de año\" },\r\n { value: \"24\", label: \"Retirado - Otros\" }\r\n ],\r\n isMulti: false\r\n },\r\n renderIf: (ctx) => ctx.state.otherPromote\r\n },\r\n {\r\n col: 6,\r\n name: \"superSectionId\",\r\n rules: \"required\",\r\n value: null,\r\n type: \"select\",\r\n label: `${M}promoteToGrade`,\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n },\r\n renderIf: (ctx) => !ctx.state.otherPromote\r\n },\r\n {\r\n col: 6,\r\n name: \"sectionId\",\r\n rules: \"required\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}promoteToSection`,\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFlags.superSectionId }\r\n },\r\n renderIf: (ctx) => {\r\n if (ctx.state.otherPromote) return false;\r\n\r\n context.state.formFlags.superSectionId = ctx.state.superSectionId;\r\n return ctx.state.superSectionId }\r\n },\r\n {\r\n col: 12,\r\n name: \"l1\",\r\n value: (L) => L[`${M}msgBeforePromoting`],\r\n type: \"label\"\r\n },\r\n ],\r\n buttons: [\r\n {\r\n label: `${M}promoteStudents`,\r\n col: 12,\r\n isMain: true,\r\n onClick: (ctx) => { ctx.btnAction('save') }\r\n }\r\n ],\r\n onSuccess: (r) => { },\r\n onError: (e) => { }\r\n }\r\n }\r\n ],\r\n forms: [\r\n {\r\n name: 'main.setting',\r\n getUrl: 'admSuperSection/config',\r\n postUrl: 'admSuperSection/config',\r\n fields: [\r\n {\r\n col: 4,\r\n name: \"hide\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}hideSectionsInApp`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"syncToAcadYear\",\r\n value: false,\r\n type: \"select\",\r\n label: \"Aplicar secciones al año\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"admActivity/get/?type=ayr\"}\r\n }\r\n },\r\n ],\r\n buttons: [\r\n {\r\n name: \"\",\r\n label: \"main.apply\",\r\n isMain: true,\r\n onClick: (ctx) => { ctx.btnAction('save') }\r\n }\r\n ],\r\n onSuccess: (r) => { },\r\n onError: (e) => { }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.owner = { value: r.data.owner, label: r.data.ownerName }\r\n r.data.superowner = { value: r.data.superowner, label: r.data.superownerName }\r\n }\r\n return r\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}gradeName`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"owner\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}gradeAdvisor`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admStaff/get?pick=true\"\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"superowner\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}levelCoordinator`,\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admStaff/get?pick=true\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"groupBy\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}groupedBy`,\r\n rules: 'max:20',\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"btn1\",\r\n value: null,\r\n type: \"button\",\r\n label: `${M}subLevels`,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n onClick: (ctx) => {\r\n ctx.toogleSubGrid(0)\r\n },\r\n renderIf: (ctx) => { return context.state.idItemSelected },\r\n }, \r\n ],\r\n subGrids: [\r\n {\r\n name: (ctx) => { return 'Secciones: ' + ctx.state.name },\r\n module: 'admSection',\r\n filterBy: () => { return { parentId: context.state.idItemSelected } }\r\n }\r\n ] \r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.desc\",\r\n accessor: \"desc\"\r\n },\r\n {\r\n Header: \"main.students\",\r\n accessor: \"count\"\r\n },\r\n {\r\n Header: `${M}groupedBy`,\r\n accessor: \"groupBy\"\r\n }\r\n ]\r\n }\r\n}","export default (context) => {\r\n return {\r\n config: {\r\n pageSize: 0,\r\n hiddenGrid: true\r\n },\r\n\r\n actions: {\r\n },\r\n\r\n extras:{\r\n forms: [\r\n {\r\n type: 'sideToSide',\r\n configLeft: {\r\n GET: 'admStudent/get/',\r\n POST: 'admSection/moveStudents ',\r\n title: 'Lista Actual',\r\n search: true,\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"active\",\r\n value: 1,\r\n type: \"hidden\",\r\n label: \"\",\r\n },\r\n {\r\n col: 12,\r\n name: \"enrolled\",\r\n value: -1,\r\n type: \"hidden\",\r\n label: \"\",\r\n },\r\n {\r\n col: 12,\r\n name: \"statuses\",\r\n value: \"10|11|12\",\r\n type: \"hidden\",\r\n label: \"\",\r\n },\r\n {\r\n col: 12,\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\",\r\n setOutput: v => v\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n parent: 'superSectionId',\r\n opts: {\r\n style: 'float-label',\r\n path: (ctx) => { return \"/admSection/get?pick=true&parentId=\" + ctx.state.superSectionId.value },\r\n setOutput: v => v\r\n },\r\n renderIf: (ctx) => { return ctx.state.superSectionId }\r\n },\r\n ],\r\n columns: [\r\n {\r\n Header: \"Alumno\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Grado / sección\",\r\n accessor: \"sectionTag\"\r\n }\r\n ]\r\n },\r\n configRight: {\r\n GET: 'admStudent/get/',\r\n POST: 'admSection/moveStudents',\r\n title: 'Lista de Nueva Sección',\r\n search: true,\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"active\",\r\n value: 1,\r\n type: \"hidden\",\r\n label: \"\",\r\n },\r\n {\r\n col: 12,\r\n name: \"enrolled\",\r\n value: -1,\r\n type: \"hidden\",\r\n label: \"\",\r\n },\r\n {\r\n col: 12,\r\n name: \"statuses\",\r\n value: \"10|11|12\",\r\n type: \"hidden\",\r\n label: \"\",\r\n },\r\n {\r\n col: 12,\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\",\r\n setOutput: v => v\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n parent: 'superSectionId',\r\n opts: {\r\n style: 'float-label',\r\n path: (ctx) => { return \"/admSection/get?pick=true&parentId=\" + ctx.state.superSectionId.value },\r\n setOutput: v => v\r\n },\r\n renderIf: (ctx) => { return ctx.state.superSectionId }\r\n },\r\n ],\r\n columns: [\r\n {\r\n Header: \"Alumno\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Grado / sección\",\r\n accessor: \"sectionTag\"\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n\r\n columns: []\r\n }\r\n}","import _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport moment from \"moment\";\r\nexport default (context) => {\r\n return {\r\n config: {\r\n resource: \"admTracking\",\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form, data, action) => {\r\n form.grado = form.sectionName.label\r\n form.user = form.userId.label\r\n form.dateFrom = moment(form.dateFrom).format('YYYY-MM-DD HH:mm')\r\n form.masterName = action === \"create\" && context.props.userAdmin.role === '5' ? (context.props.userAdmin.name + ' ' + context.props.userAdmin.last) : form.masterId.label\r\n return form\r\n }\r\n },\r\n \r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n \r\n filter: {\r\n fields: [\r\n {\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFilter.superSectionId }\r\n }\r\n },\r\n {\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n rules: 'required',\r\n parent: \"sectionId\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStudent/get?pick=true§ionId=\" + context.state.formFilter.sectionId }\r\n }\r\n },\r\n {\r\n type: \"daterange\"\r\n },\r\n {\r\n name: \"type\",\r\n value: \"commitment\",\r\n type: \"hidden\",\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return ctx.state.periodId || ctx.state.superSectionId || ctx.state.userId || ctx.state.from || ctx.state.to },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.periodId = { value: r.data.periodId, label: r.data.periodName }\r\n r.data.gradeName = { value: r.data.gradeName, label: r.data.gradeName }\r\n r.data.sectionName = { value: r.data.sectionName, label: r.data.sectionName }\r\n r.data.userId = { value: r.data.userId, label: r.data.userName }\r\n r.data.masterId = { value: r.data.masterId, label: r.data.masterName }\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n v.values1.map(e => {\r\n e.selected = true\r\n e.ID = e.value\r\n e.name = e.label\r\n delete e.desc\r\n delete e.id\r\n delete e.img\r\n delete e.value\r\n delete e.label\r\n delete e.consecuencias\r\n return e\r\n })\r\n\r\n v.sectionName = v.sectionName.value\r\n v.userId = v.userId.value\r\n v.masterId = context.state.idItemSelected ? v.masterId.value : (context.props.userAdmin.role === '5' ? context.props.userAdmin.ID : v.masterId.value)\r\n\r\n delete v.flags\r\n delete v.btn1\r\n return v\r\n },\r\n fields: [\r\n {\r\n name: \"type\",\r\n value: \"commitment\",\r\n type: \"hidden\",\r\n },\r\n \r\n {\r\n col: 4,\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 4,\r\n name: \"gradeName\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Grado\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 4,\r\n name: \"sectionName\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n rules: 'required',\r\n parent: 'gradeName',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.form.gradeName },\r\n setOutput: v => v,\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 6,\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n rules: 'required',\r\n parent: 'sectionName',\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStudent/get?pick=true\" + (context.state.form.sectionName ? \"§ionId=\" + context.state.form.sectionName.value : \"\") },\r\n setOutput: v => v,\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 6,\r\n name: \"masterId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Profesor\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStaff/get?pick=true\" },\r\n setOutput: v => v\r\n },\r\n renderIf: () => { return context.props.userAdmin.role !== '5' }\r\n },\r\n {\r\n col: 6,\r\n name: \"dateFrom\",\r\n value: \"\",\r\n type: \"date\",\r\n label: \"Fecha inicio\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n },\r\n },\r\n {\r\n col: 6,\r\n name: \"dateTo\",\r\n value: \"\",\r\n type: \"date\",\r\n label: \"Fecha fin\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n },\r\n },\r\n {\r\n col: 12,\r\n name: \"values1\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Valor relacionado\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n isMulti: true,\r\n path: () => { return \"general/getlist/trackingValues1\" },\r\n remap: (r) => {\r\n return {\r\n data: {\r\n Results: r.data.map(e => {\r\n e.ID = e.id\r\n return e\r\n })\r\n },\r\n msg: r.msg,\r\n status: r.status\r\n }\r\n },\r\n setOutput: v => v\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-1\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Motivo del acuerdo\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note1\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Motivo del acuerdo\",\r\n rules: 'required'\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-2\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Compromiso de parte del estudiante\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note2\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Compromiso de parte del estudiante\",\r\n rules: 'required'\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-3\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Compromiso de parte del docente\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note3\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Compromiso de parte del docente\",\r\n rules: 'required'\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-4\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Consecuencias Positivas\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note4\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Consecuencias Positivas\",\r\n rules: 'required'\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-5\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Consecuencias Negativas\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note5\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Consecuencias Negativas\",\r\n rules: 'required'\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-6\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Comentarios de la revisión del compromiso\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note6\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Comentarios de la revisión del compromiso\"\r\n }\r\n ]\r\n },\r\n \r\n {\r\n col: 12,\r\n name: \"dueDate\",\r\n value: \"\",\r\n type: \"date\",\r\n label: \"Fecha de Seguimiento\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n },\r\n\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file1\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 1\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file2\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 2\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file3\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 3\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"bookings\",\r\n value: null,\r\n type: \"hidden\",\r\n label: \"\"\r\n },\r\n {\r\n col: 12,\r\n name: \"userName\",\r\n value: \"\",\r\n type: \"hidden\",\r\n label: \"\"\r\n },\r\n {\r\n col: 12,\r\n label: \"Descargar PDF\",\r\n name: \"Descargar PDF\",\r\n value: \"commitment\",\r\n type: \"button\",\r\n onClick: () => {\r\n context.props.setLoader(true)\r\n _axios\r\n .get('admTracking/pdf/' + context.state.idItemSelected)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n window.URL = window.URL || window.webkitURL;\r\n var xhr = new XMLHttpRequest(), a = document.createElement('a'), file;\r\n xhr.open('GET', r.data.url, true);\r\n xhr.responseType = 'blob';\r\n xhr.onload = function () {\r\n file = new Blob([xhr.response], { type : 'application/octet-stream' });\r\n a.href = window.URL.createObjectURL(file);\r\n a.download = r.data.filename; \r\n a.click();\r\n };\r\n xhr.send();\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }).catch(e => {\r\n context.props.setLoader(false)\r\n })\r\n },\r\n renderIf: () => { return context.state.idItemSelected },\r\n }\r\n ]\r\n },\r\n \r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"Alumno\",\r\n accessor: \"user\"\r\n },\r\n {\r\n Header: \"Grado\",\r\n accessor: \"grado\"\r\n },\r\n {\r\n Header: \"Fecha\",\r\n accessor: \"dateFrom\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Profesor\",\r\n accessor: \"masterName\"\r\n }\r\n ]\r\n }\r\n }","import _axios from \"../../libs/axios\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport moment from \"moment\";\r\nexport default (context) => {\r\n return {\r\n\r\n config: {\r\n resource: \"admTracking\",\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form, data, action) => {\r\n form.grado = form.sectionName.label\r\n form.masterName = action === \"create\" && context.props.userAdmin.role === '5' ? (context.props.userAdmin.name + ' ' + context.props.userAdmin.last) : form.masterId.label\r\n form.user = form.userId.label\r\n form.dateFrom = moment().format('YYYY-MM-DD HH:mm')\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"type\",\r\n value: \"journal\",\r\n type: \"hidden\",\r\n },\r\n {\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Grado\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFilter.superSectionId }\r\n }\r\n },\r\n {\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n rules: 'required',\r\n parent: \"sectionId\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStudent/get?pick=true§ionId=\" + context.state.formFilter.sectionId }\r\n }\r\n },\r\n {\r\n type: \"daterange\"\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => { return ctx.state.periodId || ctx.state.superSectionId || ctx.state.userId || ctx.state.from || ctx.state.to },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.periodId = { value: r.data.periodId, label: r.data.periodName }\r\n r.data.gradeName = { value: r.data.gradeName, label: r.data.gradeName }\r\n r.data.sectionName = { value: r.data.sectionName, label: r.data.sectionName }\r\n r.data.userId = { value: r.data.userId, label: r.data.userName }\r\n r.data.masterId = { value: r.data.masterId, label: r.data.masterName }\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n v.values1.map(e => {\r\n e.selected = true\r\n e.ID = e.value\r\n e.name = e.label\r\n delete e.desc\r\n delete e.id\r\n delete e.img\r\n delete e.value\r\n delete e.label\r\n return e\r\n })\r\n\r\n v.values2.map(e => {\r\n e.selected = true\r\n e.ID = e.value\r\n e.name = e.label\r\n delete e.desc\r\n delete e.id\r\n delete e.img\r\n delete e.value\r\n delete e.label\r\n return e\r\n })\r\n\r\n v.sectionName = v.sectionName.value\r\n v.userId = v.userId.value\r\n v.masterId = context.state.idItemSelected ? v.masterId.value : (context.props.userAdmin.role === '5' ? context.props.userAdmin.ID : v.masterId.value)\r\n\r\n delete v.flags\r\n delete v.btn1\r\n return v\r\n },\r\n fields: [\r\n {\r\n name: \"type\",\r\n value: \"journal\",\r\n type: \"hidden\",\r\n },\r\n {\r\n col: 4,\r\n name: \"periodId\",\r\n value: { value: \"0\", label: \"Actual\" },\r\n type: \"select\",\r\n label: \"Periodo\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admPeriod/get?pick=true\"\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 4,\r\n name: \"gradeName\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Grado\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 4,\r\n name: \"sectionName\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Sección\",\r\n rules: 'required',\r\n parent: 'gradeName',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.form.gradeName },\r\n setOutput: v => v,\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 6,\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Alumno\",\r\n rules: 'required',\r\n parent: 'sectionName',\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStudent/get?pick=true\" + (context.state.form.sectionName ? \"§ionId=\" + context.state.form.sectionName.value : \"\") },\r\n setOutput: v => v,\r\n },\r\n disabled: () => { return context.state.idItemSelected ? true : false }\r\n },\r\n {\r\n col: 6,\r\n name: \"masterId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Profesor\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStaff/get?pick=true\" },\r\n setOutput: v => v\r\n },\r\n renderIf: () => { return context.props.userAdmin.role !== '5' }\r\n },\r\n {\r\n col: 12,\r\n name: \"values1\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Valor relacionado\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n isMulti: true,\r\n path: () => { return \"general/getlist/trackingValues1\" },\r\n remap: (r) => {\r\n return {\r\n data: {\r\n Results: r.data.map(e => {\r\n e.ID = e.id\r\n return e\r\n })\r\n },\r\n msg: r.msg,\r\n status: r.status\r\n }\r\n },\r\n setOutput: v => v\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-1\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Descripción del hecho\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note1\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Descripción del hecho\",\r\n rules: \"required\"\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"values2\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Accion tomada\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n isMulti: true,\r\n path: () => { return \"general/getlist/trackingValues2\" },\r\n remap: (r) => {\r\n return {\r\n data: {\r\n Results: r.data.map(e => {\r\n e.ID = e.id\r\n return e\r\n })\r\n },\r\n msg: r.msg,\r\n status: r.status\r\n }\r\n },\r\n setOutput: v => v\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"tab-2\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"Recomendación\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"note3\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"Recomendación\",\r\n rules: \"required\"\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"negative\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Tipo\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {label: 'Felicitación', value: false},\r\n {label: 'Oportunidad de Mejora', value: true}\r\n ]\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file1\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 1\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file2\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 2\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"file3\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Adjunto 3\",\r\n opts: {\r\n path: ()=> \"admTracking/file\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"bookings\",\r\n value: null,\r\n type: \"hidden\",\r\n label: \"\"\r\n },\r\n {\r\n col: 12,\r\n name: \"userName\",\r\n value: \"\",\r\n type: \"hidden\",\r\n label: \"\"\r\n },\r\n {\r\n col: 12,\r\n label: \"Descargar PDF\",\r\n name: \"Descargar PDF\",\r\n value: \"commitment\",\r\n type: \"button\",\r\n onClick: () => {\r\n context.props.setLoader(true)\r\n _axios\r\n .get('admTracking/pdf/' + context.state.idItemSelected)\r\n .then(r => {\r\n if (r.status >= 0) {\r\n window.URL = window.URL || window.webkitURL;\r\n var xhr = new XMLHttpRequest(), a = document.createElement('a'), file;\r\n xhr.open('GET', r.data.url, true);\r\n xhr.responseType = 'blob';\r\n xhr.onload = function () {\r\n file = new Blob([xhr.response], { type : 'application/octet-stream' });\r\n a.href = window.URL.createObjectURL(file);\r\n a.download = r.data.filename; \r\n a.click();\r\n };\r\n xhr.send();\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }).catch(e => {\r\n context.props.setLoader(false)\r\n })\r\n },\r\n renderIf: () => { return context.state.idItemSelected },\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"Alumno\",\r\n accessor: \"user\"\r\n },\r\n {\r\n Header: \"Grado\",\r\n accessor: \"grado\"\r\n },\r\n {\r\n Header: \"Fecha\",\r\n accessor: \"dateFrom\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"Profesor\",\r\n accessor: \"masterName\"\r\n }\r\n ]\r\n }\r\n}","export default (context) => {\r\n return {\r\n config: {\r\n hiddenGrid: true\r\n },\r\n \r\n actions: {\r\n create: false,\r\n edit: false,\r\n delete: false,\r\n print: false,\r\n export: false,\r\n search: false\r\n },\r\n \r\n extras: {\r\n items: [],\r\n itemsInRowsTable: [],\r\n forms: [\r\n {\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"dummy\",\r\n value: null,\r\n type: \"button\",\r\n label: \"Tomar asistencia\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n onClick: (ctx) => {\r\n window.open(\"/admin/#/ActivitySession\");\r\n }\r\n }\r\n ],\r\n \r\n getUrl:\"\",\r\n postUrl:\"\",\r\n\r\n onSuccess: (r) => { },\r\n onError: (e) => { },\r\n }\r\n ]\r\n },\r\n \r\n filter: {\r\n fields: [],\r\n buttons: []\r\n },\r\n \r\n form: {\r\n fields: [ ]\r\n },\r\n \r\n columns: []\r\n }\r\n }","export default (context) => {\r\n return {\r\n \r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form) => {\r\n return form\r\n }\r\n },\r\n \r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"Nombre\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"type\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Tipo\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: 0, label: \"Justificación No recibida\"},\r\n {value: 1, label: \"Justificación Recibida\"},\r\n {value: 2, label: \"Justificación Aceptada\"},\r\n {value: -1, label: \"Justificación Rechazada\"}\r\n ]\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"notify\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Notificar a padres\"\r\n },\r\n {\r\n col: 12,\r\n name: \"notifyDelay\",\r\n value: 0,\r\n type: \"number\",\r\n label: \"Notificar pasados tantos minutos de horario entrada\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => { return ctx.state.notify }\r\n },\r\n {\r\n col: 12,\r\n name: \"showInReports\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"Mostrar en reportes de notas\"\r\n },\r\n ]\r\n },\r\n \r\n columns: [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"Nombre\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"Notificar a padres\",\r\n accessor: \"notify\",\r\n isBool: true\r\n },\r\n {\r\n Header: \"Mostrar en reportes de notas\",\r\n accessor: \"showInReports\",\r\n isBool: true\r\n }\r\n ]\r\n }\r\n }","export default (context) => {\r\n\r\n const items = [\r\n {id: 4, name: 'Notas conducta', module:'admGradesBehavior', onClick: (row, ctx, id) => {\r\n context.setState({selectedReport: id})\r\n }},\r\n {id: 3, name: 'Comentarios del tutor', module:'admGradesBehavior', onClick: (row, ctx, id) => {\r\n context.setState({selectedReport: id})\r\n }}\r\n ]\r\n\r\n const allowedItems = items.filter(f => { return !f.module || context.props.userAdmin.menu.some(s=> s.subs.some(ss=>ss.id === f.module))})\r\n\r\n return {\r\n config: {\r\n isBehavior: true\r\n },\r\n extras: {\r\n items: allowedItems\r\n }\r\n }\r\n}","import moment from \"moment\"\r\n\r\nexport default (context) => {\r\n const M = \"admSection.\"\r\n return {\r\n config: {\r\n hiddenTitle: window.location.href.indexOf('admSuperSection') > -1,\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form) => {\r\n form.owner = form.owner.label\r\n form.superSectionName = form.parentId.label\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: false,\r\n export: false,\r\n search: true,\r\n import: {\r\n templateFile: \"YearsClassesImport.xlsx\"\r\n }\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n if (r.data.parentId) r.data.parentId = { value: r.data.parentId, label: r.data.parentName }\r\n if (r.data.owner) r.data.owner = { value: r.data.owner, label: r.data.ownerName }\r\n if (r.data.entranceTime) r.data.entranceTime = moment().format('YYYY-MM-DD ') + r.data.entranceTime\r\n if (r.data.leaveTime) r.data.leaveTime = moment().format('YYYY-MM-DD ') + r.data.leaveTime\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n if (v.entranceTime) v.entranceTime = moment(v.entranceTime).format('HH:mm')\r\n if (v.leaveTime) v.leaveTime = moment(v.leaveTime).format('HH:mm')\r\n if (v.parentId) v.parentId = v.parentId.value\r\n if (v.owner) v.owner = v.owner.value\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}sectionName`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"desc\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.desc\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"color\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.color\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"maxMembers\",\r\n value: \"\",\r\n type: \"number\",\r\n label: `${M}maxMembers`,\r\n rules: 'required|numeric',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"externalId\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.externalId\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"parentId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}parentSectionId`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return 'admSuperSection/get' },\r\n setOutput: v => v\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"entranceTime\",\r\n value: \"\",\r\n type: \"time\",\r\n label: `${M}entranceTime`,\r\n opts: {\r\n style: 'float-label',\r\n timeIntervals: 60\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"leaveTime\",\r\n value: \"\",\r\n type: \"time\",\r\n label: `${M}leaveTime`,\r\n opts: {\r\n style: 'float-label',\r\n timeIntervals: 60\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"entranceGate\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}entranceGate`,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"leaveGate\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}leaveGate`,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"owner\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.responsible\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return 'admStaff/get?pick=true' },\r\n withImg: true,\r\n searchOnline: true,\r\n setOutput: v => v\r\n }\r\n },\r\n {\r\n inactive: true,\r\n col:6,\r\n name:\"sync\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}syncWithExternalSystem`\r\n },\r\n /*\r\n {\r\n col: 12,\r\n name: \"file1\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"Firma del tutor\",\r\n opts: {\r\n path: ()=> \"admSection/file\",\r\n accept: '.gif, .jpg, .jpeg, .png'\r\n }\r\n },\r\n */\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.color\",\r\n accessor: \"color\"\r\n },\r\n {\r\n Header: \"main.responsible\",\r\n accessor: \"owner\"\r\n },\r\n {\r\n Header: \"main.superSection\",\r\n accessor: \"superSectionName\"\r\n },\r\n {\r\n Header: \"main.externalId\",\r\n accessor: \"externalId\"\r\n },\r\n ]\r\n }\r\n}","import moment from \"moment\"\r\nimport AppLocale from \"../../config/lang\";\r\n\r\nexport default (context) => {\r\n const datestypes = \r\n [\r\n {\r\n value: \"typeAcadYear\",\r\n label: \"admCalendar.typeAcadYear\"\r\n },\r\n {\r\n value: \"typeAcadPeriod\",\r\n label: \"admCalendar.typeAcadPeriod\"\r\n },\r\n {\r\n value: \"typeVacations\",\r\n label: \"admCalendar.typeVacations\"\r\n },\r\n {\r\n value: \"typeHoliday\",\r\n label: \"admCalendar.typeHoliday\"\r\n },\r\n {\r\n value: \"typeSchoolAct\",\r\n label: \"admCalendar.typeSchoolAct\"\r\n },\r\n {\r\n value: \"typeAlteredTiming\",\r\n label: \"admCalendar.typeAlteredTiming\"\r\n },\r\n {\r\n value: \"typeStaffAbsence\",\r\n label: \"admCalendar.typeStaffAbsence\"\r\n },\r\n {\r\n value: \"other\",\r\n label: \"main.other\"\r\n }\r\n ]\r\n\r\n const L = AppLocale['en'].messages\r\n const noClasses = L['admCalendar.noClasses']\r\n const chips = datestypes.reduce((a, v) => ({ ...a, [v.value]: {text: L[v.label], color:'gray'}}), {}) \r\n\r\n\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n resource: \"admResourceTime\",\r\n remap: (r) => {\r\n r.data.Results.map(e => {\r\n e.from = moment(e.from).format('DD-MM-YYYY')\r\n e.to = moment(e.to).format('DD-MM-YYYY')\r\n return e\r\n })\r\n return r\r\n }\r\n },\r\n\r\n actions: {\r\n create: { reloadGrid: true },\r\n edit: { reloadGrid: true },\r\n delete: true,\r\n print: false,\r\n export: true,\r\n search: true\r\n },\r\n\r\n extras: {\r\n items: [ ],\r\n itemsInRowsTable: [],\r\n forms: []\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n col: 3,\r\n name: \"activityId\",\r\n value: -1,\r\n type: \"select\",\r\n label: \"admCalendar.academicYear\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admActivity/get?type=ayr\" }\r\n }\r\n },\r\n {\r\n col: 2,\r\n name: \"inactive\",\r\n value: false,\r\n type: \"select\",\r\n label: \"Estado:\",\r\n opts: {\r\n style: 'float-label',\r\n items: \r\n [\r\n {\r\n value: false,\r\n label: \"Activo\"\r\n },\r\n {\r\n value: true,\r\n label: \"Inactivo\"\r\n }\r\n ]\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.desc\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"desc\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.category\",\r\n opts: {\r\n style: 'float-label',\r\n items: datestypes,\r\n isClearable: false\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"from\",\r\n value: null,\r\n type: \"date\",\r\n label: \"admCalendar.startDateTime\",\r\n rules: \"required\",\r\n opts: {\r\n style: \"float-label\",\r\n isClearable: true,\r\n dateFormat: \"DD/MM/YYYY\",\r\n selectsStart: true,\r\n startDate: (ctx) => ctx.state.from ? moment(ctx.state.from) : null,\r\n endDate: (ctx) => ctx.state.to ? moment(ctx.state.to) : null\r\n },\r\n },\r\n {\r\n col: 6,\r\n name: \"to\",\r\n value: null,\r\n type: \"date\",\r\n label: \"admCalendar.endDateTime\",\r\n rules: \"required\",\r\n opts: {\r\n style: \"float-label\",\r\n isClearable: true,\r\n dateFormat: \"DD/MM/YYYY\",\r\n selectsEnd: true,\r\n startDate: (ctx) => moment(ctx.state.from),\r\n endDate: (ctx) => moment(ctx.state.to),\r\n minDate: (ctx) => moment(ctx.state.from)\r\n },\r\n renderIf: ctx => ctx.state.from\r\n },\r\n {\r\n col: 6,\r\n name: \"noClasses\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"admCalendar.noClasses\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"inactive\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"main.inactive\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n name: \"onDemand\",\r\n value: false,\r\n type: \"hidden\",\r\n },\r\n {\r\n name: \"blocker\",\r\n value: true,\r\n type: \"hidden\",\r\n },\r\n {\r\n name: \"duration\",\r\n value: 0,\r\n type: \"hidden\",\r\n },\r\n ],\r\n subGrids: [ ] \r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.category\",\r\n accessor: \"desc\",\r\n type: 'chip',\r\n chips: chips\r\n },\r\n {\r\n Header: \"admCalendar.startDateTime\",\r\n accessor: \"from\"\r\n },\r\n {\r\n Header: \"admCalendar.endDateTime\",\r\n accessor: \"to\"\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"noClasses\",\r\n type: 'chip',\r\n chips: {\r\n true: {text: noClasses, color:'lightgreen'},\r\n false: {text:'', color:undefined}\r\n }\r\n }\r\n ]\r\n }\r\n}","import moment from \"moment\"\r\n// import _axios from \"../../libs/axios\"\r\n// import { NotificationManager } from \"../../components/common/react-notifications\"\r\n\r\nexport default (context) => {\r\n const M = \"admInfirmary.\"\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false\r\n },\r\n\r\n actions: {\r\n create: {\r\n reloadGrid: true\r\n },\r\n edit: true,\r\n delete: true,\r\n print: false,\r\n export: true,\r\n search: true\r\n },\r\n\r\n extras: {\r\n /*items: [\r\n {id: 0, icon: 'simple-icon-refresh', name: 'Sincronizar con ISAMS', onClick: () => { \r\n context.props.setLoader(true)\r\n _axios\r\n .post(`/admInfirmary/sync`)\r\n .then(r => {\r\n context.props.setLoader(false)\r\n if (r.status >= 0) {\r\n console.log(r)\r\n }\r\n if (r.msg) NotificationManager[r.status >= 0 ? \"success\" : \"error\"](r.msg, \"\", 5000, null, null, 'outline')\r\n }).catch(e => context.props.setLoader(false))\r\n }}\r\n ],\r\n maxItems: 1,\r\n maxActions: 1,\r\n */\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.grade\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.section\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFilter.superSectionId }\r\n }\r\n },\r\n {\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.student\",\r\n rules: 'required',\r\n parent: \"sectionId\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStudent/get?pick=true§ionId=\" + context.state.formFilter.sectionId }\r\n }\r\n },\r\n {\r\n type: \"daterange\",\r\n range: {\r\n value: 0\r\n }\r\n },\r\n /* {\r\n name: \"syncStatus\",\r\n value: null,\r\n type: \"select\",\r\n label: \"Estado sincronización\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: null,\r\n label: \"Todos\"\r\n },\r\n {\r\n value: 0,\r\n label: \"Pendientes\"\r\n },\r\n {\r\n value: 1,\r\n label: \"Sincronizados\"\r\n },\r\n {\r\n value: -1,\r\n label: \"Con error\"\r\n },\r\n ]\r\n }\r\n }*/\r\n ],\r\n buttons: [\r\n {\r\n name: \"btnFilter\",\r\n label: \"main.applyFilter\",\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n setValuesBeforePost: (values) => {\r\n delete values.createdDate\r\n delete values.updatedDate\r\n delete values.staffIds\r\n values.prescription = \"-\"\r\n values.name = values.symptomId.label\r\n values.symptomId = values.symptomId.value\r\n values.timeIn = (context.state.idItemSelected ? moment(values.timeIn).format('YYYY-MM-DD ') : moment().format('YYYY-MM-DD ')) + values.timeInTxt\r\n values.timeOut = (context.state.idItemSelected ? moment(values.timeOut).format('YYYY-MM-DD ') : moment().format('YYYY-MM-DD ')) + values.timeOutTxt\r\n return values\r\n },\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.userId = {value: r.data.userId, label: r.data.patient}\r\n r.data.symptomId = {value: r.data.symptomId, label: r.data.symptomName}\r\n r.data.outcomeId = {value: r.data.outcomeId, label: r.data.outcomeName}\r\n r.data.timeInTxt = moment(r.data.timeIn).format('HH:mm')\r\n r.data.timeOutTxt = moment(r.data.timeOut).format('HH:mm')\r\n }\r\n return r\r\n },\r\n fields: [\r\n {\r\n col: 3,\r\n name: \"superSectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.grade\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n },\r\n renderIf: (ctx) => { return !context.state.idItemSelected }\r\n },\r\n {\r\n col: 3,\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.section\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.form.superSectionId }\r\n },\r\n renderIf: (ctx) => { return !context.state.idItemSelected }\r\n },\r\n {\r\n col: 6,\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.patient\",\r\n rules: 'required',\r\n parent: \"sectionId\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n withImg: true,\r\n path: () => { return \"/admStudent/get?pick=true\" + (context.state.form?.sectionId ? (\"§ionId=\" + context.state.form?.sectionId) : \"\") }\r\n }\r\n },\r\n {\r\n name: \"timeIn\",\r\n value: \"\",\r\n type: \"hidden\",\r\n },\r\n {\r\n name: \"timeOut\",\r\n value: \"\",\r\n type: \"hidden\",\r\n },\r\n {\r\n col: 3,\r\n name: \"timeInTxt\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}entryTime`,\r\n rules: ['required', {regex:'^([01]?[0-9]|2[0-3]):[0-5][0-9]$'}],\r\n placeholder: \"00:00\",\r\n opts: {\r\n style: 'float-label',\r\n default: () => moment().format('HH:mm'),\r\n }\r\n },\r\n {\r\n col: 3,\r\n name: \"timeOutTxt\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}exitTime`,\r\n rules: ['required', {regex:'^([01]?[0-9]|2[0-3]):[0-5][0-9]$'}],\r\n placeholder: \"00:00\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n /*\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Incidente\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n */\r\n {\r\n col: 6,\r\n name: \"symptomId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.symptom\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: () => { return \"/admInfirmaryValues/get?type=SYM\" },\r\n setOutput: v => v\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"desc\",\r\n value: null,\r\n type: \"textarea\",\r\n label: \"main.desc\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"arrivedFrom\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}cameFrom`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: \"Casa\", label: \"Casa\"},\r\n {value: \"Clase\", label: \"Clase\"}\r\n ]\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"outcomeId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}departedTo`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admInfirmaryValues/get?type=OUT\" }\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"departedTo\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}transportMedium`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: \"Pie\", label: \"Pie\"},\r\n {value: \"Silla de ruedas\", label: \"Silla de ruedas\"},\r\n {value: \"Ambulancia\", label: \"Ambulancia\"}\r\n ]\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"createdDate\",\r\n value: null,\r\n type: \"datetime\",\r\n label: `${M}incidentDate`,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true,\r\n renderIf: (ctx) => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 4,\r\n name: \"updatedDate\",\r\n value: null,\r\n type: \"datetime\",\r\n label: \"main.lastModification\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true,\r\n renderIf: (ctx) => { return context.state.idItemSelected }\r\n },\r\n {\r\n col: 4,\r\n name: \"staffName\",\r\n value: null,\r\n type: \"text\",\r\n label: `${M}medicalStaff`,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true,\r\n renderIf: (ctx) => { return context.state.idItemSelected }\r\n },\r\n /*\r\n {\r\n col: 8,\r\n name: \"prescription\",\r\n value: null,\r\n type: \"text\",\r\n label: \"Prescripción\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n */\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"photo1\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"main.attachment\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"admInfirmary/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n output: true\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"photo2\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"main.attachment\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"admInfirmary/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n output: true\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"photo3\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"main.attachment\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"admInfirmary/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n output: true\r\n }\r\n },\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: `main.gradeAndSection`,\r\n accessor: \"sectionTag\",\r\n },\r\n {\r\n Header: \"main.patient\",\r\n accessor: \"patient\",\r\n },\r\n {\r\n Header: \"main.symptom\",\r\n accessor: \"symptomName\",\r\n },\r\n {\r\n Header: \"main.outcome\",\r\n accessor: \"outcomeName\",\r\n },\r\n {\r\n Header: \"main.date\",\r\n accessor: \"updatedDate\",\r\n isDate: true\r\n },\r\n /*{\r\n Header: \"ISAMS\",\r\n accessor: \"syncStatus\",\r\n type: 'chip',\r\n chips: {\r\n '-1': {text:'Error',color:'red'},\r\n '0': {text:'Pending',color:'orange'},\r\n '1': {text:'Synced',color:'green'}\r\n }\r\n }*/\r\n ]\r\n }\r\n}","import { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport { findModuleInMenu } from '../../helpers/Utils';\r\n\r\nexport default (context) => {\r\n const M = \"admPublication.\"\r\n const onCreateSuccess = (r) => {\r\n context.setState({showFormCustom: false, btnCancel: \"main.close\"}, () => {\r\n context.getDataById(r.data)\r\n })\r\n }\r\n const onGetDataById = () => {\r\n if (context.state.btnCancel === \"main.close\") {\r\n NotificationManager.success('Successful registration', '', 5000, null, null, 'outline')\r\n context.setState({showFormCustom: true}, () => {\r\n setTimeout(() => {\r\n const detailGrid = document.getElementById(\"detailGrid\")\r\n if (detailGrid) detailGrid.scrollIntoView({ behavior: \"smooth\" })\r\n }, 500)\r\n })\r\n }\r\n }\r\n const admPublicationPart = findModuleInMenu(context.props.menuItems, \"id\", \"admPublicationPart\")\r\n\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n enableContexMenu: true,\r\n remapRow: (form) => {\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"type\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}publicationType`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: \"pub\", label: `${M}postWeeklyBulletin`},\r\n {value: \"pho\", label: `${M}media`},\r\n {value: \"\", label: \"main.all\"}\r\n ]\r\n }\r\n },\r\n {\r\n name: \"toDateType\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"main.status\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {value: 0, label: `${M}publishedVisibleUntil`},\r\n {value: 1, label: `${M}unpublishedUntil`},\r\n {value: 2, label: \"main.all\"}\r\n ]\r\n }\r\n },\r\n {\r\n name: \"toDate\",\r\n value: null,\r\n type: \"date\",\r\n label: \"main.date\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'main.applyFilter',\r\n renderIf: (ctx) => { return ctx.state.toDateType || ctx.state.toDate },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.categoryId = { value: r.data.categoryId, label: r.data.categoryName }\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n if (v.superSections) {\r\n v.superSections = v.superSections.map(e => {\r\n e = { ID: e.value, name: e.label, selected: true }\r\n return e\r\n })\r\n }\r\n if (v.sections) {\r\n v.sections = v.sections.map(e => {\r\n e = { ID: e.value, name: e.label, selected: true }\r\n return e\r\n })\r\n }\r\n delete v.selectedField\r\n return v\r\n },\r\n onCreateSuccess: admPublicationPart ? onCreateSuccess : null,\r\n onGetDataById: admPublicationPart ? onGetDataById : null,\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"ID\",\r\n value: null,\r\n type: \"hide\"\r\n },\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.title\",\r\n rules: \"required|max:150\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"categoryId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.category\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admCategory/get?type=pub,pho\"}\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"label1\",\r\n value: \"main.coverImage\",\r\n type: \"label\",\r\n opts: {\r\n wrapperClassName: \"mb-1\"\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"img1\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"/admPublication/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n output: true\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"img2\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"/admPublication/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n output: true\r\n }\r\n },\r\n {\r\n col: 4,\r\n colxs: 4,\r\n name: \"img3\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"/admPublication/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n output: true\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"desc\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}shortComment`,\r\n rules: \"required|max:150\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"body\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: `${M}longComment`,\r\n /*\r\n aiAssist: {\r\n action: 'write',\r\n requiredFields: [\"name\", \"desc\"],\r\n postUrl: \"admPublication/AiAssist\"\r\n },\r\n */\r\n renderIf: ctx => ctx.state.type !== \"pho\"\r\n },\r\n {\r\n col: 12,\r\n name: \"published\",\r\n value: true,\r\n type: \"switch\",\r\n label: `${M}publishedVisible`,\r\n },\r\n {\r\n type: \"daterange\",\r\n isFormCrud: true,\r\n range: {\r\n col: 4,\r\n renderIf: (ctx) => ctx.state.published,\r\n label: \"\"\r\n },\r\n from: {\r\n col: 4,\r\n name: \"publishFrom\",\r\n value: \"\",\r\n type: \"date\",\r\n label: `${M}visibleFrom`,\r\n rules: \"required\"\r\n },\r\n to: {\r\n col: 4,\r\n name: \"publishTo\",\r\n value: \"\",\r\n type: \"date\",\r\n label: `${M}visibleUntil`,\r\n rules: \"required\"\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"superSections\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}visibleForGrades`,\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\",\r\n isMulti: true,\r\n setOutput: v => v\r\n },\r\n renderIf: (ctx) => ctx.state.published\r\n },\r\n {\r\n col: 6,\r\n name: \"sections\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}visibleForClasses`,\r\n parent: 'superSections',\r\n opts: {\r\n style: 'float-label',\r\n path: () => `/admSection/get?pick=true&parentId=${((context.state.form.superSections && context.state.form.superSections.length > 0) ? context.state.form.superSections[0].value : null)}`,\r\n isMulti: true,\r\n setOutput: v => v\r\n },\r\n renderIf: (ctx) => { return (ctx.state.published && ctx.state.superSections?.length === 1) || (ctx.state.published && ctx.state.sections?.length >= 1)}\r\n },\r\n {\r\n col: 12,\r\n name: \"empty1\",\r\n type: \"separator\",\r\n },\r\n {\r\n col: 12,\r\n name: \"tab1\",\r\n value: false,\r\n type: \"collapsible\",\r\n placeholder: `${M}enterSecondaryLanguage`,\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"nameEN\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.desc\",\r\n aiAssist: {\r\n action: 'translate',\r\n requiredFields: [\"name\", \"desc\"],\r\n postUrl: \"admPublication/AiAssist\"\r\n },\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"descEN\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}shortComment`,\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"bodyEN\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: `${M}longComment`,\r\n renderIf: ctx => ctx.state.type !== \"pho\"\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"tab2\",\r\n value: false,\r\n type: \"collapsible\",\r\n placeholder: 'main.seeMoreOptions',\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"by\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.author\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"pinTop\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}importantPin`,\r\n },\r\n {\r\n col: 12,\r\n name: \"labelSpacer\",\r\n value: L => `
    ${L[`${M}whoCanSee`]}
    `,\r\n type: \"label\",\r\n },\r\n {\r\n col: 4,\r\n name: \"accessPrincipal\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}parentsGuardians`,\r\n },\r\n {\r\n col: 4,\r\n name: \"accessDependant\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"main.students\"\r\n },\r\n {\r\n col: 4,\r\n name: \"accessMaster\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}staffTeachers`,\r\n }\r\n ]\r\n }\r\n ],\r\n detailGrid: admPublicationPart ? () => {\r\n return {\r\n module: 'admPublicationPart',\r\n parentIdField: \"ID\",\r\n renderIf: () => context.state.form && context.state.form.ID\r\n }\r\n } : null\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: `${M}publishedVisible`,\r\n accessor: \"published\",\r\n isBool: true\r\n },\r\n {\r\n Header: `${M}visibleFrom`,\r\n accessor: \"publishFrom\",\r\n isDate: true\r\n },\r\n {\r\n Header: `${M}visibleUntil`,\r\n accessor: \"publishTo\",\r\n isDate: true\r\n },\r\n {\r\n Header: `${M}importantPin`,\r\n accessor: \"pinTop\",\r\n isBool: true\r\n }\r\n ]\r\n }\r\n}","export default (context) => {\r\n const M = \"admPublication.\"\r\n return {\r\n config: {\r\n resource: \"admPublication\",\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form) => {\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.categoryId = { value: r.data.categoryId, label: r.data.categoryName }\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"tab1\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: `${M}firstLanguage`,\r\n placeholder: `${M}enterFirstLanguage`,\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.title\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"desc\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.desc\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"body\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: `${M}longComment`,\r\n rules: \"required\"\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"tab2\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: `${M}secondaryLanguage`,\r\n placeholder: `${M}enterSecondaryLanguage`,\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"nameEN\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.title\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"descEN\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.desc\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"bodyEN\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: `${M}longComment`,\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"by\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.author\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"imgUrl\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"main.coverImage\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"/admPublication/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n output: true\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"superSections\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}visibleForSections`,\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\",\r\n isMulti: true,\r\n setOutput: v => v\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"sections\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}visibleToSubsections`,\r\n parent: 'superSections',\r\n opts: {\r\n style: 'float-label',\r\n path: () => `/admSection/get?pick=true&parentId=${context.state.form.superSections[0].value}`,\r\n isMulti: true,\r\n setOutput: v => v\r\n },\r\n renderIf: ctx => ctx.state.superSections && ctx.state.superSections.length === 1\r\n },\r\n {\r\n col: 4,\r\n name: \"categoryId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.category\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: () => \"/admCategory/get?type=pub\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"empty1\",\r\n type: \"separator\",\r\n },\r\n {\r\n col: 4,\r\n name: \"pinTop\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}importantPin`\r\n },\r\n {\r\n col: 12,\r\n name: \"labelSpacer\",\r\n value: L => `

    ${L[`${M}whoCanSee`]}

    `,\r\n type: \"label\"\r\n },\r\n {\r\n col: 4,\r\n name: \"accessPrincipal\",\r\n value: true,\r\n type: \"switch\",\r\n label: `${M}mainUsers`\r\n },\r\n {\r\n col: 4,\r\n name: \"accessDependant\",\r\n value: true,\r\n type: \"switch\",\r\n label: `${M}dependentUsers`\r\n },\r\n {\r\n col: 4,\r\n name: \"accessMaster\",\r\n value: true,\r\n type: \"switch\",\r\n label: `${M}staffTeachers`\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.desc\",\r\n accessor: \"desc\"\r\n },\r\n {\r\n Header: `${M}published`,\r\n accessor: \"pinTop\",\r\n isBool: true\r\n }\r\n ]\r\n }\r\n}","import React from \"react\"\r\nimport { Card, CardBody, FormGroup, Badge, Button } from \"reactstrap\"\r\nimport Field from \"../../components/utils/Field\"\r\nimport CircularProgressbar from \"react-circular-progressbar\";\r\nimport _axios from \"../../libs/axios\";\r\nimport _moment from \"../../libs/moment\";\r\nimport { NotificationManager } from \"../../components/common/react-notifications\";\r\nimport { isAndroidOrIos } from \"../../helpers/Utils\";\r\nimport CustomPreviewWhatsApp from \"../../components/utils/CustomPreviewWhatsApp\";\r\n\r\nexport default (context) => {\r\n const M = \"admFetch.\"\r\n const baseUrl = `https://${window.tenant.alias}.fetchbird.io/`\r\n const baseUrl2 = `https://wa.me/97145300045?text=${window.tenant.alias}-`\r\n let ctxForm = null\r\n let ctxSubFormDetailGrid = null\r\n const onCreateSuccess = (r) => {\r\n context.props.setLoader(false)\r\n if (context.state.form.flags.currentStepId === \"step-2\") {\r\n const fetchId = r.data\r\n context.setState({fetchId: fetchId})\r\n context.getDataById(fetchId, false)\r\n } else if (context.state.form.flags.currentStepId === \"step-5\") {\r\n context.getDataById(context.state.fetchId, false)\r\n }\r\n }\r\n const onEditSuccess = (r) => {\r\n context.props.setLoader(false)\r\n }\r\n const changeTemplate = (ctx) => {\r\n context.props.setLoader(true)\r\n _axios\r\n .get(`admLocalization/get/${ctx.state.doWATemplate.value}?objectType=fetch&objectId=${context.state.idItemSelected || context.state.fetchId}`)\r\n .then(r => {\r\n context.props.setLoader(false)\r\n if (r.status >= 0) {\r\n const fields = []\r\n const template = r.data\r\n template.tagsContent.forEach((t, i) => {\r\n if (t.id === \"fetch.title\") ctx.setState({[t.id]: ctx.state.name})\r\n else if (t.id === \"fetch.desc\") ctx.setState({[t.id]: ctx.state.desc})\r\n else if (t.id === \"header.image\") ctx.setState({[t.id]: ctx.state.artUrl})\r\n else if (ctx.state.placeholders?.length > 0) { ctx.setState({[t.id]: ctx.state.placeholders[i]?.name ?? t.defValue }) }\r\n else ctx.setState({[t.id]: t.defValue ?? \"\"})\r\n if (t.id === \"header.image\") {\r\n fields.push(\r\n {\r\n col: 12,\r\n name: t.id,\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n placeholder: \"main.selectFile\",\r\n opts: {\r\n path: ()=> \"/admFetch/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n url: ctx.state.artUrl\r\n }\r\n }\r\n )\r\n } else {\r\n fields.push(\r\n {\r\n col: 6,\r\n name: t.id,\r\n value: \"\",\r\n type: t.hidden || ([\"fetch.title\", \"fetch.desc\"].indexOf(t.id) > -1) ? \"hidden\" : \"text\",\r\n label: (L) => {\r\n let label = t.id.split(\".\")\r\n label = label.pop()\r\n return L[`${M}${label}`] || L[`main.${label}`] || t.id\r\n },\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: t.readonly\r\n }\r\n )\r\n }\r\n })\r\n \r\n ctx.setState({ selectedTemplate: r.data }, () => {\r\n const formFields = context.state.formFields\r\n let wizard = formFields.find(f => f.name === \"wizard\")\r\n wizard.steps[1].fields.find(f => f.name === \"placeholders\").childs = fields\r\n formFields[0] = wizard\r\n context.setState({formFields: formFields})\r\n })\r\n } else NotificationManager.error(r.msg, \"Opps\", 5000, null, null, 'outline')\r\n }).catch(e => context.props.setLoader(false))\r\n }\r\n const summary = (props) => {\r\n const {L, form} = props\r\n // const form = context.state.form\r\n\r\n const accessibility = () => {\r\n const values = {\r\n '0': `${L[`${M}toSpecificNumbers`]}`,\r\n '1': `${L[`${M}toSpecificGroups`]}`,\r\n '2': `${L[`${M}open`]}`\r\n }\r\n return values[form.recipientType] || \"\"\r\n }\r\n\r\n const percentage = () => {\r\n let p = 0\r\n if (form.countSent > 0 && form.countTarget > 0) p = form.countSent / form.countTarget\r\n return p\r\n }\r\n\r\n const statusName = () => {\r\n const values = {\r\n 0: `${L[`${M}noSent`]}`,\r\n 1: `${L[`${M}fetchesScheduled`]}`.replace(\"{0}\", form.countTarget),\r\n 2: `${L[`${M}sending`]}`,\r\n 3: `${L[`${M}sent`]}`,\r\n '-1': `${L[`${M}sent`]}`\r\n }\r\n return values[form.sendStatus] || \"\"\r\n }\r\n\r\n const statusDetail = () => {\r\n let date = \"\"\r\n if (form.forDate) date = _moment(form.forDate).format(\"DD MMM YYYY H:mma\")\r\n const values = {\r\n 0: `${L[`${M}manualSendPending`]}`,\r\n 1: `${L[`${M}willSendOn`]} ${date}`,\r\n 2: `${L[`${M}startedAt`]} ${date}`,\r\n 3: `${L[`${M}finishedAt`]} ${date}`,\r\n '-1': `${L[`${M}finishedAt`]} ${date}`\r\n }\r\n return values[form.sendStatus] || \"\"\r\n }\r\n\r\n const btnName = () => {\r\n const values = {\r\n 0: `${L[`${M}sendNow`]}`,\r\n 3: `${L[`${M}seeResults`]}`,\r\n '-1': `${L[`${M}seeErrors`]}`\r\n }\r\n return values[form.sendStatus] || \"\"\r\n }\r\n\r\n return (\r\n
    \r\n {form &&\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    {statusName()}
    \r\n
    {statusDetail()}
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {[0, 3, -1].indexOf(form.sendStatus) > -1 && }\r\n \r\n \r\n \r\n

    {form.name}

    \r\n

    {form.type}

    \r\n

    {form.countTarget}

    \r\n

    {form.numberOfInputs}

    \r\n

    {accessibility()}

    \r\n

    {form.tags.map((item, i) => {item})}

    \r\n

    \r\n {[1].indexOf(form.sendStatus) > -1\r\n ? \"No\"\r\n : \r\n {\r\n navigator.clipboard.writeText(`${baseUrl}${form.url}`)\r\n NotificationManager['success'](`${L[`${M}urlCopied`]}`, \"\", 5000, null, null, 'outline')\r\n }\r\n },\r\n {\r\n outline: true,\r\n icon: \"simple-icon-share\",\r\n onClick: () => {\r\n window.navigator.share({title: form.name, text: form.desc, url: `${baseUrl}${form.url}`})\r\n NotificationManager['success'](`${L[`${M}urlShared`]}`, \"\", 5000, null, null, 'outline')\r\n },\r\n renderIf: () => isAndroidOrIos()\r\n }\r\n ]\r\n }\r\n }}}\r\n disabled={true}\r\n />\r\n {\r\n navigator.clipboard.writeText(`${form.url2}`)\r\n NotificationManager['success'](`${L[`${M}urlCopied`]}`, \"\", 5000, null, null, 'outline')\r\n }\r\n },\r\n {\r\n outline: true,\r\n icon: \"simple-icon-share\",\r\n onClick: () => {\r\n window.navigator.share({title: form.name, text: form.desc, url: `${form.url2}`})\r\n NotificationManager['success'](`${L[`${M}urlShared`]}`, \"\", 5000, null, null, 'outline')\r\n },\r\n renderIf: () => isAndroidOrIos()\r\n }\r\n ]\r\n }\r\n }}}\r\n disabled={true}\r\n />\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n ) \r\n }\r\n\r\n return {\r\n config: {\r\n pageSize: 40,\r\n modal: {\r\n size: \"lg\"\r\n }\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n col: 3,\r\n name: \"status\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"main.status\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: -1,\r\n label: \"main.all\"\r\n },\r\n {\r\n value: 0,\r\n label: `${M}draft`\r\n },\r\n {\r\n value: 1,\r\n label: `${M}noSent`\r\n },\r\n {\r\n value: 2,\r\n label: `${M}sending`\r\n },\r\n {\r\n value: 3,\r\n label: `${M}sent`\r\n },\r\n {\r\n value: 5,\r\n label: `${M}paused`\r\n },\r\n {\r\n value: -1,\r\n label: `${M}seeErrors`\r\n }\r\n ]\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'Aplicar filtro',\r\n renderIf: (ctx) => true,\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n const { recipientType, triggerType, groupId, groupName, doWATemplate, doWATemplateName, tags } = r.data\r\n const tagsArray = tags ? tags.split(\",\") : []\r\n const name = tagsArray[0] ?? \"\"\r\n \r\n r.data = {\r\n ...r.data,\r\n recipientType: recipientType.toString(),\r\n selectedRecipientType: recipientType.toString(),\r\n triggerType: triggerType.toString(),\r\n scheduled: r.data.activeFrom != null,\r\n selectedTriggerType: triggerType.toString(),\r\n groupId: groupId ? { value: groupId, label: groupName } : \"\",\r\n doWATemplate: doWATemplate ? { value: doWATemplate, label: doWATemplateName } : doWATemplate,\r\n tags: tagsArray,\r\n url: name,\r\n url2: name ? `${baseUrl2}${name}` : \"\"\r\n }\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n if (!context.state.idItemSelected) v.templateId = v.select1 ?? v.select2 ?? v.select3 ?? v.select4 ?? 0\r\n v.tags = v.tags.toString()\r\n v.recipientType = +v.recipientType || 0\r\n v.maxCollections = +v.maxCollections || 0\r\n v.groupId = v.groupId?.value ?? v.groupId\r\n v.triggerType = v.triggerType === \"true\"\r\n v.doWATemplate = v.doWATemplate?.value\r\n if (!v.scheduled) {\r\n v.activeFrom = null\r\n v.activeTo = null\r\n }\r\n v.step= (() => {\r\n const wizard = context.view?.form?.fields.find(f => f.type === \"wizard\")\r\n if (wizard) return wizard.steps.find(s => s.id === v.flags.currentStepId).name\r\n })()\r\n const tagsContent = v.selectedTemplate?.tagsContent\r\n let placeholders = []\r\n if (v.selectedTemplate?.tagsContent) {\r\n tagsContent.forEach(t => {\r\n placeholders.push({ID: t.id, name: v[t.id] || \"\"})\r\n })\r\n v.placeholders = placeholders\r\n }\r\n\r\n delete v.select1\r\n delete v.select2\r\n delete v.select3\r\n delete v.select4\r\n delete v.flags\r\n delete v.selectedField\r\n delete v.selectedTemplate\r\n delete v.inputs\r\n return v\r\n },\r\n onCreateSuccess: onCreateSuccess,\r\n onEditSuccess: onEditSuccess,\r\n afterCloseModal: () => {\r\n context.setState({fetchId: null})\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"wizard\",\r\n value: \"step-1\",\r\n type: \"wizard\",\r\n saveByStep: true,\r\n onChange: (stepId) => {\r\n context.setState({\r\n hideBtnSave: stepId === \"step-5\",\r\n btnCancel: stepId === \"step-5\" ? \"main.close\" : \"main.cancel\"\r\n })\r\n },\r\n steps: [\r\n {\r\n id: \"step-1\",\r\n name: `${M}whatToCollect`,\r\n desc: `${M}whatToCollectDesc`,\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"label1\",\r\n value: L => `

    ${L[`${M}whatToCollect`]}

    ${L[`${M}whatToCollectDesc`]}`,\r\n type: \"label\"\r\n },\r\n {\r\n col: 12,\r\n name: \"selectedType\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"\",\r\n rules: \"required\",\r\n rulesMessages: {messages: {required: 'Select a type'}},\r\n opts: {\r\n inputWrapperClassName: \"d-none\"\r\n }\r\n },\r\n {\r\n name: \"templateId\",\r\n type: \"hidden\"\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}data`,\r\n opts: {\r\n value: \"data\",\r\n desc: `${M}descData`\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type})\r\n },\r\n {\r\n col: 6,\r\n offset: 6,\r\n name: \"select1\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.category\",\r\n parent: \"type\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: () => `admFetch/get?pick=true&filterBy=template&type=${context.state?.form?.type}`\r\n },\r\n disabled: () => context.state.form?.type !== \"data\"\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}survey`,\r\n opts: {\r\n value: \"survey\",\r\n desc: `${M}descSurvey`\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type})\r\n },\r\n {\r\n col: 6,\r\n offset: 6,\r\n name: \"select2\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.category\",\r\n parent: \"type\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: () => `admFetch/get?pick=true&filterBy=template&type=${context.state?.form?.type}`\r\n },\r\n disabled: () => context.state.form?.type !== \"survey\"\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}document`,\r\n opts: {\r\n value: \"document\",\r\n desc: `${M}descDocument`,\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type})\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}signatureOrPDF`,\r\n opts: {\r\n value: \"signature\",\r\n desc: `${M}descSignatureOrPDF`\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type})\r\n },\r\n {\r\n col: 6,\r\n offset: 6,\r\n name: \"select3\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.category\",\r\n parent: \"type\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: () => `admFetch/get?pick=true&filterBy=template&type=${context.state?.form?.type}`\r\n },\r\n disabled: () => context.state.form?.type !== \"signature\"\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}locationInfo`,\r\n opts: {\r\n value: \"location\",\r\n desc: `${M}descLocationInfo`,\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type})\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}identityVerification`,\r\n opts: {\r\n value: \"kyc\",\r\n desc: `${M}descIdentityVerification`\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type})\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}moreFetches`,\r\n opts: {\r\n value: \"more\",\r\n desc: `${M}descMoreFetches`\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type})\r\n },\r\n {\r\n col: 6,\r\n offset: 6,\r\n name: \"select4\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.category\",\r\n parent: \"type\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: () => `admFetch/get?pick=true&filterBy=template&type=${context.state?.form?.type}`\r\n },\r\n disabled: () => context.state.form?.type !== \"more\"\r\n }\r\n ],\r\n renderIf: () => !context.state.idItemSelected\r\n },\r\n {\r\n id: \"step-2\",\r\n name: `${M}properties`,\r\n desc: `${M}propertiesDesc`,\r\n method: () => `/admFetch/edit/${context.state.fetchId}`,\r\n // handleNextStep: () => {},\r\n fields: [\r\n {\r\n name: \"artUrl\",\r\n type: \"hidden\"\r\n },\r\n {\r\n col: 12,\r\n name: \"label2\",\r\n value: L => `

    ${L[`${M}properties`]}

    ${L[`${M}propertiesDesc`]}`,\r\n type: \"label\"\r\n },\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}fetchName`,\r\n placeholder: `${M}exampleFetchName`,\r\n rules: \"required|max:50\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n onChange: (ctx) => {\r\n const title = \"fetch.title\"\r\n ctx.setState({[title]: ctx.state.name})\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"nameInternal\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}fetchNameInternal`,\r\n placeholder: `${M}exampleFetchNameInternal`,\r\n rules: \"required|max:50\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"desc\",\r\n value: \"\",\r\n type: \"textarea\",\r\n rules: \"required|max:1000\",\r\n placeholder:`${M}explainWhy`,\r\n opts: {\r\n rows: \"3\"\r\n },\r\n onChange: (ctx) => {\r\n const desc = \"fetch.desc\"\r\n ctx.setState({[desc]: ctx.state.desc})\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"collapsible1\",\r\n value: false,\r\n type: \"collapsible\",\r\n label: \"System prompt\",\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"prompt\",\r\n value: \"\",\r\n type: \"textarea\",\r\n rules: \"max:4000\",\r\n placeholder:`[system prompt]`,\r\n opts: {\r\n rows: \"10\"\r\n },\r\n renderIf: () => context.props.userAdmin.role === '100'\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"doWATemplate\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}whatsAppTemplate`,\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admLocalization/get?type=f&pick=true\",\r\n setOutput: v => { if (v) return {value: v.value, label: v.label} },\r\n addon: {\r\n append: {\r\n buttons: [\r\n {\r\n disabled: ctxField => !ctxField.state.doWATemplate,\r\n name: \"main.preview\",\r\n onClick: () => context.togglePreview()\r\n }\r\n ]\r\n }\r\n }\r\n },\r\n onChange: (ctx) => {\r\n if (!ctx.state.doWATemplate) {\r\n ctx.setState({selectedTemplate: null})\r\n return\r\n }\r\n changeTemplate(ctx)\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"placeholders\",\r\n value: [],\r\n type: \"fieldset\",\r\n renderIf: ctx => ctx.state.selectedTemplate \r\n }\r\n ]\r\n },\r\n {\r\n id: \"step-3\",\r\n name: `${M}accessibility`,\r\n desc: `${M}accessibilityDesc`,\r\n method: () => `/admFetch/edit/${context.state.fetchId}`,\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"label3\",\r\n value: L => `

    ${L[`${M}accessibility`]}

    ${L[`${M}accessibilityDesc`]}`,\r\n type: \"label\"\r\n },\r\n {\r\n col: 12,\r\n name: \"selectedRecipientType\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"\",\r\n rules: \"required\",\r\n rulesMessages: {messages: {required: 'Select a type'}},\r\n opts: {\r\n inputWrapperClassName: \"d-none\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"recipientType\",\r\n type: \"radio\",\r\n label: `${M}toSpecificNumbers`,\r\n opts: {\r\n value: \"0\",\r\n desc: `${M}descToSpecificNumbers`,\r\n },\r\n onClick: (ctx) => {\r\n ctx.toogleSubForm(0)\r\n ctxForm = ctx\r\n },\r\n onChange: ctx => ctx.setState({selectedRecipientType: ctx.state.recipientType})\r\n },\r\n {\r\n col: 12,\r\n name: \"btnOpenSpecificNumbers\",\r\n type: \"button\",\r\n label: \"main.edit\",\r\n opts: {\r\n wrapperClassName: \"d-flex justify-content-end\"\r\n },\r\n onClick: (ctx) => {\r\n ctx.toogleSubForm(0)\r\n ctxForm = ctx\r\n },\r\n renderIf: ctx => ctx.state.groupIdOfFetch > 0 && ctx.state.recipientType === \"0\"\r\n },\r\n {\r\n col: 12,\r\n name: \"recipientType\",\r\n type: \"radio\",\r\n label: `${M}toSpecificGroups`,\r\n opts: {\r\n value: \"1\",\r\n desc: `${M}descToSpecificGroups`\r\n },\r\n onChange: ctx => ctx.setState({selectedRecipientType: ctx.state.recipientType})\r\n },\r\n {\r\n name: \"groupIdOfFetch\",\r\n type: \"hidden\"\r\n },\r\n {\r\n col: 6,\r\n offset: 6,\r\n name: \"groupId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.category\",\r\n rules: \"required\",\r\n // parent: \"recipientType\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"admGroup/get?staff=0\",\r\n },\r\n renderIf: () => context.state.form?.recipientType === \"1\"\r\n },\r\n {\r\n col: 12,\r\n name: \"recipientType\",\r\n type: \"radio\",\r\n label: `${M}open`,\r\n opts: {\r\n value: \"2\",\r\n desc: `${M}descOpen`,\r\n },\r\n onChange: ctx => ctx.setState({selectedRecipientType: ctx.state.recipientType})\r\n },\r\n {\r\n col: 6,\r\n offset: 6,\r\n name: \"maxCollections\",\r\n value: 100,\r\n type: \"number\",\r\n label: `${M}maximumRequest`,\r\n rules: \"required|numeric|min:1,num\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: () => context.state.form?.recipientType === \"2\"\r\n },\r\n {\r\n col: 12,\r\n name: \"tags\",\r\n value: [],\r\n type: \"tag\",\r\n label: `${M}keywordsOrPhrases`,\r\n rules: \"required|max:3,array\",\r\n placeholder: `${M}pressEnterToAdd`,\r\n opts: {\r\n validationRegex: /^[A-Za-z0-9-]+$/,\r\n addKeys: [9, 13, 188]\r\n },\r\n onChange: (ctx) => {\r\n const name = ctx.state.tags?.length > 0 ? ctx.state.tags[0] : \"\"\r\n ctx.setState({url: name, url2: `${baseUrl2}${name}`})\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"url\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}sharingURL`,\r\n rules: \"required\",\r\n opts: {\r\n addon: {\r\n prepend: {\r\n texts: [`${baseUrl}`]\r\n }\r\n }\r\n },\r\n onChange: (ctx) => {\r\n ctx.setState({url2: ctx.state.url})\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"url2\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}orAlternative`,\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 12,\r\n name: \"msgNotAvailable\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}msgNotAvailable`,\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => !ctx.state.langSwitch\r\n },\r\n {\r\n col: 12,\r\n name: \"isPublic\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}descOpen`,\r\n renderIf: () => context.state.form?.recipientType !== \"2\"\r\n },\r\n {\r\n col: 12,\r\n name: \"allowMultiple\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}allowMultiple`\r\n }\r\n ]\r\n },\r\n {\r\n id: \"step-4\",\r\n name: `${M}availability`,\r\n desc: `${M}availabilityDesc`,\r\n method: () => `/admFetch/edit/${context.state.fetchId}`,\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"label4\",\r\n value: L => `

    ${L[`${M}availability`]}

    ${L[`${M}availabilityDesc`]}`,\r\n type: \"label\"\r\n },\r\n\r\n {\r\n col: 6,\r\n name: \"isLive\",\r\n value: true,\r\n type: \"switch\",\r\n label: `${M}isLive`,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"scheduled\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}scheduled`,\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: (ctx) => ctx.state.isLive\r\n },\r\n {\r\n col: 12,\r\n name: \"empty1\",\r\n type: \"separator\",\r\n },\r\n {\r\n type: \"daterange\",\r\n isFormCrud: true,\r\n range: {\r\n col: 4,\r\n rules: () => !context.state.form.activeFrom && !context.state.form.activeTo ? \"required\" : null,\r\n renderIf: (ctx) => ctx.state.isLive && ctx.state.scheduled\r\n },\r\n from: {\r\n col: 4,\r\n name: \"activeFrom\",\r\n value: \"\",\r\n type: \"date\",\r\n label: \"main.from\",\r\n rules: \"required\",\r\n renderIf: (ctx) => ctx.state.isLive && ctx.state.scheduled\r\n },\r\n to: {\r\n col: 4,\r\n name: \"activeTo\",\r\n value: \"\",\r\n type: \"date\",\r\n label: \"main.to\",\r\n rules: \"required\",\r\n renderIf: (ctx) => ctx.state.isLive && ctx.state.scheduled\r\n } \r\n },\r\n {\r\n col: 12,\r\n name: \"label5\",\r\n value: L => `

    ${(L[`${M}whenToSend`]).replace('{0}', context.state.form.countTarget)}

    `,\r\n type: \"label\",\r\n renderIf: () => context.state.form?.recipientType !== \"2\"\r\n },\r\n {\r\n col: 12,\r\n name: \"selectedTriggerType\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"\",\r\n rules: \"required\",\r\n rulesMessages: {messages: {required: 'Select a trigger type'}},\r\n opts: {\r\n inputWrapperClassName: \"d-none\"\r\n },\r\n renderIf: () => context.state.form?.recipientType !== \"2\"\r\n },\r\n {\r\n col: 12,\r\n name: \"triggerType\",\r\n type: \"radio\",\r\n label: `${M}triggerManually`,\r\n opts: {\r\n value: \"true\"\r\n },\r\n onChange: ctx => ctx.setState({selectedTriggerType: ctx.state.triggerType}),\r\n renderIf: () => context.state.form?.recipientType !== \"2\"\r\n },\r\n {\r\n col: 12,\r\n name: \"triggerType\",\r\n type: \"radio\",\r\n label: `${M}onADate`,\r\n opts: {\r\n value: \"false\"\r\n },\r\n onChange: ctx => ctx.setState({selectedTriggerType: ctx.state.triggerType}),\r\n renderIf: () => context.state.form?.recipientType !== \"2\"\r\n },\r\n {\r\n col: 6,\r\n offset: 6,\r\n name: \"forDate\",\r\n value: \"\",\r\n type: \"datetime\",\r\n label: `${M}selectDate`,\r\n parent: \"triggerType\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: () => context.state.form?.recipientType !== \"2\"\r\n }\r\n ]\r\n },\r\n {\r\n id: \"step-5\",\r\n name: `${M}summary`,\r\n desc: `${M}summaryDesc`,\r\n method: () => `/admFetch/edit/${context.state.fetchId}`,\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"label6\",\r\n value: L => `

    ${L[`${M}summary`]}

    ${L[`${M}summaryDesc`]}`,\r\n type: \"label\"\r\n },\r\n {\r\n name: \"sendStatus\",\r\n type: \"hidden\"\r\n },\r\n {\r\n name: \"countTarget\",\r\n type: \"hidden\"\r\n },\r\n {\r\n name: \"countSent\",\r\n type: \"hidden\"\r\n },\r\n {\r\n name: \"countSeen\",\r\n type: \"hidden\"\r\n },\r\n {\r\n name: \"countComplete\",\r\n type: \"hidden\"\r\n },\r\n {\r\n name: \"countPartial\",\r\n type: \"hidden\"\r\n },\r\n {\r\n name: \"numberOfInputs\",\r\n type: \"hidden\"\r\n },\r\n {\r\n col: 12,\r\n name: \"summary\",\r\n value: \"\",\r\n type: \"component\",\r\n opts: {\r\n component: summary\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n subforms: [\r\n {\r\n size: \"md\",\r\n name: `${M}mobileNumbers`,\r\n wrapClassName: \"mb-4\",\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"tabs\",\r\n value: \"copyPaste\",\r\n type: \"tabs\",\r\n tabs: [\r\n {\r\n id: \"copyPaste\",\r\n name: `${M}copyPaste`,\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"phoneList\",\r\n value: \"\",\r\n type: \"textarea\",\r\n label: `${M}enterMobileNumbers`,\r\n placeholder: \"Sample:\\n+51963214569\\n+51969875563\\n+51963369852\",\r\n rules: \"required\",\r\n opts: {\r\n rows: \"12\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: \"fromCSV\",\r\n name: `${M}fromCSV`,\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"btnTemplate\",\r\n type: \"button\",\r\n label: \"main.downloadExcelTemplate\",\r\n onClick: () => {\r\n window.open(`https://dev-sansilvestre.app-on.cloud/tplmails/dwn/UsersImport.xlsx`, \"_blank\")\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"data\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n rules: \"required\",\r\n placeholder: \"main.selectFile\",\r\n opts: {\r\n accept: '.csv',\r\n output: true\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n col: 12,\r\n name: \"useGroupLabel\",\r\n value: (L) => `
    ${L[`${M}useGroup`]}
    `,\r\n type: \"label\",\r\n },\r\n {\r\n col: 12,\r\n name: \"useGroup\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}loadContacts`,\r\n onChange: ctx => {\r\n if (!ctx.state.useGroup) ctx.setState({\r\n groupId: null,\r\n groupName: null\r\n }, () => {\r\n ctxSubFormDetailGrid.setState({data: []})\r\n })\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"groupId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.category\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"admGroup/get?staff=0\",\r\n setOutput: v => { if (v) return {value: v.value, label: v.label} },\r\n },\r\n onChange: ctx => {\r\n if (ctx.state.groupId) ctxSubFormDetailGrid.setState({resource: `admUser/group/${ctx.state.groupId.value}`}, () => {\r\n ctxSubFormDetailGrid.getData()\r\n })\r\n else ctxSubFormDetailGrid.setState({data: []})\r\n },\r\n renderIf: ctx => ctx.state.useGroup,\r\n disabled: ctx => ctx.state.groupName\r\n },\r\n {\r\n col: 6,\r\n name: \"groupName\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}newGroup`,\r\n opts: {\r\n style: \"float-label\"\r\n },\r\n renderIf: ctx => ctx.state.useGroup,\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: `${M}addNumbers`,\r\n isMain: true,\r\n onClick: (ctx) => {\r\n ctx.validateForm().then(() => {\r\n context.props.setLoader(true)\r\n const fetchId = context.state.idItemSelected || context.state.fetchId\r\n const groupIdOfFetch = context.state.form.groupIdOfFetch\r\n const body = {\r\n data: ctx.state.data?.[0]?.value || null,\r\n phoneList: ctx.state.phoneList || null,\r\n groupId: ctx.state.groupName ? 0 : (ctx.state.groupId ? ctx.state.groupId.value : groupIdOfFetch),\r\n groupName: ctx.state.groupName || (!groupIdOfFetch ? `fetch_${fetchId}` : null)\r\n }\r\n\r\n _axios\r\n .post(`admUser/importAttach`, body)\r\n .then(r => {\r\n if (r.status === 0) {\r\n ctxForm.toogleSubForm(0)\r\n if (ctx.state.useGroup) {\r\n ctxForm.setState({\r\n recipientType: \"1\", \r\n groupId: ctx.state.groupName\r\n ? {value: r.data?.groupId, label: ctx.state.groupName}\r\n : {value: ctx.state.groupId.value, label: ctx.state.groupId.label}\r\n })\r\n } else if (!ctx.state.useGroup && r.data?.groupId) {\r\n ctxForm.setState({\r\n recipientType: \"0\",\r\n // groupId: {value: r.data.groupId, label: r.data.groupId},\r\n groupIdOfFetch: r.data.groupId\r\n })\r\n }\r\n }\r\n NotificationManager[r.status >= 0 ? 'success' : 'error'](r.msg, r.status >= 0 ? '' : 'Opps', 5000, null, null, 'outline')\r\n context.props.setLoader(false)\r\n }).catch(e => context.props.setLoader(false))\r\n })\r\n .catch(e => { /* console.log(e) */ })\r\n }\r\n }\r\n ],\r\n detailGrid: () => {\r\n return {\r\n module: 'admUser',\r\n embeded: (ctx) => {\r\n ctxSubFormDetailGrid = ctx\r\n return {\r\n config: {\r\n pageSize: 40,\r\n resource: `admUser/group/${context.state.form?.groupIdOfFetch || 0}`,\r\n },\r\n \r\n actions: {\r\n delete: true\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.lastName\",\r\n accessor: \"last\" \r\n }\r\n ]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n ],\r\n detailGrid: (ctx) => {\r\n return {\r\n module: 'admFetchInput',\r\n filterBy: () => { return { fetchId: context.state.idItemSelected || context.state.fetchId } },\r\n renderIf: () => (context.state.idItemSelected || context.state.fetchId) && context.state.form?.flags?.currentStepId === \"step-2\",\r\n listenData: (data) => {\r\n if (context.state.form && data) {\r\n const form = context.state.form\r\n form.inputs = data.map(item => item = {name: item.name, options: item.options})\r\n context.setState({form: form}, () => {\r\n if (ctx.state.selectedTemplate) changeTemplate(ctx)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\",\r\n hidden: true\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\",\r\n minWidth: 180\r\n },\r\n {\r\n Header: \"main.status\",\r\n accessor: \"sendStatus\",\r\n type: 'chip',\r\n chips: {\r\n 0: {text: 'Draft', color:'lightgreen'},\r\n 1: {text: 'Ready', color:'lightgreen'},\r\n 2: {text: 'Sending', color:'lightgreen'},\r\n 3: {text: 'Sent', color:'green'},\r\n 4: {text: 'Cancelled', color:'red'},\r\n 5: {text: 'Sending errors', color:'red'}\r\n }\r\n },\r\n {\r\n Header: `${M}countTarget`,\r\n accessor: \"countTarget\"\r\n },\r\n {\r\n Header: `${M}countSent`,\r\n accessor: \"countSent\"\r\n },\r\n {\r\n Header: `${M}countSeen`,\r\n accessor: \"countSeen\"\r\n },\r\n {\r\n Header: `${M}countPartial`,\r\n accessor: \"countPartial\"\r\n },\r\n {\r\n Header: `${M}countComplete`,\r\n accessor: \"countComplete\"\r\n },\r\n {\r\n Header: `${M}willSendOn`,\r\n accessor: \"forDate\",\r\n isDate: true\r\n }\r\n ],\r\n\r\n preview: {\r\n template: CustomPreviewWhatsApp,\r\n previewOf: {\r\n form: {\r\n name: `main.whatsappMessagePreview`,\r\n handleData: (data) => {\r\n if (!data) return\r\n let msgs = []\r\n let header = data?.selectedTemplate?.content\r\n let buttons = []\r\n const tagsContent = data?.selectedTemplate?.tagsContent\r\n if (tagsContent) {\r\n /*\r\n tagsContent.forEach(t => {\r\n if (data[t.id]) {\r\n content = content.replaceAll(`{{${t.id}}}`, data[t.id])\r\n }\r\n })\r\n */\r\n tagsContent.forEach((t, index) => {\r\n if (data[t.id]) {\r\n header = header.replaceAll(`{{${index+1}}}`, data[t.id])\r\n }\r\n if (t.id.includes(\"button\")) {\r\n buttons.push(data[t.id])\r\n }\r\n })\r\n }\r\n const m = {\r\n type: \"received\",\r\n content: header,\r\n buttons: buttons\r\n }\r\n msgs.push(m)\r\n if (data.inputs) {\r\n msgs = msgs.concat(data.inputs.map(item => item = {type: \"received\", content: item.name, buttons: item.options ? item.options.split(\"|\") : []}))\r\n }\r\n return msgs\r\n }\r\n }\r\n },\r\n renderIf: () => context.state.form?.selectedTemplate && context.state.form?.flags?.currentStepId === \"step-2\"\r\n }\r\n }\r\n}","export default (context) => {\r\n const M = \"admAssignment.\"\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form) => {\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n form: {\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}questionType`,\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: \"text\", label: \"Texto\" },\r\n { value: \"number\", label: \"Número\" },\r\n { value: \"textarea\", label: \"Texto largo\" },\r\n { value: \"check\", label: \"Check\" },\r\n { value: \"option\", label: \"Lista de opciones\" },\r\n { value: \"optionMany\", label: \"Lista de opciones (múltiple)\" }\r\n ]\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"langSwitch\",\r\n value: false,\r\n type: \"switch\",\r\n label: (L, state) => { return `${L[\"main.language\"]}: ${state.langSwitch ? L[\"main.english\"] : L[\"main.spanish\"]}` },\r\n },\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}questionStatement`,\r\n placeholder: `${M}example1`,\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => !ctx.state.langSwitch\r\n },\r\n {\r\n col: 12,\r\n name: \"desc\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"main.desc\",\r\n renderIf: (ctx) => !ctx.state.langSwitch\r\n },\r\n {\r\n col: 12,\r\n name: \"placeholder\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}helpTextToShow`,\r\n placeholder: `${M}example2`,\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => !ctx.state.langSwitch\r\n },\r\n {\r\n col: 12,\r\n name: \"options\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}inCaseOfBeingOptionsList`,\r\n placeholder: `${M}answerOptions`,\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => !ctx.state.langSwitch\r\n },\r\n {\r\n col: 12,\r\n name: \"nameEN\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}questionStatement`,\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => ctx.state.langSwitch\r\n },\r\n {\r\n col: 12,\r\n name: \"descEN\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"main.desc\",\r\n renderIf: (ctx) => ctx.state.langSwitch\r\n },\r\n {\r\n col: 12,\r\n name: \"placeholderEN\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}helpTextToShow`,\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => ctx.state.langSwitch\r\n },\r\n {\r\n col: 12,\r\n name: \"optionsEN\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}inCaseOfBeingOptionsList`,\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => ctx.state.langSwitch\r\n },\r\n {\r\n col: 12,\r\n name: \"correctAnswer\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}correctAnswer`,\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"points\",\r\n value: \"\",\r\n type: \"number\",\r\n label: `${M}pointsIfCorrect`,\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"pointsNeg\",\r\n value: \"\",\r\n type: \"number\",\r\n label: `${M}pointsIfIncorrect`,\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 4,\r\n name: \"inactive\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"main.inactive\",\r\n },\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.type\",\r\n accessor: \"type\",\r\n },\r\n {\r\n Header: `${M}pointsIfCorrect`,\r\n accessor: \"points\"\r\n },\r\n {\r\n Header: `${M}pointsIfIncorrect`,\r\n accessor: \"pointsNeg\"\r\n }\r\n ]\r\n }\r\n}","import CustomCalendar from \"../../components/utils/CustomCalendar\"\r\nimport _moment from \"../../libs/moment\"\r\n\r\nexport default (context) => {\r\n const M = \"admCalendar.\"\r\n return {\r\n config: {\r\n resource: \"admActivity\",\r\n customPathGet: \"admActivity/month/0\",\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form) => {\r\n return form\r\n },\r\n hiddenButtons: true,\r\n hiddenGrid: true\r\n },\r\n\r\n actions: {},\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"type\",\r\n type: \"hidden\",\r\n value: \"cal\"\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.grade\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.section\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFilter.superSectionId }\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'main.applyFilter',\r\n onClick: ctx => ctx.btnAction('filter')\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n r.data.categoryId = { value: r.data.categoryId, label: r.data.categoryName }\r\n r.data.owner = {value: r.data.owner, label: r.data.ownerName}\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n if (v.superSections) {\r\n v.superSections = v.superSections.map(e => {\r\n e = {\r\n ID: e.value,\r\n name: e.label,\r\n selected: true,\r\n }\r\n return e\r\n })\r\n }\r\n if (v.sections) {\r\n v.sections = v.sections.map(e => {\r\n e = {\r\n ID: e.value,\r\n name: e.label,\r\n selected: true,\r\n }\r\n return e\r\n })\r\n }\r\n delete v.selectedField\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.title\",\r\n rules: \"required|max:150\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n type: \"daterange\",\r\n isFormCrud: true,\r\n range: {\r\n col: 4,\r\n label: `${M}startDate/endDate`,\r\n rules: () => (context.state.form?.startDate && context.state.form?.endDate) ? null : 'required',\r\n opts: {\r\n items: [\r\n {value: 0, label: \"main.tomorrow\"},\r\n {value: 1, label: \"main.afterTomorrow\"},\r\n {value: 2, label: \"main.anotherDate\"}\r\n ]\r\n },\r\n onChange: (ctx) => {\r\n if (ctx.state.range === 0) ctx.setState({startDate: `${_moment().add(1, 'days').format('YYYY-MM-DD')} 08:00:00`, endDate: `${_moment().add(1, 'days').format('YYYY-MM-DD')} 16:00:00`})\r\n else if (ctx.state.range === 1) ctx.setState({startDate: `${_moment().add(2, 'days').format('YYYY-MM-DD')} 08:00:00`, endDate: `${_moment().add(2, 'days').format('YYYY-MM-DD')} 16:00:00`})\r\n else if (ctx.state.range === 2) ctx.setState({startDate: null, endDate: null})\r\n }\r\n },\r\n from: {\r\n col: 4,\r\n name: \"startDate\",\r\n value: \"\",\r\n type: \"datetime\",\r\n label: `${M}startDateTime`,\r\n rules: \"required\",\r\n renderIf: ctx => ctx.state.startDate || ctx.state.range === 2\r\n },\r\n to: {\r\n col: 4,\r\n name: \"endDate\",\r\n value: \"\",\r\n type: \"datetime\",\r\n label: `${M}endDateTime`,\r\n rules: \"required\",\r\n renderIf: ctx => ctx.state.endDate || (ctx.state.range === 2 && ctx.state.startDate)\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"desc\",\r\n value: \"\",\r\n type: \"textarea\",\r\n label: \"main.desc\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"img\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"main.coverImage\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"/admActivity/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n output: true\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"locationTxt\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.location\",\r\n rules: \"max:50\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n name: \"hasDate\",\r\n value: true,\r\n type: \"hidden\",\r\n }, \r\n {\r\n col: 12,\r\n name: \"published\",\r\n value: true,\r\n type: \"switch\",\r\n label: `${M}published`,\r\n },\r\n {\r\n type: \"daterange\",\r\n isFormCrud: true,\r\n range: {\r\n col: 4,\r\n name: \"range2\",\r\n label: \"\",\r\n renderIf: (ctx) => ctx.state.published\r\n },\r\n from: {\r\n col: 4,\r\n name: \"publishFrom\",\r\n value: \"\",\r\n type: \"datetime\",\r\n label: `${M}showFrom`\r\n },\r\n to: {\r\n col: 4,\r\n name: \"publishTo\",\r\n value: \"\",\r\n type: \"datetime\",\r\n label: `${M}showUntil`\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"superSections\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}visibleForSections`,\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\",\r\n isMulti: true,\r\n setOutput: v => v\r\n },\r\n renderIf: (ctx) => ctx.state.published\r\n },\r\n {\r\n col: 6,\r\n name: \"sections\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}visibleForSubsections`,\r\n parent: 'superSections',\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + ((context.state.form.superSections && context.state.form.superSections.length > 0) ? context.state.form.superSections[0].value : null) },\r\n isMulti: true,\r\n setOutput: v => v\r\n },\r\n renderIf: (ctx) => { return (ctx.state.superSections && ctx.state.superSections.length === 1) || (ctx.state.sections && ctx.state.sections.length >= 1)}\r\n },\r\n {\r\n col: 12,\r\n name: \"tab1\",\r\n value: false,\r\n type: \"collapsible\",\r\n placeholder: 'main.seeMoreOptions',\r\n childs: [\r\n {\r\n col: 12,\r\n name: \"nameEN\",\r\n value: \"\",\r\n type: \"text\",\r\n label: L => `${L[\"main.title\"]} - ${L[\"main.secondaryLanguage\"]}`,\r\n aiAssist: {\r\n action: 'translate',\r\n requiredFields: [\"name\", \"desc\"],\r\n postUrl: \"admPublication/AiAssist\"\r\n },\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"descEN\",\r\n value: \"\",\r\n type: \"textarea\",\r\n label: L => `${L[\"main.desc\"]} - ${L[\"main.secondaryLanguage\"]}`,\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"categoryId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.category\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admCategory/get?type=cal\"\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"owner\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.responsible\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admStaff/get?pick=true\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"label1\",\r\n value: (L) => `
    ${L[`${M}whoCanSeeThisActivity`]} {\r\n context.toggleDelete(context.state.idItemSelected)\r\n },\r\n renderIf: () => context.state.idItemSelected\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n columns: [],\r\n\r\n customComponent: CustomCalendar\r\n }\r\n}","import CustomPreviewWhatsApp from \"../../components/utils/CustomPreviewWhatsApp\"\r\nimport { NotificationManager } from \"../../components/common/react-notifications\"\r\nimport _moment from \"../../libs/moment\"\r\nimport _axios from \"../../libs/axios\"\r\nimport { objToQueryString } from \"../../helpers/Utils\"\r\nimport { replaceWords } from \"../../helpers/Utils\"\r\n\r\nexport default (context) => {\r\n const M = \"admNotification.\"\r\n const onSuccess = (r) => {\r\n const form = context.state.form\r\n form.msgConfirmFailure = null\r\n form.msgConfirmSuccess = r.msg\r\n if (context.state.form.btnValidate !== -2) form.btnValidate = r.status\r\n context.setState({form: form})\r\n context.props.setLoader(false)\r\n if (context.state.form.btnValidate === -2) context.toggle()\r\n else {\r\n if (!context.state.idItemSelected) {\r\n context.setState({showFormCustom: false, btnCancel: \"main.close\"}, () => {\r\n context.getDataById(r.data)\r\n })\r\n }\r\n }\r\n }\r\n const onFailure = (r) => {\r\n const form = context.state.form\r\n form.msgConfirmSuccess = null\r\n form.msgConfirmFailure = r.msg\r\n context.setState({form: form})\r\n context.props.setLoader(false)\r\n }\r\n const changeTemplate = (ctx) => {\r\n const params = {\r\n objectType: ctx.state.page,\r\n objectId: ctx.state.objectId\r\n }\r\n const query = objToQueryString(params)\r\n context.props.setLoader(true)\r\n _axios\r\n .get(`admLocalization/get/${ctx.state.doWATemplate}?${query}`)\r\n .then(r => {\r\n context.props.setLoader(false)\r\n if (r.status >= 0) {\r\n const fields = []\r\n r.data.tagsContent.forEach((t, i) => {\r\n if (context.state.idItemSelected && ctx.state.placeholders?.length > 0 && !ctx.state.selectedTemplate) {\r\n ctx.setState({[t.id]: ctx.state.placeholders[i]?.name ?? t.defValue })\r\n }\r\n else ctx.setState({[t.id]: t.defValue ?? \"\"})\r\n fields.push(\r\n {\r\n col: 6,\r\n name: t.id,\r\n value: \"\",\r\n type: t.hidden ? \"hidden\" : \"text\",\r\n label: (L) => {\r\n let label = t.id.split(\".\")\r\n label = label.pop()\r\n return L[`${M}${label}`] || L[`main.${label}`] || t.id\r\n },\r\n opts: {\r\n style: 'float-label',\r\n },\r\n disabled: t.readonly\r\n }\r\n )\r\n })\r\n \r\n ctx.setState({ selectedTemplate: r.data })\r\n const formFields = context.state.formFields\r\n const fieldIndex = formFields.findIndex(f => f.name === \"placeholders\")\r\n formFields[fieldIndex].childs = fields\r\n context.setState({formFields: formFields})\r\n } else NotificationManager.error(r.msg, \"Opps\", 5000, null, null, 'outline')\r\n }).catch(e => context.props.setLoader(false))\r\n }\r\n\r\n return {\r\n config: {\r\n pageSize: 10,\r\n },\r\n \r\n actions: {\r\n create: {\r\n reloadGrid: true\r\n },\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n \r\n filter: {\r\n fields: [\r\n {\r\n type: \"daterange\",\r\n range: {\r\n label: \"Enviado durante\"\r\n }\r\n },\r\n {\r\n col: 3,\r\n name: \"status\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"main.status\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: -1,\r\n label: \"main.all\"\r\n },\r\n {\r\n value: 0,\r\n label: `admFetch.draft`\r\n },\r\n {\r\n value: 1,\r\n label: `admFetch.noSent`\r\n },\r\n {\r\n value: 2,\r\n label: `admFetch.sending`\r\n },\r\n {\r\n value: 3,\r\n label: `admFetch.sent`\r\n },\r\n {\r\n value: 5,\r\n label: `admFetch.paused`\r\n },\r\n {\r\n value: -1,\r\n label: `admFetch.seeErrors`\r\n }\r\n ]\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n label: 'main.applyFilter',\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n handleSaveChanges : () => {\r\n const form = context.state.form\r\n form.btnValidate = -2\r\n context.setState({form: form}, () => {\r\n context.state.idItemSelected ? context.edit() : context.create()\r\n })\r\n },\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n const { doWATemplate, doWATemplateName, objectId, recurrence, sendOn } = r.data\r\n const { L } = context.state\r\n const d = _moment(sendOn)\r\n let recurrenceName = \"\"\r\n if (recurrence) {\r\n const value = recurrence.split(\" \")\r\n const day = value[2]\r\n const month = value[3]\r\n if (day === \"*\" && month === \"*\") recurrenceName = replaceWords(L[`${M}everyWeek`], {\"{0}\": d.format(\"dddd\"), \"{1}\": d.format(\"hha\")})\r\n else if (month === \"*\") recurrenceName = replaceWords(L[`${M}everyMonth`], {\"{0}\": d.format(\"DD\"), \"{1}\": d.format(\"hha\")})\r\n else recurrenceName = replaceWords(L[`${M}everyYear`], {\"{0}\": d.format(\"DD-MMM\"), \"{1}\": d.format(\"hha\")})\r\n }\r\n r.data = {\r\n ...r.data,\r\n doWATemplate: doWATemplate ? { value: doWATemplate, label: doWATemplateName } : doWATemplate,\r\n objectId: objectId ? { value: objectId, label: objectId } : objectId,\r\n hasRecurrence: !!recurrence,\r\n recurrence: recurrence ? { value: recurrence, label: recurrenceName } : recurrence\r\n }\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n if (v.sectionIds) v.sectionIds = v.sectionIds.map(e => e = { ID: e.value, name: e.label, selected: true })\r\n if (v.userIds) v.userIds = v.userIds.map(e => e = { ID: e.value, name: e.label, selected: true })\r\n if (v.principalUserIds) v.principalUserIds = v.principalUserIds.map(e => e = { ID: e.value, name: e.label, selected: true })\r\n const tagsContent = v.selectedTemplate?.tagsContent\r\n let placeholders = []\r\n if (v.selectedTemplate?.tagsContent) {\r\n tagsContent.forEach(t => {\r\n placeholders.push({ID: t.id, name: v[t.id] || \"\"})\r\n })\r\n v.placeholders = placeholders\r\n }\r\n delete v.alert1\r\n delete v.alert2\r\n delete v.msgConfirmFailure\r\n delete v.msgConfirmSuccess\r\n delete v.btnValidate\r\n delete v.selectedTemplate\r\n return v\r\n },\r\n onCreateSuccess: onSuccess,\r\n onCreateFailure: onFailure,\r\n onEditSuccess: onSuccess,\r\n onEditFailure: onFailure,\r\n onGetDataById: () => {\r\n context.setState({showFormCustom: true})\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: `${M}internalName`,\r\n rules: \"required|max:50\",\r\n opts: {\r\n style: 'float-label',\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"label1\",\r\n value: L => `
    ${L[`${M}deliveryModes`]}
    `,\r\n type: \"label\"\r\n },\r\n {\r\n col: 4,\r\n name: \"doWA\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"main.whatsApp\",\r\n onChange: (ctx) => ctx.setState({selectedTemplate: null}, () => {\r\n context.setState({modalPreview: false})\r\n })\r\n },\r\n {\r\n col: 8,\r\n name: \"doWATemplate\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}whatsAppTemplate`,\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admLocalization/get?type=w&pick=true\",\r\n addon: {\r\n append: {\r\n buttons: [\r\n {\r\n disabled: ctxField => !ctxField.state.doWATemplate,\r\n name: \"main.preview\",\r\n onClick: () => context.togglePreview()\r\n }\r\n ]\r\n }\r\n }\r\n },\r\n onChange: (ctx) => {\r\n if (!ctx.state.doWATemplate) {\r\n ctx.setState({selectedTemplate: null})\r\n return\r\n }\r\n changeTemplate(ctx)\r\n },\r\n renderIf: ctx => ctx.state.doWA\r\n },\r\n {\r\n col: 12,\r\n name: \"placeholders\",\r\n value: [],\r\n type: \"fieldset\",\r\n renderIf: ctx => ctx.state.doWA\r\n },\r\n {\r\n col: 4,\r\n name: \"doMail\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}sendEmail`\r\n },\r\n {\r\n col: 4,\r\n name: \"doPush\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}sendPUSH`\r\n },\r\n {\r\n col: 12,\r\n name: \"alert2\",\r\n value: `${M}infoPush`,\r\n type: \"alert\",\r\n opts: {\r\n color: \"info\"\r\n },\r\n renderIf: ctx => ctx.state.doPush\r\n },\r\n {\r\n col: 12,\r\n name: \"content\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.title\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n },\r\n renderIf: (ctx) => ctx.state.doMail || ctx.state.doPush\r\n },\r\n {\r\n col: 12,\r\n name: \"body\",\r\n value: \"\",\r\n type: \"editor\",\r\n label: \"main.content\",\r\n renderIf: (ctx) => ctx.state.doMail\r\n },\r\n {\r\n col: 12,\r\n name: \"art\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"\",\r\n isDoc: false,\r\n rules: 'ext:jpeg,jpg,png',\r\n placeholder: \"main.selectFile\",\r\n opts: {\r\n path: ()=> \"/admNotification/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n output: true\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"sendTo\",\r\n value: 0,\r\n type: \"select\",\r\n label: `${M}sendTo`,\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: 0, label: `${M}headlinesGuardians` },\r\n { value: 2, label: `${M}childrenDependents` },\r\n { value: 4, label: `${M}teachers` }\r\n ]\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"filterBy\",\r\n value: \"sections\",\r\n type: \"select\",\r\n label: `${M}selectionCriteria`,\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: \"sections\", label: `${M}filterBySections` },\r\n { value: \"dependants\", label: `${M}filterBySpecificChildrenDependents` },\r\n { value: \"principals\", label: `${M}filterBySpecificHeadlinesGuardians` }\r\n ]\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"sectionIds\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}selectFromSections`,\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSection/get\",\r\n isMulti: true,\r\n setOutput: v => v\r\n },\r\n renderIf: ctx => ctx.state.filterBy === \"sections\"\r\n },\r\n {\r\n col: 12,\r\n name: \"userIds\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}relatedToFollowingChildrenDependents`,\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admUser/get?pick=true&type=3\",\r\n isMulti: true,\r\n setOutput: v => v\r\n },\r\n renderIf: ctx => ctx.state.filterBy === \"dependants\"\r\n },\r\n {\r\n col: 12,\r\n name: \"principalUserIds\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}relatedToFollowingHeadlinesGuardians`,\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admUser/get?pick=true&type=1\",\r\n isMulti: true,\r\n setOutput: v => v\r\n },\r\n renderIf: ctx => ctx.state.filterBy === \"principals\"\r\n },\r\n {\r\n col: 6,\r\n name: \"page\",\r\n value: \"general\",\r\n type: \"select\",\r\n label: `${M}notificationType`,\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: \"general\", label: `${M}general` },\r\n { value: \"publication\", label: `${M}publication` },\r\n { value: \"calendar\", label: `${M}eventCalendar` },\r\n { value: \"payment\", label: `${M}payments` },\r\n { value: \"attendance\", label: `${M}attendance` }\r\n ]\r\n },\r\n onChange: ctx => {\r\n if (!ctx.state.selectedTemplate) return\r\n changeTemplate(ctx)\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"objectId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: `${M}associateNotificationWith`,\r\n parent: \"page\",\r\n opts: {\r\n style: 'float-label',\r\n path: ctx => `admNotification/objects?parentId=${ctx.state.page}`\r\n },\r\n onChange: ctx => {\r\n if (!ctx.state.selectedTemplate) return\r\n changeTemplate(ctx)\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"sendOn\",\r\n value: \"\",\r\n type: \"datetime\",\r\n label: `${M}sendDate`,\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n selectsEnd: true,\r\n minDate: _moment(),\r\n minTime: ctx => ctx.state.sendOn ? _moment(ctx.state.sendOn).format('YYYY-MM-DD') === _moment().format('YYYY-MM-DD') ? _moment() : _moment().set({hour:0,minute:0}) : _moment(),\r\n maxTime: _moment().set({hour:23,minute:59,second:0,millisecond:0}),\r\n }\r\n },\r\n {\r\n col: 2,\r\n name: \"hasRecurrence\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}recurrence`,\r\n renderIf: ctx => ctx.state.sendOn && ctx.state.recurrenceId === 0\r\n },\r\n {\r\n col: 2,\r\n name: \"recurrenceId\",\r\n value: 0,\r\n type: \"hidden\"\r\n },\r\n {\r\n col: 4,\r\n name: \"recurrence\",\r\n value: null,\r\n type: \"select\",\r\n parent: \"sendOn\",\r\n rules: \"required\",\r\n opts: {\r\n style: 'float-label',\r\n items: [],\r\n onMenuOpen: (ctxForm, ctx, L) => {\r\n const d = _moment(ctxForm.state.sendOn)\r\n const items = [\r\n { value: `0 ${d.format(\"H\")} * * ${d.day()}`, label: replaceWords(L[`${M}everyWeek`], {\"{0}\": d.format(\"dddd\"), \"{1}\": d.format(\"hha\")})},\r\n { value: `0 ${d.format(\"H\")} ${d.format(\"D\")} * *`, label: replaceWords(L[`${M}everyMonth`], {\"{0}\": d.format(\"DD\"), \"{1}\": d.format(\"hha\")})},\r\n { value: `0 ${d.format(\"H\")} ${d.format(\"D\")} ${d.format(\"M\")} *`, label: replaceWords(L[`${M}everyYear`], {\"{0}\": d.format(\"DD-MMM\"), \"{1}\": d.format(\"hha\")})}\r\n ]\r\n ctx.setState({items: items})\r\n }\r\n },\r\n renderIf: ctx => ctx.state.sendOn && ctx.state.hasRecurrence && ctx.state.recurrenceId === 0\r\n },\r\n {\r\n col: 6,\r\n name: \"btnValidate\",\r\n value: -1,\r\n type: \"button\",\r\n label: `${M}validateSending`,\r\n onClick: () => {\r\n context.state.idItemSelected ? context.edit() : context.create()\r\n },\r\n renderIf: ctx => !ctx.state.confirm\r\n },\r\n {\r\n col: 6,\r\n name: \"confirm\",\r\n value: false,\r\n type: \"switch\",\r\n label: `${M}startSending`,\r\n renderIf: ctx => ctx.state.btnValidate >= 0 || context.state.idItemSelected\r\n },\r\n {\r\n col: 12,\r\n name: \"msgConfirmSuccess\",\r\n value: \"\",\r\n type: \"alert\",\r\n opts: {\r\n color: \"success\"\r\n },\r\n renderIf: () => context.state.form?.msgConfirmSuccess\r\n },\r\n {\r\n col: 12,\r\n name: \"msgConfirmFailure\",\r\n value: \"\",\r\n type: \"alert\",\r\n opts: {\r\n color: \"danger\"\r\n },\r\n renderIf: () => context.state.form?.msgConfirmFailure\r\n },\r\n ],\r\n },\r\n \r\n columns: [\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\",\r\n width: 200\r\n },\r\n {\r\n Header: \"main.status\",\r\n accessor: \"status\",\r\n type: 'chip',\r\n chips: {\r\n 0: {text: 'Draft', color:'lightgreen'},\r\n 1: {text: 'Ready', color:'lightgreen'},\r\n 2: {text: 'Sending', color:'lightgreen'},\r\n 3: {text: 'Sent', color:'green'},\r\n 4: {text: 'Cancelled', color:'red'},\r\n 5: {text: 'Sending errors', color:'red'}\r\n }\r\n },\r\n {\r\n Header: `${M}sendDate`,\r\n accessor: \"sendOn\",\r\n isDate:true\r\n },\r\n {\r\n Header: 'admFetch.countTarget',\r\n accessor: \"total\"\r\n },\r\n {\r\n Header: `${M}sent`,\r\n accessor: \"sent\",\r\n width: 80\r\n },\r\n {\r\n accessor: \"sentProgress\",\r\n type:'progress'\r\n },\r\n {\r\n Header: 'admFetch.countSeen',\r\n accessor: \"read\",\r\n width: 80\r\n },\r\n {\r\n accessor: \"readProgress\",\r\n type:'progress'\r\n },\r\n {\r\n Header: `${M}failed`,\r\n accessor: \"failed\"\r\n }\r\n ],\r\n\r\n preview: {\r\n template: CustomPreviewWhatsApp,\r\n previewOf: {\r\n form: {\r\n name: `main.whatsappMessagePreview`,\r\n handleData: (data) => {\r\n if (!data) return\r\n let msgs = []\r\n let content = data?.selectedTemplate?.content\r\n let buttons = []\r\n const tagsContent = data?.selectedTemplate?.tagsContent\r\n if (tagsContent) {\r\n /*\r\n tagsContent.forEach(t => {\r\n if (data[t.id]) {\r\n content = content.replaceAll(`{{${t.id}}}`, data[t.id])\r\n }\r\n })\r\n */\r\n tagsContent.forEach((t, index) => {\r\n if (data[t.id]) {\r\n content = content.replaceAll(`{{${index+1}}}`, data[t.id])\r\n }\r\n if (t.id.includes(\"button\")) {\r\n buttons.push(data[t.id])\r\n }\r\n })\r\n }\r\n const msg = {\r\n type: \"received\",\r\n content: content,\r\n buttons: buttons\r\n }\r\n msgs.push(msg)\r\n return msgs\r\n }\r\n }\r\n },\r\n renderIf: () => context.state.form.selectedTemplate\r\n }\r\n }\r\n }","import _axios from \"../../libs/axios\"\r\nexport default (context) => {\r\n\r\n const filter = {\r\n fields: [\r\n {\r\n name: \"type\",\r\n value: 1,\r\n type: \"hidden\",\r\n }\r\n ]\r\n }\r\n\r\n let columns = [\r\n {\r\n Header: \"\",\r\n accessor: \"img\",\r\n type: \"img\"\r\n },\r\n {\r\n Header: \"main.ID\",\r\n accessor: \"ID\"\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\"\r\n },\r\n {\r\n Header: \"main.relationship\",\r\n accessor: \"relationship\" \r\n },\r\n {\r\n Header: \"main.principal\",\r\n accessor: \"principal\",\r\n isBool: true\r\n },\r\n {\r\n Header: \"main.externalId\",\r\n accessor: \"externalId\"\r\n }\r\n ]\r\n\r\n const module = {\r\n config: {\r\n resource: \"admUser\",\r\n pageSize: 40,\r\n list: false,\r\n remapRow: (form, res, action, resUpload) => {\r\n form.img = form.face\r\n form.name = `${form.last} ${form.last2?? ''}, ${form.name}`\r\n if (resUpload?.url) form.img = `${resUpload.url}?date=${Date.now()}`\r\n return form\r\n }\r\n },\r\n\r\n actions: {\r\n create: true,\r\n edit: true,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: {\r\n by: \"search\"\r\n }\r\n },\r\n\r\n filter: filter,\r\n\r\n form: {\r\n beforeOpenModal: () => {\r\n return new Promise((resolve) => {\r\n if (localStorage.getItem(\"listOptions\")) return resolve(true)\r\n context.props.setLoader(true)\r\n _axios.get('/general/getlists')\r\n .then(r => {\r\n if(r.status === 0) {\r\n context.props.setLoader(false)\r\n localStorage.setItem(\"listOptions\", JSON.stringify(r.data))\r\n resolve(true)\r\n }\r\n })\r\n .catch(() => {\r\n context.props.setLoader(false)\r\n resolve(false)\r\n })\r\n })\r\n },\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.country = { value: r.data.country, label: r.data.country }\r\n r.data.state = { value: r.data.state, label: r.data.state }\r\n r.data.city = { value: r.data.city, label: r.data.city }\r\n r.data.district = { value: r.data.district, label: r.data.district }\r\n r.data.nationality = { value: r.data.nationality, label: r.data.nationality }\r\n r.data.workCountry = { value: r.data.workCountry, label: r.data.workCountry }\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n return v\r\n },\r\n fields: [\r\n {\r\n col: 12,\r\n name: \"face\",\r\n value: \"\",\r\n type: \"dropzone\",\r\n label: \"main.photography\",\r\n rules: 'ext:jpeg,jpg,png',\r\n opts: {\r\n path: ()=> \"admUser/file\",\r\n accept: '.jpeg,.jpg,.png',\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"externalId\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.externalId\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"inactive\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"main.inactive\"\r\n },\r\n {\r\n col: 6,\r\n name: \"last\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.lastName\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"last2\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.maternalSurname\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.name\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"documenttype\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.documentType\",\r\n opts: {\r\n style: 'float-label',\r\n listInLocalStorage: {\r\n name: \"listOptions\",\r\n listName: \"documents\"\r\n }\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"documentnumber\",\r\n value: \"\",\r\n type: \"number\",\r\n label: \"main.documentNumber\",\r\n rules: 'max:20',\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"birthday\",\r\n value: \"\",\r\n type: \"date\",\r\n label: \"main.birthdate\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"nationality\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.nationality\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n path: \"/general/getcountries\",\r\n remap: (r) => {\r\n r.data.Results = r.data.map(item => ({ ID: item.id, name: item.name }))\r\n return r\r\n }\r\n }\r\n },\r\n {\r\n col: 6,\r\n name: \"rip\",\r\n value: false,\r\n type: \"switch\",\r\n label: \"main.died\"\r\n },\r\n {\r\n col: 6,\r\n name: \"gender\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.gender\",\r\n rules: 'required',\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: 'M', label: 'M'},\r\n { value: 'F', label: 'F'}\r\n ]\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"maritalstatus\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"admUser.maritalstatus\",\r\n opts: {\r\n style: 'float-label',\r\n listInLocalStorage: {\r\n name: \"listOptions\",\r\n listName: \"martialStatus\"\r\n }\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"cel\",\r\n value: \"\",\r\n type: \"number\",\r\n label: \"main.cellPhone\",\r\n rules: \"max:13\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"homephone\",\r\n value: \"\",\r\n type: \"number\",\r\n label: \"main.phone\",\r\n rules: \"max:13\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"mail\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.email\",\r\n rules: 'required|email',\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"email2\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"admUser.otherEmail\",\r\n rules: \"email\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"education\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.education\",\r\n opts: {\r\n style: 'float-label',\r\n listInLocalStorage: {\r\n name: \"listOptions\",\r\n listName: \"educationLevels\"\r\n }\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"religion\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"admUser.religion\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"userKind\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"main.userType\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n { value: 0, label: \"Titular / Apoderado principal\" },\r\n { value: 1, label: \"Apoderado secundario\" },\r\n { value: 3, label: \"Externo / invitado\" }\r\n ]\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"notifModes\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.notifyVia\",\r\n rules: 'max:50',\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 12,\r\n name: \"label1\",\r\n value: L => `
    ${L['main.residence']}
    `,\r\n type: \"label\",\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"address\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.address\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"country\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.country\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/general/getcountries\",\r\n remap: (r) => {\r\n r.data.Results = r.data.map(item => ({ ID: item.id, name: item.name }))\r\n return r\r\n }\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"state\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.state\",\r\n parent: \"country\",\r\n opts: {\r\n style: 'float-label',\r\n path: ctx => `/general/getstates?country=${ctx.state.country}`,\r\n remap: (r) => {\r\n const data = r.data.map(item => item = {ID: item.id, name: item.name})\r\n r.data.Results = data\r\n return r\r\n }\r\n },\r\n renderIf: ctx => ctx.state.country && !ctx.state.rip,\r\n },\r\n {\r\n col: 6,\r\n name: \"city\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.city\",\r\n parent: \"state\",\r\n opts: {\r\n style: 'float-label',\r\n path: ctx => `/general/getcities?country=${ctx.state.country}&state=${ctx.state.state}`,\r\n remap: (r) => {\r\n const data = r.data.map(item => item = {ID: item.id, name: item.name})\r\n r.data.Results = data\r\n return r\r\n }\r\n },\r\n renderIf: ctx => ctx.state.state && !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"district\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.district\",\r\n parent: \"city\",\r\n opts: {\r\n style: 'float-label',\r\n path: ctx => `/general/getdistricts?country=${ctx.state.country}&state=${ctx.state.state}&city=${ctx.state.city}`,\r\n remap: (r) => {\r\n const data = r.data.map(item => item = {ID: item.id, name: item.name})\r\n r.data.Results = data\r\n return r\r\n }\r\n },\r\n renderIf: ctx => ctx.state.city && !ctx.state.rip\r\n },\r\n {\r\n col: 12,\r\n name: \"label2\",\r\n value: L => `
    ${L[`admUser.employmentData`]}
    `,\r\n type: \"label\",\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"work\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"admUser.workplace\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"jobrole\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"admUser.position\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"profession\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"admUser.profession\",\r\n opts: {\r\n style: 'float-label',\r\n listInLocalStorage: {\r\n name: \"listOptions\",\r\n listName: \"profession\"\r\n }\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"occupation\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"admUser.occupation\",\r\n opts: {\r\n style: 'float-label',\r\n listInLocalStorage: {\r\n name: \"listOptions\",\r\n listName: \"ocupations\"\r\n }\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"workAddress\",\r\n value: \"\",\r\n type: \"text\",\r\n label: \"main.address\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"workCountry\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"admUser.workCountry\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/general/getcountries\",\r\n remap: (r) => {\r\n r.data.Results = r.data.map(item => ({ ID: item.id, name: item.name }))\r\n return r\r\n }\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n },\r\n {\r\n col: 6,\r\n name: \"workphone\",\r\n value: \"\",\r\n type: \"number\",\r\n label: \"admUser.workPhone\",\r\n rules: \"max:13\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n renderIf: ctx => !ctx.state.rip\r\n }\r\n ]\r\n },\r\n\r\n columns: columns\r\n }\r\n return module\r\n}","import dateRange from \"../../components/utils/DateRange\";\r\nexport default (context) => {\r\n return {\r\n config: {\r\n hiddenTitle: true,\r\n pageSize: 40,\r\n list: false\r\n },\r\n \r\n actions: {\r\n search: true,\r\n edit: true,\r\n print: true,\r\n export: true\r\n },\r\n\r\n filter: {\r\n fields: [\r\n ...dateRange()\r\n ],\r\n buttons: [\r\n {\r\n label: 'main.applyFilter',\r\n renderIf: (ctx) => { return ctx.state.range || ctx.state.from || ctx.state.to },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n form: {\r\n fields: [\r\n {\r\n col: 6,\r\n name: \"userName\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.user\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"moduleId\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.module\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"date\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.date\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"action\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.action\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"IP\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.IPadress\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n },\r\n {\r\n col: 6,\r\n name: \"lat\",\r\n value: null,\r\n type: \"text\",\r\n label: \"main.location\",\r\n opts: {\r\n style: 'float-label'\r\n },\r\n disabled: true\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n { Header: \"main.event\", accessor: \"ID\" },\r\n { Header: \"main.user\", accessor: \"name\" },\r\n { Header: \"main.date\", accessor: \"date\" },\r\n { Header: \"main.module\", accessor: \"module\" },\r\n { Header: \"main.action\", accessor: \"action\" }\r\n ]\r\n }\r\n}","import _moment from \"../../libs/moment\"\r\nexport default (context) => {\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n },\r\n\r\n actions: {\r\n create: false,\r\n edit: false,\r\n delete: true,\r\n print: true,\r\n export: true,\r\n search: true\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n name: \"day\",\r\n value: _moment().format(\"YYYY-MM-DD\"),\r\n type: \"date\",\r\n label: \"main.date\",\r\n opts: {\r\n style: 'float-label'\r\n }\r\n },\r\n {\r\n name: \"superSectionId\",\r\n value: null,\r\n type: \"select\",\r\n label: \"main.grade\",\r\n opts: {\r\n style: 'float-label',\r\n path: \"/admSuperSection/get?pick=true\"\r\n }\r\n },\r\n {\r\n name: \"sectionId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"main.section\",\r\n parent: \"superSectionId\",\r\n opts: {\r\n style: 'float-label',\r\n path: () => { return \"/admSection/get?pick=true&parentId=\" + context.state.formFilter.superSectionId }\r\n }\r\n }\r\n ],\r\n buttons: [\r\n {\r\n name: \"btnFilter\",\r\n label: \"main.applyFilter\",\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"main.externalId\",\r\n accessor: \"externalId\"\r\n },\r\n {\r\n Header: `main.lastName`,\r\n accessor: \"last\",\r\n },\r\n {\r\n Header: \"main.name\",\r\n accessor: \"name\",\r\n },\r\n {\r\n Header: \"main.grade\",\r\n accessor: \"supersectionName\",\r\n },\r\n {\r\n Header: \"main.section\",\r\n accessor: \"sectionName\"\r\n },\r\n {\r\n Header: \"main.usualDeparture\",\r\n accessor: \"pickupTypeName\"\r\n },\r\n {\r\n Header: \"main.exeption\",\r\n accessor: \"pickupExcepTypeName\"\r\n },\r\n {\r\n Header: \"main.change\",\r\n accessor: \"pickupExcepNote\"\r\n },\r\n {\r\n Header: \"main.time\",\r\n accessor: \"pickupExcepTime\"\r\n }\r\n ]\r\n }\r\n}","import CustomPreviewWhatsApp from \"../../components/utils/CustomPreviewWhatsApp\"\r\nimport React from \"react\";\r\nimport inputTypes from \"../../data/fetchInputTypes\"\r\nimport AppLocale from \"../lang\";\r\nexport default (context) => {\r\n const M = \"admFetchInput.\"\r\n\r\n return {\r\n config: {\r\n pageSize: 100,\r\n hidePagination: true,\r\n list: false,\r\n name: `${M}questions`,\r\n remapRow: (form) => {\r\n return form\r\n },\r\n modal: {\r\n size: \"md\"\r\n }\r\n },\r\n\r\n actions: {\r\n create: {\r\n btn: () => {\r\n context.toggle()\r\n context.setState({showPreview: true})\r\n }\r\n },\r\n edit: true,\r\n delete: true,\r\n print: false,\r\n export: false,\r\n search: false\r\n },\r\n\r\n form: {\r\n remapOne: (r) => {\r\n if (r.status >= 0) {\r\n r.data.selectedType = r.data.type\r\n }\r\n return r\r\n },\r\n setValuesBeforePost: (v) => {\r\n delete v.flags\r\n delete v.selectedField\r\n return v\r\n },\r\n beforeOpenModal: () => {\r\n return new Promise((resolve) => {\r\n context.setState({modalPreview: false})\r\n resolve(true)\r\n })\r\n },\r\n fields: [\r\n {\r\n name: \"fectchId\",\r\n value: context?.props?.filterBy?.fetchId,\r\n type: \"hidden\",\r\n },\r\n {\r\n col: 12,\r\n name: \"name\",\r\n value: \"\",\r\n type: \"textarea\",\r\n label: `${M}question`,\r\n rules: \"required|max:100\",\r\n maxLength: \"100\",\r\n opts: {\r\n style: 'float-label',\r\n rows: 2,\r\n addon: {\r\n append: {\r\n buttons: [\r\n {\r\n name: \"main.preview\",\r\n onClick: () => {\r\n if (context.state.modalPreview) {\r\n context.togglePreview()\r\n } else {\r\n context.previewOfForm(context.state.form)\r\n context.togglePreview()\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"label2\",\r\n value: (L) => `
    ${L[`${M}typeAnswer`]}
    `,\r\n type: \"label\",\r\n },\r\n {\r\n col: 12,\r\n name: \"selectedType\",\r\n value: \"\",\r\n type: \"text\",\r\n rules: \"required\",\r\n rulesMessages: {messages: {required: 'Select a type'}},\r\n opts: {\r\n inputWrapperClassName: \"d-none\"\r\n }\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label:`${M}typeText`,\r\n opts: {\r\n value: \"text\",\r\n desc: `${M}descTypeText`,\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type, options: \"\"})\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label:`${M}typeOption`,\r\n opts: {\r\n value: \"option\",\r\n desc: `${M}descTypeOption`\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type, options: \"\"})\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}typeMultiple`,\r\n opts: {\r\n value: \"multiple\",\r\n desc: `${M}descTypeMultiple`\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type, options: \"\"})\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}typeLocation`,\r\n opts: {\r\n value: \"location\",\r\n desc: `${M}descTypeLocation`\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type, options: \"\"})\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}typeSignature`,\r\n opts: {\r\n value: \"signature\",\r\n desc: `${M}descTypeSignature`\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type, options: \"\"})\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}typeIdentity`,\r\n opts: {\r\n value: \"kyc\",\r\n desc: `${M}descTypeIdentity`\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type, options: \"\"})\r\n },\r\n {\r\n col: 12,\r\n name: \"type\",\r\n value: \"\",\r\n type: \"radio\",\r\n label: `${M}typePayment`,\r\n opts: {\r\n value: \"payment\",\r\n desc: `${M}descTypePayment`\r\n },\r\n onChange: ctx => ctx.setState({selectedType: ctx.state.type, options: \"\"})\r\n },\r\n {\r\n col: 12,\r\n name: \"label1\",\r\n value: (L) => `
    ${L[`${M}addOption`]}
    `,\r\n type: \"label\",\r\n renderIf: ctx => [\"option\", \"multiple\"].indexOf(ctx.state.type) > -1\r\n },\r\n {\r\n col: 12,\r\n name: \"options\",\r\n value: \"\",\r\n type: \"sortable\",\r\n placeholder: `${M}optionPlaceholder`,\r\n rules: \"required\",\r\n opts: {\r\n nameButton: `${M}addAnswer`\r\n },\r\n renderIf: ctx => [\"option\", \"multiple\"].indexOf(ctx.state.type) > -1\r\n }\r\n ]\r\n },\r\n\r\n columns: [\r\n {\r\n Header: \"\",\r\n accessor: \"type\",\r\n type: \"img\",\r\n width: 80\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"name\",\r\n type: \"html\",\r\n cell: (props) => {\r\n const L = AppLocale[context.props.locale].messages\r\n const typeName = inputTypes.find(i => i.value === props.original.type)?.label\r\n return
    \r\n
    {props.original.name}
    \r\n
    {`${L[`${M}typeAnswer`]}: ${L[typeName]}` ?? props.original.type}
    \r\n
    \r\n }\r\n }\r\n ],\r\n \r\n preview: {\r\n template: CustomPreviewWhatsApp,\r\n previewOf: {\r\n form: {\r\n name: `main.whatsappMessagePreview`,\r\n handleData: (data) => {\r\n if (!data) return\r\n let msgs = []\r\n let msg = {\r\n type: \"received\",\r\n content: data.name,\r\n buttons: data.options ? data.options?.split(\"|\") : []\r\n }\r\n msgs.push(msg)\r\n return msgs\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}","export default (context) => {\r\n let columns = [\r\n {\r\n Header: \"ID\",\r\n accessor: \"ID\",\r\n minWidth: 50\r\n },\r\n {\r\n Header: \"User\",\r\n accessor: \"user\",\r\n minWidth: 120\r\n },\r\n {\r\n Header: \"Date Completed\",\r\n accessor: \"dateCompleted\",\r\n isDate: true\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"col1\",\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"col2\"\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"col3\"\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"col4\"\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"col5\"\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"col6\"\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"col7\"\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"col8\"\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"col9\"\r\n },\r\n {\r\n Header: \"\",\r\n accessor: \"col10\"\r\n }\r\n ];\r\n\r\n return {\r\n config: {\r\n pageSize: 40,\r\n list: false,\r\n remap: (r) => {\r\n // hack for dynamic column names\r\n if (r.data.Results.length > 0 && r.data.Results[0].ID === -1) {\r\n // Use the first item to apply column names if needed\r\n const columnsData = r.data.Results[0]; // Get column names from the first item\r\n // const columnNames = Object.keys(columnsData); // Get column names from the first item\r\n // Exclude the first items\r\n r.data.Results = r.data.Results.slice(1);\r\n\r\n const columns = context.state.columns\r\n let remove = [];\r\n\r\n columns.map((item) => {\r\n if (item.accessor && item.accessor.startsWith(\"col\")) {\r\n item.Header = columnsData[item.accessor];\r\n if (item.Header === '') remove.push(item.accessor);\r\n }\r\n return item\r\n })\r\n\r\n for (let i = columns.length - 1; i >= 0; i--) {\r\n if (remove.includes(columns[i].accessor)) {\r\n columns.splice(i, 1); // Remove the item at index i\r\n }\r\n }\r\n\r\n context.setState({ columns: columns });\r\n\r\n }\r\n return r\r\n }\r\n },\r\n\r\n actions: {\r\n create: false,\r\n edit: false,\r\n delete: true,\r\n print: { remap: true },\r\n export: { remap: true },\r\n search: true\r\n },\r\n\r\n filter: {\r\n fields: [\r\n {\r\n type: \"daterange\",\r\n range: {\r\n value: 0\r\n }\r\n },\r\n {\r\n name: \"fetchId\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"Select a Looc flow\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: false,\r\n path: \"/admFetch/get\",\r\n withImg: false\r\n }\r\n },\r\n {\r\n name: \"fetchInputId\",\r\n value: 0,\r\n type: \"select\",\r\n label: \"Search by input\",\r\n parent: \"fetchId\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: false,\r\n path: () => { return '/admFetchInput/get?fetchId=' + context.state.formFilter.fetchId },\r\n withImg: false\r\n },\r\n renderIf: (ctx) => ctx.state.fetchId > 0\r\n },\r\n {\r\n name: \"userId\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Customer\",\r\n opts: {\r\n style: 'float-label',\r\n searchOnline: true,\r\n path: \"/admStaff/get\",\r\n withImg: true\r\n }\r\n },\r\n\r\n /* {\r\n name: \"status\",\r\n value: \"\",\r\n type: \"select\",\r\n label: \"Estado\",\r\n opts: {\r\n style: 'float-label',\r\n items: [\r\n {\r\n value: 1,\r\n label: \"Confirmados\"\r\n },\r\n {\r\n value: 0,\r\n label: \"Pendientes\"\r\n }\r\n ]\r\n }\r\n }*/\r\n ],\r\n buttons: [\r\n {\r\n label: 'Filter',\r\n renderIf: (ctx) => { return ctx.state.fetchId > 0 && (ctx.state.from || ctx.state.to || Number.isInteger(ctx.state.userId)) },\r\n onClick: (ctx) => { ctx.btnAction('filter') }\r\n }\r\n ]\r\n },\r\n\r\n columns: columns\r\n }\r\n}"],"sourceRoot":""}