@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-56414.2 → 0.0.0-bugfix-dev-KB-55400.0

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.
Files changed (90) hide show
  1. package/dist/cjs/{IExporterProvider-91e8acd9.js → IExporterProvider-8687eea9.js} +1 -1
  2. package/dist/cjs/{SnkFormConfigManager-4259edbe.js → SnkFormConfigManager-df34d678.js} +2 -2
  3. package/dist/cjs/{SnkMessageBuilder-66aa2557.js → SnkMessageBuilder-9b3c2a2d.js} +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{pesquisa-fetcher-d15951b1.js → pesquisa-fetcher-610c2d29.js} +6 -11
  6. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  7. package/dist/cjs/snk-actions-button_4.cjs.entry.js +2 -1
  8. package/dist/cjs/snk-application.cjs.entry.js +3 -2
  9. package/dist/cjs/snk-attach.cjs.entry.js +22 -12
  10. package/dist/cjs/snk-crud.cjs.entry.js +2 -1
  11. package/dist/cjs/snk-data-exporter.cjs.entry.js +4 -3
  12. package/dist/cjs/{snk-data-unit-7798c5c4.js → snk-data-unit-63589ae8.js} +81 -23
  13. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-detail-view.cjs.entry.js +5 -4
  15. package/dist/cjs/snk-filter-bar.cjs.entry.js +0 -5
  16. package/dist/cjs/snk-form.cjs.entry.js +1 -1
  17. package/dist/cjs/snk-grid.cjs.entry.js +3 -2
  18. package/dist/cjs/{snk-guides-viewer-eee0b978.js → snk-guides-viewer-bef9ca55.js} +2 -2
  19. package/dist/cjs/snk-guides-viewer.cjs.entry.js +4 -3
  20. package/dist/cjs/snk-simple-crud.cjs.entry.js +13 -4
  21. package/dist/collection/components/snk-attach/snk-attach.js +20 -11
  22. package/dist/collection/components/snk-data-unit/snk-data-unit.js +100 -23
  23. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +0 -5
  24. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +2 -2
  25. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +9 -1
  26. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +3 -12
  27. package/dist/collection/lib/message/SnkMessageBuilder.js +21 -21
  28. package/dist/components/SnkFormConfigManager.js +2 -2
  29. package/dist/components/SnkMessageBuilder.js +1 -1
  30. package/dist/components/dataunit-fetcher.js +3 -12
  31. package/dist/components/snk-attach2.js +20 -11
  32. package/dist/components/snk-data-unit2.js +82 -23
  33. package/dist/components/snk-filter-bar2.js +0 -5
  34. package/dist/components/snk-simple-crud2.js +9 -1
  35. package/dist/esm/{IExporterProvider-c3bd60f3.js → IExporterProvider-0af5ebd3.js} +1 -1
  36. package/dist/esm/{SnkFormConfigManager-a87ade7a.js → SnkFormConfigManager-02e9bdcd.js} +2 -2
  37. package/dist/esm/{SnkMessageBuilder-0a4becdd.js → SnkMessageBuilder-a26aa279.js} +1 -1
  38. package/dist/esm/loader.js +1 -1
  39. package/dist/esm/{pesquisa-fetcher-9e18940f.js → pesquisa-fetcher-253715e4.js} +3 -12
  40. package/dist/esm/sankhyablocks.js +1 -1
  41. package/dist/esm/snk-actions-button_4.entry.js +2 -1
  42. package/dist/esm/snk-application.entry.js +3 -2
  43. package/dist/esm/snk-attach.entry.js +22 -12
  44. package/dist/esm/snk-crud.entry.js +2 -1
  45. package/dist/esm/snk-data-exporter.entry.js +4 -3
  46. package/dist/esm/{snk-data-unit-592a8ed3.js → snk-data-unit-0252289c.js} +82 -24
  47. package/dist/esm/snk-data-unit.entry.js +2 -2
  48. package/dist/esm/snk-detail-view.entry.js +5 -4
  49. package/dist/esm/snk-filter-bar.entry.js +0 -5
  50. package/dist/esm/snk-form.entry.js +1 -1
  51. package/dist/esm/snk-grid.entry.js +3 -2
  52. package/dist/esm/{snk-guides-viewer-4fd4e25a.js → snk-guides-viewer-96253964.js} +2 -2
  53. package/dist/esm/snk-guides-viewer.entry.js +4 -3
  54. package/dist/esm/snk-simple-crud.entry.js +13 -4
  55. package/dist/sankhyablocks/p-41c05011.js +1 -0
  56. package/dist/sankhyablocks/{p-65b6dba3.entry.js → p-4a16dc22.entry.js} +1 -1
  57. package/dist/sankhyablocks/p-4d10e705.entry.js +1 -0
  58. package/dist/sankhyablocks/p-5447a6a6.entry.js +1 -0
  59. package/dist/sankhyablocks/p-5e7fa584.entry.js +1 -0
  60. package/dist/sankhyablocks/p-61984566.entry.js +1 -0
  61. package/dist/sankhyablocks/p-674e142a.js +1 -0
  62. package/dist/sankhyablocks/p-69bf12f9.js +65 -0
  63. package/dist/sankhyablocks/p-74eed0fd.entry.js +1 -0
  64. package/dist/sankhyablocks/p-79bae662.entry.js +1 -0
  65. package/dist/sankhyablocks/p-89b544c9.entry.js +1 -0
  66. package/dist/sankhyablocks/{p-9b94aaa9.js → p-93b9da9b.js} +1 -1
  67. package/dist/sankhyablocks/{p-52ec26b8.entry.js → p-accfaecf.entry.js} +3 -3
  68. package/dist/sankhyablocks/p-ad73e9d7.entry.js +1 -0
  69. package/dist/sankhyablocks/{p-32556aa6.js → p-bc51e7ca.js} +1 -1
  70. package/dist/sankhyablocks/{p-e0649a17.js → p-e8bbd578.js} +1 -1
  71. package/dist/sankhyablocks/{p-388d00f5.entry.js → p-ea89c934.entry.js} +1 -1
  72. package/dist/sankhyablocks/p-ecfa87e8.entry.js +1 -0
  73. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  74. package/dist/types/components/snk-attach/snk-attach.d.ts +1 -0
  75. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +16 -1
  76. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +1 -0
  77. package/dist/types/components.d.ts +4 -0
  78. package/package.json +1 -1
  79. package/dist/sankhyablocks/p-07d324ba.entry.js +0 -1
  80. package/dist/sankhyablocks/p-0e8702f0.js +0 -1
  81. package/dist/sankhyablocks/p-1e5dffbf.js +0 -1
  82. package/dist/sankhyablocks/p-2345687c.entry.js +0 -1
  83. package/dist/sankhyablocks/p-3de247d1.entry.js +0 -1
  84. package/dist/sankhyablocks/p-595e7068.entry.js +0 -1
  85. package/dist/sankhyablocks/p-775253f7.entry.js +0 -1
  86. package/dist/sankhyablocks/p-7d6897ec.entry.js +0 -1
  87. package/dist/sankhyablocks/p-81abd586.entry.js +0 -1
  88. package/dist/sankhyablocks/p-8fadeb65.entry.js +0 -1
  89. package/dist/sankhyablocks/p-ac2fc78d.entry.js +0 -1
  90. package/dist/sankhyablocks/p-f678bffa.js +0 -65
@@ -1 +0,0 @@
1
- import{r as t,c as e,h as i,H as r,g as s}from"./p-d2d301a6.js";import{DataType as a,StringUtils as n,ObjectUtils as l,ElementIDUtils as o,ErrorException as d,ApplicationContext as h}from"@sankhyalabs/core";import{EzScrollDirection as c}from"@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection";import{C as f}from"./p-e27496ed.js";import{toString as m}from"@sankhyalabs/core/dist/dataunit/metadata/DataType";import{F as u}from"./p-ff1990ad.js";import{F as p}from"./p-933c0c0b.js";import{F as b}from"./p-fa80e546.js";import{ApplicationUtils as v}from"@sankhyalabs/ezui/dist/collection/utils";import{P as k}from"./p-057fad05.js";import"./p-536eeb16.js";import"./p-8d884fab.js";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";function g(t){let e="";return t.forEach(((t,i)=>{var r;e+=` ${i>0?null!==(r=t.operand)&&void 0!==r?r:"OR":""} ${t.expression}`})),e.trim()}class _{constructor({filterConfig:t,configName:e,onComplete:i,getMessage:r,disablePersonalizedFilter:s,onAddPersonalizedFilter:a,onEditPersonalizedFilter:n,onDeletePersonalizedFilter:l}){this._filterConfig=t,this._configName=e,this._onComplete=i,this._getMessage=r,this._disablePersonalizedFilter=s,this._addPersonalizedFilterFn=a,this._editPersonalizedFilterFn=n,this._onDeletePersonalizedFilter=l}applyFilters(t){this._onComplete(t),this._closeModal()}buildFilterModal(){const t=document.createElement("snk-filter-modal");return t.className="ez-size-height--full",t.filters=this._filterConfig,t.configName=this._configName,t.disablePersonalizedFilter=this._disablePersonalizedFilter,t.getMessage=this._getMessage.bind(this),t.applyFilters=this.applyFilters.bind(this),t.closeModal=()=>this._closeModal(),t.addPersonalizedFilter=()=>this._addPersonalizedFilterFn(),t.editPersonalizedFilter=t=>this._editPersonalizedFilterFn(t),t.deletePersonalizedFilter=(t,e)=>this._onDeletePersonalizedFilter(t,e),t}async showModal(){const t={content:this.buildFilterModal(),position:"left",heightMode:"full",closeOutsideClick:!1,useScrimLight:!0};this._closeModal=await v.showModal(t)}async closeModal(){this._closeModal()}}const x=class{constructor(i){t(this,i),this.configUpdated=e(this,"configUpdated",7),this._updateSequence=[],this._loadingPending=!1,this._configUpdated=!1,this._firstLoad=!0,this._pendingVariables=!1,this._customfiltersToBeUpdated=[],this._calculateSortIndex=t=>{let e=t.hardFixed?1e6:0;return t.hardFixed||(e+=t.fixed?1e5:0,e+=null==t.value?0:1e4,e+=this._updateSequence.lastIndexOf(t.id)+1),e},this._filtersComparator=(t,e)=>this._calculateSortIndex(e)-this._calculateSortIndex(t),this.dataUnit=void 0,this.title=void 0,this.configName=void 0,this.resourceID=void 0,this.mode="regular",this.filterConfig=void 0,this.messagesBuilder=void 0,this.disablePersonalizedFilter=void 0,this.filterBarLegacyConfigName=void 0,this.allowDefault=void 0,this.scrollerLocked=!1,this.showPersonalizedFilter=!1,this.personalizedFilterId=void 0}observeFilterConfig(t,e){l.equals(t,e)||this.handleFilterConfigsChanged(e,t)}handleFilterConfigsChanged(t,e){if(void 0===t&&e&&1===e.length&&"PERSONALIZED_FILTER_GROUP"===e[0].id&&0===e[0].groupedItems.length)this.configUpdated.emit(e);else{if(null!=t&&null==e)this._loadingPending=!0,this._configUpdated=!0;else{const i=new Map(t?t.map((t=>[t.id,t])):void 0);0===i.size&&e.length>0?(this._loadingPending=!0,this._configUpdated=!1):e.forEach((t=>{const e=i.get(t.id);if(null!=e){if(this._configUpdated=this._configUpdated||l.objectToString(e)!=l.objectToString(t),this._loadingPending=this._loadingPending||l.objectToString(e.value)!==l.objectToString(t.value),!this._loadingPending){const i=l.objectToString(e.groupedItems)!=l.objectToString(t.groupedItems);this._configUpdated=this._configUpdated||i,this._loadingPending=this._loadingPending||i}}else this._configUpdated=!0,this._loadingPending=this._loadingPending||null!=t.value}))}(this._loadingPending||this._configUpdated)&&this.configUpdated.emit(e),this.processAfterUpdateConfig()}}async reload(){this.loadConfigFromStorage(!0)}async getFilterItem(t){const e=this.filterConfig.find((e=>e.id===t));return Promise.resolve(l.copy(e))}async updateFilterItem(t){return-1==this.filterConfig.findIndex((e=>e.id===t.id))?(console.warn("[SnkFilterBar.updateFilterItem] FilterItem não encontrado, o mesmo não será atualizado."),Promise.resolve()):(this._loadingPending=!0,this.updateFilter(t),Promise.resolve())}async addFilterItem(t){return this.filterConfig.findIndex((e=>e.id===t.id))>-1?(console.warn("[SnkFilterBar.addFilterItem] FilterItem já existe , o mesmo não será adicionado novamente."),Promise.resolve()):(this.filterConfig.push(t),this._loadingPending=!0,this.updateFilter(t),Promise.resolve())}async removeFilterItem(t){const e=this.filterConfig.findIndex((e=>e.id===t));if(-1==e)return console.warn("[SnkFilterBar.removeFilterItem] FilterItem não encontrado"),Promise.resolve(void 0);const i=this.filterConfig[e];return this.filterConfig=this.filterConfig.filter((e=>e.id!==t)),Promise.resolve(i)}componentDidLoad(){this._element&&o.addIDInfo(this._element,null,{dataUnit:this.dataUnit})}processPendingFilter(){if(this._pendingVariables){const t=this._element.querySelector("#filter-PERSONALIZED_FILTER_GROUP");t&&t.showUp(!0).then((()=>{this.processAfterUpdateConfig()}))}else this.processAfterUpdateConfig()}getPersonalizedFilterItem(){return this.filterConfig.find((t=>t.type===u.PERSONALIZED))}async processAfterUpdateConfig(){if(this._loadingPending){if(await this._application.isLoadedByPk()&&!this._configUpdated)return;const t=this.getPersonalizedFilterItem();if(this._pendingVariables=!k.validateVariableValues(t),this._pendingVariables)return;this._loadingPending=!1,this.doLoadData(null!=this.dataUnit.getLastLoadRequest())}this._configUpdated&&(this._configUpdated=!1,f.saveFilterBarConfig(this.filterConfig,this.configName,this.resourceID))}async doLoadData(t=!1){try{if(this._firstLoad&&!t&&!await this._application.getBooleanParam("global.carregar.registros.iniciar.tela"))return;this.dataUnit.loadData(void 0,void 0,!0)}finally{this._firstLoad=!1}}getMessage(t,e,i){var r;return null==this.messagesBuilder&&this._application&&(this.messagesBuilder=this._application.messagesBuilder),(null===(r=this.messagesBuilder)||void 0===r?void 0:r.getMessage(t,e))||i}getFilter(t){var e;const i=[];return null===(e=this.filterConfig)||void 0===e||e.filter((t=>this.isActiveFilter(t))).forEach((t=>{const e=(t=>{switch(t.type){case u.DEFAULT_FILTER:return function(t){return{name:t.id,expression:t.props.expression,params:[]}}(t);case u.BINARY_SELECT:return function(t){const{id:e,value:i,props:r}=t;return{name:e,expression:r.options.find((t=>t.name===i)).expression,params:[]}}(t);case u.MULTI_SELECT:return function(t){const{id:e,value:i,props:r}=t;return{name:e,expression:r.expression,params:[{name:e,dataType:a.TEXT,value:i}]}}(t);case u.MULTI_LIST:return function(t){const{id:e,value:i,props:r}=t,s=(null!==(o=null!==(l=null==(n=i)?void 0:n.elements)&&void 0!==l?l:null==n?void 0:n.members)&&void 0!==o?o:n).filter((t=>null==t?void 0:t.check)).map((({id:t})=>Number.isNaN(+t)?String(t):Number(t)));var n,l,o;if(s.length>0)return{name:e,expression:r.expression,params:[{name:e,dataType:a.TEXT,value:JSON.stringify(s)}]}}(t);case u.PERIOD:return function(t){const{id:e,value:i,props:r}=t;let{end:s,start:n}=i;"string"==typeof s&&(s=new Date(s)),"string"==typeof n&&(n=new Date(n));const l=[];let o;return s&&n?(o=r.expression.fullfill,l.push({name:`${e}.START`,dataType:a.DATE,value:m(a.DATE,n)},{name:`${e}.END`,dataType:a.DATE,value:m(a.DATE,s)})):n?(o=r.expression.onlystart,l.push({name:e,dataType:a.DATE,value:m(a.DATE,n)})):(o=r.expression.onlyend,l.push({name:e,dataType:a.DATE,value:m(a.DATE,s)})),{name:e,expression:o,params:l}}(t);case u.SEARCH:return function(t){const{id:e,value:i,props:r}=t;return{name:e,expression:r.expression,params:[{name:e,dataType:a.TEXT,value:m(a.TEXT,i.value)}]}}(t);case u.TEXT:return function(t){let{id:e,value:i,props:r}=t;const s=r.expression;var l,o;return n.isEmpty(r.likeAs)||(l=i,i="CONTANIS"===(o=r.likeAs)?`%${l}%`:"STARTS_WITH"===o?`${l}%`:"ENDS_WITH"===o?`%${l}`:l),{name:e,expression:s,params:[{name:e,dataType:a.TEXT,value:m(a.TEXT,i)}]}}(t);case u.NUMBER:return function(t){const{id:e,value:i,props:r}=t;if(r.variation===b.INTERVAL){const{start:t,end:s}=null!=i?i:{start:0,end:0};if(t&&s)return{name:e,expression:r.intervalExpression.fullfill,params:[{name:`${e}.START`,dataType:a.NUMBER,value:m(a.NUMBER,t)},{name:`${e}.END`,dataType:a.NUMBER,value:m(a.NUMBER,s)}]};if(t)return{name:e,expression:r.intervalExpression.onlystart,params:[{name:e,dataType:a.NUMBER,value:m(a.NUMBER,t)}]};if(s)return{name:e,expression:r.intervalExpression.onlyend,params:[{name:e,dataType:a.NUMBER,value:m(a.NUMBER,s)}]}}return{name:e,expression:r.expression,params:[{name:e,dataType:a.NUMBER,value:m(a.NUMBER,i)}]}}(t);case u.PERSONALIZED:return function(t){const{id:e,groupedItems:i=[]}=t,r=i.filter((t=>!!t.visible)).map((t=>{var e;const i=t.props.expression,r=((null===(e=t.props.personalizedFilter)||void 0===e?void 0:e.parameters)||[]).map(((e,i)=>{const r=Array.from(t.value||0),s=e.dataType;let n=i>=0&&i<r.length?r[i]:null;return null!=n&&"object"==typeof n&&"value"in n&&(n=n.value),null==n&&s===a.BOOLEAN&&(n=!1),{name:e.name,dataType:s,value:"string"==typeof n?n:m(s,n)}}));return{expression:i,name:t.id,params:r}}));return{name:e,expression:r.map((t=>`(${t.expression})`)).join(` ${p.AND} `),params:r.flatMap((t=>t.params))}}(t);case u.CHECK_BOX_LIST:return function(t){var e;const{id:i,value:r,props:s}=t,a=Object.entries(null!=r?r:{}).filter((([t,e])=>!0===e)).map((([t,e])=>t));return{name:i,expression:g(null===(e=s.options)||void 0===e?void 0:e.filter((t=>a.includes(t.name)))),params:[]}}(t);default:return}})(t);e&&i.push(e)})),i}isActiveFilter(t){return t.type===u.DEFAULT_FILTER||this.filterActiveFilter(t)&&(t.groupedItems||null!=t.value)}registryFilterProvider(){this.dataUnit.addFilterProvider(this),this.filterConfig&&this.doLoadData()}itemFocused(t){this._element.querySelectorAll("snk-filter-item,snk-filter-list").forEach((e=>{e.id===t?"snk-filter-item"===e.tagName.toLowerCase()&&e.getClientRects()[0].x<0&&e.scrollIntoView({behavior:"auto",inline:"nearest"}):e.hideDetail()}))}filterActiveFilter(t){return t.visible||t.removalBlocked}filterPersonalizedItems(t){return t.type===u.PERSONALIZED}getPersonalizedFilterVariableItems(){return this.filterConfig.filter(this.filterPersonalizedItems).map((t=>{const e=`filter-${t.id}`;return i("snk-filter-item",{key:t.id,id:e,config:Object.assign({},t),onFocusin:()=>this.itemFocused(e),onVisibleChanged:t=>this.scrollerLocked=t.detail,onFilterChange:t=>this.updateFilter(t.detail),getMessage:(t,e)=>this.getMessage(t,e),showChips:!1})}))}getFilterItems(){const t=[],e=[];this.filterConfig.filter(this.filterActiveFilter).forEach(((r,s)=>{const a=`filter-${(r=l.copy(r)).id}`,n=i("snk-filter-item",{onVisibleChanged:t=>this.scrollerLocked=t.detail,onFilterChange:t=>this.updateFilter(t.detail),onFocusin:()=>this.itemFocused(a),id:a,config:r,class:s>0?"ez-padding-left--medium":"",getMessage:(t,e)=>this.getMessage(t,e),key:r.id});return r.fixed||r.hardFixed?t.push(n):e.push(n),n}));const r=[];return r.push(...t),t.length>0&&e.length>0&&r.push(i("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-filter-bar__divider"})),r.push(...e),r}calculateUpdateSequence(t){t&&(this._updateSequence=this._updateSequence.filter((e=>t.id!==e)),this._updateSequence.push(t.id))}normalizeItem(t){const e=Object.assign({},t);return["props","value","hardFixed","fixed"].forEach((t=>{null==e[t]&&delete e[t]})),""===t.value&&delete t.value,e}updateFilter(t){this.filterConfig=this.filterConfig.map((e=>(t=this.normalizeItem(t),e.id===t.id?(l.objectToString(e)!=l.objectToString(t)&&this.calculateUpdateSequence(t),t):e))).sort(((t,e)=>this._filtersComparator(t,e)))}loadPermitions(){this._application.isUserSup().then((t=>this.allowDefault=t))}addFilterBarLegacyConfigName(){this.filterBarLegacyConfigName&&this.configName&&f.addFilterBarLegacyConfig(this.configName,this.filterBarLegacyConfigName)}async loadConfigFromStorage(t){return t&&await f.deleteFilterBarConfigCache(this.configName,this.resourceID),new Promise((t=>{f.loadFilterBarConfig(this.configName,this.resourceID,{contextURI:this.dataUnit.name}).then((e=>{t(),this.filterConfig=e.map((t=>this.normalizeItem(t)))})).catch((t=>{throw new d(this.getMessage("snkFilterBar.failToLoadConfig"),t)}))}))}attachDataUnit(){if(null==this.dataUnit){let t=this._element.parentElement;for(;t;)if("SNK-DATA-UNIT"===t.tagName.toUpperCase()){const e=t;this.dataUnit=e.dataUnit,this.dataUnit?this.registryFilterProvider():e.addEventListener("dataUnitReady",(t=>{this.dataUnit=t.detail,this.registryFilterProvider()}));break}t=t.parentElement}else this.registryFilterProvider()}filterChangeListener(t){this.updateFilter(t.detail)}async showFilterModal(){let t=l.copy(this.filterConfig);t=t.sort(((t,e)=>t.originOrder-e.originOrder)),this._filterModalFactory=new _({filterConfig:t,configName:this.configName,onComplete:t=>{this.filterConfig=t.map(this.normalizeItem).sort(((t,e)=>this._filtersComparator(t,e)))},disablePersonalizedFilter:this.disablePersonalizedFilter,getMessage:(t,e)=>this.getMessage(t,e),onAddPersonalizedFilter:()=>this.addPersonalizedFilter(),onEditPersonalizedFilter:t=>this.editPersonalizedFilter(t),onDeletePersonalizedFilter:(t,e)=>this.deletePersonalizedFilter(t,u.PERSONALIZED,e)}),await this._filterModalFactory.showModal()}addPersonalizedFilter(){this._filterModalFactory.closeModal(),this.personalizedFilterId=void 0,this.showPersonalizedFilter=!0,window.requestAnimationFrame((()=>{this._elPersonalizedFilter.createPersonalizedFilter()}))}editPersonalizedFilter(t){this._filterModalFactory.closeModal(),this.showPersonalizedFilter=!0,this.personalizedFilterId=t}deletePersonalizedFilter(t,e,i){e===u.PERSONALIZED&&f.removePersonalizedFilter(t,this.resourceID,i)}handleHidePersonalizedFilter(t){t?this.loadConfigFromStorage().then((()=>{this.hidePersonalizedFilter()})):this.hidePersonalizedFilter()}hidePersonalizedFilter(){this.personalizedFilterId=void 0,this.showPersonalizedFilter=!1}componentWillLoad(){this._application=h.getContextValue("__SNK__APPLICATION__"),this._application&&(this.loadPermitions(),this.addFilterBarLegacyConfigName(),this.loadConfigFromStorage()),this.attachDataUnit()}componentDidRender(){this.processPendingFilter()}render(){if(this.dataUnit&&this.filterConfig&&0!==this.filterConfig.length)return this.showPersonalizedFilter?i("snk-personalized-filter",{class:"filter-bar__personalized-filter",filterId:this.personalizedFilterId,ref:t=>this._elPersonalizedFilter=t,onEzCancel:()=>this.handleHidePersonalizedFilter(!1),onEzAfterSave:()=>this.handleHidePersonalizedFilter(!0),entityUri:this.dataUnit.name,configName:this.configName,resourceID:this.resourceID}):"regular"!==this.mode?i(r,{"data-mode":this.mode},this.getPersonalizedFilterVariableItems(),"button"===this.mode&&i("ez-button",{class:"ez-margin-left--medium",size:"small",label:this.getMessage("snkFilterBar.filters",void 0,"Filtros"),onClick:this.showFilterModal.bind(this)})):i(r,null,i("div",null,i("span",{class:"snk-filter-bar__title",title:this.title,"data-tooltip":this.title,"data-flow":"bottom"},this.title)),i("ez-scroller",{class:"snk-filter-bar__scroller",direction:c.HORIZONTAL,activeShadow:!0,locked:this.scrollerLocked},i("section",{class:"snk-filter-bar__filter-item-container"},this.getFilterItems())),i("ez-button",{class:"ez-padding-left--medium",size:"small",label:this.getMessage("snkFilterBar.filters",void 0,"Filtros"),onClick:this.showFilterModal.bind(this)},i("ez-icon",{slot:"leftIcon",iconName:"plus",class:"ez-padding-right--small"})))}get _element(){return s(this)}static get watchers(){return{filterConfig:["observeFilterConfig"]}}};x.style='.sc-snk-filter-bar-h{display:grid;grid-template-columns:1fr minmax(100px, 100%) 1fr 1fr;--snk-personalized-filter--z-index:var(--elevation--20, 20);--snk-personalized-filter--background-color:var(--background--xlight, #fff)}.snk-filter-bar__title.sc-snk-filter-bar{max-width:260px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:16px;font-family:var(--font-pattern, Arial);font-weight:var(--text-weight--large, 600);color:var(--color--title-primary, #2B3A54);margin-top:8px}[data-mode="hidden"].sc-snk-filter-bar-h{width:0px;height:0px}[data-mode="button"].sc-snk-filter-bar-h{grid-template-columns:1fr;width:fit-content}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.filter-bar__personalized-filter.sc-snk-filter-bar{display:flex;flex-direction:column;position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;z-index:var(--snk-personalized-filter--z-index);background-color:var(--snk-personalized-filter--background-color)}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;background-color:var(--background--xlight, #fff);border-radius:var(--border--radius-medium, 12px);box-shadow:var(--shadow, 0px 0px 16px 0px #000)}.snk-filter-item__editor-header.sc-snk-filter-bar{flex-grow:1;font-weight:var(--text-weight--medium, 400);color:var(--color--title-primary, #2B3A54)}.snk-filter__popover-rule.sc-snk-filter-bar{border-style:solid;border-color:var(--color--disable-secondary, #F2F5F8);border-radius:1px;border-width:1px;width:100%}.editor__ez-check.sc-snk-filter-bar{--ez-check__label--padding-left:0}.snk-filter-item__editor-header-button.sc-snk-filter-bar{cursor:pointer;background-color:transparent;border:none;padding:3px;outline-color:var(--color--primary)}.snk-filter-bar__divider.sc-snk-filter-bar{margin-bottom:var(--space--small)}.snk-filter-bar__scroller.sc-snk-filter-bar{height:calc(100% + var(--space-extra-small, 3px))}.snk-filter-bar__filter-item-container.sc-snk-filter-bar{display:flex;align-self:center}.snk-filter-bar__scroller.sc-snk-filter-bar .sc-snk-filter-bar:first-child{margin-left:var(--space-extra-small, 3px)}.snk-filter-bar__filter-list-items-container.sc-snk-filter-bar{overflow-y:auto;max-height:360px;margin-top:var(--space--small, 6px)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar{cursor:pointer;border-radius:var(--border--radius-small, 6px);border:none;background-color:transparent}.snk-filter-bar__filter-list-item__label.sc-snk-filter-bar{color:var(--title--primary)}.snk-filter-bar__filter-list-item__label--secondary.sc-snk-filter-bar{color:var(--text--primary)}.snk-filter-bar__filter-list-item__icon.sc-snk-filter-bar{--ez-icon--color:var(--title--primary)}.snk-filter-bar__filter-list-item__icon--secondary.sc-snk-filter-bar{--ez-icon--color:var(--text--secondary)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:focus-visible{outline:none;background-color:var(--background--medium)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:hover{background-color:var(--background--medium)}.snk-filter-bar__filter-list-items-container--empty.sc-snk-filter-bar{width:100%;height:100px;display:flex;justify-content:center;align-self:center;align-items:center}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar{position:relative}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar::after{display:flex;position:absolute;content:"";width:8px;height:8px;top:7px;left:17px;background-color:var(--icon--alert--color, #008561);border-radius:50%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar{--modal-item-border-width:2px;display:flex;flex-direction:row;margin-left:var(--modal-item-border-width);border-radius:var(--border--radius-medium, 12px);background-color:var(--background--medium, #f0f3f7);border:none;width:100%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar:focus-visible{outline:var(--color--primary) solid var(--modal-item-border-width)}.snk-filter-bar__filter-modal-item__check.sc-snk-filter-bar{width:auto}.snk-filter-bar__filter-modal-item__label.sc-snk-filter-bar{font-weight:var(--text-weight--medium)}.snk-filter-bar__filter-modal-content.sc-snk-filter-bar{display:grid;grid-template-rows:auto auto 1fr auto;width:99%;height:100%}';export{x as snk_filter_bar}
@@ -1 +0,0 @@
1
- export{S as snk_data_unit}from"./p-1e5dffbf.js";import"./p-d2d301a6.js";import"@sankhyalabs/core";import"@sankhyalabs/ezui/dist/collection/utils";import"./p-32556aa6.js";import"./p-9863d682.js";
@@ -1,65 +0,0 @@
1
- import{ObjectUtils as t,FieldComparator as e,SortMode as r,DataUnit as n,DataType as i,DateUtils as s,StringUtils as a,ChangeOperation as o,ApplicationContext as l,UserInterface as c,DataUnitStorage as u}from"@sankhyalabs/core";import{D as d,d as h}from"./p-536eeb16.js";import{DISTINCT_FILTER_NAME_PREFIX as m}from"@sankhyalabs/ezui/dist/collection/utils/constants";import{DataUnitTransient as f}from"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import{ColumnFilterManager as p}from"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";import{R as _}from"./p-688dcb4c.js";class g{constructor(t){this._list=[],this._equalsFunction=t}async load(t,e,r,n){let i=[].concat(this._list);null!=t&&(i=this._list.filter((e=>t(e)))),null!=e&&(i=i.sort(e));const s=i.length;if(null!=n){const t=r||0;i=i.slice(t,n?t+n:i.length)}return Promise.resolve({result:i,count:s})}async distict(t){const e=[];let r=!1;for(const n of this._list){const i=t(n);null!=i&&(null!=i.value?e.push(i):r=!0)}return r&&e.push({key:"",value:null}),Promise.resolve(new Map(e.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=>{for(const r of t)if(this._equalsFunction(e,r))return!1;return!0}))}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)}getFromCache(){return t.copy(this._list)}}class v{static setLoadingStatus(t,e){this._loadingStatus.set(t.name,e)}static isCacheEnabled(t){return!0}static cacheRecords(t,e,r,n){v.setLoadingStatus(t,n),v.isCacheEnabled(t)?this.getRepository(t).push(e):r&&this._repositories.delete(t.name)}static getSortingFunction(t,n){if(null!=n&&0!=n.length)return(i,s)=>{for(const a of n){const n=e.compare(t.getField(a.field),i,s,a.mode===r.ASC);if(0!=n)return n}}}static async getDistinct(t,e){if(!v.isCacheEnabled(t))return Promise.resolve(p.compileDistinct(e,t));let r;const n=t.getLastLoadRequest();if(null!=n){const i=p.getColumnFilters(n.filters,e);r=p.getFilterFunction(t,Array.from(i.values()))}return new Promise(((n,i)=>{v.getRepository(t).distict((n=>{if(null!=r&&!r(n))return;const i=n[e];if(null==i)return{key:null,value:null};const s=null!=i.value?i.value:i;return{key:t.getFormattedValue(e,i),value:s}})).then((t=>{n(null!=t?Array.from(t.entries()).map((([t,e])=>({label:t,value:e,check:!0}))):void 0)})).catch((t=>i(t)))}))}static async loadData(t,e,r){try{if(v.isCacheEnabled(t)){if(["EZ_GRID_LOADING_SOURCE",n.CHANGING_PAGE_LOADING_SOURCE,n.ALL_RECORDS_SELECTION_SOURCE].includes(e.source)&&!await v.getRepository(t).isEmpty())return v.loadFromCache(t,e);v.getRepository(t).clear().catch((()=>{}))}return r(t,e)}catch(t){return console.error(t),Promise.reject(t)}}static insertRecords(t,e,r){v.isCacheEnabled(t)&&v.getRepository(t).insert(e,r)}static updateRecords(t,e){v.isCacheEnabled(t)&&v.getRepository(t).update(e)}static removeRecords(t,e){v.isCacheEnabled(t)&&v.getRepository(t).delete(e)}static async countRecords(t){return v.isCacheEnabled(t)?v.getRepository(t).count():Promise.resolve(0)}static getRepository(t){const e=t.name;return v._repositories.has(e)||v._repositories.set(e,new g(((t,e)=>t.__record__id__===e.__record__id__))),v._repositories.get(e)}static async loadFromCache(t,e){return new Promise(((r,n)=>{const i=p.getColumnFilters(e.filters,""),{limit:s,offset:a,sort:o}=e;v.getRepository(t).load(p.getFilterFunction(t,Array.from(i.values())),v.getSortingFunction(t,o),a,s).then((e=>{const n=v._loadingStatus.get(t.name),{count:i,result:o}=e,l=0==i?0:a+1,c=a+Math.min(o.length,s);r({records:o,paginationInfo:{count:i,currentPage:a/s,firstRecord:l,lastRecord:c,hasMore:n||c<i,total:n?void 0:i}})})).catch((t=>n(t)))}))}static getCachedRecords(t){return v.getRepository(t).getFromCache()}}function y(t,e,r){const n=p.getColumnFilters(r,"");if(!(null==n?void 0:n.size))return t;const i=p.getFilterFunction(e,Array.from(n.values()));return null==i?t:t.filter(i)}function b(t,e,r){if(null==r||0==r.length)return t;const n=v.getSortingFunction(e,r);return null==n?t:t.sort(n)}function O(t,e=0,r=0){const n=Math.min(e+r,null==t?void 0:t.length);return{currentPage:0===r?0:Math.ceil(e/r),firstRecord:e,lastRecord:n,total:null==t?void 0:t.length,hasMore:!!((null==t?void 0:t.length)-n)}}v._repositories=new Map,v._loadingStatus=new Map;class P{constructor(t,e){this.metadata=t,this.records=e,this._dataUnit=new n(P.IN_MEMORY_DATA_UNIT_NAME),this._dataUnit.metadataLoader=()=>this.metadaLoader(),this._dataUnit.dataLoader=(t,e)=>this.inMemoryLoader(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(){null==this._initialRecords&&this.dataUnit.records.length>0&&(this._initialRecords=this.dataUnit.records);const t=this.dataUnit.getAddedRecords();return t?[...this._initialRecords,...t]:this._initialRecords}get dataUnit(){return this._dataUnit}get records(){return this.dataUnit.records}static getConvertedValue(t,e){return t.dataType===i.BOOLEAN?"S"===e:t.dataType===i.NUMBER?Number(e):t.dataType===i.DATE?s.strToDate(e,!0):t.dataType===i.OBJECT?JSON.parse(e):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 n=t[r];"string"==typeof n&&e.has(r)&&(t[r]=P.getConvertedValue(e.get(r),n))}return t}));this._initialRecords=r,this._dataUnit&&this._dataUnit.loadData()}get metadata(){return this._metadata}set metadata(t){this._metadata=t,this._dataUnit&&(this._dataUnit.metadata=this._metadata)}generateUniqueId(){return a.generateUUID()}inMemoryLoader(t,e,r){let n=y(r,t,e.filters);return n=b(n,t,e.sort),Promise.resolve({records:n,paginationInfo:O(n,e.offset,e.limit)})}metadaLoader(){return Promise.resolve(this._metadata)}saveLoader(t,e){return new Promise((t=>{let r=[];e.forEach((t=>{let{record:e,updatingFields:n,operation:i}=t;const s=Object.assign(Object.assign({},e),n);if(i===o.INSERT||i===o.COPY)s.__old__id__=e.__record__id__,s.__record__id__=this.generateUniqueId(),this.records.push(s);else{const t=this.records.findIndex((t=>t.__record__id__==s.__record__id__));this.records[t]=s}r.push(s)})),t(r)}))}removeLoader(t,e){return new Promise((t=>{t(e)}))}}P.IN_MEMORY_DATA_UNIT_NAME="InMemoryDataUnit";class ${canSlice(){return!1}processSortingSide(t,e,r){const n=[],i=[];if(null!=t.sort){if(0===r.length)return{localSorting:t.sort,serverSorting:[]};for(const r of t.sort){const t=e.getField(r.field);null!=t&&null!=t.properties&&"true"===t.properties.calculated?n.push(r):i.push(r)}}return{localSorting:n,serverSorting:i}}async load(t,e,r){var n,i;if(null==t.metadata)return Promise.resolve({records:[],loadingInfo:r});try{const s=null!==(i=null===(n=e.filters)||void 0===n?void 0:n.filter((t=>!t.name.startsWith("FILTRO_COLUNA_"))))&&void 0!==i?i:[],{localSorting:a,serverSorting:o}=this.processSortingSide(e,t,s),l=this.getFieldsList(t),c="DatasetSP.loadRecords",u=this.buildRequestBody(c,l,t,e,r,o,s),h=r.quiet?{urlParams:{quietMode:"true"}}:void 0,{result:m,pagerID:f}=await d.get().callServiceBroker(c,u,h),p=this.processRecords(t,l,m),_=null!=f,g=r.count+p.length,v=!_&&a.length>0;return Promise.resolve({records:p,loadingInfo:Object.assign(Object.assign({},r),{pagerId:f,loadingInProgress:_,total:_?void 0:g,count:g,needReload:v})})}catch(t){return console.error(t),Promise.reject(t)}}getFieldsList(t){let e=["__record__id__","__record__label__"];return t.metadata.fields.forEach((t=>{t.standAlone||(e=e.concat(this.getFieldNames(t)))})),e}getStandAloneFieldsList(t){let e={};return t.metadata.fields.forEach((t=>{t.standAlone&&(e=Object.assign(Object.assign({},e),{[t.name]:{fieldType:t.dataType,userType:t.userInterface}}))})),e}getFieldNames(t){const e=this.getSearchDescriptionField(t);return null==e?t.name:[t.name,e]}buildRequestBody(t,e,r,n,i,s,a){const o=r.dataUnitId,l=I.parseDataUnitName(r.name).entityName,c=!(!n.limit&&!n.offset),u={serviceName:t,requestBody:{dataSetID:o,fields:e,entityName:l,pageNumber:i.pageNumber,totalRecordsCount:i.count,pagerID:i.pagerId,standAlone:!1,standAloneFieldsMD:Object.assign({__record__id__:{fieldType:"S",userType:"P"},__record__label__:{fieldType:"S",userType:"P"}},this.getStandAloneFieldsList(r)),tryJoinedFields:!0,parallelLoader:c,crudListener:`br.com.sankhya.bff.${this.getModuleName()}.BFFDataUnitDatasetAdapter`,txProperties:this.getTxProperties(r,n,s,a),useDefaultRowsLimit:!1}};return JSON.stringify(u)}getModuleName(){return l.getContextValue("__SNK__APPLICATION__").getModuleName().replace("-bff","")}getTxProperties(t,e,r,n){const i={"__DATA_UNIT_ADAPTER__[dataUnitName]":t.name};0!==n.length&&(i["__DATA_UNIT_ADAPTER__[criteria]"]=JSON.stringify(n)),null!=r&&0!==r.length&&(i["__DATA_UNIT_ADAPTER__[sorting]"]=JSON.stringify(r)),null!=e.parentRecordId&&(i["__DATA_UNIT_ADAPTER__[parentRecordId]"]=e.parentRecordId);const s=t.getGlobalLoaderProps();return null==s||0===s.size||Array.from(s.entries()).forEach((([t,e])=>{i[t]=e})),i}processRecords(t,e,r){return r.map((r=>{const n={__record__id__:r[0],__record__label__:r[1]};return t.metadata.fields.forEach((t=>{n[t.name]=this.buildFieldValue(t,e,r)})),n}))}buildFieldValue(t,e,r){const n=e.indexOf(t.name);if(n<0)return null;const i=r[n];if(a.isEmpty(i))return null;const s=this.getSearchDescriptionField(t);if(null!=s){const t=e.indexOf(s);if(t>=0)return{value:i,label:r[t]}}return t.userInterface===c.SEARCH?isNaN(Number(i))?i:Number(i):P.getConvertedValue(t,i)}getSearchDescriptionField(t){if(t.userInterface===c.SEARCH){const{ENTITYNAME:e,mergedFrom:r,DESCRIPTIONFIELD:n}=t.properties;if(!a.isEmpty(n))return null!=r?`${r}.${e}.${n}`:`${e}.${n}`}}}class S{static async debounce(t,e){const r=t.name;S._debouncingTimeouts[r]&&(clearTimeout(S._debouncingTimeouts[r]),delete S._debouncingTimeouts[r]),S._debouncingTimeouts[r]=setTimeout((()=>{delete S._debouncingTimeouts[r],e()}),100)}static async loadData(t,e){return new Promise(((r,n)=>{S.debounce(t,(()=>{v.loadData(t,e,this.loadFromServer).then((t=>r(t))).catch((t=>n(t)))}))}))}static getCachedRecords(t){return v.getCachedRecords(t)}static async loadFromServer(t,e,r){try{r=S.registryLoading(t,r);const n=await S.callLoader(t,e,r);if(null==n)return;const i=n.records,s=S.buildPaginationInfo(i.length,e,n.loadingInfo),a=null==s?i:i.slice(0,s.lastRecord);return Promise.resolve({records:a,paginationInfo:s})}catch(t){return console.error(t),Promise.reject(t)}}static async callLoader(t,e,r,n){null==n&&(n=new $);const i=await n.load(t,e,r),{records:s,loadingInfo:a}=i;if(S.isOldRequest(t,a))return Promise.resolve(void 0);const o=!n.canSlice()||0===a.count;if(v.cacheRecords(t,s,o,a.loadingInProgress),v.isCacheEnabled(t)&&a.loadingInProgress){const r=Object.assign(Object.assign({},e),{offset:a.count}),i=Object.assign(Object.assign({},a),{pageNumber:(a.pageNumber||0)+1,quiet:!0});this.callLoader(t,r,i,n).then((e=>S.afterLoadingPage(t,e.loadingInfo))).catch((t=>console.error(t)))}return Promise.resolve(i)}static afterLoadingPage(t,e){v.setLoadingStatus(t,e.loadingInProgress);const r=t.getPaginationInfo();if(null==r)return;const n=e.count;e.loadingInProgress?t.updatePagination(Object.assign(Object.assign({},r),{count:n})):e.needReload?t.gotoPage(0):t.updatePagination(Object.assign(Object.assign({},r),{total:n,count:n}))}static registryLoading(t,e){return null==e&&(e={requestTime:(new Date).getTime(),count:0}),S._requestTimeByDataUnit.set(t.name,e.requestTime),e}static isOldRequest(t,e){return S._requestTimeByDataUnit.get(t.name)>e.requestTime}static buildPaginationInfo(t,e,r){let{limit:n,offset:i}=e;if(!n)return;1===r.pageNumber&&(i=0);const{total:s,count:a,loadingInProgress:o}=r,l=0===a||0===t?0:i+1,c=i+Math.min(t,n);return{total:s,count:a,lastRecord:c,firstRecord:l,currentPage:i/n,hasMore:c<a||o}}}S._requestTimeByDataUnit=new Map,S._debouncingTimeouts={};const N=/dd:\/\/([^/]+)\/([^/?]+)/;class I{constructor(){this.templateByQuery=new Map,this.buldTemplates()}buldTemplates(){this.templateByQuery.set("fetchDataUnit",h.gql`query($name: String!) {
2
- $queryAlias$: fetchDataUnit(name: $name){
3
- name
4
- fields{
5
- name
6
- defaultValue
7
- label
8
- visible
9
- standAlone
10
- readOnly
11
- required
12
- dataType
13
- userInterface
14
- calculated
15
- group
16
- order
17
- properties{
18
- name
19
- value
20
- }
21
- dependencies{
22
- masterFields
23
- type
24
- expression
25
- }
26
- }
27
- children{
28
- name
29
- label
30
- links{
31
- source
32
- target
33
- }
34
- }
35
- }
36
- }`),this.templateByQuery.set("saveData",h.gql`mutation($changes: [InputBatchChange!]!) {
37
- $queryAlias$: batchOperationDataUnit(changes: $changes){
38
- oldId
39
- id
40
- label
41
- ownerDataUnitName
42
- fields {
43
- name
44
- value
45
- }
46
- }
47
- }`),this.templateByQuery.set("fetchDataRecord",h.gql`query($dataunit: String! $recordID: [String!]) {
48
- $queryAlias$: fetchDataUnit(name: $dataunit){
49
- record(id: $recordID){
50
- id
51
- label
52
- fields {
53
- name
54
- value
55
- }
56
- }
57
- }
58
- }`),this.templateByQuery.set("fetchDistinctColumn",h.gql`query($dataUnit: String!, $fieldName: String!, $argument: String, $filters: [InputFilter], $parentRecordId: String) {
59
- $queryAlias$: selectDistinct(dataUnit: $dataUnit, fieldName: $fieldName, argument: $argument, filters: $filters, parentRecordId: $parentRecordId)
60
- }`)}static parseDataUnitName(t){if(null==t)return;const e=N.exec(t);return e?{entityName:e[1],resourceID:e[2]}:void 0}getDataUnit(t,e,r,i){null==v.applicationResourceID&&_.getResourceID().then((t=>v.applicationResourceID=t));const s=`dd://${t}/${e}${i?"/"+i:""}`,a=null!=r?r.getChildDataunit(s):new n(s);return a.metadataLoader=t=>this.loadMetadata(t),a.dataLoader=(t,e)=>S.loadData(t,e),a.saveLoader=(t,e)=>this.saveData(a,e),a.removeLoader=(t,e)=>this.removeRecords(t,e),a.recordLoader=(t,e)=>this.loadRecord(t,e),a.allRecordsLoader=t=>S.getCachedRecords(t),a}loadMetadata(t){return new Promise(((e,r)=>{d.get().callGraphQL({values:{name:t.name},query:this.templateByQuery.get("fetchDataUnit")}).then((t=>{var r;const n={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))),n.fields.push(Object.assign(Object.assign({},t),{properties:e}))})),n.fields.sort(((t,e)=>t.order-e.order)),e(n)})).catch((t=>{r(t)}))}))}loadSelectDistinct(t,e,r){const{parentRecordId:n,filters:i}=t.getLastLoadRequest()||{},s=i.filter((t=>t.name!==`${m}${e}`)),a={dataUnit:t.name,argument:r,fieldName:e,parentRecordId:n,filters:s};return new Promise(((t,e)=>{d.get().callGraphQL({values:a,query:this.templateByQuery.get("fetchDistinctColumn")}).then((e=>{t(e)})).catch((t=>{e(t)}))}))}addTransientProperties(t,e){const r=t.getGlobalLoaderProps();return null==r||0===r.size||(null==e&&(e={}),Array.from(r.entries()).forEach((([t,r])=>{e[`transient.${t}`]=r}))),e}getUpdatingFields(t,e){if(null==e)return;const r=Object.assign({},e);return Object.keys(r).forEach((e=>{const n=t.getField(e);null!=n&&n.standAlone&&delete r[e]})),this.addTransientProperties(t,r)}saveData(t,e){const r=[],n=[],s=e.map((e=>{const{dataUnit:s,record:a,operation:l}=e,c=u.get(s),d=this.getUpdatingFields(c,e.updatingFields);let h;null!=d&&(h=Object.entries(d).map((([t,e])=>{const r=c.getField(t);return{fieldName:t,dataType:r?r.dataType:i.TEXT,value:c.valueToString(t,e)}}))),s===t.name&&(l===o.INSERT||l===o.COPY?n.push(a.__record__id__):r.push(a.__record__id__));const m={dataUnit:s,fields:h,operation:l,recordId:a.__record__id__};return e.sourceId&&(m.sourceId=e.sourceId),a.__parent__record__id__&&(m.parentRecordId=a.__parent__record__id__),m}));return new Promise(((e,i)=>{const a=s.map((t=>function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]])}return r}(t,[])));d.get().callGraphQL({values:{changes:a},query:this.templateByQuery.get("saveData")}).then((i=>{const s=[];null==i||i.forEach((e=>{const r={__record__id__:e.id,__record__label__:e.label,__owner__dataunit__name__:e.ownerDataUnitName},n=u.get(r.__owner__dataunit__name__)||t;e.oldId&&(r.__old__id__=e.oldId),e.fields.forEach((({name:t,value:e})=>{var i;const s=null===(i=null==n?void 0:n.valueFromString)||void 0===i?void 0:i.call(n,t,e);r[t]=void 0!==s?s:e})),s.push(r)})),this.updateCache(t,s,r,n),e(s)})).catch((t=>{i(t)}))}))}updateCache(t,e,r,n){const i=new Map(e.map((t=>[t.__old__id__||t.__record__id__,t]))),s=n.map((t=>{const e=Object.assign({},i.get(t));return delete e.__old__id__,e}));s.length>0&&v.insertRecords(t,t.records[0],s);const a=r.map((t=>Object.assign({},i.get(t))));v.updateRecords(t,a)}getTransientInfo(t,e){const{records:r}=t.getSelectionInfo();return Object.entries(r.filter((t=>t.__record__id__==e))[0]).filter((([t])=>t.startsWith(f.DATA_UNIT_TRANSIENT_PREFIX_NAME))).map((([t,e])=>({fieldName:t,value:e,dataType:i.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(((n,i)=>{d.get().callGraphQL({values:{changes:r},query:this.templateByQuery.get("saveData")}).then((()=>{v.removeRecords(t,t.records.filter((t=>e.includes(t.__record__id__)))),n(e)})).catch((t=>{i(t)}))}))}loadRecord(t,e){return new Promise(((r,n)=>{d.get().callGraphQL({values:{recordID:e,dataunit:t.name},query:this.templateByQuery.get("fetchDataRecord")}).then((e=>{const n=[];e.record.forEach((e=>{const r={__record__id__:e.id,__record__label__:e.label};e.fields.forEach((({name:e,value:n})=>{r[e]=t.valueFromString(e,n)})),n.push(r)})),r(n)})).catch((t=>{n(t)}))}))}}class D{constructor(){this._defaultPageSize=100,this._templateByQuery=new Map,this._searchListenersByDataUnit=new Map,this.buldTemplates()}buldTemplates(){this._templateByQuery.set("search",h.gql`query($entityName: String! $argument: String $criteria: InputSearchCriteria $options: InputSearchOptions) {
61
- $queryAlias$: search(entityName: $entityName argument: $argument criteria: $criteria options: $options){
62
- value
63
- label
64
- }
65
- }`)}loadSearchOptions(t,e,r,n){var s;const a=(null==e?void 0:e.toString().trim())||void 0;e=isNaN(Number(a))&&a?`%${a}`:a,null==r||r.params.forEach((t=>{t.dataType===i.OBJECT&&(t.value=JSON.stringify(t.value))}));const o=this.applySearchListener(R.beforeSearch,t,e,r,n),l={argument:(null==o?void 0:o.argument)||e,entityName:t,criteria:(null==o?void 0:o.criteria)||r,options:(null==o?void 0:o.searchOptions)||n};return l.options&&(null===(s=l.options)||void 0===s||delete s.dataUnitId),new Promise(((t,e)=>{d.get().callGraphQL({values:l,query:this._templateByQuery.get("search")}).then((e=>{t(e)})).catch((t=>{e(t)}))}))}loadAdvancedSearch(t,e,r,n){var s,a,o,c;const u=this.applySearchListener(R.beforeSearch,t,e,r,n),h={argument:(null==u?void 0:u.argument)||e,criteria:(null==u?void 0:u.criteria)||r,searchOptions:(null==u?void 0:u.searchOptions)||n},m={query:{$:null===(s=h.criteria)||void 0===s?void 0:s.expression}};(null===(o=null===(a=h.criteria)||void 0===a?void 0:a.params)||void 0===o?void 0:o.length)>0&&(m.params={param:h.criteria.params.map((t=>{let e=t.value;if("string"==typeof e){const t=/CTX\{([^}]+)\}/.exec(e);t&&(e=l.getContextValue(`__SNK__APPLICATION__FILTER__CONTEXT(${t[1]})__`))}let r=t.dataType;return r===i.OBJECT?(e=e.value,r="S"):r=function(t){switch(t){case i.NUMBER:return"I";case i.DATE:return"D";default:return"S"}}(t.dataType),{$:e,type:r}}))});const f=null!=n?Object.assign(Object.assign({},n),{pkFieldName:n.codeFieldName,label:n.descriptionFieldName,fieldName:n.codeFieldName,useDescriptionOptions:!1,enableRowsCounter:!0}):void 0,p={serviceName:"PesquisaSP.getSuggestion",requestBody:{criteria:Object.assign({entityName:t,compacted:!1,ignoreEntityCriteria:!1,limit:this._defaultPageSize,query:{$:h.argument},orderByDesc:!1,externalCriteria:m,localEntityName:null===(c=h.searchOptions)||void 0===c?void 0:c.rootEntity},{options:f}),clientEventList:{clientEvent:[]}}};return new Promise(((t,e)=>{d.get().callServiceBroker("PesquisaSP.getSuggestion",JSON.stringify(p)).then((e=>t(e))).catch((t=>e(t)))}))}addSearchListener(t,e,r){var n;const i=this._searchListenersByDataUnit.get(e)||[],s=i.find((e=>e.entity===t));if(s){for(const t of Object.keys(r))if(t in s.listener){if((null===(n=s.listener[t])||void 0===n?void 0:n.toString())===r[t].toString())continue;s.listener[t]=r[t]}}else this._searchListenersByDataUnit.set(e,[...i,{entity:t,listener:r}]);return()=>{const r=i.filter((e=>e.entity!==t));r.length?this._searchListenersByDataUnit.set(e,r):this._searchListenersByDataUnit.delete(e)}}applySearchListener(t,e,r,n,i){var s;const a=null==i?void 0:i.dataUnitId;if(!a)return;const o=null===(s=this._searchListenersByDataUnit.get(a))||void 0===s?void 0:s.find((({entity:t})=>t===e));if(!o)return;const{listener:l}=o;return t in l?l[t]({argument:r,criteria:n,searchOptions:i}):void 0}}var R;!function(t){t.beforeSearch="beforeSearch"}(R||(R={}));export{I as D,P as I,D as P,v as a,y as b,b as c,O as d}