dinocollab-core 1.1.5 → 1.1.7

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.
@@ -1,2 +1,2 @@
1
- import{createClass as e,classCallCheck as i,defineProperty as t,createForOfIteratorHelper as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{getKeyConverter as n,createRequestBuilder as l}from"dinocollab-http-service";import{mapDateLogic as o}from"./helpers.js";var a=e((function e(a){var u=this;i(this,e),t(this,"fromFilter",(function(e){return u.filterStateStore=e,u})),t(this,"applySingleFilterCondition",(function(e,i){var t,r,n,l,a=null!==(t=null===(r=i.value)||void 0===r?void 0:r.toString())&&void 0!==t?t:"",u=null!==(n=i.keyConvert.deep)&&void 0!==n?n:i.keyConvert.field,c=i.keyConvert.custom;if(c)e.filterCustom(c(a),i.option);else if(u)if("date"===(null===(l=i.filter)||void 0===l?void 0:l.type)&&i.filter.dateLogic){var f=o[i.filter.dateLogic];e.filterCustom("".concat(u.toString()).concat(f,'"').concat(a,'"'),i.option)}else e.filterContains(u,a,i.option)})),t(this,"applyMulFilterCondition",(function(e,i,t){if(0!==i.length)if(1===i.length){var n=i[0];t&&(n.option=t),u.applySingleFilterCondition(e,n)}else e.scope((function(e){var t,n=r(i);try{for(n.s();!(t=n.n()).done;){var l=t.value;u.applySingleFilterCondition(e,l)}}catch(e){n.e(e)}finally{n.f()}return e}),t)})),t(this,"handleFilter",(function(e){var i,t=null===(i=u.filterStateStore)||void 0===i?void 0:i.filter;if(t){var l=Object.keys(t).filter(Boolean),o=l.reduce((function(e,i){var l,o,a=n(i,u.keyConverter),c=null!==(l=t[i])&&void 0!==l?l:[],f=r(a);try{for(f.s();!(o=f.n()).done;){var v,d=o.value,s=r(c);try{for(s.s();!(v=s.n()).done;){var p,h=v.value;if(h.value){var y=null!==(p=e[i])&&void 0!==p?p:[];y.push({value:h.value,keyConvert:d,filter:h,option:{logic:"Or"}}),e[i]=y}}}catch(e){s.e(e)}finally{s.f()}}}catch(e){f.e(e)}finally{f.f()}return e}),{});e.scope((function(i){for(var t in o){var r=o[t];r&&0!==r.length&&u.applyMulFilterCondition(1===l.length?e:i,r,{logic:"And"})}return i}),{logic:"And"})}})),t(this,"handleQuickSearch",(function(e){var i,t=null===(i=u.filterStateStore)||void 0===i?void 0:i.quickSearch;if(t&&u.quickSearchFields&&0!==u.quickSearchFields.length){var l=(Array.isArray(t)?t:[t]).map((function(e){return null==e?void 0:e.toString().trim()})).filter(Boolean);if(0!==l.length){var o=u.quickSearchFields.reduce((function(e,i){var t,o=n(i,u.keyConverter),a=r(o);try{for(a.s();!(t=a.n()).done;){var c,f=t.value,v=r(l);try{for(v.s();!(c=v.n()).done;){var d=c.value;d&&e.push({value:d,keyConvert:f})}}catch(e){v.e(e)}finally{v.f()}}}catch(e){a.e(e)}finally{a.f()}return e}),[]);o.length>0&&e.scope((function(e){var i,t=r(o);try{for(t.s();!(i=t.n()).done;){var n=i.value;u.applySingleFilterCondition(e,n)}}catch(e){t.e(e)}finally{t.f()}return e}))}}})),t(this,"handlePagination",(function(e){var i,t=null===(i=u.filterStateStore)||void 0===i?void 0:i.pagination;if(t)if(void 0!==t.page&&void 0!==t.pageSize){var r=t.page*t.pageSize;e.skip(r),e.take(t.pageSize)}else void 0!==t.pageSize&&e.take(t.pageSize)})),t(this,"handleSort",(function(e){var i,t=null===(i=u.filterStateStore)||void 0===i?void 0:i.sort;if(t){var r=n(t.field,u.keyConverter);if(r.length>0){var l,o=r[0],a=null!==(l=o.deep)&&void 0!==l?l:o.field;a&&e.sort(a,{direction:"asc"===t.direction?"ASC":"DESC"})}}})),t(this,"prebuild",(function(e){return u.prebuildFunc=e,u})),t(this,"build",(function(){var e=l({ignoreEmpty:!0});return u.handleSort(e),u.handlePagination(e),u.handleQuickSearch(e),u.handleFilter(e),u.prebuildFunc&&u.prebuildFunc(e),e.build()})),this.keyConverter=a.keyConverter,this.quickSearchFields=a.quickSearchFields})),u=function(e){return new a(e)};export{u as createConvertFilterToGraphQL,a as default};
1
+ import{createClass as e,classCallCheck as i,defineProperty as t,createForOfIteratorHelper as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{getKeyConverter as n,createRequestBuilder as r}from"dinocollab-http-service";import{mapDateLogic as o}from"./helpers.js";var a=e((function e(a){var u=this;i(this,e),t(this,"fromFilter",(function(e){return u.filterStateStore=e,u})),t(this,"applySingleFilterCondition",(function(e,i){var t,l,n,r,a=null!==(t=null===(l=i.value)||void 0===l?void 0:l.toString())&&void 0!==t?t:"",u=null!==(n=i.keyConvert.deep)&&void 0!==n?n:i.keyConvert.field,d=i.keyConvert.custom;if(d)e.filterCustom(d(a),i.option);else if(u)if("date"===(null===(r=i.filter)||void 0===r?void 0:r.type)&&i.filter.dateLogic){var v=o[i.filter.dateLogic];e.filterCustom("".concat(u.toString()).concat(v,'"').concat(a,'"'),i.option)}else e.filterContains(u,a,i.option)})),t(this,"applyMulFilterCondition",(function(e,i,t){if(0!==i.length)if(1===i.length){var n=i[0];t&&(n.option=t),u.applySingleFilterCondition(e,n)}else e.scope((function(e){var t,n=l(i);try{for(n.s();!(t=n.n()).done;){var r=t.value;u.applySingleFilterCondition(e,r)}}catch(e){n.e(e)}finally{n.f()}return e}),t)})),t(this,"handleFilter",(function(e){var i,t=null===(i=u.filterStateStore)||void 0===i?void 0:i.filter;if(t){var r=Object.keys(t).filter(Boolean),o=r.reduce((function(e,i){var r,o,a=n(i,u.keyConverter),d=null!==(r=t[i])&&void 0!==r?r:[],v=l(a);try{for(v.s();!(o=v.n()).done;){var f,c=o.value,s=l(d);try{for(s.s();!(f=s.n()).done;){var h,p=f.value;if(p.value){var y=null!==(h=e[i])&&void 0!==h?h:[];y.push({value:p.value,keyConvert:c,filter:p,option:{logic:"Or"}}),e[i]=y}}}catch(e){s.e(e)}finally{s.f()}}}catch(e){v.e(e)}finally{v.f()}return e}),{});e.scope((function(i){for(var t in o){var l=o[t];l&&0!==l.length&&u.applyMulFilterCondition(1===r.length?e:i,l,{logic:"And"})}return i}),{logic:"And"})}})),t(this,"handleQuickSearch",(function(e){var i,t=null===(i=u.filterStateStore)||void 0===i?void 0:i.quickSearch;if(t&&u.quickSearchFields&&0!==u.quickSearchFields.length){var r=(Array.isArray(t)?t:[t]).map((function(e){return null==e?void 0:e.toString().trim()})).filter(Boolean);if(0!==r.length){var o=u.quickSearchFields.reduce((function(e,i){var t,o=n(i,u.keyConverter),a=l(o);try{for(a.s();!(t=a.n()).done;){var d,v=t.value,f=l(r);try{for(f.s();!(d=f.n()).done;){var c=d.value;c&&e.push({value:c,keyConvert:v})}}catch(e){f.e(e)}finally{f.f()}}}catch(e){a.e(e)}finally{a.f()}return e}),[]);o.length>0&&e.scope((function(e){var i,t=l(o);try{for(t.s();!(i=t.n()).done;){var n=i.value;u.applySingleFilterCondition(e,n)}}catch(e){t.e(e)}finally{t.f()}return e}))}}})),t(this,"handlePagination",(function(e){var i,t,l,n,r,o,a=null!==(i=null===(t=u.filterStateStore)||void 0===t?void 0:t.pagination)&&void 0!==i?i:{},d=a.page,v=a.pageSize,f=null!==(l=null!=d?d:null===(n=u.defaultFilter)||void 0===n||null===(n=n.pagination)||void 0===n?void 0:n.page)&&void 0!==l?l:0,c=null!==(r=null!=v?v:null===(o=u.defaultFilter)||void 0===o||null===(o=o.pagination)||void 0===o?void 0:o.pageSize)&&void 0!==r?r:10;e.take(c).skip(f*c)})),t(this,"handleSort",(function(e){var i,t,l,r=null!==(i=null===(t=u.filterStateStore)||void 0===t?void 0:t.sort)&&void 0!==i?i:null===(l=u.defaultFilter)||void 0===l?void 0:l.sort;if(r){var o=n(r.field,u.keyConverter);if(o.length>0){var a,d=o[0],v=null!==(a=d.deep)&&void 0!==a?a:d.field;v&&e.sort(v,{direction:"asc"===r.direction?"ASC":"DESC"})}}})),t(this,"prebuild",(function(e){return u.prebuildFunc=e,u})),t(this,"build",(function(){var e=r({ignoreEmpty:!0});return u.handleSort(e),u.handlePagination(e),u.handleQuickSearch(e),u.handleFilter(e),u.prebuildFunc&&u.prebuildFunc(e),e.build()})),this.keyConverter=a.keyConverter,this.quickSearchFields=a.quickSearchFields,this.defaultFilter=a.defaultFilter})),u=function(e){return new a(e)};export{u as createConvertFilterToGraphQL,a as default};
2
2
  //# sourceMappingURL=convert-filter-to-graphql.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert-filter-to-graphql.js","sources":["../../src/data-view/convert-filter-to-graphql.ts"],"sourcesContent":["import { createRequestBuilder, getKeyConverter, RequestParam } from 'dinocollab-http-service'\r\nimport type { IFilterOption, IKeyConverterDef, IKeyConverterModel } from 'dinocollab-http-service'\r\nimport { IFilterDateLogic, IFilterItem, IFilterState } from './types'\r\nimport { mapDateLogic } from './helpers'\r\n\r\nexport interface ISingleFilterCondition<G extends object> {\r\n value: any\r\n keyConvert: IKeyConverterDef<G>\r\n option?: Partial<IFilterOption>\r\n filter?: IFilterItem\r\n}\r\n\r\nexport interface IFilterToGraphQLParams<T, G extends object> {\r\n keyConverter: IKeyConverterModel<T, G>\r\n quickSearchFields?: (keyof T)[]\r\n}\r\n\r\nclass ConvertFilterToGraphQL<T, G extends object> {\r\n private keyConverter\r\n private quickSearchFields?: (keyof T)[]\r\n\r\n constructor(params: IFilterToGraphQLParams<T, G>) {\r\n this.keyConverter = params.keyConverter\r\n this.quickSearchFields = params.quickSearchFields\r\n }\r\n\r\n private filterStateStore?: IFilterState<T>\r\n fromFilter = (filterState: IFilterState<T>) => {\r\n this.filterStateStore = filterState\r\n return this\r\n }\r\n\r\n private applySingleFilterCondition = (rp: RequestParam<G>, params: ISingleFilterCondition<G>) => {\r\n const val = params.value?.toString() ?? ''\r\n const targetField = (params.keyConvert.deep ?? params.keyConvert.field) as keyof G\r\n const custom = params.keyConvert.custom\r\n if (custom) {\r\n rp.filterCustom(custom(val), params.option)\r\n return\r\n }\r\n if (!targetField) return\r\n if (params.filter?.type === 'date' && params.filter.dateLogic) {\r\n const logic = mapDateLogic[params.filter.dateLogic]\r\n rp.filterCustom(`${targetField.toString()}${logic}\"${val}\"`, params.option)\r\n return\r\n }\r\n rp.filterContains(targetField, val, params.option)\r\n }\r\n\r\n private applyMulFilterCondition = (rp: RequestParam<G>, items: ISingleFilterCondition<G>[], option?: Partial<IFilterOption>) => {\r\n if (items.length === 0) return\r\n else if (items.length === 1) {\r\n const i = items[0]\r\n if (option) i.option = option\r\n this.applySingleFilterCondition(rp, i)\r\n } else {\r\n rp.scope((q) => {\r\n for (const item of items) {\r\n this.applySingleFilterCondition(q, item)\r\n }\r\n return q\r\n }, option)\r\n }\r\n }\r\n\r\n private handleFilter = (rp: RequestParam<G>) => {\r\n const filter = this.filterStateStore?.filter\r\n if (!filter) return\r\n\r\n const keys = Object.keys(filter).filter(Boolean) as (keyof T)[]\r\n const list = keys.reduce<{ [key in keyof T]?: ISingleFilterCondition<G>[] }>((a, k) => {\r\n const keyConverteds = getKeyConverter(k, this.keyConverter)\r\n const items = filter[k] ?? []\r\n for (const keyConverted of keyConverteds) {\r\n for (const item of items) {\r\n if (!item.value) continue\r\n const list: ISingleFilterCondition<G>[] = a[k] ?? []\r\n list.push({ value: item.value, keyConvert: keyConverted, filter: item, option: { logic: 'Or' } })\r\n a[k] = list\r\n }\r\n }\r\n return a\r\n }, {})\r\n\r\n rp.scope(\r\n (q) => {\r\n for (const key in list) {\r\n const items = list[key]\r\n if (!items || items.length === 0) continue\r\n this.applyMulFilterCondition(keys.length === 1 ? rp : q, items, { logic: 'And' })\r\n }\r\n return q\r\n },\r\n { logic: 'And' }\r\n )\r\n }\r\n\r\n private handleQuickSearch = (rp: RequestParam<G>) => {\r\n const quickSearch = this.filterStateStore?.quickSearch\r\n if (!quickSearch || !this.quickSearchFields || this.quickSearchFields.length === 0) return\r\n\r\n // Convert quickSearch to array of strings\r\n const values = Array.isArray(quickSearch) ? quickSearch : [quickSearch]\r\n const trimmedValues = values.map((v) => v?.toString().trim()).filter(Boolean)\r\n\r\n if (trimmedValues.length === 0) return\r\n\r\n const list = this.quickSearchFields.reduce<ISingleFilterCondition<G>[]>((a, field) => {\r\n const keyConverteds = getKeyConverter(field, this.keyConverter)\r\n for (const keyConverted of keyConverteds) {\r\n for (const val of trimmedValues) {\r\n if (!val) continue\r\n a.push({ value: val, keyConvert: keyConverted })\r\n }\r\n }\r\n return a\r\n }, [])\r\n\r\n // Apply quick search with OR logic (scope)\r\n if (list.length > 0) {\r\n rp.scope((q) => {\r\n for (const item of list) {\r\n this.applySingleFilterCondition(q, item)\r\n }\r\n return q\r\n })\r\n }\r\n }\r\n\r\n private handlePagination = (rp: RequestParam<G>) => {\r\n const pagination = this.filterStateStore?.pagination\r\n if (!pagination) return\r\n\r\n // Convert page-based pagination to skip/take\r\n if (pagination.page !== undefined && pagination.pageSize !== undefined) {\r\n const skip = pagination.page * pagination.pageSize\r\n rp.skip(skip)\r\n rp.take(pagination.pageSize)\r\n } else if (pagination.pageSize !== undefined) {\r\n rp.take(pagination.pageSize)\r\n }\r\n }\r\n\r\n private handleSort = (rp: RequestParam<G>) => {\r\n const sort = this.filterStateStore?.sort\r\n if (!sort) return\r\n\r\n const keyConverteds = getKeyConverter(sort.field, this.keyConverter)\r\n if (keyConverteds.length > 0) {\r\n const keyConverted = keyConverteds[0] // Use first converter for sorting\r\n const targetField = (keyConverted.deep ?? keyConverted.field) as keyof G\r\n\r\n if (targetField) {\r\n rp.sort(targetField, { direction: sort.direction === 'asc' ? 'ASC' : 'DESC' })\r\n }\r\n }\r\n }\r\n\r\n private prebuildFunc?: (rp: RequestParam<G>) => RequestParam<G>\r\n prebuild = (func: (requestParam: RequestParam<G>) => RequestParam<G>) => {\r\n this.prebuildFunc = func\r\n return this\r\n }\r\n\r\n build = () => {\r\n const requestBuilder = createRequestBuilder<G>({ ignoreEmpty: true })\r\n this.handleSort(requestBuilder)\r\n this.handlePagination(requestBuilder)\r\n this.handleQuickSearch(requestBuilder)\r\n this.handleFilter(requestBuilder)\r\n if (this.prebuildFunc) this.prebuildFunc(requestBuilder)\r\n return requestBuilder.build()\r\n }\r\n}\r\nexport default ConvertFilterToGraphQL\r\n\r\nexport const createConvertFilterToGraphQL = <T, G extends object>(params: IFilterToGraphQLParams<T, G>) => {\r\n return new ConvertFilterToGraphQL<T, G>(params)\r\n}\r\n"],"names":["ConvertFilterToGraphQL","_createClass","params","_this","this","_classCallCheck","_defineProperty","filterState","filterStateStore","rp","_params$value$toStrin","_params$value","_params$keyConvert$de","_params$filter","val","value","toString","targetField","keyConvert","deep","field","custom","filterCustom","option","filter","type","dateLogic","logic","mapDateLogic","concat","filterContains","items","length","i","applySingleFilterCondition","scope","q","_step","_iterator","_createForOfIteratorHelper","s","n","done","item","err","e","f","_this$filterStateStor","keys","Object","Boolean","list","reduce","a","k","_filter$k","_step2","keyConverteds","getKeyConverter","keyConverter","_iterator2","_step3","keyConverted","_iterator3","_a$k","push","key","applyMulFilterCondition","_this$filterStateStor2","quickSearch","quickSearchFields","trimmedValues","Array","isArray","map","v","trim","_step4","_iterator4","_step5","_iterator5","_step6","_iterator6","_this$filterStateStor3","pagination","undefined","page","pageSize","skip","take","_this$filterStateStor4","sort","_keyConverted$deep","direction","func","prebuildFunc","requestBuilder","createRequestBuilder","ignoreEmpty","handleSort","handlePagination","handleQuickSearch","handleFilter","build","createConvertFilterToGraphQL"],"mappings":"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"}
1
+ {"version":3,"file":"convert-filter-to-graphql.js","sources":["../../src/data-view/convert-filter-to-graphql.ts"],"sourcesContent":["import { createRequestBuilder, getKeyConverter, RequestParam } from 'dinocollab-http-service'\r\nimport type { IFilterOption, IKeyConverterDef, IKeyConverterModel } from 'dinocollab-http-service'\r\nimport { mapDateLogic } from './helpers'\r\nimport { IFilterItem, IFilterState } from './types'\r\n\r\nexport interface ISingleFilterCondition<G extends object> {\r\n value: any\r\n keyConvert: IKeyConverterDef<G>\r\n option?: Partial<IFilterOption>\r\n filter?: IFilterItem\r\n}\r\n\r\nexport interface IFilterToGraphQLParams<T, G extends object> {\r\n keyConverter: IKeyConverterModel<T, G>\r\n quickSearchFields?: (keyof T)[]\r\n defaultFilter?: IFilterState<T>\r\n}\r\n\r\nclass ConvertFilterToGraphQL<T, G extends object> {\r\n private keyConverter\r\n private quickSearchFields?: (keyof T)[]\r\n private defaultFilter?: IFilterState<T>\r\n\r\n constructor(params: IFilterToGraphQLParams<T, G>) {\r\n this.keyConverter = params.keyConverter\r\n this.quickSearchFields = params.quickSearchFields\r\n this.defaultFilter = params.defaultFilter\r\n }\r\n\r\n private filterStateStore?: IFilterState<T>\r\n fromFilter = (filterState: IFilterState<T>) => {\r\n this.filterStateStore = filterState\r\n return this\r\n }\r\n\r\n private applySingleFilterCondition = (rp: RequestParam<G>, params: ISingleFilterCondition<G>) => {\r\n const val = params.value?.toString() ?? ''\r\n const targetField = (params.keyConvert.deep ?? params.keyConvert.field) as keyof G\r\n const custom = params.keyConvert.custom\r\n if (custom) {\r\n rp.filterCustom(custom(val), params.option)\r\n return\r\n }\r\n if (!targetField) return\r\n if (params.filter?.type === 'date' && params.filter.dateLogic) {\r\n const logic = mapDateLogic[params.filter.dateLogic]\r\n rp.filterCustom(`${targetField.toString()}${logic}\"${val}\"`, params.option)\r\n return\r\n }\r\n rp.filterContains(targetField, val, params.option)\r\n }\r\n\r\n private applyMulFilterCondition = (rp: RequestParam<G>, items: ISingleFilterCondition<G>[], option?: Partial<IFilterOption>) => {\r\n if (items.length === 0) return\r\n else if (items.length === 1) {\r\n const i = items[0]\r\n if (option) i.option = option\r\n this.applySingleFilterCondition(rp, i)\r\n } else {\r\n rp.scope((q) => {\r\n for (const item of items) {\r\n this.applySingleFilterCondition(q, item)\r\n }\r\n return q\r\n }, option)\r\n }\r\n }\r\n\r\n private handleFilter = (rp: RequestParam<G>) => {\r\n const filter = this.filterStateStore?.filter\r\n if (!filter) return\r\n\r\n const keys = Object.keys(filter).filter(Boolean) as (keyof T)[]\r\n const list = keys.reduce<{ [key in keyof T]?: ISingleFilterCondition<G>[] }>((a, k) => {\r\n const keyConverteds = getKeyConverter(k, this.keyConverter)\r\n const items = filter[k] ?? []\r\n for (const keyConverted of keyConverteds) {\r\n for (const item of items) {\r\n if (!item.value) continue\r\n const list: ISingleFilterCondition<G>[] = a[k] ?? []\r\n list.push({ value: item.value, keyConvert: keyConverted, filter: item, option: { logic: 'Or' } })\r\n a[k] = list\r\n }\r\n }\r\n return a\r\n }, {})\r\n\r\n rp.scope(\r\n (q) => {\r\n for (const key in list) {\r\n const items = list[key]\r\n if (!items || items.length === 0) continue\r\n this.applyMulFilterCondition(keys.length === 1 ? rp : q, items, { logic: 'And' })\r\n }\r\n return q\r\n },\r\n { logic: 'And' }\r\n )\r\n }\r\n\r\n private handleQuickSearch = (rp: RequestParam<G>) => {\r\n const quickSearch = this.filterStateStore?.quickSearch\r\n if (!quickSearch || !this.quickSearchFields || this.quickSearchFields.length === 0) return\r\n\r\n // Convert quickSearch to array of strings\r\n const values = Array.isArray(quickSearch) ? quickSearch : [quickSearch]\r\n const trimmedValues = values.map((v) => v?.toString().trim()).filter(Boolean)\r\n\r\n if (trimmedValues.length === 0) return\r\n\r\n const list = this.quickSearchFields.reduce<ISingleFilterCondition<G>[]>((a, field) => {\r\n const keyConverteds = getKeyConverter(field, this.keyConverter)\r\n for (const keyConverted of keyConverteds) {\r\n for (const val of trimmedValues) {\r\n if (!val) continue\r\n a.push({ value: val, keyConvert: keyConverted })\r\n }\r\n }\r\n return a\r\n }, [])\r\n\r\n // Apply quick search with OR logic (scope)\r\n if (list.length > 0) {\r\n rp.scope((q) => {\r\n for (const item of list) {\r\n this.applySingleFilterCondition(q, item)\r\n }\r\n return q\r\n })\r\n }\r\n }\r\n\r\n private handlePagination = (rp: RequestParam<G>) => {\r\n const { page, pageSize } = this.filterStateStore?.pagination ?? {}\r\n const finalPage = page ?? this.defaultFilter?.pagination?.page ?? 0\r\n const finalPageSize = pageSize ?? this.defaultFilter?.pagination?.pageSize ?? 10\r\n rp.take(finalPageSize).skip(finalPage * finalPageSize)\r\n }\r\n\r\n private handleSort = (rp: RequestParam<G>) => {\r\n const sort = this.filterStateStore?.sort ?? this.defaultFilter?.sort\r\n if (!sort) return\r\n\r\n const keyConverteds = getKeyConverter(sort.field, this.keyConverter)\r\n if (keyConverteds.length > 0) {\r\n const keyConverted = keyConverteds[0] // Use first converter for sorting\r\n const targetField = (keyConverted.deep ?? keyConverted.field) as keyof G\r\n\r\n if (targetField) {\r\n rp.sort(targetField, { direction: sort.direction === 'asc' ? 'ASC' : 'DESC' })\r\n }\r\n }\r\n }\r\n\r\n private prebuildFunc?: (rp: RequestParam<G>) => RequestParam<G>\r\n prebuild = (func: (requestParam: RequestParam<G>) => RequestParam<G>) => {\r\n this.prebuildFunc = func\r\n return this\r\n }\r\n\r\n build = () => {\r\n const requestBuilder = createRequestBuilder<G>({ ignoreEmpty: true })\r\n this.handleSort(requestBuilder)\r\n this.handlePagination(requestBuilder)\r\n this.handleQuickSearch(requestBuilder)\r\n this.handleFilter(requestBuilder)\r\n if (this.prebuildFunc) this.prebuildFunc(requestBuilder)\r\n return requestBuilder.build()\r\n }\r\n}\r\nexport default ConvertFilterToGraphQL\r\n\r\nexport const createConvertFilterToGraphQL = <T, G extends object>(params: IFilterToGraphQLParams<T, G>) => {\r\n return new ConvertFilterToGraphQL<T, G>(params)\r\n}\r\n"],"names":["ConvertFilterToGraphQL","_createClass","params","_this","this","_classCallCheck","_defineProperty","filterState","filterStateStore","rp","_params$value$toStrin","_params$value","_params$keyConvert$de","_params$filter","val","value","toString","targetField","keyConvert","deep","field","custom","filterCustom","option","filter","type","dateLogic","logic","mapDateLogic","concat","filterContains","items","length","i","applySingleFilterCondition","scope","q","_step","_iterator","_createForOfIteratorHelper","s","n","done","item","err","e","f","_this$filterStateStor","keys","Object","Boolean","list","reduce","a","k","_filter$k","_step2","keyConverteds","getKeyConverter","keyConverter","_iterator2","_step3","keyConverted","_iterator3","_a$k","push","key","applyMulFilterCondition","_this$filterStateStor2","quickSearch","quickSearchFields","trimmedValues","Array","isArray","map","v","trim","_step4","_iterator4","_step5","_iterator5","_step6","_iterator6","_this$filterStateStor3","_this$filterStateStor4","_ref2","_this$defaultFilter","_ref3","_this$defaultFilter2","_ref","pagination","page","pageSize","finalPage","defaultFilter","finalPageSize","take","skip","_this$filterStateStor5","_this$filterStateStor6","_this$defaultFilter3","sort","_keyConverted$deep","direction","func","prebuildFunc","requestBuilder","createRequestBuilder","ignoreEmpty","handleSort","handlePagination","handleQuickSearch","handleFilter","build","createConvertFilterToGraphQL"],"mappings":"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"}
@@ -10,10 +10,12 @@ export interface ISingleFilterCondition<G extends object> {
10
10
  export interface IFilterToGraphQLParams<T, G extends object> {
11
11
  keyConverter: IKeyConverterModel<T, G>;
12
12
  quickSearchFields?: (keyof T)[];
13
+ defaultFilter?: IFilterState<T>;
13
14
  }
14
15
  declare class ConvertFilterToGraphQL<T, G extends object> {
15
16
  private keyConverter;
16
17
  private quickSearchFields?;
18
+ private defaultFilter?;
17
19
  constructor(params: IFilterToGraphQLParams<T, G>);
18
20
  private filterStateStore?;
19
21
  fromFilter: (filterState: IFilterState<T>) => this;
@@ -1,5 +1,6 @@
1
1
  export * from './types';
2
2
  export { EViewMode } from './view-mode.types';
3
+ export type { IViewModeElementProps, IViewModeItemProps } from './view-mode.types';
3
4
  export * from './create.pagination-bar';
4
5
  export * from './filter-store';
5
6
  export * from './key-converter';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-core",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",