@sankhyalabs/sankhyablocks 8.8.0-rc.1 → 8.8.0-rc.10
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-908ce5bc.js} +2 -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-793ade39.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-2317c71e.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/workspace/workspace.js +7 -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-48648d45.js} +2 -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-3c15f319.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-3ba271c1.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-25882572.entry.js +1 -0
- package/dist/sankhyablocks/{p-910af03c.js → p-2b39abbc.js} +1 -1
- package/dist/sankhyablocks/{p-d563e451.entry.js → p-2ecd9a19.entry.js} +1 -1
- package/dist/sankhyablocks/p-3926383d.entry.js +1 -0
- package/dist/sankhyablocks/{p-68fbd480.entry.js → p-395567f3.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-57543969.js +1 -0
- package/dist/sankhyablocks/p-5f6113c8.js +60 -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-8015cbfb.js +1 -0
- package/dist/sankhyablocks/{p-e74e2153.entry.js → p-80692cbd.entry.js} +1 -1
- package/dist/sankhyablocks/p-a1cce4f5.entry.js +1 -0
- package/dist/sankhyablocks/{p-ebfa6460.entry.js → p-abff11ef.entry.js} +1 -1
- package/dist/sankhyablocks/{p-8652f90b.entry.js → p-afacdce6.entry.js} +1 -1
- package/dist/sankhyablocks/p-b86bee20.entry.js +11 -0
- package/dist/sankhyablocks/{p-5d51bff4.js → p-c9399ce6.js} +1 -1
- package/dist/sankhyablocks/p-d0b36421.js +1 -0
- package/dist/sankhyablocks/p-eb25c85f.entry.js +1 -0
- package/dist/sankhyablocks/p-f07a5363.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-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,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}
|