@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-53946.2 → 0.0.0-bugfix-dev-KB-56414.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.
- package/dist/cjs/{ConfigStorage-085c7117.js → ConfigStorage-7df9d3bb.js} +1 -1
- package/dist/cjs/{IExporterProvider-195ad53d.js → IExporterProvider-91e8acd9.js} +2 -2
- package/dist/cjs/{SnkFormConfigManager-8986431f.js → SnkFormConfigManager-4259edbe.js} +2 -2
- package/dist/cjs/{auth-fetcher-eddaf17f.js → auth-fetcher-e6112be7.js} +1 -1
- package/dist/cjs/{form-config-fetcher-cdd644a7.js → form-config-fetcher-3c4daeb5.js} +2 -1
- package/dist/cjs/{pesquisa-fetcher-0c2e5913.js → pesquisa-fetcher-d15951b1.js} +12 -7
- package/dist/cjs/snk-actions-button_4.cjs.entry.js +3 -4
- package/dist/cjs/snk-application.cjs.entry.js +4 -5
- package/dist/cjs/snk-attach.cjs.entry.js +3 -4
- package/dist/cjs/snk-crud.cjs.entry.js +3 -4
- package/dist/cjs/snk-data-exporter.cjs.entry.js +2 -3
- package/dist/cjs/snk-detail-view.cjs.entry.js +5 -6
- package/dist/cjs/snk-filter-bar.cjs.entry.js +7 -2
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +2 -2
- package/dist/cjs/snk-form-config.cjs.entry.js +1 -1
- package/dist/cjs/snk-form.cjs.entry.js +3 -3
- package/dist/cjs/snk-grid.cjs.entry.js +4 -5
- package/dist/cjs/{snk-guides-viewer-7061ca14.js → snk-guides-viewer-eee0b978.js} +3 -3
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +5 -6
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +2 -2
- package/dist/cjs/snk-simple-crud.cjs.entry.js +5 -6
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +5 -0
- package/dist/collection/lib/http/data-fetcher/DataFetcher.js +2 -1
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +12 -3
- package/dist/components/dataunit-fetcher.js +12 -3
- package/dist/components/form-config-fetcher.js +2 -1
- package/dist/components/snk-filter-bar2.js +5 -0
- package/dist/esm/{ConfigStorage-cc3f3dd3.js → ConfigStorage-928c3bf4.js} +1 -1
- package/dist/esm/{IExporterProvider-abf571cf.js → IExporterProvider-c3bd60f3.js} +2 -2
- package/dist/esm/{SnkFormConfigManager-7edda7eb.js → SnkFormConfigManager-a87ade7a.js} +2 -2
- package/dist/esm/{auth-fetcher-11dd9cae.js → auth-fetcher-e1cb288f.js} +1 -1
- package/dist/esm/{form-config-fetcher-13cd3285.js → form-config-fetcher-e3094014.js} +2 -1
- package/dist/esm/{pesquisa-fetcher-6e15945b.js → pesquisa-fetcher-9e18940f.js} +13 -4
- package/dist/esm/snk-actions-button_4.entry.js +3 -4
- package/dist/esm/snk-application.entry.js +4 -5
- package/dist/esm/snk-attach.entry.js +3 -4
- package/dist/esm/snk-crud.entry.js +3 -4
- package/dist/esm/snk-data-exporter.entry.js +2 -3
- package/dist/esm/snk-detail-view.entry.js +5 -6
- package/dist/esm/snk-filter-bar.entry.js +7 -2
- package/dist/esm/snk-filter-modal-item.entry.js +2 -2
- package/dist/esm/snk-form-config.entry.js +1 -1
- package/dist/esm/snk-form.entry.js +3 -3
- package/dist/esm/snk-grid.entry.js +4 -5
- package/dist/esm/{snk-guides-viewer-8029363d.js → snk-guides-viewer-4fd4e25a.js} +3 -3
- package/dist/esm/snk-guides-viewer.entry.js +5 -6
- package/dist/esm/snk-personalized-filter.entry.js +2 -2
- package/dist/esm/snk-simple-crud.entry.js +5 -6
- package/dist/sankhyablocks/p-029bfc09.js +1 -0
- package/dist/sankhyablocks/p-07d324ba.entry.js +1 -0
- package/dist/sankhyablocks/{p-d24c9dc6.js → p-0e8702f0.js} +1 -1
- package/dist/sankhyablocks/{p-edd9dd1c.entry.js → p-13ea113d.entry.js} +1 -1
- package/dist/sankhyablocks/{p-9ee96756.entry.js → p-314e2d1a.entry.js} +1 -1
- package/dist/sankhyablocks/p-388d00f5.entry.js +1 -0
- package/dist/sankhyablocks/p-3de247d1.entry.js +1 -0
- package/dist/sankhyablocks/{p-cdd6f62a.entry.js → p-52ec26b8.entry.js} +1 -1
- package/dist/sankhyablocks/{p-33a6728e.js → p-536eeb16.js} +1 -1
- package/dist/sankhyablocks/p-56f95797.entry.js +1 -0
- package/dist/sankhyablocks/p-595e7068.entry.js +1 -0
- package/dist/sankhyablocks/{p-c2f3ebf3.entry.js → p-65b6dba3.entry.js} +1 -1
- package/dist/sankhyablocks/p-775253f7.entry.js +1 -0
- package/dist/sankhyablocks/p-7d6897ec.entry.js +1 -0
- package/dist/sankhyablocks/p-81abd586.entry.js +1 -0
- package/dist/sankhyablocks/p-8fadeb65.entry.js +1 -0
- package/dist/sankhyablocks/{p-f23f6dcb.js → p-9b94aaa9.js} +1 -1
- package/dist/sankhyablocks/{p-1d9d07b4.entry.js → p-b86ea293.entry.js} +1 -1
- package/dist/sankhyablocks/{p-b76b0ed3.js → p-e0649a17.js} +1 -1
- package/dist/sankhyablocks/{p-8a4c4b54.js → p-e27496ed.js} +1 -1
- package/dist/sankhyablocks/p-f678bffa.js +65 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/package.json +1 -1
- package/dist/sankhyablocks/p-0df62c04.entry.js +0 -1
- package/dist/sankhyablocks/p-31a82214.entry.js +0 -1
- package/dist/sankhyablocks/p-31c92889.entry.js +0 -1
- package/dist/sankhyablocks/p-50b8697b.entry.js +0 -1
- package/dist/sankhyablocks/p-5ffcfbb5.entry.js +0 -1
- package/dist/sankhyablocks/p-98297a52.entry.js +0 -1
- package/dist/sankhyablocks/p-99b51d06.js +0 -1
- package/dist/sankhyablocks/p-a4c94582.entry.js +0 -1
- package/dist/sankhyablocks/p-c629f714.entry.js +0 -1
- package/dist/sankhyablocks/p-cb76d738.entry.js +0 -1
- package/dist/sankhyablocks/p-edfc9393.js +0 -65
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import{ObjectUtils as t,DataUnit as e,DataType as r,DateUtils as n,StringUtils as i,ChangeOperation as s,ApplicationContext as a,UserInterface as o,DataUnitStorage as l}from"@sankhyalabs/core";import{D as c,d as u}from"./p-33a6728e.js";import{DISTINCT_FILTER_NAME_PREFIX as d}from"@sankhyalabs/ezui/dist/collection/utils/constants";import{DataUnitTransient as h}from"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import{ColumnFilterManager as m}from"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";import f from"@sankhyalabs/core/dist/utils/SortingUtils";import{R as p}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 _{static setLoadingStatus(t,e){this._loadingStatus.set(t.name,e)}static isCacheEnabled(t){return!0}static cacheRecords(t,e,r,n){_.setLoadingStatus(t,n),_.isCacheEnabled(t)?this.getRepository(t).push(e):r&&this._repositories.delete(t.name)}static getSortingFunction(t,e){return f.getSortingFunction(t,e)}static async getDistinct(t,e){if(!_.isCacheEnabled(t))return Promise.resolve(m.compileDistinct(e,t));let r;const n=t.getLastLoadRequest();if(null!=n){const i=m.getColumnFilters(n.filters,e);r=m.getFilterFunction(t,Array.from(i.values()))}return new Promise(((n,i)=>{_.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,r,n){try{if(_.isCacheEnabled(t)){if(["EZ_GRID_LOADING_SOURCE",e.CHANGING_PAGE_LOADING_SOURCE,e.ALL_RECORDS_SELECTION_SOURCE].includes(r.source)&&!await _.getRepository(t).isEmpty())return _.loadFromCache(t,r);_.getRepository(t).clear().catch((()=>{}))}return n(t,r)}catch(t){return console.error(t),Promise.reject(t)}}static insertRecords(t,e,r){_.isCacheEnabled(t)&&_.getRepository(t).insert(e,r)}static updateRecords(t,e){_.isCacheEnabled(t)&&_.getRepository(t).update(e)}static removeRecords(t,e){_.isCacheEnabled(t)&&_.getRepository(t).delete(e)}static async countRecords(t){return _.isCacheEnabled(t)?_.getRepository(t).count():Promise.resolve(0)}static getRepository(t){const e=t.name;return _._repositories.has(e)||_._repositories.set(e,new g(((t,e)=>t.__record__id__===e.__record__id__))),_._repositories.get(e)}static async loadFromCache(t,e){return new Promise(((r,n)=>{const i=m.getColumnFilters(e.filters,""),{limit:s,offset:a,sort:o}=e;_.getRepository(t).load(m.getFilterFunction(t,Array.from(i.values())),_.getSortingFunction(t,o),a,s).then((e=>{const n=_._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 _.getRepository(t).getFromCache()}}function v(t,e,r){const n=m.getColumnFilters(r,"");if(!(null==n?void 0:n.size))return t;const i=m.getFilterFunction(e,Array.from(n.values()));return null==i?t:t.filter(i)}function y(t,e,r){if(null==r||0==r.length)return t;const n=_.getSortingFunction(e,r);return null==n?t:t.sort(n)}function b(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)}}_._repositories=new Map,_._loadingStatus=new Map;class O{constructor(t,r){this.metadata=t,this.records=r,this._dataUnit=new e(O.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===r.BOOLEAN?"S"===e:t.dataType===r.NUMBER?Number(e):t.dataType===r.DATE?n.strToDate(e,!0):t.dataType===r.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]=O.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 i.generateUUID()}inMemoryLoader(t,e,r){let n=v(r,t,e.filters);return n=y(n,t,e.sort),Promise.resolve({records:n,paginationInfo:b(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 a=Object.assign(Object.assign({},e),n);if(i===s.INSERT||i===s.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)}))}}O.IN_MEMORY_DATA_UNIT_NAME="InMemoryDataUnit";class P{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),u="DatasetSP.loadRecords",d=this.buildRequestBody(u,l,t,e,r,o,s),h=r.quiet?{urlParams:{quietMode:"true"}}:void 0,{result:m,pagerID:f}=await c.get().callServiceBroker(u,d,h),p=this.processRecords(t,l,m),g=null!=f,_=r.count+p.length,v=!g&&a.length>0;return Promise.resolve({records:p,loadingInfo:Object.assign(Object.assign({},r),{pagerId:f,loadingInProgress:g,total:g?void 0:_,count:_,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=N.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 a.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 s=r[n];if(i.isEmpty(s))return null;const a=this.getSearchDescriptionField(t);if(null!=a){const t=e.indexOf(a);if(t>=0)return{value:s,label:r[t]}}return t.userInterface===o.SEARCH?isNaN(Number(s))?s:Number(s):O.getConvertedValue(t,s)}getSearchDescriptionField(t){if(t.userInterface===o.SEARCH){const{ENTITYNAME:e,mergedFrom:r,DESCRIPTIONFIELD:n}=t.properties;if(!i.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,(()=>{_.loadData(t,e,this.loadFromServer).then((t=>r(t))).catch((t=>n(t)))}))}))}static getCachedRecords(t){return _.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 P);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(_.cacheRecords(t,s,o,a.loadingInProgress),_.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){_.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 $=/dd:\/\/([^/]+)\/([^/?]+)/;class N{constructor(){this.templateByQuery=new Map,this.buldTemplates()}buldTemplates(){this.templateByQuery.set("fetchDataUnit",u.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",u.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",u.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",u.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=$.exec(t);return e?{entityName:e[1],resourceID:e[2]}:void 0}getDataUnit(t,r,n,i){null==_.applicationResourceID&&p.getResourceID().then((t=>_.applicationResourceID=t));const s=`dd://${t}/${r}${i?"/"+i:""}`,a=null!=n?n.getChildDataunit(s):new e(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)=>{c.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!==`${d}${e}`)),a={dataUnit:t.name,argument:r,fieldName:e,parentRecordId:n,filters:s};return new Promise(((t,e)=>{c.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 n=[],i=[],a=e.map((e=>{const{dataUnit:a,record:o,operation:c}=e,u=l.get(a),d=this.getUpdatingFields(u,e.updatingFields);let h;null!=d&&(h=Object.entries(d).map((([t,e])=>{const n=u.getField(t);return{fieldName:t,dataType:n?n.dataType:r.TEXT,value:u.valueToString(t,e)}}))),a===t.name&&(c===s.INSERT||c===s.COPY?i.push(o.__record__id__):n.push(o.__record__id__));const m={dataUnit:a,fields:h,operation:c,recordId:o.__record__id__};return e.sourceId&&(m.sourceId=e.sourceId),o.__parent__record__id__&&(m.parentRecordId=o.__parent__record__id__),m}));return new Promise(((e,r)=>{const s=a.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,[])));c.get().callGraphQL({values:{changes:s},query:this.templateByQuery.get("saveData")}).then((r=>{const s=[];null==r||r.forEach((e=>{const r={__record__id__:e.id,__record__label__:e.label,__owner__dataunit__name__:e.ownerDataUnitName},n=l.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,n,i),e(s)})).catch((t=>{r(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&&_.insertRecords(t,t.records[0],s);const a=r.map((t=>Object.assign({},i.get(t))));_.updateRecords(t,a)}getTransientInfo(t,e){const{records:n}=t.getSelectionInfo();return Object.entries(n.filter((t=>t.__record__id__==e))[0]).filter((([t])=>t.startsWith(h.DATA_UNIT_TRANSIENT_PREFIX_NAME))).map((([t,e])=>({fieldName:t,value:e,dataType:r.TEXT})))}removeRecords(t,e){const r=e.map((e=>({dataUnit:t.name,operation:s.DELETE,recordId:e,fields:this.getTransientInfo(t,e)})));return new Promise(((n,i)=>{c.get().callGraphQL({values:{changes:r},query:this.templateByQuery.get("saveData")}).then((()=>{_.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)=>{c.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 I{constructor(){this._defaultPageSize=100,this._templateByQuery=new Map,this._searchListenersByDataUnit=new Map,this.buldTemplates()}buldTemplates(){this._templateByQuery.set("search",u.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,n,i){var s;const a=(null==e?void 0:e.toString().trim())||void 0;e=isNaN(Number(a))&&a?`%${a}`:a,null==n||n.params.forEach((t=>{t.dataType===r.OBJECT&&(t.value=JSON.stringify(t.value))}));const o=this.applySearchListener(D.beforeSearch,t,e,n,i),l={argument:(null==o?void 0:o.argument)||e,entityName:t,criteria:(null==o?void 0:o.criteria)||n,options:(null==o?void 0:o.searchOptions)||i};return l.options&&(null===(s=l.options)||void 0===s||delete s.dataUnitId),new Promise(((t,e)=>{c.get().callGraphQL({values:l,query:this._templateByQuery.get("search")}).then((e=>{t(e)})).catch((t=>{e(t)}))}))}loadAdvancedSearch(t,e,n,i){var s,o,l,u;const d=this.applySearchListener(D.beforeSearch,t,e,n,i),h={argument:(null==d?void 0:d.argument)||e,criteria:(null==d?void 0:d.criteria)||n,searchOptions:(null==d?void 0:d.searchOptions)||i},m={query:{$:null===(s=h.criteria)||void 0===s?void 0:s.expression}};(null===(l=null===(o=h.criteria)||void 0===o?void 0:o.params)||void 0===l?void 0:l.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=a.getContextValue(`__SNK__APPLICATION__FILTER__CONTEXT(${t[1]})__`))}let n=t.dataType;return n===r.OBJECT?(e=e.value,n="S"):n=function(t){switch(t){case r.NUMBER:return"I";case r.DATE:return"D";default:return"S"}}(t.dataType),{$:e,type:n}}))});const f=null!=i?Object.assign(Object.assign({},i),{pkFieldName:i.codeFieldName,label:i.descriptionFieldName,fieldName:i.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===(u=h.searchOptions)||void 0===u?void 0:u.rootEntity},{options:f}),clientEventList:{clientEvent:[]}}};return new Promise(((t,e)=>{c.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 D;!function(t){t.beforeSearch="beforeSearch"}(D||(D={}));export{N as D,O as I,I as P,_ as a,v as b,y as c,b as d}
|