@sankhyalabs/sankhyablocks 8.8.0-dev.1 → 8.8.0-dev.3

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 (93) hide show
  1. package/dist/cjs/{ConfigStorage-a97ca159.js → ConfigStorage-bdb539ce.js} +2 -2
  2. package/dist/cjs/{DataFetcher-2a99283c.js → DataFetcher-016f1661.js} +30 -30
  3. package/dist/cjs/{SnkFormConfigManager-f641f502.js → SnkFormConfigManager-c9d38de1.js} +2 -2
  4. package/dist/cjs/{SnkMultiSelectionListDataSource-56db34ee.js → SnkMultiSelectionListDataSource-45893a0c.js} +1 -1
  5. package/dist/cjs/{auth-fetcher-78231356.js → auth-fetcher-73ee0989.js} +1 -1
  6. package/dist/cjs/{dataunit-fetcher-4f7d4ee7.js → dataunit-fetcher-2454608a.js} +37 -7
  7. package/dist/cjs/{form-config-fetcher-a322a522.js → form-config-fetcher-5e5ec5be.js} +1 -1
  8. package/dist/cjs/{pesquisa-fetcher-7ef61508.js → pesquisa-fetcher-63a8c652.js} +1 -1
  9. package/dist/cjs/snk-actions-button.cjs.entry.js +91 -86
  10. package/dist/cjs/snk-application.cjs.entry.js +6 -6
  11. package/dist/cjs/snk-attach.cjs.entry.js +2 -2
  12. package/dist/cjs/snk-crud.cjs.entry.js +5 -5
  13. package/dist/cjs/snk-data-exporter.cjs.entry.js +1 -1
  14. package/dist/cjs/snk-detail-view.cjs.entry.js +7 -7
  15. package/dist/cjs/snk-filter-bar.cjs.entry.js +3 -3
  16. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  17. package/dist/cjs/snk-form-config.cjs.entry.js +2 -2
  18. package/dist/cjs/snk-form.cjs.entry.js +4 -4
  19. package/dist/cjs/snk-grid-config.cjs.entry.js +3 -3
  20. package/dist/cjs/snk-grid.cjs.entry.js +5 -5
  21. package/dist/cjs/{snk-guides-viewer-aab80f66.js → snk-guides-viewer-018c1c8e.js} +5 -5
  22. package/dist/cjs/snk-guides-viewer.cjs.entry.js +7 -7
  23. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  24. package/dist/cjs/snk-simple-crud.cjs.entry.js +5 -5
  25. package/dist/collection/components/snk-actions-button/actions/executor/java.executor.js +2 -2
  26. package/dist/collection/components/snk-actions-button/actions/executor/javascript.executor.js +2 -2
  27. package/dist/collection/components/snk-actions-button/actions/executor/procedure.executor.js +2 -2
  28. package/dist/collection/components/snk-actions-button/clientEvent/index.js +81 -76
  29. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +31 -32
  30. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +1 -1
  31. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +22 -4
  32. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +11 -1
  33. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +2 -0
  34. package/dist/components/DataFetcher.js +30 -30
  35. package/dist/components/dataunit-fetcher.js +36 -6
  36. package/dist/components/snk-actions-button2.js +87 -82
  37. package/dist/esm/{ConfigStorage-26f89143.js → ConfigStorage-9840d004.js} +2 -2
  38. package/dist/esm/{DataFetcher-90e91631.js → DataFetcher-07935045.js} +30 -30
  39. package/dist/esm/{SnkFormConfigManager-18948123.js → SnkFormConfigManager-a7c4ac16.js} +2 -2
  40. package/dist/esm/{SnkMultiSelectionListDataSource-b9410c72.js → SnkMultiSelectionListDataSource-a0b69ac4.js} +1 -1
  41. package/dist/esm/{auth-fetcher-a8c8ee7e.js → auth-fetcher-1afab780.js} +1 -1
  42. package/dist/esm/{dataunit-fetcher-1c2ccae2.js → dataunit-fetcher-493182bc.js} +37 -7
  43. package/dist/esm/{form-config-fetcher-7c3b6273.js → form-config-fetcher-5b886892.js} +1 -1
  44. package/dist/esm/{pesquisa-fetcher-90d6853b.js → pesquisa-fetcher-7c46996d.js} +1 -1
  45. package/dist/esm/snk-actions-button.entry.js +91 -86
  46. package/dist/esm/snk-application.entry.js +6 -6
  47. package/dist/esm/snk-attach.entry.js +2 -2
  48. package/dist/esm/snk-crud.entry.js +5 -5
  49. package/dist/esm/snk-data-exporter.entry.js +1 -1
  50. package/dist/esm/snk-detail-view.entry.js +7 -7
  51. package/dist/esm/snk-filter-bar.entry.js +3 -3
  52. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  53. package/dist/esm/snk-form-config.entry.js +2 -2
  54. package/dist/esm/snk-form.entry.js +4 -4
  55. package/dist/esm/snk-grid-config.entry.js +3 -3
  56. package/dist/esm/snk-grid.entry.js +5 -5
  57. package/dist/esm/{snk-guides-viewer-62b0fa69.js → snk-guides-viewer-7c120bc6.js} +5 -5
  58. package/dist/esm/snk-guides-viewer.entry.js +7 -7
  59. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  60. package/dist/esm/snk-simple-crud.entry.js +5 -5
  61. package/dist/sankhyablocks/{p-d47bbee3.js → p-0f2b03e5.js} +1 -1
  62. package/dist/sankhyablocks/{p-d563e451.entry.js → p-1b985000.entry.js} +1 -1
  63. package/dist/sankhyablocks/{p-2c7c1323.entry.js → p-21d01a8c.entry.js} +1 -1
  64. package/dist/sankhyablocks/{p-5dd52ec5.entry.js → p-43f36d85.entry.js} +1 -1
  65. package/dist/sankhyablocks/{p-5d51bff4.js → p-4f7b9c50.js} +1 -1
  66. package/dist/sankhyablocks/{p-b481e5ad.js → p-53091bcd.js} +1 -1
  67. package/dist/sankhyablocks/{p-57550ddc.entry.js → p-54efcc8d.entry.js} +1 -1
  68. package/dist/sankhyablocks/{p-e74e2153.entry.js → p-562896d0.entry.js} +1 -1
  69. package/dist/sankhyablocks/{p-193971ad.js → p-7650d823.js} +1 -1
  70. package/dist/sankhyablocks/{p-b36053da.entry.js → p-8f7e0bbd.entry.js} +1 -1
  71. package/dist/sankhyablocks/{p-8652f90b.entry.js → p-9246d7df.entry.js} +1 -1
  72. package/dist/sankhyablocks/{p-19cbe6e2.entry.js → p-9256574e.entry.js} +2 -2
  73. package/dist/sankhyablocks/p-96dd0c41.js +1 -0
  74. package/dist/sankhyablocks/{p-ebfa6460.entry.js → p-afdb6ddc.entry.js} +1 -1
  75. package/dist/sankhyablocks/{p-910af03c.js → p-b19c272c.js} +1 -1
  76. package/dist/sankhyablocks/p-b9b7bfce.entry.js +1 -0
  77. package/dist/sankhyablocks/p-bdfcc2e2.js +59 -0
  78. package/dist/sankhyablocks/{p-acb1374c.entry.js → p-db45a464.entry.js} +1 -1
  79. package/dist/sankhyablocks/p-de1196c8.js +1 -0
  80. package/dist/sankhyablocks/{p-68fbd480.entry.js → p-de9eb242.entry.js} +1 -1
  81. package/dist/sankhyablocks/{p-d56b65e3.entry.js → p-e13c3fbc.entry.js} +1 -1
  82. package/dist/sankhyablocks/p-e33b308f.entry.js +1 -0
  83. package/dist/sankhyablocks/{p-240f5892.js → p-efb2e247.js} +1 -1
  84. package/dist/sankhyablocks/{p-e473ca13.entry.js → p-f34b9087.entry.js} +1 -1
  85. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  86. package/dist/types/components/snk-actions-button/clientEvent/index.d.ts +1 -1
  87. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +5 -2
  88. package/package.json +1 -1
  89. package/dist/sankhyablocks/p-3253e7f2.entry.js +0 -1
  90. package/dist/sankhyablocks/p-6541f0df.js +0 -1
  91. package/dist/sankhyablocks/p-992a9d0f.js +0 -1
  92. package/dist/sankhyablocks/p-d264da22.entry.js +0 -1
  93. package/dist/sankhyablocks/p-e86d4a53.js +0 -59
@@ -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}