UNPKG

cronapp-framework-js

Version:
1 lines 149 kB
function maskDirectiveAsDate(t,n,a){return maskDirective(t,n,a,"as-date")}function maskDirectiveMask(t,n,a){return maskDirective(t,n,a,"mask")}function maskDirective(t,n,a,o){return{restrict:"A",require:"?ngModel",link:function(r,l,s,c){if("as-date"==o&&void 0!==s.mask)return;var d=a(s.ngModel).assign,u=$(l);if(u.data("alreadycompiled"))return;u.data("alreadycompiled",!0),u.data("$compile",t);var p=u.attr("type");if("email"===p){u.inputmask("email").attr("novalidate","novalidate"),u.next(".k-tooltip-validation").remove();return void new MutationObserver((()=>{const t=u.next(".k-tooltip-validation");t.length&&t.remove()})).observe(u[0].parentNode,{childList:!0,subtree:!0})}if(["week","date","time","datetime-local","month","datetime","time-local"].includes(p)){const t=["week","dat","month","datetime-local","datetime"].includes(p)?"fa fa-calendar-o":"fa fa-clock-o",n=document.createElement("span");n.className="input-icon-wrapper",n.innerHTML=`<i class="${t}" style="cursor: pointer; font-weight: 600;"></i>`;const a=document.createElement("input");a.type=p,a.style.position="absolute",a.style.opacity="0",a.style.pointerEvents="none",u.after(n),n.appendChild(a),n.addEventListener("click",(()=>{a.focus()})),a.addEventListener("change",(()=>{u.val(a.value),u.trigger("input")})),r.$watch((()=>u.attr("exibir-icone")),(t=>{n.style.display="true"===t?"inline-block":"none"}))}if(["checkbox","password","url","color","range"].includes(p))return void(["color","range"].includes(p)&&u[0].classList.remove("form-control","k-textbox"));["color","range","checkbox"].includes(p)||(u.data("type",p),u.attr("type","text")),c&&(c.$formatters=[],c.$parsers=[]);var m=(s.mask||s.format||parseMaskType(p,n)).replace(";1","").replace(";0","").trim();if(!m)return;const f=function(t,n){switch(t){case"week":return"Semana --, ----";case"month":return"-------- de ----";case"time":case"time-local":return"--:--";case"datetime-local":case"datetime":return"dd/mm/aaaa --:--";case"date":return"dd/mm/aaaa";default:return n.replace(/D/g,"d").replace(/M/g,"m").replace(/Y/g,"a").replace(/H/g,"h").replace(/m/g,"m").replace(/s/g,"s").replace(/-/g,"-").replace(/:/g,":").replace(/\//g,"/")}}(p,m);if(u.attr("placeholder",f),["week","date","time","datetime-local","month","datetime","time-local"].includes(p)&&u.addClass("dark-placeholder"),u.on("input blur",(function(){u.val()?u.attr("placeholder",""):u.attr("placeholder",f)})),["date","datetime-local","datetime","time","time-local"].includes(p)?u.datetimepicker({format:m,locale:n.use()}):["number","money","integer"].includes(p)?u.inputmask("numeric",{prefix:"",rightAlign:!1}):u.mask(m),["date","datetime","datetime-local","month","time","week"].includes(p)){var g={format:m,locale:n.use(),showTodayButton:!0,useStrict:!0,tooltips:{today:n.instant("DatePicker.today"),clear:n.instant("DatePicker.clear"),close:n.instant("DatePicker.close"),selectMonth:n.instant("DatePicker.selectMonth"),prevMonth:n.instant("DatePicker.prevMonth"),nextMonth:n.instant("DatePicker.nextMonth"),selectYear:n.instant("DatePicker.selectYear"),prevYear:n.instant("DatePicker.prevYear"),nextYear:n.instant("DatePicker.nextYear"),selectDecade:n.instant("DatePicker.selectDecade"),prevDecade:n.instant("DatePicker.prevDecade"),nextDecade:n.instant("DatePicker.nextDecade"),prevCentury:n.instant("DatePicker.prevCentury"),nextCentury:n.instant("DatePicker.nextCentury")}};if(u.attr("from-grid")){var h=function(){var t=$(this).offset(),n=!0,a=$(this).parent().find(".bootstrap-datetimepicker-widget.dropdown-menu");if(a.length||(n=!1,a=$(this).parent().find(".bootstrap-datetimepicker-widget.dropdown-menu.top")),$(a).offset()){a.appendTo("body");var o=n?t.top+u.outerHeight():t.top-a.outerHeight();a.css({top:o,left:t.left,zIndex:999999})}};u.on("click",h),u.on("focus",(function(){setTimeout(h.bind(this),100)}))}if(u.datetimepicker(g),u.attr("from-grid")){h=function(){var t=$(this).offset(),n=!0,a=$(this).parent().find(".bootstrap-datetimepicker-widget.dropdown-menu.usetwentyfour.bottom");if(a.length||(n=!1,a=$(this).parent().find(".bootstrap-datetimepicker-widget.dropdown-menu.usetwentyfour.top")),$(a).offset()){var o=$(a).offset().left,r=$("body");a.appendTo(r);var l=0;l=n?t.top+35:t.top-($(a).height()+15),a.css("top",l),a.css("bottom","auto"),a.css("left",o),a.css("z-index",999999)}};if(u.on("click",h),u.on("focus",(function(){setTimeout(h.bind(this),100)})),u.on("dp.change",(function(){r.safeApply((function(){var t=null;t=useUTC?moment(u.val(),m).utcOffset(window.timeZoneOffset,!0):moment(u.val(),m),"time"!=p&&"time-local"!=p||(t=t.year(1970).dayOfYear(1).month(0)),t.isValid()&&c&&d(r,t.toDate())}))})),u.data("initial-value")){var v=u.data("initial-value"),b=null;b=useUTC?moment(v).utcOffset(window.timeZoneOffset):moment(v),u.val(b.format(m)),u.data("initial-value",null)}}else u.wrap('<div style="position:relative"></div>');u.datetimepicker(g),"true"!==s.fromGrid&&u.on("dp.change",(function(){$(this).is(":visible")&&($(this).trigger("change"),r.safeApply((function(){var t=u.val(),n=null;n=useUTC?moment(t,m).utcOffset(window.timeZoneOffset,!0):moment(t,m),"time"!=p&&"time-local"!=p||(n=n.year(1970).dayOfYear(1).month(0)),n.isValid()&&c&&d(r,n.toDate())})))})),c&&(c.$formatters.push((t=>t?moment(t).format(m):null)),c.$parsers.push((t=>{var n=moment(t,m);return n.isValid()?n.toDate():null})),u.on("dp.change",(function(){r.$apply((()=>{var t=u.val(),n=moment(t,m);n.isValid()&&c.$setViewValue(n.toDate())}))})))}else if("number"==p||"money"==p||"integer"==p||"money-decimal"==p){removeMask=!0;var y=m.trim().replace(/\./g,"").replace(/\,/g,"").replace(/#/g,"").replace(/0/g,"").replace(/9/g,""),k="",w="",S="",C=",",D=0;m.startsWith(y)?k=y:m.endsWith(y)&&(w=y);var T=m.trim().replace(k,"").replace(w,"").trim();T.startsWith("#.")?S=".":T.startsWith("#,")&&(S=",");var x=null;if(-1!=T.indexOf(",0")?(C=",",x=",0"):-1!=T.indexOf(".0")&&(C=".",x=".0"),null!=x)D=T.substring(T.indexOf(x)+1).length;var M="numeric";0==D&&(M="integer"),"money-decimal"==p&&(M="currency");var I={rightAlign:["money","money-decimal"].includes(p),allowMinus:!0,prefix:k,suffix:w,radixPoint:C,digits:D,groupSeparator:S,autoGroup:!!S};u.inputmask(M,I),useInputMaskPlugin(u,c,r,d,m)}else{let t=["D","M","Y","H","m","s"],n=n=>(t.forEach((t=>n=n.replaceAll(t,"9"))),n);if(m=n(m),s.maskPlaceholder){g={placeholder:s.maskPlaceholder};u.inputmask(m,g),useInputMaskPlugin(u,c,r,d,m)}else u.mask(m),useMaskPlugin(u,c,r,d,!1)}}}}function useInputMaskPlugin(t,n,a,o,r){var l=$(t),s=function(){$(this).data("rawvalue",$(this).inputmask("unmaskedvalue"))};$(t).on("keydown",s).on("keyup",s),n&&(n.$formatters.push((function(t){return null!=t&&null!=t&&""!==t?format(r,t):null})),n.$parsers.push((function(t){if(null!=t&&null!=t&&""!==t){var n=l.inputmask("unmaskedvalue");if(""!==n){let t=l.data("type");return"number"==t||"money"==t||"integer"==t||"money-decimal"==t?Number(n.replace(",",".")):n}}return null})))}function useMaskPlugin(t,n,a,o,r){var l=$(t),s=function(){r&&$(this).data("rawvalue",$(this).cleanVal())};$(t).on("keydown",s).on("keyup",s),r&&n&&(n.$formatters.push((function(t){return t?l.masked(t):null})),n.$parsers.push((function(t){return t?l.cleanVal():null})))}function parseMaskType(t,n){return"datetime"==t||"datetime-local"==t?"Format.DateTime"==(t=n.instant("Format.DateTime"))&&(t="DD/MM/YYYY HH:mm:ss"):"date"==t?"Format.Date"==(t=n.instant("Format.Date"))&&(t="DD/MM/YYYY"):"time"==t||"time-local"==t?"Format.Hour"==(t=n.instant("Format.Hour"))&&(t="HH:mm:ss"):"month"==t?t="MMMM":"number"==t?"Format.Decimal"==(t=n.instant("Format.Decimal"))&&(t="#.#00,00"):"money"==t||"money-decimal"==t?"Format.Money"==(t=n.instant("Format.Money"))&&(t="#.#00,00"):"integer"==t?"Format.Integer"==(t=n.instant("Format.Integer"))&&(t="#,##0.####"):"week"==t?t="dddd":"tel"==t?t="(00) 00000-0000;0":("text"==t||"string"==t)&&(t=""),t}function transformText(){return{restrict:"E",require:"?ngModel",link:function(t,n,a,o){var r=function(t,n){if(t){if(null!=n){if("uppercase"===t.css("text-transform"))return n.toUpperCase();if("lowercase"===t.css("text-transform"))return n.toLowerCase()}return n}};o&&(o.$formatters.push((function(t){return r(n,t)})),o.$parsers.push((function(t){return r(n,t)})))}}}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 t in params){let n=params[t];"expression"==n.type?scope.$watch(n.value,(function(t){framentMap[n.key]=t;var a=$(str);a.attr("onload",`params = ${JSON.stringify(framentMap)}`);var o=$compile(a)(scope);element.html(o)})):framentMap[n.key]=n.value}template.attr("onload",`params = ${JSON.stringify(framentMap)}`)}catch(t){console.error(t)}}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>`)}element.html(template),$compile(template)(scope)}))}}}function cronReportViewer(t){return{restrict:"E",replace:!0,require:"ngModel",link:function(t,n,a,o){function r(a){var o=JSON.parse(a),r={element:n};t.$eval(o.reportCommand||o.dashboardCommand,r)}r(a.options);let l=n[0].parentElement;for(;l;)if("BODY"===l.tagName)l=null;else{if(l.classList.contains("tab-pane"))break;l=l.parentElement}if(l&&!l.classList.contains("active")){new MutationObserver((function(t,n){for(let o of t)if("class"===o.attributeName&&o.target.classList.contains("active")){r(a.options),n.disconnect();break}})).observe(l,{attributes:!0})}var s=null;t.$watch((function(){return a.options}),(function(t,n){t!==n&&(s&&(clearInterval(s),s=null),s=setTimeout(function(){r(t)}.bind(this),500))}))}}}maskDirectiveAsDate.$inject=["$compile","$translate","$parse"],maskDirectiveMask.$inject=["$compile","$translate","$parse"],cronReportViewer.$inject=["$compile"],cronFrame.$inject=["$compile","$sce","$parse"],function($app){app.common={generateId:function(){var t=Math.floor(65536*(1+Math.random())).toString(16).substring(1);return"0123456789".indexOf(t.substr(0,1))>-1?this.generateId():t}};var isoDate=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,ISO_PATTERN=new RegExp("(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))");Number.MAX_SAFE_INTEGER_32=2147483647;var patternFormat=function(t){return t&&$(t).attr("format")||"DD/MM/YYYY"},parsePermission=function(t){var n={visible:{public:!0},enabled:{public:!0},render:{public:!0},notvisible:{public:!1},notenabled:{public:!1},notrender:{public:!1}};if(t)for(var a=t.toLowerCase().trim().split(","),o=0;o<a.length;o++){var r=a[o].trim();if(r){var l=r.split(":");if(2==l.length){var s=l[0].trim(),c=l[1].trim();if(c){for(var d=c.split(";"),u={},p=0;p<d.length;p++){var m=d[p].trim();m&&(u[m]=!0)}n[s]=u}}}}return n};app.directive("cronCalendar",["$timeout",function(t){return{restrict:"E",link:async function(t,n,a,o){let r={};try{r=JSON.parse(a.options)}catch(t){console.error(t)}const l=$(n),s=navigator.language||navigator.userLanguage,c=r.expressionInitialDate,d=r.expressionSelectDates,u=r.expressionDisableDates,p=r.expressionMinDate,m=r.expressionMaxDate,f=r.expressionOnChange,g=r.expressionOnNavigate,h=c?await t.$eval(generateBlocklyCall(c,!0)):new Date,v=d&&r.isSelectableMultiple?await t.$eval(generateBlocklyCall(d,!0)):[],b=u?await t.$eval(generateBlocklyCall(u,!0)):null,y=p?await t.$eval(generateBlocklyCall(p,!0)):new Date(1900,0,1),k=m?await t.$eval(generateBlocklyCall(m),!0):new Date(2099,11,31);l.kendoCalendar({culture:s.startsWith("pt")?"pt-BR":"en-US",componentType:r.isClassicType?"classic":"modern",selectable:r.isSelectableSingle?"single":"multiple",weekNumber:r.showWeekNumbers,value:h,selectDates:v,disableDates:b,min:y,max:k,start:r.startView});let w=l.data("kendoCalendar");w.bind("change",(function(){this.value();f&&t.$eval(generateBlocklyCall(f))})),w.bind("navigate",(function(){this.view(),this.current();f&&t.$eval(generateBlocklyCall(g))}))}}}]),app.directive("justGage",["$timeout",function(t){return{restrict:"EA",scope:{id:"@",class:"@",min:"=",max:"=",title:"@",label:"@",value:"@",options:"="},template:'<div id="{{id}}-justgage" class="{{class}}"></div>',link:function(n,a,o){t((function(){var t={id:n.id+"-justgage",min:n.min||0,max:n.max||100,title:n.title,label:n.label||"",value:n.value};if(n.options)for(var a in n.options)t[a]=n.options[a];var o=new JustGage(t);n.$watch("max",(function(t){void 0!==t&&o.refresh(n.value,t)}),!0),n.$watch("value",(function(t){void 0!==t&&o.refresh(t)}),!0)}))}}}]),app.directive("crnAnchor",["$rootScope","$location","$anchorScroll",function(t,n,a){return{restrict:"A",link:function(t,n,o){n.bind("click",(function(){let t=o.crnAnchor;a(t),$("#"+t).get(0).focus()}))}}}]),app.directive("crnTooltip",(function(){return{restrict:"A",link:function(t,n,a){if(a.crnTooltip&&a.crnTooltip.toString()&&a.crnTooltip.toString().trim().length>0)try{let t=JSON.parse(a.crnTooltip.toString());t.content&&t.content.toString()&&a.crnTooltip.toString().trim().length>0&&$(n).kendoTooltip(t).data("kendoTooltip")}catch(t){console.error("Formato do atributo tooltip deve ser um json."),console.error("Valor atual: "+a.crnTooltip),console.error("Error ocorrido: "+t)}}}})),app.directive("input",transformText),app.directive("textarea",transformText);var generateBlocklyCall=function(t,n){var a="";if(!t)return a;if("client"==t.type){a="cronapi.client('"+t.blocklyClass+"."+t.blocklyMethod+"')";var o="";t.blocklyParams.forEach((function(t){o.length>0&&(o+=", "),o+=t.value?t.value:"null"})),a+=".run("+o+")"}else if("server"==t.type){a="cronapi.server('"+(t.blocklyClass+"."+t.blocklyMethod)+"')"+(n?".toPromise()":"");o="";t.blocklyParams.forEach((function(t){o.length>0&&(o+=", "),o+=t.value?t.value:"null"})),a+=".run("+o+")"}return a};app.directive("asDate",maskDirectiveAsDate).directive("ngDestroy",(function(){return{restrict:"A",link:function(scope,element,attrs,ctrl){element.on("$destroy",(function(){attrs.ngDestroy&&attrs.ngDestroy.length>0&&(attrs.ngDestroy.indexOf("app.")>-1||attrs.ngDestroy.indexOf("blockly.")>-1?scope.$eval(attrs.ngDestroy):eval(attrs.ngDestroy))}))}}})).directive("dynamicImage",["$compile",function(t){return{restrict:"E",replace:!0,scope:{ngModel:"@",width:"@",height:"@",style:"@",class:"@"},require:"ngModel",template:"<div></div>",init:function(t){t.ngModel||(t.ngModel=""),t.width||(t.width="128"),t.height||(t.height="128"),t.style||(t.style=""),t.class||(t.class=""),this.containsLetter(t.width)||(t.width+="px"),this.containsLetter(t.height)||(t.height+="px")},containsLetter:function(t){for(var n,a=0;a<t.length;a++){n=!0;for(var o=0;o<10;o++)parseInt(t[a])==o&&(n=!1);if(n)break}return n},link:function(n,a,o){this.init(n);var r=n,l=o.ngRequired&&"true"==o.ngRequired?"required":"";a.append('<div class="form-group upload-image-component" ngf-drop="" ngf-drag-over-class="dragover"> <img class="$class$" style="$style$; height: $height$; width: $width$;" ng-if="$ngModel$" data-ng-src="{{$ngModel$.startsWith(\'http\') || ($ngModel$.startsWith(\'/\') && $ngModel$.length < 1000)? $ngModel$ : \'data:image/png;base64,\' + $ngModel$}}"> <img class="$class$" style="$style$; height: $height$; width: $width$;" ng-if="!$ngModel$" data-ng-src="/plugins/cronapp-framework-js/img/selectImg.svg" class="btn" ng-if="!$ngModel$" ngf-drop="" ngf-select="" ngf-change="cronapi.internal.setFile(\'$ngModel$\', $file)" accept="image/*;capture=camera"> <button class="remove btn btn-danger btn-xs" ng-if="$ngModel$" ng-click="$ngModel$=null"> <span class="glyphicon glyphicon-remove"></span> <span class="sr-only">{{"Remove" | translate}}</span> </button> <button class="btn btn-info btn-xs start-camera-button" ng-if="!$ngModel$" ng-click="cronapi.internal.startCamera(\'$ngModel$\')"> <span class="glyphicon glyphicon-facetime-video"></span> <span class="sr-only">{{"Upload.camera" | translate}}</span> </button> <input ng-if="!$ngModel$" autocomplete="off" tabindex="-1" class="uiSelectRequired ui-select-offscreen" style="top: inherit !important; margin-left: 85px !important;margin-top: 50px !important;" type=text ng-model="$ngModel$" $required$> </div>'.split("$height$").join(r.height).split("$width$").join(r.width).split("$ngModel$").join(r.ngModel).split("$style$").join(r.style).split("$class$").join(r.class).split("$required$").join(l)),t(a)(a.scope())}}}]).directive("dynamicImage",["$compile","$translate",function(t,n){return{restrict:"A",scope:!0,require:"ngModel",link:function(a,o,r){var l=r.ngRequired&&"true"==r.ngRequired?"required":"",s=o.html();let c=`<div ngf-drop="" ngf-drag-over-class="dragover" style="display: flex; justify-content: center; width: 100%; height: 100%; position: relative; ">\n <img alt="$picture$" style="width: 100%; object-fit: ${r.objectFit||"unset"}" ng-if="$ngModel$"\n data-ng-src="{{$ngModel$.startsWith('http') || ($ngModel$.startsWith('/') && $ngModel$.length < 1000)? $ngModel$ : 'data:image/png;base64,' + $ngModel$}}">\n <input id="$id$" aria-label="$userHtml$" ng-if="!$ngModel$" autocomplete="off" tabindex="-1"\n class="uiSelectRequired ui-select-offscreen"\n style="top: inherit !important; margin-left: 85px !important;margin-top: 50px !important; display: none;" type=text\n ng-model="$ngModel$" $required$>\n <button id="$idbutton$" class="btn" ng-if="!$ngModel$" ngf-drop="" ngf-select=""\n ngf-change="cronapi.internal.setFile('$ngModel$', $file)" ngf-pattern="'image/*'" ngf-max-size="$maxFileSize$">\n $userHtml$ \n </button>\n <button class="remove-image-button btn btn-danger btn-xs" ng-if="$ngModel$" ng-click="$ngModel$=null">\n <span class="glyphicon glyphicon-remove"></span>\n <span class="sr-only">{{"Remove" | translate}}</span>\n </button>\n <button class="btn btn-info btn-xs start-camera-button-attribute" ng-if="!$ngModel$"\n ng-click="cronapi.internal.startCamera('$ngModel$')">\n <span class="glyphicon glyphicon-facetime-video"></span>\n <span class="sr-only">{{"Upload.camera" | translate}}</span>\n </button>\n </div>`;var d="";r.maxFileSize&&(d=r.maxFileSize);var u="";u=r.imgAltText?r.imgAltText:"Admin.view.Picture",c=$(c.split("$id$").join(r.id?r.id+"-input":"textinput-picture").split("$idbutton$").join(r.id?r.id+"-button":"textinput-picture-button").split("$ngModel$").join(r.ngModel).split("$required$").join(l).split("$userHtml$").join(s).split("$maxFileSize$").join(d).split("$picture$").join(n.instant(u))),"true"==r.readOnly&&(c.find(".remove-image-button").remove(),c.find(".start-camera-button-attribute").remove()),o.html(c),t(c)(o.scope())}}}]).directive("dynamicFile",["$compile","$translate",function(t,n){return{restrict:"A",scope:!0,require:"ngModel",link:function(a,o,r){var l=r.ngRequired&&"true"==r.ngRequired?"required":"",s=r.ngModel.split("."),c=s[0],d=s[s.length-1],u=Math.floor(1e3*Math.random()+20),p=o.html(),m="",f=r.acceptFile||"'*.*'";r.maxFileSize&&(m=r.maxFileSize);let g=r.fileInfo?`'${r.fileInfo}'`:"undefined";var h=' <div ng-show="!$ngModel$" ngf-drop="" ngf-drag-over-class="dragover"> <input id="$id$" aria-label="$userHtml$" ng-if="!$ngModel$" autocomplete="off" tabindex="-1" class="uiSelectRequired ui-select-offscreen" style="top: inherit !important;margin-left: 85px !important;margin-top: 50px !important; display: none;" type=text ng-model="$ngModel$" $required$> <button id="$idbutton$" class="btn" ngf-drop="" ngf-select="" ngf-change="cronapi.internal.uploadFile(\'$ngModel$\', $file, \'uploadprogress$number$\', $fileInfo$, $invalidFiles)" ngf-max-size="$maxFileSize$" ngf-pattern="$acceptPattern$" ngf-accept="$acceptFile$"> $userHtml$ </button> <div class="progress" data-type="bootstrapProgress" id="uploadprogress$number$" style="display:none"> <div class="progress-bar" role="progressbar" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100" style="width:0%"> <span class="sr-only"></span> </div> </div> </div> <div ng-show="$ngModel$" class="upload-image-component-attribute"> <button class="btn btn-danger btn-xs ng-scope" style="float:right;" ng-if="$ngModel$" ng-click="$ngModel$=null"> <span class="glyphicon glyphicon-remove"></span> <span class="sr-only">{{"Remove" | translate}}</span> </button> <div> <div ng-bind-html="cronapi.internal.generatePreviewDescriptionByte($ngModel$, $fileInfo$)"></div> <a href="javascript:void(0)" ng-click="cronapi.internal.downloadFileEntity($datasource$,\'$field$\', undefined, $fileInfo$)">$lblDownload$</a> </div> </div> ';h=$(h.split("$id$").join(r.id?r.id+"-input":"textinput-file").split("$idbutton$").join(r.id?r.id+"-button":"textinput-file-button").split("$ngModel$").join(r.ngModel).split("$datasource$").join(c).split("$field$").join(d).split("$number$").join(u).split("$required$").join(l).split("$userHtml$").join(p).split("$maxFileSize$").join(m).split("$lblDownload$").join(n.instant("download")).split("$fileInfo$").join(g).split("$acceptPattern$").join(f).split("$acceptFile$").join(f)),o.html(h),t(h)(o.scope())}}}]).directive("dynamicFile",["$compile",function(t){return{restrict:"E",replace:!0,scope:{ngModel:"@"},require:"ngModel",template:"<div></div>",init:function(t){t.ngModel||(t.ngModel="")},link:function(n,a,o){this.init(n);var r=n,l=o.ngRequired&&"true"==o.ngRequired?"required":"",s=r.ngModel.split("."),c=s[0],d=s[s.length-1],u=Math.floor(1e3*Math.random()+20);a.append(' <div ng-show="!$ngModel$"> <input ng-if="!$ngModel$" autocomplete="off" tabindex="-1" class="uiSelectRequired ui-select-offscreen" style="top: inherit !important;margin-left: 85px !important;margin-top: 50px !important;" type=text ng-model="$ngModel$" $required$> <div class="form-group upload-image-component" ngf-drop="" ngf-drag-over-class="dragover"> <img class="ng-scope" style="height: 128px; width: 128px;" ng-if="!$ngModel$" data-ng-src="/plugins/cronapp-framework-js/img/selectFile.png" ngf-drop="" ngf-select="" ngf-change="cronapi.internal.uploadFile(\'$ngModel$\', $file, \'uploadprogress$number$\')" accept="*"> <progress id="uploadprogress$number$" max="100" value="0" style="position: absolute; width: 128px; margin-top: -134px;">0</progress> </div> </div> <div ng-show="$ngModel$" class="form-group upload-image-component"> <div class="btn btn-danger btn-xs ng-scope" style="float:right;" ng-if="$ngModel$" ng-click="$ngModel$=null"> <span class="glyphicon glyphicon-remove"></span> </div> <div> <div ng-bind-html="cronapi.internal.generatePreviewDescriptionByte($ngModel$)"></div> <a href="javascript:void(0)" ng-click="cronapi.internal.downloadFileEntity($datasource$,\'$field$\')">download</a> </div> </div> '.split("$ngModel$").join(r.ngModel).split("$datasource$").join(c).split("$field$").join(d).split("$number$").join(u).split("$required$").join(l)),t(a)(a.scope())}}}]).directive("pwCheck",[function(){"use strict";return{require:"ngModel",link:function(t,n,a,o){var r="#"+a.pwCheck;n.add(r).on("keyup",(function(){t.$apply((function(){var t=n.val()===$(r).val();o.$setValidity("pwmatch",t)}))}))}}}]).directive("ngClick",[function(){"use strict";return{link:function(scope,elem,attrs,ctrl){if(scope.rowData){var crnDatasource=elem.closest("[crn-datasource]");crnDatasource.length>0&&elem.on("click",(function(){scope.$apply((function(){var datasource=eval(crnDatasource.attr("crn-datasource"));datasource.active=scope.rowData}))}))}}}}]).directive("valid",(function(){return{require:"?ngModel",restrict:"A",link:function(t,n,a,o){var r={cpf:CPF,cnpj:CNPJ};if(o)o.$validators[a.valid]=function(t,o){var l=t||o,s=r[a.valid].isValid(l);return s||null===l?n[0].setCustomValidity(""):n.scope().$applyAsync((function(){n[0].setCustomValidity(n[0].dataset.errorMessage)})),s||!l};else{let t=function(){setTimeout((()=>{var t=n.data("rawvalue");r[a.valid].isValid(t)||null===t?n.removeClass("k-invalid"):n.addClass("k-invalid")}))};n.on("keydown",t).on("keyup",t)}}}})).directive("cronappSecurity",["$rootScope",function(t){return{restrict:"A",priority:Number.MIN_SAFE_INTEGER,link:function(n,a,o){if(""==o.cronappSecurity||null==o.cronappSecurity||null==o.cronappSecurity)return;var r=[],l=JSON.parse(localStorage.getItem("_u"));l&&l.roles&&(r=l.roles.toLowerCase().split(","));for(var s=parsePermission(o.cronappSecurity),c=!1,d=!1,u=!1,p=0;p<r.length;p++){(m=r[p].trim())&&(s.visible[m]&&(c=!0),s.enabled[m]&&(d=!0),s.render[m]&&(u=!0))}for(p=0;p<r.length;p++){var m;(m=r[p].trim())&&(s.notvisible[m]&&(c=!1),s.notenabled[m]&&(d=!1),s.notrender[m]&&(u=!1))}let f=$(a),g=setInterval((()=>{t.renderFinished&&(c||f.hide(),d||f.find("*").addBack().css("pointer-events","none").attr("disabled",!0).off("click").on("click",(t=>t.preventDefault())),u||f.remove(),clearInterval(g))}))}}}]).directive("qr",["$window",function(t){return{restrict:"A",require:"^ngModel",template:'<canvas ng-hide="image"></canvas><img ng-if="image" ng-src="{{canvasImage}}"/>',link:function(n,a,o,r){void 0===n.size&&o.size&&(n.text=o.size);var l=function(){return r.$modelValue||""},s=function(t){return/^[0-9]*$/.test(t)},c=function(t){return/^[0-9A-Z $%*+\-./:]*$/.test(t)},d=function(t){for(var n=0;n<t.length;n++){if(t.charCodeAt(n)>255)return!1}return!0},u=function(t){var a=n.inputMode;return function(t,n){if("NUMBER"===t&&!s(n))throw new Error("The `NUMBER` input mode is invalid for text.");if("ALPHA_NUM"===t&&!c(n))throw new Error("The `ALPHA_NUM` input mode is invalid for text.");if("8bit"===t&&!d(n))throw new Error("The `8bit` input mode is invalid for text.");if(!d(n))throw new Error("Input mode is invalid for text.");return!0}(a=(a=(a=a||(s(t)?"NUMBER":void 0))||(c(t)?"ALPHA_NUM":void 0))||(d(t)?"8bit":""),t)?a:""},p=a.find("canvas")[0],m=!!t.CanvasRenderingContext2D;n.TYPE_NUMBER=n.typeNumber||0,n.TEXT=l(),n.CORRECTION={L:1,M:0,Q:3,H:2}[n.correctionLevel||0]||0,n.SIZE=function(){let t=$(a).outerWidth(),o=$(a).outerHeight(),r=t<o?t:o;return n.size||r}(),n.INPUT_MODE=u(n.TEXT),n.canvasImage="";var f=function(t,a,o,r,l,s){var c=a.replace(/^\s+|\s+$/g,""),d=new QRCode(o,r,s);d.addData(c),d.make();var u=t.getContext("2d"),p=d.getModuleCount(),f=l/p;t.width=t.height=l,m&&(!function(t,n,a,o){for(var r=0;r<a;r++)for(var l=0;l<a;l++){var s=Math.ceil((l+1)*o)-Math.floor(l*o),c=Math.ceil((r+1)*o)-Math.floor(r*o);t.fillStyle=n.isDark(r,l)?"#000":"#fff",t.fillRect(Math.round(l*o),Math.round(r*o),s,c)}}(u,d,p,f),n.canvasImage=t.toDataURL()||"")};n.$watch((function(){return r.$modelValue}),(function(t,a){t===a&&t===n.TEXT||(n.text=r.$modelValue,n.TEXT=l(),n.INPUT_MODE=u(n.TEXT),f(p,n.TEXT,n.TYPE_NUMBER,n.CORRECTION,n.SIZE,n.INPUT_MODE))})),f(p,n.TEXT,n.TYPE_NUMBER,n.CORRECTION,n.SIZE,n.INPUT_MODE)}}}]).directive("uiSelect",["$compile",function(t){return{restrict:"E",require:"ngModel",link:function(n,a,o,r){let l=()=>{"$apply"!==n.$$phase&&"$digest"!==n.$$phase?a.find("i").remove():setTimeout((()=>l()),200)};if(l(),null!=o.required||"true"===o.ngRequired){$(a).append('<input autocomplete="off" tabindex="-1" class="uiSelectRequired ui-select-offscreen" style="left: 50%!important; top: 100%!important;" type=text ng-model="'+o.ngModel+'" required>');var s=$(a).find("input.uiSelectRequired");t(s)(a.scope())}}}}]).filter("raw",["$translate",function(t){return function(t){return null!=t&&void 0!==t?"number"==typeof t||"boolean"==typeof t?t+"":t instanceof Date?"datetimeoffset'"+t.toISOString()+"'":t.length>=10&&t.match(ISO_PATTERN)?"datetimeoffset'"+t+"'":"'"+t.replaceAll("'","''")+"'":""}}]).filter("js",["$translate",function(t){return function(t){return null!=t&&void 0!==t?"number"==typeof t||"boolean"==typeof t?t+"":t instanceof Date?cronapi.toDate(t.toISOString()):t.length>=10&&t.match(ISO_PATTERN)?cronapi.toDate(t):"'"+t+"'":"undefined"}}]).filter("mask",["$translate",function(t){return function(n,a,o){if(!(a=parseMaskType(a,t)))return n;var r;if(void 0!==o?(r="date"==o||"datetime"==o||"time"==o,window.fixedTimeZone||(r=!1)):r=window.fixedTimeZone,a.indexOf(";local")>0&&(r=!1),a=a.replace(";1","").replace(";0","").replace(";local","").trim(),"string"==typeof n&&n.match(isoDate)||n instanceof Date)return r?moment(n).utcOffset(window.timeZoneOffset).format(a):moment(n).format(a);if("number"==typeof n)return format(a,n);if(null!=n&&null!=n&&""!=n&&""!=a){var l=$('<input type="text">');return l.mask(a),l.masked(n)}return n}}]).directive("screenParams",[function(){"use strict";return{link:function(scope,elem,attrs,ctrl){var screenParams=eval(attrs.screenParams);screenParams&&screenParams.length&&screenParams.forEach((function(t){scope.params&&!scope.params[t.key]&&(scope.params[t.key]=t.value||"")}))}}}]).directive("screenVariables",[function(){"use strict";return{link:async function(scope,elem,attrs,ctrl){let screenVariables=eval(attrs.screenVariables);screenVariables&&screenVariables.length&&screenVariables.forEach((async t=>{if(scope.vars&&!scope.vars[t.key]){let n=t.value||"";"blockly"===t.type?n=await scope.$eval(n.replace(".run(",".toPromise().run(")):"expression"===t.type&&(n=n.startsWith("params")?scope.params[n.replace("params.","")]:n.startsWith("vars")?scope.vars[n.replace("vars.","")]:await scope.$eval(n)),scope.vars[t.key]=n}}))}}}]).directive("mask",maskDirectiveMask).directive("cronappFilter",["$compile",function($compile){return{restrict:"A",require:"?ngModel",setFilterInButton:function(t,n,a){var o=t.closest("fieldset");if(o){var r=o.find("button[cronapp-filter]");if(r){var l=r.data("filters");l||(l=[]);var s=-1,c=t.attr("ng-model");if($(l).each((function(t){this.ngModel==c&&(s=t)})),s>-1&&l.splice(s,1),n.length>0){var d={ngModel:c,bindedFilter:n};l.push(d)}r.data("filters",l)}}},makeAutoPostSearch:function(t,n,a,o){var r=t.closest("fieldset");if(r&&r.length>0){var l=r.find("button[cronapp-filter]");if(l&&l.length>0){var s=l.data("filters");s&&s.length>0&&(n="",$(s).each((function(){n+=this.bindedFilter+";"})))}}a.search(n,"true"==o.cronappFilterCaseinsensitive)},inputBehavior:function(scope,element,attrs,ngModelCtrl,$element,typeElement,operator,autopost){var filterTemplate="",filtersSplited=attrs.cronappFilter.split(";"),datasource;if(attrs.crnDatasource)datasource=eval(attrs.crnDatasource);else{var fieldset=$element.closest("fieldset");if(!fieldset)return;var button=fieldset.find("button[cronapp-filter]");if(!button)return;if(!button.attr("crn-datasource"))return;datasource=eval(button.attr("crn-datasource"))}var isOData=datasource.isOData();$(filtersSplited).each((function(){this.length>0&&(""!=filterTemplate&&(filterTemplate+=isOData?" or ":";"),isOData?"="==operator&&"text"==typeElement?filterTemplate+="substringof({value.lower}, tolower("+this+"))":"="==operator?filterTemplate+=this+" eq {value}":"!="==operator?filterTemplate+=this+" ne {value}":">"==operator?filterTemplate+=this+" gt {value}":">="==operator?filterTemplate+=this+" ge {value}":"<"==operator?filterTemplate+=this+" lt {value}":"<="==operator&&(filterTemplate+=this+" le {value}"):filterTemplate+="text"==typeElement?this+"@"+operator+"%{value}%":this+operator+"{value}")})),0==filterTemplate.length&&(filterTemplate=isOData?"{value}":"%{value}%");var selfDirective=this;ngModelCtrl?scope.$watch(attrs.ngModel,(function(t,n){if(!angular.equals(t,n)){var a=$element.data("type")||$element.attr("type"),o=ngModelCtrl.$modelValue;isOData?o instanceof Date?o="datetime-local"==a?"datetimeoffset'"+o.toISOString()+"'":"datetime'"+o.toISOString().substring(0,23)+"'":"number"==typeof o?o+="M":"boolean"==typeof o||(o="'"+o+"'"):o instanceof Date?(o=o.toISOString(),o+="date"==a?"@@date":"time"==a||"time-local"==a?"@@time":"@@datetime"):"number"==typeof o?o+="@@number":"boolean"==typeof o&&(o+="@@boolean");var r=filterTemplate.split("{value}").join(o);if("string"==typeof o)if(r.startsWith("substringof({")){var l=o.split("'").join("").toLowerCase().trim().split(" "),s="";l.forEach((function(t,n){s+=r.split("{value.lower}").join("'"+t+"'"),n<l.length-1&&(s+=" or ")})),r=s}else r=r.split("{value.lower}").join(o.toLowerCase());else r=r.split("{value.lower}").join(o);0==ngModelCtrl.$viewValue.length&&(r=""),selfDirective.setFilterInButton($element,r,operator),autopost&&selfDirective.makeAutoPostSearch($element,r,datasource,attrs)}})):"text"==typeElement?$element.on("keyup",(function(){var datasource=eval(attrs.crnDatasource),value=void 0;value=ngModelCtrl&&null!=ngModelCtrl?ngModelCtrl.$viewValue:this.value;var bindedFilter=filterTemplate.split("{value}").join(value);0==this.value.length&&(bindedFilter=""),selfDirective.setFilterInButton($element,bindedFilter,operator),autopost&&selfDirective.makeAutoPostSearch($element,bindedFilter,datasource,attrs)})):$element.on("change",(function(){var datasource=eval(attrs.crnDatasource),value=void 0,typeElement=$(this).attr("type");if(null!=attrs.asDate&&(typeElement="date"),ngModelCtrl&&null!=ngModelCtrl)value=ngModelCtrl.$viewValue;else if("checkbox"==typeElement)value=$(this).is(":checked");else if("date"==typeElement){if(value=this.value,this.value.length>0){var momentDate=moment(this.value,patternFormat(this));value=momentDate.toDate().toISOString()}}else value=this.value;var bindedFilter=filterTemplate.split("{value}").join(value);0==value.toString().length&&(bindedFilter=""),selfDirective.setFilterInButton($element,bindedFilter,operator),autopost&&selfDirective.makeAutoPostSearch($element,bindedFilter,datasource,attrs)}))},forceDisableDatasource:function(datasourceName,scope){var disableDatasource=setInterval((function(){try{var datasourceInstance=eval(datasourceName);datasourceInstance&&($(document).ready((function(){var t=0,n=setInterval((function(){t<10?(scope.$apply((function(){datasourceInstance.enabled=!1,datasourceInstance.data=[]})),t++):clearInterval(n)}),20)})),clearInterval(disableDatasource))}catch(t){}}),10)},buttonBehavior:function(scope,element,attrs,ngModelCtrl,$element,typeElement,operator,autopost){var datasourceName="";datasourceName=attrs.crnDatasource?attrs.crnDatasource:$element.parent().attr("crn-datasource");var datasource=eval(datasourceName),isOData=datasource.isOData(),requiredFilter=attrs.requiredFilter&&"true"==attrs.requiredFilter.toString();requiredFilter&&this.forceDisableDatasource(datasourceName,scope),$element.on("click",(function(){var $this=$(this),filters=$this.data("filters");if(datasourceName&&datasourceName.length>0&&filters){var bindedFilter="";$(filters).each((function(){""!=bindedFilter&&(bindedFilter+=isOData?" and ":";"),bindedFilter+=this.bindedFilter}));var datasourceToFilter=eval(datasourceName);requiredFilter?(datasourceToFilter.enabled=bindedFilter.length>0,datasourceToFilter.enabled?datasourceToFilter.search(bindedFilter,"true"==attrs.cronappFilterCaseinsensitive):scope.$apply((function(){datasourceToFilter.data=[]}))):datasourceToFilter.search(bindedFilter,"true"==attrs.cronappFilterCaseinsensitive)}}))},link:function(t,n,a,o){var r=$(n),l=r.data("type")||r.attr("type");null!=a.asDate&&(l="date");var s="=";a.cronappFilterOperator&&a.cronappFilterOperator.length>0&&(s=a.cronappFilterOperator);var c=!0;a.cronappFilterAutopost&&"false"==a.cronappFilterAutopost&&(c=!1),setTimeout(function(){"INPUT"==r[0].tagName?this.inputBehavior(t,n,a,o,r,l,s,c):this.buttonBehavior(t,n,a,o,r,l,s,c)}.bind(this),100)}}}]).directive("cronRichEditor",["$compile",function(t){return{restrict:"E",replace:!0,require:"ngModel",parseToTinyMCEOptions:function(t){var n={allowFullScreen:"fullscreen |",allowPage:"fullpage newdocument code pagebreak |",allowPrint:"preview print |",allowTransferArea:"cut copy paste |",allowDoUndo:"undo redo |",allowSymbol:"charmap |",allowEmbeddedImage:"bdesk_photo |",allowFont:"formatselect fontselect fontsizeselect strikethrough bold italic underline removeformat |",allowLinks:"link unlink anchor |",allowParagraph:"alignleft aligncenter alignright alignjustify numlist bullist outdent indent blockquote hr |",allowFormulas:"tiny_mce_wiris_formulaEditor tiny_mce_wiris_formulaEditorChemistry tiny_mce_wiris_CAS |"},a={menubar:!1,statusbar:!1,plugins:"bdesk_photo advlist anchor autolink autoresize autosave charmap code colorpicker contextmenu directionality emoticons fullpage fullscreen hr image imagetools importcss insertdatetime legacyoutput link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace tabfocus table template toc visualblocks visualchars wordcount tiny_mce_wiris colorpicker textcolor",toolbar:"",content_style:""};for(var o in t)o.startsWith("allow")&&t[o]&&(a.toolbar+=" "+n[o]);return a.toolbar+=" forecolor backcolor ",a.menubar=t.showMenuBar,a.statusbar=t.showStatusBar,a.content_style=t.contentStyle,a.readonly=t.allowReadonly,JSON.stringify(a)},link:function(n,a,o,r){var l=JSON.parse(o.options),s=this.parseToTinyMCEOptions(l),c=' <textarea ui-tinymce="$options$" ng-model="$ngModel$" id="$id$" aria-label="cronRichEditor" ng-cron-click="$ngClick$" ng-cron-dblclick="$ngDblclick$" ng-cron-mousedown="$ngMouseDown$" ng-cron-mouseup="$ngMouseUp$" ng-cron-mousemove="$ngMouseMove$" ng-cron-mouseover="$ngMouseOver$" ng-cron-mouseenter="$ngMouseEnter$" ng-cron-mouseleave="$ngMouseLeave$" ng-cron-keydown="$ngKeydown$" ng-cron-keyup="$ngKeyup$" ng-cron-keypress="$ngKeypress$" ng-context-menu="$ngContextMenu$" ng-cron-paste="$ngPaste$" ng-cron-init="$ngInit$" ng-cron-focus="$ngFocus$" ng-cron-blur="$ngBlur$" ng-before-set-content="$ngBeforeSetContent$" ng-set-content="$ngSetContent$" ng-get-content="$ngGetContent$" ng-pre-process="$ngPreProcess$" ng-post-process"$ngPostProcess$" ng-node-change="$ngNodeChange$" ng-cron-undo="$ngUndo$" ng-cron-redo="$ngRedo$" ng-cron-change="$ngChange$" ng-cron-dirty="$ngDirty$" ng-cron-remove="$ngRemove$" ng-exec-command="$ngExecCommand$" ng-paste-pre-process="$ngPastePreProcess$" ng-paste-post-process="$ngPastePostProcess$" ng-add-editor="$ngAddEditor$" ng-remove-editor="$ngRemoveEditor$"> </textarea> ';c=$(c.split("$ngModel$").join(o.ngModel).split("$ngClick$").join(o.ngCronClick||"").split("$ngDblclick$").join(o.ngCronDblclick||"").split("$ngMouseDown$").join(o.ngCronMouseDown||"").split("$ngMouseUp$").join(o.ngCronMouseUp||"").split("$ngMouseMove$").join(o.ngCronMousemove||"").split("$ngMouseOver$").join(o.ngCronMouseOver||"").split("$ngMouseEnter$").join(o.ngCronMouseenter||"").split("$ngMouseLeave$").join(o.ngCronMouseleave||"").split("$ngKeydown$").join(o.ngCronKeydown||"").split("$ngKeyup$").join(o.ngCronKeyup||"").split("$ngKeypress$").join(o.ngCronKeypress||"").split("$ngContextMenu$").join(o.ngContextMenu||"").split("$ngPaste$").join(o.ngCronPaste||"").split("$ngInit$").join(o.ngCronInit||"").split("$ngFocus$").join(o.ngCronFocus||"").split("$ngBlur$").join(o.ngCronBlur||"").split("$ngBeforeSetContent$").join(o.ngBeforeSetContent||"").split("$ngSetContent$").join(o.ngSetContent||"").split("$ngGetContent$").join(o.ngGetContent||"").split("$ngPreProcess$").join(o.ngPreProcess||"").split("$ngPostProcess$").join(o.ngPostProcess||"").split("$ngNodeChange$").join(o.ngNodeChange||"").split("$ngUndo$").join(o.ngCronUndo||"").split("$ngRedo$").join(o.ngCronRedo||"").split("$ngChange$").join(o.ngCronChange||"").split("$ngDirty$").join(o.ngCronDirty||"").split("$ngRemove$").join(o.ngRemove||"").split("$ngExecCommand$").join(o.ngExecCommand||"").split("$ngPastePreProcess$").join(o.ngPastePreProcess||"").split("$ngPastePostProcess$").join(o.ngPastePostProcess||"").split("$ngAddEditor$").join(o.ngAddEditor||"").split("$ngRemoveEditor$").join(o.ngRemoveEditor||"").split("$id$").join(o.id||app.common.generateId()).split("$options$").join(escape(s)));var d=angular.element(c);a.html(""),a.append(d),a.attr("id",null),t(d)(n);let u=$(`cron-rich-editor[ng-model="${o.ngModel}"]`),p=setInterval((()=>{u.find(".mce-container").length&&(u.find("button").each(((t,n)=>{let a=$(n),o=a.parent().attr("aria-label")||"";a.attr("aria-label",o)})),clearInterval(p))}),100)}}}]).directive("cronDashboardViewer",cronReportViewer).directive("cronReportViewer",cronReportViewer).directive("cronTimeline",["$compile","$parse",function($compile,$parse){"use strict";var defaultAdvancedTemplate='<ul class="timeline">\r\n <timeline-event side="" class="ng-scope" ng-repeat="rowData in datasource">\r\n <li class="timeline-event {{rowData[options.fields.field4] == \'2\' ? \'timeline-inverted\' : \'\'}}">\r\n <timeline-badge class="{{$odd ? \'info\' : \'warning\'}} bounce-in">\r\n <div class="timeline-badge">\r\n <i class="glyphicon {{rowData[options.fields.field3] ? rowData[options.fields.field3] : \'glyphicon-check\'}}"></i>\r\n </div>\r\n </timeline-badge>\r\n <timeline-panel class="info bounce-in">\r\n <div class="timeline-panel">\r\n <timeline-heading class="ng-scope">\r\n <div class="timeline-heading">\r\n <h4 class="ng-binding ng-scope">{{rowData[options.fields.field0]}}</h4>\r\n <p class="ng-scope">\r\n <small class="text-muted ng-binding"><i class="glyphicon glyphicon-time"></i>{{rowData[options.fields.field1]|mask:options.fields.mask2:options.fields.type1}}</small>\r\n </p>\r\n </div>\r\n </timeline-heading>\r\n <p ng-if="rowData[options.fields.field2]" class="ng-binding ng-scope">{{rowData[options.fields.field2]}}</p>\r\n </div>\r\n </timeline-panel>\r\n </li>\r\n </timeline-event>\r\n</ul>',getExpression=function(t){return"rowData in ".concat(t).concat(".data")};return{restrict:"E",require:"?ngModel",scope:!0,priority:9999998,terminal:!0,link:function(scope,element,attrs,ngModelCtrl){scope.hasValue=t=>null!=t;var optionsList={},dataSourceName="";try{optionsList=JSON.parse(attrs.options),dataSourceName=optionsList.dataSourceScreen.name;var dataSource=eval(optionsList.dataSourceScreen.name);scope.options=optionsList,attrs.ngModel&&(scope.changeRowDataField=function(t){t=dataSource.getKeyValues(t);var n=Object.keys(t);return 1===n.length&&(t=t[n]),t}),scope.options=optionsList,scope.options.fields={},scope.options.randomModel=Math.floor(9e3*Math.random())+1e3;for(var visibleColumns=[],i=0;i<optionsList.columns.length;i++){var column=optionsList.columns[i];column.visible&&visibleColumns.push(optionsList.columns[i])}for(var i=0;i<visibleColumns.length;i++){var 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)}}catch(t){console.log("CronTimeline invalid configuration! "+t)}scope.options.fields.image&&"do-not-show"!=scope.options.imageType&&(scope.options.imageClassPosition="item-"+scope.options.imageType+"-"+scope.options.imagePosition),scope.options.advancedTemplate||(scope.options.advancedTemplate=defaultAdvancedTemplate);var templateDyn=scope.options.advancedTemplate;for(let t=0;t<visibleColumns.length;t++){let n=visibleColumns[t];if(n.field&&"Database"===n.dataType&&scope.options.fields[`security${t}`]){let n=`ng-if="rowData[options.fields.field${t}]"`,a=`${n} cronapp-security="${scope.options.fields["security"+t]}"`;templateDyn=templateDyn.replace(n,a)}}templateDyn=$(templateDyn),scope.options.xattrTextPosition=attrs.xattrTextPosition,$(element).replaceWith(templateDyn);var $element=templateDyn,eventItem=$element.find("timeline-event");"rowData in datasource"===$(eventItem).attr("ng-repeat")&&eventItem.attr("ng-repeat",getExpression(dataSourceName)),$compile(templateDyn,null,9999998)(scope)}}}]).directive("cronScheduler",["$compile","$translate",function($compile,$translate){return{estrict:"E",replace:!0,initCulture:function(){var t=$translate.use(),n=(t=t.replace(/_/gm,"-")).split("-");n[n.length-1]=n[n.length-1].toUpperCase(),t=n.join("-"),kendo.culture(t)},getSchedulerModel:function(t){let n={id:"id",fields:{}};for(let a in t)n.fields[a]={from:t[a].name,validation:{required:!t[a].nullable}};return n},mergeSchedulerEventWithDatasourceActive:(t,n)=>Object.assign(t.active,n),setDatasourceActiveItem:function(t,n,a){if(n){for(let o in t.data){let r=t.data[o][a];if(null!==r&&r===n[a])return t.active=t.copy(t.data[o],{}),t.active}return t.startEditing({}),t.active}},getSchedulerProperties:async function(t,n,a){let o="Expression"===t.initialDateStrategy?await a.$eval(generateBlocklyCall(t.initialDateBlocklyInfo,!0)):t.initialDate,r={start:null,end:null},l=(t,n)=>new Promise((a=>{let o=setInterval((()=>{let r=$(`[data-id="${t}"]`);if(r.length){clearInterval(o);let t="click";$(".km-pane-wrapper").length&&(t="touchstart"),r.off(t),r.on(t,(t=>{n(t),t.stopImmediatePropagation()})),a()}}),100)})),s=[];if(t.views)for(let n in t.views){let a=t.views[n];a.visible&&s.push(a)}else t.showDayTab&&s.push("day"),t.showAgendaTab&&s.push("agenda"),t.showMonthTab&&s.push("month"),t.showTimelineTab&&s.push("timeline"),t.showWeekTab&&s.push("week"),t.showWorkWeekTab&&s.push("workWeek");let c={dateHeaderTemplate:kendo.template(`#=kendo.toString(date, ${kendo.culture().name.toLowerCase().includes("pt")?"'ddd dd/M'":"'ddd M/dd'"})#`),showWorkHours:t.showWorkHours,selectable:!0,date:o,mobile:!1,allDaySlot:t.allDaySlot,messages:{editor:{timezone:$translate.instant("TimezoneEvent")}},currentTimeMarker:t.currentTimeMarker?{updateInterval:1e4,useLocalTimezone:!1}:t.currentTimeMarker,views:s,navigate:function(t){t.sender.view()},dataBound:function(n){n.sender.view();(n=>{let a=n.sender.view(),o=n.sender.element.find(".k-scheduler-header.k-state-default.changed").length;"month"===a.name&&!o&&t.useCustomDaysOfWeek&&(n.sender.element.find(".k-scheduler-header.k-state-default").html(`<div class="k-scheduler-header k-state-default">\n <div class="k-scheduler-header-wrap">\n <table class="k-scheduler-table">\n <tbody>\n <tr>\n <th colspan="1" class="">${t.daysOfWeek.sunday}</th>\n <th colspan="1" class="">${t.daysOfWeek.monday}</th>\n <th colspan="1" class="">${t.daysOfWeek.tuesday}</th>\n <th colspan="1" class="">${t.daysOfWeek.wednesday}</th>\n <th colspan="1" class="">${t.daysOfWeek.thursday}</th>\n <th colspan="1" class="">${t.daysOfWeek