cronapp-framework-mobile-js
Version:
Javascript library for CronApp's projects
1 lines • 10 kB
JavaScript
var cronappModules=["ionic","ui.router","ngResource","ngSanitize","custom.controllers","custom.services","ui.bootstrap","report.services","datasourcejs","pascalprecht.translate","tmh.dynamicLocale","ui-notification","ngFileUpload","angularMoment","upload.services","ngAria","ngCookies","sync.service"];window.customModules&&(cronappModules=cronappModules.concat(window.customModules)),window.paceOptions={document:!0,eventLag:!0,restartOnPushState:!0,restartOnRequestAfter:!0,ajax:{trackMethods:["PUT","POST","GET"]}};var app=(window,angular.module("MyApp",cronappModules).constant("LOCALES",{locales:{pt_br:"Portugues (Brasil)",en_us:"English"},preferredLocale:"pt_br"}).run(["$ionicPlatform",function(e){e.ready((function(){setTimeout((function(){navigator.splashscreen&&navigator.splashscreen.hide()}),100),window.cordova&&window.cordova.plugins&&window.cordova.plugins.Keyboard&&(cordova.plugins.Keyboard.hideKeyboardAccessoryBar(!0),cordova.plugins.Keyboard.disableScroll(!0)),window.StatusBar&&StatusBar.styleDefault(),ionic.Platform.is("ios")&&window.addEventListener("orientationchange",(function(){var e=document.body.style.marginTop;document.body.style.marginTop="1px",setTimeout((function(){document.body.style.marginTop=e}),100)}),!1)}))}]).config(["$httpProvider","$compileProvider",function(e,o){o.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|blob|ionic):|data:image/);var t=["$q","$rootScope","$injector",function(e,o,t){return{request:function(e){if(!window.isUsingCookie()){var o=JSON.parse(localStorage.getItem("_u"));o&&o.token&&(e.headers["X-AUTH-TOKEN"]=o.token)}return e.headers["X-Requested-With"]="XMLHttpRequest",e},responseError:function(o){if(500===o.status){let e=t.get("$state"),o=t.get("$http"),n=t.get("Notification");window.refreshToken(n,o,(()=>{}),(o=>{404!==o.status&&(localStorage.removeItem("_u"),e.go("login"))}))}return e.reject(o)}}}];e.interceptors.push(t)}]).config(["$stateProvider","$urlRouterProvider","$ionicConfigProvider",function(e,o,t){t.navBar.alignTitle("center"),t.tabs.position("bottom"),ionic.Platform.isIOS()&&t.scrolling.jsScrolling(!1)}]).config(["$stateProvider","$urlRouterProvider","NotificationProvider",function(e,o,t){t.setOptions({delay:5e3,startTop:20,startRight:10,verticalSpacing:20,horizontalSpacing:20,positionX:"right",positionY:"top"}),window.customStateProvider?window.customStateProvider(e):e.state("main",{url:"",cache:!1,controller:"InitialController",templateUrl:function(e){return navigator.app,""}}).state("login",{url:"/app/login",cache:!1,controller:"LoginController",templateUrl:"views/login.view.html"}).state("publicRoot",{url:"/public/{name:.*}",cache:!1,controller:"PageController",templateUrl:function(e){return"views/public/"+e.name+".view.html"}}).state("public",{url:"/app/public",cache:!1,controller:"PublicMenuController",templateUrl:"node_modules/cronapp-framework-mobile-js/components/templates/public.menu.template.html"}).state("reset-password",{url:"/app/public/reset-password",cache:!1,controller:"ResetPasswordController",templateUrl:"views/public/reset-password.view.html"}).state("signup",{url:"/app/public/signup",cache:!1,controller:"SignupController",templateUrl:"views/public/signup.view.html"}).state("public.pages",{url:"/{name:.*}",cache:!1,views:{menuContent:{controller:"PageController",templateUrl:function(e){return"views/public/"+e.name+".view.html"}}}}).state("app",{url:"/app/logged",cache:!1,controller:"MenuController",templateUrl:"node_modules/cronapp-framework-mobile-js/components/templates/menu.template.html"}).state("app.home",{url:"/home",cache:!1,views:{menuContent:{controller:"PageController",templateUrl:"views/logged/home.view.html"}},resolve:{data:["$translate",function(e){e.refresh()}]}}).state("app.pages",{url:"/{name:.*}",cache:!1,views:{menuContent:{controller:"PageController",templateUrl:function(e){return"views/logged/"+e.name+".view.html"}}}}).state("404",{cache:!1,controller:"PageController",templateUrl:function(e){return"views/error/404.view.html"}}).state("403",{cache:!1,controller:"PageController",templateUrl:function(e){return"views/error/403.view.html"}}),o.otherwise("/error/404")}]).config(["$translateProvider","tmhDynamicLocaleProvider",function(e,o){e.uniformLanguageTag("bcp47"),e.useLoader("customTranslateLoader",{files:[{prefix:"i18n/locale_",suffix:".json"},{prefix:"node_modules/cronapp-framework-mobile-js/i18n/locale_",suffix:".json"}]}),e.registerAvailableLanguageKeys(window.translations.localesKeys,window.translations.localesRef);var t=(window.navigator.userLanguage||window.navigator.language).replace("-","_").toLowerCase();e.use(t),e.useSanitizeValueStrategy("escaped"),o.localeLocationPattern("node_modules/angular-i18n/angular-locale_{{locale}}.js")}]).config(["$sceProvider",function(e){e.enabled(!1)}]).directive("crnValue",["$parse",function(e){return{restrict:"A",require:"^ngModel",link:function(o,t,n,r){var i;i=n.value?n.value:e(n.crnValue)(o),t.attr("data-evaluated",JSON.stringify(i)),t.bind("click",(function(e){o.$apply(function(){r.$setViewValue(i),$(t).data("changed",!0)}.bind(t))})),o.$watch((function(){return r.$modelValue}),(function(e,o){if(e!==o){var n=t.attr("data-evaluated"),r=$(t).data("changed");$(t).data("changed",!1),r||(e&&JSON.stringify(""+e)==n?$(t)[0].children[0].checked=!0:$(t)[0].children[0].checked=!1)}}))}}}]).decorator("$xhrFactory",["$delegate","$injector",function(e,o){return function(t,n){var r=e(t,n),i=o.get("$http"),a=i.pendingRequests[i.pendingRequests.length-1];return angular.isFunction(a.onProgress)&&r.upload.addEventListener("progress",a.onProgress),r}}]).run(["$rootScope","$state","$stateParams","$timeout","$injector",function(e,o,t,n,r){e.$state=o,e.$stateParams=t,e.$on("$stateChangeError",(function(){if(arguments.length>=6){var e=arguments[5];404!==e.status&&403!==e.status&&401!==e.status||(localStorage.removeItem("_u"),o.go("login").catch((function(){o.go("404")})))}else o.go("404")})),e.$on("$stateChangeSuccess",(function(t,i,a){let l=r.get("$http"),s=r.get("Notification");app.isPublicRoute(i)||window.refreshToken(s,l,(()=>{}),(e=>{e&&404!==e.status&&(localStorage.removeItem("_u"),o.go("login"))})),n((()=>{let o=$("ion-view ion-header-bar .title").last().text(),t=window.location.hash?window.location.hash.split("/"):"",n=t?t[t.length-1]:"",r=window.camelCaseToSentenceCase(window.toCamelCase(n));e.ionViewTitle=o||r||i.name})),setTimeout((function(){$($(".icon.ion-plus-round").parent()).off("click"),$($(".icon.ion-plus-round").parent()).on("click",(function(){$("[required]").removeClass("input-validation-error"),$("input:invalid").removeClass("input-validation-error")})),$($(".icon.ion-checkmark").parent()).off("click"),$($(".icon.ion-checkmark").parent()).on("click",(function(){$("[required].ng-invalid-required, [required].ng-invalid, [required].ng-empty").addClass("input-validation-error"),$("input:invalid").addClass("input-validation-error")})),$("input").off("keydown"),$("input").on("keydown",(function(){$(this).removeClass("input-validation-error")}))}),300)})),setInterval((()=>$('ion-nav-view[name="menuContent"] .button.button-clear.hide').removeClass("hide")),300)}]));app.userEvents={},app.config={},app.config.datasourceApiVersion=2,app.config.defaultRoute="/app",app.publicRoutes=["publicRoot","public","public.pages","signup","main","reset-password"],app.isPublicRoute=e=>app.publicRoutes.includes(e.name),app.bindScope=function(e,o){var t={};for(var n in o)"string"==typeof o[n]||"boolean"==typeof o[n]?t[n]=o[n]:"function"==typeof o[n]?t[n]=o[n].bind(e):t[n]=app.bindScope(e,o[n]);return t},app.registerEventsCronapi=function(e,o,t,n){for(var r in app.userEvents)e[r]=app.userEvents[r].bind(e);e.vars={},e.$evt=$evt||void 0;try{cronapi&&(e.cronapi=app.bindScope(e,cronapi),e.cronapi.$scope=e,e.cronapi.$scope.$ionicModal=t,e.cronapi.$scope.$ionicLoading=n,e.safeApply=safeApply,o&&(e.cronapi.$translate=o))}catch(e){console.info("Not loaded cronapi functions"),console.info(e)}try{blockly&&(blockly.cronapi=cronapi,e.blockly=app.bindScope(e,blockly))}catch(e){console.info("Not loaded blockly functions"),console.info(e)}},app.copyContext=function(e,o,t){if(e)for(var n in e)o[n]?o[n+t]=e[n]:o[n]=e[n]},app.factory("customTranslateLoader",["$http","$q",function(e,o){return function(t){if(!(t&&(angular.isArray(t.files)||angular.isString(t.prefix)&&angular.isString(t.suffix))))throw new Error("Couldn't load static files, no files and prefix or suffix specified!");t.files||(t.files=[{prefix:t.prefix,suffix:t.suffix}]);for(var n=function(n){if(!n||!angular.isString(n.prefix)||!angular.isString(n.suffix))throw new Error("Couldn't load static file, no prefix or suffix specified!");var r=o.defer();return e(angular.extend({url:[n.prefix,t.key,n.suffix].join(""),method:"GET",params:""},t.$http)).success((function(e){r.resolve(e)})).error((function(){r.resolve({})})),r.promise},r=o.defer(),i=[],a=t.files.length,l=0;l<a;l++)i.push(n({prefix:t.files[l].prefix,key:t.key,suffix:t.files[l].suffix}));return o.all(i).then((function(e){for(var o=e.length,t={},n=0;n<o;n++)for(var i in e[n])t[i]=e[n][i];r.resolve(t)}),(function(e){r.reject(e)})),r.promise}}]);var getRequestData=e=>{let o=e||{};return e.data&&"object"==typeof e.data&&(o=e.data),o};window.safeApply=function(e){var o=this.$root.$$phase;"$apply"==o||"$digest"==o?e&&"function"==typeof e&&e():this.$apply(e)},window.toCamelCase=function(e){return e.toLowerCase().replace(/[-_\.]+/g," ").replace(/[^\w\s]/g,"").replace(/ (.)/g,(function(e){return e.toUpperCase()})).replace(/ /g,"")},window.camelCaseToSentenceCase=function(e){let o=e.replace(/([A-Z])/g," $1");return o.charAt(0).toUpperCase()+o.slice(1)},window.refreshToken=function(e,o,t,n){window.hostApp?o({method:"GET",url:window.hostApp+"auth/refresh"}).success((function(r,i,a,l){console.log("revive :",new Date(r.expires)),window.isUsingCookie()&&delete r.token,localStorage.setItem("_u",JSON.stringify(r)),setTimeout((function(){window.refreshToken(e,o,t,n)}),18e5),t()})).error((function(e){n(e)})):e.error("HostApp is required to refresh token!")};