cronapp-framework-mobile-js 3.0.0-SP.29 → 3.0.0-SP.30

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.
@@ -4,7 +4,6 @@
4
4
  @import 'crn-ion-segment.css';
5
5
  @import 'crn-ion-footer-bar.css';
6
6
  @import 'color-default.css';
7
- @import 'calendar-icon.css';
8
7
 
9
8
  :root {
10
9
  --white: #ffffff;
@@ -1 +1 @@
1
- @import "tabs-color.css";@import 'background-color.css';@import 'icon-size.css';@import 'crn-ion-segment.css';@import 'crn-ion-footer-bar.css';@import 'color-default.css';@import 'calendar-icon.css';:root{--white:#fff;--white_focus_hover:#dfdfdf;--gray:#333;--gray_focus_hover:#2d2d2d;--black:#000;--black_focus_hover:#7b7b7b;--blue:#0247fe;--blue_focus_hover:#01278b;--light-blue:#85a5ff;--light-blue_focus_hover:#495a8c;--dark-blue:#00217a;--dark-blue_focus_hover:#001243;--purple:#3d01a4;--purple_focus_hover:#21015a;--light-purple:#b285ff;--light-purple_focus_hover:#61498c;--dark-purple:#2d007a;--dark-purple_focus_hover:#190043;--red:#fe2712;--red_focus_hover:#8b150a;--light-red:#fe8f84;--light-red_focus_hover:#8b4e48;--dark-red:#7a0b00;--dark-red_focus_hover:#430600;--orange:#fb9b02;--orange_focus_hover:#895501;--light-orange:#ffd085;--light-orange_focus_hover:#8c7249;--dark-orange:#7a4b00;--dark-orange_focus_hover:#432900;--yellow:#ff3;--yellow_focus_hover:#8c8c1c;--light-yellow:#ffff85;--light-yellow_focus_hover:#8c8c49;--dark-yellow:#7a7a00;--dark-yellow_focus_hover:#434300;--green:#66b032;--green_focus_hover:#38601b;--light-green:#b7ff85;--light-green_focus_hover:#648c49;--dark-green:#337a00;--dark-green_focus_hover:#1c4300}.font-size-100{font-size:100%}.font-size-200{font-size:200%}.font-size-300{font-size:300%}.font-size-400{font-size:400%}.font-size-500{font-size:500%}.font-size-600{font-size:600%}.font-size-700{font-size:700%}.top-13{top:13%}.top-50{top:50%}.top-78{top:78%}.font-size-small{font-size:var(--textSmallSize,12px)}.font-size-normal{font-size:var(--textNormalSize,14px)}.font-size-default{font-size:var(--textMediumSize,16px)}.font-size-big{font-size:var(--textBigSize,18px)}.font-size-extra-big{font-size:var(--textExtraBigSize,23px)}.icon-font-size-default{font-size:var(--iconSizeDefault,28px)}.icon-font-size-small{font-size:var(--iconSizeSmall,25px)}.icon-font-size-big{font-size:var(--iconSizeBig,31px)}.icon-font-size-extra-big{font-size:var(--iconSizeExtraBig,34px)}.slider-pager .slider-pager-page>i{font-size:calc(0.6 * var(--iconSizeSmall, 25px))}
1
+ @import "tabs-color.css";@import 'background-color.css';@import 'icon-size.css';@import 'crn-ion-segment.css';@import 'crn-ion-footer-bar.css';@import 'color-default.css';:root{--white:#fff;--white_focus_hover:#dfdfdf;--gray:#333;--gray_focus_hover:#2d2d2d;--black:#000;--black_focus_hover:#7b7b7b;--blue:#0247fe;--blue_focus_hover:#01278b;--light-blue:#85a5ff;--light-blue_focus_hover:#495a8c;--dark-blue:#00217a;--dark-blue_focus_hover:#001243;--purple:#3d01a4;--purple_focus_hover:#21015a;--light-purple:#b285ff;--light-purple_focus_hover:#61498c;--dark-purple:#2d007a;--dark-purple_focus_hover:#190043;--red:#fe2712;--red_focus_hover:#8b150a;--light-red:#fe8f84;--light-red_focus_hover:#8b4e48;--dark-red:#7a0b00;--dark-red_focus_hover:#430600;--orange:#fb9b02;--orange_focus_hover:#895501;--light-orange:#ffd085;--light-orange_focus_hover:#8c7249;--dark-orange:#7a4b00;--dark-orange_focus_hover:#432900;--yellow:#ff3;--yellow_focus_hover:#8c8c1c;--light-yellow:#ffff85;--light-yellow_focus_hover:#8c8c49;--dark-yellow:#7a7a00;--dark-yellow_focus_hover:#434300;--green:#66b032;--green_focus_hover:#38601b;--light-green:#b7ff85;--light-green_focus_hover:#648c49;--dark-green:#337a00;--dark-green_focus_hover:#1c4300}.font-size-100{font-size:100%}.font-size-200{font-size:200%}.font-size-300{font-size:300%}.font-size-400{font-size:400%}.font-size-500{font-size:500%}.font-size-600{font-size:600%}.font-size-700{font-size:700%}.top-13{top:13%}.top-50{top:50%}.top-78{top:78%}.font-size-small{font-size:var(--textSmallSize,12px)}.font-size-normal{font-size:var(--textNormalSize,14px)}.font-size-default{font-size:var(--textMediumSize,16px)}.font-size-big{font-size:var(--textBigSize,18px)}.font-size-extra-big{font-size:var(--textExtraBigSize,23px)}.icon-font-size-default{font-size:var(--iconSizeDefault,28px)}.icon-font-size-small{font-size:var(--iconSizeSmall,25px)}.icon-font-size-big{font-size:var(--iconSizeBig,31px)}.icon-font-size-extra-big{font-size:var(--iconSizeExtraBig,34px)}.slider-pager .slider-pager-page>i{font-size:calc(0.6 * var(--iconSizeSmall, 25px))}
@@ -14,29 +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>&nbsp;{{\"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>&nbsp;{{\"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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")},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||dataSource.isOfflineMode())&&(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");0!=a.width&&0!=a.height&&l.drawImage(a,0,0),a.width=a.offsetWidth*e,a.height=a.offsetHeight*e,0!=n.width&&0!=n.height&&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){function o(e){return"date"===e?moment.HTML5_FMT.DATE:"month"===e?moment.HTML5_FMT.MONTH:"week"===e?moment.HTML5_FMT.WEEK:"datetime-local"===e?moment.HTML5_FMT.DATETIME_LOCAL:"time"===e?moment.HTML5_FMT.TIME:"MM/DD/YYYY"}function l(e,t,a,n){if(e.attr("type","text"),e.css("border","none"),e.on("focus",function(){this.type=n,"date"===n&&this.showPicker&&this.showPicker()}).on("blur",function(){if(this.value){this.type="text";var e=moment(this.value,"YYYY-MM-DD").format(a);t.$setViewValue(e),t.$render()}else this.type=n}),t&&(t.$formatters.push(function(e){return e?moment(e).format(a):""}),t.$parsers.push(function(e){return e?moment(e,a).toDate():null}),t.$render=function(){e.val(t.$viewValue||"")},!e.val()&&!t.$viewValue)){var o=new Date;t.$setViewValue(moment(o).format(a)),t.$render()}}return{restrict:"A",require:"?ngModel",link:function(e,n,r,s){var d=$(n),c=d.attr("type");if(0===d.next(".calendar-icon").length){function e(){p.css("visibility",d.is(":focus")||!d.val()?"hidden":"visible")}var p=$("<i class=\"fa fa-calendar-o calendar-icon\"></i>");if(d.after(p),"as-date"==a&&void 0!==r.mask)return;p.on("click",function(){d.focus(),"date"===c&&"text"===d[0].type&&(d[0].type=c)}),setTimeout(e,0),d.on("focus blur input change",e)}if(["date","month","week","datetime-local","time"].includes(c)){var u=r.mask||o(c);l(d,s,u,c)}if("checkbox"!==c&&"password"!==c){d.data("type",c),d.attr("type","text"),s&&(s.$formatters=[],s.$parsers=[]),void 0!==r.asDate&&"text"==c&&(c="date");var m=!0,g=!1,f=r.mask||r.format;f=f?parseMaskType(f,t):parseMaskType(c,t),f.endsWith(";0")&&(g=!0);var u=f.replace(";1","").replace(";0","").replace(";local","").trim(),h=r.keyboard,v=t.instant("keyboardDecimalChar")&&1==t.instant("keyboardDecimalChar").length?t.instant("keyboardDecimalChar"):",";if(h&&parseKeyboardType(h,v,d),u&&0!=u.length){if("number"===c||"money"===c||"integer"===c||"money-decimal"===c){g=!0,m=!1;var y=u.trim().replace(/\./g,"").replace(/\,/g,"").replace(/#/g,"").replace(/0/g,"").replace(/9/g,"");h||("integer"===c||"money-decimal"===c?h="integer":h="number");var b="",k="",x="",T=",",w=0;u.startsWith(y)?b=y:u.endsWith(y)&&(k=y);var M=u.trim().replace(b,"").replace(k,"").trim();M.startsWith("#.")?x=".":M.startsWith("#,")&&(x=",");var C=null;if(-1==M.indexOf(",0")?-1!=M.indexOf(".0")&&(T=".",C=".0"):(T=",",C=",0"),null!=C){var D=M.substring(M.indexOf(C)+1);w=D.length}var S="numeric";0==w&&(S="integer");var F={rightAlign:"money"===c||"money-decimal"===c,unmaskAsNumber:!0,allowMinus:"money"!==c&&"money-decimal"!==c,prefix:b,suffix:k,radixPoint:T,digits:w,numericInput:"money-decimal"===c};x&&(F.autoGroup=!0,F.groupSeparator=x),"money-decimal"===c&&(S="currency"),$(n).inputmask(S,F),useInputMaskPlugin(n,s,e,u)}else"text"===c||"tel"===c?applyTextMask(d,u,h,r.maskPlaceholder,g,s,e):("email"===c||"password"===c||"search"===c)&&(h||(h=c));h&&parseKeyboardType(h,v,d)}}}}}(function t(e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):window.NativeDatepicker=e()})(function(){function e(e){this.options=Object.assign({win:"undefined"==typeof window?void 0:window,existingElement:null,onChange:function(){},initialValue:""},e),this.addStylesheet(),this.buildDom(),this.setValue(this.options.initialValue)}var t={wrapper:"NativeDatepicker",input:"NativeDatepicker__input"},a=/\d{4}-\d{2}-\d{2}/;return e.prototype.setValue=function(e){var t=e.match(a);t&&(this.dateInputElement.value=t[0],this.options.onChange(t[0]))},e.prototype.parseDate=function(e){var t=e.split("/");return`${t[2]}-${t[1]}-${t[0]}`},e.prototype.buildDom=function(){var e=this.options.existingElement||this.options.win.document.createElement("span");e.classList.add(t.wrapper),this.element=e;var a=this.options.win.document.createElement("input");a.type="date",a.classList.add(t.input),e.appendChild(a),this.dateInputElement=a,this.dateInputElement.addEventListener("input",()=>{var e=this.dateInputElement.value,t=this.parseDate(e);this.options.onChange(t)}),this.isSupported()||(e.style.display="none")},e.prototype.addStylesheet=function(){var e="NativeDatepickerStyles";if(!this.options.win.document.querySelector("#NativeDatepickerStyles")){var a=this.options.win.document.createElement("style");a.id="NativeDatepickerStyles",a.textContent=`
18
- .${t.wrapper} {
19
- display: inline-block;
20
- position: relative;
21
- }
22
- .${t.input} {
23
- position: absolute;
24
- left: 0;
25
- top: 0;
26
- width: 100%;
27
- height: 100%;
28
- opacity: 0;
29
- cursor: pointer;
30
- box-sizing: border-box;
31
- }
32
- .${t.input}::-webkit-calendar-picker-indicator {
33
- position: absolute;
34
- left: 0;
35
- top: 0;
36
- width: 100%;
37
- height: 100%;
38
- margin: 0;
39
- padding: 0;
40
- cursor: pointer;
41
- }
42
- `,this.options.win.document.head.appendChild(a)}},e.prototype.isSupported=function(){var e=this.options.win.document.createElement("input");return e.type="date",e.value="invalid date value","invalid date value"!==e.value},e});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>&nbsp;{{\"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>&nbsp;{{\"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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")},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||dataSource.isOfflineMode())&&(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");0!=a.width&&0!=a.height&&l.drawImage(a,0,0),a.width=a.offsetWidth*e,a.height=a.offsetHeight*e,0!=n.width&&0!=n.height&&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/directives.js CHANGED
@@ -2357,44 +2357,22 @@ function maskDirective($compile, $translate, attrName, $parse) {
2357
2357
  restrict: 'A',
2358
2358
  require: '?ngModel',
2359
2359
  link: function (scope, element, attrs, ngModelCtrl) {
2360
- var $element = $(element);
2361
- var type = $element.attr("type");
2362
-
2363
- if ($element.next('.calendar-icon').length === 0) {
2364
- var $icon = $('<i class="fa fa-calendar-o calendar-icon"></i>');
2365
- $element.after($icon);
2366
-
2367
- if(attrName == 'as-date' && attrs.mask !== undefined){
2368
- return;
2369
- }
2370
2360
 
2371
- $icon.on('click', function() {
2372
- $element.focus();
2373
- if (type === 'date' && $element[0].type === 'text') {
2374
- $element[0].type = type;
2375
- }
2376
- });
2377
-
2378
- function updateIconVisibility() {
2379
- $icon.css('visibility', $element.is(':focus') || !$element.val() ? 'hidden' : 'visible');
2380
- }
2381
-
2382
- setTimeout(updateIconVisibility, 0);
2361
+ var modelGetter = $parse(attrs['ngModel']);
2362
+ var modelSetter = modelGetter.assign;
2383
2363
 
2384
- $element.on('focus blur input change', updateIconVisibility);
2385
- }
2364
+ if(attrName == 'as-date' && attrs.mask !== undefined)
2365
+ return;
2386
2366
 
2387
- if (['date', 'month', 'week', 'datetime-local', 'time'].includes(type)) {
2388
- var mask = attrs.mask || getDefaultMask(type);
2367
+ var $element = $(element);
2389
2368
 
2390
- setupDatePicker($element, ngModelCtrl, mask, type);
2391
- }
2369
+ var type = $element.attr("type");
2392
2370
 
2393
- if (type === 'checkbox' || type === 'password') {
2371
+ if (type == "checkbox" || type == "password")
2394
2372
  return;
2395
- }
2396
2373
 
2397
2374
  $element.data("type", type);
2375
+
2398
2376
  $element.attr("type", "text");
2399
2377
 
2400
2378
  if (ngModelCtrl) {
@@ -2402,11 +2380,11 @@ function maskDirective($compile, $translate, attrName, $parse) {
2402
2380
  ngModelCtrl.$parsers = [];
2403
2381
  }
2404
2382
 
2405
- if (attrs.asDate !== undefined && type == 'text') {
2383
+ if (attrs.asDate !== undefined && type == 'text')
2406
2384
  type = "date";
2407
- }
2408
2385
 
2409
2386
  var textMask = true;
2387
+
2410
2388
  var removeMask = false;
2411
2389
 
2412
2390
  var attrMask = attrs.mask || attrs.format;
@@ -2423,28 +2401,75 @@ function maskDirective($compile, $translate, attrName, $parse) {
2423
2401
 
2424
2402
  var mask = attrMask.replace(';1', '').replace(';0', '').replace(';local', '').trim();
2425
2403
 
2426
-
2427
2404
  var keyboard = attrs.keyboard;
2428
2405
  var keyboardDecimalChar = $translate.instant('keyboardDecimalChar') && $translate.instant('keyboardDecimalChar').length == 1 ? $translate.instant('keyboardDecimalChar') : ',';
2429
2406
 
2430
2407
  if (keyboard) {
2431
- parseKeyboardType(keyboard, keyboardDecimalChar, $element);
2408
+ parseKeyboardType(keyboard, keyboardDecimalChar, $element)
2432
2409
  }
2433
2410
 
2434
- if (!mask || mask.length == 0) {
2411
+ if (mask == undefined || mask.length == 0) {
2435
2412
  return;
2436
2413
  }
2437
2414
 
2415
+ if (type == 'date' || type == 'datetime' || type == 'datetime-local' || type == 'month' || type == 'time' || type == 'time-local' || type == 'week') {
2416
+ var useUTC = type == 'date' || type == 'datetime' || type == 'time';
2417
+
2418
+ if (!window.fixedTimeZone) {
2419
+ useUTC = false;
2420
+ }
2421
+
2422
+ if(type == 'date'){
2423
+ mask = moment.HTML5_FMT.DATE;
2424
+ $element.attr("type", "date");
2425
+ }
2426
+ else if(type == 'month'){
2427
+ mask = moment.HTML5_FMT.MONTH;
2428
+ $element.attr("type", "month");
2429
+ }else if( type == 'week'){
2430
+ mask = moment.HTML5_FMT.WEEK;
2431
+ $element.attr("type", "week");
2432
+ }else if( type == 'datetime' || type == 'datetime-local' ){
2433
+ mask = moment.HTML5_FMT.DATETIME_LOCAL;
2434
+ $element.attr("type", "datetime-local");
2435
+ }else if( type == 'time' || type == 'time-local' ){
2436
+ mask = moment.HTML5_FMT.TIME;
2437
+ $element.attr("type", "time");
2438
+ }
2439
+
2440
+ if (ngModelCtrl) {
2441
+ ngModelCtrl.$formatters.push(function (value) {
2442
+
2443
+ if(value){
2444
+ if(useUTC){
2445
+ return moment(value).utcOffset(window.timeZoneOffset).format(mask);
2446
+ }
2447
+ return moment(value).format(mask);
2448
+ }else{
2449
+ return null;
2450
+ }
2451
+ });
2452
+
2453
+ ngModelCtrl.$parsers.push(function (value) {
2454
+ if (value) {
2455
+ if(useUTC){
2456
+ return moment(value, mask).utcOffset(window.timeZoneOffset, true).toDate();
2457
+ }
2458
+ return moment(value,mask).toDate();
2459
+ }
2460
+ return new Date(value);
2461
+ });
2462
+ }
2438
2463
 
2439
- if (type === 'number' || type === 'money' || type === 'integer' || type === 'money-decimal') {
2464
+ } else if (type == 'number' || type == 'money' || type == 'integer' || type == 'money-decimal') {
2440
2465
  removeMask = true;
2441
2466
  textMask = false;
2442
2467
 
2443
2468
  var currency = mask.trim().replace(/\./g, '').replace(/\,/g, '').replace(/#/g, '').replace(/0/g, '').replace(/9/g, '');
2444
2469
 
2445
2470
  if (!keyboard) {
2446
- if (type === 'integer' || type === 'money-decimal') {
2447
- keyboard = "integer";
2471
+ if(type == 'integer' || type == 'money-decimal') {
2472
+ keyboard = "integer"
2448
2473
  } else {
2449
2474
  keyboard = "number";
2450
2475
  }
@@ -2458,7 +2483,8 @@ function maskDirective($compile, $translate, attrName, $parse) {
2458
2483
 
2459
2484
  if (mask.startsWith(currency)) {
2460
2485
  prefix = currency;
2461
- } else if (mask.endsWith(currency)) {
2486
+ }
2487
+ else if (mask.endsWith(currency)) {
2462
2488
  suffix = currency;
2463
2489
  }
2464
2490
 
@@ -2466,7 +2492,8 @@ function maskDirective($compile, $translate, attrName, $parse) {
2466
2492
 
2467
2493
  if (pureMask.startsWith("#.")) {
2468
2494
  thousands = '.';
2469
- } else if (pureMask.startsWith("#,")) {
2495
+ }
2496
+ else if (pureMask.startsWith("#,")) {
2470
2497
  thousands = ',';
2471
2498
  }
2472
2499
 
@@ -2475,7 +2502,8 @@ function maskDirective($compile, $translate, attrName, $parse) {
2475
2502
  if (pureMask.indexOf(",0") != -1) {
2476
2503
  decimal = ',';
2477
2504
  dMask = ",0";
2478
- } else if (pureMask.indexOf(".0") != -1) {
2505
+ }
2506
+ else if (pureMask.indexOf(".0") != -1) {
2479
2507
  decimal = '.';
2480
2508
  dMask = ".0";
2481
2509
  }
@@ -2487,19 +2515,19 @@ function maskDirective($compile, $translate, attrName, $parse) {
2487
2515
 
2488
2516
  var inputmaskType = 'numeric';
2489
2517
 
2490
- if (precision == 0) {
2518
+ if (precision == 0){
2491
2519
  inputmaskType = 'integer';
2492
2520
  }
2493
2521
 
2494
2522
  var ipOptions = {
2495
- 'rightAlign': (type === 'money' || type === 'money-decimal'),
2523
+ 'rightAlign': (type == 'money' || type == 'money-decimal'),
2496
2524
  'unmaskAsNumber': true,
2497
- 'allowMinus': (type === 'money' || type === 'money-decimal') ? false : true,
2525
+ 'allowMinus': (type == 'money' || type == 'money-decimal') ? false : true,
2498
2526
  'prefix': prefix,
2499
2527
  'suffix': suffix,
2500
2528
  'radixPoint': decimal,
2501
2529
  'digits': precision,
2502
- 'numericInput': (type === 'money-decimal')
2530
+ 'numericInput' : (type == 'money-decimal')
2503
2531
  };
2504
2532
 
2505
2533
  if (thousands) {
@@ -2507,190 +2535,52 @@ function maskDirective($compile, $translate, attrName, $parse) {
2507
2535
  ipOptions['groupSeparator'] = thousands;
2508
2536
  }
2509
2537
 
2510
- if (type === 'money-decimal') {
2538
+ if(type == 'money-decimal'){
2511
2539
  inputmaskType = 'currency';
2512
2540
  }
2513
2541
 
2514
2542
  $(element).inputmask(inputmaskType, ipOptions);
2515
2543
 
2516
- useInputMaskPlugin(element, ngModelCtrl, scope, mask);
2517
- } else if (type === 'text' || type === 'tel') {
2518
- applyTextMask($element, mask, keyboard, attrs.maskPlaceholder, removeMask, ngModelCtrl, scope);
2519
- } else if (type === 'email' || type === 'password' || type === 'search') {
2520
- if (!keyboard) {
2521
- keyboard = type;
2522
- }
2544
+ useInputMaskPlugin(element, ngModelCtrl, scope, modelSetter, mask);
2523
2545
  }
2546
+ else if (type == 'text' || type == 'tel') {
2524
2547
 
2525
- if (keyboard) {
2526
- parseKeyboardType(keyboard, keyboardDecimalChar, $element);
2527
- }
2528
- }
2529
- };
2548
+ if (!keyboard) {
2549
+ if(type == 'tel') {
2550
+ keyboard = "tel"
2551
+ }
2552
+ }
2530
2553
 
2531
- function getDefaultMask(type) {
2532
- switch (type) {
2533
- case 'date': return moment.HTML5_FMT.DATE;
2534
- case 'month': return moment.HTML5_FMT.MONTH;
2535
- case 'week': return moment.HTML5_FMT.WEEK;
2536
- case 'datetime-local': return moment.HTML5_FMT.DATETIME_LOCAL;
2537
- case 'time': return moment.HTML5_FMT.TIME;
2538
- default: return 'MM/DD/YYYY';
2539
- }
2540
- }
2554
+ if(!attrs.maskPlaceholder){
2555
+ $element.mask(mask);
2556
+ useMaskPlugin(element, ngModelCtrl, scope, modelSetter, removeMask);
2557
+ }
2558
+ else{
2559
+ options = {};
2560
+ options['placeholder'] = attrs.maskPlaceholder
2561
+ $(element).inputmask(mask, options);
2562
+ $(element).off('keypress');
2563
+ if(removeMask){
2564
+ useInputMaskPlugin(element, ngModelCtrl, scope, modelSetter, mask);
2565
+ }
2566
+ }
2541
2567
 
2542
- function setupDatePicker($element, ngModelCtrl, mask, type) {
2543
- $element.attr("type", "text");
2544
- $element.css('border', 'none');
2545
-
2546
- $element.on('focus', function() {
2547
- this.type = type;
2548
- if (type === 'date' && this.showPicker) {
2549
- this.showPicker();
2550
- }
2551
- }).on('blur', function() {
2552
- if (this.value) {
2553
- this.type = 'text';
2554
- var formattedValue = moment(this.value, 'YYYY-MM-DD').format(mask);
2555
- ngModelCtrl.$setViewValue(formattedValue);
2556
- ngModelCtrl.$render();
2557
- } else {
2558
- this.type = type;
2559
2568
  }
2560
- });
2561
-
2562
- if (ngModelCtrl) {
2563
- ngModelCtrl.$formatters.push(function(value) {
2564
- return value ? moment(value).format(mask) : '';
2565
- });
2566
-
2567
- ngModelCtrl.$parsers.push(function(value) {
2568
- return value ? moment(value, mask).toDate() : null;
2569
- });
2570
-
2571
- ngModelCtrl.$render = function() {
2572
- $element.val(ngModelCtrl.$viewValue || '');
2573
- };
2569
+ else if(type == 'email' || type == 'password' || type == 'search'){
2570
+ if (!keyboard) {
2571
+ keyboard = type;
2572
+ }
2573
+ }
2574
2574
 
2575
- if (!$element.val() && !ngModelCtrl.$viewValue) {
2576
- var today = new Date();
2577
- ngModelCtrl.$setViewValue(moment(today).format(mask));
2578
- ngModelCtrl.$render();
2575
+ if (keyboard) {
2576
+ parseKeyboardType(keyboard, keyboardDecimalChar, $element)
2579
2577
  }
2580
2578
  }
2581
2579
  }
2582
2580
  }
2583
2581
 
2584
- (function nativeDatepickerFactory(factory) {
2585
- if (typeof exports === 'object' && typeof module === 'object') {
2586
- module.exports = factory();
2587
- } else if (typeof define === 'function' && define.amd) {
2588
- define(factory);
2589
- } else {
2590
- window['NativeDatepicker'] = factory();
2591
- }
2592
- })(function() {
2593
- var classNames = {
2594
- wrapper: 'NativeDatepicker',
2595
- input: 'NativeDatepicker__input',
2596
- };
2597
-
2598
- var dateRegex = /\d{4}-\d{2}-\d{2}/;
2599
-
2600
- function NativeDatepicker(options) {
2601
- this.options = Object.assign({
2602
- win: typeof window !== 'undefined' ? window : undefined,
2603
- existingElement: null,
2604
- onChange: function() {},
2605
- initialValue: '',
2606
- }, options);
2607
-
2608
- this.addStylesheet();
2609
- this.buildDom();
2610
- this.setValue(this.options.initialValue);
2611
- }
2612
-
2613
- NativeDatepicker.prototype.setValue = function(fullString) {
2614
- var match = fullString.match(dateRegex);
2615
- if (match) {
2616
- this.dateInputElement.value = match[0];
2617
- this.options.onChange(match[0]);
2618
- }
2619
- };
2620
-
2621
- NativeDatepicker.prototype.parseDate = function(dateString) {
2622
- var parts = dateString.split('/');
2623
- return `${parts[2]}-${parts[1]}-${parts[0]}`;
2624
- };
2625
-
2626
- NativeDatepicker.prototype.buildDom = function() {
2627
- var element = this.options.existingElement || this.options.win.document.createElement('span');
2628
- element.classList.add(classNames.wrapper);
2629
- this.element = element;
2630
-
2631
- var dateInputElement = this.options.win.document.createElement('input');
2632
- dateInputElement.type = 'date';
2633
- dateInputElement.classList.add(classNames.input);
2634
- element.appendChild(dateInputElement);
2635
- this.dateInputElement = dateInputElement;
2636
-
2637
- this.dateInputElement.addEventListener('input', () => {
2638
- var dateValue = this.dateInputElement.value;
2639
- var newValue = this.parseDate(dateValue);
2640
- this.options.onChange(newValue);
2641
- });
2642
-
2643
- if (!this.isSupported()) {
2644
- element.style.display = 'none';
2645
- }
2646
- };
2647
-
2648
- NativeDatepicker.prototype.addStylesheet = function() {
2649
- var styleId = 'NativeDatepickerStyles';
2650
- if (!this.options.win.document.querySelector('#' + styleId)) {
2651
- var style = this.options.win.document.createElement('style');
2652
- style.id = styleId;
2653
- style.textContent = `
2654
- .${classNames.wrapper} {
2655
- display: inline-block;
2656
- position: relative;
2657
- }
2658
- .${classNames.input} {
2659
- position: absolute;
2660
- left: 0;
2661
- top: 0;
2662
- width: 100%;
2663
- height: 100%;
2664
- opacity: 0;
2665
- cursor: pointer;
2666
- box-sizing: border-box;
2667
- }
2668
- .${classNames.input}::-webkit-calendar-picker-indicator {
2669
- position: absolute;
2670
- left: 0;
2671
- top: 0;
2672
- width: 100%;
2673
- height: 100%;
2674
- margin: 0;
2675
- padding: 0;
2676
- cursor: pointer;
2677
- }
2678
- `;
2679
- this.options.win.document.head.appendChild(style);
2680
- }
2681
- };
2682
-
2683
- NativeDatepicker.prototype.isSupported = function() {
2684
- var input = this.options.win.document.createElement('input');
2685
- input.type = 'date';
2686
- input.value = 'invalid date value';
2687
- return input.value !== 'invalid date value';
2688
- };
2689
-
2690
- return NativeDatepicker;
2691
- });
2692
-
2693
2582
  function useInputMaskPlugin(element, ngModelCtrl, scope, modelSetter, mask){
2583
+ //Forçando um set no model no evento de keyup.
2694
2584
  var $element = $(element);
2695
2585
  var unmaskedvalue = function(event) {
2696
2586
  var rawValue = $(this).inputmask('unmaskedvalue');
@@ -2706,6 +2596,7 @@ function useInputMaskPlugin(element, ngModelCtrl, scope, modelSetter, mask){
2706
2596
 
2707
2597
  if (ngModelCtrl) {
2708
2598
  ngModelCtrl.$formatters.push(function (value) {
2599
+ //Ignorar a formatação pela máscara na primeira vez
2709
2600
  if (element._ignoreFormatter) {
2710
2601
  element._ignoreFormatter = false;
2711
2602
  return $(element).val();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cronapp-framework-mobile-js",
3
- "version": "3.0.0-SP.29",
3
+ "version": "3.0.0-SP.30",
4
4
  "description": "Javascript library for CronApp's projects",
5
5
  "main": "cronapp.framework.mobile.js",
6
6
  "scripts": {
@@ -1,8 +0,0 @@
1
- .calendar-icon {
2
- position: absolute;
3
- right: 45px;
4
- top: 50%;
5
- transform: translateY(-50%);
6
- cursor: pointer;
7
- z-index: -1;
8
- }
@@ -1 +0,0 @@
1
- .calendar-icon{position:absolute;right:45px;top:50%;transform:translateY(-50%);cursor:pointer;z-index:-1}