@sankhyalabs/sankhyablocks 8.8.0-rc.1 → 8.8.0-rc.11
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/dist/cjs/{ConfigStorage-a97ca159.js → ConfigStorage-c15716fd.js} +5 -2
- package/dist/cjs/{DataFetcher-2a99283c.js → DataFetcher-713f0749.js} +32 -32
- package/dist/cjs/PreloadManager-e26d237f.js +224 -0
- package/dist/cjs/{SnkFormConfigManager-f641f502.js → SnkFormConfigManager-29101e20.js} +2 -2
- package/dist/cjs/{SnkMultiSelectionListDataSource-56db34ee.js → SnkMultiSelectionListDataSource-d74d2336.js} +10 -6
- package/dist/cjs/{auth-fetcher-78231356.js → auth-fetcher-555ff856.js} +1 -1
- package/dist/cjs/{dataunit-fetcher-4f7d4ee7.js → dataunit-fetcher-66c0b7af.js} +48 -248
- package/dist/cjs/{form-config-fetcher-a322a522.js → form-config-fetcher-17775a75.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{pesquisa-fetcher-7ef61508.js → pesquisa-fetcher-34922b83.js} +1 -1
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-actions-button.cjs.entry.js +93 -86
- package/dist/cjs/snk-application.cjs.entry.js +16 -6
- package/dist/cjs/snk-attach.cjs.entry.js +4 -2
- package/dist/cjs/snk-crud.cjs.entry.js +7 -5
- package/dist/cjs/snk-data-exporter.cjs.entry.js +1 -1
- package/dist/cjs/snk-detail-view.cjs.entry.js +24 -8
- package/dist/cjs/snk-filter-bar.cjs.entry.js +19 -4
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
- package/dist/cjs/snk-form-config.cjs.entry.js +2 -2
- package/dist/cjs/snk-form.cjs.entry.js +4 -4
- package/dist/cjs/snk-grid-config.cjs.entry.js +3 -3
- package/dist/cjs/snk-grid.cjs.entry.js +8 -7
- package/dist/cjs/{snk-guides-viewer-aab80f66.js → snk-guides-viewer-b173ce35.js} +78 -5
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -7
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
- package/dist/cjs/snk-simple-crud.cjs.entry.js +8 -5
- package/dist/collection/components/snk-actions-button/actions/executor/java.executor.js +2 -2
- package/dist/collection/components/snk-actions-button/actions/executor/javascript.executor.js +2 -2
- package/dist/collection/components/snk-actions-button/actions/executor/procedure.executor.js +2 -2
- package/dist/collection/components/snk-actions-button/clientEvent/index.js +81 -76
- package/dist/collection/components/snk-application/snk-application.js +1 -0
- package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +18 -1
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +80 -8
- package/dist/collection/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.js +17 -2
- package/dist/collection/components/snk-grid/filtercolumn/SnkMultiSelectionListDataSource.js +5 -5
- package/dist/collection/components/snk-grid/snk-grid.js +1 -0
- package/dist/collection/lib/http/data-fetcher/DataFetcher.js +33 -34
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +7 -2
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +25 -4
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +25 -55
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +1 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +29 -8
- package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +3 -0
- package/dist/collection/lib/workspace/workspace.js +7 -0
- package/dist/components/ConfigStorage.js +3 -0
- package/dist/components/DataFetcher.js +32 -32
- package/dist/components/SnkMultiSelectionListDataSource.js +5 -5
- package/dist/components/dataunit-fetcher.js +87 -68
- package/dist/components/snk-actions-button2.js +87 -82
- package/dist/components/snk-application2.js +8 -0
- package/dist/components/snk-detail-view2.js +88 -2
- package/dist/components/snk-filter-bar2.js +17 -2
- package/dist/components/snk-grid2.js +1 -0
- package/dist/esm/{ConfigStorage-26f89143.js → ConfigStorage-79c81f36.js} +5 -2
- package/dist/esm/{DataFetcher-90e91631.js → DataFetcher-79f78222.js} +32 -32
- package/dist/esm/PreloadManager-8826b96a.js +222 -0
- package/dist/esm/{SnkFormConfigManager-18948123.js → SnkFormConfigManager-7723f3ec.js} +2 -2
- package/dist/esm/{SnkMultiSelectionListDataSource-b9410c72.js → SnkMultiSelectionListDataSource-27572f47.js} +6 -6
- package/dist/esm/{auth-fetcher-a8c8ee7e.js → auth-fetcher-e260d0cd.js} +1 -1
- package/dist/esm/{dataunit-fetcher-1c2ccae2.js → dataunit-fetcher-831feb12.js} +41 -240
- package/dist/esm/{form-config-fetcher-7c3b6273.js → form-config-fetcher-e1603e66.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{pesquisa-fetcher-90d6853b.js → pesquisa-fetcher-8e922c9d.js} +1 -1
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-actions-button.entry.js +93 -86
- package/dist/esm/snk-application.entry.js +16 -6
- package/dist/esm/snk-attach.entry.js +4 -2
- package/dist/esm/snk-crud.entry.js +7 -5
- package/dist/esm/snk-data-exporter.entry.js +1 -1
- package/dist/esm/snk-detail-view.entry.js +24 -8
- package/dist/esm/snk-filter-bar.entry.js +20 -5
- package/dist/esm/snk-filter-modal-item.entry.js +3 -3
- package/dist/esm/snk-form-config.entry.js +2 -2
- package/dist/esm/snk-form.entry.js +4 -4
- package/dist/esm/snk-grid-config.entry.js +3 -3
- package/dist/esm/snk-grid.entry.js +8 -7
- package/dist/esm/{snk-guides-viewer-62b0fa69.js → snk-guides-viewer-e62e0edc.js} +79 -6
- package/dist/esm/snk-guides-viewer.entry.js +9 -7
- package/dist/esm/snk-personalized-filter.entry.js +3 -3
- package/dist/esm/snk-simple-crud.entry.js +8 -5
- package/dist/sankhyablocks/{p-ebfa6460.entry.js → p-06e76ed2.entry.js} +1 -1
- package/dist/sankhyablocks/p-29176742.js +56 -0
- package/dist/sankhyablocks/p-2e6f1666.js +1 -0
- package/dist/sankhyablocks/{p-d563e451.entry.js → p-3bf4df20.entry.js} +1 -1
- package/dist/sankhyablocks/p-3c4f0354.js +1 -0
- package/dist/sankhyablocks/p-3ccb321d.entry.js +1 -0
- package/dist/sankhyablocks/{p-240f5892.js → p-41d156dd.js} +1 -1
- package/dist/sankhyablocks/{p-d47bbee3.js → p-4651b43f.js} +1 -1
- package/dist/sankhyablocks/{p-8652f90b.entry.js → p-47e4b6c9.entry.js} +1 -1
- package/dist/sankhyablocks/{p-68fbd480.entry.js → p-4f5b995d.entry.js} +1 -1
- package/dist/sankhyablocks/p-5f6113c8.js +60 -0
- package/dist/sankhyablocks/p-72b32e25.entry.js +11 -0
- package/dist/sankhyablocks/{p-57550ddc.entry.js → p-747043a5.entry.js} +1 -1
- package/dist/sankhyablocks/p-77756526.js +1 -0
- package/dist/sankhyablocks/{p-e74e2153.entry.js → p-80692cbd.entry.js} +1 -1
- package/dist/sankhyablocks/p-848b2e3b.entry.js +1 -0
- package/dist/sankhyablocks/p-862e5bf6.entry.js +1 -0
- package/dist/sankhyablocks/p-95b05e58.entry.js +1 -0
- package/dist/sankhyablocks/p-a1cce4f5.entry.js +1 -0
- package/dist/sankhyablocks/{p-5d51bff4.js → p-c9399ce6.js} +1 -1
- package/dist/sankhyablocks/p-d0b36421.js +1 -0
- package/dist/sankhyablocks/p-d32fe25e.js +1 -0
- package/dist/sankhyablocks/p-eb1561bf.entry.js +1 -0
- package/dist/sankhyablocks/p-f1743d68.entry.js +1 -0
- package/dist/sankhyablocks/p-f2e798f1.entry.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-actions-button/clientEvent/index.d.ts +1 -1
- package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +3 -0
- package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +22 -11
- package/dist/types/components/snk-grid/filtercolumn/SnkMultiSelectionListDataSource.d.ts +1 -0
- package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +5 -2
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.d.ts +3 -6
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/ILoadingInfo.d.ts +2 -0
- package/dist/types/lib/workspace/workspace.d.ts +1 -0
- package/package.json +1 -1
- package/dist/sankhyablocks/p-193971ad.js +0 -1
- package/dist/sankhyablocks/p-19cbe6e2.entry.js +0 -11
- package/dist/sankhyablocks/p-2c7c1323.entry.js +0 -1
- package/dist/sankhyablocks/p-3253e7f2.entry.js +0 -1
- package/dist/sankhyablocks/p-5dd52ec5.entry.js +0 -1
- package/dist/sankhyablocks/p-6541f0df.js +0 -1
- package/dist/sankhyablocks/p-910af03c.js +0 -56
- package/dist/sankhyablocks/p-992a9d0f.js +0 -1
- package/dist/sankhyablocks/p-acb1374c.entry.js +0 -1
- package/dist/sankhyablocks/p-b36053da.entry.js +0 -1
- package/dist/sankhyablocks/p-b481e5ad.js +0 -1
- package/dist/sankhyablocks/p-d264da22.entry.js +0 -1
- package/dist/sankhyablocks/p-d56b65e3.entry.js +0 -1
- package/dist/sankhyablocks/p-e473ca13.entry.js +0 -1
- package/dist/sankhyablocks/p-e86d4a53.js +0 -59
@@ -1 +0,0 @@
|
|
1
|
-
import{r as t,h as s,H as i,g as e}from"./p-d2d301a6.js";import{ApplicationContext as n,StringUtils as o,ErrorException as a,WarningException as c,ObjectUtils as r,DateUtils as l,ArrayUtils as h,ElementIDUtils as u}from"@sankhyalabs/core";import{D as d}from"./p-5d51bff4.js";import{P as p}from"./p-eaad0aa8.js";import"./p-240f5892.js";import"./p-5534e08c.js";import"./p-9e7d65a4.js";import"@sankhyalabs/ezui/dist/collection/utils/constants";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import"./p-e86d4a53.js";import"./p-584d7212.js";import"./p-d47bbee3.js";import{R as m}from"./p-688dcb4c.js";import"./p-112455b1.js";import"./p-8d884fab.js";class v{execute(t){var s;const i={actionID:t.actionID,refreshType:null===(s=t.actionConfig.javaCall)||void 0===s?void 0:s.refreshType};return new Promise((t=>{t({execSource:i,callback:this.callExecJava})}))}callExecJava(t){const s={requestBody:{javaCall:t}};d.get().callServiceBroker("ActionButtonsSP.executeJava",JSON.stringify(s))}}class b{execute(t){var s;const i={actionID:t.actionID,refreshType:null===(s=t.actionConfig.runScript)||void 0===s?void 0:s.refreshType};return new Promise((t=>{t({execSource:i,callback:this.callExecScript})}))}callExecScript(t){const s={runScript:t};d.get().callServiceBroker("ActionButtonsSP.executeScript",s)}}class k{constructor(){this._application=n.getContextValue("__SNK__APPLICATION__")}async execute(t,s){const i=t.resourceID;if(!i)return;let e=await this.buildLaunchObject(t,s);return this._application.openApp(i,e),null}buildLaunchObject(t,s){return new Promise((i=>{let e=t.actionConfig.params.param;if(e&&e.length>0){let n={},c=[];e.forEach((i=>{const e=i.localField;let r=s.getFieldValue(e);if(!r){let i=s.getField(e).label;throw i=o.isEmpty(s.getField(e).label)?e:i,new a(this._application.messagesBuilder.getMessage("snkActionsButton.title.error",void 0),this._application.messagesBuilder.getMessage("snkActionsButton.launchScreen.emptyField",{description:t.description,localFieldLabel:i}))}r=o.isEmpty(r.toString())?void 0:r.toString(),n[i.targetField]=r,c.push({fieldName:i.targetField,value:r})})),n.ACTION_PARAMETERS=c,n.call_time=Date.now(),i(n)}i(null)}))}}class f{execute(t){var s,i,e;const n=null===(s=t.actionConfig.dbCall)||void 0===s?void 0:s.name,o=null===(i=t.actionConfig.dbCall)||void 0===i?void 0:i.rootEntity,a={actionID:t.actionID,refreshType:null===(e=t.actionConfig.dbCall)||void 0===e?void 0:e.refreshType,procName:n,rootEntity:o};return new Promise((t=>{t({execSource:a,callback:this.callExecProcedure})}))}callExecProcedure(t){const s={requestBody:{stpCall:t}};d.get().callServiceBroker("ActionButtonsSP.executeSTP",JSON.stringify(s))}}var w,_;!function(t){t.LAUNCH_SCREEN="LC",t.JAVASCRIPT="SC",t.JAVA="RJ",t.PROCEDURE="SP",t.EMBEDDED="EB"}(w||(w={}));class S{constructor(t){this.actionType=t,this._application=n.getContextValue("__SNK__APPLICATION__")}get executor(){switch(this.actionType){case w.LAUNCH_SCREEN:return new k;case w.JAVASCRIPT:return new b;case w.JAVA:return new v;case w.PROCEDURE:return new f;default:throw new a(this._application.messagesBuilder.getMessage("snkActionsButton.title.error",void 0),this._application.messagesBuilder.getMessage("snkActionsButton.action.nonExistentType",{actionType:this.actionType}))}}}!function(t){t.NONE="NONE",t.PARENT="PARENT",t.MASTER="MASTER",t.ALL="ALL"}(_||(_={}));const y="__MASTER_ROW__";class P{constructor(t,s,i){var e;this._lastValuesCache={},this._actionsExecuteInterface=t,this._dataUnit=s,this._selectedRows=(null===(e=null==s?void 0:s.getSelectionInfo())||void 0===e?void 0:e.isAllRecords())?[]:null==s?void 0:s.getSelectionInfo().records,this._application=n.getContextValue("__SNK__APPLICATION__"),this._appResourceId=i}apply(t,s){this._application.closePopUp(),this._actionsExecuteInterface.execute(t,this._dataUnit).then((({execSource:i,callback:e})=>{this.resolvePromptParams(t,i,s).then((()=>{this.actionExecute(i,e)}))}))}async execute(t){var s;if(!t.actionConfig)throw new c(this._application.messagesBuilder.getMessage("snkActionsButton.title.warning",void 0),this._application.messagesBuilder.getMessage("snkActionsButton.action.incorrectAction",{description:t.description}));if(null===(s=t.actionConfig.params)||void 0===s?void 0:s.promptParam){const s=t.actionConfig.params.promptParam;let i=!1;for(let t=0;t<s.length;t++)if(!i&&"true"===s[t].saveLast){i=!0;break}i&&(t.actionConfig.params.promptParam=await this.loadSavedValuesIntoParams(t));const e=document.createElement("snk-actions-form");window.document.body.appendChild(e),e.action=r.copy(t),e.applyParameters=t=>{this.apply(t,i)},e.openPopup()}else t.type!=w.LAUNCH_SCREEN?this._actionsExecuteInterface.execute(t,this._dataUnit).then((({execSource:t,callback:s})=>{this.actionExecute(t,s)})):this._actionsExecuteInterface.execute(t,this._dataUnit)}loadSavedValuesIntoParams(t){return this.loadLastValues(t).then((s=>{let i=t.actionConfig.params.promptParam;return s&&s.param.forEach((t=>{i=i.map((s=>s.name!==t.paramName?s:Object.assign(Object.assign({},s),"B"===s.paramType?{value:"S"===t.$}:{value:t.$})))})),i}))}actionExecute(t,s){t.virtualPage=this.buildVirtualPage(),this.prepareAndExecute(t,s),this.recordsReloader(t.refreshType)}resolvePromptParams(t,s,i){return new Promise((e=>{let n=[];t.actionConfig.params.promptParam.forEach((t=>{n.push(this.buildPromptParam(t))})),this.putParamsOnExecSource(n,s),i&&this.saveLastValues(t,n),e()}))}buildPromptParam(t){let s,i,e=t.paramType,n=!1,o=t.value;switch(e){case p.DATE:e="D";break;case p.DATETIME:e="H";break;case p.DECIMAL:e="F",s={"sk-precision":Number(t.precision)};break;case p.BOOLEAN:e="S",n=!0,o=t.value?"S":"N";break;case p.ENTITY:s={"sk-entity-name":t.entityName,"sk-allow-show-hierarchical-mode":t.hierarchyEntity,"sk-data-type":"S"},t.hierarchyEntity&&t.entityPK&&(i=t.entityPK),o=t.value?Number(t.value):null;break;case p.OPTIONS:e="O";let a=t.options.split(";").map((function(t,s){let i,e;if(t.indexOf("=")>-1){let s=t.split("=");i=s[0],e=s[1]}else i=s+1,e=t;return{data:i,value:e}}));s={"sk-options":a}}return{description:t.label,required:"true"==t.required,fieldName:t.name,fieldNameOri:t.name,entityPK:i,paramType:t.paramType,type:e,isCheckbox:n,saveLast:t.saveLast,fieldProp:s,value:o,isGeneratedName:t.isGeneratedName}}putParamsOnExecSource(t,s){s.params={param:[]},t.forEach((t=>{if(t.isGeneratedName&&t.value)throw new a(this._application.messagesBuilder.getMessage("snkActionsButton.title.error",void 0),this._application.messagesBuilder.getMessage("snkActionsButton.action.emptyParamName",void 0));o.isEmpty(t.value)||s.params.param.push({type:this.getParamDataType(t.paramType),paramName:t.fieldName,$:this.getParamValue(t)})}))}getParamDataType(t){let s;switch(t){case"D":s="F";break;case"DT":case"DH":s="D";break;case"B":case"ENTITY":case"SO":s="S";break;default:s=t}return s}getParamValue(t){let s=t.value;return s?("DT"==t.paramType?s=l.formatDate(s):"DH"==t.paramType&&(s=l.formatDateTime(s)),s):s}async loadLastValues(t){const s=await this.buildResourceId(t.actionID);return new Promise(((t,i)=>{if(this._lastValuesCache[s])t(this._lastValuesCache[s]);else{const e={config:{chave:s,tipo:"T"}};d.get().callServiceBroker("SystemUtilsSP.getConf",e).then((i=>{var e,n;let o;(null===(n=null===(e=i.config)||void 0===e?void 0:e.data)||void 0===n?void 0:n.params)&&(o=i.config.data.params,Array.isArray(o.param)||(o.param=[o.param])),this._lastValuesCache[s]=o,t(o)})).catch((t=>{i(t)}))}}))}async saveLastValues(t,s){if(this._application){let i={params:{param:[]}};s.forEach((t=>{"true"==t.saveLast&&i.params.param.push({paramName:t.fieldName,$:t.value})}));const e=await this.buildResourceId(t.actionID);this._lastValuesCache[e]=i.params,this._application.saveConfig(e,i)}}async buildResourceId(t){return this._appResourceId+".actionconfig."+t}prepareAndExecute(t,s){this.addRows(t),s(t)}addRows(t){const s={row:[]},i=this._selectedRows;for(const t in i){const e=i[t],n={};e.hasOwnProperty(y)&&(n.master="S",n.entityName=e.__ENTITY_NAME__,delete e[y],delete e.__ENTITY_NAME__);for(const t in e)"NUFIN"===t&&(n.field||(n.field=[]),n.field.push({fieldName:t,$:e[t]}));s.row.push(n)}s.row.length>0&&(t.rows=s)}recordsReloader(t){switch(t){case _.NONE:break;case _.PARENT:case _.MASTER:case _.ALL:this._dataUnit.loadData();break;default:this._dataUnit.reloadCurrentRecord()}}buildVirtualPage(){var t,s,i,e;if(null===(s=null===(t=this._dataUnit)||void 0===t?void 0:t.getSelectionInfo())||void 0===s?void 0:s.isAllRecords())return{filters:{filters:null===(i=this._dataUnit)||void 0===i?void 0:i.getAppliedFilters()},orders:{orders:null===(e=this._dataUnit)||void 0===e?void 0:e.getSort()}}}}class A{clientConfirm(t,s){const i=n.getContextValue("__SNK__APPLICATION__");let e="";t.content.event.hasOwnProperty("stpCall")?(s.requestBody=t.content.event.stpCall,e=w.PROCEDURE):t.content.event.hasOwnProperty("runScript")?(s.requestBody=t.content.event.runScript,e=w.JAVASCRIPT):t.content.event.hasOwnProperty("javaCall")&&(s.requestBody=t.content.event.javaCall,e=w.JAVA);let o={type:"S",sequence:t.content.event.sequence};s.requestBody.params?Array.isArray(s.requestBody.params.param)||(s.requestBody.params.param=[s.requestBody.params.param]):s.requestBody.params={param:[]},s.requestBody.params.param.push(o);const a=t.content.event.title.$,c=t.content.event.message.$;let r;switch(e){case w.JAVASCRIPT:r={runScript:s.requestBody};break;case w.PROCEDURE:r={requestBody:{stpCall:s.requestBody}};break;case w.JAVA:r={requestBody:{javaCall:s.requestBody}}}if("S"==t.content.event.showNoOption){o.paramName="__ESCOLHA_SIMNAO__";const t=document.createElement("snk-client-confirm");window.document.body.appendChild(t),t.titleMessage=a,t.message=c,t.accept=()=>{o.$="S",s.reCall(r)},t.cancel=()=>{o.$="N",s.reCall(r)},t.openPopup()}else i.confirm(a,c,null,"warn",{labelCancel:"Cancelar",labelConfirm:"Sim"}).then((t=>{t&&(o.paramName="__CONFIRMACAO__",o.$="S",s.reCall(r))}))}}const N=class{constructor(s){t(this,s),this.CLIENT_EVENT_CONFIRM_NAME="br.com.sankhya.actionbutton.clientconfirm",this.handleClick=t=>{const s=this._actions.find((s=>s.actionID==t.detail.id)),i=new S(s.type).executor;new P(i,this._dataUnit,this._resourceID).execute(Object.assign({},s)),this._showDropdown=!1},this._items=[],this._showDropdown=!1,this._actions=[],this._isOrderActions=!1}async getActions(){let t={param:{entityName:this._entityName,resourceID:this._resourceID}};return d.get().callServiceBroker("ActionButtonsSP.getActions",t).then((t=>{var s;(null===(s=t.actions)||void 0===s?void 0:s.action)&&(this._actions=this._isOrderActions?h.sortAlphabetically(t.actions.action,"description"):t.actions.action)}))}controlDropdown(){this._showDropdown=!this._showDropdown}canShowDropdown(){var t;return this._showDropdown&&(null===(t=this._items)||void 0===t?void 0:t.length)>0}positionDropdown(){var t;const s=null===(t=this._ezButton)||void 0===t?void 0:t.getBoundingClientRect();s&&this._dropdownParent&&(this._dropdownParent.style.top=s.y+s.height+5+"px",this._dropdownParent.style.left=s.x+"px")}closeDropdown(t){const s=null==t?void 0:t.target;s&&(s.closest(".snk-actions-button")||(this._showDropdown=!1))}setEvents(){document.removeEventListener("click",this.closeDropdown.bind(this)),document.addEventListener("click",this.closeDropdown.bind(this)),document.removeEventListener("scroll",this.positionDropdown.bind(this)),document.addEventListener("scroll",this.positionDropdown.bind(this))}async componentWillLoad(){this._application=n.getContextValue("__SNK__APPLICATION__"),this._isOrderActions=await this._application.getBooleanParam("global.ordenar.acoes.personalizadas");const t=this._element.parentElement;this._dataUnit=null==t?void 0:t.dataUnit,this._resourceID=null==t?void 0:t.resourceID,this._entityName=this._dataUnit.name.split("/")[2],null==this._resourceID&&(this._resourceID=await m.getResourceID()),this.setEvents(),this.getActions().then((()=>{this.loadItems()}))}async componentDidLoad(){if(this._element&&(u.addIDInfo(this._element),this.positionDropdown(),!await this._application.hasClientEvent(this.CLIENT_EVENT_CONFIRM_NAME))){const t=new A;this._application.addClientEvent(this.CLIENT_EVENT_CONFIRM_NAME,t.clientConfirm)}}componentDidUpdate(){this.positionDropdown()}loadItems(){this._actions&&0!=this._actions.length&&this._actions.forEach((t=>{this._items.push({id:t.actionID,label:t.description})}))}getElementID(t){return{[u.DATA_ELEMENT_ID_ATTRIBUTE_NAME]:u.getInternalIDInfo(t)}}render(){return s(i,null,this._actions&&this._actions.length>0&&s("div",{class:`ez-padding-left--medium snk-actions-button \n ${this.canShowDropdown()?" snk-actions-button--overlap":""}\n `},s("ez-button",Object.assign({ref:t=>this._ezButton=t,iconName:"acao",size:"small",mode:"icon",title:this._application.messagesBuilder.getMessage("snkActionsButton.title.actions",void 0),onClick:()=>this.controlDropdown()},this.getElementID("button"))),s("div",Object.assign({ref:t=>this._dropdownParent=t,class:(this.canShowDropdown()?"snk-actions-button__dropdown--show":"snk-actions-button__dropdown")+"\n "},this.getElementID("dropdown")),this.canShowDropdown()&&s("ez-dropdown",Object.assign({items:this._items,onEzClick:t=>this.handleClick(t)},this.getElementID("dropdown"))))),this.canShowDropdown()&&s("div",Object.assign({class:"ez-scrim ez-scrim--light"},this.getElementID("ezScrim"))))}get _element(){return e(this)}};N.style=".sc-snk-actions-button-h{--snk-actions-button--z-index:var(--most-visible, 3);display:flex;width:fit-content;height:fit-content}.snk-actions-button.sc-snk-actions-button{display:flex;width:fit-content;height:fit-content}.snk-actions-button__dropdown--show.sc-snk-actions-button{display:flex;flex-direction:column;position:fixed}.snk-actions-button__dropdown.sc-snk-actions-button>ez-dropdown.sc-snk-actions-button{position:relative}.snk-actions-button--overlap.sc-snk-actions-button{z-index:var(--snk-actions-button--z-index)}.snk-actions-button__dropdown.sc-snk-actions-button{display:none}";export{N as snk_actions_button}
|
@@ -1 +0,0 @@
|
|
1
|
-
import{r as t,c as i,f as s,h as e,H as a}from"./p-d2d301a6.js";import{S as h}from"./p-6541f0df.js";import{FormMetadata as o,buildFormMetadata as n}from"@sankhyalabs/ezui/dist/collection/utils/form";import"./p-5d51bff4.js";import"./p-240f5892.js";import"@sankhyalabs/core";import{P as r}from"./p-5534e08c.js";import"./p-9e7d65a4.js";import"@sankhyalabs/ezui/dist/collection/utils/constants";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import"./p-e86d4a53.js";import"./p-584d7212.js";import"./p-d47bbee3.js";import{T as d}from"./p-c9841939.js";import{c as l}from"./p-4a78e118.js";import{S as c}from"./p-193971ad.js";import{S as m}from"./p-f1f7b545.js";import"./p-910af03c.js";import"./p-112455b1.js";import"./p-8d884fab.js";import"./p-688dcb4c.js";import"./p-6dc031de.js";import"./p-c2beb95c.js";import"@sankhyalabs/core/dist/dataunit/DataUnit";class u{constructor(t,i,s){this._parentGuide=t,this._formMetadata=i,this._dataUnit=s}get id(){return this._parentGuide.id}buildGuideItem(t){const i=Object.assign({},this._parentGuide);delete i.expanded,delete i.children;const s=this._dataUnit.getSelectedRecord();if(!s)return i;const e=this._dataUnit.isNewRecord(s.__record__id__),a=Array.from(this._formMetadata.getAllSheets().values()).map((i=>{const{name:s,label:a}=i,h=null!=o.getDetailName(s.split("::").pop()),n=h&&e,r=this._parentGuide.id,d=h?`${r}::${s}`:`${r}__FORM:${s}`;return h&&t.has(d)&&!n?t.get(d).buildGuideItem(t):{id:d,label:a,disabled:n,tooltip:n?"Finalize o cadastro para ter acesso a esta guia.":void 0}})),h=a.shift();return h.label=e?"Novo Registro":s.__record__label__,h.children=a,i.children=[h],i}}const p=class{constructor(s){t(this,s),this.snkDetailGuidesChange=i(this,"snkDetailGuidesChange",7),this.snkSwitchGuide=i(this,"snkSwitchGuide",7),this.formItemsReady=i(this,"formItemsReady",7),this._disabledButtons=void 0,this._currentView=void 0,this.attachmentRegisterKey=void 0,this.formConfigManager=void 0,this.dataUnitName=void 0,this.resourceID=void 0,this.guideItemPath=void 0,this.entityName=void 0,this.label=void 0,this.dataUnit=void 0,this.selectedForm=void 0,this.dataState=void 0,this.messagesBuilder=void 0,this.branchGuide=void 0,this.canEdit=!0,this.taskbarCustomContainerId=void 0}observerDataState(t,i){const s=!(null==i?void 0:i.insertionMode)&&(null==t?void 0:t.insertionMode),e=(null==i?void 0:i.insertionMode)&&!(null==t?void 0:t.insertionMode);if((s||e)&&this.loadMetadata(),null==this._formMetadata)return;const a=null==t?void 0:t.selectedRecord,h=null==i?void 0:i.selectedRecord;(null==a?void 0:a.__record__id__)!==(null==h?void 0:h.__record__id__)&&this.snkDetailGuidesChange.emit(new u(this.branchGuide,this._formMetadata,this.dataUnit)),s&&setTimeout((()=>{this.changeViewMode(l.FORM)}),0),e&&this.changeViewMode(l.GRID);const o=[];this.dataState.hasPrevious||o.push(d.PREVIOUS),this.dataState.hasNext||o.push(d.NEXT),this._disabledButtons=o}async changeViewMode(t){this.emitSwitchEvent(t)}async configGrid(){this._snkGrid&&this._snkGrid.showConfig()}async showUp(){this._snkFormView&&this._snkFormView.showUp(),this._snkGrid&&this._snkGrid.scrollIntoView({behavior:"smooth",block:"start"})}onContentCardChanged(t){c.updateContentCard(t.detail.formName,t.detail.cardConfig,t.detail.propertyChanged,this.formConfigManager).then((()=>s(this))),t.stopPropagation()}updateLabel(){const t=this.guideItemPath?this.guideItemPath.length:0;if(t>0){const i=t>0?this.guideItemPath.map((t=>t.label)):void 0;this.label=i.pop(),this._levelPath=i.length>0?i.join(" / "):void 0}else this.label="",this._levelPath=void 0}getFormGuideId(t){var i;if(!t){if(null==(null===(i=this.dataState)||void 0===i?void 0:i.selectedRecord))return;const s=Array.from(this._formMetadata.getAllSheets().keys());if(!s||0==s.length)return;t=s[0]}return`${this.stripFormPattern(this.branchGuide.id)}__FORM:${t}`}stripFormPattern(t){return t.replace(p.REGEX_FORM_ID,"")}loadMetadata(){var t;if(!this.dataUnit)return;if(!this.formConfigManager.isLoaded)return;const i=this.formConfigManager.getConfig(null===(t=this.dataState)||void 0===t?void 0:t.insertionMode,this.dataUnit);this._formMetadata=n(null==i||0===i.fields.length?void 0:i,this.dataUnit,!0)}dataUnitReadyHandler(t){this.dataUnit=t.detail,this.loadMetadata()}updateViewStack(t){var i,s;this._viewStack=t,this._currentView=this.selectedForm?1:0,null===(s=null===(i=this._viewStack)||void 0===i?void 0:i.show)||void 0===s||s.call(i,this._currentView)}getFormFields(){return this.selectedForm&&this._formMetadata?this._formMetadata.getSheet(this.selectedForm).fields:[]}emitSwitchEvent(t){const i=t===l.GRID?this.stripFormPattern(this.branchGuide.id):this.getFormGuideId();i&&this.snkSwitchGuide.emit(i)}handleAttachBack(){this._viewStack.show(l.GRID)}executeActionHandler(t){t.detail===d.GRID_MODE&&(this.emitSwitchEvent(l.GRID),t.stopPropagation()),t.detail===d.FORM_MODE&&(this.emitSwitchEvent(l.FORM),t.stopPropagation()),t.detail===d.ATTACH&&(this._viewStack.show(l.ATTACHMENT),t.stopPropagation())}async getAttachmentRegisterKey(){if(this._snkDataUnit)return(await this._snkDataUnit.getSelectedRecordsIDsInfo()).map((({value:t})=>t)).join("_")}async handleDataStateChange({detail:t}){this.dataState=t,void 0!==t.selectedRecord&&this._snkDataUnit&&(this.attachmentRegisterKey=await this.getAttachmentRegisterKey())}componentWillLoad(){this._configName=`dynaform.${this.entityName}`,this.formConfigManager=new h(this._configName,this.resourceID,(()=>this.loadMetadata())),this.formConfigManager.loadConfig(),null==this.messagesBuilder&&(this.messagesBuilder=new m(this.entityName))}render(){return this.updateLabel(),e(a,null,e("snk-data-unit",{ref:t=>this._snkDataUnit=t,dataUnitName:`${this.dataUnitName}`,onDataUnitReady:t=>this.dataUnitReadyHandler(t),entityName:this.entityName,onDataStateChange:this.handleDataStateChange.bind(this),ignoreSaveMessage:this._currentView===l.GRID,messagesBuilder:this.messagesBuilder,configName:this._configName},e("ez-view-stack",{ref:t=>this.updateViewStack(t)},e("stack-item",null,e("div",{class:"ez-box ez-box--shadow grid-container"},e("div",{class:"ez-flex ez-title--primary ez-size-width--full ez-padding--large detail-header"},e("div",{class:"ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center"},this._levelPath?e("span",{class:"level-path"},this._levelPath+" /"):void 0,this.label)),e("snk-grid",{class:"ez-size-width--full ez-size-height--full",ref:t=>this._snkGrid=t,configName:this._configName,messagesBuilder:this.messagesBuilder,onGridDoubleClick:()=>this.emitSwitchEvent(l.FORM),onActionClick:t=>this.executeActionHandler(t),presentationMode:r.SECONDARY,canEdit:this.canEdit,isDetail:!0,taskbarCustomContainerId:this.taskbarCustomContainerId,gridHeaderCustomSlotId:"DETAIL_GRID_HEADER_CUSTOM_ELEMENTS",topTaskbarCustomSlotId:"DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS"}))),e("stack-item",null,e("snk-form-view",{ref:t=>this._snkFormView=t,canExpand:!1,canFix:!1,name:this.selectedForm,formMetadata:this._formMetadata,dataUnit:this.dataUnit,fields:this.getFormFields(),label:this.label,levelPath:this._levelPath,onFormItemsReady:({detail:t})=>this.formItemsReady.emit(t)},e("snk-taskbar",{key:"guideViewerTaskbar",class:"form-taskbar","data-element-id":"guideViewer",configName:this._configName,messagesBuilder:this.messagesBuilder,disabledButtons:this._disabledButtons,buttons:"INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR",primaryButton:"INSERT",presentationMode:r.SECONDARY,onActionClick:t=>this.executeActionHandler(t),dataUnit:this.dataUnit,resourceID:this.resourceID,customContainerId:this.taskbarCustomContainerId,customSlotId:"DETAIL_TASKBAR_CUSTOM_ELEMENTS"},e("slot",{name:"DETAIL_TASKBAR_CUSTOM_ELEMENTS"})))),e("stack-item",null,e("snk-attach",{registerKey:this.attachmentRegisterKey,messagesBuilder:this.messagesBuilder,entityName:this.entityName,onBack:this.handleAttachBack.bind(this)})))))}static get watchers(){return{dataState:["observerDataState"]}}};p.REGEX_FORM_ID=/__FORM:[^:]+/g,p.style=".sc-snk-detail-view-h{display:flex;row-gap:24px;flex-direction:column;width:100%;height:100%}.level-path.sc-snk-detail-view{color:var(--color--title-primary, #2B3A54);font-weight:var(--text-weight--medium, 400);padding-right:3px}.form-taskbar.sc-snk-detail-view{padding-bottom:var(--space--medium)}.grid-container.sc-snk-detail-view{background-color:#FFF;min-height:100px}.detail-header.sc-snk-detail-view{padding-bottom:0}";export{p as snk_detail_view}
|
@@ -1 +0,0 @@
|
|
1
|
-
import{r as t,c as i,h as s,H as e,g as a}from"./p-d2d301a6.js";import{StringUtils as h,ElementIDUtils as o,ApplicationContext as n}from"@sankhyalabs/core";import{T as r}from"./p-c9841939.js";import"./p-5d51bff4.js";import"./p-240f5892.js";import{P as d}from"./p-5534e08c.js";import"./p-9e7d65a4.js";import"@sankhyalabs/ezui/dist/collection/utils/constants";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import"./p-e86d4a53.js";import"./p-584d7212.js";import"./p-d47bbee3.js";import{c}from"./p-4a78e118.js";import{A as l}from"./p-992a9d0f.js";import"./p-6dc031de.js";import"./p-112455b1.js";import"./p-8d884fab.js";import"./p-688dcb4c.js";const m=class{constructor(s){t(this,s),this.actionClick=i(this,"actionClick",7),this.configuratorSave=i(this,"configuratorSave",7),this.configuratorCancel=i(this,"configuratorCancel",7),this.formItemsReady=i(this,"formItemsReady",7),this._viewHistory=[],this._dataUnit=void 0,this._dataState=void 0,this.attachmentRegisterKey=void 0,this._currentViewMode=c.GRID,this._canEdit=void 0,this._resourceID=void 0,this.configName=void 0,this.selectionToastConfig=void 0,this.showActionButtons=!1,this.actionsList=void 0,this.taskbarManager=void 0,this.recordsValidator=void 0,this.statusResolver=void 0,this.multipleSelection=!0,this.presentationMode=d.PRIMARY,this.messagesBuilder=void 0,this.useEnterLikeTab=!1,this.customContainerId=`SNK-CRUD-CUSTOM-CONTAINER-${h.generateUUID()}`}async goToView(t){this.executeAction(t)}async openConfigurator(){var t;null===(t=this._snkConfigurator)||void 0===t||t.open()}async closeConfigurator(){var t;null===(t=this._snkConfigurator)||void 0===t||t.close()}async reloadFilterBar(){var t;null===(t=this._snkGrid)||void 0===t||t.reloadFilterBar()}currentViewModeWatcher(t){this._viewHistory=[...this._viewHistory.slice(-1),t]}async gridToForm(t=!1){this._backToGrid=!t&&await this._viewStack.getSelectedIndex()===c.GRID,this.setViewMode(c.FORM)}async executeAction(t){return t===r.GRID_MODE?this.setViewMode(c.GRID):t===r.FORM_MODE||t===r.UPDATE?this.gridToForm(t!==r.UPDATE):t===r.CONFIGURATOR?this._snkConfigurator.open():"ATTACH"===t?this.setViewMode(c.ATTACHMENT):void 0}backView(){const t=this._viewHistory.at(-2)||c.GRID;this.setViewMode(t)}setViewMode(t){this._viewStack.show(t),this._currentViewMode=t}openConfig(t){this._snkConfigurator.close(),t===c.GRID?this._snkGrid.showConfig():t===c.FORM&&this._guidesViewer.showFormConfig()}addDataElementID(){o.addIDInfo(this._element,null,{dataUnit:this._dataUnit})}insertionModeHandler(){this.gridToForm()}cancelHandler(){this._backToGrid&&this.setViewMode(c.GRID)}async getAttachmentRegisterKey(){if(this._snkDataUnit)return(await this._snkDataUnit.getSelectedRecordsIDsInfo()).map((({value:t})=>t)).join("_")}componentWillLoad(){const t=n.getContextValue("__SNK__APPLICATION__");t.hasAccess(l.UPDATE,this._resourceID).then((t=>this._canEdit=t));let i=this._element.parentElement;for(;i;){if("SNK-DATA-UNIT"===i.tagName.toUpperCase()){this._snkDataUnit=i,this._snkDataUnit.addEventListener("insertionMode",(()=>this.insertionModeHandler())),this._snkDataUnit.addEventListener("cancelEdition",(()=>this.cancelHandler())),this._dataUnit=this._snkDataUnit.dataUnit,this._dataState=this._snkDataUnit.dataState,this._dataUnit?this.initDataUnit(t):this._snkDataUnit.addEventListener("dataUnitReady",(i=>{this._dataUnit=i.detail,this.initDataUnit(t)})),this._snkDataUnit.addEventListener("dataStateChange",(async({detail:t})=>{this._dataState=t,void 0!==t.selectedRecord&&(this.attachmentRegisterKey=await this.getAttachmentRegisterKey())}));break}i=i.parentElement}this.configName||(this.configName=t.configName)}async initDataUnit(t){this.addDataElementID(),this.messagesBuilder||(this.messagesBuilder=this._snkDataUnit.messagesBuilder),null==this._resourceID&&(this._resourceID=this._snkDataUnit.resourceID,null==this._resourceID&&(this._resourceID=await t.getResourceID()))}handleConfiguratorEvent(t,i){t.stopImmediatePropagation(),"SAVE"!==i?this.configuratorCancel.emit():this.configuratorSave.emit()}render(){if(null!=this._resourceID)return this._snkDataUnit.ignoreSaveMessage=this._currentViewMode===c.GRID,s(e,null,s("ez-view-stack",{ref:t=>this._viewStack=t,"data-element-id":"crud"},s("stack-item",null,s("snk-grid",{ref:t=>this._snkGrid=t,"data-element-id":"crud_grid",configName:this.configName,onGridDoubleClick:()=>this.gridToForm(!0),taskbarManager:this.taskbarManager,onActionClick:t=>this.executeAction(t.detail),messagesBuilder:this.messagesBuilder,actionsList:this.actionsList,statusResolver:this.statusResolver,multipleSelection:this.multipleSelection,presentationMode:this.presentationMode,selectionToastConfig:this.selectionToastConfig,useEnterLikeTab:this.useEnterLikeTab,canEdit:this._canEdit,resourceID:this._resourceID},s("slot",{name:"GRID_TASKBAR_CUSTOM_ELEMENTS"}),s("slot",{name:"GRID_HEADER_CUSTOM_ELEMENTS"}),s("slot",{name:"SnkGridHeader"}),s("slot",{name:"SnkGridFooter"}),s("slot",{name:"SnkGridTaskBar"}))),s("stack-item",null,s("snk-guides-viewer",{ref:t=>this._guidesViewer=t,entityPath:this._snkDataUnit.entityName,messagesBuilder:this.messagesBuilder,onExit:()=>this.setViewMode(c.GRID),dataState:this._dataState,dataUnit:this._dataUnit,actionsList:this.actionsList,taskbarManager:this.taskbarManager,configName:this.configName,onActionClick:t=>this.executeAction(t.detail),presentationMode:this.presentationMode,"data-element-id":"crud_form",canEdit:this._canEdit,resourceID:this._resourceID,detailTaskbarCustomContainerId:this.customContainerId},s("slot",{name:"GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS"}),s("slot",{name:"SnkFormTaskBar"}))),s("stack-item",null,s("snk-attach",{registerKey:this.attachmentRegisterKey,messagesBuilder:this.messagesBuilder,entityName:this._snkDataUnit.entityName,onBack:this.backView.bind(this)})),s("snk-configurator",{ref:t=>this._snkConfigurator=t,viewMode:this._currentViewMode,messagesBuilder:this.messagesBuilder,onConfigSelected:t=>this.setViewMode(t.detail),onOpenConfig:t=>this.openConfig(t.detail),showActionButtons:this.showActionButtons,onSave:t=>this.handleConfiguratorEvent(t,"SAVE"),onCancel:t=>this.handleConfiguratorEvent(t,"CANCEL"),resourceID:this._resourceID,customContainerId:this.customContainerId})),s("div",{id:`${this.customContainerId}`},s("slot",{name:"SnkConfigContainerSlot"}),s("slot",{name:"DETAIL_GRID_HEADER_CUSTOM_ELEMENTS"}),s("slot",{name:"DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS"}),s("slot",{name:"DETAIL_TASKBAR_CUSTOM_ELEMENTS"})))}get _element(){return a(this)}static get watchers(){return{_currentViewMode:["currentViewModeWatcher"]}}};m.style=".sc-snk-crud-h{display:flex;flex-direction:column;height:100%;width:100%}";export{m as snk_crud}
|
@@ -1,59 +0,0 @@
|
|
1
|
-
import{FieldComparator as t,SortMode as e,DataUnit as r,defaultDataLoader as s,DataType as n,DateUtils as a,StringUtils as i,ChangeOperation as o,UserInterface as c,DataUnitStorage as l}from"@sankhyalabs/core";import{D as u,d}from"./p-5d51bff4.js";import{DISTINCT_FILTER_NAME_PREFIX as h}from"@sankhyalabs/ezui/dist/collection/utils/constants";import{DataUnitTransient as m}from"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import{R as f}from"./p-688dcb4c.js";class _{constructor(t){this._list=[],this._equalsFunction=t}async load(t,e,r,s){let n=[].concat(this._list);null!=t&&(n=this._list.filter((e=>t(e)))),null!=e&&(n=n.sort(e));const a=n.length;if(null!=s){const t=r||0;n=n.slice(t,s?t+s:n.length)}return Promise.resolve({result:n,count:a})}async distict(t){const e=this._list.map((e=>t(e)));return Promise.resolve(new Map(e.filter((t=>null!=t)).map((t=>[t.key,t.value]))))}async push(t){this._list.push(...t)}async clear(){this._list=[]}async delete(t){this._list=this._list.filter((e=>!t.includes(e)))}async update(t){this._list=this._list.map((e=>{const r=t.find((t=>this._equalsFunction(e,t)));return null==r?e:r}))}async insert(t,e){const r=this._list.indexOf(t);-1!=r?this._list=this._list.slice(0,r).concat(e).concat(this._list.slice(r)):this._list.push(...e)}isOperating(){return!0}async isEmpty(){return Promise.resolve(0===this._list.length)}async count(){return Promise.resolve(this._list.length)}}const p=/FILTRO_COLUNA_(.+)/;class g{static setLoadingStatus(t,e){this._loadingStatus.set(t.name,e)}static isCacheEnabled(t){return g.getResourceId(t.name)===this.applicationResourceID&&this.getRepository(t).isOperating()}static getResourceId(t){const e=I.parseDataUnitName(t);return null==e?void 0:e.resourceID}static cacheRecords(t,e,r,s){g.setLoadingStatus(t,s),g.isCacheEnabled(t)?this.getRepository(t).push(e):r&&this._repositories.delete(t.name)}static getSortingFunction(r,s){if(null!=s&&0!=s.length)return(n,a)=>{for(const i of s){const s=t.compare(r.getField(i.field),n,a,i.mode===e.ASC);if(0!=s)return s}}}static async getDistinct(t,e){return g.isCacheEnabled(t)?new Promise(((r,s)=>{g.getRepository(t).distict((r=>{const s=r[e];if(null==s)return;const n=null!=s.value?s.value:s;return{key:t.getFormattedValue(e,s),value:n}})).then((t=>r(t))).catch((t=>s(t)))})):Promise.resolve(void 0)}static async loadData(t,e,s){try{if(g.isCacheEnabled(t)){if(("EZ_GRID_LOADING_SOURCE"===e.source||e.source===r.CHANGING_PAGE_LOADING_SOURCE)&&!await g.getRepository(t).isEmpty())return g.loadFromCache(t,e);g.getRepository(t).clear().catch((()=>{}))}return s(t,e)}catch(t){return console.error(t),Promise.reject(t)}}static insertRecords(t,e,r){g.isCacheEnabled(t)&&g.getRepository(t).insert(e,r)}static updateRecords(t,e){g.isCacheEnabled(t)&&g.getRepository(t).update(e)}static removeRecords(t,e){g.isCacheEnabled(t)&&g.getRepository(t).delete(e)}static async countRecords(t){return g.isCacheEnabled(t)?g.getRepository(t).count():Promise.resolve(0)}static getRepository(t){const e=t.name;return g._repositories.has(e)||g._repositories.set(e,new _(((t,e)=>t.__record__id__===e.__record__id__))),g._repositories.get(e)}static getFilterFunction(t,e){if(null!=e&&e.length>0)return r=>{for(const s of e)if(!g.recordMatchesFilter(t,r,s))return!1;return!0}}static recordMatchesFilter(e,r,s){const n=r[s.columnName];for(let r of s.params){const a=e.valueFromString(s.columnName,r.value);if(0===t.compareValues(e.getField(s.columnName),n,a))return!0}return!1}static async loadFromCache(t,e){return new Promise(((r,s)=>{const n=g.getColumnFilters(e.filters),{limit:a,offset:i,sort:o}=e;g.getRepository(t).load(g.getFilterFunction(t,Array.from(n.values())),g.getSortingFunction(t,o),i,a).then((e=>{const s=g._loadingStatus.get(t.name),{count:n,result:o}=e,c=0==n?1:i+1,l=i+Math.min(o.length,a);r({records:o,paginationInfo:{count:n,currentPage:i/a,firstRecord:c,lastRecord:l,hasMore:s||l<n,total:s?void 0:n}})})).catch((t=>s(t)))}))}static getColumnFilters(t){const e=new Map;return null==t||0==t.length||t.forEach((t=>{const r=p.exec(t.name);r&&e.set(t.name,Object.assign({columnName:r[1]},t))})),e}}g._repositories=new Map,g._loadingStatus=new Map;class y{constructor(t,e){this.metadata=t,this.records=e,this._dataUnit=new r(y.IN_MEMORY_DATA_UNIT_NAME),this._dataUnit.metadataLoader=()=>this.metadaLoader(),this._dataUnit.dataLoader=(t,e)=>s(t,e,this.getRecordsToLoad()),this._dataUnit.saveLoader=(t,e)=>this.saveLoader(t,e),this._dataUnit.removeLoader=(t,e)=>this.removeLoader(t,e),this.dataUnit.loadMetadata().then((()=>this.dataUnit.loadData()))}getRecordsToLoad(){if(this._initialRecords)try{return this._initialRecords}finally{this._initialRecords=void 0}return this.dataUnit.records}get dataUnit(){return this._dataUnit}get records(){return this.dataUnit.records}static getConvertedValue(t,e){return t.dataType===n.BOOLEAN?"S"===e:t.dataType===n.NUMBER?Number(e):t.dataType===n.DATE?a.strToDate(e,!0):e}set records(t){const e=this._metadata?new Map(this._metadata.fields.map((t=>[t.name,t]))):void 0,r=null==t?void 0:t.map((t=>{if(t.__record__id__||(t.__record__id__=this.generateUniqueId()),null!=e)for(const r in t){const s=t[r];"string"==typeof s&&e.has(r)&&(t[r]=y.getConvertedValue(e.get(r),s))}return t}));this._dataUnit?this._dataUnit.records=r:this._initialRecords=r}get metadata(){return this._metadata}set metadata(t){this._metadata=t,this._dataUnit&&(this._dataUnit.metadata=this._metadata)}generateUniqueId(){return i.generateUUID()}metadaLoader(){return Promise.resolve(this._metadata)}saveLoader(t,e){return new Promise((t=>{let r=[];e.forEach((t=>{let{record:e,updatingFields:s,operation:n}=t;const a=Object.assign(Object.assign({},e),s);if(n===o.INSERT||n===o.COPY)a.__old__id__=e.__record__id__,a.__record__id__=this.generateUniqueId(),this.records.push(a);else{const t=this.records.findIndex((t=>t.__record__id__==a.__record__id__));this.records[t]=a}r.push(a)})),t(r)}))}removeLoader(t,e){return new Promise((t=>{t(e)}))}}y.IN_MEMORY_DATA_UNIT_NAME="InMemoryDataUnit";class b{canSlice(){return!1}async load(t,e,r){if(null==t.metadata)return Promise.resolve({records:[],loadingInfo:r});try{const s=this.getFieldsList(t),n="DatasetSP.loadRecords",a=this.buildRequestBody(n,s,t,e,r),{result:i,pagerID:o}=await u.get().callServiceBroker(n,a),c=this.processRecords(t,s,i),l=null!=o,d=r.count+c.length;return Promise.resolve({records:c,loadingInfo:Object.assign(Object.assign({},r),{pagerId:o,loadingInProgress:l,total:l?void 0:d,count:d})})}catch(t){return console.error(t),Promise.reject(t)}}getFieldsList(t){let e=["__record__id__","__record__label__"];return t.metadata.fields.forEach((t=>{e=e.concat(this.getFieldNames(t))})),e}getFieldNames(t){const e=this.getSearchDescriptionField(t);return null==e?t.name:[t.name,e]}buildRequestBody(t,e,r,s,n){const a=r.name,i={serviceName:t,requestBody:{dataSetID:r.dataUnitId,fields:e,entityName:I.parseDataUnitName(a).entityName,pageNumber:n.pageNumber,totalRecordsCount:n.count,pagerID:n.pagerId,standAlone:!1,standAloneFieldsMD:{__record__id__:{fieldType:"S",userType:"P"},__record__label__:{fieldType:"S",userType:"P"}},tryJoinedFields:!0,parallelLoader:!0,crudListener:"br.com.sankhya.modelcore.dataset.DataUnitDatasetAdapter",txProperties:this.getTxProperties(a,s),useDefaultRowsLimit:!1}};return JSON.stringify(i)}getTxProperties(t,e){const r={"__DATA_UNIT_ADAPTER__[dataUnitName]":t},s=e.filters.filter((t=>!t.name.startsWith("FILTRO_COLUNA_")));0!==s.length&&(r["__DATA_UNIT_ADAPTER__[criteria]"]=JSON.stringify(s));const n=e.sort;return null!=n&&0!==n.length&&(r["__DATA_UNIT_ADAPTER__[sorting]"]=JSON.stringify(n)),r}processRecords(t,e,r){return r.map((r=>{const s={__record__id__:r[0],__record__label__:r[1]};return t.metadata.fields.forEach((t=>{s[t.name]=this.buildFieldValue(t,e,r)})),s}))}buildFieldValue(t,e,r){const s=e.indexOf(t.name);if(s<0)return null;const n=r[s];if(i.isEmpty(n))return null;const a=this.getSearchDescriptionField(t);if(null!=a){const t=e.indexOf(a);if(t>=0)return{value:n,label:r[t]}}return t.userInterface===c.SEARCH?isNaN(Number(n))?n:Number(n):y.getConvertedValue(t,n)}getSearchDescriptionField(t){if(t.userInterface===c.SEARCH){const{ENTITYNAME:e,mergedFrom:r,DESCRIPTIONFIELD:s}=t.properties;if(!i.isEmpty(s))return null!=r?`${r}.${e}.${s}`:`${e}.${s}`}}}class v{static async debounce(t,e){const r=t.name;v._debouncingTimeouts[r]&&(clearTimeout(v._debouncingTimeouts[r]),delete v._debouncingTimeouts[r]),v._debouncingTimeouts[r]=setTimeout((()=>{delete v._debouncingTimeouts[r],e()}),100)}static async loadData(t,e){return new Promise(((r,s)=>{v.debounce(t,(()=>{g.loadData(t,e,this.loadFromServer).then((t=>r(t))).catch((t=>s(t)))}))}))}static async loadFromServer(t,e,r){try{r=v.registryLoading(t,r);const s=await v.callLoader(t,e,r);if(null==s)return;const n=s.records,a=v.buildPaginationInfo(n.length,e,s.loadingInfo),i=null==a?n:n.slice(0,a.lastRecord);return Promise.resolve({records:i,paginationInfo:a})}catch(t){return console.error(t),Promise.reject(t)}}static async callLoader(t,e,r,s){null==s&&(s=new b);const n=await s.load(t,e,r),{records:a,loadingInfo:i}=n;if(v.isOldRequest(t,i))return Promise.resolve(void 0);const o=!s.canSlice()||0===i.count;if(g.cacheRecords(t,a,o,i.loadingInProgress),g.isCacheEnabled(t)&&i.loadingInProgress){const r=Object.assign(Object.assign({},e),{offset:i.count}),n=Object.assign(Object.assign({},i),{pageNumber:(i.pageNumber||0)+1});this.callLoader(t,r,n,s).then((e=>v.afterLoadingPage(t,e.loadingInfo))).catch((t=>console.error(t)))}return Promise.resolve(n)}static afterLoadingPage(t,e){g.setLoadingStatus(t,e.loadingInProgress);const r=t.getPaginationInfo();if(null==r)return;const s=e.count;t.updatePagination(Object.assign(Object.assign({},r),e.loadingInProgress?{count:s}:{total:s,count:s}))}static registryLoading(t,e){return null==e&&(e={requestTime:(new Date).getTime(),count:0}),v._requestTimeByDataUnit.set(t.name,e.requestTime),e}static isOldRequest(t,e){return v._requestTimeByDataUnit.get(t.name)>e.requestTime}static buildPaginationInfo(t,e,r){let{limit:s,offset:n}=e;if(!s)return;1===r.pageNumber&&(n=0);const{total:a,count:i,loadingInProgress:o}=r,c=0===i?0:n+1,l=n+Math.min(t,s);return{total:a,count:i,lastRecord:l,firstRecord:c,currentPage:n/s,hasMore:l<i||o}}}v._requestTimeByDataUnit=new Map,v._debouncingTimeouts={};const D=/dd:\/\/([^/]+)\/([^/?]+)/;class I{constructor(){this.templateByQuery=new Map,this.buldTemplates()}buldTemplates(){this.templateByQuery.set("fetchDataUnit",d.gql`query($name: String!) {
|
2
|
-
$queryAlias$: fetchDataUnit(name: $name){
|
3
|
-
name
|
4
|
-
fields{
|
5
|
-
name
|
6
|
-
defaultValue
|
7
|
-
label
|
8
|
-
visible
|
9
|
-
readOnly
|
10
|
-
required
|
11
|
-
dataType
|
12
|
-
userInterface
|
13
|
-
calculated
|
14
|
-
group
|
15
|
-
order
|
16
|
-
properties{
|
17
|
-
name
|
18
|
-
value
|
19
|
-
}
|
20
|
-
dependencies{
|
21
|
-
masterFields
|
22
|
-
type
|
23
|
-
expression
|
24
|
-
}
|
25
|
-
}
|
26
|
-
children{
|
27
|
-
name
|
28
|
-
label
|
29
|
-
links{
|
30
|
-
source
|
31
|
-
target
|
32
|
-
}
|
33
|
-
}
|
34
|
-
}
|
35
|
-
}`),this.templateByQuery.set("saveData",d.gql`mutation($changes: [InputBatchChange!]!) {
|
36
|
-
$queryAlias$: batchOperationDataUnit(changes: $changes){
|
37
|
-
oldId
|
38
|
-
id
|
39
|
-
label
|
40
|
-
ownerDataUnitName
|
41
|
-
fields {
|
42
|
-
name
|
43
|
-
value
|
44
|
-
}
|
45
|
-
}
|
46
|
-
}`),this.templateByQuery.set("fetchDataRecord",d.gql`query($dataunit: String! $recordID: [String!]) {
|
47
|
-
$queryAlias$: fetchDataUnit(name: $dataunit){
|
48
|
-
record(id: $recordID){
|
49
|
-
id
|
50
|
-
label
|
51
|
-
fields {
|
52
|
-
name
|
53
|
-
value
|
54
|
-
}
|
55
|
-
}
|
56
|
-
}
|
57
|
-
}`),this.templateByQuery.set("fetchDistinctColumn",d.gql`query($dataUnit: String!, $fieldName: String!, $argument: String, $filters: [InputFilter], $parentRecordId: String) {
|
58
|
-
$queryAlias$: selectDistinct(dataUnit: $dataUnit, fieldName: $fieldName, argument: $argument, filters: $filters, parentRecordId: $parentRecordId)
|
59
|
-
}`)}static parseDataUnitName(t){if(null==t)return;const e=D.exec(t);return e?{entityName:e[1],resourceID:e[2]}:void 0}getDataUnit(t,e,s,n){null==g.applicationResourceID&&f.getResourceID().then((t=>g.applicationResourceID=t));const a=`dd://${t}/${e}${n?"/"+n:""}`,i=null!=s?s.getChildDataunit(a):new r(a);return i.metadataLoader=t=>this.loadMetadata(t),i.dataLoader=(t,e)=>v.loadData(t,e),i.saveLoader=(t,e)=>this.saveData(i,e),i.removeLoader=(t,e)=>this.removeRecords(t,e),i.recordLoader=(t,e)=>this.loadRecord(t,e),i}loadMetadata(t){return new Promise(((e,r)=>{u.get().callGraphQL({values:{name:t.name},query:this.templateByQuery.get("fetchDataUnit")}).then((t=>{var r;const s={name:t.name,label:t.name,children:[...t.children],fields:[]};null===(r=t.fields)||void 0===r||r.forEach((t=>{let e;Array.isArray(t.properties)&&(e={},t.calculated&&(e.gridHeaderTooltip="Campos calculados não podem ser ordenados"),t.properties.forEach((t=>e[t.name]=t.value))),s.fields.push(Object.assign(Object.assign({},t),{properties:e}))})),s.fields.sort(((t,e)=>t.order-e.order)),e(s)})).catch((t=>{r(t)}))}))}loadSelectDistinct(t,e,r){const{parentRecordId:s,filters:n}=t.getLastLoadRequest()||{},a=n.filter((t=>t.name!==`${h}${e}`)),i={dataUnit:t.name,argument:r,fieldName:e,parentRecordId:s,filters:a};return new Promise(((t,e)=>{u.get().callGraphQL({values:i,query:this.templateByQuery.get("fetchDistinctColumn")}).then((e=>{t(e)})).catch((t=>{e(t)}))}))}saveData(t,e){const r=[],s=[],a=e.map((e=>{const{dataUnit:a,record:i,updatingFields:c,operation:u}=e,d=l.get(a);let h;c&&(h=Object.entries(c).map((([t,e])=>{const r=d.getField(t);return{fieldName:t,dataType:r?r.dataType:n.TEXT,value:d.valueToString(t,e)}}))),a===t.name&&(u===o.INSERT||u===o.COPY?s.push(i.__record__id__):r.push(i.__record__id__));const m={dataUnit:a,fields:h,operation:u,recordId:i.__record__id__};return e.sourceId&&(m.sourceId=e.sourceId),i.__parent__record__id__&&(m.parentRecordId=i.__parent__record__id__),m}));return new Promise(((e,n)=>{const i=a.map((t=>function(t,e){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)e.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(r[s[n]]=t[s[n]])}return r}(t,[])));u.get().callGraphQL({values:{changes:i},query:this.templateByQuery.get("saveData")}).then((n=>{const a=[];null==n||n.forEach((e=>{const r={__record__id__:e.id,__record__label__:e.label,__owner__dataunit__name__:e.ownerDataUnitName},s=l.get(r.__owner__dataunit__name__)||t;e.oldId&&(r.__old__id__=e.oldId),e.fields.forEach((({name:t,value:e})=>{var n;r[t]=(null===(n=null==s?void 0:s.valueFromString)||void 0===n?void 0:n.call(s,t,e))||e})),a.push(r)})),this.updateCache(t,a,r,s),e(a)})).catch((t=>{n(t)}))}))}updateCache(t,e,r,s){const n=new Map(e.map((t=>[t.__old__id__||t.__record__id__,t]))),a=s.map((t=>{const e=Object.assign({},n.get(t));return delete e.__old__id__,e}));a.length>0&&g.insertRecords(t,t.records[0],a);const i=r.map((t=>Object.assign({},n.get(t))));g.updateRecords(t,i)}getTransientInfo(t,e){const{records:r}=t.getSelectionInfo();return Object.entries(r.filter((t=>t.__record__id__==e))[0]).filter((([t])=>t.startsWith(m.DATA_UNIT_TRANSIENT_PREFIX_NAME))).map((([t,e])=>({fieldName:t,value:e,dataType:n.TEXT})))}removeRecords(t,e){const r=e.map((e=>({dataUnit:t.name,operation:o.DELETE,recordId:e,fields:this.getTransientInfo(t,e)})));return new Promise(((s,n)=>{u.get().callGraphQL({values:{changes:r},query:this.templateByQuery.get("saveData")}).then((()=>{g.removeRecords(t,t.records.filter((t=>e.includes(t.__record__id__)))),s(e)})).catch((t=>{n(t)}))}))}loadRecord(t,e){return new Promise(((r,s)=>{u.get().callGraphQL({values:{recordID:e,dataunit:t.name},query:this.templateByQuery.get("fetchDataRecord")}).then((e=>{const s=[];e.record.forEach((e=>{const r={__record__id__:e.id,__record__label__:e.label};e.fields.forEach((({name:e,value:s})=>{r[e]=t.valueFromString(e,s)})),s.push(r)})),r(s)})).catch((t=>{s(t)}))}))}}export{I as D,y as I,g as P}
|