cronapp-framework-mobile-js 2.9.3 → 2.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/crn-QRCode.components.json +1 -0
- package/components/crn-datasource.components.json +7 -0
- package/components/crn-enterprise-combobox.components.json +7 -0
- package/components/crn-infinite-scroll.components.json +1 -4
- package/components/templates/advanced.list.designtime.html +0 -3
- package/dist/components/templates/advanced.list.designtime.html +1 -3
- package/dist/js/app.authentication.js +1 -1
- package/dist/js/controllers.authentication.js +1 -1
- package/dist/js/directives.js +1 -1
- package/js/app.authentication.js +2 -1
- package/js/controllers.authentication.js +6 -3
- package/js/directives.js +4 -0
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"template": "<qr ng-model=\"vars.QR${RANDOM}\" ><div> </div> </qr>",
|
|
13
13
|
"designTimeHTML": "<img alt=\"qr-code\" style=\"height: 100%;width:100%;min-height:100%; min-width:100%;\" src=\"node_modules/cronapp-framework-mobile-js/img/qr-code.png\"/>",
|
|
14
14
|
"designTimeSelector": "div",
|
|
15
|
+
"designTimeDynamic": true,
|
|
15
16
|
"properties": {
|
|
16
17
|
"id": {
|
|
17
18
|
"order": 3
|
|
@@ -176,6 +176,13 @@
|
|
|
176
176
|
"removable": true,
|
|
177
177
|
"type": "event",
|
|
178
178
|
"global": true
|
|
179
|
+
},
|
|
180
|
+
"offline": {
|
|
181
|
+
"type": "logic",
|
|
182
|
+
"displayName_pt_BR": "Suporte a dados offline",
|
|
183
|
+
"displayName_en_US": "Offline data support",
|
|
184
|
+
"removable": false,
|
|
185
|
+
"global": true
|
|
179
186
|
}
|
|
180
187
|
}
|
|
181
188
|
}
|
|
@@ -25,6 +25,13 @@
|
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
"childrenProperties": [
|
|
28
|
+
{
|
|
29
|
+
"name": "no-results-message",
|
|
30
|
+
"selector": "cron-select",
|
|
31
|
+
"displayName_pt_BR": "Texto quando não tem resultados",
|
|
32
|
+
"displayName_en_US": "Text when there are no results",
|
|
33
|
+
"type": "text"
|
|
34
|
+
},
|
|
28
35
|
{
|
|
29
36
|
"name": "ng-change",
|
|
30
37
|
"selector": "cron-select",
|
|
@@ -9,14 +9,11 @@
|
|
|
9
9
|
"LAYOUTS", "LISTS"
|
|
10
10
|
],
|
|
11
11
|
"template": "<cron-infinite-scroll crn-datasource=\"\"></cron-infinite-scroll>",
|
|
12
|
-
"designTimeHTML": "<img alt=\"chart\" style=\"height:
|
|
12
|
+
"designTimeHTML": "<img alt=\"chart\" style=\"height: 20px;\" src=\"node_modules/cronapp-framework-mobile-js/img/cron-icon/crn-infinite-scroll.svg\"/>",
|
|
13
13
|
"designTimeSelector": "cron-infinite-scroll",
|
|
14
14
|
"properties": {
|
|
15
15
|
"id": {
|
|
16
16
|
"order": 1
|
|
17
|
-
},
|
|
18
|
-
"class": {
|
|
19
|
-
"order": 9999
|
|
20
17
|
}
|
|
21
18
|
},
|
|
22
19
|
"childrenProperties": [
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
<script design-time-script="true">
|
|
28
|
-
console.log(dsScope)
|
|
29
28
|
dsScope.attrs.options = dsScope.attrs.options || {'allowPaging': true, 'editable': 'inline', 'columns': []};
|
|
30
29
|
if (dsScope.attrs.options.columns) {
|
|
31
30
|
for (let item of dsScope.attrs.options.columns) {
|
|
@@ -42,8 +41,6 @@
|
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
|
-
|
|
46
44
|
dsScope.options = dsScope.attrs.options;
|
|
47
|
-
|
|
48
45
|
</script>
|
|
49
46
|
</div>
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
<div ng-init="attrs.options = attrs.options || {'allowPaging': true, 'editable': 'inline', 'columns': []};"><div class="item item-input-inset" ng-if="attrs.options.searchTemplate === undefined || attrs.options.searchTemplate.length > 0"><div class="item-input-wrapper"><i class="icon ion-search placeholder-icon"></i> <input aria-label="{'SEARCH'|translate}}" type="text" placeholder="{{'SEARCH'|translate}}" class="ng-pristine ng-untouched ng-valid ng-empty"></div></div><ion-list type="" can-swipe="listCanSwipe" class="disable-user-behavior"><div class="list"><ion-item class="item item-complex item-right-editable {{attrs.options.image?'item-avatar-left':''}}"><div class="item-content" ng-init="attrs.imageDefined = false"><img ng-if="attrs.options.image" alt="Thumbnail" src="node_modules/cronapp-framework-mobile-js/img/user.svg"><div class="text-left"><h2 ng-if="attrs.options.text0" class="ng-binding">{{attrs.options.text0.headerText || attrs.options.text0.field}}</h2><p ng-if="attrs.options.text1" lass="dark ng-binding">{{attrs.options.text1.headerText || attrs.options.text1.field}}</p></div></div></ion-item></div></ion-list><script design-time-script="true">
|
|
2
|
-
dsScope.attrs.options = dsScope.attrs.options || {'allowPaging': true, 'editable': 'inline', 'columns': []};
|
|
1
|
+
<div ng-init="attrs.options = attrs.options || {'allowPaging': true, 'editable': 'inline', 'columns': []};"><div class="item item-input-inset" ng-if="attrs.options.searchTemplate === undefined || attrs.options.searchTemplate.length > 0"><div class="item-input-wrapper"><i class="icon ion-search placeholder-icon"></i> <input aria-label="{'SEARCH'|translate}}" type="text" placeholder="{{'SEARCH'|translate}}" class="ng-pristine ng-untouched ng-valid ng-empty"></div></div><ion-list type="" can-swipe="listCanSwipe" class="disable-user-behavior"><div class="list"><ion-item class="item item-complex item-right-editable {{attrs.options.image?'item-avatar-left':''}}"><div class="item-content" ng-init="attrs.imageDefined = false"><img ng-if="attrs.options.image" alt="Thumbnail" src="node_modules/cronapp-framework-mobile-js/img/user.svg"><div class="text-left"><h2 ng-if="attrs.options.text0" class="ng-binding">{{attrs.options.text0.headerText || attrs.options.text0.field}}</h2><p ng-if="attrs.options.text1" lass="dark ng-binding">{{attrs.options.text1.headerText || attrs.options.text1.field}}</p></div></div></ion-item></div></ion-list><script design-time-script="true">dsScope.attrs.options = dsScope.attrs.options || {'allowPaging': true, 'editable': 'inline', 'columns': []};
|
|
3
2
|
if (dsScope.attrs.options.columns) {
|
|
4
3
|
for (let item of dsScope.attrs.options.columns) {
|
|
5
4
|
if (item.visible && item.type == 'image' && !dsScope.attrs.options.image) {
|
|
@@ -15,5 +14,4 @@
|
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
}
|
|
18
|
-
|
|
19
17
|
dsScope.options = dsScope.attrs.options;</script></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
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"];window.customModules&&(cronappModules=cronappModules.concat(window.customModules)),window.paceOptions={document:!0,eventLag:!0,restartOnPushState:!0,restartOnRequestAfter:!0,ajax:{trackMethods:["PUT","POST","GET"]}};var app=function(){return angular.module("MyApp",cronappModules).constant("LOCALES",{locales:{pt_br:"Portugues (Brasil)",en_us:"English"},preferredLocale:"pt_br"}).run(["$ionicPlatform",function(a){a.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 a=document.body.style.marginTop;document.body.style.marginTop="1px",setTimeout(function(){document.body.style.marginTop=a},100)},!1)})}]).config(["$httpProvider","$compileProvider",function(a,b){b.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|blob|ionic):|data:image/);a.interceptors.push(["$q","$rootScope","$injector",function(a,b,c){return{request:function(a){var b=JSON.parse(localStorage.getItem("_u"));return b&&b.token&&(a.headers["X-AUTH-TOKEN"]=b.token,window.uToken=b.token),a},responseError:function(b){if(500===b.status){let a=c.get("$state"),b=c.get("$http"),d=c.get("Notification");window.refreshToken(d,b,()=>{},b=>{404!==b.status&&(localStorage.removeItem("_u"),a.go("login"))})}return a.reject(b)}}}])}]).config(["$stateProvider","$urlRouterProvider","$ionicConfigProvider",function(a,b,c){c.navBar.alignTitle("center"),c.tabs.position("bottom"),ionic.Platform.isIOS()&&c.scrolling.jsScrolling(!1)}]).config(["$stateProvider","$urlRouterProvider","NotificationProvider",function(a,b,c){c.setOptions({delay:5e3,startTop:20,startRight:10,verticalSpacing:20,horizontalSpacing:20,positionX:"right",positionY:"top"}),window.customStateProvider?window.customStateProvider(a):a.state("main",{url:"",cache:!1,controller:"InitialController",templateUrl:function(){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(a){return"views/public/"+a.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(a){return"views/public/"+a.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(a){a.refresh()}]}}).state("app.pages",{url:"/{name:.*}",cache:!1,views:{menuContent:{controller:"PageController",templateUrl:function(a){return"views/logged/"+a.name+".view.html"}}}}).state("404",{cache:!1,controller:"PageController",templateUrl:function(){return"views/error/404.view.html"}}).state("403",{cache:!1,controller:"PageController",templateUrl:function(){return"views/error/403.view.html"}}),b.otherwise("/error/404")}]).config(["$translateProvider","tmhDynamicLocaleProvider",function(a,b){a.uniformLanguageTag("bcp47"),a.useLoader("customTranslateLoader",{files:[{prefix:"i18n/locale_",suffix:".json"},{prefix:"node_modules/cronapp-framework-mobile-js/i18n/locale_",suffix:".json"}]}),a.registerAvailableLanguageKeys(window.translations.localesKeys,window.translations.localesRef);var c=(window.navigator.userLanguage||window.navigator.language).replace("-","_").toLowerCase();a.use(c),a.useSanitizeValueStrategy("escaped"),b.localeLocationPattern("node_modules/angular-i18n/angular-locale_{{locale}}.js")}]).config(["$sceProvider",function(a){a.enabled(!1)}]).directive("crnValue",["$parse",function(a){return{restrict:"A",require:"^ngModel",link:function(b,c,d,e){var f;f=d.value?d.value:a(d.crnValue)(b),c.attr("data-evaluated",JSON.stringify(f)),c.bind("click",function(){b.$apply(function(){e.$setViewValue(f),$(c).data("changed",!0)}.bind(c))}),b.$watch(function(){return e.$modelValue},function(a,b){if(a!==b){var d=c.attr("data-evaluated"),e=$(c).data("changed");$(c).data("changed",!1),e||(a&&JSON.stringify(""+a)==d?$(c)[0].children[0].checked=!0:$(c)[0].children[0].checked=!1)}})}}}]).decorator("$xhrFactory",["$delegate","$injector",function(a,b){return function(c,d){var e=a(c,d),f=b.get("$http"),g=f.pendingRequests[f.pendingRequests.length-1];return angular.isFunction(g.onProgress)&&e.upload.addEventListener("progress",g.onProgress),e}}]).run(["$rootScope","$state","$stateParams","$timeout","$injector",function(a,b,c,d,e){a.$state=b,a.$stateParams=c,a.$on("$stateChangeError",function(){if(6<=arguments.length){var a=arguments[5];(404===a.status||403===a.status||401===a.status)&&(localStorage.removeItem("_u"),b.go("login").catch(function(){b.go("404")}))}else b.go("404")}),a.$on("$stateChangeSuccess",function(c,f){let g=e.get("$http"),h=e.get("Notification");app.isPublicRoute(f)||window.refreshToken(h,g,()=>{},a=>{404!==a.status&&(localStorage.removeItem("_u"),b.go("login"))}),d(()=>{let b=$("ion-view ion-header-bar .title").last().text(),c=window.location.hash?window.location.hash.split("/"):"",d=c?c[c.length-1]:"",e=window.camelCaseToSentenceCase(window.toCamelCase(d));a.ionViewTitle=b||e||f.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)}])}(window);app.userEvents={},app.config={},app.config.datasourceApiVersion=2,app.config.defaultRoute="/app",app.publicRoutes=["publicRoot","public","public.pages","signup","main","reset-password"],app.isPublicRoute=a=>app.publicRoutes.includes(a.name),app.bindScope=function(a,b){var c={};for(var d in b)c[d]="string"==typeof b[d]||"boolean"==typeof b[d]?b[d]:"function"==typeof b[d]?b[d].bind(a):app.bindScope(a,b[d]);return c},app.registerEventsCronapi=function(a,b,c,d){for(var e in app.userEvents)a[e]=app.userEvents[e].bind(a);a.vars={},a.$evt=$evt||void 0;try{cronapi&&(a.cronapi=app.bindScope(a,cronapi),a.cronapi.$scope=a,a.cronapi.$scope.$ionicModal=c,a.cronapi.$scope.$ionicLoading=d,a.safeApply=safeApply,b&&(a.cronapi.$translate=b))}catch(a){console.info("Not loaded cronapi functions"),console.info(a)}try{blockly&&(blockly.cronapi=cronapi,a.blockly=app.bindScope(a,blockly))}catch(a){console.info("Not loaded blockly functions"),console.info(a)}},app.copyContext=function(a,b,c){if(a)for(var d in a)b[d]?b[d+c]=a[d]:b[d]=a[d]},app.factory("customTranslateLoader",["$http","$q",function(a,b){return function(c){if(!c||!angular.isArray(c.files)&&(!angular.isString(c.prefix)||!angular.isString(c.suffix)))throw new Error("Couldn't load static files, no files and prefix or suffix specified!");c.files||(c.files=[{prefix:c.prefix,suffix:c.suffix}]);for(var d=function(d){if(!d||!angular.isString(d.prefix)||!angular.isString(d.suffix))throw new Error("Couldn't load static file, no prefix or suffix specified!");var e=b.defer();return a(angular.extend({url:[d.prefix,c.key,d.suffix].join(""),method:"GET",params:""},c.$http)).success(function(a){e.resolve(a)}).error(function(){e.resolve({})}),e.promise},e=b.defer(),f=[],g=c.files.length,h=0;h<g;h++)f.push(d({prefix:c.files[h].prefix,key:c.key,suffix:c.files[h].suffix}));return b.all(f).then(function(a){for(var b=a.length,c={},d=0;d<b;d++)for(var f in a[d])c[f]=a[d][f];e.resolve(c)},function(a){e.reject(a)}),e.promise}}]),window.safeApply=function(a){var b=this.$root.$$phase;"$apply"==b||"$digest"==b?a&&"function"==typeof a&&a():this.$apply(a)},window.toCamelCase=function(a){return a.toLowerCase().replace(/[-_\.]+/g," ").replace(/[^\w\s]/g,"").replace(/ (.)/g,function(a){return a.toUpperCase()}).replace(/ /g,"")},window.camelCaseToSentenceCase=function(a){let b=a.replace(/([A-Z])/g," $1");return b.charAt(0).toUpperCase()+b.slice(1)},window.refreshToken=function(a,b,c,d){window.hostApp?b({method:"GET",url:window.hostApp+"auth/refresh"}).success(function(e){console.log("revive :",new Date(e.expires)),localStorage.setItem("_u",JSON.stringify(e)),setTimeout(function(){window.refreshToken(a,b,c,d)},1800000),c()}).error(function(a){d(a)}):a.error("HostApp is required to refresh token!")};
|
|
1
|
+
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=function(){return angular.module("MyApp",cronappModules).constant("LOCALES",{locales:{pt_br:"Portugues (Brasil)",en_us:"English"},preferredLocale:"pt_br"}).run(["$ionicPlatform",function(a){a.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 a=document.body.style.marginTop;document.body.style.marginTop="1px",setTimeout(function(){document.body.style.marginTop=a},100)},!1)})}]).config(["$httpProvider","$compileProvider",function(a,b){b.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|blob|ionic):|data:image/);a.interceptors.push(["$q","$rootScope","$injector",function(a,b,c){return{request:function(a){var b=JSON.parse(localStorage.getItem("_u"));return b&&b.token&&(a.headers["X-AUTH-TOKEN"]=b.token,window.uToken=b.token),a},responseError:function(b){if(500===b.status){let a=c.get("$state"),b=c.get("$http"),d=c.get("Notification");window.refreshToken(d,b,()=>{},b=>{404!==b.status&&(localStorage.removeItem("_u"),a.go("login"))})}return a.reject(b)}}}])}]).config(["$stateProvider","$urlRouterProvider","$ionicConfigProvider",function(a,b,c){c.navBar.alignTitle("center"),c.tabs.position("bottom"),ionic.Platform.isIOS()&&c.scrolling.jsScrolling(!1)}]).config(["$stateProvider","$urlRouterProvider","NotificationProvider",function(a,b,c){c.setOptions({delay:5e3,startTop:20,startRight:10,verticalSpacing:20,horizontalSpacing:20,positionX:"right",positionY:"top"}),window.customStateProvider?window.customStateProvider(a):a.state("main",{url:"",cache:!1,controller:"InitialController",templateUrl:function(){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(a){return"views/public/"+a.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(a){return"views/public/"+a.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(a){a.refresh()}]}}).state("app.pages",{url:"/{name:.*}",cache:!1,views:{menuContent:{controller:"PageController",templateUrl:function(a){return"views/logged/"+a.name+".view.html"}}}}).state("404",{cache:!1,controller:"PageController",templateUrl:function(){return"views/error/404.view.html"}}).state("403",{cache:!1,controller:"PageController",templateUrl:function(){return"views/error/403.view.html"}}),b.otherwise("/error/404")}]).config(["$translateProvider","tmhDynamicLocaleProvider",function(a,b){a.uniformLanguageTag("bcp47"),a.useLoader("customTranslateLoader",{files:[{prefix:"i18n/locale_",suffix:".json"},{prefix:"node_modules/cronapp-framework-mobile-js/i18n/locale_",suffix:".json"}]}),a.registerAvailableLanguageKeys(window.translations.localesKeys,window.translations.localesRef);var c=(window.navigator.userLanguage||window.navigator.language).replace("-","_").toLowerCase();a.use(c),a.useSanitizeValueStrategy("escaped"),b.localeLocationPattern("node_modules/angular-i18n/angular-locale_{{locale}}.js")}]).config(["$sceProvider",function(a){a.enabled(!1)}]).directive("crnValue",["$parse",function(a){return{restrict:"A",require:"^ngModel",link:function(b,c,d,e){var f;f=d.value?d.value:a(d.crnValue)(b),c.attr("data-evaluated",JSON.stringify(f)),c.bind("click",function(){b.$apply(function(){e.$setViewValue(f),$(c).data("changed",!0)}.bind(c))}),b.$watch(function(){return e.$modelValue},function(a,b){if(a!==b){var d=c.attr("data-evaluated"),e=$(c).data("changed");$(c).data("changed",!1),e||(a&&JSON.stringify(""+a)==d?$(c)[0].children[0].checked=!0:$(c)[0].children[0].checked=!1)}})}}}]).decorator("$xhrFactory",["$delegate","$injector",function(a,b){return function(c,d){var e=a(c,d),f=b.get("$http"),g=f.pendingRequests[f.pendingRequests.length-1];return angular.isFunction(g.onProgress)&&e.upload.addEventListener("progress",g.onProgress),e}}]).run(["$rootScope","$state","$stateParams","$timeout","$injector",function(a,b,c,d,e){a.$state=b,a.$stateParams=c,a.$on("$stateChangeError",function(){if(6<=arguments.length){var a=arguments[5];(404===a.status||403===a.status||401===a.status)&&(localStorage.removeItem("_u"),b.go("login").catch(function(){b.go("404")}))}else b.go("404")}),a.$on("$stateChangeSuccess",function(c,f){let g=e.get("$http"),h=e.get("Notification");app.isPublicRoute(f)||window.refreshToken(h,g,()=>{},a=>{404!==a.status&&(localStorage.removeItem("_u"),b.go("login"))}),d(()=>{let b=$("ion-view ion-header-bar .title").last().text(),c=window.location.hash?window.location.hash.split("/"):"",d=c?c[c.length-1]:"",e=window.camelCaseToSentenceCase(window.toCamelCase(d));a.ionViewTitle=b||e||f.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)}])}(window);app.userEvents={},app.config={},app.config.datasourceApiVersion=2,app.config.defaultRoute="/app",app.publicRoutes=["publicRoot","public","public.pages","signup","main","reset-password"],app.isPublicRoute=a=>app.publicRoutes.includes(a.name),app.bindScope=function(a,b){var c={};for(var d in b)c[d]="string"==typeof b[d]||"boolean"==typeof b[d]?b[d]:"function"==typeof b[d]?b[d].bind(a):app.bindScope(a,b[d]);return c},app.registerEventsCronapi=function(a,b,c,d){for(var e in app.userEvents)a[e]=app.userEvents[e].bind(a);a.vars={},a.$evt=$evt||void 0;try{cronapi&&(a.cronapi=app.bindScope(a,cronapi),a.cronapi.$scope=a,a.cronapi.$scope.$ionicModal=c,a.cronapi.$scope.$ionicLoading=d,a.safeApply=safeApply,b&&(a.cronapi.$translate=b))}catch(a){console.info("Not loaded cronapi functions"),console.info(a)}try{blockly&&(blockly.cronapi=cronapi,a.blockly=app.bindScope(a,blockly))}catch(a){console.info("Not loaded blockly functions"),console.info(a)}},app.copyContext=function(a,b,c){if(a)for(var d in a)b[d]?b[d+c]=a[d]:b[d]=a[d]},app.factory("customTranslateLoader",["$http","$q",function(a,b){return function(c){if(!c||!angular.isArray(c.files)&&(!angular.isString(c.prefix)||!angular.isString(c.suffix)))throw new Error("Couldn't load static files, no files and prefix or suffix specified!");c.files||(c.files=[{prefix:c.prefix,suffix:c.suffix}]);for(var d=function(d){if(!d||!angular.isString(d.prefix)||!angular.isString(d.suffix))throw new Error("Couldn't load static file, no prefix or suffix specified!");var e=b.defer();return a(angular.extend({url:[d.prefix,c.key,d.suffix].join(""),method:"GET",params:""},c.$http)).success(function(a){e.resolve(a)}).error(function(){e.resolve({})}),e.promise},e=b.defer(),f=[],g=c.files.length,h=0;h<g;h++)f.push(d({prefix:c.files[h].prefix,key:c.key,suffix:c.files[h].suffix}));return b.all(f).then(function(a){for(var b=a.length,c={},d=0;d<b;d++)for(var f in a[d])c[f]=a[d][f];e.resolve(c)},function(a){e.reject(a)}),e.promise}}]),window.safeApply=function(a){var b=this.$root.$$phase;"$apply"==b||"$digest"==b?a&&"function"==typeof a&&a():this.$apply(a)},window.toCamelCase=function(a){return a.toLowerCase().replace(/[-_\.]+/g," ").replace(/[^\w\s]/g,"").replace(/ (.)/g,function(a){return a.toUpperCase()}).replace(/ /g,"")},window.camelCaseToSentenceCase=function(a){let b=a.replace(/([A-Z])/g," $1");return b.charAt(0).toUpperCase()+b.slice(1)},window.refreshToken=function(a,b,c,d){window.hostApp?b({method:"GET",url:window.hostApp+"auth/refresh"}).success(function(e){console.log("revive :",new Date(e.expires)),localStorage.setItem("_u",JSON.stringify(e)),setTimeout(function(){window.refreshToken(a,b,c,d)},1800000),c()}).error(function(a){d(a)}):a.error("HostApp is required to refresh token!")};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(){angular.module("custom.controllers",[]),app.controller("LoginController",["$scope","$http","$location","$rootScope","$window","$state","$translate","Notification","ReportService","$ionicLoading","$timeout","$stateParams","$ionicModal","$cookies",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(b){"undefined"!=typeof Storage&&localStorage.setItem("_u",JSON.stringify(b)),f.go("app.home"),a.blockly&&a.blockly.events&&a.blockly.events.onLogin&&a.blockly.events.onLogin instanceof Function&&a.blockly.events.onLogin()}function p(a){let b;if(null!==a&&a.message){let c=JSON.parse(a.message);b=c.exception}else b="string"==typeof a?a:g.instant("General.ErrorNotSpecified");h.error(b)}d.refreshToken=window.refreshToken,app.registerEventsCronapi(a,g,m,j),d.http=b,a.Notification=h,a.params=l,d.getReport=function(a,b,c){i.openReport(a,b,c)};let q=c.search();for(let o in q)q.hasOwnProperty(o)&&(a.params[o]=q[o]);for(let o in app.userEvents)app.userEvents.hasOwnProperty(o)&&(a[o]=app.userEvents[o].bind(a));if(a.redirectToLogin=function(){localStorage.setItem("redir_mob",!0),e.location.href="/login"},a.biometricAuthentication=()=>"true"==(document.querySelector("meta[name=\"biometric-authentication\"]")||{}).content+"",a.autoLogin=function(){const c=localStorage.getItem("_u");c&&JSON.parse(c).token&&(a.biometricAuthentication()?document.addEventListener("deviceready",()=>{window.Fingerprint&&window.Fingerprint.isAvailable(()=>{window.Fingerprint.show(()=>{window.refreshToken(h,b,()=>f.go("app.home"),()=>localStorage.removeItem("_u"))},a=>{"biometric_success"===a?window.refreshToken(h,b,()=>f.go("app.home"),()=>localStorage.removeItem("_u")):p({message:a.message})})},()=>{console.error("Biometric Authentication is not available in this device")})},!1):window.refreshToken(h,b,function(){f.go("app.home")},function(){localStorage.removeItem("_u")}))},a.autoLogin(),n.get("_u")){if(!localStorage.getItem("_u")){var r=decodeURIComponent(n.get("_u"));localStorage.setItem("_u",r)}f.go("app.home")}a.user={username:"",password:""},a.message={},a.login=function(c,d,e){a.message.error=void 0;let f={username:c?c:a.user.username,password:d?d:a.user.password},g={"Content-Type":"application/x-www-form-urlencoded"};e&&(g["X-AUTH-TOKEN"]=e),window.hostApp?b({method:"POST",url:window.hostApp+"auth",data:$.param(f),headers:g}).success(o).error(p):h.error("HostApp is required!")},d.infiniteReached=function(){};try{let b=$controller("AfterLoginController",{$scope:a});app.copyContext(b,this,"AfterLoginController")}catch(a){}k(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterLoginRender&&a.blockly.events.afterLoginRender instanceof Function&&a.blockly.events.afterLoginRender()})}]),app.controller("HomeController",["$scope","$http","$rootScope","$state","$timeout","$translate","Notification","$ionicHistory","$ionicModal","$ionicLoading","$stateParams","$location","$controller","UploadService","ReportService",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){app.registerEventsCronapi(a,f,i,j),c.http=b,c.Notification=g,c.UploadService=n,a.params=k,c.getReport=function(a,b,c){o.openReport(a,b,c)};let p=l.search();for(let q in p)p.hasOwnProperty(q)&&(a.params[q]=p[q]);for(let p in app.userEvents)app.userEvents.hasOwnProperty(p)&&(a[p]=app.userEvents[p].bind(a));c.session=localStorage._u?JSON.parse(localStorage._u):null,c.session?c.session.token&&window.refreshToken(g,b,function(){},c.logout):!a.ignoreAuth&&("undefined"!=typeof Storage&&sessionStorage.removeItem("_u"),d.go("login"));try{var q=m("AfterHomeController",{$scope:a});app.copyContext(q,this,"AfterHomeController")}catch(a){}e(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterHomeRender&&a.blockly.events.afterHomeRender instanceof Function&&a.blockly.events.afterHomeRender()})}]),app.controller("PublicController",["$controller","$scope",function(a,b){b.ignoreAuth=!0,angular.extend(this,a("HomeController",{$scope:b}))}]),app.controller("SignupController",["$scope","$translate","$ionicModal","$ionicLoading",function(a,b,c,d){app.registerEventsCronapi(a,b,c,d),a.Notification=Notification,a.cronapi.screen.changeValueOfField("vars.signupEmail",""),a.cronapi.screen.changeValueOfField("vars.signupUsername",""),a.cronapi.screen.changeValueOfField("vars.signupPassword",""),a.cronapi.screen.changeValueOfField("vars.signupConfirmPassword","")}]),app.controller("SignupController",["$scope","$stateParams","Notification","$location","$http","$rootScope","$translate","$ionicModal","$ionicLoading","$timeout","UploadService","ReportService",function(a,b,c,d,e,f,g,h,i,j,k){for(let l in app.registerEventsCronapi(a,g,h,i),f.http=e,f.Notification=c,a.params=b,f.$http=e,f.UploadService=k,a.listCanSwipe=!0,app.userEvents)a[l]=app.userEvents[l].bind(a);a.cronapi.screen.changeValueOfField("vars.signupEmail",""),a.cronapi.screen.changeValueOfField("vars.signupUsername",""),a.cronapi.screen.changeValueOfField("vars.signupPassword",""),a.cronapi.screen.changeValueOfField("vars.signupConfirmPassword","")}]),app.controller("ResetPasswordController",["$scope","$state","$http","Notification","$translate",function(a,b,c,d,e){a.resetPasswordWithOTP=function(a){if(!a||!a.otp||!a.newPassword||!a.newPasswordConfirmation)return void d.error(e.instant("AllFieldsRequired"));const f=a.otp.replaceAll(" ",""),g=a.newPassword,h=a.newPasswordConfirmation,i=localStorage.getItem("otpToken");return i?void(window.hostApp&&g===h?c({method:"POST",url:window.hostApp+"auth/confirm-reset-password",data:$.param({password:g,otp:f}),headers:{"Content-Type":"application/x-www-form-urlencoded","X-AUTH-TOKEN":i}}).success(()=>{a.otp="",a.newPassword="",a.passwordConfirmation="",b.go("login").then(()=>{d.info(e.instant("ResetPasswordSuccess"))})}).error(a=>{d.error(a.message),console.error(a)}):d.error(e.instant("ResetPasswordDoesNotMatch"))):void d.error(e.instant("OTPInvalid"))}}]),app.controller("MenuController",["$scope","$http","$rootScope","$state","$timeout","$translate","Notification","$ionicHistory","$ionicModal","$ionicLoading","$cookies",function(a,b,c,d,e,f,g,h,i,j,k){for(let l in app.registerEventsCronapi(a,f,i,j),c.http=b,a.Notification=g,a.isExtendedFromPublic||(a.folder="logged"),app.userEvents)a[l]=app.userEvents[l].bind(a);a.ignoreAuth||(a.openChangePassword=function(){a.modal.modelEl?a.modal.show():b({url:"views/logged/_changepassword.view.html"}).then(function(b){a.modal=i.fromTemplate($(b.data).last().text(),{scope:a,animation:"slide-in-up"}),a.modal.show()})},a.closeChangePassword=function(){a.modal.hide()},c.logout=function(){const a=a=>{if(c.session={},k.remove("_u",{path:"/"}),"undefined"!=typeof Storage&&localStorage.removeItem("_u"),a&&a.logoutUri){const b=cordova.InAppBrowser.open(a.logoutUri,"_blank","location=no,footer=yes,zoom=no,enableViewportScale=yes,hidenavigationbuttons=yes,clearcache=yes"),c=e=>{e.url===a.appBaseUrl&&(b.removeEventListener("loadstart",c),b.close(),d.go("login"))};b.addEventListener("loadstart",c)}else d.go("login")};b({method:"GET",url:window.hostApp+"logout",headers:{"Content-Type":"application/json"}}).success(a).error(a)}),a.http({method:"GET",url:"views/"+a.folder+"/menu.view.html"}).then(function(b){0<$(b.data).find("ion-nav-bar").length?(a.isOldMenu=!0,0<$(document).find("ion-header-bar").length&&$(document).find("ion-nav-bar").show()):a.isOldMenu=!1})}]),app.controller("PublicMenuController",["$controller","$scope",function(a,b){b.folder="public",b.isExtendedFromPublic=!0,angular.extend(this,a("MenuController",{$scope:b}))}]),app.controller("chatController",["$scope","$state","$ionicPopup","$ionicScrollDelegate","$timeout","$interval","$ionicModal","$translate","$rootScope","$http","Notification",function(a,b,c,d,f,g,h,i,j,k,l){for(let e in app.registerEventsCronapi(a,i,h,$ionicLoading),j.http=k,a.Notification=l,app.userEvents)a[e]=app.userEvents[e].bind(a);let m,n,o,p=JSON.parse(localStorage._u).user.username,q=d.$getByHandle("userMessageScroll");a.enter=function(){f(function(){m=document.body.querySelector(".homeView .bar-footer"),n=document.body.querySelector(".homeView .scroll-content"),o=angular.element(m.querySelector("textarea"))},0)},a.isEnter=function(a){13===a.keyCode?f(function(){a.stopPropagation(),$("#sendButton").trigger("click")},0):null},a.refreshScroll=function(b,c){f(function(){b=b||a.scrollDown,q.resize(),b&&q.scrollBottom(!0),a.checkScroll()},c||1e3)},a.scrollDown=!0,a.checkScroll=function(){return f(function(){let b=q.getScrollPosition().top,c=q.getScrollView().__maxScrollTop;a.scrollDown=b>=c,a.$apply()},0),!0}}]),app.controller("PageController",["$scope","$stateParams","Notification","$location","$http","$rootScope","$translate","$ionicModal","$ionicLoading","$timeout","UploadService","ReportService",function(a,b,c,d,e,f,g,h,i,j,k,l){app.registerEventsCronapi(a,g,h,i),f.http=e,f.Notification=c,a.params=b,f.$http=e,f.UploadService=k,a.listCanSwipe=!0,f.getReport=function(a,b,c){l.openReport(a,b,c)};let m=d.search();for(let n in m)m.hasOwnProperty(n)&&(a.params[n]=m[n]);if(f.session=void 0===localStorage.getItem("_u")?null:JSON.parse(localStorage.getItem("_u")),a.registerComponentScripts=function(){$(".carousel-indicators li").on("click",function(){let a="#"+$(this).parent().parent().parent().attr("id"),b=$(a+" .carousel-indicators li").index(this);$(a+" #carousel-example-generic").carousel(b)})},a.registerComponentScripts(),a.isOldMenu){let b=a.params.name||"home";a.http({method:"GET",url:"views/logged/"+b+".view.html"}).then(function(a){0<$(a.data).find("ion-header-bar").length?$(document).find("ion-nav-bar").hide():0<$(document).find("ion-header-bar").length&&$(document).find("ion-nav-bar").show()})}try{let b=$controller("AfterPageController",{$scope:a});app.copyContext(b,this,"AfterPageController")}catch(a){}j(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterPageRender&&a.blockly.events.afterPageRender instanceof Function&&a.blockly.events.afterPageRender()})}]),app.controller("InitialController",["$scope","$stateParams","$http","Notification","$location","$rootScope","$translate","$ionicModal","$ionicLoading","$ionicPlatform","$controller","$timeout","UploadService","$ionicHistory",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){j.registerBackButtonAction(function(a){let b=n.viewHistory();b.histories&&b.histories&&Object.keys(b.histories).length&&("app.home"===b.currentView.stateName?(a.preventDefault(),a.stopPropagation(),navigator.app.exitApp()):window.history.back())},101),app.registerEventsCronapi(a,g,h,i),f.http=c,f.Notification=d,f.UploadService=m,a.params=b,a.$http=c;let o=e.search();for(let p in o)o.hasOwnProperty(p)&&(a.params[p]=o[p]);a.blockly.js.blockly.auth.Home.change();try{let b=k("AfterHomeController",{$scope:a});app.copyContext(b,this,"AfterHomeController")}catch(a){}l(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterHomeRender&&a.blockly.events.afterHomeRender instanceof Function&&a.blockly.events.afterHomeRender()})}])})(app),window.safeApply=function(a){let b=this.$root.$$phase;"$apply"===b||"$digest"===b?a&&"function"==typeof a&&a():this.$apply(a)};
|
|
1
|
+
(function(){angular.module("custom.controllers",[]),app.controller("LoginController",["$scope","$http","$location","$rootScope","$window","$state","$translate","Notification","ReportService","$ionicLoading","$timeout","$stateParams","$ionicModal","$cookies","SyncService",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(b){"undefined"!=typeof Storage&&localStorage.setItem("_u",JSON.stringify(b)),f.go("app.home"),a.blockly&&a.blockly.events&&a.blockly.events.onLogin&&a.blockly.events.onLogin instanceof Function&&a.blockly.events.onLogin()}function p(a){let b;if(null!==a&&a.message){let c=JSON.parse(a.message);b=c.exception}else b="string"==typeof a?a:g.instant("General.ErrorNotSpecified");h.error(b)}d.refreshToken=window.refreshToken,app.registerEventsCronapi(a,g,m,j),d.http=b,a.Notification=h,a.params=l,d.getReport=function(a,b,c){i.openReport(a,b,c)};let q=c.search();for(let o in q)q.hasOwnProperty(o)&&(a.params[o]=q[o]);for(let o in app.userEvents)app.userEvents.hasOwnProperty(o)&&(a[o]=app.userEvents[o].bind(a));if(a.redirectToLogin=function(){localStorage.setItem("redir_mob",!0),e.location.href="/login"},a.biometricAuthentication=()=>"true"==(document.querySelector("meta[name=\"biometric-authentication\"]")||{}).content+"",a.autoLogin=function(){const c=localStorage.getItem("_u");c&&JSON.parse(c).token&&(a.biometricAuthentication()?document.addEventListener("deviceready",()=>{window.Fingerprint&&window.Fingerprint.isAvailable(()=>{window.Fingerprint.show(()=>{window.refreshToken(h,b,()=>f.go("app.home"),()=>localStorage.removeItem("_u"))},a=>{"biometric_success"===a?window.refreshToken(h,b,()=>f.go("app.home"),()=>localStorage.removeItem("_u")):p({message:a.message})})},()=>{console.error("Biometric Authentication is not available in this device")})},!1):window.refreshToken(h,b,function(){f.go("app.home")},function(){localStorage.removeItem("_u")}))},a.autoLogin(),n.get("_u")){if(!localStorage.getItem("_u")){var r=decodeURIComponent(n.get("_u"));localStorage.setItem("_u",r)}f.go("app.home")}a.user={username:"",password:""},a.message={},a.login=function(c,d,e){a.message.error=void 0;let f={username:c?c:a.user.username,password:d?d:a.user.password},g={"Content-Type":"application/x-www-form-urlencoded"};e&&(g["X-AUTH-TOKEN"]=e),window.hostApp?b({method:"POST",url:window.hostApp+"auth",data:$.param(f),headers:g}).success(o).error(p):h.error("HostApp is required!")},d.infiniteReached=function(){};try{let b=$controller("AfterLoginController",{$scope:a});app.copyContext(b,this,"AfterLoginController")}catch(a){}k(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterLoginRender&&a.blockly.events.afterLoginRender instanceof Function&&a.blockly.events.afterLoginRender()})}]),app.controller("HomeController",["$scope","$http","$rootScope","$state","$timeout","$translate","Notification","$ionicHistory","$ionicModal","$ionicLoading","$stateParams","$location","$controller","UploadService","ReportService","SyncService",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){app.registerEventsCronapi(a,f,i,j),c.http=b,c.Notification=g,c.UploadService=n,a.params=k,c.getReport=function(a,b,c){o.openReport(a,b,c)};let p=l.search();for(let q in p)p.hasOwnProperty(q)&&(a.params[q]=p[q]);for(let p in app.userEvents)app.userEvents.hasOwnProperty(p)&&(a[p]=app.userEvents[p].bind(a));c.session=localStorage._u?JSON.parse(localStorage._u):null,c.session?c.session.token&&window.refreshToken(g,b,function(){},c.logout):!a.ignoreAuth&&("undefined"!=typeof Storage&&sessionStorage.removeItem("_u"),d.go("login"));try{var q=m("AfterHomeController",{$scope:a});app.copyContext(q,this,"AfterHomeController")}catch(a){}e(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterHomeRender&&a.blockly.events.afterHomeRender instanceof Function&&a.blockly.events.afterHomeRender()})}]),app.controller("PublicController",["$controller","$scope",function(a,b){b.ignoreAuth=!0,angular.extend(this,a("HomeController",{$scope:b}))}]),app.controller("SignupController",["$scope","$translate","$ionicModal","$ionicLoading",function(a,b,c,d){app.registerEventsCronapi(a,b,c,d),a.Notification=Notification,a.cronapi.screen.changeValueOfField("vars.signupEmail",""),a.cronapi.screen.changeValueOfField("vars.signupUsername",""),a.cronapi.screen.changeValueOfField("vars.signupPassword",""),a.cronapi.screen.changeValueOfField("vars.signupConfirmPassword","")}]),app.controller("SignupController",["$scope","$stateParams","Notification","$location","$http","$rootScope","$translate","$ionicModal","$ionicLoading","$timeout","UploadService","ReportService",function(a,b,c,d,e,f,g,h,i,j,k){for(let l in app.registerEventsCronapi(a,g,h,i),f.http=e,f.Notification=c,a.params=b,f.$http=e,f.UploadService=k,a.listCanSwipe=!0,app.userEvents)a[l]=app.userEvents[l].bind(a);a.cronapi.screen.changeValueOfField("vars.signupEmail",""),a.cronapi.screen.changeValueOfField("vars.signupUsername",""),a.cronapi.screen.changeValueOfField("vars.signupPassword",""),a.cronapi.screen.changeValueOfField("vars.signupConfirmPassword","")}]),app.controller("ResetPasswordController",["$scope","$state","$http","Notification","$translate",function(a,b,c,d,e){a.resetPasswordWithOTP=function(a){if(!a||!a.otp||!a.newPassword||!a.newPasswordConfirmation)return void d.error(e.instant("AllFieldsRequired"));const f=a.otp.replaceAll(" ",""),g=a.newPassword,h=a.newPasswordConfirmation,i=localStorage.getItem("otpToken");return i?void(window.hostApp&&g===h?c({method:"POST",url:window.hostApp+"auth/confirm-reset-password",data:$.param({password:g,otp:f}),headers:{"Content-Type":"application/x-www-form-urlencoded","X-AUTH-TOKEN":i}}).success(()=>{a.otp="",a.newPassword="",a.passwordConfirmation="",b.go("login").then(()=>{d.info(e.instant("ResetPasswordSuccess"))})}).error(a=>{d.error(a.message),console.error(a)}):d.error(e.instant("ResetPasswordDoesNotMatch"))):void d.error(e.instant("OTPInvalid"))}}]),app.controller("MenuController",["$scope","$http","$rootScope","$state","$timeout","$translate","Notification","$ionicHistory","$ionicModal","$ionicLoading","$cookies",function(a,b,c,d,e,f,g,h,i,j,k){for(let l in app.registerEventsCronapi(a,f,i,j),c.http=b,a.Notification=g,a.isExtendedFromPublic||(a.folder="logged"),app.userEvents)a[l]=app.userEvents[l].bind(a);a.ignoreAuth||(a.openChangePassword=function(){a.modal.modelEl?a.modal.show():b({url:"views/logged/_changepassword.view.html"}).then(function(b){a.modal=i.fromTemplate($(b.data).last().text(),{scope:a,animation:"slide-in-up"}),a.modal.show()})},a.closeChangePassword=function(){a.modal.hide()},c.logout=function(){const a=a=>{if(c.session={},k.remove("_u",{path:"/"}),"undefined"!=typeof Storage&&localStorage.removeItem("_u"),a&&a.logoutUri){const b=cordova.InAppBrowser.open(a.logoutUri,"_blank","location=no,footer=yes,zoom=no,enableViewportScale=yes,hidenavigationbuttons=yes,clearcache=yes"),c=e=>{e.url===a.appBaseUrl&&(b.removeEventListener("loadstart",c),b.close(),d.go("login"))};b.addEventListener("loadstart",c)}else d.go("login")};b({method:"GET",url:window.hostApp+"logout",headers:{"Content-Type":"application/json"}}).success(a).error(a)}),a.http({method:"GET",url:"views/"+a.folder+"/menu.view.html"}).then(function(b){0<$(b.data).find("ion-nav-bar").length?(a.isOldMenu=!0,0<$(document).find("ion-header-bar").length&&$(document).find("ion-nav-bar").show()):a.isOldMenu=!1})}]),app.controller("PublicMenuController",["$controller","$scope",function(a,b){b.folder="public",b.isExtendedFromPublic=!0,angular.extend(this,a("MenuController",{$scope:b}))}]),app.controller("chatController",["$scope","$state","$ionicPopup","$ionicScrollDelegate","$timeout","$interval","$ionicModal","$translate","$rootScope","$http","Notification",function(a,b,c,d,f,g,h,i,j,k,l){for(let e in app.registerEventsCronapi(a,i,h,$ionicLoading),j.http=k,a.Notification=l,app.userEvents)a[e]=app.userEvents[e].bind(a);let m,n,o,p=JSON.parse(localStorage._u).user.username,q=d.$getByHandle("userMessageScroll");a.enter=function(){f(function(){m=document.body.querySelector(".homeView .bar-footer"),n=document.body.querySelector(".homeView .scroll-content"),o=angular.element(m.querySelector("textarea"))},0)},a.isEnter=function(a){13===a.keyCode?f(function(){a.stopPropagation(),$("#sendButton").trigger("click")},0):null},a.refreshScroll=function(b,c){f(function(){b=b||a.scrollDown,q.resize(),b&&q.scrollBottom(!0),a.checkScroll()},c||1e3)},a.scrollDown=!0,a.checkScroll=function(){return f(function(){let b=q.getScrollPosition().top,c=q.getScrollView().__maxScrollTop;a.scrollDown=b>=c,a.$apply()},0),!0}}]),app.controller("PageController",["$scope","$stateParams","Notification","$location","$http","$rootScope","$translate","$ionicModal","$ionicLoading","$timeout","UploadService","ReportService","SyncService",function(a,b,c,d,e,f,g,h,i,j,k,l){app.registerEventsCronapi(a,g,h,i),f.http=e,f.Notification=c,a.params=b,f.$http=e,f.UploadService=k,a.listCanSwipe=!0,f.getReport=function(a,b,c){l.openReport(a,b,c)};let m=d.search();for(let n in m)m.hasOwnProperty(n)&&(a.params[n]=m[n]);if(f.session=void 0===localStorage.getItem("_u")?null:JSON.parse(localStorage.getItem("_u")),a.registerComponentScripts=function(){$(".carousel-indicators li").on("click",function(){let a="#"+$(this).parent().parent().parent().attr("id"),b=$(a+" .carousel-indicators li").index(this);$(a+" #carousel-example-generic").carousel(b)})},a.registerComponentScripts(),a.isOldMenu){let b=a.params.name||"home";a.http({method:"GET",url:"views/logged/"+b+".view.html"}).then(function(a){0<$(a.data).find("ion-header-bar").length?$(document).find("ion-nav-bar").hide():0<$(document).find("ion-header-bar").length&&$(document).find("ion-nav-bar").show()})}try{let b=$controller("AfterPageController",{$scope:a});app.copyContext(b,this,"AfterPageController")}catch(a){}j(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterPageRender&&a.blockly.events.afterPageRender instanceof Function&&a.blockly.events.afterPageRender()})}]),app.controller("InitialController",["$scope","$stateParams","$http","Notification","$location","$rootScope","$translate","$ionicModal","$ionicLoading","$ionicPlatform","$controller","$timeout","UploadService","$ionicHistory",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){j.registerBackButtonAction(function(a){let b=n.viewHistory();b.histories&&b.histories&&Object.keys(b.histories).length&&("app.home"===b.currentView.stateName?(a.preventDefault(),a.stopPropagation(),navigator.app.exitApp()):window.history.back())},101),app.registerEventsCronapi(a,g,h,i),f.http=c,f.Notification=d,f.UploadService=m,a.params=b,a.$http=c;let o=e.search();for(let p in o)o.hasOwnProperty(p)&&(a.params[p]=o[p]);a.blockly.js.blockly.auth.Home.change();try{let b=k("AfterHomeController",{$scope:a});app.copyContext(b,this,"AfterHomeController")}catch(a){}l(function(){a.blockly&&a.blockly.events&&a.blockly.events.afterHomeRender&&a.blockly.events.afterHomeRender instanceof Function&&a.blockly.events.afterHomeRender()})}])})(app),window.safeApply=function(a){let b=this.$root.$$phase;"$apply"===b||"$digest"===b?a&&"function"==typeof a&&a():this.$apply(a)};
|
package/dist/js/directives.js
CHANGED
|
@@ -14,4 +14,4 @@ maskDirectiveAsDate.$inject=["$compile","$translate","$parse"],maskDirectiveMask
|
|
|
14
14
|
</div>
|
|
15
15
|
</ion-item>
|
|
16
16
|
</ion-list>
|
|
17
|
-
<ion-infinite-scroll></ion-infinite-scroll>`,defaultSearchTemplate="<div class=\"item item-input-inset\">\n <div class=\"item-input-wrapper\">\n <i class=\"icon ion-search placeholder-icon\"></i>\n <input aria-label=\"{{'template.crud.search' | translate}}\" type=\"text\" ng-model=\"vars.searchableList[options.randomModel]\" cronapp-filter=\"{{options.filterFields}}\" cronapp-filter-operator=\"\" cronapp-filter-caseinsensitive=\"false\"\n cronapp-filter-autopost=\"true\" crn-datasource=\"{{options.dataSourceScreen.name}}\" placeholder=\"{{'template.crud.search' | translate}}\">\n </div>\n <button ng-if=\"showButton()\" ng-click=\"limparSelecao()\"\n class=\"button-small cron-list-button-clean button button-inline button-positive component-holder\">\n <span cron-list-button-text>Limpar Sele\xE7\xE3o</span></button>\n</div>";var getExpression=function(e){return"rowData in ".concat(e).concat(".data")},buildFormat=function(e){var t="";return t=" | mask: \""+e.type+"\"",e.format&&(t=" | mask: \""+e.format+"\":\""+e.type+"\""),t},getEditCommand=function(e){return e+".startEditing(rowData)"},getCronappSecurity=function(e){return e.security?`cronapp-security="${e.security}"`:""},addDefaultButton=function(e,t){const a="<ion-option-button "+getCronappSecurity(t)+" class=\"button-positive ion-edit button-edit\" ng-click=\""+getEditCommand(e)+"\"><span> {{\"Permission.view.Edit\" | translate}}</span></ion-option-button>",n="<ion-option-button "+getCronappSecurity(t)+" class=\"button-assertive ion-trash-a button-delete\" ng-click=\""+e+".remove(rowData)\"><span> {{\"Permission.view.Remove\" | translate}}</span></ion-option-button>";if("edit|destroy"==t.command)return a.concat(n);return"edit"==t.command?a:"destroy"==t.command?n:void 0},encodeHTML=function(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},generateBlocklyCall=function(e){var t;if("client"==e.type){var a=e.blocklyClass.split("/"),n=a[a.length-1];t="blockly.js.blockly."+n,t+="."+e.blocklyMethod;var o="()";0<e.blocklyParams.length&&(o="(",e.blocklyParams.forEach(function(e){o+=(e.value?encodeHTML(e.value):"''")+","}.bind(this)),o=o.substr(0,o.length-1),o+=")"),t+=o}else if("server"==e.type){var n=e.blocklyClass+":"+e.blocklyMethod;t="cronapi.util.makeCallServerBlocklyAsync('"+n+"',null,null,",0<e.blocklyParams.length&&e.blocklyParams.forEach(function(e){t+=(e.value?encodeHTML(e.value):"''")+","}.bind(this)),t=t.substr(0,t.length-1),t+=")"}return t},addBlockly=function(e){return"<ion-option-button class=\"button-dark "+getCronappSecurity(e)+" ion-navigate\" ng-click=\""+generateBlocklyCall(e.blocklyInfo)+"\"></ion-option-button>"},isImage=function(e,t){for(var a,n=0;n<t.length;n++)if(a=t[n],e==a.name)return"Binary"==a.type;return!1},addCustomButton=function(e){return`<ion-option-button ${getCronappSecurity(e)} class="button-dark ${e.iconClass}" ng-click="listButtonClick($index, rowData, '${window.stringToJs(e.execute)}', $event)">${e.label}</ion-option-button> `};return{restrict:"E",require:"?ngModel",scope:!0,priority:9999998,terminal:!0,link:function(scope,element,attrs,ngModelCtrl){scope.hasValue=e=>null!==e&&e!==void 0;var optionsList={},dataSourceName="",buttons="";try{optionsList=JSON.parse(attrs.options),dataSourceName=optionsList.dataSourceScreen.name;var dataSource=eval(optionsList.dataSourceScreen.name),imageDirection=optionsList.imagePosition?optionsList.imagePosition:"left",iconDirection=optionsList.iconPosition?optionsList.iconPosition:"right",bothDirection="left"===imageDirection&&"left"===iconDirection?"left":"right"===imageDirection&&"right"===iconDirection?"right":"",checkboxTemplate="",modelArrayToInsert=[],isKey=!1;if(scope.options=optionsList,attrs.ngModel){var modelGetter=$parse(attrs.ngModel),modelSetter=modelGetter.assign;optionsList.allowMultiselect?(scope.verifyIsKey=function(e){return isKey=!1,optionsList.fieldType&&"key"===optionsList.fieldType&&(e=this.changeRowDataField(e),isKey=!0),e},scope.limparSelecao=function(){modelSetter(scope,[])},scope.isChecked=function(e){let t=!1;return modelArrayToInsert=modelGetter(scope),e=scope.verifyIsKey(e),t=scope.hasObjectChecked(isKey,e,null,event),scope.isSelected=t,t},scope.hasObjectChecked=function(e,t,a,n){let o=!1;return Array.isArray(modelArrayToInsert)&&(e&&"object"!=typeof t?modelArrayToInsert.forEach((e,a)=>{t===e&&(o=!0)}):modelArrayToInsert.forEach((e,a)=>{dataSource.objectIsEquals(t,e)&&(o=!0)})),o},scope.checkboxButtonClick=function(e,t,a,n){let o=!1,l=$(n.currentTarget),r=l.find("input[type=checkbox]:checked").length;modelArrayToInsert=modelGetter(scope),Array.isArray(modelArrayToInsert)||(modelArrayToInsert=[]),$(n.target).is("input[type=checkbox]")||a||(0<r?l.find("input[type=checkbox]").prop("checked",!1):l.find("input[type=checkbox]").prop("checked",!0));let s=$(n.currentTarget).find("input[type=checkbox]");t=scope.verifyIsKey(t),$(s).is(":checked")?(o=scope.hasObjectChecked(isKey,t,a,n),!o&&modelArrayToInsert.push(t)):isKey&&"object"!=typeof t?modelArrayToInsert.forEach((e,a)=>{t===e&&modelArrayToInsert.splice(a,1)}):modelArrayToInsert.forEach((e,a)=>{dataSource.objectIsEquals(t,e)&&modelArrayToInsert.splice(a,1)}),modelSetter(scope,modelArrayToInsert),n.stopPropagation()}):scope.setRowDataModel=function(e,t,a,n){optionsList.fieldType&&"key"===optionsList.fieldType&&(t=this.changeRowDataField(t)),modelSetter(scope,t)},scope.changeRowDataField=function(e){e=dataSource.getKeyValues(e);var t=Object.keys(e);return 1===t.length&&(e=e[t]),e}}scope.listButtonClick=function(e,t,a,n){if("INPUT"!=n.target.tagName){dataSource.goTo(t);var o={item:t,index:e},l={currentData:dataSource.data,datasource:dataSource,selectedIndex:e,index:e,selectedRow:t,consolidated:o,item:t,selectedKeys:dataSource.getKeyValues(dataSource.active,!0)};scope.$eval(a,l),n.preventDefault(),n.stopPropagation()}};var searchableField=null,isNativeEdit=!1,addedImage=!1;scope.options=optionsList,scope.options.fields={},scope.options.isImageFromDropbox=!1,scope.options.editableButtonClass="",scope.options.itemContentClass="",scope.options.itemSimple="",scope.options.filterFields="",scope.options.randomModel=_Mathfloor(9e3*Math.random())+1e3,optionsList.imagePosition||(scope.options.imagePosition="left"),optionsList.iconPosition||(scope.options.iconPosition="right"),optionsList.imageType||(scope.options.imageType="avatar");for(var column,imageDirection=optionsList.imagePosition?optionsList.imagePosition:"left",iconDirection=optionsList.iconPosition?optionsList.iconPosition:"right",bothDirection="left"===imageDirection&&"left"===iconDirection?"left":"right"===imageDirection&&"right"===iconDirection?"right":"",visibleColumns=[],i=0;i<optionsList.columns.length;i++)column=optionsList.columns[i],column.visible&&visibleColumns.push(optionsList.columns[i]);for(var column,i=0;i<visibleColumns.length;i++)column=visibleColumns[i],column.field&&"Database"==column.dataType?(scope.options.fields["security"+i]=column.security,scope.options.fields["field"+i]=column.field,scope.options.fields["type"+i]=column.type,scope.options.fields["mask"+i]=column.format,!addedImage&&isImage(column.field,optionsList.dataSourceScreen.entityDataSource.schemaFields)&&"do-not-show"!==optionsList.imageType?(scope.options.fields.image=column.field,delete scope.options.fields["field"+i],addedImage=!0,scope.options.isImageFromDropbox=!1):addedImage||"image"!=column.type?column.filterable&&(searchableField=null==searchableField?column.field:searchableField+";"+column.field):(scope.options.fields.image=column.field,delete scope.options.fields["field"+i],addedImage=!0,scope.options.isImageFromDropbox=!0)):("Command"==column.dataType||"Blockly"==column.dataType||"Customized"==column.dataType)&&(scope.options.editableButtonClass="item-complex item-right-editable","Command"==column.dataType?(scope.options.fields["field"+i]=column.field,buttons=buttons.concat(addDefaultButton(dataSourceName,column)),("edit"==column.command||"edit|destroy"==column.command)&&(isNativeEdit=!0)):"Blockly"==column.dataType?buttons=buttons.concat(addBlockly(column)):"Customized"==column.dataType&&(buttons=buttons.concat(addCustomButton(column))))}catch(e){console.log("CronList invalid configuration! "+e)}scope.options.editableButtonClass||addedImage?!scope.options.editableButtonClass&&addedImage&&(scope.options.itemContentClass="item-content",scope.options.editableButtonClass="item-complex",scope.options.itemSimple=""):(scope.options.itemContentClass="item-content",scope.options.itemSimple="item-simple"),scope.options.fields.image&&"do-not-show"!=scope.options.imageType&&(scope.options.imageClassPosition="item-"+scope.options.imageType+"-"+scope.options.imagePosition),addedImage||(scope.options.imageType="do-not-show"),scope.options.icon&&scope.options.iconPosition&&scope.options.imageType&&(scope.options.iconClassPosition="item-icon-"+scope.options.iconPosition),bothDirection&&scope.options.icon&&scope.options.imagePosition&&scope.options.imageType&&(scope.options.imageToClassPosition="image-to-"+scope.options.imagePosition+"-"+scope.options.imageType,scope.options.textToClassPosition="text-to-"+scope.options.iconPosition+"-"+scope.options.imageType),scope.options.advancedTemplate||(scope.options.advancedTemplate=defaultAdvancedTemplate),scope.options.searchTemplate||(scope.options.searchTemplate=defaultSearchTemplate);var templateDyn=null;searchableField?(scope.options.filterFields=searchableField,templateDyn=scope.options.searchTemplate+scope.options.advancedTemplate):templateDyn=scope.options.advancedTemplate;for(let e,t=0;t<visibleColumns.length;t++)if(e=visibleColumns[t],e.field&&"Database"===e.dataType&&scope.options.fields[`security${t}`]){let e=`ng-if="rowData[options.fields.field${t}]"`,a=`${e} cronapp-security="${scope.options.fields["security"+t]}"`;templateDyn=templateDyn.replace(e,a)}templateDyn=$(templateDyn),scope.options.xattrTextPosition=attrs.xattrTextPosition,templateDyn.attr("type",optionsList.listType),$(element).replaceWith(templateDyn);var $element=templateDyn,ionItem=$element.find("ion-item");"rowData in datasource"===$(ionItem).attr("ng-repeat")&&ionItem.attr("ng-repeat",getExpression(dataSourceName)),isNativeEdit&&ionItem.attr("ng-click",getEditCommand(dataSourceName));var ngClickAttrTemplate="",ngClickAttrTemplateCheckbox="";optionsList.allowMultiselect?(attrs.ngModel&&(ngClickAttrTemplateCheckbox="checkboxButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),checkboxTemplate=$element.find("ul"),attrs.ngClick&&(checkboxTemplate=$(checkboxTemplate).attr("ng-click",ngClickAttrTemplateCheckbox).get(0).outerHTML,ngClickAttrTemplate=ngClickAttrTemplate+"listButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),ionItem.attr("ng-click",ngClickAttrTemplateCheckbox+ngClickAttrTemplate)):(attrs.ngModel&&(ngClickAttrTemplate="setRowDataModel($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),attrs.ngClick&&(ngClickAttrTemplate=ngClickAttrTemplate+"listButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),ionItem.attr("ng-click",ngClickAttrTemplate)),attrs.onDoubleTap&&ionItem.attr("on-double-tap",attrs.onDoubleTap),attrs.onHold&&ionItem.attr("on-hold",attrs.onHold),attrs.onTap&&ionItem.attr("on-tap",attrs.onTap),attrs.onSwipe&&ionItem.attr("on-swipe",attrs.onSwipe);const attrsExcludeds=["options","ng-repeat","ng-click"],filteredItems=Object.values(attrs.$attr).filter(function(e){return!attrsExcludeds.includes(e)});for(let e in filteredItems)ionItem.attr(filteredItems[e],attrs[e]);ionItem.append(buttons);var firstScroll=!0;scope.nextPageInfinite=function(){return $element.find("ion-item").length<dataSource.data.length||0==dataSource.data.length?void scope.$broadcast("scroll.infiniteScrollComplete"):void($element.find("ion-item").length==dataSource.data.length&&(firstScroll?(scope.$broadcast("scroll.infiniteScrollComplete"),firstScroll=!1):dataSource.nextPage(function(){scope.$broadcast("scroll.infiniteScrollComplete")})))};var infiniteScroll=$element.filter(function(e){return $(this).is("ion-infinite-scroll")});infiniteScroll.attr("on-infinite","nextPageInfinite()"),infiniteScroll.attr("distance","1%"),scope.showButton=function(){if(optionsList.allowMultiselect){var e=modelGetter(scope);if(null!==e&&e!==void 0)return 0<e.length}return!1},$compile(templateDyn,null,9999998)(scope)}}}]).directive("cronInfiniteScroll",["$compile",function($compile){"use strict";return{restrict:"EA",link:function(scope,element,attrs){var dataSource=attrs.cronInfiniteScroll?eval(attrs.cronInfiniteScroll):attrs.crnDatasource?eval(attrs.crnDatasource):void 0;if(dataSource){scope.nextPageInfinite=function(){dataSource.nextPage(),scope.$broadcast("scroll.infiniteScrollComplete")};var templateDyn=$("<ion-infinite-scroll></ion-infinite-scroll>");$(element).html(templateDyn);var infiniteScroll=$(element).find("ion-infinite-scroll");infiniteScroll.attr("on-infinite","nextPageInfinite()"),infiniteScroll.attr("distance","1%"),$compile(templateDyn)(element.scope())}}}}]).filter("raw",["$translate",function(e){return function(e){if(null!=e&&e!==void 0){if("number"==typeof e)return e+"";if("boolean"==typeof e)return e+"";if(e instanceof Date)var t="datetimeoffset'"+e.toISOString()+"'";else return 10<=e.length&&e.match(ISO_PATTERN)?"datetimeoffset'"+e+"'":"'"+e.replaceAll("'","''")+"'"}else return""}}]).directive("xkeyField",["$compile",function(e){"use strict";return{restrict:"A",link:function(t,a,n){if(n.xkeyField&&n.xdisplayField){var o="";n.crnDatasource&&(o=n.crnDatasource),a.removeAttr("xkey-field"),a.removeAttr("xdisplay-field"),a.append("<option ng-repeat=\"opt in "+o+".data\" value=\"{{opt."+n.xkeyField+"}}\">{{opt."+n.xdisplayField+"}}</option>"),e($(a))(t)}}}}]).directive("cronMobileMenu",["$compile","$translate",function(e,t){"use strict";var a=function(e){var a="";return e&&null!=e&&e.subMenuOptions&&null!=e.subMenuOptions&&Array.isArray(e.subMenuOptions)&&e.subMenuOptions.forEach(function(e){var n=e.security&&null!=e.security?" cronapp-security=\""+e.security+"\" ":"",o=e.action&&null!=e.action?" ng-click=\""+e.action+"\" ":"",l=e.hide&&null!=e.hide?" ng-hide=\""+e.hide+"\" ":"",r=e.iconClass&&null!=e.iconClass?e.iconClass:"",s=e.imagePosition&&null!=e.imagePosition?"item-icon-"+e.imagePosition:"",d=e.textPosition&&null!=e.textPosition?"text-"+e.textPosition:"",c=e.contentTheme&&null!=e.contentTheme?e.contentTheme:"",p=e.iconTheme&&null!=e.iconTheme?e.iconTheme:"",u=t.instant(e.title);a=a+" <a menu-close=\"\" class=\"item "+s+"\" "+o+n+l+"> <i class=\""+r+" "+p+"\" style=\"font-size: 150%\"></i> <div class=\"item-content "+d+"\"> <h2 class=\""+c+"\">"+u+"</h2> </div> </a> "}),a};return{restrict:"EA",link:function(t,n,o){o.$observe("options",function(o){var l="<ul class=\"nav navbar-nav\" style=\"float:none\"></ul>",r={};try{r=JSON.parse(o)}catch(t){console.log("CronMobileMenu: Invalid configuration!")}var s=$("<ul class=\"nav navbar-nav\" style=\"float:none\"></ul>"),d=a(r);s.append(d);var c=angular.element(s);n.html(""),n.append(s),n.attr("id",null),e(c)(t)})}}}]).directive("srcLazy",["$compile",function(e){"use strict";return{restrict:"A",link:function(e,t,a){var n=$(t);setTimeout(function(){return n.is(":appeared")?void t.attr("src",a.srcLazy):void(a.srcLazyPreview?n.attr("src",a.srcLazyPreview):n.css("visibility","hidden"),n.appear(),n.on("appear",function(e,t){n.attr("src-lazy")&&(!a.srcLazyPreview&&n.css("visibility","visible"),console.log(a.srcLazy),n.attr("src",a.srcLazy),n.attr("src-lazy",""))}))},100),e.$on("$destroy",function(){n.appearStop()})}}}]).directive("crnSkin",["$compile","$http",function(e,t){return{restrict:"A",link:function(e,a,n,o){n.crnSkin&&t.get(n.crnSkin,{cache:!0}).then(e=>{if(e.data){let t=e.data;t.startsWith(":root{")&&(t=t.substring(6)),t.endsWith("}")&&(t=t.substring(0,t.length-2)),$element=$(a);let n=$element.attr("style")||"";n&&(n+=", "),n+=t,$element.attr("style",n)}})}}}]).directive("cronMap",["$compile",function(e){return{restrict:"AE",replace:!0,link:function(t,a,n){var o=a.find(".cronMap")[0];e(o)(a.scope());var l=a.find(".cronMapIframe")[0];e(l)(a.scope());var r="",s=n.src,d=n.width,c=n.height;r=`<iframe class="cronMapIframe" src="${s}" width="${d}" height="${c}" style="border:0;" allowfullscreen="" loading="lazy"></iframe>`,a.html(r),e(r)(a.scope())}}}]).directive("signaturePad",["$compile","$window",function(e,t){"use strict";var a,n,o=null;return{restrict:"E",require:"ngModel",scope:!0,replace:!0,transclude:!0,template:"<div style=\"height: 200px; width: 100%;\"> <canvas style=\"width:100%; height: 100%;\" ng-click=\"mouseup()\" ng-mouseup=\"mouseup()\"></canvas> <div class=\"component-holder ng-scope col-md-2\" style=\"bottom: 0; position: absolute; padding-left: 5px;\" data-component=\"crn-button\"> <button class=\"button button-block button-medium filled button-energized col-xs-3\" ng-click=\"clear()\"> <i class=\"glyphicon glyphicon-erase\" icon-theme=\"\"></i> <span class=\"\" text-theme=\"\">{{'clear'|translate}}</span> </button> </div> </div>",scope:{dataurl:"=",ngClick:"@",ngModel:"="},controller:["$scope",function(t){let a=()=>{let e=t.signaturePad.toDataURL();return e&&(e=e.split(",")[1]),e};t.mouseup=function(n){t.signaturePad.isEmpty()||(t.ngModel=a())},t.$watch("ngModel",function(e,n){e!==n&&(a()!==e&&t.signaturePad.fromDataURL("data:image/png;base64,"+e,{ratio:1}),t.ngModel=e)},!0),t.clear=function(){t.signaturePad.clear(),t.ngModel=null}}],link:function(n,o,l,r,s){a=o.find("canvas")[0],n.onResize=function(){var e=Math.max(t.devicePixelRatio||1,1),a=o.find("canvas")[0],n=document.createElement("canvas");n.width=a.width,n.height=a.height;var l=n.getContext("2d");l.drawImage(a,0,0),a.width=a.offsetWidth*e,a.height=a.offsetHeight*e,a.getContext("2d").drawImage(n,0,0),a.getContext("2d").scale(e,e)},n.onResize(),n.signaturePad=new SignaturePad(a),angular.element(t).on("resize",function(){n.onResize()}),e(o)(o.scope());let d=!1;$(a).on("pointerdown",t=>{1===t.which&&(d=!0),t.preventDefault()}),$(a).on("pointerup",t=>{1===t.which&&d&&(d=!1,s(()=>angular.element(a).triggerHandler("mouseup")))})}}}]).directive("cronFrame",cronFrame).directive("crnFrame",cronFrame).directive("crnComponent",cronFrame).directive("cronVideo",["$compile",function(e){return{restrict:"AE",replace:!0,link:function(t,a,n){var o=a.find(".cronVideo")[0];e(o)(a.scope());var l=a.find(".cronVideoIframe")[0];e(l)(a.scope());var r="",s=n.src,d=n.width,c=n.height,p=n.title;r=`<iframe class="cronVideoIframe" src="${s}" width="${d}" height="${c}" title="${p}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> </iframe>`,a.html(r),e(r)(a.scope())}}}]).directive("cronSelect",["$compile",function(e){return{restrict:"E",replace:!0,require:"ngModel",link:async function(e,t,a,n){let o={};try{o=JSON.parse(a.options)}catch(e){console.error("ComboBox invalid configuration! "+e)}let l=a.id?" id=\""+a.id+"\"":"",r=a.name?" name=\""+a.name+"\"":"",s=t.parent();$(s).append("<input style=\"width: 100%;\" "+l+r+" class=\"cronSelect\"/>");let d=$(s).find("input.cronSelect"),c=a.cronDisabled,p=await app.kendoHelper.getConfigCombobox(o,e);p.close=a.ngClose?function(){e.$eval(a.ngClose)}:void 0,p.dataBound=a.ngDataBound?function(){e.$eval(a.ngDataBound)}:void 0,p.filtering=a.ngFiltering?function(){e.$eval(a.ngFiltering)}:void 0,p.select=a.ngSelect?function(){e.$eval(a.ngSelect)}:void 0,p.change=function(){f.$apply(function(){h.$setViewValue(this.value())}.bind(u))};let u;u=!0===o.dontAllowOutsideList?d.kendoDropDownList(p).data("kendoDropDownList"):d.kendoComboBox(p).data("kendoComboBox"),$(t).remove();let m,g=()=>{if(m=$(s).find(".k-input.cronSelect"),m.length){m.attr("ng-required",a.ngRequired),"true"===a.ngRequired&&m.attr("required","required"),m.attr("ng-model",a.ngModel),m.attr("id",a.id),m.attr("validationmessage",a.validationmessage);let e=m.parent();m.on("change",()=>{"true"===a.ngRequired&&(0==m.val().length?(e.addClass("ng-invalid-required"),m.addClass("ng-invalid-required")):(e.removeClass("ng-invalid-required"),m.removeClass("ng-invalid-required")))})}else setTimeout(()=>g())};g(),c?u.enable(!1):u.enable(!0);let f=e,h=n,v=!0;n&&(n.$formatters.push(function(t){let n="";return("boolean"==typeof t||t)&&(n=t),u.value(n),!v&&a.ngChange&&e.$eval(a.ngChange),v=!1,u.value(n),n}),n.$parsers.push(function(e){return m&&m.trigger("change"),"boolean"==typeof e||e?e:null}))}}}]),app.directive("kendoChat",["$compile","$timeout",function(e,t){return{restrict:"E",link:function(e,a,n){function o(){let e=$(".k-chat");e.height($(window).height()-e.offset().top)}let l=n.ngOnPostMessage,r=n.ngOnSendMessage,s=n.ngOnTypingEnd,d=n.ngOnTypingStart,c=n.ngOnActionClick,p=n.chatUserId,u=n.chatUsername,m=n.chatUserImage,g=n.chatPlaceholder,f=localStorage.getItem("_u")===void 0?null:JSON.parse(localStorage.getItem("_u")),h=window.navigator.userAgent,v="";f&&f.user&&(v=f.user.name);let y=$("<div></div>");y.kendoChat({messages:{placeholder:g},user:{id:p||h,name:u||v,iconUrl:m}}),chat=y.data("kendoChat"),chat.bind("post",t=>{if(l)try{let a={chatMessage:t};e.$eval(l,a)}catch(t){console.error(t)}}),chat.bind("sendMessage",t=>{if(r)try{let a={chatMessage:t};e.$eval(r,a)}catch(t){console.error(t)}}),chat.bind("typingStart",t=>{if(d)try{let a={chatMessage:t};e.$eval(d,a)}catch(t){console.error(t)}}),chat.bind("typingEnd",t=>{if(s)try{let a={chatMessage:t};e.$eval(s,a)}catch(t){console.error(t)}}),chat.bind("actionClick",t=>{if(c)try{let a={chatMessage:t};e.$eval(c,a)}catch(t){console.error(t)}}),a.empty().append(y),$(window).resize(()=>{o()}),t(()=>{o()})}}}])}(app),function(e){function t(){return e(this).is(":appeared")}function a(){return!e(this).data("_appear_triggered")}function n(){r=!1;for(var n,o=0,s=l.length;o<s;o++){if(n=e(l[o]).filter(t),n.filter(a).data("_appear_triggered",!0).trigger("appear",[n]),c[o]){var d=c[o].not(n);d.data("_appear_triggered",!1).trigger("disappear",[d])}c[o]=n}}function o(e){l.push(e),c.push()}var l=[],r=!1,s={interval:250,force_process:!1},d=e(window),c=[];e.expr.pseudos.appeared=e.expr.createPseudo(function(t){return function(t){var a=e(t),n=d.scrollLeft(),o=d.scrollTop(),l=a.offset(),r=l.left,s=l.top;return!!(s+a.height()>=o&&s-(a.data("appear-top-offset")||0)<=o+d.height()&&r+a.width()>=n&&r-(a.data("appear-left-offset")||0)<=n+d.width())}}),e.fn.extend({appear:function(t,a){return e.appear(this,a),this}}),e.fn.extend({appearStop:function(t,a){return e.appearStop(this,a),this}}),e.extend({appearStop:function(e,t){var a=-1;for(i=0;i<l.length;i++)if(l[i].get(0)==e.get(0)){a=i;break}-1!=a&&l.splice(a)},appear:function(t,a){var l=e.extend({},s,a||{}),d=e("ion-content");if(d.length){if(!d.get(0).checkBinded){var c=function(){r||(r=!0,setTimeout(n,l.interval))};d.scroll(c).resize(c),d.get(0).checkBinded=!0}l.force_process&&setTimeout(n,l.interval),o(t)}}})}(function(){return"undefined"==typeof module?jQuery:require("jquery")}());function maskDirectiveAsDate(e,t,a){return maskDirective(e,t,"as-date",a)}function maskDirectiveMask(e,t,a){return maskDirective(e,t,"mask",a)}function maskDirective(e,t,a,n){return{restrict:"A",require:"?ngModel",link:function(e,o,l,r){var s=n(l.ngModel),d=s.assign;if("as-date"!=a||void 0===l.mask){var c=$(o),p=c.attr("type");if("checkbox"!=p&&"password"!=p){c.data("type",p),c.attr("type","text"),r&&(r.$formatters=[],r.$parsers=[]),void 0!==l.asDate&&"text"==p&&(p="date");var u=!0,m=!1,g=l.mask||l.format;g=g?parseMaskType(g,t):parseMaskType(p,t),g.endsWith(";0")&&(m=!0);var f=g.replace(";1","").replace(";0","").replace(";local","").trim(),h=l.keyboard,v=t.instant("keyboardDecimalChar")&&1==t.instant("keyboardDecimalChar").length?t.instant("keyboardDecimalChar"):",";if(h&&parseKeyboardType(h,v,c),null!=f&&0!=f.length){if("date"==p||"datetime"==p||"datetime-local"==p||"month"==p||"time"==p||"time-local"==p||"week"==p){var y="date"==p||"datetime"==p||"time"==p;window.fixedTimeZone||(y=!1),"date"==p?(f=moment.HTML5_FMT.DATE,c.attr("type","date")):"month"==p?(f=moment.HTML5_FMT.MONTH,c.attr("type","month")):"week"==p?(f=moment.HTML5_FMT.WEEK,c.attr("type","week")):"datetime"==p||"datetime-local"==p?(f=moment.HTML5_FMT.DATETIME_LOCAL,c.attr("type","datetime-local")):("time"==p||"time-local"==p)&&(f=moment.HTML5_FMT.TIME,c.attr("type","time")),r&&(r.$formatters.push(function(e){return e?y?moment(e).utcOffset(window.timeZoneOffset).format(f):moment(e).format(f):null}),r.$parsers.push(function(e){return e?y?moment(e,f).utcOffset(window.timeZoneOffset,!0).toDate():moment(e,f).toDate():new Date(e)}))}else if("number"==p||"money"==p||"integer"==p||"money-decimal"==p){m=!0,u=!1;var b=f.trim().replace(/\./g,"").replace(/\,/g,"").replace(/#/g,"").replace(/0/g,"").replace(/9/g,"");h||("integer"==p||"money-decimal"==p?h="integer":h="number");var k="",x="",T="",M=",",w=0;f.startsWith(b)?k=b:f.endsWith(b)&&(x=b);var C=f.trim().replace(k,"").replace(x,"").trim();C.startsWith("#.")?T=".":C.startsWith("#,")&&(T=",");var S=null;if(-1==C.indexOf(",0")?-1!=C.indexOf(".0")&&(M=".",S=".0"):(M=",",S=",0"),null!=S){var D=C.substring(C.indexOf(S)+1);w=D.length}var F="numeric";0==w&&(F="integer");var P={rightAlign:"money"==p||"money-decimal"==p,unmaskAsNumber:!0,allowMinus:"money"!=p&&"money-decimal"!=p,prefix:k,suffix:x,radixPoint:M,digits:w,numericInput:"money-decimal"==p};T&&(P.autoGroup=!0,P.groupSeparator=T),"money-decimal"==p&&(F="currency"),$(o).inputmask(F,P),useInputMaskPlugin(o,r,e,d,f)}else"text"==p||"tel"==p?(h||"tel"!=p||(h="tel"),l.maskPlaceholder?(options={},options.placeholder=l.maskPlaceholder,$(o).inputmask(f,options),$(o).off("keypress"),m&&useInputMaskPlugin(o,r,e,d,f)):(c.mask(f),useMaskPlugin(o,r,e,d,m))):("email"==p||"password"==p||"search"==p)&&(h||(h=p));h&&parseKeyboardType(h,v,c)}}}}}}function useInputMaskPlugin(e,t,a,n,o){var l=$(e),r=function(t){var o=$(this).inputmask("unmaskedvalue");$(this).data("rawvalue",o),e._ignoreFormatter=!0,a.safeApply(function(){n(a,o)})};$(e).off("keypress"),$(e).on("keyup",r),t&&(t.$formatters.push(function(t){return e._ignoreFormatter?(e._ignoreFormatter=!1,$(e).val()):(e._ignoreFormatter=!1,null!=t&&null!=t&&""!==t?format(o,t):null)}),t.$parsers.push(function(e){if(e!=null&&null!=e&&""!==e){var t=l.inputmask("unmaskedvalue");if(""!==t)return t}return null}))}function useMaskPlugin(e,t,a,n,o){var l=$(e),r=function(){o&&$(this).data("rawvalue",$(this).cleanVal())};$(e).on("keydown",r).on("keyup",r),o&&t&&(t.$formatters.push(function(e){return e?l.masked(e):null}),t.$parsers.push(function(e){return e?l.cleanVal():null}))}function parseKeyboardType(e,t,a){("integer"==e||"number"==e||"tel"==e)&&(a.attr("pattern","\\d*"),a.attr("inputmode","decimal")),("tel"==e||"email"==e||"search"==e||"password"==e)&&a.attr("type",e),"ios"===cordova.platformId&&"number"==e&&(a.attr("decimal","true"),a.attr("allow-multiple-decimals","true"),a.attr("decimal-char",t))}function parseMaskType(e,t){return"datetime"==e||"datetime-local"==e?(e=t.instant("Format.DateTime"),"Format.DateTime"==e&&(e="DD/MM/YYYY HH:mm:ss")):"date"==e?(e=t.instant("Format.Date"),"Format.Date"==e&&(e="DD/MM/YYYY")):"time"==e||"time-local"==e?(e=t.instant("Format.Hour"),"Format.Hour"==e&&(e="HH:mm:ss")):"month"==e?e="MMMM":"number"==e?(e=t.instant("Format.Decimal"),"Format.Decimal"==e&&(e="0,00")):"money"==e||"money-decimal"==e?(e=t.instant("Format.Money"),"Format.Money"==e&&(e="#.#00,00")):"integer"==e?e="0":"week"==e?e="dddd":"tel"==e?e="(99) 99999-9999;0":"text"==e?e="":"string"==e&&(e=""),e}function transformText(){return{restrict:"E",require:"?ngModel",link:function(e,t,a,n){let o=function(e,t){if(e&&t&&("string"==typeof t||t instanceof String)){if("uppercase"===e.css("text-transform"))return t.toUpperCase();if("lowercase"===e.css("text-transform"))return t.toLowerCase()}return t};n&&(n.$formatters.push(function(e){return o(t,e)}),n.$parsers.push(function(e){return o(t,e)}))}}}function cronFrame($compile,$sce,$parse){"use strict";return{restrict:"AE",link:function(scope,element,attrs,ngModelCtrl){scope.fragment=scope.fragment||{};var framentMap=scope.fragment[element.parent.id]||{};scope.$watch(function(){return attrs.origin},function(newVal){let template="",style=attrs.style||"",clazz=attrs.class||"";if(attrs.origin)if(attrs.type||(attrs.type="include"),"include"==attrs.type){let str=`<div style="${style}" class="${clazz}" ng-include="'${attrs.origin}'" ng-if="true"></div>`;if(template=$(str),attrs.params)try{let params=eval(attrs.params);for(let e in params){let t=params[e];"expression"==t.type?scope.$watch(t.value,function(e){framentMap[t.key]=e;var a=$(str);a.attr("onload",`params = ${JSON.stringify(framentMap)}`);var n=$compile(a)(scope);element.html(n)}):framentMap[t.key]=t.value}template.attr("onload",`params = ${JSON.stringify(framentMap)}`)}catch(e){console.error(e)}}else if("frame"==attrs.type){var url=$sce.trustAsResourceUrl(attrs.origin);template=$(`<iframe style="${style}" class="${clazz}" ng-src="${url}" width="100%" height="100%" loading="lazy"></iframe>`)}let html=angular.element(template);html=$compile(html)(scope),element.html(""),element.append(html)})}}}app.kendoHelper={parseOptionsCronToConfigKendo:function(e,t,a){let n=!1;e.dynamic&&"false"!=e.dynamic?e.dataSourceScreen&&e.dataSourceScreen.entityDataSource&&(e.dataSourceScreen.entityDataSource.append=!0,t=app.kendoHelper.getDataSource(e.dataSourceScreen.entityDataSource,a,!0,e.dataSourceScreen.rowsPerPage),t.transport.read=app.kendoHelper.getEventReadCombo,n=!0):(n=!0,e.dataValueField=e.dataValueField||"value",e.dataTextField=e.dataTextField||"key"),e.dataValueField&&""!=e.dataValueField.trim()||(e.dataValueField=null==e.dataTextField?void 0:e.dataTextField);var o=function(t){var a=e.dataSourceScreen.entityDataSource.schemaFields;for(count=0;count<a.length;count++)if(t==a[count].name){return a[count].type.toLowerCase();break}return null},l=function(e){var t=["date","time","datetime"];return-1<t.indexOf(e)?e:null};!e.customTemplate&&e.dataSourceScreen&&e.dataSourceScreen.entityDataSource&&e.dataSourceScreen.entityDataSource.schemaFields&&(e.format||l(o(e.dataTextField)))&&(e.template="#= useMask("+e.dataTextField+",'"+e.format+"','"+o(e.dataTextField)+"') #",e.valueTemplate="#= useMask("+e.dataTextField+",'"+e.format+"','"+o(e.dataTextField)+"') #");var r={dataTextField:null==e.dataTextField?void 0:e.dataTextField,dataValueField:null==e.dataValueField?void 0:e.dataValueField,dataSource:t,headerTemplate:null==e.headerTemplate?void 0:e.headerTemplate,template:null==e.template?void 0:e.template,placeholder:null==e.placeholder?void 0:e.placeholder,footerTemplate:null==e.footerTemplate?void 0:e.footerTemplate,filter:null==e.filter?void 0:e.filter,valuePrimitive:n,valueTemplate:null==e.valueTemplate?void 0:e.valueTemplate,suggest:!0};return e.optionLabel&&(e.optionLabelText=e.optionLabel,e.optionLabelValue=""),r.optionLabel={},r.optionLabel[r.dataTextField]=void 0===e.optionLabelText?"":e.optionLabelText,r.optionLabel[r.dataValueField]=void 0===e.optionLabelValue?null:e.optionLabelValue,r},getConfigCombobox:async function(e,t){let a={};if(e){if(!e.dynamic||"false"==e.dynamic){a.data=null==e.staticDataSource?void 0:e.staticDataSource;for(let n=0;n<a.data.length;n++)try{a.data[n].key&&a.data[n].key.startsWith("cronapi.server(")&&(a.data[n].key=a.data[n].key.replace(".run(",".toPromise().run("));let e=await t.$eval(a.data[n].key);a.data[n].key=void 0!==e&&null!==e?e:a.data[n].key}catch(t){a.data[n].key=a.data[n].key}}return config=this.parseOptionsCronToConfigKendo(e,a,t),config}return{}}};
|
|
17
|
+
<ion-infinite-scroll></ion-infinite-scroll>`,defaultSearchTemplate="<div class=\"item item-input-inset\">\n <div class=\"item-input-wrapper\">\n <i class=\"icon ion-search placeholder-icon\"></i>\n <input aria-label=\"{{'template.crud.search' | translate}}\" type=\"text\" ng-model=\"vars.searchableList[options.randomModel]\" cronapp-filter=\"{{options.filterFields}}\" cronapp-filter-operator=\"\" cronapp-filter-caseinsensitive=\"false\"\n cronapp-filter-autopost=\"true\" crn-datasource=\"{{options.dataSourceScreen.name}}\" placeholder=\"{{'template.crud.search' | translate}}\">\n </div>\n <button ng-if=\"showButton()\" ng-click=\"limparSelecao()\"\n class=\"button-small cron-list-button-clean button button-inline button-positive component-holder\">\n <span cron-list-button-text>Limpar Sele\xE7\xE3o</span></button>\n</div>";var getExpression=function(e){return"rowData in ".concat(e).concat(".data")},buildFormat=function(e){var t="";return t=" | mask: \""+e.type+"\"",e.format&&(t=" | mask: \""+e.format+"\":\""+e.type+"\""),t},getEditCommand=function(e){return e+".startEditing(rowData)"},getCronappSecurity=function(e){return e.security?`cronapp-security="${e.security}"`:""},addDefaultButton=function(e,t){const a="<ion-option-button "+getCronappSecurity(t)+" class=\"button-positive ion-edit button-edit\" ng-click=\""+getEditCommand(e)+"\"><span> {{\"Permission.view.Edit\" | translate}}</span></ion-option-button>",n="<ion-option-button "+getCronappSecurity(t)+" class=\"button-assertive ion-trash-a button-delete\" ng-click=\""+e+".remove(rowData)\"><span> {{\"Permission.view.Remove\" | translate}}</span></ion-option-button>";if("edit|destroy"==t.command)return a.concat(n);return"edit"==t.command?a:"destroy"==t.command?n:void 0},encodeHTML=function(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},generateBlocklyCall=function(e){var t;if("client"==e.type){var a=e.blocklyClass.split("/"),n=a[a.length-1];t="blockly.js.blockly."+n,t+="."+e.blocklyMethod;var o="()";0<e.blocklyParams.length&&(o="(",e.blocklyParams.forEach(function(e){o+=(e.value?encodeHTML(e.value):"''")+","}.bind(this)),o=o.substr(0,o.length-1),o+=")"),t+=o}else if("server"==e.type){var n=e.blocklyClass+":"+e.blocklyMethod;t="cronapi.util.makeCallServerBlocklyAsync('"+n+"',null,null,",0<e.blocklyParams.length&&e.blocklyParams.forEach(function(e){t+=(e.value?encodeHTML(e.value):"''")+","}.bind(this)),t=t.substr(0,t.length-1),t+=")"}return t},addBlockly=function(e){return"<ion-option-button class=\"button-dark "+getCronappSecurity(e)+" ion-navigate\" ng-click=\""+generateBlocklyCall(e.blocklyInfo)+"\"></ion-option-button>"},isImage=function(e,t){for(var a,n=0;n<t.length;n++)if(a=t[n],e==a.name)return"Binary"==a.type;return!1},addCustomButton=function(e){return`<ion-option-button ${getCronappSecurity(e)} class="button-dark ${e.iconClass}" ng-click="listButtonClick($index, rowData, '${window.stringToJs(e.execute)}', $event)">${e.label}</ion-option-button> `};return{restrict:"E",require:"?ngModel",scope:!0,priority:9999998,terminal:!0,link:function(scope,element,attrs,ngModelCtrl){scope.hasValue=e=>null!==e&&e!==void 0;var optionsList={},dataSourceName="",buttons="";try{optionsList=JSON.parse(attrs.options),dataSourceName=optionsList.dataSourceScreen.name;var dataSource=eval(optionsList.dataSourceScreen.name),imageDirection=optionsList.imagePosition?optionsList.imagePosition:"left",iconDirection=optionsList.iconPosition?optionsList.iconPosition:"right",bothDirection="left"===imageDirection&&"left"===iconDirection?"left":"right"===imageDirection&&"right"===iconDirection?"right":"",checkboxTemplate="",modelArrayToInsert=[],isKey=!1;if(scope.options=optionsList,attrs.ngModel){var modelGetter=$parse(attrs.ngModel),modelSetter=modelGetter.assign;optionsList.allowMultiselect?(scope.verifyIsKey=function(e){return isKey=!1,optionsList.fieldType&&"key"===optionsList.fieldType&&(e=this.changeRowDataField(e),isKey=!0),e},scope.limparSelecao=function(){modelSetter(scope,[])},scope.isChecked=function(e){let t=!1;return modelArrayToInsert=modelGetter(scope),e=scope.verifyIsKey(e),t=scope.hasObjectChecked(isKey,e,null,event),scope.isSelected=t,t},scope.hasObjectChecked=function(e,t,a,n){let o=!1;return Array.isArray(modelArrayToInsert)&&(e&&"object"!=typeof t?modelArrayToInsert.forEach((e,a)=>{t===e&&(o=!0)}):modelArrayToInsert.forEach((e,a)=>{dataSource.objectIsEquals(t,e)&&(o=!0)})),o},scope.checkboxButtonClick=function(e,t,a,n){let o=!1,l=$(n.currentTarget),r=l.find("input[type=checkbox]:checked").length;modelArrayToInsert=modelGetter(scope),Array.isArray(modelArrayToInsert)||(modelArrayToInsert=[]),$(n.target).is("input[type=checkbox]")||a||(0<r?l.find("input[type=checkbox]").prop("checked",!1):l.find("input[type=checkbox]").prop("checked",!0));let s=$(n.currentTarget).find("input[type=checkbox]");t=scope.verifyIsKey(t),$(s).is(":checked")?(o=scope.hasObjectChecked(isKey,t,a,n),!o&&modelArrayToInsert.push(t)):isKey&&"object"!=typeof t?modelArrayToInsert.forEach((e,a)=>{t===e&&modelArrayToInsert.splice(a,1)}):modelArrayToInsert.forEach((e,a)=>{dataSource.objectIsEquals(t,e)&&modelArrayToInsert.splice(a,1)}),modelSetter(scope,modelArrayToInsert),n.stopPropagation()}):scope.setRowDataModel=function(e,t,a,n){optionsList.fieldType&&"key"===optionsList.fieldType&&(t=this.changeRowDataField(t)),modelSetter(scope,t)},scope.changeRowDataField=function(e){e=dataSource.getKeyValues(e);var t=Object.keys(e);return 1===t.length&&(e=e[t]),e}}scope.listButtonClick=function(e,t,a,n){if("INPUT"!=n.target.tagName){dataSource.goTo(t);var o={item:t,index:e},l={currentData:dataSource.data,datasource:dataSource,selectedIndex:e,index:e,selectedRow:t,consolidated:o,item:t,selectedKeys:dataSource.getKeyValues(dataSource.active,!0)};scope.$eval(a,l),n.preventDefault(),n.stopPropagation()}};var searchableField=null,isNativeEdit=!1,addedImage=!1;scope.options=optionsList,scope.options.fields={},scope.options.isImageFromDropbox=!1,scope.options.editableButtonClass="",scope.options.itemContentClass="",scope.options.itemSimple="",scope.options.filterFields="",scope.options.randomModel=_Mathfloor(9e3*Math.random())+1e3,optionsList.imagePosition||(scope.options.imagePosition="left"),optionsList.iconPosition||(scope.options.iconPosition="right"),optionsList.imageType||(scope.options.imageType="avatar");for(var column,imageDirection=optionsList.imagePosition?optionsList.imagePosition:"left",iconDirection=optionsList.iconPosition?optionsList.iconPosition:"right",bothDirection="left"===imageDirection&&"left"===iconDirection?"left":"right"===imageDirection&&"right"===iconDirection?"right":"",visibleColumns=[],i=0;i<optionsList.columns.length;i++)column=optionsList.columns[i],column.visible&&visibleColumns.push(optionsList.columns[i]);for(var column,i=0;i<visibleColumns.length;i++)column=visibleColumns[i],column.field&&"Database"==column.dataType?(scope.options.fields["security"+i]=column.security,scope.options.fields["field"+i]=column.field,scope.options.fields["type"+i]=column.type,scope.options.fields["mask"+i]=column.format,!addedImage&&isImage(column.field,optionsList.dataSourceScreen.entityDataSource.schemaFields)&&"do-not-show"!==optionsList.imageType?(scope.options.fields.image=column.field,delete scope.options.fields["field"+i],addedImage=!0,scope.options.isImageFromDropbox=!1):addedImage||"image"!=column.type?column.filterable&&(searchableField=null==searchableField?column.field:searchableField+";"+column.field):(scope.options.fields.image=column.field,delete scope.options.fields["field"+i],addedImage=!0,scope.options.isImageFromDropbox=!0)):("Command"==column.dataType||"Blockly"==column.dataType||"Customized"==column.dataType)&&(scope.options.editableButtonClass="item-complex item-right-editable","Command"==column.dataType?(scope.options.fields["field"+i]=column.field,buttons=buttons.concat(addDefaultButton(dataSourceName,column)),("edit"==column.command||"edit|destroy"==column.command)&&(isNativeEdit=!0)):"Blockly"==column.dataType?buttons=buttons.concat(addBlockly(column)):"Customized"==column.dataType&&(buttons=buttons.concat(addCustomButton(column))))}catch(e){console.log("CronList invalid configuration! "+e)}scope.options.editableButtonClass||addedImage?!scope.options.editableButtonClass&&addedImage&&(scope.options.itemContentClass="item-content",scope.options.editableButtonClass="item-complex",scope.options.itemSimple=""):(scope.options.itemContentClass="item-content",scope.options.itemSimple="item-simple"),scope.options.fields.image&&"do-not-show"!=scope.options.imageType&&(scope.options.imageClassPosition="item-"+scope.options.imageType+"-"+scope.options.imagePosition),addedImage||(scope.options.imageType="do-not-show"),scope.options.icon&&scope.options.iconPosition&&scope.options.imageType&&(scope.options.iconClassPosition="item-icon-"+scope.options.iconPosition),bothDirection&&scope.options.icon&&scope.options.imagePosition&&scope.options.imageType&&(scope.options.imageToClassPosition="image-to-"+scope.options.imagePosition+"-"+scope.options.imageType,scope.options.textToClassPosition="text-to-"+scope.options.iconPosition+"-"+scope.options.imageType),scope.options.advancedTemplate||(scope.options.advancedTemplate=defaultAdvancedTemplate),scope.options.searchTemplate||(scope.options.searchTemplate=defaultSearchTemplate);var templateDyn=null;searchableField?(scope.options.filterFields=searchableField,templateDyn=scope.options.searchTemplate+scope.options.advancedTemplate):templateDyn=scope.options.advancedTemplate;for(let e,t=0;t<visibleColumns.length;t++)if(e=visibleColumns[t],e.field&&"Database"===e.dataType&&scope.options.fields[`security${t}`]){let e=`ng-if="rowData[options.fields.field${t}]"`,a=`${e} cronapp-security="${scope.options.fields["security"+t]}"`;templateDyn=templateDyn.replace(e,a)}templateDyn=$(templateDyn),scope.options.xattrTextPosition=attrs.xattrTextPosition,templateDyn.attr("type",optionsList.listType),$(element).replaceWith(templateDyn);var $element=templateDyn,ionItem=$element.find("ion-item");"rowData in datasource"===$(ionItem).attr("ng-repeat")&&ionItem.attr("ng-repeat",getExpression(dataSourceName)),isNativeEdit&&ionItem.attr("ng-click",getEditCommand(dataSourceName));var ngClickAttrTemplate="",ngClickAttrTemplateCheckbox="";optionsList.allowMultiselect?(attrs.ngModel&&(ngClickAttrTemplateCheckbox="checkboxButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),checkboxTemplate=$element.find("ul"),attrs.ngClick&&(checkboxTemplate=$(checkboxTemplate).attr("ng-click",ngClickAttrTemplateCheckbox).get(0).outerHTML,ngClickAttrTemplate=ngClickAttrTemplate+"listButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),ionItem.attr("ng-click",ngClickAttrTemplateCheckbox+ngClickAttrTemplate)):(attrs.ngModel&&(ngClickAttrTemplate="setRowDataModel($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),attrs.ngClick&&(ngClickAttrTemplate=ngClickAttrTemplate+"listButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),ionItem.attr("ng-click",ngClickAttrTemplate)),attrs.onDoubleTap&&ionItem.attr("on-double-tap",attrs.onDoubleTap),attrs.onHold&&ionItem.attr("on-hold",attrs.onHold),attrs.onTap&&ionItem.attr("on-tap",attrs.onTap),attrs.onSwipe&&ionItem.attr("on-swipe",attrs.onSwipe);const attrsExcludeds=["options","ng-repeat","ng-click"],filteredItems=Object.values(attrs.$attr).filter(function(e){return!attrsExcludeds.includes(e)});for(let e in filteredItems)ionItem.attr(filteredItems[e],attrs[e]);ionItem.append(buttons);var firstScroll=!0;scope.nextPageInfinite=function(){return $element.find("ion-item").length<dataSource.data.length||0==dataSource.data.length?void scope.$broadcast("scroll.infiniteScrollComplete"):void($element.find("ion-item").length==dataSource.data.length&&(firstScroll?(scope.$broadcast("scroll.infiniteScrollComplete"),firstScroll=!1):dataSource.nextPage(function(){scope.$broadcast("scroll.infiniteScrollComplete")})))};var infiniteScroll=$element.filter(function(e){return $(this).is("ion-infinite-scroll")});infiniteScroll.attr("on-infinite","nextPageInfinite()"),infiniteScroll.attr("distance","1%"),scope.showButton=function(){if(optionsList.allowMultiselect){var e=modelGetter(scope);if(null!==e&&e!==void 0)return 0<e.length}return!1},$compile(templateDyn,null,9999998)(scope)}}}]).directive("cronInfiniteScroll",["$compile",function($compile){"use strict";return{restrict:"EA",link:function(scope,element,attrs){var dataSource=attrs.cronInfiniteScroll?eval(attrs.cronInfiniteScroll):attrs.crnDatasource?eval(attrs.crnDatasource):void 0;if(dataSource){scope.nextPageInfinite=function(){dataSource.nextPage(),scope.$broadcast("scroll.infiniteScrollComplete")};var templateDyn=$("<ion-infinite-scroll></ion-infinite-scroll>");$(element).html(templateDyn);var infiniteScroll=$(element).find("ion-infinite-scroll");infiniteScroll.attr("on-infinite","nextPageInfinite()"),infiniteScroll.attr("distance","1%"),$compile(templateDyn)(element.scope())}}}}]).filter("raw",["$translate",function(e){return function(e){if(null!=e&&e!==void 0){if("number"==typeof e)return e+"";if("boolean"==typeof e)return e+"";if(e instanceof Date)var t="datetimeoffset'"+e.toISOString()+"'";else return 10<=e.length&&e.match(ISO_PATTERN)?"datetimeoffset'"+e+"'":"'"+e.replaceAll("'","''")+"'"}else return""}}]).directive("xkeyField",["$compile",function(e){"use strict";return{restrict:"A",link:function(t,a,n){if(n.xkeyField&&n.xdisplayField){var o="";n.crnDatasource&&(o=n.crnDatasource),a.removeAttr("xkey-field"),a.removeAttr("xdisplay-field"),a.append("<option ng-repeat=\"opt in "+o+".data\" value=\"{{opt."+n.xkeyField+"}}\">{{opt."+n.xdisplayField+"}}</option>"),e($(a))(t)}}}}]).directive("cronMobileMenu",["$compile","$translate",function(e,t){"use strict";var a=function(e){var a="";return e&&null!=e&&e.subMenuOptions&&null!=e.subMenuOptions&&Array.isArray(e.subMenuOptions)&&e.subMenuOptions.forEach(function(e){var n=e.security&&null!=e.security?" cronapp-security=\""+e.security+"\" ":"",o=e.action&&null!=e.action?" ng-click=\""+e.action+"\" ":"",l=e.hide&&null!=e.hide?" ng-hide=\""+e.hide+"\" ":"",r=e.iconClass&&null!=e.iconClass?e.iconClass:"",s=e.imagePosition&&null!=e.imagePosition?"item-icon-"+e.imagePosition:"",d=e.textPosition&&null!=e.textPosition?"text-"+e.textPosition:"",c=e.contentTheme&&null!=e.contentTheme?e.contentTheme:"",p=e.iconTheme&&null!=e.iconTheme?e.iconTheme:"",u=t.instant(e.title);a=a+" <a menu-close=\"\" class=\"item "+s+"\" "+o+n+l+"> <i class=\""+r+" "+p+"\" style=\"font-size: 150%\"></i> <div class=\"item-content "+d+"\"> <h2 class=\""+c+"\">"+u+"</h2> </div> </a> "}),a};return{restrict:"EA",link:function(t,n,o){o.$observe("options",function(o){var l="<ul class=\"nav navbar-nav\" style=\"float:none\"></ul>",r={};try{r=JSON.parse(o)}catch(t){console.log("CronMobileMenu: Invalid configuration!")}var s=$("<ul class=\"nav navbar-nav\" style=\"float:none\"></ul>"),d=a(r);s.append(d);var c=angular.element(s);n.html(""),n.append(s),n.attr("id",null),e(c)(t)})}}}]).directive("srcLazy",["$compile",function(e){"use strict";return{restrict:"A",link:function(e,t,a){var n=$(t);setTimeout(function(){return n.is(":appeared")?void t.attr("src",a.srcLazy):void(a.srcLazyPreview?n.attr("src",a.srcLazyPreview):n.css("visibility","hidden"),n.appear(),n.on("appear",function(e,t){n.attr("src-lazy")&&(!a.srcLazyPreview&&n.css("visibility","visible"),console.log(a.srcLazy),n.attr("src",a.srcLazy),n.attr("src-lazy",""))}))},100),e.$on("$destroy",function(){n.appearStop()})}}}]).directive("crnSkin",["$compile","$http",function(e,t){return{restrict:"A",link:function(e,a,n,o){n.crnSkin&&t.get(n.crnSkin,{cache:!0}).then(e=>{if(e.data){let t=e.data;t.startsWith(":root{")&&(t=t.substring(6)),t.endsWith("}")&&(t=t.substring(0,t.length-2)),$element=$(a);let n=$element.attr("style")||"";n&&(n+=", "),n+=t,$element.attr("style",n)}})}}}]).directive("cronMap",["$compile",function(e){return{restrict:"AE",replace:!0,link:function(t,a,n){var o=a.find(".cronMap")[0];e(o)(a.scope());var l=a.find(".cronMapIframe")[0];e(l)(a.scope());var r="",s=n.src,d=n.width,c=n.height;r=`<iframe class="cronMapIframe" src="${s}" width="${d}" height="${c}" style="border:0;" allowfullscreen="" loading="lazy"></iframe>`,a.html(r),e(r)(a.scope())}}}]).directive("signaturePad",["$compile","$window",function(e,t){"use strict";var a,n,o=null;return{restrict:"E",require:"ngModel",scope:!0,replace:!0,transclude:!0,template:"<div style=\"height: 200px; width: 100%;\"> <canvas style=\"width:100%; height: 100%;\" ng-click=\"mouseup()\" ng-mouseup=\"mouseup()\"></canvas> <div class=\"component-holder ng-scope col-md-2\" style=\"bottom: 0; position: absolute; padding-left: 5px;\" data-component=\"crn-button\"> <button class=\"button button-block button-medium filled button-energized col-xs-3\" ng-click=\"clear()\"> <i class=\"glyphicon glyphicon-erase\" icon-theme=\"\"></i> <span class=\"\" text-theme=\"\">{{'clear'|translate}}</span> </button> </div> </div>",scope:{dataurl:"=",ngClick:"@",ngModel:"="},controller:["$scope",function(t){let a=()=>{let e=t.signaturePad.toDataURL();return e&&(e=e.split(",")[1]),e};t.mouseup=function(n){t.signaturePad.isEmpty()||(t.ngModel=a())},t.$watch("ngModel",function(e,n){e!==n&&(a()!==e&&t.signaturePad.fromDataURL("data:image/png;base64,"+e,{ratio:1}),t.ngModel=e)},!0),t.clear=function(){t.signaturePad.clear(),t.ngModel=null}}],link:function(n,o,l,r,s){a=o.find("canvas")[0],n.onResize=function(){var e=Math.max(t.devicePixelRatio||1,1),a=o.find("canvas")[0],n=document.createElement("canvas");n.width=a.width,n.height=a.height;var l=n.getContext("2d");l.drawImage(a,0,0),a.width=a.offsetWidth*e,a.height=a.offsetHeight*e,a.getContext("2d").drawImage(n,0,0),a.getContext("2d").scale(e,e)},n.onResize(),n.signaturePad=new SignaturePad(a),angular.element(t).on("resize",function(){n.onResize()}),e(o)(o.scope());let d=!1;$(a).on("pointerdown",t=>{1===t.which&&(d=!0),t.preventDefault()}),$(a).on("pointerup",t=>{1===t.which&&d&&(d=!1,s(()=>angular.element(a).triggerHandler("mouseup")))})}}}]).directive("cronFrame",cronFrame).directive("crnFrame",cronFrame).directive("crnComponent",cronFrame).directive("cronVideo",["$compile",function(e){return{restrict:"AE",replace:!0,link:function(t,a,n){var o=a.find(".cronVideo")[0];e(o)(a.scope());var l=a.find(".cronVideoIframe")[0];e(l)(a.scope());var r="",s=n.src,d=n.width,c=n.height,p=n.title;r=`<iframe class="cronVideoIframe" src="${s}" width="${d}" height="${c}" title="${p}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> </iframe>`,a.html(r),e(r)(a.scope())}}}]).directive("cronSelect",["$compile",function(e){return{restrict:"E",replace:!0,require:"ngModel",link:async function(e,t,a,n){let o={};try{o=JSON.parse(a.options)}catch(e){console.error("ComboBox invalid configuration! "+e)}let l=a.id?" id=\""+a.id+"\"":"",r=a.name?" name=\""+a.name+"\"":"",s=t.parent();$(s).append("<input style=\"width: 100%;\" "+l+r+" class=\"cronSelect\"/>");let d=$(s).find("input.cronSelect"),c=a.cronDisabled,p=await app.kendoHelper.getConfigCombobox(o,e);p.close=a.ngClose?function(){e.$eval(a.ngClose)}:void 0,p.dataBound=a.ngDataBound?function(){e.$eval(a.ngDataBound)}:void 0,p.filtering=a.ngFiltering?function(){e.$eval(a.ngFiltering)}:void 0,p.select=a.ngSelect?function(){e.$eval(a.ngSelect)}:void 0,p.change=function(){f.$apply(function(){h.$setViewValue(this.value())}.bind(u))},p.messages={noData:a.noResultsMessage?a.noResultsMessage:"NO DATA FOUND"};let u;u=!0===o.dontAllowOutsideList?d.kendoDropDownList(p).data("kendoDropDownList"):d.kendoComboBox(p).data("kendoComboBox"),$(t).remove();let m,g=()=>{if(m=$(s).find(".k-input.cronSelect"),m.length){m.attr("ng-required",a.ngRequired),"true"===a.ngRequired&&m.attr("required","required"),m.attr("ng-model",a.ngModel),m.attr("id",a.id),m.attr("validationmessage",a.validationmessage);let e=m.parent();m.on("change",()=>{"true"===a.ngRequired&&(0==m.val().length?(e.addClass("ng-invalid-required"),m.addClass("ng-invalid-required")):(e.removeClass("ng-invalid-required"),m.removeClass("ng-invalid-required")))})}else setTimeout(()=>g())};g(),c?u.enable(!1):u.enable(!0);let f=e,h=n,v=!0;n&&(n.$formatters.push(function(t){let n="";return("boolean"==typeof t||t)&&(n=t),u.value(n),!v&&a.ngChange&&e.$eval(a.ngChange),v=!1,u.value(n),n}),n.$parsers.push(function(e){return m&&m.trigger("change"),"boolean"==typeof e||e?e:null}))}}}]),app.directive("kendoChat",["$compile","$timeout",function(e,t){return{restrict:"E",link:function(e,a,n){function o(){let e=$(".k-chat");e.height($(window).height()-e.offset().top)}let l=n.ngOnPostMessage,r=n.ngOnSendMessage,s=n.ngOnTypingEnd,d=n.ngOnTypingStart,c=n.ngOnActionClick,p=n.chatUserId,u=n.chatUsername,m=n.chatUserImage,g=n.chatPlaceholder,f=localStorage.getItem("_u")===void 0?null:JSON.parse(localStorage.getItem("_u")),h=window.navigator.userAgent,v="";f&&f.user&&(v=f.user.name);let y=$("<div></div>");y.kendoChat({messages:{placeholder:g},user:{id:p||h,name:u||v,iconUrl:m}}),chat=y.data("kendoChat"),chat.bind("post",t=>{if(l)try{let a={chatMessage:t};e.$eval(l,a)}catch(t){console.error(t)}}),chat.bind("sendMessage",t=>{if(r)try{let a={chatMessage:t};e.$eval(r,a)}catch(t){console.error(t)}}),chat.bind("typingStart",t=>{if(d)try{let a={chatMessage:t};e.$eval(d,a)}catch(t){console.error(t)}}),chat.bind("typingEnd",t=>{if(s)try{let a={chatMessage:t};e.$eval(s,a)}catch(t){console.error(t)}}),chat.bind("actionClick",t=>{if(c)try{let a={chatMessage:t};e.$eval(c,a)}catch(t){console.error(t)}}),a.empty().append(y),$(window).resize(()=>{o()}),t(()=>{o()})}}}])}(app),function(e){function t(){return e(this).is(":appeared")}function a(){return!e(this).data("_appear_triggered")}function n(){r=!1;for(var n,o=0,s=l.length;o<s;o++){if(n=e(l[o]).filter(t),n.filter(a).data("_appear_triggered",!0).trigger("appear",[n]),c[o]){var d=c[o].not(n);d.data("_appear_triggered",!1).trigger("disappear",[d])}c[o]=n}}function o(e){l.push(e),c.push()}var l=[],r=!1,s={interval:250,force_process:!1},d=e(window),c=[];e.expr.pseudos.appeared=e.expr.createPseudo(function(t){return function(t){var a=e(t),n=d.scrollLeft(),o=d.scrollTop(),l=a.offset(),r=l.left,s=l.top;return!!(s+a.height()>=o&&s-(a.data("appear-top-offset")||0)<=o+d.height()&&r+a.width()>=n&&r-(a.data("appear-left-offset")||0)<=n+d.width())}}),e.fn.extend({appear:function(t,a){return e.appear(this,a),this}}),e.fn.extend({appearStop:function(t,a){return e.appearStop(this,a),this}}),e.extend({appearStop:function(e,t){var a=-1;for(i=0;i<l.length;i++)if(l[i].get(0)==e.get(0)){a=i;break}-1!=a&&l.splice(a)},appear:function(t,a){var l=e.extend({},s,a||{}),d=e("ion-content");if(d.length){if(!d.get(0).checkBinded){var c=function(){r||(r=!0,setTimeout(n,l.interval))};d.scroll(c).resize(c),d.get(0).checkBinded=!0}l.force_process&&setTimeout(n,l.interval),o(t)}}})}(function(){return"undefined"==typeof module?jQuery:require("jquery")}());function maskDirectiveAsDate(e,t,a){return maskDirective(e,t,"as-date",a)}function maskDirectiveMask(e,t,a){return maskDirective(e,t,"mask",a)}function maskDirective(e,t,a,n){return{restrict:"A",require:"?ngModel",link:function(e,o,l,r){var s=n(l.ngModel),d=s.assign;if("as-date"!=a||void 0===l.mask){var c=$(o),p=c.attr("type");if("checkbox"!=p&&"password"!=p){c.data("type",p),c.attr("type","text"),r&&(r.$formatters=[],r.$parsers=[]),void 0!==l.asDate&&"text"==p&&(p="date");var u=!0,m=!1,g=l.mask||l.format;g=g?parseMaskType(g,t):parseMaskType(p,t),g.endsWith(";0")&&(m=!0);var f=g.replace(";1","").replace(";0","").replace(";local","").trim(),h=l.keyboard,v=t.instant("keyboardDecimalChar")&&1==t.instant("keyboardDecimalChar").length?t.instant("keyboardDecimalChar"):",";if(h&&parseKeyboardType(h,v,c),null!=f&&0!=f.length){if("date"==p||"datetime"==p||"datetime-local"==p||"month"==p||"time"==p||"time-local"==p||"week"==p){var y="date"==p||"datetime"==p||"time"==p;window.fixedTimeZone||(y=!1),"date"==p?(f=moment.HTML5_FMT.DATE,c.attr("type","date")):"month"==p?(f=moment.HTML5_FMT.MONTH,c.attr("type","month")):"week"==p?(f=moment.HTML5_FMT.WEEK,c.attr("type","week")):"datetime"==p||"datetime-local"==p?(f=moment.HTML5_FMT.DATETIME_LOCAL,c.attr("type","datetime-local")):("time"==p||"time-local"==p)&&(f=moment.HTML5_FMT.TIME,c.attr("type","time")),r&&(r.$formatters.push(function(e){return e?y?moment(e).utcOffset(window.timeZoneOffset).format(f):moment(e).format(f):null}),r.$parsers.push(function(e){return e?y?moment(e,f).utcOffset(window.timeZoneOffset,!0).toDate():moment(e,f).toDate():new Date(e)}))}else if("number"==p||"money"==p||"integer"==p||"money-decimal"==p){m=!0,u=!1;var b=f.trim().replace(/\./g,"").replace(/\,/g,"").replace(/#/g,"").replace(/0/g,"").replace(/9/g,"");h||("integer"==p||"money-decimal"==p?h="integer":h="number");var k="",x="",T="",M=",",w=0;f.startsWith(b)?k=b:f.endsWith(b)&&(x=b);var C=f.trim().replace(k,"").replace(x,"").trim();C.startsWith("#.")?T=".":C.startsWith("#,")&&(T=",");var S=null;if(-1==C.indexOf(",0")?-1!=C.indexOf(".0")&&(M=".",S=".0"):(M=",",S=",0"),null!=S){var D=C.substring(C.indexOf(S)+1);w=D.length}var F="numeric";0==w&&(F="integer");var P={rightAlign:"money"==p||"money-decimal"==p,unmaskAsNumber:!0,allowMinus:"money"!=p&&"money-decimal"!=p,prefix:k,suffix:x,radixPoint:M,digits:w,numericInput:"money-decimal"==p};T&&(P.autoGroup=!0,P.groupSeparator=T),"money-decimal"==p&&(F="currency"),$(o).inputmask(F,P),useInputMaskPlugin(o,r,e,d,f)}else"text"==p||"tel"==p?(h||"tel"!=p||(h="tel"),l.maskPlaceholder?(options={},options.placeholder=l.maskPlaceholder,$(o).inputmask(f,options),$(o).off("keypress"),m&&useInputMaskPlugin(o,r,e,d,f)):(c.mask(f),useMaskPlugin(o,r,e,d,m))):("email"==p||"password"==p||"search"==p)&&(h||(h=p));h&&parseKeyboardType(h,v,c)}}}}}}function useInputMaskPlugin(e,t,a,n,o){var l=$(e),r=function(t){var o=$(this).inputmask("unmaskedvalue");$(this).data("rawvalue",o),e._ignoreFormatter=!0,a.safeApply(function(){n(a,o)})};$(e).off("keypress"),$(e).on("keyup",r),t&&(t.$formatters.push(function(t){return e._ignoreFormatter?(e._ignoreFormatter=!1,$(e).val()):(e._ignoreFormatter=!1,null!=t&&null!=t&&""!==t?format(o,t):null)}),t.$parsers.push(function(e){if(e!=null&&null!=e&&""!==e){var t=l.inputmask("unmaskedvalue");if(""!==t)return t}return null}))}function useMaskPlugin(e,t,a,n,o){var l=$(e),r=function(){o&&$(this).data("rawvalue",$(this).cleanVal())};$(e).on("keydown",r).on("keyup",r),o&&t&&(t.$formatters.push(function(e){return e?l.masked(e):null}),t.$parsers.push(function(e){return e?l.cleanVal():null}))}function parseKeyboardType(e,t,a){("integer"==e||"number"==e||"tel"==e)&&(a.attr("pattern","\\d*"),a.attr("inputmode","decimal")),("tel"==e||"email"==e||"search"==e||"password"==e)&&a.attr("type",e),"ios"===cordova.platformId&&"number"==e&&(a.attr("decimal","true"),a.attr("allow-multiple-decimals","true"),a.attr("decimal-char",t))}function parseMaskType(e,t){return"datetime"==e||"datetime-local"==e?(e=t.instant("Format.DateTime"),"Format.DateTime"==e&&(e="DD/MM/YYYY HH:mm:ss")):"date"==e?(e=t.instant("Format.Date"),"Format.Date"==e&&(e="DD/MM/YYYY")):"time"==e||"time-local"==e?(e=t.instant("Format.Hour"),"Format.Hour"==e&&(e="HH:mm:ss")):"month"==e?e="MMMM":"number"==e?(e=t.instant("Format.Decimal"),"Format.Decimal"==e&&(e="0,00")):"money"==e||"money-decimal"==e?(e=t.instant("Format.Money"),"Format.Money"==e&&(e="#.#00,00")):"integer"==e?e="0":"week"==e?e="dddd":"tel"==e?e="(99) 99999-9999;0":"text"==e?e="":"string"==e&&(e=""),e}function transformText(){return{restrict:"E",require:"?ngModel",link:function(e,t,a,n){let o=function(e,t){if(e&&t&&("string"==typeof t||t instanceof String)){if("uppercase"===e.css("text-transform"))return t.toUpperCase();if("lowercase"===e.css("text-transform"))return t.toLowerCase()}return t};n&&(n.$formatters.push(function(e){return o(t,e)}),n.$parsers.push(function(e){return o(t,e)}))}}}function cronFrame($compile,$sce,$parse){"use strict";return{restrict:"AE",link:function(scope,element,attrs,ngModelCtrl){scope.fragment=scope.fragment||{};var framentMap=scope.fragment[element.parent.id]||{};scope.$watch(function(){return attrs.origin},function(newVal){let template="",style=attrs.style||"",clazz=attrs.class||"";if(attrs.origin)if(attrs.type||(attrs.type="include"),"include"==attrs.type){let str=`<div style="${style}" class="${clazz}" ng-include="'${attrs.origin}'" ng-if="true"></div>`;if(template=$(str),attrs.params)try{let params=eval(attrs.params);for(let e in params){let t=params[e];"expression"==t.type?scope.$watch(t.value,function(e){framentMap[t.key]=e;var a=$(str);a.attr("onload",`params = ${JSON.stringify(framentMap)}`);var n=$compile(a)(scope);element.html(n)}):framentMap[t.key]=t.value}template.attr("onload",`params = ${JSON.stringify(framentMap)}`)}catch(e){console.error(e)}}else if("frame"==attrs.type){var url=$sce.trustAsResourceUrl(attrs.origin);template=$(`<iframe style="${style}" class="${clazz}" ng-src="${url}" width="100%" height="100%" loading="lazy"></iframe>`)}let html=angular.element(template);html=$compile(html)(scope),element.html(""),element.append(html)})}}}app.kendoHelper={parseOptionsCronToConfigKendo:function(e,t,a){let n=!1;e.dynamic&&"false"!=e.dynamic?e.dataSourceScreen&&e.dataSourceScreen.entityDataSource&&(e.dataSourceScreen.entityDataSource.append=!0,t=app.kendoHelper.getDataSource(e.dataSourceScreen.entityDataSource,a,!0,e.dataSourceScreen.rowsPerPage),t.transport.read=app.kendoHelper.getEventReadCombo,n=!0):(n=!0,e.dataValueField=e.dataValueField||"value",e.dataTextField=e.dataTextField||"key"),e.dataValueField&&""!=e.dataValueField.trim()||(e.dataValueField=null==e.dataTextField?void 0:e.dataTextField);var o=function(t){var a=e.dataSourceScreen.entityDataSource.schemaFields;for(count=0;count<a.length;count++)if(t==a[count].name){return a[count].type.toLowerCase();break}return null},l=function(e){var t=["date","time","datetime"];return-1<t.indexOf(e)?e:null};!e.customTemplate&&e.dataSourceScreen&&e.dataSourceScreen.entityDataSource&&e.dataSourceScreen.entityDataSource.schemaFields&&(e.format||l(o(e.dataTextField)))&&(e.template="#= useMask("+e.dataTextField+",'"+e.format+"','"+o(e.dataTextField)+"') #",e.valueTemplate="#= useMask("+e.dataTextField+",'"+e.format+"','"+o(e.dataTextField)+"') #");var r={dataTextField:null==e.dataTextField?void 0:e.dataTextField,dataValueField:null==e.dataValueField?void 0:e.dataValueField,dataSource:t,headerTemplate:null==e.headerTemplate?void 0:e.headerTemplate,template:null==e.template?void 0:e.template,placeholder:null==e.placeholder?void 0:e.placeholder,footerTemplate:null==e.footerTemplate?void 0:e.footerTemplate,filter:null==e.filter?void 0:e.filter,valuePrimitive:n,valueTemplate:null==e.valueTemplate?void 0:e.valueTemplate,suggest:!0};return e.optionLabel&&(e.optionLabelText=e.optionLabel,e.optionLabelValue=""),r.optionLabel={},r.optionLabel[r.dataTextField]=void 0===e.optionLabelText?"":e.optionLabelText,r.optionLabel[r.dataValueField]=void 0===e.optionLabelValue?null:e.optionLabelValue,r},getConfigCombobox:async function(e,t){let a={};if(e){if(!e.dynamic||"false"==e.dynamic){a.data=null==e.staticDataSource?void 0:e.staticDataSource;for(let n=0;n<a.data.length;n++)try{a.data[n].key&&a.data[n].key.startsWith("cronapi.server(")&&(a.data[n].key=a.data[n].key.replace(".run(",".toPromise().run("));let e=await t.$eval(a.data[n].key);a.data[n].key=void 0!==e&&null!==e?e:a.data[n].key}catch(t){a.data[n].key=a.data[n].key}}return config=this.parseOptionsCronToConfigKendo(e,a,t),config}return{}}};
|
package/js/app.authentication.js
CHANGED
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
'$stateParams',
|
|
17
17
|
'$ionicModal',
|
|
18
18
|
'$cookies',
|
|
19
|
-
|
|
19
|
+
'SyncService',
|
|
20
|
+
function($scope, $http, $location, $rootScope, $window, $state, $translate, Notification, ReportService, $ionicLoading, $timeout, $stateParams, $ionicModal, $cookies, SyncService) {
|
|
20
21
|
|
|
21
22
|
// Make refreshToken method available on $rootScope
|
|
22
23
|
$rootScope.refreshToken = window.refreshToken;
|
|
@@ -199,7 +200,8 @@
|
|
|
199
200
|
'$controller',
|
|
200
201
|
'UploadService',
|
|
201
202
|
'ReportService',
|
|
202
|
-
|
|
203
|
+
'SyncService',
|
|
204
|
+
function($scope, $http, $rootScope, $state, $timeout, $translate, Notification, $ionicHistory, $ionicModal, $ionicLoading, $stateParams, $location, $controller, UploadService, ReportService, SyncService) {
|
|
203
205
|
|
|
204
206
|
app.registerEventsCronapi($scope, $translate,$ionicModal,$ionicLoading);
|
|
205
207
|
$rootScope.http = $http;
|
|
@@ -548,7 +550,8 @@
|
|
|
548
550
|
'$timeout',
|
|
549
551
|
'UploadService',
|
|
550
552
|
'ReportService',
|
|
551
|
-
|
|
553
|
+
'SyncService',
|
|
554
|
+
function($scope, $stateParams, Notification, $location, $http, $rootScope, $translate, $ionicModal, $ionicLoading, $timeout, UploadService, ReportService, SyncService) {
|
|
552
555
|
|
|
553
556
|
app.registerEventsCronapi($scope, $translate,$ionicModal, $ionicLoading);
|
|
554
557
|
|
package/js/directives.js
CHANGED
|
@@ -2001,6 +2001,10 @@ window.addEventListener('message', function(event) {
|
|
|
2001
2001
|
}.bind(combobox));
|
|
2002
2002
|
};
|
|
2003
2003
|
|
|
2004
|
+
options.messages = {
|
|
2005
|
+
noData: attrs.noResultsMessage ? attrs.noResultsMessage : "NO DATA FOUND"
|
|
2006
|
+
};
|
|
2007
|
+
|
|
2004
2008
|
let combobox;
|
|
2005
2009
|
if (select.dontAllowOutsideList === true) {
|
|
2006
2010
|
combobox = $element.kendoDropDownList(options).data('kendoDropDownList');
|