cronapp-framework-js 3.0.0-SP.42 → 3.0.0-SP.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/themes/custom/aquamarine/custom-aquamarine.css +13 -11
- package/css/themes/custom/cyborg/custom-cyborg.css +0 -7
- package/css/themes/custom/darkly/custom-darkly.css +0 -8
- package/css/themes/custom/dsgov/button-dsgov.css +0 -1
- package/css/themes/custom/dsgov/table-grid-dsgov.css +15 -8
- package/css/themes/custom/fuse/custom-fuse.css +4 -20
- package/css/themes/custom/material/grid-material.css +1 -1
- package/dist/css/themes/custom/aquamarine/custom-aquamarine.css +1 -1
- package/dist/css/themes/custom/cyborg/custom-cyborg.css +1 -1
- package/dist/css/themes/custom/darkly/custom-darkly.css +1 -1
- package/dist/css/themes/custom/dsgov/button-dsgov.css +1 -1
- package/dist/css/themes/custom/dsgov/table-grid-dsgov.css +1 -1
- package/dist/css/themes/custom/fuse/custom-fuse.css +1 -1
- package/dist/css/themes/custom/material/grid-material.css +1 -1
- package/dist/js/directives.js +2 -2
- package/js/directives.js +6 -0
- package/package.json +1 -1
package/dist/js/directives.js
CHANGED
|
@@ -39,7 +39,7 @@ maskDirectiveAsDate.$inject=["$compile","$translate","$parse"],maskDirectiveMask
|
|
|
39
39
|
<input id="${r}">
|
|
40
40
|
<span id="${s}" class="k-icon k-i-close" style="margin-left: 5px;"></span>
|
|
41
41
|
</li>
|
|
42
|
-
</ul>`);t.html(i),t.append(c),$compile(i)(t.scope());let p=$(`#${l}`).kendoContextMenu({target:i,filter:"td",close:t=>{closeContextMenu||t.preventDefault()},open:t=>{let e=t.target,n=$(e).parent()[0],a=i.data("kendoGrid"),o=t.item.id,d=e.innerText;if(d.length&&"\u200B"!==d)$(t.item).find(`#${r}`).val(d),closeContextMenu=!1;else{let e=()=>new Promise((e,t)=>{let n=setInterval(()=>{$(`#${l}`).is(":visible")&&(clearInterval(n),$(`#${l}`).hide())})});e()}}}).data("kendoContextMenu");$(`#${s}`).on("click",t=>{closeContextMenu=!0,p.close()})}}}]).directive("src",["$compile",function(e){return{restrict:"A",link:function(e,t,n,a){"IMG"===t[0].tagName&&cronapi.internal.isBase64(n.src)&&setTimeout(()=>$(t[0]).attr("src","data:image/png;base64,"+n.src))}}}]).directive("crnSkin",["$compile","$http",function(e,t){return{restrict:"A",link:function(e,n,a,i){a.crnSkin&&t.get(a.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=$(n);let a=$element.find("[data-role=\"grid\"]");a.length&&($element=a);let i=$element.attr("style")||"";i&&(i+=", "),i+=t,$element.attr("style",i)}})}}}]).directive("cronTreeView",["$compile","$translate",function($compile,$translate){return{restrict:"E",replace:!0,require:"ngModel",scope:!0,getDataSource:function(options,scope,ngModelCtrl){let id=options.dataSourceScreen.schema.filter(e=>!0===e.key)[0].name,schema={model:{id:id,hasChildren:function(e){return e.hasChildren}}},getAllParent=function(e,t,n,a,i){t[schema.model.id]&&n.push(t[schema.model.id]);let o=`${e.entity}?$filter=${schema.model.id} eq '${t[options.selfRelationshipField]}'&$format=json&$inlinecount=allpages`;t[options.selfRelationshipField]?$.ajax({url:o,success:t=>{getAllParent(e,t.d.results[0],n,a,i)},beforeSend:e=>{window.isUsingCookie()||e.setRequestHeader("X-AUTH-TOKEN",cronapi.util.getUserToken())},error:()=>i(),type:"GET"}):a(n)},reloadAndExpand=function(e){let t=()=>{let t=new Promise((t,n)=>{getAllParent(this.options.cronappDatasource,e,[],t,n)});t.then(e=>{this.options.kendoObj.expandPath(e.reverse())})};this.options.kendoObj.dataSource.bind("requestEnd",t),this.options.kendoObj.dataSource.read()},helperDirective=this,waitingPromise=!1,datasource=new kendo.data.HierarchicalDataSource({transport:{push:async function(e){let t=await this.options.cronappDatasource();!helperDirective.dataSourceEventsPush&&t&&(helperDirective.dataSourceEventsPush={create:function(e){reloadAndExpand.bind(this)(e)}.bind(this),update:function(e){reloadAndExpand.bind(this)(e)}.bind(this),delete:function(e){reloadAndExpand.bind(this)(e),ngModelCtrl.$setViewValue(null)}.bind(this),overRideRefresh:function(e){this.options.fromRefresh=!0,this.options.kendoObj.dataSource.read(),ngModelCtrl.$setViewValue(null)}.bind(this),read:function(e){waitingPromise||(this.options.kendoObj.dataSource.read(),ngModelCtrl.$setViewValue(null))}.bind(this)},t.addDataSourceEvents(helperDirective.dataSourceEventsPush))},read:async function(e){let cronappDatasource=await this.options.cronappDatasource(),conditionIsEmpty=e=>{let t=!0;if(e){let n=JSON.parse(e);n.expression&&n.expression.args&&n.expression.args.forEach(e=>{""!==e.right&&"''"!==e.right&&e.right!==void 0&&(t=!1)})}return t};for(key in e.data)null==e.data[key]&&delete e.data[key];let logicFilter={filter:{logic:"and",filters:[]}};for(let t in e.data){let n={field:options.selfRelationshipField,operator:"eq",value:e.data[t]};logicFilter.filter.filters.push(n)}let condition=cronappDatasource.condition,conditionEmpty=conditionIsEmpty(condition),paramsOData={$inlinecount:"allpages",$format:"json",$filter:`${options.selfRelationshipField} eq null`};logicFilter.filter.filters.length?(cronappDatasource.condition="",paramsOData=kendo.data.transports.odata.parameterMap(logicFilter,"read")):this.options.fromRefresh&&(this.options.fromRefresh=!1,!conditionEmpty&&(cronappDatasource.cleanup(),paramsOData={$inlinecount:"allpages",$format:"json"})),cronappDatasource.rowsPerPage=e.data.pageSize,cronappDatasource.offset=e.data.page-1;let fetchData={};fetchData.params=paramsOData,helperKendoDs=this,cronappDatasource.fetch(fetchData,{success:function(data){let all=data.map(item=>{let odataUrl=`${this.entity}/$count?$filter=${options.selfRelationshipField} eq '${item[schema.model.id]}'`;return new Promise((resolve,reject)=>{$.ajax({url:odataUrl,success:count=>{item.hasChildren=0<eval(count),resolve()},beforeSend:e=>{window.isUsingCookie()||e.setRequestHeader("X-AUTH-TOKEN",cronapi.util.getUserToken())},error:()=>reject(),type:"GET"})})});waitingPromise=!0,Promise.all(all).then(()=>{e.success(data),waitingPromise=!1})},canceled:function(t){e.error("canceled","canceled","canceled")}},!0),condition&&(cronappDatasource.condition=condition)},options:{fromRead:!1,cronappDatasource:async()=>await app.kendoHelper.getCorrectlyDSPromise(options.dataSourceScreen.name,scope)}},schema:schema});return datasource},link:function(t,n,a,i){let o=$("<div></div>"),d=JSON.parse(a.options),l=this,r=function(e,t){t=e.getKeyValues(t);var n=Object.keys(t);return 1===n.length&&(t=t[n]),t},s=o.kendoTreeView({dataSource:l.getDataSource(d,t,i),dataTextField:d.textField,dataImageUrlField:d.imageUrlField,change:async function(n){let e=this.dataItem(this.select()),a=await this.dataSource.transport.options.cronappDatasource();t.safeApply(a.goTo(e)),d.fieldType&&"key"===d.fieldType&&(a.active=r(a,a.active)),i.$setViewValue(a.active)}}).data("kendoTreeView");s.dataSource.transport.options.kendoObj=s,n.html(o),$compile(o)(n.scope())}}}]).directive("cronSelect",["$compile",function(e){return{restrict:"E",replace:!0,require:"ngModel",link:async function(t,n,a,i){var o={};try{o=JSON.parse(a.options)}catch(e){console.log("ComboBox invalid configuration! "+e)}var d=a.id?" id=\""+a.id+"\"":"",e=a.name?" name=\""+a.name+"\"":"",l=n.parent();$(l).append("<input style=\"width: 100%;\" "+d+e+" class=\"cronSelect\"/>");var r=$(l).find("input.cronSelect"),s=await app.kendoHelper.getConfigCombobox(o,t);s.close=a.ngClose?function(){t.$eval(a.ngClose)}:void 0,s.dataBound=a.ngDataBound?function(){t.$eval(a.ngDataBound)}:void 0,s.filtering=a.ngFiltering?function(){t.$eval(a.ngFiltering)}:void 0,s.select=a.ngSelect?function(n){t.safeApply(()=>{var e={selected:n.dataItem,selectedKey:n.dataItem[s.dataValueField],selectedValue:n.dataItem[s.dataTextField]};t.$eval(a.ngSelect,e)})}:void 0,s.change=a.ngChange?function(n){var e=this.dataItem();t.safeApply(()=>{a.ngModel&&g.$$parse(a.ngModel).assign(t,this.value(),a.ngModel.split("."));var n={selected:e,selectedKey:e[s.dataValueField],selectedValue:e[s.dataTextField]};t.$eval(a.ngChange,n)})}:function(n){t.safeApply(()=>{a.ngModel&&g.$$parse(a.ngModel).assign(t,this.value(),a.ngModel.split("."))})},s.messages={noData:a.noResultsMessage?a.noResultsMessage:"NO DATA FOUND"};var c;if(!0===o.dontAllowOutsideList){c=r.kendoDropDownList(s).data("kendoDropDownList");let e=l.find("span").first();e.on("focus",()=>cronapi.internal.selectContent(e.find(".k-input")[0]))}else c=r.kendoComboBox(s).data("kendoComboBox");$(n).remove();let p,u=()=>{if(p=$(l).find(".k-input.cronSelect"),p.length){p.attr("ng-required",a.ngRequired),"true"===a.ngRequired&&p.attr("required","required"),p.attr("ng-model",a.ngModel),p.attr("id",a.id),p.attr("validationmessage",a.validationmessage);let e=p.parent();p.on("change",()=>{"true"===a.ngRequired&&(0==p.val().length?(e.addClass("ng-invalid-required"),p.addClass("ng-invalid-required")):(e.removeClass("ng-invalid-required"),p.removeClass("ng-invalid-required")))})}else setTimeout(()=>u())};u(),t.$watch(a.cronDisabled,function(e){c.enable(!e)});var m=t,g=i;i&&(i.$formatters.push(function(e){var t="";return("boolean"==typeof e||e)&&(t=e),c.value(t),t}),i.$parsers.push(function(e){return p&&p.trigger("change"),"boolean"==typeof e||e?e:null}))}}}]).directive("cronDynamicSelect",["$compile","$timeout","$parse","$translate","$log",function($compile,$timeout,$parse,$translate,$log){return{restrict:"E",replace:!0,require:"?ngModel",goTo:function(e,t,n){if(dataSourceScreen=$(t).data("dataSourceScreen"),null!=dataSourceScreen)return dataSourceScreen.goTo(n,!0)},compileAngular:function(e,t){var n=$(t),a=angular.element(n);$compile(a)(e)},getActive:function(active){if(active&&active.indexOf(".active."))try{return eval(active.substr(0,active.indexOf(".active.")))}catch(t){}return null},getFieldText:function(e,t){if(e&&e.indexOf(".active.")&&t.dataTextField)try{var n=e.substr(e.indexOf(".active.")+8);return n+"_"+t.dataTextField}catch(t){}return null},isDefaultEntity:function(e){if(e&&e.entity){var t=e.entity.split("/");if(t&&0<t.length)return-1==t.pop().indexOf("query")}return!1},getModelParent:function(e){if("string"==typeof e&&9<e.length&&0<e.indexOf("|raw}}")){e=e.trim();var t=e.substr(e.indexOf("{{")+2);return t=t.substr(0,t.indexOf("|raw}}")),t.trim()}return null},toComboType:function(e,t,n,a){let i=t.find("span").first();switch(i.on("focus",()=>cronapi.internal.selectContent(i.find("span.ng-scope")[0])),n.type){case"autoComplete":let t=["Tab","Shift","CapsLock","Control","Alt","Escape","PageDown","PageUp","Backspace","ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Delete","Insert","Enter"," "],o=["Tab","Shift","CapsLock","Control","Alt","Escape","PageDown","PageUp","ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Insert"];i.attr("contenteditable","true");let d=$(`input[aria-owns=${e.id}_listbox]`),l=d.parent(),r=$(`#${e.id}-list`);l.hide(),i.on("keyup",n=>{document.activeElement!==i[0]||o.includes(n.originalEvent.key)||d.val(i.find("span.ng-scope").text()),i.hasClass("k-state-border-down")||t.includes(n.originalEvent.key)||i.trigger("click")}),i.on("focusout",()=>{r.is(":visible")||s()}),i.on("click",()=>c());let s=()=>{i.find("span.ng-scope").text(a.dataItem()[n.dataTextField]),a.search()},c=()=>{let e=setInterval(()=>{r.is(":visible")||(clearInterval(e),document.activeElement!==i[0]&&s())})};break;default:i.on("keydown",t=>{if("ArrowDown"===t.originalEvent.key||"ArrowUp"===t.originalEvent.key)return t.stopImmediatePropagation(),void i.trigger("click")})}},link:async function(scope,element,attrs,ngModelCtrl){await cronapi.internal.skipIterationLoop();var modelGetter=$parse(attrs.ngModel),modelSetter=(e,t)=>{$log.debug("modelSetter | "+attrs.id+" | "+t),modelGetter.assign(e,t)},select={},self=this,parentDS={},textField=null;try{select=JSON.parse(attrs.options),parentDS=this.getActive(attrs.ngModel),textField=this.getFieldText(attrs.ngModel,select)}catch(e){console.log("DynamicComboBox invalid configuration! "+e)}let lastFieldInModel=attrs.ngModel.split(".");lastFieldInModel=lastFieldInModel[lastFieldInModel.length-1];let modelForTextField=attrs.ngModel.replace(lastFieldInModel,textField),modelTextFieldGetter=$parse(modelForTextField),modelTextFieldSetter=modelTextFieldGetter.assign;var options=await app.kendoHelper.getConfigCombobox(select,scope);options.autoBind=!0;var dataSourceScreen=null;try{delete options.dataSource.schema.model.id,dataSourceScreen=eval(select.dataSourceScreen.name),dataSourceScreen.rowsPerPage=dataSourceScreen.rowsPerPage?dataSourceScreen.rowsPerPage:100,options.dataSource.transport.origin="combobox"}catch(t){}var _scope=scope,_goTo=this.goTo,_compileAngular=this.compileAngular;options.virtual={},options.virtual.itemHeight=26;let lastValueMapper;if(options.dataSource.pageSize&&0<options.dataSource.pageSize){options.height=options.dataSource.pageSize*options.virtual.itemHeight/4,options.virtual.mapValueTo="dataItem";var _options=options;let e=()=>new Promise(e=>{let t;_options.combobox?e():t=setInterval(()=>{_options.combobox&&(clearInterval(t),e())})});options.virtual.valueMapper=async function(t){await e(),$log.debug("valueMapper | "+attrs.id+" | "+t.value),lastValueMapper&&!lastValueMapper.completed&&($log.debug("valueMapper Canceling | "+lastValueMapper.value),lastValueMapper.canceled=!0),lastValueMapper=t;var n=_options.combobox;if(t.canceled)return void $log.debug("valueMapper CANCELED | "+t.value);if(!(t.value||""===t.value))$log.debug("valueMapper.success | "+attrs.id+" | NULL"),t.success(null);else if(null!==n.options.optionLabel[n.options.dataValueField]&&""===t.value)t.completed=!0,$log.debug("valueMapper.success | "+attrs.id+" | NULL"),t.success(null);else{n.isEvaluating=!0;var a=_options.dataSource.transport.options.cronappDatasource;void 0===t.value||null===t.value||""===t.value?(t.completed=!0,$log.debug("valueMapper.success | "+attrs.id+" | NULL"),t.success(null),n.isEvaluating=!1):($log.debug("valueMapper.findObj | "+attrs.id+" | "+t.value),a.findObj([t.value],!1,function(e){return t.completed=!0,t.canceled?($log.debug("valueMapper CANCELED | "+t.value),void(n.isEvaluating=!1)):void(Array.isArray(e)&&(e=e[0]),$log.debug("valueMapper.success | "+attrs.id+" | "+e),t.success(e),n.isEvaluating=!1,select.changeCursor?scope.safeApply(function(){if(t.canceled)return void $log.debug("valueMapper CANCELED | "+t.value);if(null!=e){var i=_goTo(_scope,n,e);i||(a.data.push(e),i=_goTo(_scope,n,e)),i&&modelSetter(_scope,i[select.dataValueField])}else modelSetter(_scope,null)}):null==e&&modelSetter(_scope,null))},function(){return t.completed=!0,t.canceled?($log.debug("valueMapper CANCELED | "+t.value),void(n.isEvaluating=!1)):void($log.debug("valueMapper.success | "+attrs.id+" | NULL"),t.success(null),n.isEvaluating=!1)},[combobox.options.dataValueField]))}}}options.messages={noData:attrs.noResultsMessage?attrs.noResultsMessage:"NO DATA FOUND"},options.change=attrs.ngChange?function(t){var e=this.dataItem();scope.safeApply(()=>{var t={selected:e,selectedKey:e[options.dataValueField],selectedValue:e[options.dataTextField]};scope.$eval(attrs.ngChange,t)})}:void 0,options.close=attrs.ngClose?function(){scope.$eval(attrs.ngClose)}:void 0,options.dataBound=attrs.ngDataBound?function(){scope.$eval(attrs.ngDataBound)}:void 0,options.filtering=attrs.ngFiltering?function(){scope.$eval(attrs.ngFiltering)}:void 0,options.open=function(t){dataSourceScreen.fetched&&dataSourceScreen.lastLoadedTime===combobox.dataSource.lastLoadedTime||(combobox.options.firstLazyRead=!0,combobox.dataSource.read(),combobox.dataSource.lastLoadedTime=dataSourceScreen.lastLoadedTime)},options.select=attrs.ngSelect?function(t){scope.safeApply(()=>{var e={selected:t.dataItem,selectedKey:t.dataItem[options.dataValueField],selectedValue:t.dataItem[options.dataTextField]};scope.$eval(attrs.ngSelect,e)})}:void 0;var parent=element.parent(),id=attrs.id?" id=\""+attrs.id+"\"":"",name=attrs.name?" name=\""+attrs.name+"\"":"",validationmessage=attrs.validationmessage?" validationmessage=\""+attrs.validationmessage+"\"":"",inputSelect=$("<input style=\"width: 100%;\""+id+name+validationmessage+" class=\"cronDynamicSelect\" ng-model=\""+attrs.ngModel+"\"/>");attrs.$observe("required",function(e){inputSelect.prop("required",e)}),$(parent).append(inputSelect);var $element=$(parent).find("input.cronDynamicSelect");dataSourceScreen&&(dataSourceScreen.__ignoreFirstFetch=!0);var combobox=$element.kendoDropDownList(options).data("kendoDropDownList");options.combobox=combobox,$(combobox.element[0]).attr("tabindex","-1"),null!=dataSourceScreen&&null!=dataSourceScreen&&$(combobox).data("dataSourceScreen",dataSourceScreen),(attrs.ngRequired||attrs.required)&&($(combobox.element[0]).attr("style",""),$(combobox.element[0]).attr("class","cron-select-offscreen")),$(combobox.wrapper).children(".k-dropdown-wrap").children(".k-select").before(inputSelect),this.toComboType(attrs,parent,select,combobox);let forcedRefreshModelAt,canRefresh=()=>{let e=performance.now();return!forcedRefreshModelAt||2e3<e-forcedRefreshModelAt};var forceChangeModel=async function(e){$log.debug("forceChangeModel | "+attrs.id+" | "+e),void 0===e&&(e=null);let t=combobox.value();t=void 0!==t&&null!==t?t.trim():t;let n=void 0!==e&&null!==e?(""+e).trim():e;n!==t&&(await combobox.value(e)),select.changeCursor&&scope.safeApply(()=>{null==e||null==e?(dataSourceScreen.active={},dataSourceScreen.cursor=-1,modelSetter(_scope,null)):_goTo(_scope,combobox,combobox.dataItem())})};let returnTypedValue=e=>{if(dataSourceScreen.schema){let t=dataSourceScreen.schema.find(e=>e.name===options.dataValueField);t&&"String"!==t.type&&(e=parseFloat(e)||e)}return e};var defineInitialValue=function(){if(!combobox.definingInitialValue)if(!combobox.isEvaluating){var e=returnTypedValue(combobox.value()),t=null,n=dataSourceScreen.goTo(e);n||((combobox.options.lazyFirstInitialValue||!dataSourceScreen.lazy)&&null!=select.initValue&&null!=select.initValue&&(combobox.options.lazyFirstInitialValue=!1,n=dataSourceScreen.goTo(select.initValue),n&&(t=select.initValue)),null==t&&select.firstValue?dataSourceScreen&&(combobox.definingInitialValue=!0,dataSourceScreen.fetch({params:{$top:1}},{success:function(e){e.length&&(dataSourceScreen.data.push(e[0]),t=e[0][select.dataValueField]),modelSetter(_scope,t),forceChangeModel(t),combobox.definingInitialValue=!1},error:function(){combobox.definingInitialValue=!1},canceled:function(){combobox.definingInitialValue=!1}},void 0,{lookup:!0})):(modelSetter(_scope,t),forceChangeModel(t),combobox.definingInitialValue=!1))}else setTimeout(()=>defineInitialValue(),300)},_ngModelCtrl=ngModelCtrl;null!=dataSourceScreen&&null!=dataSourceScreen&&dataSourceScreen.addDataSourceEvents({overRideRefresh:function(){dataSourceScreen.fetched=!1,dataSourceScreen.cleanup(),canRefresh()&&defineInitialValue()}});var _isDefaultEntity=this.isDefaultEntity;if($element.on("change",function(event){let applyChange=function(){return combobox.isEvaluating?void setTimeout(applyChange,100):void _scope.$apply(function(){if(modelSetter(_scope,combobox.dataItem()[select.dataValueField]),modelTextFieldSetter(_scope,combobox.dataItem()[select.dataTextField]),select.changeValueBasedOnLabel){let comboLabelValue=combobox.dataItem()[select.dataTextField];try{eval(select.changeValueBasedOnLabel+"=\""+comboLabelValue+"\"")}catch(t){try{_scope.$eval(select.changeValueBasedOnLabel+"=\""+comboLabelValue+"\"")}catch(t){console.error("N\xE3o foi poss\xEDvel atribuir o texto do combobox ",comboLabelValue," no compo informado ",select.changeValueBasedOnLabel)}}}_compileAngular(scope,options.combobox.element[0])})};applyChange()}),ngModelCtrl&&(ngModelCtrl.$formatters.push(function(e){$log.debug("$formatters | "+attrs.id+" | "+e);var t=combobox.value();return(void 0===e||""===e&&void 0===select.optionLabelValue)&&(e=null,modelSetter(_scope,e)),forceChangeModel(e),e}),ngModelCtrl.$parsers.push(function(e){if($log.debug("$parsers | "+attrs.id+" | "+e),"boolean"==typeof e||e)if(!0===combobox.options.valuePrimitive){if("string"==typeof e)return e;if("boolean"==typeof e[select.dataValueField]||e[select.dataValueField])return e[select.dataValueField]}else try{return objectClone(e,combobox.dataSource.options.schema.model.fields)}catch(t){}return null})),!select.initValue)select.initValue=null;else if(select.initValue.startsWith("params.")){var type=combobox.dataSource.options.schema.model.fields[select.dataValueField].type;select.initValue=scope.$eval(select.initValue),"string"!=type&&(select.initValue=dataSourceScreen.normalizeValue(select.initValue,!0))}else select.initValue=scope.$eval(select.initValue);""==select.initValue&&(select.initValue=null),combobox.dataSource.transport&&combobox.dataSource.transport.options&&(combobox.dataSource.transport.options.combobox=combobox,combobox.dataSource.transport.options.$compile=$compile,combobox.dataSource.transport.options.scope=scope,combobox.dataSource.transport.options.ngModelCtrl=ngModelCtrl,combobox.dataSource.transport.options.initRead=!0,null!=select.initValue&&null!=select.initValue?(setTimeout(()=>{modelSetter(_scope,select.initValue)},0),combobox.options.lazyFirstInitialValue=!0):select.firstValue&&defineInitialValue()),$(combobox.span).on("DOMSubtreeModified",function(t){_compileAngular(scope,t.target)}),$(combobox.ul).on("DOMSubtreeModified",function(t){$timeout(function(){_compileAngular(scope,t.target)})}),_compileAngular(scope,combobox.span),_compileAngular(scope,combobox.ul),$(element).remove(),scope.$watch(attrs.cronDisabled,function(e){combobox.enable(!e)}),$("[aria-owns='"+`${attrs.id}_listbox`+"']").attr("aria-label",$translate.instant("template.crud.search")),ngModelCtrl.$modelValue&&(_scope.cronapi.internal.forceRefreshNgModel(attrs.ngModel,ngModelCtrl.$modelValue),forcedRefreshModelAt=performance.now())}}}]).directive("cronMultiSelect",["$compile","$parse",function($compile,$parse){return{restrict:"E",require:"ngModel",link:async function(scope,element,attrs,ngModelCtrl){var modelGetter=$parse(attrs.ngModel),modelSetter=modelGetter.assign,model=attrs.ngModel,_self=this,select={};try{select=JSON.parse(attrs.options)}catch(e){console.log("MultiSelect invalid configuration! "+e)}var _scope=scope,_ngModelCtrl=ngModelCtrl,relactionDS={relationDataSource:null==select.relationDataSource?null:eval(select.relationDataSource.name),relationField:null==select.relationField?"":select.relationField},options=await app.kendoHelper.getConfigCombobox(select,scope);try{delete options.dataSource.schema.model.id}catch(t){}var parent=element.parent(),id=attrs.id?" id=\""+attrs.id+"\"":"",name=attrs.name?" name=\""+attrs.name+"\"":"";let required=attrs.ngRequired&&eval(attrs.ngRequired)?`required="required"`:"";$(parent).append(`<div style="width: 100%;"> <input style="width: 100%;" ${id} ${name} ${required} class="cronMultiSelect" ng-model="${attrs.ngModel}"/> </div>`),$(parent).find("label").attr("for",attrs.id);let $inp=$(`${attrs.id}`);$compile($inp)(scope);var $element=$(parent).find("input.cronMultiSelect");$(element).remove();var evtSelect,deselect;options.deselect=function(e){var dataItem=e.dataItem,relation=this.relationDataSource,dataValueField=e.sender.options.dataValueField,selectItem=null;if(relation&&relation.data&&dataItem[dataValueField]){for(key in relation.data){var item=relation.data[key];if(item[this.relationField]&&item[this.relationField]==dataItem[dataValueField]){selectItem=item;break}}null!=selectItem&&($(combobox).data("silent",!0),this.relationDataSource.removeSilent(selectItem,null,null))}else model&&_scope.$apply(function(){try{var data=eval("_scope."+model);data=data.filter(e=>"object"==typeof e?e[dataValueField]!==dataItem[dataValueField]:e!==dataItem[dataValueField]),$(combobox).data("silent",!0),modelSetter(_scope,data)}catch(t){}});deselect&&deselect()}.bind(relactionDS),options.select=function(e){var dataItem=e.dataItem,dataValueField=e.sender.options.dataValueField,combobox=e.sender;if(this.relationDataSource&&dataItem[dataValueField]){var obj={};obj[this.relationField]=dataItem[dataValueField],$(combobox).data("silent",!0),this.relationDataSource.startInserting(obj,function(e){this.postSilent()}.bind(this.relationDataSource))}else model&&_scope.$apply(function(){try{var data=eval("_scope."+model);if(data||(data=[]),select.fieldType&&"key"===select.fieldType){var keyValues=combobox.dataSource.options.transport.options.cronappDatasource.getKeyValues(dataItem),keys=Object.keys(keyValues);1===keys.length&&(keyValues=keyValues[keys]),data.push(keyValues)}else data.push(objectClone(dataItem,combobox.dataSource.options.schema.model.fields));$(combobox).data("silent",!0),modelSetter(_scope,data)}catch(t){}});evtSelect&&evtSelect()}.bind(relactionDS);var hideSelectedItem="true"==attrs.crnHideSelectedItem,onSelectedItem=()=>{hideSelectedItem&&combobox.list&&0<combobox.list.length&&(combobox.list.find(".k-item").show(),combobox.list.find(".k-item.k-state-selected").hide())};options.change=attrs.ngChange?function(){_scope.$eval(attrs.ngChange)}:void 0,options.close=attrs.ngClose?function(){_scope.$eval(attrs.ngClose)}:void 0,options.dataBound=attrs.ngDatabound?function(){_scope.$eval(attrs.ngDatabound)}:void 0,options.filtering=attrs.ngFiltering?function(){_scope.$eval(attrs.ngFiltering)}:void 0,options.open=attrs.ngOpen?function(){_scope.$eval(attrs.ngOpen),onSelectedItem()}:onSelectedItem,options.cascade=attrs.ngCascade?function(){_scope.$eval(attrs.ngCascade)}:void 0,evtSelect=attrs.ngSelect?function(){_scope.$eval(attrs.ngSelect)}:void 0,deselect=attrs.ngDeselect?function(){_scope.$eval(attrs.ngDeselect)}:void 0;var combobox=$element.kendoMultiSelect(options).data("kendoMultiSelect");scope.$watch(attrs.cronDisabled,function(e){combobox.enable(!e)}),app.kendoHelper.receivePushData(combobox),$("[aria-describedby='"+`${attrs.id}_taglist`+"']").attr("id",`${attrs.id}-container`),attrs.crnReadonly&&_scope.$watch(attrs.crnReadonly,(e,t)=>{combobox.readonly(_scope.$eval(attrs.crnReadonly))});var convertArray=function(e){var t=[];if(e)for(var n in e)t.push(e[n][relactionDS.relationField]);return t};scope.$watchCollection(function(){return ngModelCtrl.$modelValue},function(value,old){var silent=$(combobox).data("silent");value&&0===value.length?($(`#${attrs.id}`).addClass("ng-empty"),attrs.ngRequired&&eval(attrs.ngRequired)&&$(`#${attrs.id}`).attr("required","required")):($(`#${attrs.id}`).removeClass("ng-empty"),$(`#${attrs.id}`).removeAttr("required")),$(combobox).data("silent",!1),silent||JSON.stringify(value)===JSON.stringify(old)||(relactionDS.relationDataSource&&relactionDS.relationField?combobox.value(convertArray(value)):combobox.value(value))})}}}]).directive("cronAutoComplete",["$compile",function(e){return{restrict:"E",require:"ngModel",link:async function(t,n,a,i){var o={};try{o=JSON.parse(a.options)}catch(e){console.log("AutoComplete invalid configuration! "+e)}try{delete d.dataSource.schema.model.id}catch(t){}var d=await app.kendoHelper.getConfigCombobox(o,t);d.change=a.ngChange?function(){t.$eval(a.ngChange)}:void 0,d.close=a.ngClose?function(){t.$eval(a.ngClose)}:void 0,d.dataBound=a.ngDataBound?function(){t.$eval(a.ngDataBound)}:void 0,d.filtering=a.ngFiltering?function(){t.$eval(a.ngFiltering)}:void 0,d.select=a.ngSelect?function(){t.$eval(a.ngSelect)}:void 0;var l=n.parent(),r=a.id?" id=\""+a.id+"\"":"",e=a.name?" name=\""+a.name+"\"":"",s=a.validationmessage?" validationmessage=\""+a.validationmessage+"\"":"",c="";(a.ngRequired||a.required)&&(c=" required "),$(l).append("<input style=\"width: 100%;\" "+r+e+c+s+" class=\"cronAutoComplete\" ng-model=\""+a.ngModel+"\"/>");var p=$(l).find("input.cronAutoComplete");$(n).remove(),d.change=function(n){t.$apply(function(){i.$setViewValue(p.val())})},"true"==a.autoExpand&&p.on("focus",function(t){u.search()}),d.messages={noData:a.noResultsMessage?a.noResultsMessage:"NO DATA FOUND"},"false"==a.firstOptionOnBlur&&(d.suggest=!1);var u=p.kendoAutoComplete(d).data("kendoAutoComplete");t.$watch(a.cronDisabled,function(e){u.enable(!e)}),i&&(i.$formatters.push(function(e){return u.value(e),e}),i.$parsers.push(function(e){if(e){if("string"==typeof e)return e;if(e[o.dataTextField])return e[o.dataTextField]}return null}))}}}]).directive("cronDate",["$compile","$translate","$window",function(e,t,n){return{restrict:"AE",require:"?ngModel",link:function(n,a,i,o){var d={},l={};try{if(i.options)l=JSON.parse(i.options);else{var r=window.buildElementOptions(a);l=JSON.parse(r)}l.format||(l.format=parseMaskType(l.type,t)),d=app.kendoHelper.getConfigDate(t,l)}catch(e){console.log("AutoComplete invalid configuration! "+e)}var s="date"==d.type||"datetime"==d.type||"time"==d.type;window.fixedTimeZone||(s=!1);var c=$(a);if(!c.data("alreadycompiled")){if(c.data("alreadycompiled",!0),c.data("$compile",e),i.fromGrid)c=$(a);else{var p=a.parent(),u=$("<input style=\"width: 100%;\" class=\"cronDate\" ng-model=\""+i.ngModel+"\"/>");$(p).append(u),c=$(p).find("input.cronDate"),c.data("type",d.type),c.attr("type","date")}var m=app.kendoHelper.buildKendoMomentPicker(c,d,n,o);i.fromGrid||(o&&(o.$formatters.push(function(e){var t=null;if(e){var n=null;n=s?moment(e).utcOffset(window.timeZoneOffset):moment(e),t=n.format(d.momentFormat)}return m.value(t),t}),o.$parsers.push(function(e){if(e){var t=null;return t=s?moment(m._oldText,d.momentFormat).utcOffset(window.timeZoneOffset):moment(m._oldText,d.momentFormat),t.toDate()}return null})),$(a).remove())}}}}]).directive("cronSlider",["$compile",function(e){return{restrict:"E",require:"ngModel",getActive:function(e,t){if(e&&e.indexOf(".active."))try{return t.$eval(e.substr(0,e.indexOf(".active.")))}catch(t){}},link:function(t,n,a,i){var o={};try{o=JSON.parse(a.options)}catch(e){console.log("Slider invalid configuration! "+e)}var d=app.kendoHelper.getConfigSlider(o),l=this.getActive(a.ngModel,t);d.change=function(){t.$apply(function(){var e=$(n).val();l&&(e=l.normalizeValue(e,!0)),i.$setViewValue(e),a.ngChange&&t.$eval(a.ngChange)})},d.slide=a.ngSlide?function(){t.$eval(a.ngSlide)}:void 0;var o=$(n).kendoSlider(d).data("kendoSlider");o._drag.element[0].title=d.dragHandleTitle,o._drag.element[1].title=d.dragHandleTitle;const r=new ResizeObserver(e=>{o.resize()});if(r.observe(o.wrapper[0]),"true"===a.ngRequired||a.required){var s=a.id?" id=\"input"+app.common.generateId()+"\"":"",c=a.name?" name=\"input"+app.common.generateId()+"\"":"",p=n.parent();$(p).append("<input aria-label=\"slider\" autocomplete=\"off\" tabindex=\"-1\" style=\"width: 100%;\""+s+c+" required class=\"cronSlider cron-select-offscreen\" ng-model=\""+a.ngModel+"\"/>");var u=$(p).find("input.cronSlider");e(u)(n.scope())}t.$watch(function(){return i.$modelValue},function(e,t){e!==t&&(e?o.value(e):o.value(o.min()))}),i&&(i.$formatters.push(function(e){var t=null;return!e&&o.min?t=o.min:e&&(t=e),o.value(t),t}),i.$parsers.push(function(e){return e?e:null}))}}}]).directive("cronSwitch",["$compile",function(e){return{restrict:"E",require:"ngModel",link:function(t,n,a,i){var o={};try{var d=window.buildElementOptions(n);o=JSON.parse(d)}catch(e){console.log("Switch invalid configuration! "+e)}var l=app.kendoHelper.getConfigSwitch(o),r=n.parent();$(r).append("<input style=\"width: 100%;\" class=\"cronSwitch\" ng-model=\""+a.ngModel+"\"/>");var s=$(r).find("input.cronSwitch"),c=function(n){t.$apply(function(){i.$setViewValue(this.value())}.bind(this))};l.change=c;var p=s.kendoMobileSwitch(l).data("kendoMobileSwitch");$(n).remove(),i&&(i.$formatters.push(function(e){var t=!1;return null!=e&&(t=e),p.value(t),t}),i.$parsers.push(function(e){return null!=e&&e}))}}}]).directive("cronBarcode",["$compile",function(e){return{restrict:"E",require:"ngModel",link:function(e,t,n,a){var i={};try{var o=window.buildElementOptions(t);i=JSON.parse(o)}catch(e){console.log("Barcode invalid configuration! "+e)}var d=app.kendoHelper.getConfigBarcode(i),l=t.parent();$(l).append("<span class=\"cronBarcode\" ng-model=\""+n.ngModel+"\"></span>");var r=$(l).find("span.cronBarcode"),s=r.kendoBarcode(d).data("kendoBarcode");$(t).remove(),e.$watch(function(){return a.$modelValue},function(e,t){var n="";e!==t&&(n=e),d.value=n,s.setOptions(d)})}}}]).directive("cronQrcode",["$compile",function(e){return{restrict:"E",require:"ngModel",link:function(e,t,n,a){var i={};try{var o=window.buildElementOptions(t);i=JSON.parse(o)}catch(e){console.log("Qrcode invalid configuration! "+e)}var d=app.kendoHelper.getConfigQrcode(i),l=t.parent();$(l).append("<span class=\"cronQrcode\" ng-model=\""+n.ngModel+"\"></span>");var r=$(l).find("span.cronQrcode"),s=r.kendoQRCode().data("kendoQRCode");$(t).remove(),e.$watch(function(){return a.$modelValue},function(e,t){var n="";e!==t&&(n=e),d.value=n,s.setOptions(d)})}}}]).directive("cronappRating",function(){"use strict";return{restrict:"E",require:"ngModel",link:function(e,t,n,a){function o(e){for(var t=1;5>=t;t++)c[t-1].removeClass(n.iconOff||"fa fa-star-o"),c[t-1].removeClass(n.classElem),c[t-1].removeClass(n.iconTheme),t<=e?c[t-1].addClass(n.classElem):(c[t-1].addClass(n.iconOff||"fa fa-star-o"),c[t-1].addClass(n.theme),c[t-1].addClass(n.iconSize));return e}n.theme=$(t).find("i").attr("icon-theme"),n.classElem=$(t).find("i").attr("class"),n.iconSize=$(t).find("i").attr("icon-size"),n.iconOn=$(t).find("i").attr("class");var d=$(t),l=[];n.xattrDefaultValue&&(a.$viewValue=0,a.$commitViewValue());for(var r=1;5>=r;r++)l.push($(t).find("i").get(r-1)),$(l[r-1]).addClass(n.iconOff||"fa fa-star-o");d.html("");for(var s,c=[],r=1;5>=r;r++)s=$(l[r-1]).clone(),d.append(s),s.attr("idx",r),s.click(function(){e.$apply(function(){let e=parseInt($(this).attr("idx"));a.$viewValue=a.$viewValue===e?0:e,a.$commitViewValue()}.bind(this))}),c.push(s);a.$parsers.push(o),a.$formatters.push(o)}}}).directive("cronDynamicMenu",["$compile","$translate",function(e,t){"use strict";const n=e=>{var a="";return e&&0<e.length&&Array.isArray(e)&&(e.forEach(function(e){var i=e.security&&null!=e.security?` cronapp-security="${e.security}" `:"",o=e.action&&null!=e.action?` ng-click="cronapi.internal.lastCronappMenuClick('${e.id}');${e.action}" `:"",d=e.hide&&null!=e.hide?` ng-hide="${e.hide}" `:"",l=e.iconClass&&null!=e.iconClass?`<i class="${e.iconClass}" id="menu-tag-i-${e.id}"></i> `:"",r=`<span id="menu-tag-span-${e.id}"></span>`,s=e.menuItems&&Array.isArray(e.menuItems)&&0<e.menuItems.length?`<span class="caret submenu" id="menu-tag-span-sub-${e.id}"></span>`:"";e.title&&(r=`<span id="menu-tag-span-${e.id}">${t.instant(e.title)}</span>`),a+=0<e.menuItems.length?`
|
|
42
|
+
</ul>`);t.html(i),t.append(c),$compile(i)(t.scope());let p=$(`#${l}`).kendoContextMenu({target:i,filter:"td",close:t=>{closeContextMenu||t.preventDefault()},open:t=>{let e=t.target,n=$(e).parent()[0],a=i.data("kendoGrid"),o=t.item.id,d=e.innerText;if(d.length&&"\u200B"!==d)$(t.item).find(`#${r}`).val(d),closeContextMenu=!1;else{let e=()=>new Promise((e,t)=>{let n=setInterval(()=>{$(`#${l}`).is(":visible")&&(clearInterval(n),$(`#${l}`).hide())})});e()}}}).data("kendoContextMenu");$(`#${s}`).on("click",t=>{closeContextMenu=!0,p.close()})}}}]).directive("src",["$compile",function(e){return{restrict:"A",link:function(e,t,n,a){"IMG"===t[0].tagName&&cronapi.internal.isBase64(n.src)&&setTimeout(()=>$(t[0]).attr("src","data:image/png;base64,"+n.src))}}}]).directive("crnSkin",["$compile","$http",function(e,t){return{restrict:"A",link:function(e,n,a,i){a.crnSkin&&t.get(a.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=$(n);let a=$element.find("[data-role=\"grid\"]");a.length&&($element=a);let i=$element.attr("style")||"";i&&(i+=", "),i+=t,$element.attr("style",i)}})}}}]).directive("cronTreeView",["$compile","$translate",function($compile,$translate){return{restrict:"E",replace:!0,require:"ngModel",scope:!0,getDataSource:function(options,scope,ngModelCtrl){let id=options.dataSourceScreen.schema.filter(e=>!0===e.key)[0].name,schema={model:{id:id,hasChildren:function(e){return e.hasChildren}}},getAllParent=function(e,t,n,a,i){t[schema.model.id]&&n.push(t[schema.model.id]);let o=`${e.entity}?$filter=${schema.model.id} eq '${t[options.selfRelationshipField]}'&$format=json&$inlinecount=allpages`;t[options.selfRelationshipField]?$.ajax({url:o,success:t=>{getAllParent(e,t.d.results[0],n,a,i)},beforeSend:e=>{window.isUsingCookie()||e.setRequestHeader("X-AUTH-TOKEN",cronapi.util.getUserToken())},error:()=>i(),type:"GET"}):a(n)},reloadAndExpand=function(e){let t=()=>{let t=new Promise((t,n)=>{getAllParent(this.options.cronappDatasource,e,[],t,n)});t.then(e=>{this.options.kendoObj.expandPath(e.reverse())})};this.options.kendoObj.dataSource.bind("requestEnd",t),this.options.kendoObj.dataSource.read()},helperDirective=this,waitingPromise=!1,datasource=new kendo.data.HierarchicalDataSource({transport:{push:async function(e){let t=await this.options.cronappDatasource();!helperDirective.dataSourceEventsPush&&t&&(helperDirective.dataSourceEventsPush={create:function(e){reloadAndExpand.bind(this)(e)}.bind(this),update:function(e){reloadAndExpand.bind(this)(e)}.bind(this),delete:function(e){reloadAndExpand.bind(this)(e),ngModelCtrl.$setViewValue(null)}.bind(this),overRideRefresh:function(e){this.options.fromRefresh=!0,this.options.kendoObj.dataSource.read(),ngModelCtrl.$setViewValue(null)}.bind(this),read:function(e){waitingPromise||(this.options.kendoObj.dataSource.read(),ngModelCtrl.$setViewValue(null))}.bind(this)},t.addDataSourceEvents(helperDirective.dataSourceEventsPush))},read:async function(e){let cronappDatasource=await this.options.cronappDatasource(),conditionIsEmpty=e=>{let t=!0;if(e){let n=JSON.parse(e);n.expression&&n.expression.args&&n.expression.args.forEach(e=>{""!==e.right&&"''"!==e.right&&e.right!==void 0&&(t=!1)})}return t};for(key in e.data)null==e.data[key]&&delete e.data[key];let logicFilter={filter:{logic:"and",filters:[]}};for(let t in e.data){let n={field:options.selfRelationshipField,operator:"eq",value:e.data[t]};logicFilter.filter.filters.push(n)}let condition=cronappDatasource.condition,conditionEmpty=conditionIsEmpty(condition),paramsOData={$inlinecount:"allpages",$format:"json",$filter:`${options.selfRelationshipField} eq null`};logicFilter.filter.filters.length?(cronappDatasource.condition="",paramsOData=kendo.data.transports.odata.parameterMap(logicFilter,"read")):this.options.fromRefresh&&(this.options.fromRefresh=!1,!conditionEmpty&&(cronappDatasource.cleanup(),paramsOData={$inlinecount:"allpages",$format:"json"})),cronappDatasource.rowsPerPage=e.data.pageSize,cronappDatasource.offset=e.data.page-1;let fetchData={};fetchData.params=paramsOData,helperKendoDs=this,cronappDatasource.fetch(fetchData,{success:function(data){let all=data.map(item=>{let odataUrl=`${this.entity}/$count?$filter=${options.selfRelationshipField} eq '${item[schema.model.id]}'`;return new Promise((resolve,reject)=>{$.ajax({url:odataUrl,success:count=>{item.hasChildren=0<eval(count),resolve()},beforeSend:e=>{window.isUsingCookie()||e.setRequestHeader("X-AUTH-TOKEN",cronapi.util.getUserToken())},error:()=>reject(),type:"GET"})})});waitingPromise=!0,Promise.all(all).then(()=>{e.success(data),waitingPromise=!1})},canceled:function(t){e.error("canceled","canceled","canceled")}},!0),condition&&(cronappDatasource.condition=condition)},options:{fromRead:!1,cronappDatasource:async()=>await app.kendoHelper.getCorrectlyDSPromise(options.dataSourceScreen.name,scope)}},schema:schema});return datasource},link:function(t,n,a,i){let o=$("<div></div>"),d=JSON.parse(a.options),l=this,r=function(e,t){t=e.getKeyValues(t);var n=Object.keys(t);return 1===n.length&&(t=t[n]),t},s=o.kendoTreeView({dataSource:l.getDataSource(d,t,i),dataTextField:d.textField,dataImageUrlField:d.imageUrlField,change:async function(n){let e=this.dataItem(this.select()),a=await this.dataSource.transport.options.cronappDatasource();t.safeApply(a.goTo(e)),d.fieldType&&"key"===d.fieldType&&(a.active=r(a,a.active)),i.$setViewValue(a.active)}}).data("kendoTreeView");s.dataSource.transport.options.kendoObj=s,n.html(o),$compile(o)(n.scope())}}}]).directive("cronSelect",["$compile",function(e){return{restrict:"E",replace:!0,require:"ngModel",link:async function(t,n,a,i){var o={};try{o=JSON.parse(a.options)}catch(e){console.log("ComboBox invalid configuration! "+e)}var d=a.id?" id=\""+a.id+"\"":"",e=a.name?" name=\""+a.name+"\"":"",l=n.parent();$(l).append("<input style=\"width: 100%;\" "+d+e+" class=\"cronSelect\"/>");var r=$(l).find("input.cronSelect"),s=await app.kendoHelper.getConfigCombobox(o,t);s.close=a.ngClose?function(){t.$eval(a.ngClose)}:void 0,s.dataBound=a.ngDataBound?function(){t.$eval(a.ngDataBound)}:void 0,s.filtering=a.ngFiltering?function(){t.$eval(a.ngFiltering)}:void 0,s.select=a.ngSelect?function(n){t.safeApply(()=>{var e={selected:n.dataItem,selectedKey:n.dataItem[s.dataValueField],selectedValue:n.dataItem[s.dataTextField]};t.$eval(a.ngSelect,e)})}:void 0,s.change=a.ngChange?function(n){var e=this.dataItem();t.safeApply(()=>{a.ngModel&&g.$$parse(a.ngModel).assign(t,this.value(),a.ngModel.split("."));var n={selected:e,selectedKey:e[s.dataValueField],selectedValue:e[s.dataTextField]};t.$eval(a.ngChange,n)})}:function(n){t.safeApply(()=>{a.ngModel&&g.$$parse(a.ngModel).assign(t,this.value(),a.ngModel.split("."))})},s.messages={noData:a.noResultsMessage?a.noResultsMessage:"NO DATA FOUND"};var c;if(!0===o.dontAllowOutsideList){c=r.kendoDropDownList(s).data("kendoDropDownList");let e=l.find("span").first();e.on("focus",()=>cronapi.internal.selectContent(e.find(".k-input")[0]))}else c=r.kendoComboBox(s).data("kendoComboBox");$(n).remove();let p,u=()=>{if(p=$(l).find(".k-input.cronSelect"),p.length){p.attr("ng-required",a.ngRequired),"true"===a.ngRequired&&p.attr("required","required"),p.attr("ng-model",a.ngModel),p.attr("id",a.id),p.attr("validationmessage",a.validationmessage);let e=p.parent();p.on("change",()=>{"true"===a.ngRequired&&(0==p.val().length?(e.addClass("ng-invalid-required"),p.addClass("ng-invalid-required")):(e.removeClass("ng-invalid-required"),p.removeClass("ng-invalid-required")))})}else setTimeout(()=>u())};u(),t.$watch(a.cronDisabled,function(e){c.enable(!e)});var m=t,g=i;i&&(i.$formatters.push(function(e){var t="";return("boolean"==typeof e||e)&&(t=e),c.value(t),t}),i.$parsers.push(function(e){return p&&p.trigger("change"),"boolean"==typeof e||e?e:null}))}}}]).directive("cronDynamicSelect",["$compile","$timeout","$parse","$translate","$log",function($compile,$timeout,$parse,$translate,$log){return{restrict:"E",replace:!0,require:"?ngModel",goTo:function(e,t,n){if(dataSourceScreen=$(t).data("dataSourceScreen"),null!=dataSourceScreen)return dataSourceScreen.goTo(n,!0)},compileAngular:function(e,t){var n=$(t),a=angular.element(n);$compile(a)(e)},getActive:function(active){if(active&&active.indexOf(".active."))try{return eval(active.substr(0,active.indexOf(".active.")))}catch(t){}return null},getFieldText:function(e,t){if(e&&e.indexOf(".active.")&&t.dataTextField)try{var n=e.substr(e.indexOf(".active.")+8);return n+"_"+t.dataTextField}catch(t){}return null},isDefaultEntity:function(e){if(e&&e.entity){var t=e.entity.split("/");if(t&&0<t.length)return-1==t.pop().indexOf("query")}return!1},getModelParent:function(e){if("string"==typeof e&&9<e.length&&0<e.indexOf("|raw}}")){e=e.trim();var t=e.substr(e.indexOf("{{")+2);return t=t.substr(0,t.indexOf("|raw}}")),t.trim()}return null},toComboType:function(e,t,n,a){let i=t.find("span").first();switch(i.on("focus",()=>cronapi.internal.selectContent(i.find("span.ng-scope")[0])),n.type){case"autoComplete":let t=["Tab","Shift","CapsLock","Control","Alt","Escape","PageDown","PageUp","Backspace","ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Delete","Insert","Enter"," "],o=["Tab","Shift","CapsLock","Control","Alt","Escape","PageDown","PageUp","ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Insert"];i.attr("contenteditable","true");let d=$(`input[aria-owns=${e.id}_listbox]`),l=d.parent(),r=$(`#${e.id}-list`);l.hide(),i.on("keyup",n=>{document.activeElement!==i[0]||o.includes(n.originalEvent.key)||d.val(i.find("span.ng-scope").text()),i.hasClass("k-state-border-down")||t.includes(n.originalEvent.key)||i.trigger("click")}),i.on("focusout",()=>{r.is(":visible")||s()}),i.on("click",()=>c());let s=()=>{i.find("span.ng-scope").text(a.dataItem()[n.dataTextField]),a.search()},c=()=>{let e=setInterval(()=>{r.is(":visible")||(clearInterval(e),document.activeElement!==i[0]&&s())})};break;default:i.on("keydown",t=>{if("ArrowDown"===t.originalEvent.key||"ArrowUp"===t.originalEvent.key)return t.stopImmediatePropagation(),void i.trigger("click")})}},link:async function(scope,element,attrs,ngModelCtrl){await cronapi.internal.skipIterationLoop();var modelGetter=$parse(attrs.ngModel),modelSetter=(e,t)=>{$log.debug("modelSetter | "+attrs.id+" | "+t),modelGetter.assign(e,t)},select={},self=this,parentDS={},textField=null;try{select=JSON.parse(attrs.options),parentDS=this.getActive(attrs.ngModel),textField=this.getFieldText(attrs.ngModel,select)}catch(e){console.log("DynamicComboBox invalid configuration! "+e)}let lastFieldInModel=attrs.ngModel.split(".");lastFieldInModel=lastFieldInModel[lastFieldInModel.length-1];let modelForTextField=attrs.ngModel.replace(lastFieldInModel,textField),modelTextFieldGetter=$parse(modelForTextField),modelTextFieldSetter=modelTextFieldGetter.assign;var options=await app.kendoHelper.getConfigCombobox(select,scope);options.autoBind=!0;var dataSourceScreen=null;try{delete options.dataSource.schema.model.id,dataSourceScreen=eval(select.dataSourceScreen.name),dataSourceScreen.rowsPerPage=dataSourceScreen.rowsPerPage?dataSourceScreen.rowsPerPage:100,options.dataSource.transport.origin="combobox"}catch(t){}var _scope=scope,_goTo=this.goTo,_compileAngular=this.compileAngular;options.virtual={},options.virtual.itemHeight=26;let lastValueMapper;if(options.dataSource.pageSize&&0<options.dataSource.pageSize){options.height=options.dataSource.pageSize*options.virtual.itemHeight/4,options.virtual.mapValueTo="dataItem";var _options=options;let e=()=>new Promise(e=>{let t;_options.combobox?e():t=setInterval(()=>{_options.combobox&&(clearInterval(t),e())})});options.virtual.valueMapper=async function(t){await e(),$log.debug("valueMapper | "+attrs.id+" | "+t.value),lastValueMapper&&!lastValueMapper.completed&&($log.debug("valueMapper Canceling | "+lastValueMapper.value),lastValueMapper.canceled=!0),lastValueMapper=t;var n=_options.combobox;if(t.canceled)return void $log.debug("valueMapper CANCELED | "+t.value);if(!(t.value||""===t.value))$log.debug("valueMapper.success | "+attrs.id+" | NULL"),t.success(null);else if(null!==n.options.optionLabel[n.options.dataValueField]&&""===t.value)t.completed=!0,$log.debug("valueMapper.success | "+attrs.id+" | NULL"),t.success(null);else{n.isEvaluating=!0;var a=_options.dataSource.transport.options.cronappDatasource;void 0===t.value||null===t.value||""===t.value?(t.completed=!0,$log.debug("valueMapper.success | "+attrs.id+" | NULL"),t.success(null),n.isEvaluating=!1):($log.debug("valueMapper.findObj | "+attrs.id+" | "+t.value),a.findObj([t.value],!1,function(e){return t.completed=!0,t.canceled?($log.debug("valueMapper CANCELED | "+t.value),void(n.isEvaluating=!1)):void(Array.isArray(e)&&(e=e[0]),$log.debug("valueMapper.success | "+attrs.id+" | "+e),t.success(e),n.isEvaluating=!1,select.changeCursor?scope.safeApply(function(){if(t.canceled)return void $log.debug("valueMapper CANCELED | "+t.value);if(null!=e){var i=_goTo(_scope,n,e);i||(a.data.push(e),i=_goTo(_scope,n,e)),i&&modelSetter(_scope,i[select.dataValueField])}else modelSetter(_scope,null)}):null==e&&modelSetter(_scope,null))},function(){return t.completed=!0,t.canceled?($log.debug("valueMapper CANCELED | "+t.value),void(n.isEvaluating=!1)):void($log.debug("valueMapper.success | "+attrs.id+" | NULL"),t.success(null),n.isEvaluating=!1)},[combobox.options.dataValueField]))}}}options.messages={noData:attrs.noResultsMessage?attrs.noResultsMessage:"NO DATA FOUND"},options.change=attrs.ngChange?function(t){var e=this.dataItem();scope.safeApply(()=>{var t={selected:e,selectedKey:e[options.dataValueField],selectedValue:e[options.dataTextField]};scope.$eval(attrs.ngChange,t)})}:void 0,options.close=attrs.ngClose?function(){scope.$eval(attrs.ngClose)}:void 0,options.dataBound=attrs.ngDataBound?function(){scope.$eval(attrs.ngDataBound)}:void 0,options.filtering=attrs.ngFiltering?function(){scope.$eval(attrs.ngFiltering)}:void 0,options.open=function(t){dataSourceScreen.fetched&&dataSourceScreen.lastLoadedTime===combobox.dataSource.lastLoadedTime||(combobox.options.firstLazyRead=!0,combobox.dataSource.read(),combobox.dataSource.lastLoadedTime=dataSourceScreen.lastLoadedTime)},options.select=attrs.ngSelect?function(t){scope.safeApply(()=>{var e={selected:t.dataItem,selectedKey:t.dataItem[options.dataValueField],selectedValue:t.dataItem[options.dataTextField]};scope.$eval(attrs.ngSelect,e)})}:void 0;var parent=element.parent(),id=attrs.id?" id=\""+attrs.id+"\"":"",name=attrs.name?" name=\""+attrs.name+"\"":"",validationmessage=attrs.validationmessage?" validationmessage=\""+attrs.validationmessage+"\"":"",inputSelect=$("<input style=\"width: 100%;\""+id+name+validationmessage+" class=\"cronDynamicSelect\" ng-model=\""+attrs.ngModel+"\"/>");attrs.$observe("required",function(e){inputSelect.prop("required",e)}),$(parent).append(inputSelect);var $element=$(parent).find("input.cronDynamicSelect");dataSourceScreen&&(dataSourceScreen.__ignoreFirstFetch=!0);var combobox=$element.kendoDropDownList(options).data("kendoDropDownList");options.combobox=combobox,$(combobox.element[0]).attr("tabindex","-1"),null!=dataSourceScreen&&null!=dataSourceScreen&&$(combobox).data("dataSourceScreen",dataSourceScreen),(attrs.ngRequired||attrs.required)&&($(combobox.element[0]).attr("style",""),$(combobox.element[0]).attr("class","cron-select-offscreen")),$(combobox.wrapper).children(".k-dropdown-wrap").children(".k-select").before(inputSelect),this.toComboType(attrs,parent,select,combobox);let forcedRefreshModelAt,canRefresh=()=>{let e=performance.now();return!forcedRefreshModelAt||2e3<e-forcedRefreshModelAt};var forceChangeModel=async function(e){$log.debug("forceChangeModel | "+attrs.id+" | "+e),void 0===e&&(e=null);let t=combobox.value();t=void 0!==t&&null!==t?t.trim():t;let n=void 0!==e&&null!==e?(""+e).trim():e;n!==t&&(await combobox.value(e)),select.changeCursor&&scope.safeApply(()=>{null==e||null==e?(dataSourceScreen.active={},dataSourceScreen.cursor=-1,modelSetter(_scope,null)):_goTo(_scope,combobox,combobox.dataItem())})};let returnTypedValue=e=>{if(dataSourceScreen.schema){let t=dataSourceScreen.schema.find(e=>e.name===options.dataValueField);t&&"String"!==t.type&&(e=parseFloat(e)||e)}return e};var defineInitialValue=function(){if(!combobox.definingInitialValue)if(!combobox.isEvaluating){var e=returnTypedValue(combobox.value()),t=null,n=dataSourceScreen.goTo(e);n||((combobox.options.lazyFirstInitialValue||!dataSourceScreen.lazy)&&null!=select.initValue&&null!=select.initValue&&(combobox.options.lazyFirstInitialValue=!1,n=dataSourceScreen.goTo(select.initValue),n&&(t=select.initValue)),null==t&&select.firstValue?dataSourceScreen&&(combobox.definingInitialValue=!0,dataSourceScreen.fetch({params:{$top:1}},{success:function(e){e.length&&(dataSourceScreen.data.push(e[0]),t=e[0][select.dataValueField]),modelSetter(_scope,t),forceChangeModel(t),combobox.definingInitialValue=!1},error:function(){combobox.definingInitialValue=!1},canceled:function(){combobox.definingInitialValue=!1}},void 0,{lookup:!0})):(modelSetter(_scope,t),forceChangeModel(t),combobox.definingInitialValue=!1))}else setTimeout(()=>defineInitialValue(),300)},_ngModelCtrl=ngModelCtrl;null!=dataSourceScreen&&null!=dataSourceScreen&&dataSourceScreen.addDataSourceEvents({overRideRefresh:function(){dataSourceScreen.fetched=!1,dataSourceScreen.cleanup(),canRefresh()&&defineInitialValue()}});var _isDefaultEntity=this.isDefaultEntity;if($element.on("change",function(event){let applyChange=function(){return combobox.isEvaluating?void setTimeout(applyChange,100):void _scope.$apply(function(){if(modelSetter(_scope,combobox.dataItem()[select.dataValueField]),modelTextFieldSetter(_scope,combobox.dataItem()[select.dataTextField]),select.changeValueBasedOnLabel){let comboLabelValue=combobox.dataItem()[select.dataTextField];try{eval(select.changeValueBasedOnLabel+"=\""+comboLabelValue+"\"")}catch(t){try{_scope.$eval(select.changeValueBasedOnLabel+"=\""+comboLabelValue+"\"")}catch(t){console.error("N\xE3o foi poss\xEDvel atribuir o texto do combobox ",comboLabelValue," no compo informado ",select.changeValueBasedOnLabel)}}}_compileAngular(scope,options.combobox.element[0]),options?.combobox?.span&&_compileAngular(scope,options.combobox.span)})};applyChange()}),ngModelCtrl&&(ngModelCtrl.$formatters.push(function(e){$log.debug("$formatters | "+attrs.id+" | "+e);var t=combobox.value();return(void 0===e||""===e&&void 0===select.optionLabelValue)&&(e=null,modelSetter(_scope,e)),forceChangeModel(e),e}),ngModelCtrl.$parsers.push(function(e){if($log.debug("$parsers | "+attrs.id+" | "+e),"boolean"==typeof e||e)if(!0===combobox.options.valuePrimitive){if("string"==typeof e)return e;if("boolean"==typeof e[select.dataValueField]||e[select.dataValueField])return e[select.dataValueField]}else try{return objectClone(e,combobox.dataSource.options.schema.model.fields)}catch(t){}return null})),!select.initValue)select.initValue=null;else if(select.initValue.startsWith("params.")){var type=combobox.dataSource.options.schema.model.fields[select.dataValueField].type;select.initValue=scope.$eval(select.initValue),"string"!=type&&(select.initValue=dataSourceScreen.normalizeValue(select.initValue,!0))}else select.initValue=scope.$eval(select.initValue);""==select.initValue&&(select.initValue=null),combobox.dataSource.transport&&combobox.dataSource.transport.options&&(combobox.dataSource.transport.options.combobox=combobox,combobox.dataSource.transport.options.$compile=$compile,combobox.dataSource.transport.options.scope=scope,combobox.dataSource.transport.options.ngModelCtrl=ngModelCtrl,combobox.dataSource.transport.options.initRead=!0,null!=select.initValue&&null!=select.initValue?(setTimeout(()=>{modelSetter(_scope,select.initValue)},0),combobox.options.lazyFirstInitialValue=!0):select.firstValue&&defineInitialValue()),$(combobox.span).on("DOMSubtreeModified",function(t){_compileAngular(scope,t.target)}),$(combobox.ul).on("DOMSubtreeModified",function(t){$timeout(function(){_compileAngular(scope,t.target)})}),_compileAngular(scope,combobox.span),_compileAngular(scope,combobox.ul),$(element).remove(),scope.$watch(attrs.cronDisabled,function(e){combobox.enable(!e)}),$("[aria-owns='"+`${attrs.id}_listbox`+"']").attr("aria-label",$translate.instant("template.crud.search")),ngModelCtrl.$modelValue&&(_scope.cronapi.internal.forceRefreshNgModel(attrs.ngModel,ngModelCtrl.$modelValue),forcedRefreshModelAt=performance.now())}}}]).directive("cronMultiSelect",["$compile","$parse",function($compile,$parse){return{restrict:"E",require:"ngModel",link:async function(scope,element,attrs,ngModelCtrl){var modelGetter=$parse(attrs.ngModel),modelSetter=modelGetter.assign,model=attrs.ngModel,_self=this,select={};try{select=JSON.parse(attrs.options)}catch(e){console.log("MultiSelect invalid configuration! "+e)}var _scope=scope,_ngModelCtrl=ngModelCtrl,relactionDS={relationDataSource:null==select.relationDataSource?null:eval(select.relationDataSource.name),relationField:null==select.relationField?"":select.relationField},options=await app.kendoHelper.getConfigCombobox(select,scope);try{delete options.dataSource.schema.model.id}catch(t){}var parent=element.parent(),id=attrs.id?" id=\""+attrs.id+"\"":"",name=attrs.name?" name=\""+attrs.name+"\"":"";let required=attrs.ngRequired&&eval(attrs.ngRequired)?`required="required"`:"";$(parent).append(`<div style="width: 100%;"> <input style="width: 100%;" ${id} ${name} ${required} class="cronMultiSelect" ng-model="${attrs.ngModel}"/> </div>`),$(parent).find("label").attr("for",attrs.id);let $inp=$(`${attrs.id}`);$compile($inp)(scope);var $element=$(parent).find("input.cronMultiSelect");$(element).remove();var evtSelect,deselect;options.deselect=function(e){var dataItem=e.dataItem,relation=this.relationDataSource,dataValueField=e.sender.options.dataValueField,selectItem=null;if(relation&&relation.data&&dataItem[dataValueField]){for(key in relation.data){var item=relation.data[key];if(item[this.relationField]&&item[this.relationField]==dataItem[dataValueField]){selectItem=item;break}}null!=selectItem&&($(combobox).data("silent",!0),this.relationDataSource.removeSilent(selectItem,null,null))}else model&&_scope.$apply(function(){try{var data=eval("_scope."+model);data=data.filter(e=>"object"==typeof e?e[dataValueField]!==dataItem[dataValueField]:e!==dataItem[dataValueField]),$(combobox).data("silent",!0),modelSetter(_scope,data)}catch(t){}});deselect&&deselect()}.bind(relactionDS),options.select=function(e){var dataItem=e.dataItem,dataValueField=e.sender.options.dataValueField,combobox=e.sender;if(this.relationDataSource&&dataItem[dataValueField]){var obj={};obj[this.relationField]=dataItem[dataValueField],$(combobox).data("silent",!0),this.relationDataSource.startInserting(obj,function(e){this.postSilent()}.bind(this.relationDataSource))}else model&&_scope.$apply(function(){try{var data=eval("_scope."+model);if(data||(data=[]),select.fieldType&&"key"===select.fieldType){var keyValues=combobox.dataSource.options.transport.options.cronappDatasource.getKeyValues(dataItem),keys=Object.keys(keyValues);1===keys.length&&(keyValues=keyValues[keys]),data.push(keyValues)}else data.push(objectClone(dataItem,combobox.dataSource.options.schema.model.fields));$(combobox).data("silent",!0),modelSetter(_scope,data)}catch(t){}});evtSelect&&evtSelect()}.bind(relactionDS);var hideSelectedItem="true"==attrs.crnHideSelectedItem,onSelectedItem=()=>{hideSelectedItem&&combobox.list&&0<combobox.list.length&&(combobox.list.find(".k-item").show(),combobox.list.find(".k-item.k-state-selected").hide())};options.change=attrs.ngChange?function(){_scope.$eval(attrs.ngChange)}:void 0,options.close=attrs.ngClose?function(){_scope.$eval(attrs.ngClose)}:void 0,options.dataBound=attrs.ngDatabound?function(){_scope.$eval(attrs.ngDatabound)}:void 0,options.filtering=attrs.ngFiltering?function(){_scope.$eval(attrs.ngFiltering)}:void 0,options.open=attrs.ngOpen?function(){_scope.$eval(attrs.ngOpen),onSelectedItem()}:onSelectedItem,options.cascade=attrs.ngCascade?function(){_scope.$eval(attrs.ngCascade)}:void 0,evtSelect=attrs.ngSelect?function(){_scope.$eval(attrs.ngSelect)}:void 0,deselect=attrs.ngDeselect?function(){_scope.$eval(attrs.ngDeselect)}:void 0;var combobox=$element.kendoMultiSelect(options).data("kendoMultiSelect");scope.$watch(attrs.cronDisabled,function(e){combobox.enable(!e)}),app.kendoHelper.receivePushData(combobox),$("[aria-describedby='"+`${attrs.id}_taglist`+"']").attr("id",`${attrs.id}-container`),attrs.crnReadonly&&_scope.$watch(attrs.crnReadonly,(e,t)=>{combobox.readonly(_scope.$eval(attrs.crnReadonly))});var convertArray=function(e){var t=[];if(e)for(var n in e)t.push(e[n][relactionDS.relationField]);return t};scope.$watchCollection(function(){return ngModelCtrl.$modelValue},function(value,old){var silent=$(combobox).data("silent");value&&0===value.length?($(`#${attrs.id}`).addClass("ng-empty"),attrs.ngRequired&&eval(attrs.ngRequired)&&$(`#${attrs.id}`).attr("required","required")):($(`#${attrs.id}`).removeClass("ng-empty"),$(`#${attrs.id}`).removeAttr("required")),$(combobox).data("silent",!1),silent||JSON.stringify(value)===JSON.stringify(old)||(relactionDS.relationDataSource&&relactionDS.relationField?combobox.value(convertArray(value)):combobox.value(value))})}}}]).directive("cronAutoComplete",["$compile",function(e){return{restrict:"E",require:"ngModel",link:async function(t,n,a,i){var o={};try{o=JSON.parse(a.options)}catch(e){console.log("AutoComplete invalid configuration! "+e)}try{delete d.dataSource.schema.model.id}catch(t){}var d=await app.kendoHelper.getConfigCombobox(o,t);d.change=a.ngChange?function(){t.$eval(a.ngChange)}:void 0,d.close=a.ngClose?function(){t.$eval(a.ngClose)}:void 0,d.dataBound=a.ngDataBound?function(){t.$eval(a.ngDataBound)}:void 0,d.filtering=a.ngFiltering?function(){t.$eval(a.ngFiltering)}:void 0,d.select=a.ngSelect?function(){t.$eval(a.ngSelect)}:void 0;var l=n.parent(),r=a.id?" id=\""+a.id+"\"":"",e=a.name?" name=\""+a.name+"\"":"",s=a.validationmessage?" validationmessage=\""+a.validationmessage+"\"":"",c="";(a.ngRequired||a.required)&&(c=" required "),$(l).append("<input style=\"width: 100%;\" "+r+e+c+s+" class=\"cronAutoComplete\" ng-model=\""+a.ngModel+"\"/>");var p=$(l).find("input.cronAutoComplete");$(n).remove(),d.change=function(n){t.$apply(function(){i.$setViewValue(p.val())})},"true"==a.autoExpand&&p.on("focus",function(t){u.search()}),d.messages={noData:a.noResultsMessage?a.noResultsMessage:"NO DATA FOUND"},"false"==a.firstOptionOnBlur&&(d.suggest=!1);var u=p.kendoAutoComplete(d).data("kendoAutoComplete");t.$watch(a.cronDisabled,function(e){u.enable(!e)}),i&&(i.$formatters.push(function(e){return u.value(e),e}),i.$parsers.push(function(e){if(e){if("string"==typeof e)return e;if(e[o.dataTextField])return e[o.dataTextField]}return null}))}}}]).directive("cronDate",["$compile","$translate","$window",function(e,t,n){return{restrict:"AE",require:"?ngModel",link:function(n,a,i,o){var d={},l={};try{if(i.options)l=JSON.parse(i.options);else{var r=window.buildElementOptions(a);l=JSON.parse(r)}l.format||(l.format=parseMaskType(l.type,t)),d=app.kendoHelper.getConfigDate(t,l)}catch(e){console.log("AutoComplete invalid configuration! "+e)}var s="date"==d.type||"datetime"==d.type||"time"==d.type;window.fixedTimeZone||(s=!1);var c=$(a);if(!c.data("alreadycompiled")){if(c.data("alreadycompiled",!0),c.data("$compile",e),i.fromGrid)c=$(a);else{var p=a.parent(),u=$("<input style=\"width: 100%;\" class=\"cronDate\" ng-model=\""+i.ngModel+"\"/>");$(p).append(u),c=$(p).find("input.cronDate"),c.data("type",d.type),c.attr("type","date")}var m=app.kendoHelper.buildKendoMomentPicker(c,d,n,o);i.fromGrid||(o&&(o.$formatters.push(function(e){var t=null;if(e){var n=null;n=s?moment(e).utcOffset(window.timeZoneOffset):moment(e),t=n.format(d.momentFormat)}return m.value(t),t}),o.$parsers.push(function(e){if(e){var t=null;return t=s?moment(m._oldText,d.momentFormat).utcOffset(window.timeZoneOffset):moment(m._oldText,d.momentFormat),t.toDate()}return null})),$(a).remove())}}}}]).directive("cronSlider",["$compile",function(e){return{restrict:"E",require:"ngModel",getActive:function(e,t){if(e&&e.indexOf(".active."))try{return t.$eval(e.substr(0,e.indexOf(".active.")))}catch(t){}},link:function(t,n,a,i){var o={};try{o=JSON.parse(a.options)}catch(e){console.log("Slider invalid configuration! "+e)}var d=app.kendoHelper.getConfigSlider(o),l=this.getActive(a.ngModel,t);d.change=function(){t.$apply(function(){var e=$(n).val();l&&(e=l.normalizeValue(e,!0)),i.$setViewValue(e),a.ngChange&&t.$eval(a.ngChange)})},d.slide=a.ngSlide?function(){t.$eval(a.ngSlide)}:void 0;var o=$(n).kendoSlider(d).data("kendoSlider");o._drag.element[0].title=d.dragHandleTitle,o._drag.element[1].title=d.dragHandleTitle;const r=new ResizeObserver(e=>{o.resize()});if(r.observe(o.wrapper[0]),"true"===a.ngRequired||a.required){var s=a.id?" id=\"input"+app.common.generateId()+"\"":"",c=a.name?" name=\"input"+app.common.generateId()+"\"":"",p=n.parent();$(p).append("<input aria-label=\"slider\" autocomplete=\"off\" tabindex=\"-1\" style=\"width: 100%;\""+s+c+" required class=\"cronSlider cron-select-offscreen\" ng-model=\""+a.ngModel+"\"/>");var u=$(p).find("input.cronSlider");e(u)(n.scope())}t.$watch(function(){return i.$modelValue},function(e,t){e!==t&&(e?o.value(e):o.value(o.min()))}),i&&(i.$formatters.push(function(e){var t=null;return!e&&o.min?t=o.min:e&&(t=e),o.value(t),t}),i.$parsers.push(function(e){return e?e:null}))}}}]).directive("cronSwitch",["$compile",function(e){return{restrict:"E",require:"ngModel",link:function(t,n,a,i){var o={};try{var d=window.buildElementOptions(n);o=JSON.parse(d)}catch(e){console.log("Switch invalid configuration! "+e)}var l=app.kendoHelper.getConfigSwitch(o),r=n.parent();$(r).append("<input style=\"width: 100%;\" class=\"cronSwitch\" ng-model=\""+a.ngModel+"\"/>");var s=$(r).find("input.cronSwitch"),c=function(n){t.$apply(function(){i.$setViewValue(this.value())}.bind(this))};l.change=c;var p=s.kendoMobileSwitch(l).data("kendoMobileSwitch");$(n).remove(),i&&(i.$formatters.push(function(e){var t=!1;return null!=e&&(t=e),p.value(t),t}),i.$parsers.push(function(e){return null!=e&&e}))}}}]).directive("cronBarcode",["$compile",function(e){return{restrict:"E",require:"ngModel",link:function(e,t,n,a){var i={};try{var o=window.buildElementOptions(t);i=JSON.parse(o)}catch(e){console.log("Barcode invalid configuration! "+e)}var d=app.kendoHelper.getConfigBarcode(i),l=t.parent();$(l).append("<span class=\"cronBarcode\" ng-model=\""+n.ngModel+"\"></span>");var r=$(l).find("span.cronBarcode"),s=r.kendoBarcode(d).data("kendoBarcode");$(t).remove(),e.$watch(function(){return a.$modelValue},function(e,t){var n="";e!==t&&(n=e),d.value=n,s.setOptions(d)})}}}]).directive("cronQrcode",["$compile",function(e){return{restrict:"E",require:"ngModel",link:function(e,t,n,a){var i={};try{var o=window.buildElementOptions(t);i=JSON.parse(o)}catch(e){console.log("Qrcode invalid configuration! "+e)}var d=app.kendoHelper.getConfigQrcode(i),l=t.parent();$(l).append("<span class=\"cronQrcode\" ng-model=\""+n.ngModel+"\"></span>");var r=$(l).find("span.cronQrcode"),s=r.kendoQRCode().data("kendoQRCode");$(t).remove(),e.$watch(function(){return a.$modelValue},function(e,t){var n="";e!==t&&(n=e),d.value=n,s.setOptions(d)})}}}]).directive("cronappRating",function(){"use strict";return{restrict:"E",require:"ngModel",link:function(e,t,n,a){function o(e){for(var t=1;5>=t;t++)c[t-1].removeClass(n.iconOff||"fa fa-star-o"),c[t-1].removeClass(n.classElem),c[t-1].removeClass(n.iconTheme),t<=e?c[t-1].addClass(n.classElem):(c[t-1].addClass(n.iconOff||"fa fa-star-o"),c[t-1].addClass(n.theme),c[t-1].addClass(n.iconSize));return e}n.theme=$(t).find("i").attr("icon-theme"),n.classElem=$(t).find("i").attr("class"),n.iconSize=$(t).find("i").attr("icon-size"),n.iconOn=$(t).find("i").attr("class");var d=$(t),l=[];n.xattrDefaultValue&&(a.$viewValue=0,a.$commitViewValue());for(var r=1;5>=r;r++)l.push($(t).find("i").get(r-1)),$(l[r-1]).addClass(n.iconOff||"fa fa-star-o");d.html("");for(var s,c=[],r=1;5>=r;r++)s=$(l[r-1]).clone(),d.append(s),s.attr("idx",r),s.click(function(){e.$apply(function(){let e=parseInt($(this).attr("idx"));a.$viewValue=a.$viewValue===e?0:e,a.$commitViewValue()}.bind(this))}),c.push(s);a.$parsers.push(o),a.$formatters.push(o)}}}).directive("cronDynamicMenu",["$compile","$translate",function(e,t){"use strict";const n=e=>{var a="";return e&&0<e.length&&Array.isArray(e)&&(e.forEach(function(e){var i=e.security&&null!=e.security?` cronapp-security="${e.security}" `:"",o=e.action&&null!=e.action?` ng-click="cronapi.internal.lastCronappMenuClick('${e.id}');${e.action}" `:"",d=e.hide&&null!=e.hide?` ng-hide="${e.hide}" `:"",l=e.iconClass&&null!=e.iconClass?`<i class="${e.iconClass}" id="menu-tag-i-${e.id}"></i> `:"",r=`<span id="menu-tag-span-${e.id}"></span>`,s=e.menuItems&&Array.isArray(e.menuItems)&&0<e.menuItems.length?`<span class="caret submenu" id="menu-tag-span-sub-${e.id}"></span>`:"";e.title&&(r=`<span id="menu-tag-span-${e.id}">${t.instant(e.title)}</span>`),a+=0<e.menuItems.length?`
|
|
43
43
|
<li class="dropdown-submenu" ${i}${d} id="menu-tag-li-sub-${e.id}"> \
|
|
44
44
|
<a href="" ${o} id="menu-tag-a-sub-${e.id}" class="dropdown-item dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> ${l} ${r} ${s} </a> \
|
|
45
45
|
${n(e.menuItems)}\
|
|
@@ -52,4 +52,4 @@ maskDirectiveAsDate.$inject=["$compile","$translate","$parse"],maskDirectiveMask
|
|
|
52
52
|
${s} ${c} ${l}
|
|
53
53
|
</a>
|
|
54
54
|
${n(e.menuItems)}
|
|
55
|
-
</li>`}),i},link:function(n,a,i){var o=this.populateMenu;i.$observe("options",function(d){t.onReady(()=>{let t=a.closest(".crn-navigator-vertical").length;var l={};try{l=JSON.parse(d)}catch(t){console.log("CronDynamicMenu: Invalid configuration!")}let r=l&&l.subMenuOptions&&l.subMenuOptions.length?l.subMenuOptions[0].id:"first";var s=`<ul id="menu-tag-ul-base-${r}" class="nav navbar-nav ${t?"col-md-12 padding-0":""}" ></ul>`,c=$(s);c.attr("id",i.id);var p=o(l,t);c.append(p),t&&c.append($("#navbar2 li:first").addClass("col-md-12 padding-0"));var u=angular.element(c);a.html(""),a.append(c),a.attr("id",null),e(u)(n);var m=i.multilevelAction;"hover"===m&&($(".dropdown-menu .dropdown-submenu").on("mouseover",function(){var e=$(this).children("ul.dropdown-menu");e.addClass("displayBlock")}),$(".dropdown-menu .dropdown-submenu").on("mouseout",function(){var e=$(this).children("ul.dropdown-menu");e.removeClass("displayBlock")})),"click"===m&&$(".dropdown-menu a.dropdown-toggle").on("click",function(t){$(this).next().hasClass("show")||$(this).parents(".dropdown-menu").first().find(".show").removeClass("show");var e=$(this).next(".dropdown-menu");return e.toggleClass("show"),$(this).parents("li.nav-item.dropdown").on("hidden.bs.dropdown",function(t){$(".dropdown-submenu .show").removeClass("show")}),!1}),$("#checkCollapsibleMenu").on("click",function(){var e=document.getElementById("main-view");this.checked?e.classList.remove("main-view-retratil"):e.classList.add("main-view-retratil")});let g=a.closest("nav");if(g&&g.length){let e=!g.hasClass("submenu-click"),t=g.attr("id");if(t||(t=app.common.generateId(),g.attr("id",t)),e){let e=$(`#${t} .dropdown-submenu`).data("hooked");e||($(`#${t} .dropdown-submenu`).on("mouseenter",function(t){$(this).children(".dropdown-menu").addClass("show")}).on("mouseleave",function(t){$(this).children(".dropdown-menu").removeClass("show")}),$(`#${t} .dropdown-submenu`).data("hooked",!0))}else{let e=$(`#${t} .dropdown-menu a.dropdown-toggle`).data("hooked");e||($(`#${t} .dropdown-menu a.dropdown-toggle`).on("click",function(t){$(this).next().hasClass("show")||$(this).parents(".dropdown-menu").first().find(".show").removeClass("show");var e=$(this).next(".dropdown-menu");return e.toggleClass("show"),$(this).parents("li.nav-item.dropdown.show").on("hidden.bs.dropdown",function(t){$(".dropdown-submenu .show").removeClass("show")}),!e.length&&void $(".dropdown-menu").removeClass("show")}),$(`#${t} .dropdown-menu a.dropdown-toggle`).data("hooked",!0));let n=$(`#${t} .dropdown.nav-item`).data("hooked");n||($(`#${t} .dropdown.nav-item`).on("hidden.bs.dropdown",function(t){$(".dropdown-submenu .show").removeClass("show"),$(".dropdown-menu .show").removeClass("show")}),$(`#${t} .dropdown.nav-item`).data("hooked",!0))}}else{let e=$(a).find("ul:first").attr("id"),t=$(`#${e} .dropdown-submenu`).data("hooked");t||($(`#${e} .dropdown-submenu`).on("mouseenter",function(t){$(this).children(".dropdown-menu").addClass("show")}).on("mouseleave",function(t){$(this).children(".dropdown-menu").removeClass("show")}),$(`#${e} .dropdown-submenu`).data("hooked",!0))}})})}}}]).directive("cronBreadcrumbs",["$rootScope",function(e){"use strict";return{restrict:"E",replace:!0,link:function(e,t,n){var a=n.ngInit?n.ngInit:null;const i=n.crnDelimiterIcon,o=n.typeMenu,d=n.idMenu?n.idMenu:null,l=n.id,r=n.breadcrumbIcon?n.breadcrumbIcon:null,s=[],c=async()=>{const t=a.replace("cronapi.client('js.","blockly.js.");a=t.replace("').run()",""),a=e.$eval(a),s=await a();const n=async t=>{t.item.action&&t.item.action()};$(`#${l}`).kendoBreadcrumb({items:s,delimiterIcon:i,navigational:!0,click:n})},p=e=>e?e.replace("cronapi.screen.changeView('","").replace("', [])",""):"#/home";if(a&&"idBloco"===o)c();else{var u=new MutationObserver((e,t)=>{const n=$(`#${d}`).parent(),a=n.attr("options");if(a){t.disconnect();const e=JSON.parse(a),n=document.location.hash||"home",d=(e,t,n=[])=>{for(let o=0;o<e.length;o++){var a=e[o];if(a.action=p(a.action),a.action===t)return[...n,a];if(a.menuItems){const e=d(a.menuItems,t,[...n,a]);if(e)return e}}return null},r=d(e.subMenuOptions,n);if(r){for(var o in r){const e=r[o];s.push({type:0==o?"rootitem":"item",href:e.action,text:e.title,showText:!0,showIcon:!1})}$(`#${l}`).kendoBreadcrumb({items:s,delimiterIcon:i,navigational:!0})}}});u.observe(document.body,{childList:!0})}}}}]).directive("ngInitialValue",["$parse",function(e){return{restrict:"A",require:"ngModel",link:async function(t,n,a,i){if(a.ngInitialValue){var o,d=e(a.ngModel),l=d.assign;try{if(-1!=a.ngInitialValue.indexOf("cronapi.client('js.")){let e=a.ngInitialValue.replace("cronapi.client('js.","blockly.js."),n=e.split("').names")[0];n=n.split("').attr()")[0];let i=e.split(".run")[1];o=await t.$eval(n+i)}else o=t.$eval(a.ngInitialValue)||a.ngInitialValue}catch(t){o=a.ngInitialValue}"checkbox"==n[0].type&&o&&(o="true"==(""+o).toLowerCase()),l(t,o)}}}}]).directive("crnSetIndeterminate",["$parse",function($parse){return{restrict:"A",link:function(scope,element,attrs){let value=eval(attrs.crnSetIndeterminate);null===value&&$(element).prop("indeterminate",!0)}}}]).directive("crnAllowNullValues",[function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,a){a.$formatters=[],a.$parsers=[];let i=e=>(e&&-1===e.indexOf("'")&&(e=`'${e}'`),e);n.ngFalseValue=i(n.ngFalseValue),n.ngTrueValue=i(n.ngTrueValue);let o=!!n.ngFalseValue&&n.ngFalseValue.split("'").join(""),d=!n.ngTrueValue||n.ngTrueValue.split("'").join(""),l=e=>"true"===e||void 0===e||null===e||0==e.length;a.$render=l(n.crnAllowNullValues)?function(){let e=a.$viewValue;t.data("checked",e),!0===e||e===d?(t.prop("indeterminate",!1),t.prop("checked",!0),e=d):!1===e||e===o?(t.prop("indeterminate",!1),t.prop("checked",!1),e=o):(e=null,t.prop("indeterminate",!0)),setTimeout(()=>a.$setViewValue(e))}:function(){let i=a.$viewValue;if((void 0===a.$viewValue||null===a.$viewValue)&&(a.$setViewValue(!1),i=!1),i===o){let a=n.ngFalseValue?`${t.attr("ng-model")}=${n.ngFalseValue}`:`${t.attr("ng-model")}=${o}`;e.$eval(a)}switch(t.data("checked",i),i){case!0:case d:t.prop("indeterminate",!1),t.prop("checked",!0),i=d;break;default:t.prop("indeterminate",!1),t.prop("checked",!1),i=o}setTimeout(()=>a.$setViewValue(i))},t.bind("click",function(){let i;switch(t.data("checked")){case!1:case o:i=!n.ngTrueValue||d;break;default:i=!!n.ngFalseValue&&o}a.$setViewValue(i),e.$apply(a.$render)})}}}]).directive("signaturePad",["$compile","$window",function(e,t){"use strict";var n,a,i=null;return{restrict:"E",require:"ngModel",scope:!0,replace:!0,transclude:!0,template:"<div style=\"height: 100%; 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=\"btn k-button btn-warning\" ng-click=\"clear()\" xattr-fullsize=\"\" xattr-theme=\"btn-warning\" xattr-disabled=\"\"> <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 n=()=>{let e=t.signaturePad.toDataURL();return e&&(e=e.split(",")[1]),e};t.mouseup=function(a){t.signaturePad.isEmpty()||(t.ngModel=n())},t.$watch("ngModel",function(e,a){e!==a&&(n()!==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(a,i,o,d,l){n=i.find("canvas")[0],a.onResize=function(){var e=Math.max(t.devicePixelRatio||1,1),n=i.find("canvas")[0],a=document.createElement("canvas");a.width=n.width,a.height=n.height;var o=a.getContext("2d");o.drawImage(n,0,0),n.width=n.offsetWidth*e,n.height=n.offsetHeight*e,n.getContext("2d").drawImage(a,0,0),n.getContext("2d").scale(e,e)},a.onResize(),a.signaturePad=new SignaturePad(n),angular.element(t).on("resize",function(){a.onResize()}),e(i)(i.scope());let r=!1;$(n).on("pointerdown",t=>{1===t.which&&(r=!0),t.preventDefault()}),$(n).on("pointerup",t=>{1===t.which&&r&&(r=!1,l(()=>angular.element(n).triggerHandler("mouseup")))})}}}]).directive("cronChat",["$compile","$translate",function(e,t){return{restrict:"E",replace:!0,link:function(e,t,n,a){var i=JSON.parse(n.options||"{}");if(i.token&&i.urlCronchat){var o=i.urlCronchat.endsWith("/")?i.urlCronchat:i.urlCronchat+"/",d=i.token,l=$(`<script src="${o}get-chat?token=${d}" type="text/javascript"></script>`);t.html(l)}}}}]).directive("updateLanguage",["$rootScope",function(e){return{link:function(t,n){var a=function(e,t){var a="en",i=t.language;"pt_br"===i?i="pt-br":i.startsWith("en")&&(i="en"),n.attr("lang",i||"en")};e.$on("$translateChangeSuccess",a)}}}]).directive("cronFrame",cronFrame).directive("crnComponent",cronFrame).directive("fromGrid",["$compile",e=>({restrict:"A",priority:-999999,exist:e=>{let t=e.attr("id");return $(`#${t}`).length},isFromGrid:e=>"true"===e.fromGrid,isCompiled:e=>e.data("alreadycompiled"),getDateAs:function(e,t,n){let a=e.data("mask"),i=e.data("useUTC");return formatWithMomentAs(a,i,t,n)},prepareValue:function(e,t){let n=e.data("column-type")||"";return n.startsWith("date")&&(t=this.getDateAs(e,t,"date")),t},formatComponent:function(e,t){let n=e.data("kendoDropDownList")||e.data("kendoSlider"),a=e.data("column-type")||"";a.startsWith("date")?e.val(this.getDateAs(e,t,"string")):n&&n.value(t)},compileGridListing:function(t,n){let a=t.data("ref-component");if(a&&a.tbody&&a.tbody.length&&!$(a.tbody).find(".k-grid-edit-row").length){var i=a.tbody;setTimeout(()=>{n.safeApply(()=>{var t=$(i),a=angular.element(t);e(a)(n)})})}},link:function(e,t,n){e.$watch(n.ngModel,a=>{this.isFromGrid(n)&&this.exist(t)&&this.isCompiled(t)&&(a=this.prepareValue(t,a),this.formatComponent(t,a),this.compileGridListing(t,e),call=t.data("change-grid-model"),call&&call(a))})}})]).directive("cronOrderedList",["$compile","$sce","$parse",function(e,t,n){"use strict";return{restrict:"EA",replace:!0,link:function(t,n,a,i){let o=a.attributeValue,d=a.orderedAttributeValue,l=a.listType,r=n[0].children[0].children;r=$(r);let s="",c="";$.each(r,function(e,t){c+=t.outerHTML});"numbered-list"===l?s=`<ol style="list-style-type: ${o}">${c}</ol>`:"ordered-list"===l?s=`<ul style="list-style-type: ${d}">${c}</ul>`:void 0;s=$(s),$(n).replaceWith(s),e(s)(t)}}}]).directive("crnInfiniteScroll",["$compile",function($compile){"use strict";return{restrict:"EA",link:function(scope,element,attrs){var dataSource=attrs.crnInfiniteScroll?eval(attrs.crnInfiniteScroll):attrs.crnDatasource?eval(attrs.crnDatasource):void 0;if(dataSource){let e={isVisible:!1,checkVisibility:function(t){if(e.isVisible!==t&&(e.isVisible=t,e.isVisible))if(dataSource.loaded&&dataSource.loadedFinish)dataSource.nextPage();else{let e=setInterval(function(){dataSource.loaded&&dataSource.loadedFinish&&(dataSource.nextPage(),clearInterval(e))},250)}},eventScroll:function(){var t=element.offset().top,n=element.offset().top+element.outerHeight(),a=$(window).scrollTop()+$(window).innerHeight(),i=$(window).scrollTop();e.checkVisibility(a>t&&i<n)}};$(window).scroll(e.eventScroll),$(window).ready(e.eventScroll)}}}}])}(app);function maskDirectiveAsDate(e,t,n){return maskDirective(e,t,n,"as-date")}function maskDirectiveMask(e,t,n){return maskDirective(e,t,n,"mask")}function maskDirective(e,t,n,a){return{restrict:"A",require:"?ngModel",link:function(i,o,d,l){if("as-date"!=a||void 0===d.mask){var r=n(d.ngModel),s=r.assign,c=$(o);if(!c.data("alreadycompiled")){c.data("alreadycompiled",!0),c.data("$compile",e);var p=c.attr("type");if("checkbox"!=p&&"password"!=p&&"url"!=p){if("color"==p||"range"==p)return c[0].classList.remove("form-control"),void c[0].classList.remove("k-textbox");c.data("type",p),c.attr("type","text"),l&&(l.$formatters=[],l.$parsers=[]),void 0!==d.asDate&&"text"==p&&(p="date");var u=!0,m=!1,g=d.mask||d.format;g=g?parseMaskType(g,t):parseMaskType(p,t),g.endsWith(";0")&&(m=!0);var f=g.replace(";1","").replace(";0","").trim();if(null!=f&&0!=f.length)if("date"==p||"datetime"==p||"datetime-local"==p||"month"==p||"time"==p||"time-local"==p||"week"==p){var h={format:f,locale:t.use(),showTodayButton:!0,useStrict:!0,tooltips:{today:t.instant("DatePicker.today"),clear:t.instant("DatePicker.clear"),close:t.instant("DatePicker.close"),selectMonth:t.instant("DatePicker.selectMonth"),prevMonth:t.instant("DatePicker.prevMonth"),nextMonth:t.instant("DatePicker.nextMonth"),selectYear:t.instant("DatePicker.selectYear"),prevYear:t.instant("DatePicker.prevYear"),nextYear:t.instant("DatePicker.nextYear"),selectDecade:t.instant("DatePicker.selectDecade"),prevDecade:t.instant("DatePicker.prevDecade"),nextDecade:t.instant("DatePicker.nextDecade"),prevCentury:t.instant("DatePicker.prevCentury"),nextCentury:t.instant("DatePicker.nextCentury")}};"DD/MM/YYYY"!=f&&"MM/DD/YYYY"!=f&&(h.sideBySide=!0);var v="date"==p||"datetime"==p||"time"==p;if(window.fixedTimeZone||(v=!1),c.data("mask",f),c.data("useUTC",v),c.attr("from-grid")){var b=function(){var e=$(this).offset(),t=!0,n=$(this).parent().find(".bootstrap-datetimepicker-widget.dropdown-menu.usetwentyfour.bottom");if(n.length||(t=!1,n=$(this).parent().find(".bootstrap-datetimepicker-widget.dropdown-menu.usetwentyfour.top")),$(n).offset()){var a=$(n).offset().left,i=$("body");n.appendTo(i);var o=0;o=t?e.top+35:e.top-($(n).height()+15),n.css("top",o),n.css("bottom","auto"),n.css("left",a),n.css("z-index",999999)}};if(c.on("click",b),c.on("focus",function(){setTimeout(b.bind(this),100)}),c.on("dp.change",function(){i.safeApply(function(){var e=null;e=v?moment(c.val(),f).utcOffset(window.timeZoneOffset,!0):moment(c.val(),f),("time"==p||"time-local"==p)&&(e=e.year(1970).dayOfYear(1).month(0)),e.isValid()&&l&&s(i,e.toDate())})}),c.data("initial-value")){var y=c.data("initial-value"),k=null;k=v?moment(y).utcOffset(window.timeZoneOffset):moment(y),c.val(k.format(f)),c.data("initial-value",null)}}else c.wrap("<div style=\"position:relative\"></div>");c.datetimepicker(h),"true"!==d.fromGrid&&c.on("dp.change",function(){$(this).is(":visible")&&($(this).trigger("change"),i.safeApply(function(){var e=c.val(),t=null;t=v?moment(e,f).utcOffset(window.timeZoneOffset,!0):moment(e,f),("time"==p||"time-local"==p)&&(t=t.year(1970).dayOfYear(1).month(0)),t.isValid()&&l&&s(i,t.toDate())}))}),l&&(l.$formatters.push(function(e){if(e)return formatWithMomentAs(f,v,e,"string");if(null===e){var t=c.datetimepicker(h).data("DateTimePicker");t.date(null)}return null}),l.$parsers.push(function(e){if(e){if(e instanceof Date)return e;var t=null;return t=v?moment(e,f).utcOffset(window.timeZoneOffset,!0):moment(e,f),("time"==p||"time-local"==p)&&(t=t.year(1970).dayOfYear(1).month(0)),t.toDate()}return null}))}else if("number"==p||"money"==p||"integer"==p||"money-decimal"==p){m=!0;var C=f.trim().replace(/\./g,"").replace(/\,/g,"").replace(/#/g,"").replace(/0/g,"").replace(/9/g,""),w="",S="",D="",T=",",x=0;f.startsWith(C)?w=C:f.endsWith(C)&&(S=C);var M=f.trim().replace(w,"").replace(S,"").trim();M.startsWith("#.")?D=".":M.startsWith("#,")&&(D=",");var I=null;if(-1==M.indexOf(",0")?-1!=M.indexOf(".0")&&(T=".",I=".0"):(T=",",I=",0"),null!=I){var E=M.substring(M.indexOf(I)+1);x=E.length}var A="numeric";0==x&&(A="integer"),"money-decimal"==p&&(A="currency");var F={rightAlign:"money"==p||"money-decimal"==p,unmaskAsNumber:!0,allowMinus:!0,prefix:w,suffix:S,radixPoint:T,digits:x,numericInput:"money-decimal"==p};D&&(F.autoGroup=!0,F.groupSeparator=D),$(o).inputmask(A,F),useInputMaskPlugin(o,l,i,s,f)}else if("text"==p||"tel"==p||"string"==p){let e=["D","M","Y","H","m","s"],t=t=>(e.forEach(e=>t=t.replaceAll(e,"9")),t);f=t(f),d.maskPlaceholder?(h={},h.placeholder=d.maskPlaceholder,$(o).inputmask(f,h),m&&useInputMaskPlugin(o,l,i,s,f)):(c.mask(f),useMaskPlugin(o,l,i,s,m))}}}}}}}function useInputMaskPlugin(e,t,n,a,i){var o=$(e),d=function(){$(this).data("rawvalue",$(this).inputmask("unmaskedvalue"))};$(e).on("keydown",d).on("keyup",d),t&&(t.$formatters.push(function(e){return null!=e&&null!=e&&""!==e?format(i,e):null}),t.$parsers.push(function(e){if(e!=null&&null!=e&&""!==e){var t=o.inputmask("unmaskedvalue");if(""!==t)return t}return null}))}function useMaskPlugin(e,t,n,a,i){var o=$(e),d=function(){i&&$(this).data("rawvalue",$(this).cleanVal())};$(e).on("keydown",d).on("keyup",d),i&&t&&(t.$formatters.push(function(e){return e?o.masked(e):null}),t.$parsers.push(function(e){return e?o.cleanVal():null}))}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="#.#00,00")):"money"==e||"money-decimal"==e?(e=t.instant("Format.Money"),"Format.Money"==e&&(e="#.#00,00")):"integer"==e?(e=t.instant("Format.Integer"),"Format.Integer"==e&&(e="#,##0.####")):"week"==e?e="dddd":"tel"==e?e="(00) 00000-0000;0":"text"==e?e="":"string"==e&&(e=""),e}function transformText(){return{restrict:"E",require:"?ngModel",link:function(e,t,n,a){var i=function(e,t){if(e){if(t!==void 0&&null!==t){if("uppercase"===e.css("text-transform"))return t.toUpperCase();if("lowercase"===e.css("text-transform"))return t.toLowerCase()}return t}};a&&(a.$formatters.push(function(e){return i(t,e)}),a.$parsers.push(function(e){return i(t,e)}))}}}app.kendoHelper={getCorrectlyDS:(e,t)=>{if(t[e]&&t[e].apiVersion)return t[e];else{let n=t.$parent[e];return t[e]=n,n}},getCorrectlyDSPromise:async(e,t)=>new Promise((n,a)=>{let i=()=>{let o=null;if(t[e]&&t[e].apiVersion)o=t[e];else{let n=t.$parent[e];t[e]=n,o=n}o?n(o):$(`datasource[name="${e}"]`).length?setTimeout(()=>i(),100):a(null)};i()}),receivePushData:e=>!e||!e.dataSource||(e.dataSource.transport.options.refComponent=e),getSchema:function(e){var t=[{kendoType:"string",entityType:["string","character","uuid","guid"]},{kendoType:"number",entityType:["integer","long","double","int","float","bigdecimal","single","int32","int64","decimal","byte"]},{kendoType:"date",entityType:["date","time","datetime"]},{kendoType:"boolean",entityType:["boolean"]}],n=function(e){for(var n=0;n<t.length;n++)if(t[n].entityType.includes(e.toLocaleLowerCase()))return t[n].kendoType;return"string"},a={model:{id:"__$id",fields:{}}};return e&&e.schemaFields&&(e.schemaFields.forEach(function(e){a.model.fields[e.name]={type:n(e.type),editable:!0,nullable:e.nullable,validation:{required:!e.nullable}}}),a.model.fields.__$id={type:"string",editable:!0,nullable:!0,validation:{required:!1}}),a},getDataSource:function(t,n,a,i,o,d){var l=Number.MAX_SAFE_INTEGER_32;function r(t){if(t.response&&t.response.d){var e=null;e=t.response.d.results?t.response.d.results:[t.response.d],this.group().length?o.forEach(function(t){if("Database"==t.dataType){var n="datetime-local"==t.type||"month"==t.type||"time-local"==t.type||"week"==t.type;if(n)for(var a,o=0;o<e.length;o++)a=e[o],t.field==a.Member&&(a.Key=a.Key.replace(/\d+/,function(e){return parseInt(e)+g})),s.bind(this)(a.Items)}}):s.bind(this)(e)}}function s(e){for(var t=0;t<e.length;t++)o&&o.forEach(function(n){if("Database"==n.dataType){var a="datetime-local"==n.type||"month"==n.type||"time-local"==n.type||"week"==n.type;a&&e[t][n.field]&&(e[t][n.field]=e[t][n.field].replace(/\d+/,function(e){return parseInt(e)+g}))}})}function c(e){var t=[];return e&&e.forEach(function(e){e.aggregates&&e.aggregates.forEach(function(n){t.push({field:e.field,aggregate:n.type})})}),t}var p=this.getSchema(t);o&&o.forEach(function(e){for(var t in p.model.fields)if("Database"==e.dataType&&e.field==t){if(p.model.fields[t].nullable=!e.required,p.model.fields[t].validation.required=e.required,"999.999.999-99;0"===e.format||"99.999.999/9999-99;0"===e.format){let n="999.999.999-99;0"===e.format?"cpf":"cnpj",a={cpf:CPF,cnpj:CNPJ},i=t.toLocaleLowerCase()+"validation";p.model.fields[t].validation[i]=function(e){return!(e.is("[name='"+t+"']")&&""!=e.val())||a[n].isValid(e.val())}}break}});var u=function(e){for(var t in e)if(p.model.fields.hasOwnProperty(t)){var n=p.model.fields[t];"string"==n.type&&null!=e[t]?e[t]+="":"number"==n.type&&null!=e[t]?e[t]=parseFloat(e[t]):"date"==n.type&&null!=e[t]?e[t]="/Date("+e[t].getTime()+")/":"boolean"==n.type&&(null==e[t]?e[t]=!1:e[t]="true"==e[t].toString().toLowerCase()),p.model.id==t&&null!=e[t]&&0==e[t].toString().length&&delete e[t]}return e},m=10;app.kendoHelper.getCorrectlyDS(t.name,n)&&(m=app.kendoHelper.getCorrectlyDS(t.name,n).rowsPerPage);var g=6e4*new Date().getTimezoneOffset(),f=app.common.generateId(),h={transport:{setActiveAndPost:function(t){var e=this.options.cronappDatasource;n.safeApply(e.updateActive(u(t.data))),e.active.__sender=f,e.postSilent(function(e){this.options.enableAndSelect(t),t.success(e),this.options.refComponent.dataSource._pristineTotal=this.options.refComponent.dataSource._pristineData.push(e)}.bind(this),function(e){this.options.enableAndSelect(t),t.error(e,e,e)}.bind(this))},pushAction:function(e,t){return n=>{let a=["read","memorydelete","overRideRefresh"];if(this.options.isComponentInDocument(this.options.refComponent)){let a=this.options.getCurrentCallbackForPush(t,this.options.refComponent),i=a[e];i?i(n):(this.options.fromRead="read"===e,this.options.cronappDatasource.reloadedFromCronapi&&(this.options.fromRead=!1,delete this.options.cronappDatasource.reloadedFromCronapi),"overRideRefresh"===e&&(this.options.refComponent.dataSource._page=1,this.options.refComponent.dataSource._skip=0),this.options.refComponent.dataSource.read())}else a.includes(e)||this.options.cronappDatasource.removeDataSourceEvents(this.options.dataSourceEventsPush)}},push:function(e){!this.options.dataSourceEventsPush&&this.options.cronappDatasource&&(this.options.dataSourceEventsPush={create:this.pushAction.bind(this)("pushUpdate",e),update:this.pushAction.bind(this)("pushUpdate",e),delete:this.pushAction.bind(this)("pushDestroy",e),overRideRefresh:this.pushAction.bind(this)("overRideRefresh",e),read:this.pushAction.bind(this)("read",e),memorycreate:this.pushAction.bind(this)("pushUpdate",e),memoryupdate:this.pushAction.bind(this)("pushUpdate",e),memorydelete:this.pushAction.bind(this)("pushDestroy",e)},"combobox"==this.origin&&delete this.options.dataSourceEventsPush.overRideRefresh,this.options.cronappDatasource.addDataSourceEvents(this.options.dataSourceEventsPush))},read:function(n){var e=!1;try{var a=this.options.cronappDatasource;this.options.kendoCallback?this.options.fromRead?this.options.kendoCallback.success(a.data):e=!0:(this.options.kendoCallback=n,e=!0)}finally{this.options.fromRead=!1}if(e){for(key in n.data)null==n.data[key]&&delete n.data[key];var i=kendo.data.transports.odata.parameterMap(n.data,"read"),o="";this.options.refComponent&&this.options.refComponent.dataSource.group().forEach(function(e){o+=e.field+" "+e.dir+","}),0<o.length&&(o=o.substr(0,o.length-1),i.$orderby=i.$orderby?o+","+i.$orderby:o);var a=this.options.cronappDatasource;if(a.rowsPerPage=n.data.pageSize,a.offset=n.data.page-1,!n.data.pageSize&&(a.rowsPerPage=l,a.offset=void 0,i.$skip=0,this.options.refComponent&&1!=this.options.refComponent.dataSource.page()))return this.options.refComponent.dataSource.page(1),void n.error("canceled","canceled","canceled");var d={params:i},r=!1;t.append&&(r=t.append);var s={};"button"===a.loadDataStrategy&&0<a.data.length&&(s.origin=a.loadDataStrategy),a.append=r,a.fetch(d,{success:function(e){n.success(e)},canceled:function(e){n.error("canceled","canceled","canceled")},error:function(e){n.error("canceled","canceled","canceled")}},r,s)}},update:function(t){this.setActiveAndPost(t)},create:function(t){this.setActiveAndPost(t)},destroy:function(t){cronappDatasource=this.options.cronappDatasource,cronappDatasource.removeSilent(t.data,function(e){t.success(e)},function(e){t.error("canceled","canceled","canceled")})},batch:function(t){},options:{fromRead:!1,disableAndSelect:function(t){this.isComponentInDocument(this.refComponent)&&(this.refComponent.select(t.container),this.refComponent.options.selectable=!1,this.refComponent.selectable&&this.refComponent.selectable.element&&(this.refComponent.selectable.destroy(),this.refComponent.selectable=null))},enableAndSelect:function(t){this.isComponentInDocument(this.refComponent)&&(this.refComponent.options.selectable=this.refComponent.options.originalSelectable,this.refComponent._selectable(),this.refComponent.select(t.container))},selectActiveInGrid:function(e){if(this.isComponentInDocument(this.refComponent)&&this.refComponent.selectable&&0<this.refComponent.dataItems().length&&this.cronappDatasource.active&&this.cronappDatasource.active.__$id){for(var t=this.refComponent.dataItems(),n=-1,a=0;a<t.length;a++)if(this.cronappDatasource.active.__$id==t[a].__$id){n=a;break}-1<n&&!this.refComponent.selectable.options.multiple&&this.refComponent.select(this.refComponent.table.find("tr")[n+1])}},isComponentInDocument:function(e){return!!e&&$(document).has(e.element[0]).length},getCurrentCallbackForPush:function(e,t){return e?e:t},cronappDatasource:app.kendoHelper.getCorrectlyDS(t.name,n)}},pageSize:m,serverPaging:!0,serverFiltering:!0,serverSorting:!0,batch:!1,schema:p,requestEnd:r};return h.aggregate=c(o),h.schema.total=function(){return h.transport.options.cronappDatasource.getRowsCount()},d&&(h.group=[],d.forEach(function(e){var t={field:e.field,aggregates:h.aggregate};h.group.push(t)})),h},getEventReadCombo:function(t){var e=this.options.cronappDatasource;if(!e)return void t.error("canceled","canceled","canceled");this.options.kendoCallback||(this.options.kendoCallback=t);var n;if(this.options.combobox&&this.options.combobox.options.readData)return t.success(this.options.combobox.options.readData),this.options.combobox.options.readData=null,void(this.options.alreadyLoaded=!0);this.options.combobox?n=!this.options.alreadyLoaded:e.__ignoreFirstFetch?(n=!0,delete e.__ignoreFirstFetch):n=!1,this.options.alreadyLoaded=!0;var a=!0;if(n&&(a=!1,e.lazy?t.success([{}]):t.success([])),(this.options.fromRead||this.options.combobox&&void 0===this.options.combobox.options.firstLazyRead)&&(this.options.fromRead=!1,this.options.kendoCallback.success(e.data),a=!1),a){for(key in t.data)null==t.data[key]&&delete t.data[key];var i=kendo.data.transports.odata.parameterMap(t.data,"read");e.rowsPerPage=t.data.pageSize,e.offset=t.data.page-1;var o=this,d=!0,l={};l.params=i,o.options.combobox&&(o.options.combobox.options.fromCombo=!0),e.fetch(l,{success:function(e){if(t.success&&(o.options.combobox&&(o.options.combobox.options.expanded=!0),t.success(e),o.options.kendoCallback=t,o.options&&o.options.combobox&&o.options.combobox.element[0].id)){var n=" .k-animation-container",a=angular.element($(" .k-animation-container"));o.options.$compile(a)(o.options.scope)}},canceled:function(e){o.options.combobox&&(o.options.combobox.options.fromCombo=!1),t.success&&t.error("canceled","canceled","canceled")},error:function(e){o.options.combobox&&(o.options.combobox.options.fromCombo=!1),t.success&&t.error("error","error","error")}},!1,{ignoreAtive:!0})}},parseOptionsCronToConfigKendo:function(e,t,n){let a=!1;e.dynamic&&"false"!=e.dynamic?e.dataSourceScreen&&e.dataSourceScreen.entityDataSource&&(e.dataSourceScreen.entityDataSource.append=!0,t=app.kendoHelper.getDataSource(e.dataSourceScreen.entityDataSource,n,!0,e.dataSourceScreen.rowsPerPage),t.transport.read=app.kendoHelper.getEventReadCombo,a=!0):(a=!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 i=function(t){var n=e.dataSourceScreen.entityDataSource.schemaFields;for(count=0;count<n.length;count++)if(t==n[count].name){return n[count].type.toLowerCase();break}return null},o=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||o(i(e.dataTextField)))&&(e.template="#= useMask("+e.dataTextField+",'"+e.format+"','"+i(e.dataTextField)+"') #",e.valueTemplate="#= useMask("+e.dataTextField+",'"+e.format+"','"+i(e.dataTextField)+"') #");var d={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,tagTemplate:null==e.tagTemplate?void 0:e.tagTemplate,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:a,valueTemplate:null==e.valueTemplate?void 0:e.valueTemplate,suggest:!0};return e.optionLabel&&(e.optionLabelText=e.optionLabel,e.optionLabelValue=""),d.optionLabel={},d.optionLabel[d.dataTextField]=void 0===e.optionLabelText?"":e.optionLabelText,d.optionLabel[d.dataValueField]=void 0===e.optionLabelValue?null:e.optionLabelValue,d},getConfigComboboxSync:function(e,t){var n={};if(e){if(!e.dynamic||"false"==e.dynamic){n.data=null==e.staticDataSource?void 0:e.staticDataSource;for(let a=0;a<n.data.length;a++)try{n.data[a].key&&n.data[a].key.startsWith("cronapi.server(")&&(n.data[a].key=n.data[a].key.replace(".run(",".notAsync().run("));let e=t.$eval(n.data[a].key);n.data[a].key=void 0!==e&&null!==e?e:n.data[a].key}catch(t){n.data[a].key=n.data[a].key}}return config=this.parseOptionsCronToConfigKendo(e,n,t),config}return{}},getConfigCombobox:async function(e,t){var n={};if(e){if(!e.dynamic||"false"==e.dynamic){n.data=null==e.staticDataSource?void 0:e.staticDataSource;for(let a=0;a<n.data.length;a++)try{n.data[a].key&&n.data[a].key.startsWith("cronapi.server(")&&(n.data[a].key=n.data[a].key.replace(".run(",".toPromise().run("));let e=await t.$eval(n.data[a].key);n.data[a].key=void 0!==e&&null!==e?e:n.data[a].key}catch(t){n.data[a].key=n.data[a].key}}return config=this.parseOptionsCronToConfigKendo(e,n,t),config}return{}},getConfigDate:function(e,t){var n={};if(n){var a=function(e){e=e.replace(/_/gm,"-");var t=e.split("-");return t[t.length-1]=t[t.length-1].toUpperCase(),t.join("-")},i=function(e){return e&&(e=e.replace(/:MM/gm,":mm"),e=e.replace(/:M/gm,":m"),e=e.replace(/S/gm,"s"),e=e.replace(/D/gm,"d"),e=e.replace(/Y/gm,"y")),e},o=function(t,n){return null==n&&(n=parseMaskType(t,e)),n},d={};if(t.animation)try{d=JSON.parse(t.animation)}catch(e){console.log("DateAnimation invalid configuration! "+e)}var l=o(t.type,t.format),r=i(l),s=i(t.timeFormat),c=a(e.use());n={value:null,format:r,timeFormat:s,momentFormat:l,culture:c,type:null==t.type?void 0:t.type,weekNumber:null==t.weekNumber?void 0:t.weekNumber,dateInput:null==t.dateInput?void 0:t.dateInput,animation:d,footer:null==t.footer?void 0:t.footer,start:null==t.start?void 0:t.start,depth:null==t.start?void 0:t.start}}return n},buildKendoMomentPicker:function(e,t,n,a){var i="date"==t.type||"datetime"==t.type||"time"==t.type;window.fixedTimeZone||(i=!1),e.data("mask",t.momentFormat),e.data("useUTC",i);var o=function(){var n=e.val();if(!n||""==n.trim())a&&a.$setViewValue("");else{var o=formatWithMomentAs(t.momentFormat,i,n,"date");a&&(a.$setViewValue(o),e.data("changed",!0))}};return(t.change=n?function(){n.$apply(function(){o()})}:o,"date"==t.type)?e.kendoDatePicker(t).data("kendoDatePicker"):"datetime"==t.type||"datetime-local"==t.type?e.kendoDateTimePicker(t).data("kendoDateTimePicker"):"time"==t.type||"time-local"==t.type?e.kendoTimePicker(t).data("kendoTimePicker"):void 0},getConfigSlider:function(e){e=e||{};var t={increaseButtonTitle:e.increaseButtonTitle,decreaseButtonTitle:e.decreaseButtonTitle,dragHandleTitle:e.dragHandleTitle};try{t.min=e.min?parseInt(e.min):1,t.max=e.max?parseInt(e.max):1,t.smallStep=e.smallStep?parseInt(e.smallStep):1,t.largeStep=e.largeStep?parseInt(e.largeStep):1}catch(e){console.log("Slider invalid configuration! "+e)}return t},getConfigSwitch:function(e){e=e||{};var t={onLabel:null==e.onLabel?void 0:e.onLabel,offLabel:null==e.offLabel?void 0:e.offLabel};return t},getConfigBarcode:function(e){var t={type:null==e.type?void 0:e.type,width:null==e.width?void 0:parseInt(e.width),height:null==e.height?void 0:parseInt(e.height)};return t.type||(t.type="EAN8"),t},getConfigQrcode:function(e){var t={errorCorrection:null==e.errorCorrection?void 0:e.errorCorrection,size:null==e.size?void 0:parseInt(e.size),color:null==e.color?void 0:e.color};return(e.borderColor||e.borderSize)&&(t.border={size:null==e.size?void 0:parseInt(e.size),color:null==e.color?void 0:e.color}),t}},window.showTreatedValue=function(e){return e||!1===e?e:""},window.useMask=function(e,t,n){var a="";t="null"==t||"undefined"==t?void 0:t;var i=e,o=t||n;if(null!=e&&e!=null){if(e instanceof Date){var d=moment(e).utcOffset(window.timeZoneOffset);i="\""+d.format()+"\""}else i="number"==typeof e?e:"\""+e+"\"";a="{{ "+i+" | mask:\""+o+"\":\""+n+"\"}}"}return a},window.formatWithMomentAs=function(e,t,n,a){if(!n)return;let i=null;return i=n instanceof Date||n.startsWith("/Date")?t?moment(n).utcOffset(window.timeZoneOffset):moment(n):t?moment(n,e).utcOffset(window.timeZoneOffset,!0):moment(n,e),"string"===a?i.format(e):i.toDate()};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 n=$(str);n.attr("onload",`params = ${JSON.stringify(framentMap)}`);var a=$compile(n)(scope);element.html(a)}):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>`)}element.html(template),$compile(template)(scope)})}}}function cronReportViewer(e){return{restrict:"E",replace:!0,require:"ngModel",link:function(e,t,n,a){function i(n){var a=JSON.parse(n),i={element:t};e.$eval(a.reportCommand||a.dashboardCommand,i)}i(n.options);let o=t[0].parentElement;for(;o;)if("BODY"===o.tagName)o=null;else if(o.classList.contains("tab-pane"))break;else o=o.parentElement;if(o&&!o.classList.contains("active")){let e=new MutationObserver(function(e,t){for(let a of e)if("class"===a.attributeName&&a.target.classList.contains("active")){i(n.options),t.disconnect();break}});e.observe(o,{attributes:!0})}var d=null;e.$watch(function(){return n.options},function(e,t){e!==t&&(d&&(clearInterval(d),d=null),d=setTimeout(function(){i(e)}.bind(this),500))})}}}
|
|
55
|
+
</li>`}),i},link:function(n,a,i){var o=this.populateMenu;i.$observe("options",function(d){t.onReady(()=>{let t=a.closest(".crn-navigator-vertical").length;var l={};try{l=JSON.parse(d)}catch(t){console.log("CronDynamicMenu: Invalid configuration!")}let r=l&&l.subMenuOptions&&l.subMenuOptions.length?l.subMenuOptions[0].id:"first";var s=`<ul id="menu-tag-ul-base-${r}" class="nav navbar-nav ${t?"col-md-12 padding-0":""}" ></ul>`,c=$(s);c.attr("id",i.id);var p=o(l,t);c.append(p),t&&c.append($("#navbar2 li:first").addClass("col-md-12 padding-0"));var u=angular.element(c);a.html(""),a.append(c),a.attr("id",null),e(u)(n);var m=i.multilevelAction;"hover"===m&&($(".dropdown-menu .dropdown-submenu").on("mouseover",function(){var e=$(this).children("ul.dropdown-menu");e.addClass("displayBlock")}),$(".dropdown-menu .dropdown-submenu").on("mouseout",function(){var e=$(this).children("ul.dropdown-menu");e.removeClass("displayBlock")})),"click"===m&&$(".dropdown-menu a.dropdown-toggle").on("click",function(t){$(this).next().hasClass("show")||$(this).parents(".dropdown-menu").first().find(".show").removeClass("show");var e=$(this).next(".dropdown-menu");return e.toggleClass("show"),$(this).parents("li.nav-item.dropdown").on("hidden.bs.dropdown",function(t){$(".dropdown-submenu .show").removeClass("show")}),!1}),$("#checkCollapsibleMenu").on("click",function(){var e=document.getElementById("main-view");this.checked?e.classList.remove("main-view-retratil"):e.classList.add("main-view-retratil")});let g=a.closest("nav");if(g&&g.length){let e=!g.hasClass("submenu-click"),t=g.attr("id");if(t||(t=app.common.generateId(),g.attr("id",t)),e){let e=$(`#${t} .dropdown-submenu`).data("hooked");e||($(`#${t} .dropdown-submenu`).on("mouseenter",function(t){$(this).children(".dropdown-menu").addClass("show")}).on("mouseleave",function(t){$(this).children(".dropdown-menu").removeClass("show")}),$(`#${t} .dropdown-submenu`).data("hooked",!0))}else{let e=$(`#${t} .dropdown-menu a.dropdown-toggle`).data("hooked");e||($(`#${t} .dropdown-menu a.dropdown-toggle`).on("click",function(t){$(this).next().hasClass("show")||$(this).parents(".dropdown-menu").first().find(".show").removeClass("show");var e=$(this).next(".dropdown-menu");return e.toggleClass("show"),$(this).parents("li.nav-item.dropdown.show").on("hidden.bs.dropdown",function(t){$(".dropdown-submenu .show").removeClass("show")}),!e.length&&void $(".dropdown-menu").removeClass("show")}),$(`#${t} .dropdown-menu a.dropdown-toggle`).data("hooked",!0));let n=$(`#${t} .dropdown.nav-item`).data("hooked");n||($(`#${t} .dropdown.nav-item`).on("hidden.bs.dropdown",function(t){$(".dropdown-submenu .show").removeClass("show"),$(".dropdown-menu .show").removeClass("show")}),$(`#${t} .dropdown.nav-item`).data("hooked",!0))}}else{let e=$(a).find("ul:first").attr("id"),t=$(`#${e} .dropdown-submenu`).data("hooked");t||($(`#${e} .dropdown-submenu`).on("mouseenter",function(t){$(this).children(".dropdown-menu").addClass("show")}).on("mouseleave",function(t){$(this).children(".dropdown-menu").removeClass("show")}),$(`#${e} .dropdown-submenu`).data("hooked",!0))}})})}}}]).directive("cronBreadcrumbs",["$rootScope",function(e){"use strict";return{restrict:"E",replace:!0,link:function(e,t,n){var a=n.ngInit?n.ngInit:null;const i=n.crnDelimiterIcon,o=n.typeMenu,d=n.idMenu?n.idMenu:null,l=n.id,r=n.breadcrumbIcon?n.breadcrumbIcon:null,s=[],c=async()=>{const t=a.replace("cronapi.client('js.","blockly.js.");a=t.replace("').run()",""),a=e.$eval(a),s=await a();const n=async t=>{t.item.action&&t.item.action()};$(`#${l}`).kendoBreadcrumb({items:s,delimiterIcon:i,navigational:!0,click:n})},p=e=>e?e.replace("cronapi.screen.changeView('","").replace("', [])",""):"#/home";if(a&&"idBloco"===o)c();else{var u=new MutationObserver((e,t)=>{const n=$(`#${d}`).parent(),a=n.attr("options");if(a){t.disconnect();const e=JSON.parse(a),n=document.location.hash||"home",d=(e,t,n=[])=>{for(let o=0;o<e.length;o++){var a=e[o];if(a.action=p(a.action),a.action===t)return[...n,a];if(a.menuItems){const e=d(a.menuItems,t,[...n,a]);if(e)return e}}return null},r=d(e.subMenuOptions,n);if(r){for(var o in r){const e=r[o];s.push({type:0==o?"rootitem":"item",href:e.action,text:e.title,showText:!0,showIcon:!1})}$(`#${l}`).kendoBreadcrumb({items:s,delimiterIcon:i,navigational:!0})}}});u.observe(document.body,{childList:!0})}}}}]).directive("ngInitialValue",["$parse",function(e){return{restrict:"A",require:"ngModel",link:async function(t,n,a,i){if(a.ngInitialValue){var o,d=e(a.ngModel),l=d.assign;try{if(-1!=a.ngInitialValue.indexOf("cronapi.client('js.")){let e=a.ngInitialValue.replace("cronapi.client('js.","blockly.js."),n=e.split("').names")[0];n=n.split("').attr()")[0];let i=e.split(".run")[1];o=await t.$eval(n+i)}else o=t.$eval(a.ngInitialValue)||a.ngInitialValue}catch(t){o=a.ngInitialValue}"checkbox"==n[0].type&&o&&(o="true"==(""+o).toLowerCase()),l(t,o)}}}}]).directive("crnSetIndeterminate",["$parse",function($parse){return{restrict:"A",link:function(scope,element,attrs){let value=eval(attrs.crnSetIndeterminate);null===value&&$(element).prop("indeterminate",!0)}}}]).directive("crnAllowNullValues",[function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,a){a.$formatters=[],a.$parsers=[];let i=e=>(e&&-1===e.indexOf("'")&&(e=`'${e}'`),e);n.ngFalseValue=i(n.ngFalseValue),n.ngTrueValue=i(n.ngTrueValue);let o=!!n.ngFalseValue&&n.ngFalseValue.split("'").join(""),d=!n.ngTrueValue||n.ngTrueValue.split("'").join(""),l=e=>"true"===e||void 0===e||null===e||0==e.length;a.$render=l(n.crnAllowNullValues)?function(){let e=a.$viewValue;t.data("checked",e),!0===e||e===d?(t.prop("indeterminate",!1),t.prop("checked",!0),e=d):!1===e||e===o?(t.prop("indeterminate",!1),t.prop("checked",!1),e=o):(e=null,t.prop("indeterminate",!0)),setTimeout(()=>a.$setViewValue(e))}:function(){let i=a.$viewValue;if((void 0===a.$viewValue||null===a.$viewValue)&&(a.$setViewValue(!1),i=!1),i===o){let a=n.ngFalseValue?`${t.attr("ng-model")}=${n.ngFalseValue}`:`${t.attr("ng-model")}=${o}`;e.$eval(a)}switch(t.data("checked",i),i){case!0:case d:t.prop("indeterminate",!1),t.prop("checked",!0),i=d;break;default:t.prop("indeterminate",!1),t.prop("checked",!1),i=o}setTimeout(()=>a.$setViewValue(i))},t.bind("click",function(){let i;switch(t.data("checked")){case!1:case o:i=!n.ngTrueValue||d;break;default:i=!!n.ngFalseValue&&o}a.$setViewValue(i),e.$apply(a.$render)})}}}]).directive("signaturePad",["$compile","$window",function(e,t){"use strict";var n,a,i=null;return{restrict:"E",require:"ngModel",scope:!0,replace:!0,transclude:!0,template:"<div style=\"height: 100%; 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=\"btn k-button btn-warning\" ng-click=\"clear()\" xattr-fullsize=\"\" xattr-theme=\"btn-warning\" xattr-disabled=\"\"> <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 n=()=>{let e=t.signaturePad.toDataURL();return e&&(e=e.split(",")[1]),e};t.mouseup=function(a){t.signaturePad.isEmpty()||(t.ngModel=n())},t.$watch("ngModel",function(e,a){e!==a&&(n()!==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(a,i,o,d,l){n=i.find("canvas")[0],a.onResize=function(){var e=Math.max(t.devicePixelRatio||1,1),n=i.find("canvas")[0],a=document.createElement("canvas");a.width=n.width,a.height=n.height;var o=a.getContext("2d");o.drawImage(n,0,0),n.width=n.offsetWidth*e,n.height=n.offsetHeight*e,n.getContext("2d").drawImage(a,0,0),n.getContext("2d").scale(e,e)},a.onResize(),a.signaturePad=new SignaturePad(n),angular.element(t).on("resize",function(){a.onResize()}),e(i)(i.scope());let r=!1;$(n).on("pointerdown",t=>{1===t.which&&(r=!0),t.preventDefault()}),$(n).on("pointerup",t=>{1===t.which&&r&&(r=!1,l(()=>angular.element(n).triggerHandler("mouseup")))})}}}]).directive("cronChat",["$compile","$translate",function(e,t){return{restrict:"E",replace:!0,link:function(e,t,n,a){var i=JSON.parse(n.options||"{}");if(i.token&&i.urlCronchat){var o=i.urlCronchat.endsWith("/")?i.urlCronchat:i.urlCronchat+"/",d=i.token,l=$(`<script src="${o}get-chat?token=${d}" type="text/javascript"></script>`);t.html(l)}}}}]).directive("updateLanguage",["$rootScope",function(e){return{link:function(t,n){var a=function(e,t){var a="en",i=t.language;"pt_br"===i?i="pt-br":i.startsWith("en")&&(i="en"),n.attr("lang",i||"en")};e.$on("$translateChangeSuccess",a)}}}]).directive("cronFrame",cronFrame).directive("crnComponent",cronFrame).directive("fromGrid",["$compile",e=>({restrict:"A",priority:-999999,exist:e=>{let t=e.attr("id");return $(`#${t}`).length},isFromGrid:e=>"true"===e.fromGrid,isCompiled:e=>e.data("alreadycompiled"),getDateAs:function(e,t,n){let a=e.data("mask"),i=e.data("useUTC");return formatWithMomentAs(a,i,t,n)},prepareValue:function(e,t){let n=e.data("column-type")||"";return n.startsWith("date")&&(t=this.getDateAs(e,t,"date")),t},formatComponent:function(e,t){let n=e.data("kendoDropDownList")||e.data("kendoSlider"),a=e.data("column-type")||"";a.startsWith("date")?e.val(this.getDateAs(e,t,"string")):n&&n.value(t)},compileGridListing:function(t,n){let a=t.data("ref-component");if(a&&a.tbody&&a.tbody.length&&!$(a.tbody).find(".k-grid-edit-row").length){var i=a.tbody;setTimeout(()=>{n.safeApply(()=>{var t=$(i),a=angular.element(t);e(a)(n)})})}},link:function(e,t,n){e.$watch(n.ngModel,a=>{this.isFromGrid(n)&&this.exist(t)&&this.isCompiled(t)&&(a=this.prepareValue(t,a),this.formatComponent(t,a),this.compileGridListing(t,e),call=t.data("change-grid-model"),call&&call(a))})}})]).directive("cronOrderedList",["$compile","$sce","$parse",function(e,t,n){"use strict";return{restrict:"EA",replace:!0,link:function(t,n,a,i){let o=a.attributeValue,d=a.orderedAttributeValue,l=a.listType,r=n[0].children[0].children;r=$(r);let s="",c="";$.each(r,function(e,t){c+=t.outerHTML});"numbered-list"===l?s=`<ol style="list-style-type: ${o}">${c}</ol>`:"ordered-list"===l?s=`<ul style="list-style-type: ${d}">${c}</ul>`:void 0;s=$(s),$(n).replaceWith(s),e(s)(t)}}}]).directive("crnInfiniteScroll",["$compile",function($compile){"use strict";return{restrict:"EA",link:function(scope,element,attrs){var dataSource=attrs.crnInfiniteScroll?eval(attrs.crnInfiniteScroll):attrs.crnDatasource?eval(attrs.crnDatasource):void 0;if(dataSource){let e={isVisible:!1,checkVisibility:function(t){if(e.isVisible!==t&&(e.isVisible=t,e.isVisible))if(dataSource.loaded&&dataSource.loadedFinish)dataSource.nextPage();else{let e=setInterval(function(){dataSource.loaded&&dataSource.loadedFinish&&(dataSource.nextPage(),clearInterval(e))},250)}},eventScroll:function(){var t=element.offset().top,n=element.offset().top+element.outerHeight(),a=$(window).scrollTop()+$(window).innerHeight(),i=$(window).scrollTop();e.checkVisibility(a>t&&i<n)}};$(window).scroll(e.eventScroll),$(window).ready(e.eventScroll)}}}}])}(app);function maskDirectiveAsDate(e,t,n){return maskDirective(e,t,n,"as-date")}function maskDirectiveMask(e,t,n){return maskDirective(e,t,n,"mask")}function maskDirective(e,t,n,a){return{restrict:"A",require:"?ngModel",link:function(i,o,d,l){if("as-date"!=a||void 0===d.mask){var r=n(d.ngModel),s=r.assign,c=$(o);if(!c.data("alreadycompiled")){c.data("alreadycompiled",!0),c.data("$compile",e);var p=c.attr("type");if("checkbox"!=p&&"password"!=p&&"url"!=p){if("color"==p||"range"==p)return c[0].classList.remove("form-control"),void c[0].classList.remove("k-textbox");c.data("type",p),c.attr("type","text"),l&&(l.$formatters=[],l.$parsers=[]),void 0!==d.asDate&&"text"==p&&(p="date");var u=!0,m=!1,g=d.mask||d.format;g=g?parseMaskType(g,t):parseMaskType(p,t),g.endsWith(";0")&&(m=!0);var f=g.replace(";1","").replace(";0","").trim();if(null!=f&&0!=f.length)if("date"==p||"datetime"==p||"datetime-local"==p||"month"==p||"time"==p||"time-local"==p||"week"==p){var h={format:f,locale:t.use(),showTodayButton:!0,useStrict:!0,tooltips:{today:t.instant("DatePicker.today"),clear:t.instant("DatePicker.clear"),close:t.instant("DatePicker.close"),selectMonth:t.instant("DatePicker.selectMonth"),prevMonth:t.instant("DatePicker.prevMonth"),nextMonth:t.instant("DatePicker.nextMonth"),selectYear:t.instant("DatePicker.selectYear"),prevYear:t.instant("DatePicker.prevYear"),nextYear:t.instant("DatePicker.nextYear"),selectDecade:t.instant("DatePicker.selectDecade"),prevDecade:t.instant("DatePicker.prevDecade"),nextDecade:t.instant("DatePicker.nextDecade"),prevCentury:t.instant("DatePicker.prevCentury"),nextCentury:t.instant("DatePicker.nextCentury")}};"DD/MM/YYYY"!=f&&"MM/DD/YYYY"!=f&&(h.sideBySide=!0);var v="date"==p||"datetime"==p||"time"==p;if(window.fixedTimeZone||(v=!1),c.data("mask",f),c.data("useUTC",v),c.attr("from-grid")){var b=function(){var e=$(this).offset(),t=!0,n=$(this).parent().find(".bootstrap-datetimepicker-widget.dropdown-menu.usetwentyfour.bottom");if(n.length||(t=!1,n=$(this).parent().find(".bootstrap-datetimepicker-widget.dropdown-menu.usetwentyfour.top")),$(n).offset()){var a=$(n).offset().left,i=$("body");n.appendTo(i);var o=0;o=t?e.top+35:e.top-($(n).height()+15),n.css("top",o),n.css("bottom","auto"),n.css("left",a),n.css("z-index",999999)}};if(c.on("click",b),c.on("focus",function(){setTimeout(b.bind(this),100)}),c.on("dp.change",function(){i.safeApply(function(){var e=null;e=v?moment(c.val(),f).utcOffset(window.timeZoneOffset,!0):moment(c.val(),f),("time"==p||"time-local"==p)&&(e=e.year(1970).dayOfYear(1).month(0)),e.isValid()&&l&&s(i,e.toDate())})}),c.data("initial-value")){var y=c.data("initial-value"),k=null;k=v?moment(y).utcOffset(window.timeZoneOffset):moment(y),c.val(k.format(f)),c.data("initial-value",null)}}else c.wrap("<div style=\"position:relative\"></div>");c.datetimepicker(h),"true"!==d.fromGrid&&c.on("dp.change",function(){$(this).is(":visible")&&($(this).trigger("change"),i.safeApply(function(){var e=c.val(),t=null;t=v?moment(e,f).utcOffset(window.timeZoneOffset,!0):moment(e,f),("time"==p||"time-local"==p)&&(t=t.year(1970).dayOfYear(1).month(0)),t.isValid()&&l&&s(i,t.toDate())}))}),l&&(l.$formatters.push(function(e){if(e)return formatWithMomentAs(f,v,e,"string");if(null===e){var t=c.datetimepicker(h).data("DateTimePicker");t.date(null)}return null}),l.$parsers.push(function(e){if(e){if(e instanceof Date)return e;var t=null;return t=v?moment(e,f).utcOffset(window.timeZoneOffset,!0):moment(e,f),("time"==p||"time-local"==p)&&(t=t.year(1970).dayOfYear(1).month(0)),t.toDate()}return null}))}else if("number"==p||"money"==p||"integer"==p||"money-decimal"==p){m=!0;var C=f.trim().replace(/\./g,"").replace(/\,/g,"").replace(/#/g,"").replace(/0/g,"").replace(/9/g,""),w="",S="",D="",T=",",x=0;f.startsWith(C)?w=C:f.endsWith(C)&&(S=C);var M=f.trim().replace(w,"").replace(S,"").trim();M.startsWith("#.")?D=".":M.startsWith("#,")&&(D=",");var I=null;if(-1==M.indexOf(",0")?-1!=M.indexOf(".0")&&(T=".",I=".0"):(T=",",I=",0"),null!=I){var E=M.substring(M.indexOf(I)+1);x=E.length}var A="numeric";0==x&&(A="integer"),"money-decimal"==p&&(A="currency");var F={rightAlign:"money"==p||"money-decimal"==p,unmaskAsNumber:!0,allowMinus:!0,prefix:w,suffix:S,radixPoint:T,digits:x,numericInput:"money-decimal"==p};D&&(F.autoGroup=!0,F.groupSeparator=D),$(o).inputmask(A,F),useInputMaskPlugin(o,l,i,s,f)}else if("text"==p||"tel"==p||"string"==p){let e=["D","M","Y","H","m","s"],t=t=>(e.forEach(e=>t=t.replaceAll(e,"9")),t);f=t(f),d.maskPlaceholder?(h={},h.placeholder=d.maskPlaceholder,$(o).inputmask(f,h),m&&useInputMaskPlugin(o,l,i,s,f)):(c.mask(f),useMaskPlugin(o,l,i,s,m))}}}}}}}function useInputMaskPlugin(e,t,n,a,i){var o=$(e),d=function(){$(this).data("rawvalue",$(this).inputmask("unmaskedvalue"))};$(e).on("keydown",d).on("keyup",d),t&&(t.$formatters.push(function(e){return null!=e&&null!=e&&""!==e?format(i,e):null}),t.$parsers.push(function(e){if(e!=null&&null!=e&&""!==e){var t=o.inputmask("unmaskedvalue");if(""!==t)return t}return null}))}function useMaskPlugin(e,t,n,a,i){var o=$(e),d=function(){i&&$(this).data("rawvalue",$(this).cleanVal())};$(e).on("keydown",d).on("keyup",d),i&&t&&(t.$formatters.push(function(e){return e?o.masked(e):null}),t.$parsers.push(function(e){return e?o.cleanVal():null}))}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="#.#00,00")):"money"==e||"money-decimal"==e?(e=t.instant("Format.Money"),"Format.Money"==e&&(e="#.#00,00")):"integer"==e?(e=t.instant("Format.Integer"),"Format.Integer"==e&&(e="#,##0.####")):"week"==e?e="dddd":"tel"==e?e="(00) 00000-0000;0":"text"==e?e="":"string"==e&&(e=""),e}function transformText(){return{restrict:"E",require:"?ngModel",link:function(e,t,n,a){var i=function(e,t){if(e){if(t!==void 0&&null!==t){if("uppercase"===e.css("text-transform"))return t.toUpperCase();if("lowercase"===e.css("text-transform"))return t.toLowerCase()}return t}};a&&(a.$formatters.push(function(e){return i(t,e)}),a.$parsers.push(function(e){return i(t,e)}))}}}app.kendoHelper={getCorrectlyDS:(e,t)=>{if(t[e]&&t[e].apiVersion)return t[e];else{let n=t.$parent[e];return t[e]=n,n}},getCorrectlyDSPromise:async(e,t)=>new Promise((n,a)=>{let i=()=>{let o=null;if(t[e]&&t[e].apiVersion)o=t[e];else{let n=t.$parent[e];t[e]=n,o=n}o?n(o):$(`datasource[name="${e}"]`).length?setTimeout(()=>i(),100):a(null)};i()}),receivePushData:e=>!e||!e.dataSource||(e.dataSource.transport.options.refComponent=e),getSchema:function(e){var t=[{kendoType:"string",entityType:["string","character","uuid","guid"]},{kendoType:"number",entityType:["integer","long","double","int","float","bigdecimal","single","int32","int64","decimal","byte"]},{kendoType:"date",entityType:["date","time","datetime"]},{kendoType:"boolean",entityType:["boolean"]}],n=function(e){for(var n=0;n<t.length;n++)if(t[n].entityType.includes(e.toLocaleLowerCase()))return t[n].kendoType;return"string"},a={model:{id:"__$id",fields:{}}};return e&&e.schemaFields&&(e.schemaFields.forEach(function(e){a.model.fields[e.name]={type:n(e.type),editable:!0,nullable:e.nullable,validation:{required:!e.nullable}}}),a.model.fields.__$id={type:"string",editable:!0,nullable:!0,validation:{required:!1}}),a},getDataSource:function(t,n,a,i,o,d){var l=Number.MAX_SAFE_INTEGER_32;function r(t){if(t.response&&t.response.d){var e=null;e=t.response.d.results?t.response.d.results:[t.response.d],this.group().length?o.forEach(function(t){if("Database"==t.dataType){var n="datetime-local"==t.type||"month"==t.type||"time-local"==t.type||"week"==t.type;if(n)for(var a,o=0;o<e.length;o++)a=e[o],t.field==a.Member&&(a.Key=a.Key.replace(/\d+/,function(e){return parseInt(e)+g})),s.bind(this)(a.Items)}}):s.bind(this)(e)}}function s(e){for(var t=0;t<e.length;t++)o&&o.forEach(function(n){if("Database"==n.dataType){var a="datetime-local"==n.type||"month"==n.type||"time-local"==n.type||"week"==n.type;a&&e[t][n.field]&&(e[t][n.field]=e[t][n.field].replace(/\d+/,function(e){return parseInt(e)+g}))}})}function c(e){var t=[];return e&&e.forEach(function(e){e.aggregates&&e.aggregates.forEach(function(n){t.push({field:e.field,aggregate:n.type})})}),t}var p=this.getSchema(t);o&&o.forEach(function(e){for(var t in p.model.fields)if("Database"==e.dataType&&e.field==t){if(p.model.fields[t].nullable=!e.required,p.model.fields[t].validation.required=e.required,"999.999.999-99;0"===e.format||"99.999.999/9999-99;0"===e.format){let n="999.999.999-99;0"===e.format?"cpf":"cnpj",a={cpf:CPF,cnpj:CNPJ},i=t.toLocaleLowerCase()+"validation";p.model.fields[t].validation[i]=function(e){return!(e.is("[name='"+t+"']")&&""!=e.val())||a[n].isValid(e.val())}}break}});var u=function(e){for(var t in e)if(p.model.fields.hasOwnProperty(t)){var n=p.model.fields[t];"string"==n.type&&null!=e[t]?e[t]+="":"number"==n.type&&null!=e[t]?e[t]=parseFloat(e[t]):"date"==n.type&&null!=e[t]?e[t]="/Date("+e[t].getTime()+")/":"boolean"==n.type&&(null==e[t]?e[t]=!1:e[t]="true"==e[t].toString().toLowerCase()),p.model.id==t&&null!=e[t]&&0==e[t].toString().length&&delete e[t]}return e},m=10;app.kendoHelper.getCorrectlyDS(t.name,n)&&(m=app.kendoHelper.getCorrectlyDS(t.name,n).rowsPerPage);var g=6e4*new Date().getTimezoneOffset(),f=app.common.generateId(),h={transport:{setActiveAndPost:function(t){var e=this.options.cronappDatasource;n.safeApply(e.updateActive(u(t.data))),e.active.__sender=f,e.postSilent(function(e){this.options.enableAndSelect(t),t.success(e),this.options.refComponent.dataSource._pristineTotal=this.options.refComponent.dataSource._pristineData.push(e)}.bind(this),function(e){this.options.enableAndSelect(t),t.error(e,e,e)}.bind(this))},pushAction:function(e,t){return n=>{let a=["read","memorydelete","overRideRefresh"];if(this.options.isComponentInDocument(this.options.refComponent)){let a=this.options.getCurrentCallbackForPush(t,this.options.refComponent),i=a[e];i?i(n):(this.options.fromRead="read"===e,this.options.cronappDatasource.reloadedFromCronapi&&(this.options.fromRead=!1,delete this.options.cronappDatasource.reloadedFromCronapi),"overRideRefresh"===e&&(this.options.refComponent.dataSource._page=1,this.options.refComponent.dataSource._skip=0),this.options.refComponent.dataSource.read())}else a.includes(e)||this.options.cronappDatasource.removeDataSourceEvents(this.options.dataSourceEventsPush)}},push:function(e){!this.options.dataSourceEventsPush&&this.options.cronappDatasource&&(this.options.dataSourceEventsPush={create:this.pushAction.bind(this)("pushUpdate",e),update:this.pushAction.bind(this)("pushUpdate",e),delete:this.pushAction.bind(this)("pushDestroy",e),overRideRefresh:this.pushAction.bind(this)("overRideRefresh",e),read:this.pushAction.bind(this)("read",e),memorycreate:this.pushAction.bind(this)("pushUpdate",e),memoryupdate:this.pushAction.bind(this)("pushUpdate",e),memorydelete:this.pushAction.bind(this)("pushDestroy",e)},"combobox"==this.origin&&delete this.options.dataSourceEventsPush.overRideRefresh,this.options.cronappDatasource.addDataSourceEvents(this.options.dataSourceEventsPush))},read:function(n){var e=!1;try{var a=this.options.cronappDatasource;this.options.kendoCallback?this.options.fromRead?this.options.kendoCallback.success(a.data):e=!0:(this.options.kendoCallback=n,e=!0)}finally{this.options.fromRead=!1}if(e){for(key in n.data)null==n.data[key]&&delete n.data[key];var i=kendo.data.transports.odata.parameterMap(n.data,"read"),o="";this.options.refComponent&&this.options.refComponent.dataSource.group().forEach(function(e){o+=e.field+" "+e.dir+","}),0<o.length&&(o=o.substr(0,o.length-1),i.$orderby=i.$orderby?o+","+i.$orderby:o);var a=this.options.cronappDatasource;if(a.rowsPerPage=n.data.pageSize,a.offset=n.data.page-1,!n.data.pageSize&&(a.rowsPerPage=l,a.offset=void 0,i.$skip=0,this.options.refComponent&&1!=this.options.refComponent.dataSource.page()))return this.options.refComponent.dataSource.page(1),void n.error("canceled","canceled","canceled");var d={params:i},r=!1;t.append&&(r=t.append);var s={};"button"===a.loadDataStrategy&&0<a.data.length&&(s.origin=a.loadDataStrategy),a.append=r,a.fetch(d,{success:function(e){n.success(e)},canceled:function(e){n.error("canceled","canceled","canceled")},error:function(e){n.error("canceled","canceled","canceled")}},r,s)}},update:function(t){this.setActiveAndPost(t)},create:function(t){this.setActiveAndPost(t)},destroy:function(t){cronappDatasource=this.options.cronappDatasource,cronappDatasource.removeSilent(t.data,function(e){t.success(e)},function(e){t.error("canceled","canceled","canceled")})},batch:function(t){},options:{fromRead:!1,disableAndSelect:function(t){this.isComponentInDocument(this.refComponent)&&(this.refComponent.select(t.container),this.refComponent.options.selectable=!1,this.refComponent.selectable&&this.refComponent.selectable.element&&(this.refComponent.selectable.destroy(),this.refComponent.selectable=null))},enableAndSelect:function(t){this.isComponentInDocument(this.refComponent)&&(this.refComponent.options.selectable=this.refComponent.options.originalSelectable,this.refComponent._selectable(),this.refComponent.select(t.container))},selectActiveInGrid:function(e){if(this.isComponentInDocument(this.refComponent)&&this.refComponent.selectable&&0<this.refComponent.dataItems().length&&this.cronappDatasource.active&&this.cronappDatasource.active.__$id){for(var t=this.refComponent.dataItems(),n=-1,a=0;a<t.length;a++)if(this.cronappDatasource.active.__$id==t[a].__$id){n=a;break}-1<n&&!this.refComponent.selectable.options.multiple&&this.refComponent.select(this.refComponent.table.find("tr")[n+1])}},isComponentInDocument:function(e){return!!e&&$(document).has(e.element[0]).length},getCurrentCallbackForPush:function(e,t){return e?e:t},cronappDatasource:app.kendoHelper.getCorrectlyDS(t.name,n)}},pageSize:m,serverPaging:!0,serverFiltering:!0,serverSorting:!0,batch:!1,schema:p,requestEnd:r};return h.aggregate=c(o),h.schema.total=function(){return h.transport.options.cronappDatasource.getRowsCount()},d&&(h.group=[],d.forEach(function(e){var t={field:e.field,aggregates:h.aggregate};h.group.push(t)})),h},getEventReadCombo:function(t){var e=this.options.cronappDatasource;if(!e)return void t.error("canceled","canceled","canceled");this.options.kendoCallback||(this.options.kendoCallback=t);var n;if(this.options.combobox&&this.options.combobox.options.readData)return t.success(this.options.combobox.options.readData),this.options.combobox.options.readData=null,void(this.options.alreadyLoaded=!0);this.options.combobox?n=!this.options.alreadyLoaded:e.__ignoreFirstFetch?(n=!0,delete e.__ignoreFirstFetch):n=!1,this.options.alreadyLoaded=!0;var a=!0;if(n&&(a=!1,e.lazy?t.success([{}]):t.success([])),(this.options.fromRead||this.options.combobox&&void 0===this.options.combobox.options.firstLazyRead)&&(this.options.fromRead=!1,this.options.kendoCallback.success(e.data),a=!1),a){for(key in t.data)null==t.data[key]&&delete t.data[key];var i=kendo.data.transports.odata.parameterMap(t.data,"read");e.rowsPerPage=t.data.pageSize,e.offset=t.data.page-1;var o=this,d=!0,l={};l.params=i,o.options.combobox&&(o.options.combobox.options.fromCombo=!0),e.fetch(l,{success:function(e){if(t.success&&(o.options.combobox&&(o.options.combobox.options.expanded=!0),t.success(e),o?.options?.combobox?.span&&o.options.$compile(o.options.combobox.span)(o.options.scope),o.options.kendoCallback=t,o.options&&o.options.combobox&&o.options.combobox.element[0].id)){var n=" .k-animation-container",a=angular.element($(" .k-animation-container"));o.options.$compile(a)(o.options.scope)}},canceled:function(e){o.options.combobox&&(o.options.combobox.options.fromCombo=!1),t.success&&t.error("canceled","canceled","canceled")},error:function(e){o.options.combobox&&(o.options.combobox.options.fromCombo=!1),t.success&&t.error("error","error","error")}},!1,{ignoreAtive:!0})}},parseOptionsCronToConfigKendo:function(e,t,n){let a=!1;e.dynamic&&"false"!=e.dynamic?e.dataSourceScreen&&e.dataSourceScreen.entityDataSource&&(e.dataSourceScreen.entityDataSource.append=!0,t=app.kendoHelper.getDataSource(e.dataSourceScreen.entityDataSource,n,!0,e.dataSourceScreen.rowsPerPage),t.transport.read=app.kendoHelper.getEventReadCombo,a=!0):(a=!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 i=function(t){var n=e.dataSourceScreen.entityDataSource.schemaFields;for(count=0;count<n.length;count++)if(t==n[count].name){return n[count].type.toLowerCase();break}return null},o=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||o(i(e.dataTextField)))&&(e.template="#= useMask("+e.dataTextField+",'"+e.format+"','"+i(e.dataTextField)+"') #",e.valueTemplate="#= useMask("+e.dataTextField+",'"+e.format+"','"+i(e.dataTextField)+"') #");var d={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,tagTemplate:null==e.tagTemplate?void 0:e.tagTemplate,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:a,valueTemplate:null==e.valueTemplate?void 0:e.valueTemplate,suggest:!0};return e.optionLabel&&(e.optionLabelText=e.optionLabel,e.optionLabelValue=""),d.optionLabel={},d.optionLabel[d.dataTextField]=void 0===e.optionLabelText?"":e.optionLabelText,d.optionLabel[d.dataValueField]=void 0===e.optionLabelValue?null:e.optionLabelValue,d},getConfigComboboxSync:function(e,t){var n={};if(e){if(!e.dynamic||"false"==e.dynamic){n.data=null==e.staticDataSource?void 0:e.staticDataSource;for(let a=0;a<n.data.length;a++)try{n.data[a].key&&n.data[a].key.startsWith("cronapi.server(")&&(n.data[a].key=n.data[a].key.replace(".run(",".notAsync().run("));let e=t.$eval(n.data[a].key);n.data[a].key=void 0!==e&&null!==e?e:n.data[a].key}catch(t){n.data[a].key=n.data[a].key}}return config=this.parseOptionsCronToConfigKendo(e,n,t),config}return{}},getConfigCombobox:async function(e,t){var n={};if(e){if(!e.dynamic||"false"==e.dynamic){n.data=null==e.staticDataSource?void 0:e.staticDataSource;for(let a=0;a<n.data.length;a++)try{n.data[a].key&&n.data[a].key.startsWith("cronapi.server(")&&(n.data[a].key=n.data[a].key.replace(".run(",".toPromise().run("));let e=await t.$eval(n.data[a].key);n.data[a].key=void 0!==e&&null!==e?e:n.data[a].key}catch(t){n.data[a].key=n.data[a].key}}return config=this.parseOptionsCronToConfigKendo(e,n,t),config}return{}},getConfigDate:function(e,t){var n={};if(n){var a=function(e){e=e.replace(/_/gm,"-");var t=e.split("-");return t[t.length-1]=t[t.length-1].toUpperCase(),t.join("-")},i=function(e){return e&&(e=e.replace(/:MM/gm,":mm"),e=e.replace(/:M/gm,":m"),e=e.replace(/S/gm,"s"),e=e.replace(/D/gm,"d"),e=e.replace(/Y/gm,"y")),e},o=function(t,n){return null==n&&(n=parseMaskType(t,e)),n},d={};if(t.animation)try{d=JSON.parse(t.animation)}catch(e){console.log("DateAnimation invalid configuration! "+e)}var l=o(t.type,t.format),r=i(l),s=i(t.timeFormat),c=a(e.use());n={value:null,format:r,timeFormat:s,momentFormat:l,culture:c,type:null==t.type?void 0:t.type,weekNumber:null==t.weekNumber?void 0:t.weekNumber,dateInput:null==t.dateInput?void 0:t.dateInput,animation:d,footer:null==t.footer?void 0:t.footer,start:null==t.start?void 0:t.start,depth:null==t.start?void 0:t.start}}return n},buildKendoMomentPicker:function(e,t,n,a){var i="date"==t.type||"datetime"==t.type||"time"==t.type;window.fixedTimeZone||(i=!1),e.data("mask",t.momentFormat),e.data("useUTC",i);var o=function(){var n=e.val();if(!n||""==n.trim())a&&a.$setViewValue("");else{var o=formatWithMomentAs(t.momentFormat,i,n,"date");a&&(a.$setViewValue(o),e.data("changed",!0))}};return(t.change=n?function(){n.$apply(function(){o()})}:o,"date"==t.type)?e.kendoDatePicker(t).data("kendoDatePicker"):"datetime"==t.type||"datetime-local"==t.type?e.kendoDateTimePicker(t).data("kendoDateTimePicker"):"time"==t.type||"time-local"==t.type?e.kendoTimePicker(t).data("kendoTimePicker"):void 0},getConfigSlider:function(e){e=e||{};var t={increaseButtonTitle:e.increaseButtonTitle,decreaseButtonTitle:e.decreaseButtonTitle,dragHandleTitle:e.dragHandleTitle};try{t.min=e.min?parseInt(e.min):1,t.max=e.max?parseInt(e.max):1,t.smallStep=e.smallStep?parseInt(e.smallStep):1,t.largeStep=e.largeStep?parseInt(e.largeStep):1}catch(e){console.log("Slider invalid configuration! "+e)}return t},getConfigSwitch:function(e){e=e||{};var t={onLabel:null==e.onLabel?void 0:e.onLabel,offLabel:null==e.offLabel?void 0:e.offLabel};return t},getConfigBarcode:function(e){var t={type:null==e.type?void 0:e.type,width:null==e.width?void 0:parseInt(e.width),height:null==e.height?void 0:parseInt(e.height)};return t.type||(t.type="EAN8"),t},getConfigQrcode:function(e){var t={errorCorrection:null==e.errorCorrection?void 0:e.errorCorrection,size:null==e.size?void 0:parseInt(e.size),color:null==e.color?void 0:e.color};return(e.borderColor||e.borderSize)&&(t.border={size:null==e.size?void 0:parseInt(e.size),color:null==e.color?void 0:e.color}),t}},window.showTreatedValue=function(e){return e||!1===e?e:""},window.useMask=function(e,t,n){var a="";t="null"==t||"undefined"==t?void 0:t;var i=e,o=t||n;if(null!=e&&e!=null){if(e instanceof Date){var d=moment(e).utcOffset(window.timeZoneOffset);i="\""+d.format()+"\""}else i="number"==typeof e?e:"\""+e+"\"";a="{{ "+i+" | mask:\""+o+"\":\""+n+"\"}}"}return a},window.formatWithMomentAs=function(e,t,n,a){if(!n)return;let i=null;return i=n instanceof Date||n.startsWith("/Date")?t?moment(n).utcOffset(window.timeZoneOffset):moment(n):t?moment(n,e).utcOffset(window.timeZoneOffset,!0):moment(n,e),"string"===a?i.format(e):i.toDate()};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 n=$(str);n.attr("onload",`params = ${JSON.stringify(framentMap)}`);var a=$compile(n)(scope);element.html(a)}):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>`)}element.html(template),$compile(template)(scope)})}}}function cronReportViewer(e){return{restrict:"E",replace:!0,require:"ngModel",link:function(e,t,n,a){function i(n){var a=JSON.parse(n),i={element:t};e.$eval(a.reportCommand||a.dashboardCommand,i)}i(n.options);let o=t[0].parentElement;for(;o;)if("BODY"===o.tagName)o=null;else if(o.classList.contains("tab-pane"))break;else o=o.parentElement;if(o&&!o.classList.contains("active")){let e=new MutationObserver(function(e,t){for(let a of e)if("class"===a.attributeName&&a.target.classList.contains("active")){i(n.options),t.disconnect();break}});e.observe(o,{attributes:!0})}var d=null;e.$watch(function(){return n.options},function(e,t){e!==t&&(d&&(clearInterval(d),d=null),d=setTimeout(function(){i(e)}.bind(this),500))})}}}
|
package/js/directives.js
CHANGED
|
@@ -4499,6 +4499,9 @@
|
|
|
4499
4499
|
}
|
|
4500
4500
|
|
|
4501
4501
|
_compileAngular(scope, options.combobox.element[0]);
|
|
4502
|
+
if (options?.combobox?.span) {
|
|
4503
|
+
_compileAngular(scope, options.combobox.span);
|
|
4504
|
+
}
|
|
4502
4505
|
});
|
|
4503
4506
|
|
|
4504
4507
|
}
|
|
@@ -7017,6 +7020,9 @@ app.kendoHelper = {
|
|
|
7017
7020
|
self.options.combobox.options.expanded = true;
|
|
7018
7021
|
}
|
|
7019
7022
|
e.success(data);
|
|
7023
|
+
if (self?.options?.combobox?.span) {
|
|
7024
|
+
self.options.$compile(self.options.combobox.span)(self.options.scope);
|
|
7025
|
+
}
|
|
7020
7026
|
self.options.kendoCallback = e;
|
|
7021
7027
|
if (self.options && self.options.combobox && self.options.combobox.element[0].id) {
|
|
7022
7028
|
var expToFind = " .k-animation-container";
|