dinocollab-core 2.1.0 → 2.1.1

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{inherits as r,createClass as n,classCallCheck as t,callSuper as e,defineProperty as a,asyncToGenerator as s,regenerator as o}from"../../_virtual/_rollupPluginBabelHelpers.js";import{fetchDelay as i}from"./helpers.js";import{createHttpService as u}from"./gateway.js";import c from"./service-base.js";var l=function(){function l(r){var n;return t(this,l),n=e(this,l,[u("".concat(process.env.REACT_APP_ADMIN_API||window.location.origin).concat(r))]),a(n,"all",(function(r,t,e){var a;return i(s(o().m((function e(){var a;return o().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,n.tryPushNotify(n.post,"All",r,{headers:{"Content-Type":"application/json"},signal:t});case 1:return a=e.v,e.a(2,a)}}),e)}))),null!==(a=null==e?void 0:e.delay)&&void 0!==a?a:500)})),a(n,"single",(function(r,t){return i(s(o().m((function e(){var a;return o().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,n.tryGet("Get",{params:{Id:r},signal:t});case 1:return a=e.v,e.a(2,a)}}),e)}))),500)})),a(n,"create",(function(r,t,e){var a;return i(s(o().m((function e(){var a;return o().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,n.pushNotify(n.post,"Create",r,{signal:t});case 1:return a=e.v,e.a(2,a)}}),e)}))),null!==(a=null==e?void 0:e.delay)&&void 0!==a?a:500)})),a(n,"update",(function(r,t,e){return i(s(o().m((function a(){var s;return o().w((function(a){for(;;)switch(a.n){case 0:return a.n=1,n.pushNotify(n.put,"Update",t,{signal:e,params:{Id:r}});case 1:return s=a.v,a.a(2,s)}}),a)}))),500)})),a(n,"remove",(function(r,t){return i(s(o().m((function e(){var a;return o().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,n.pushNotify(n.delete,"Delete",{params:{Id:r},signal:t});case 1:return a=e.v,e.a(2,a)}}),e)}))),500)})),n}return r(l,c),n(l)}();export{l as default};
1
+ import{inherits as n,createClass as r,classCallCheck as t,callSuper as e,defineProperty as a,asyncToGenerator as s,regenerator as u}from"../../_virtual/_rollupPluginBabelHelpers.js";import{fetchDelay as o}from"./helpers.js";import{createHttpService as i}from"./gateway.js";import c from"./service-base.js";var l=function(){function l(n){var r;return t(this,l),r=e(this,l,[i("".concat(process.env.REACT_APP_ADMIN_API||window.location.origin).concat(n))]),a(r,"all",(function(n,t,e){var a;return o(s(u().m((function e(){var a;return u().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,r.tryPushNotify(r.post,"All",n,{headers:{"Content-Type":"application/json"},signal:t});case 1:return a=e.v,e.a(2,a)}}),e)}))),null!==(a=null==e?void 0:e.delay)&&void 0!==a?a:500)})),a(r,"single",(function(n,t){return o(s(u().m((function e(){var a;return u().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,r.tryGet("Get",{params:{Id:n},signal:t});case 1:return a=e.v,e.a(2,a)}}),e)}))),500)})),a(r,"create",(function(n,t,e){var a;return o(s(u().m((function e(){var a;return u().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,r.pushNotify(r.post,"Create",n,{signal:t});case 1:return a=e.v,e.a(2,a)}}),e)}))),null!==(a=null==e?void 0:e.delay)&&void 0!==a?a:500)})),a(r,"update",(function(n,t,e){return o(s(u().m((function a(){var s;return u().w((function(a){for(;;)switch(a.n){case 0:return a.n=1,r.pushNotify(r.put,"Update",t,{signal:e,params:{Id:n}});case 1:return s=a.v,a.a(2,s)}}),a)}))),500)})),a(r,"updatePatch",(function(n,t,e){return o(s(u().m((function a(){var s;return u().w((function(a){for(;;)switch(a.n){case 0:return a.n=1,r.pushNotify(r.patch,"Update",t,{signal:e,params:{Id:n}});case 1:return s=a.v,a.a(2,s)}}),a)}))),500)})),a(r,"remove",(function(n,t){return o(s(u().m((function e(){var a;return u().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,r.pushNotify(r.delete,"Delete",{params:{Id:n},signal:t});case 1:return a=e.v,e.a(2,a)}}),e)}))),500)})),r}return n(l,c),r(l)}();export{l as default};
2
2
  //# sourceMappingURL=crud-service-base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crud-service-base.js","sources":["../../../src/http-service/base/crud-service-base.ts"],"sourcesContent":["import { fetchDelay } from './helpers'\r\nimport { createHttpService } from './gateway'\r\nimport type { IFilterModelSwagger, IReponseAll } from './types'\r\nimport ServiceBase from './service-base'\r\n\r\n/**\r\n * Base class for HTTP CRUD services.\r\n *\r\n * @template T - Entity type.\r\n * @template K - Entity ID type.\r\n *\r\n * Provides common methods:\r\n * - all: Get list with filter and pagination\r\n * - single: Get detail by ID\r\n * - create: Add new entity\r\n * - update: Update entity by ID\r\n * - remove: Delete entity by ID\r\n *\r\n * Supports request cancellation and artificial delay.\r\n */\r\nclass CRUDServiceBase<T, K> extends ServiceBase {\r\n constructor(baseUri: string) {\r\n super(createHttpService(`${process.env.REACT_APP_ADMIN_API || window.location.origin}${baseUri}`))\r\n }\r\n /**\r\n * Fetches a list of entities with optional filters and pagination.\r\n *\r\n * @param filters - Filters and pagination options.\r\n * @param signal - Optional AbortSignal for request cancellation.\r\n * @param options - Optional delay configuration.\r\n * @returns A promise resolving to the response containing the list of entities.\r\n */\r\n all = (filters: Partial<IFilterModelSwagger<T>>, signal?: AbortSignal, options?: { delay?: number }) => {\r\n return fetchDelay(async () => {\r\n const data = await this.tryPushNotify(this.post<IReponseAll<T>>, 'All', filters, {\r\n headers: { 'Content-Type': 'application/json' },\r\n signal\r\n })\r\n return data\r\n }, options?.delay ?? 500)\r\n }\r\n /**\r\n * Fetches a single entity by its ID.\r\n *\r\n * @param id - The ID of the entity to fetch.\r\n * @param signal - Optional AbortSignal for request cancellation.\r\n * @returns A promise resolving to the entity data.\r\n */\r\n single = (id: K, signal?: AbortSignal) => {\r\n return fetchDelay(async () => {\r\n const data = await this.tryGet<T>('Get', { params: { Id: id }, signal })\r\n return data\r\n }, 500)\r\n }\r\n /**\r\n * Creates a new entity.\r\n *\r\n * @param model - The entity data to create.\r\n * @param signal - Optional AbortSignal for request cancellation.\r\n * @param options - Optional delay configuration.\r\n * @returns A promise resolving to the created entity data.\r\n */\r\n create = (model: Partial<T>, signal?: AbortSignal, options?: { delay?: number }) => {\r\n return fetchDelay(async () => {\r\n const data = await this.pushNotify(this.post<T>, 'Create', model, { signal })\r\n return data\r\n }, options?.delay ?? 500)\r\n }\r\n /**\r\n * Updates an existing entity by its ID.\r\n *\r\n * @param id - The ID of the entity to update.\r\n * @param model - The partial entity data to update.\r\n * @param signal - Optional AbortSignal for request cancellation.\r\n * @returns A promise resolving to the updated entity data.\r\n */\r\n update = (id: K, model: Partial<T>, signal?: AbortSignal) => {\r\n return fetchDelay(async () => {\r\n const data = await this.pushNotify(this.put<T>, 'Update', model, { signal, params: { Id: id } })\r\n return data\r\n }, 500)\r\n }\r\n /**\r\n * Deletes an entity by its ID.\r\n *\r\n * @param id - The ID of the entity to delete.\r\n * @param signal - Optional AbortSignal for request cancellation.\r\n * @returns A promise resolving to the deletion response.\r\n */\r\n remove = (id: K, signal?: AbortSignal) => {\r\n return fetchDelay(async () => {\r\n const data = await this.pushNotify(this.delete<T>, 'Delete', { params: { Id: id }, signal })\r\n return data\r\n }, 500)\r\n }\r\n}\r\n\r\nexport default CRUDServiceBase\r\n"],"names":["CRUDServiceBase","baseUri","_this","_classCallCheck","_callSuper","this","createHttpService","concat","process","env","REACT_APP_ADMIN_API","window","location","origin","_defineProperty","filters","signal","options","_options$delay","fetchDelay","_asyncToGenerator","_regenerator","m","_callee","data","w","_context","n","tryPushNotify","post","headers","v","a","delay","id","_callee2","_context2","tryGet","params","Id","model","_options$delay2","_callee3","_context3","pushNotify","_callee4","_context4","put","_callee5","_context5","_inherits","ServiceBase","_createClass"],"mappings":"kTAoBMA,IAAAA,aACJ,SAAAA,EAAYC,GAAe,IAAAC,EAyE1B,OAzE0BC,OAAAH,GACzBE,EAAAE,EAAAC,KAAAL,EAAA,CAAMM,EAAiBC,GAAAA,OAAIC,QAAQC,IAAIC,qBAAuBC,OAAOC,SAASC,QAAMN,OAAGN,MAEzFa,EAAAZ,EAQM,OAAA,SAACa,EAA0CC,EAAsBC,GAAgC,IAAAC,EACrG,OAAOC,EAAUC,EAAAC,IAAAC,GAAC,SAAAC,IAAA,IAAAC,EAAA,OAAAH,IAAAI,GAAA,SAAAC,GAAA,cAAAA,EAAAC,GAAA,KAAA,EAAA,OAAAD,EAAAC,EAAA,EACGzB,EAAK0B,cAAc1B,EAAK2B,KAAsB,MAAOd,EAAS,CAC/Ee,QAAS,CAAE,eAAgB,oBAC3Bd,OAAAA,IACA,KAAA,EAHQ,OAAJQ,EAAIE,EAAAK,EAAAL,EAAAM,EAAA,EAIHR,GAAI,GAAAD,EAAA,aACZL,EAAED,aAAAA,EAAAA,EAASgB,aAAK,IAAAf,EAAAA,EAAI,QAEvBJ,EAAAZ,EAAA,UAOS,SAACgC,EAAOlB,GACf,OAAOG,EAAUC,EAAAC,IAAAC,GAAC,SAAAa,IAAA,IAAAX,EAAA,OAAAH,IAAAI,GAAA,SAAAW,GAAA,cAAAA,EAAAT,GAAA,KAAA,EAAA,OAAAS,EAAAT,EAAA,EACGzB,EAAKmC,OAAU,MAAO,CAAEC,OAAQ,CAAEC,GAAIL,GAAMlB,OAAAA,IAAS,KAAA,EAA9D,OAAJQ,EAAIY,EAAAL,EAAAK,EAAAJ,EAAA,EACHR,GAAI,GAAAW,OACV,QAELrB,EAAAZ,EAQS,UAAA,SAACsC,EAAmBxB,EAAsBC,GAAgC,IAAAwB,EACjF,OAAOtB,EAAUC,EAAAC,IAAAC,GAAC,SAAAoB,IAAA,IAAAlB,EAAA,OAAAH,IAAAI,GAAA,SAAAkB,GAAA,cAAAA,EAAAhB,GAAA,KAAA,EAAA,OAAAgB,EAAAhB,EAAA,EACGzB,EAAK0C,WAAW1C,EAAK2B,KAAS,SAAUW,EAAO,CAAExB,OAAAA,IAAS,KAAA,EAAnE,OAAJQ,EAAImB,EAAAZ,EAAAY,EAAAX,EAAA,EACHR,GAAI,GAAAkB,EAAA,aACZD,EAAExB,aAAAA,EAAAA,EAASgB,aAAK,IAAAQ,EAAAA,EAAI,QAEvB3B,EAAAZ,EAQS,UAAA,SAACgC,EAAOM,EAAmBxB,GAClC,OAAOG,EAAUC,EAAAC,IAAAC,GAAC,SAAAuB,IAAA,IAAArB,EAAA,OAAAH,IAAAI,GAAA,SAAAqB,GAAA,cAAAA,EAAAnB,GAAA,KAAA,EAAA,OAAAmB,EAAAnB,EAAA,EACGzB,EAAK0C,WAAW1C,EAAK6C,IAAQ,SAAUP,EAAO,CAAExB,OAAAA,EAAQsB,OAAQ,CAAEC,GAAIL,KAAO,KAAA,EAAtF,OAAJV,EAAIsB,EAAAf,EAAAe,EAAAd,EAAA,EACHR,GAAI,GAAAqB,OACV,QAEL/B,EAAAZ,EAAA,UAOS,SAACgC,EAAOlB,GACf,OAAOG,EAAUC,EAAAC,IAAAC,GAAC,SAAA0B,IAAA,IAAAxB,EAAA,OAAAH,IAAAI,GAAA,SAAAwB,GAAA,cAAAA,EAAAtB,GAAA,KAAA,EAAA,OAAAsB,EAAAtB,EAAA,EACGzB,EAAK0C,WAAW1C,EAAc,OAAE,SAAU,CAAEoC,OAAQ,CAAEC,GAAIL,GAAMlB,OAAAA,IAAS,KAAA,EAAlF,OAAJQ,EAAIyB,EAAAlB,EAAAkB,EAAAjB,EAAA,EACHR,GAAI,GAAAwB,OACV,QACJ9C,CAvED,CAAC,OAAAgD,EAAAlD,EAHiCmD,GAGjCC,EAAApD,EAAA"}
1
+ {"version":3,"file":"crud-service-base.js","sources":["../../../src/http-service/base/crud-service-base.ts"],"sourcesContent":["import { fetchDelay } from './helpers'\r\nimport { createHttpService } from './gateway'\r\nimport type { IFilterModelSwagger, IReponseAll } from './types'\r\nimport ServiceBase from './service-base'\r\n\r\n/**\r\n * Base class for HTTP CRUD services.\r\n *\r\n * @template T - Entity type.\r\n * @template K - Entity ID type.\r\n *\r\n * Provides common methods:\r\n * - all: Get list with filter and pagination\r\n * - single: Get detail by ID\r\n * - create: Add new entity\r\n * - update: Update entity by ID\r\n * - remove: Delete entity by ID\r\n *\r\n * Supports request cancellation and artificial delay.\r\n */\r\nclass CRUDServiceBase<T, K> extends ServiceBase {\r\n constructor(baseUri: string) {\r\n super(createHttpService(`${process.env.REACT_APP_ADMIN_API || window.location.origin}${baseUri}`))\r\n }\r\n /**\r\n * Fetches a list of entities with optional filters and pagination.\r\n *\r\n * @param filters - Filters and pagination options.\r\n * @param signal - Optional AbortSignal for request cancellation.\r\n * @param options - Optional delay configuration.\r\n * @returns A promise resolving to the response containing the list of entities.\r\n */\r\n all = (filters: Partial<IFilterModelSwagger<T>>, signal?: AbortSignal, options?: { delay?: number }) => {\r\n return fetchDelay(async () => {\r\n const data = await this.tryPushNotify(this.post<IReponseAll<T>>, 'All', filters, {\r\n headers: { 'Content-Type': 'application/json' },\r\n signal\r\n })\r\n return data\r\n }, options?.delay ?? 500)\r\n }\r\n /**\r\n * Fetches a single entity by its ID.\r\n *\r\n * @param id - The ID of the entity to fetch.\r\n * @param signal - Optional AbortSignal for request cancellation.\r\n * @returns A promise resolving to the entity data.\r\n */\r\n single = (id: K, signal?: AbortSignal) => {\r\n return fetchDelay(async () => {\r\n const data = await this.tryGet<T>('Get', { params: { Id: id }, signal })\r\n return data\r\n }, 500)\r\n }\r\n /**\r\n * Creates a new entity.\r\n *\r\n * @param model - The entity data to create.\r\n * @param signal - Optional AbortSignal for request cancellation.\r\n * @param options - Optional delay configuration.\r\n * @returns A promise resolving to the created entity data.\r\n */\r\n create = (model: Partial<T>, signal?: AbortSignal, options?: { delay?: number }) => {\r\n return fetchDelay(async () => {\r\n const data = await this.pushNotify(this.post<T>, 'Create', model, { signal })\r\n return data\r\n }, options?.delay ?? 500)\r\n }\r\n /**\r\n * Updates an existing entity by its ID.\r\n *\r\n * @param id - The ID of the entity to update.\r\n * @param model - The partial entity data to update.\r\n * @param signal - Optional AbortSignal for request cancellation.\r\n * @returns A promise resolving to the updated entity data.\r\n */\r\n update = (id: K, model: Partial<T>, signal?: AbortSignal) => {\r\n return fetchDelay(async () => {\r\n const data = await this.pushNotify(this.put<T>, 'Update', model, { signal, params: { Id: id } })\r\n return data\r\n }, 500)\r\n }\r\n /**\r\n * HTTP PATCH request with automatic authentication\r\n *\r\n * @param id - The ID of the entity to update.\r\n * @param model - The partial entity data to update.\r\n * @param signal - Optional AbortSignal for request cancellation.\r\n * @returns A promise resolving to the updated entity data.\r\n */\r\n updatePatch = (id: K, model: Partial<T>, signal?: AbortSignal) => {\r\n return fetchDelay(async () => {\r\n const data = await this.pushNotify(this.patch<T>, 'Update', model, { signal, params: { Id: id } })\r\n return data\r\n }, 500)\r\n }\r\n /**\r\n * Deletes an entity by its ID.\r\n *\r\n * @param id - The ID of the entity to delete.\r\n * @param signal - Optional AbortSignal for request cancellation.\r\n * @returns A promise resolving to the deletion response.\r\n */\r\n remove = (id: K, signal?: AbortSignal) => {\r\n return fetchDelay(async () => {\r\n const data = await this.pushNotify(this.delete<T>, 'Delete', { params: { Id: id }, signal })\r\n return data\r\n }, 500)\r\n }\r\n}\r\n\r\nexport default CRUDServiceBase\r\n"],"names":["CRUDServiceBase","baseUri","_this","_classCallCheck","_callSuper","this","createHttpService","concat","process","env","REACT_APP_ADMIN_API","window","location","origin","_defineProperty","filters","signal","options","_options$delay","fetchDelay","_asyncToGenerator","_regenerator","m","_callee","data","w","_context","n","tryPushNotify","post","headers","v","a","delay","id","_callee2","_context2","tryGet","params","Id","model","_options$delay2","_callee3","_context3","pushNotify","_callee4","_context4","put","_callee5","_context5","patch","_callee6","_context6","_inherits","ServiceBase","_createClass"],"mappings":"kTAoBMA,IAAAA,aACJ,SAAAA,EAAYC,GAAe,IAAAC,EAuF1B,OAvF0BC,OAAAH,GACzBE,EAAAE,EAAAC,KAAAL,EAAA,CAAMM,EAAiBC,GAAAA,OAAIC,QAAQC,IAAIC,qBAAuBC,OAAOC,SAASC,QAAMN,OAAGN,MAEzFa,EAAAZ,EAQM,OAAA,SAACa,EAA0CC,EAAsBC,GAAgC,IAAAC,EACrG,OAAOC,EAAUC,EAAAC,IAAAC,GAAC,SAAAC,IAAA,IAAAC,EAAA,OAAAH,IAAAI,GAAA,SAAAC,GAAA,cAAAA,EAAAC,GAAA,KAAA,EAAA,OAAAD,EAAAC,EAAA,EACGzB,EAAK0B,cAAc1B,EAAK2B,KAAsB,MAAOd,EAAS,CAC/Ee,QAAS,CAAE,eAAgB,oBAC3Bd,OAAAA,IACA,KAAA,EAHQ,OAAJQ,EAAIE,EAAAK,EAAAL,EAAAM,EAAA,EAIHR,GAAI,GAAAD,EAAA,aACZL,EAAED,aAAAA,EAAAA,EAASgB,aAAK,IAAAf,EAAAA,EAAI,QAEvBJ,EAAAZ,EAAA,UAOS,SAACgC,EAAOlB,GACf,OAAOG,EAAUC,EAAAC,IAAAC,GAAC,SAAAa,IAAA,IAAAX,EAAA,OAAAH,IAAAI,GAAA,SAAAW,GAAA,cAAAA,EAAAT,GAAA,KAAA,EAAA,OAAAS,EAAAT,EAAA,EACGzB,EAAKmC,OAAU,MAAO,CAAEC,OAAQ,CAAEC,GAAIL,GAAMlB,OAAAA,IAAS,KAAA,EAA9D,OAAJQ,EAAIY,EAAAL,EAAAK,EAAAJ,EAAA,EACHR,GAAI,GAAAW,OACV,QAELrB,EAAAZ,EAQS,UAAA,SAACsC,EAAmBxB,EAAsBC,GAAgC,IAAAwB,EACjF,OAAOtB,EAAUC,EAAAC,IAAAC,GAAC,SAAAoB,IAAA,IAAAlB,EAAA,OAAAH,IAAAI,GAAA,SAAAkB,GAAA,cAAAA,EAAAhB,GAAA,KAAA,EAAA,OAAAgB,EAAAhB,EAAA,EACGzB,EAAK0C,WAAW1C,EAAK2B,KAAS,SAAUW,EAAO,CAAExB,OAAAA,IAAS,KAAA,EAAnE,OAAJQ,EAAImB,EAAAZ,EAAAY,EAAAX,EAAA,EACHR,GAAI,GAAAkB,EAAA,aACZD,EAAExB,aAAAA,EAAAA,EAASgB,aAAK,IAAAQ,EAAAA,EAAI,QAEvB3B,EAAAZ,EAQS,UAAA,SAACgC,EAAOM,EAAmBxB,GAClC,OAAOG,EAAUC,EAAAC,IAAAC,GAAC,SAAAuB,IAAA,IAAArB,EAAA,OAAAH,IAAAI,GAAA,SAAAqB,GAAA,cAAAA,EAAAnB,GAAA,KAAA,EAAA,OAAAmB,EAAAnB,EAAA,EACGzB,EAAK0C,WAAW1C,EAAK6C,IAAQ,SAAUP,EAAO,CAAExB,OAAAA,EAAQsB,OAAQ,CAAEC,GAAIL,KAAO,KAAA,EAAtF,OAAJV,EAAIsB,EAAAf,EAAAe,EAAAd,EAAA,EACHR,GAAI,GAAAqB,OACV,QAEL/B,EAAAZ,EAQc,eAAA,SAACgC,EAAOM,EAAmBxB,GACvC,OAAOG,EAAUC,EAAAC,IAAAC,GAAC,SAAA0B,IAAA,IAAAxB,EAAA,OAAAH,IAAAI,GAAA,SAAAwB,GAAA,cAAAA,EAAAtB,GAAA,KAAA,EAAA,OAAAsB,EAAAtB,EAAA,EACGzB,EAAK0C,WAAW1C,EAAKgD,MAAU,SAAUV,EAAO,CAAExB,OAAAA,EAAQsB,OAAQ,CAAEC,GAAIL,KAAO,KAAA,EAAxF,OAAJV,EAAIyB,EAAAlB,EAAAkB,EAAAjB,EAAA,EACHR,GAAI,GAAAwB,OACV,QAELlC,EAAAZ,EAAA,UAOS,SAACgC,EAAOlB,GACf,OAAOG,EAAUC,EAAAC,IAAAC,GAAC,SAAA6B,IAAA,IAAA3B,EAAA,OAAAH,IAAAI,GAAA,SAAA2B,GAAA,cAAAA,EAAAzB,GAAA,KAAA,EAAA,OAAAyB,EAAAzB,EAAA,EACGzB,EAAK0C,WAAW1C,EAAc,OAAE,SAAU,CAAEoC,OAAQ,CAAEC,GAAIL,GAAMlB,OAAAA,IAAS,KAAA,EAAlF,OAAJQ,EAAI4B,EAAArB,EAAAqB,EAAApB,EAAA,EACHR,GAAI,GAAA2B,OACV,QACJjD,CArFD,CAAC,OAAAmD,EAAArD,EAHiCsD,GAGjCC,EAAAvD,EAAA"}
@@ -1,2 +1,2 @@
1
- import{createClass as t,asyncToGenerator as r,inherits as n,wrapNativeSuper as e,regenerator as a,classCallCheck as u,defineProperty as s,callSuper as i,superPropGet as o}from"../../_virtual/_rollupPluginBabelHelpers.js";import{authService as c}from"partner-oidc-auth";import h from"axios";import{HttpService as f}from"./gateway.js";import{ApiAlertContext as p,handleResponseError as l}from"./helpers.js";var v=function(){return t((function t(n){var e=this;u(this,t),s(this,"mapResponse",(function(){e._http.interceptors.response.use((function(t){return t}),(function(t){return e.tryFetchToken(t,l)})),e._http.interceptors.request.use((function(t){return e.interuptHeader(t)}))})),s(this,"tryFetchToken",function(){var t=r(a().m((function t(r,n){var u,s;return a().w((function(t){for(;;)switch(t.n){case 0:if(s=r.config,401!==(null==r||null===(u=r.response)||void 0===u?void 0:u.status)||!s){t.n=3;break}return t.n=1,c.signIn({});case 1:return t.n=2,e.interuptHeader(s);case 2:return t.a(2,h(s));case 3:return t.a(2,n(r))}}),t)})));return function(r,n){return t.apply(this,arguments)}}()),s(this,"getToken",r(a().m((function t(){var r;return a().w((function(t){for(;;)switch(t.n){case 0:if(void 0!==e._token){t.n=2;break}return t.n=1,c.getAccessToken();case 1:r=t.v,t.n=3;break;case 2:r=e._token;case 3:return t.a(2,r)}}),t)})))),s(this,"addtoken",function(){var t=r(a().m((function t(r){var n;return a().w((function(t){for(;;)switch(t.n){case 0:return t.n=1,e.getToken();case 1:return(n=t.v)&&null!=r&&r.headers&&(r.headers.Authorization="Bearer "+n),t.a(2,r)}}),t)})));return function(r){return t.apply(this,arguments)}}()),this._http=n||f,this.mapResponse()}),[{key:"setToken",value:function(t){this._token=t}},{key:"addCustomHeader",value:(_=r(a().m((function t(r){return a().w((function(t){for(;;)if(0===t.n)return r||(r={headers:{}}),r.headers||(r.headers={}),t.a(2,r)}),t)}))),function(t){return _.apply(this,arguments)})},{key:"interuptHeader",value:(g=r(a().m((function t(r){return a().w((function(t){for(;;)switch(t.n){case 0:return t.n=1,this.addtoken(r);case 1:return t.a(2,r)}}),t,this)}))),function(t){return g.apply(this,arguments)})},{key:"get",value:(k=r(a().m((function t(r,n){var e,u,s,i;return a().w((function(t){for(;;)switch(t.n){case 0:return u=this._http,s=r,t.n=1,this.addCustomHeader(n);case 1:return i=t.v,t.n=2,u.get.call(u,s,i);case 2:return e=t.v,t.a(2,e.data)}}),t,this)}))),function(t,r){return k.apply(this,arguments)})},{key:"tryGet",value:(m=r(a().m((function t(r,n){return a().w((function(t){for(;;)switch(t.n){case 0:return t.p=0,t.a(2,this.get(r,n));case 1:return t.p=1,t.v,t.a(2,null)}}),t,this,[[0,1]])}))),function(t,r){return m.apply(this,arguments)})},{key:"post",value:(w=r(a().m((function t(r,n,e){var u,s,i,o,c;return a().w((function(t){for(;;)switch(t.n){case 0:return s=this._http,i=r,o=n,t.n=1,this.addCustomHeader(e);case 1:return c=t.v,t.n=2,s.post.call(s,i,o,c);case 2:return u=t.v,t.a(2,u.data)}}),t,this)}))),function(t,r,n){return w.apply(this,arguments)})},{key:"put",value:(y=r(a().m((function t(r,n,e){var u,s,i,o,c;return a().w((function(t){for(;;)switch(t.n){case 0:return s=this._http,i=r,o=n,t.n=1,this.addCustomHeader(e);case 1:return c=t.v,t.n=2,s.put.call(s,i,o,c);case 2:return u=t.v,t.a(2,u.data)}}),t,this)}))),function(t,r,n){return y.apply(this,arguments)})},{key:"tryPut",value:(d=r(a().m((function t(r,n,e){return a().w((function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,this.addCustomHeader(e);case 1:return t.n=2,this.put(r,n,e);case 2:return t.a(2,t.v);case 3:return t.p=3,t.v,t.a(2,null)}}),t,this,[[0,3]])}))),function(t,r,n){return d.apply(this,arguments)})},{key:"tryPost",value:(v=r(a().m((function t(r,n,e){return a().w((function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,this.post(r,n,e);case 1:return t.a(2,t.v);case 2:return t.p=2,t.v,t.a(2,null)}}),t,this,[[0,2]])}))),function(t,r,n){return v.apply(this,arguments)})},{key:"delete",value:(o=r(a().m((function t(r,n){var e,u,s,i;return a().w((function(t){for(;;)switch(t.n){case 0:return u=this._http,s=r,t.n=1,this.addCustomHeader(n);case 1:return i=t.v,t.n=2,u.delete.call(u,s,i);case 2:return e=t.v,t.a(2,e.data)}}),t,this)}))),function(t,r){return o.apply(this,arguments)})},{key:"tryDelete",value:(i=r(a().m((function t(r,n){var e,u,s;return a().w((function(t){for(;;)switch(t.n){case 0:return t.p=0,e=this,u=r,t.n=1,this.addCustomHeader(n);case 1:return s=t.v,t.n=2,e.delete.call(e,u,s);case 2:return t.a(2,t.v);case 3:return t.p=3,t.v,t.a(2,null)}}),t,this,[[0,3]])}))),function(t,r){return i.apply(this,arguments)})},{key:"tryPushNotify",value:(e=r(a().m((function t(r){var n,e,u,s=arguments;return a().w((function(t){for(;;)switch(t.n){case 0:for(t.p=0,n=s.length,e=new Array(n>1?n-1:0),u=1;u<n;u++)e[u-1]=s[u];return t.n=1,this.pushNotify.apply(this,[r].concat(e));case 1:return t.a(2,t.v);case 2:t.p=2,t.v;case 3:return t.a(2)}}),t,this,[[0,2]])}))),function(t){return e.apply(this,arguments)})},{key:"pushNotify",value:(n=r(a().m((function t(r){var n,e,u,s,i,o,c,h=arguments;return a().w((function(t){for(;;)switch(t.n){case 0:for(t.p=0,n=h.length,e=new Array(n>1?n-1:0),u=1;u<n;u++)e[u-1]=h[u];return t.n=1,r.bind(this).apply(void 0,e);case 1:return t.a(2,t.v);case 2:throw t.p=2,c=t.v,(o=null===(s=(i=c).response)||void 0===s?void 0:s.data)&&Object.keys(o).forEach((function(t){var r=o[t];Array.isArray(r)&&r.forEach((function(t){var r;null==p||null===(r=p.ApiAlert)||void 0===r||r.PushError(t)}))})),i;case 3:return t.a(2)}}),t,this,[[0,2]])}))),function(t){return n.apply(this,arguments)})}]);var n,e,i,o,v,d,y,w,m,k,g,_}(),d=function(r){function e(){var t;u(this,e);for(var r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];return t=i(this,e,[].concat(n)),s(t,"cancel",(function(){t.trigger&&t.trigger(),o(e,"abort",t)([])})),t}return n(e,r),t(e)}(e(AbortController));export{d as CancelAction,v as default};
1
+ import{createClass as t,asyncToGenerator as r,inherits as n,wrapNativeSuper as e,regenerator as a,classCallCheck as u,defineProperty as s,callSuper as i,superPropGet as c}from"../../_virtual/_rollupPluginBabelHelpers.js";import{authService as o}from"partner-oidc-auth";import h from"axios";import{HttpService as f}from"./gateway.js";import{ApiAlertContext as p,handleResponseError as l}from"./helpers.js";var v=function(){return t((function t(n){var e=this;u(this,t),s(this,"mapResponse",(function(){e._http.interceptors.response.use((function(t){return t}),(function(t){return e.tryFetchToken(t,l)})),e._http.interceptors.request.use((function(t){return e.interuptHeader(t)}))})),s(this,"tryFetchToken",function(){var t=r(a().m((function t(r,n){var u,s;return a().w((function(t){for(;;)switch(t.n){case 0:if(s=r.config,401!==(null==r||null===(u=r.response)||void 0===u?void 0:u.status)||!s){t.n=3;break}return t.n=1,o.signIn({});case 1:return t.n=2,e.interuptHeader(s);case 2:return t.a(2,h(s));case 3:return t.a(2,n(r))}}),t)})));return function(r,n){return t.apply(this,arguments)}}()),s(this,"getToken",r(a().m((function t(){var r;return a().w((function(t){for(;;)switch(t.n){case 0:if(void 0!==e._token){t.n=2;break}return t.n=1,o.getAccessToken();case 1:r=t.v,t.n=3;break;case 2:r=e._token;case 3:return t.a(2,r)}}),t)})))),s(this,"addtoken",function(){var t=r(a().m((function t(r){var n;return a().w((function(t){for(;;)switch(t.n){case 0:return t.n=1,e.getToken();case 1:return(n=t.v)&&null!=r&&r.headers&&(r.headers.Authorization="Bearer "+n),t.a(2,r)}}),t)})));return function(r){return t.apply(this,arguments)}}()),this._http=n||f,this.mapResponse()}),[{key:"setToken",value:function(t){this._token=t}},{key:"addCustomHeader",value:(_=r(a().m((function t(r){return a().w((function(t){for(;;)if(0===t.n)return r||(r={headers:{}}),r.headers||(r.headers={}),t.a(2,r)}),t)}))),function(t){return _.apply(this,arguments)})},{key:"interuptHeader",value:(H=r(a().m((function t(r){return a().w((function(t){for(;;)switch(t.n){case 0:return t.n=1,this.addtoken(r);case 1:return t.a(2,r)}}),t,this)}))),function(t){return H.apply(this,arguments)})},{key:"get",value:(C=r(a().m((function t(r,n){var e,u,s,i;return a().w((function(t){for(;;)switch(t.n){case 0:return u=this._http,s=r,t.n=1,this.addCustomHeader(n);case 1:return i=t.v,t.n=2,u.get.call(u,s,i);case 2:return e=t.v,t.a(2,e.data)}}),t,this)}))),function(t,r){return C.apply(this,arguments)})},{key:"tryGet",value:(g=r(a().m((function t(r,n){return a().w((function(t){for(;;)switch(t.n){case 0:return t.p=0,t.a(2,this.get(r,n));case 1:return t.p=1,t.v,t.a(2,null)}}),t,this,[[0,1]])}))),function(t,r){return g.apply(this,arguments)})},{key:"post",value:(k=r(a().m((function t(r,n,e){var u,s,i,c,o;return a().w((function(t){for(;;)switch(t.n){case 0:return s=this._http,i=r,c=n,t.n=1,this.addCustomHeader(e);case 1:return o=t.v,t.n=2,s.post.call(s,i,c,o);case 2:return u=t.v,t.a(2,u.data)}}),t,this)}))),function(t,r,n){return k.apply(this,arguments)})},{key:"put",value:(m=r(a().m((function t(r,n,e){var u,s,i,c,o;return a().w((function(t){for(;;)switch(t.n){case 0:return s=this._http,i=r,c=n,t.n=1,this.addCustomHeader(e);case 1:return o=t.v,t.n=2,s.put.call(s,i,c,o);case 2:return u=t.v,t.a(2,u.data)}}),t,this)}))),function(t,r,n){return m.apply(this,arguments)})},{key:"tryPut",value:(w=r(a().m((function t(r,n,e){return a().w((function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,this.addCustomHeader(e);case 1:return t.n=2,this.put(r,n,e);case 2:return t.a(2,t.v);case 3:return t.p=3,t.v,t.a(2,null)}}),t,this,[[0,3]])}))),function(t,r,n){return w.apply(this,arguments)})},{key:"patch",value:(y=r(a().m((function t(r,n,e){var u,s,i,c,o;return a().w((function(t){for(;;)switch(t.n){case 0:return s=this._http,i=r,c=n,t.n=1,this.addCustomHeader(e);case 1:return o=t.v,t.n=2,s.patch.call(s,i,c,o);case 2:return u=t.v,t.a(2,u.data)}}),t,this)}))),function(t,r,n){return y.apply(this,arguments)})},{key:"tryPatch",value:(d=r(a().m((function t(r,n,e){return a().w((function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,this.addCustomHeader(e);case 1:return t.n=2,this.patch(r,n,e);case 2:return t.a(2,t.v);case 3:return t.p=3,t.v,t.a(2,null)}}),t,this,[[0,3]])}))),function(t,r,n){return d.apply(this,arguments)})},{key:"tryPost",value:(v=r(a().m((function t(r,n,e){return a().w((function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,this.post(r,n,e);case 1:return t.a(2,t.v);case 2:return t.p=2,t.v,t.a(2,null)}}),t,this,[[0,2]])}))),function(t,r,n){return v.apply(this,arguments)})},{key:"delete",value:(c=r(a().m((function t(r,n){var e,u,s,i;return a().w((function(t){for(;;)switch(t.n){case 0:return u=this._http,s=r,t.n=1,this.addCustomHeader(n);case 1:return i=t.v,t.n=2,u.delete.call(u,s,i);case 2:return e=t.v,t.a(2,e.data)}}),t,this)}))),function(t,r){return c.apply(this,arguments)})},{key:"tryDelete",value:(i=r(a().m((function t(r,n){var e,u,s;return a().w((function(t){for(;;)switch(t.n){case 0:return t.p=0,e=this,u=r,t.n=1,this.addCustomHeader(n);case 1:return s=t.v,t.n=2,e.delete.call(e,u,s);case 2:return t.a(2,t.v);case 3:return t.p=3,t.v,t.a(2,null)}}),t,this,[[0,3]])}))),function(t,r){return i.apply(this,arguments)})},{key:"tryPushNotify",value:(e=r(a().m((function t(r){var n,e,u,s=arguments;return a().w((function(t){for(;;)switch(t.n){case 0:for(t.p=0,n=s.length,e=new Array(n>1?n-1:0),u=1;u<n;u++)e[u-1]=s[u];return t.n=1,this.pushNotify.apply(this,[r].concat(e));case 1:return t.a(2,t.v);case 2:t.p=2,t.v;case 3:return t.a(2)}}),t,this,[[0,2]])}))),function(t){return e.apply(this,arguments)})},{key:"pushNotify",value:(n=r(a().m((function t(r){var n,e,u,s,i,c,o,h=arguments;return a().w((function(t){for(;;)switch(t.n){case 0:for(t.p=0,n=h.length,e=new Array(n>1?n-1:0),u=1;u<n;u++)e[u-1]=h[u];return t.n=1,r.bind(this).apply(void 0,e);case 1:return t.a(2,t.v);case 2:throw t.p=2,o=t.v,(c=null===(s=(i=o).response)||void 0===s?void 0:s.data)&&Object.keys(c).forEach((function(t){var r=c[t];Array.isArray(r)&&r.forEach((function(t){var r;null==p||null===(r=p.ApiAlert)||void 0===r||r.PushError(t)}))})),i;case 3:return t.a(2)}}),t,this,[[0,2]])}))),function(t){return n.apply(this,arguments)})}]);var n,e,i,c,v,d,y,w,m,k,g,C,H,_}(),d=function(r){function e(){var t;u(this,e);for(var r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];return t=i(this,e,[].concat(n)),s(t,"cancel",(function(){t.trigger&&t.trigger(),c(e,"abort",t)([])})),t}return n(e,r),t(e)}(e(AbortController));export{d as CancelAction,v as default};
2
2
  //# sourceMappingURL=service-base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-base.js","sources":["../../../src/http-service/base/service-base.ts"],"sourcesContent":["import { authService } from 'partner-oidc-auth'\r\nimport type { AxiosError, AxiosInstance, AxiosRequestConfig, InternalAxiosRequestConfig } from 'axios'\r\nimport axios from 'axios'\r\nimport { HttpService } from './gateway'\r\nimport { handleResponseError, ApiAlertContext } from './helpers'\r\n\r\n/**\r\n * Base service class for HTTP operations with authentication and error handling\r\n * Provides common CRUD operations with automatic token management and retry logic\r\n */\r\nexport default class ServiceBase {\r\n private _http: AxiosInstance\r\n constructor(http?: AxiosInstance) {\r\n if (http) {\r\n this._http = http\r\n } else {\r\n this._http = HttpService\r\n }\r\n this.mapResponse()\r\n }\r\n /**\r\n * Maps response and request interceptors for handling authentication and errors\r\n * Automatically adds authorization headers and retries requests on 401 errors\r\n */\r\n mapResponse = () => {\r\n this._http.interceptors.response.use(\r\n (res) => res,\r\n (err) => this.tryFetchToken(err, handleResponseError)\r\n )\r\n this._http.interceptors.request.use((req) => {\r\n return this.interuptHeader(req)\r\n })\r\n }\r\n /**\r\n * Tries to fetch a new token if the current one is expired\r\n * @param error - The axios error containing response data\r\n * @param next - The next middleware function to call\r\n * @returns A promise resolving to the response data or an error\r\n */\r\n tryFetchToken = async (error: AxiosError, next: (error: AxiosError) => Promise<any>): Promise<any> => {\r\n const originalRequest = error.config\r\n if (error?.response?.status === 401 && originalRequest) {\r\n await authService.signIn({})\r\n await this.interuptHeader(originalRequest)\r\n return axios(originalRequest)\r\n }\r\n return next(error)\r\n }\r\n private _token?: string\r\n /**\r\n * Sets the token to be used for authentication\r\n * @param token - The token string to set\r\n */\r\n setToken(token?: string) {\r\n this._token = token\r\n }\r\n /**\r\n * Gets the current token, fetching a new one if not set\r\n * @returns A promise resolving to the token string\r\n */\r\n getToken = async () => {\r\n return this._token === undefined ? await authService.getAccessToken() : this._token\r\n }\r\n /**\r\n * Adds custom headers to the request configuration\r\n * @param config - The Axios request configuration object\r\n * @returns A promise resolving to the updated configuration object\r\n */\r\n async addCustomHeader(config?: AxiosRequestConfig) {\r\n if (!config) {\r\n config = { headers: {} }\r\n }\r\n if (!config.headers) {\r\n config.headers = {}\r\n }\r\n return config\r\n }\r\n /**\r\n * Intercepts the request to add the authorization token\r\n * @param config - The Axios request configuration object\r\n * @returns The updated configuration object with the token added\r\n */\r\n private async interuptHeader(config: InternalAxiosRequestConfig) {\r\n await this.addtoken(config)\r\n return config\r\n }\r\n /**\r\n * Adds the authorization token to the request headers\r\n * @param config - The Axios request configuration object\r\n * @returns The updated configuration object with the token added\r\n */\r\n private addtoken = async (config?: AxiosRequestConfig) => {\r\n const _token = await this.getToken()\r\n if (_token && config?.headers) {\r\n config.headers.Authorization = 'Bearer ' + _token\r\n }\r\n return config\r\n }\r\n /**\r\n * HTTP GET request with automatic authentication\r\n * @param url - The request URL\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data\r\n */\r\n async get<TModel>(url: string, config?: AxiosRequestConfig | undefined) {\r\n const response = await this._http.get<TModel>(url, await this.addCustomHeader(config))\r\n return response.data\r\n }\r\n /**\r\n * HTTP GET request with error handling\r\n * @param url - The request URL\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data or null if an error occurs\r\n */\r\n async tryGet<TModel>(url: string, config?: AxiosRequestConfig | undefined) {\r\n try {\r\n return this.get<TModel>(url, config)\r\n } catch {\r\n return null\r\n }\r\n }\r\n /**\r\n * HTTP POST request with automatic authentication\r\n * @param url - The request URL\r\n * @param data - Optional data to send in the request body\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data\r\n */\r\n async post<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined) {\r\n const response = await this._http.post<TModel>(url, data, await this.addCustomHeader(config))\r\n return response.data\r\n }\r\n /**\r\n * HTTP PUT request with automatic authentication\r\n * @param url - The request URL\r\n * @param data - Optional data to send in the request body\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data\r\n */\r\n async put<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined) {\r\n const response = await this._http.put<TModel>(url, data, await this.addCustomHeader(config))\r\n return response.data\r\n }\r\n /**\r\n * HTTP PUT request with error handling\r\n * @param url - The request URL\r\n * @param data - Optional data to send in the request body\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data or null if an error occurs\r\n */\r\n async tryPut<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined) {\r\n try {\r\n await this.addCustomHeader(config)\r\n return await this.put<TModel>(url, data, config)\r\n } catch (error) {\r\n // processError(error as any)\r\n return null\r\n }\r\n }\r\n /**\r\n * HTTP POST request with error handling\r\n * @param url - The request URL\r\n * @param data - Optional data to send in the request body\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data or null if an error occurs\r\n */\r\n async tryPost<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined) {\r\n try {\r\n return await this.post<TModel>(url, data, config)\r\n } catch (error) {\r\n // processError(error as any)\r\n return null\r\n }\r\n }\r\n /**\r\n * HTTP DELETE request with automatic authentication\r\n * @param url - The request URL\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data\r\n */\r\n async delete<TModel>(url: string, config?: AxiosRequestConfig | undefined) {\r\n const response = await this._http.delete<TModel>(url, await this.addCustomHeader(config))\r\n return response.data\r\n }\r\n /**\r\n * HTTP DELETE request with error handling\r\n * @param url - The request URL\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data or null if an error occurs\r\n */\r\n async tryDelete<TModel>(url: string, config?: AxiosRequestConfig | undefined) {\r\n try {\r\n return await this.delete<TModel>(url, await this.addCustomHeader(config))\r\n } catch (error) {\r\n // processError(error as any)\r\n return null\r\n }\r\n }\r\n /**\r\n * Push notification with error handling\r\n * @param action - The function to execute\r\n * @param p - Parameters to pass to the function\r\n * @returns Promise with the result of the function execution\r\n */\r\n async tryPushNotify<TFunc extends (...param: any[]) => any>(action: TFunc, ...p: Parameters<TFunc>) {\r\n try {\r\n return await this.pushNotify(action, ...p)\r\n } catch (err) {}\r\n }\r\n /**\r\n * Push notification with error handling\r\n * @param action - The function to execute\r\n * @param p - Parameters to pass to the function\r\n * @returns Promise with the result of the function execution\r\n */\r\n async pushNotify<TFunc extends (...param: any[]) => any>(action: TFunc, ...p: Parameters<TFunc>): Promise<ReturnType<TFunc>> {\r\n try {\r\n return await action.bind(this)(...p)\r\n } catch (err) {\r\n const error = err as AxiosError\r\n const data = error.response?.data as any\r\n if (data) {\r\n const keys = Object.keys(data)\r\n keys.forEach((key) => {\r\n const errors = data[key] as string[]\r\n if (Array.isArray(errors)) {\r\n errors.forEach((message) => {\r\n ApiAlertContext?.ApiAlert?.PushError(message)\r\n })\r\n }\r\n })\r\n }\r\n throw error\r\n }\r\n }\r\n}\r\n/**\r\n * CancelAction class extends AbortController to provide a cancel method\r\n * This class can be used to cancel ongoing HTTP requests\r\n */\r\nexport class CancelAction extends AbortController {\r\n cancel = () => {\r\n this.trigger && this.trigger()\r\n super.abort()\r\n }\r\n trigger?: () => void\r\n}\r\n"],"names":["ServiceBase","_createClass","http","_this","this","_classCallCheck","_defineProperty","_http","interceptors","response","use","res","err","tryFetchToken","handleResponseError","request","req","interuptHeader","_ref","_asyncToGenerator","_regenerator","m","_callee","error","next","_error$response","originalRequest","w","_context","n","config","status","authService","signIn","a","axios","_x","_x2","apply","arguments","_callee2","_t","_context2","undefined","_token","getAccessToken","v","_ref3","_callee3","_context3","getToken","headers","Authorization","_x3","HttpService","mapResponse","key","value","token","_addCustomHeader","_callee4","_context4","_x4","_interuptHeader","_callee5","_context5","addtoken","_x5","_get","_callee6","url","_t2","_t3","_t4","_context6","addCustomHeader","get","call","data","_x6","_x7","_tryGet","_callee7","_context7","p","_x8","_x9","_post","_callee8","_t6","_t7","_t8","_t9","_context8","post","_x0","_x1","_x10","_put","_callee9","_t0","_t1","_t10","_t11","_context9","put","_x11","_x12","_x13","_tryPut","_callee0","_context0","_x14","_x15","_x16","_tryPost","_callee1","_context1","_x17","_x18","_x19","_delete2","_callee10","_t14","_t15","_t16","_context10","_x20","_x21","_tryDelete","_callee11","_t17","_t18","_t19","_context11","_x22","_x23","_tryPushNotify","_callee12","action","_len","_key","_args12","_context12","length","Array","pushNotify","concat","_x24","_pushNotify","_callee13","_len2","_key2","_error$response2","_t22","_args13","_context13","bind","Object","keys","forEach","errors","isArray","message","_ApiAlertContext$ApiA","ApiAlertContext","ApiAlert","PushError","_x25","CancelAction","_AbortController","_this2","_len3","args","_key3","_callSuper","trigger","_superPropGet","_inherits","_wrapNativeSuper","AbortController"],"mappings":"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"}
1
+ {"version":3,"file":"service-base.js","sources":["../../../src/http-service/base/service-base.ts"],"sourcesContent":["import { authService } from 'partner-oidc-auth'\r\nimport type { AxiosError, AxiosInstance, AxiosRequestConfig, InternalAxiosRequestConfig } from 'axios'\r\nimport axios from 'axios'\r\nimport { HttpService } from './gateway'\r\nimport { handleResponseError, ApiAlertContext } from './helpers'\r\n\r\n/**\r\n * Base service class for HTTP operations with authentication and error handling\r\n * Provides common CRUD operations with automatic token management and retry logic\r\n */\r\nexport default class ServiceBase {\r\n private _http: AxiosInstance\r\n constructor(http?: AxiosInstance) {\r\n if (http) {\r\n this._http = http\r\n } else {\r\n this._http = HttpService\r\n }\r\n this.mapResponse()\r\n }\r\n /**\r\n * Maps response and request interceptors for handling authentication and errors\r\n * Automatically adds authorization headers and retries requests on 401 errors\r\n */\r\n mapResponse = () => {\r\n this._http.interceptors.response.use(\r\n (res) => res,\r\n (err) => this.tryFetchToken(err, handleResponseError)\r\n )\r\n this._http.interceptors.request.use((req) => {\r\n return this.interuptHeader(req)\r\n })\r\n }\r\n /**\r\n * Tries to fetch a new token if the current one is expired\r\n * @param error - The axios error containing response data\r\n * @param next - The next middleware function to call\r\n * @returns A promise resolving to the response data or an error\r\n */\r\n tryFetchToken = async (error: AxiosError, next: (error: AxiosError) => Promise<any>): Promise<any> => {\r\n const originalRequest = error.config\r\n if (error?.response?.status === 401 && originalRequest) {\r\n await authService.signIn({})\r\n await this.interuptHeader(originalRequest)\r\n return axios(originalRequest)\r\n }\r\n return next(error)\r\n }\r\n private _token?: string\r\n /**\r\n * Sets the token to be used for authentication\r\n * @param token - The token string to set\r\n */\r\n setToken(token?: string) {\r\n this._token = token\r\n }\r\n /**\r\n * Gets the current token, fetching a new one if not set\r\n * @returns A promise resolving to the token string\r\n */\r\n getToken = async () => {\r\n return this._token === undefined ? await authService.getAccessToken() : this._token\r\n }\r\n /**\r\n * Adds custom headers to the request configuration\r\n * @param config - The Axios request configuration object\r\n * @returns A promise resolving to the updated configuration object\r\n */\r\n async addCustomHeader(config?: AxiosRequestConfig) {\r\n if (!config) {\r\n config = { headers: {} }\r\n }\r\n if (!config.headers) {\r\n config.headers = {}\r\n }\r\n return config\r\n }\r\n /**\r\n * Intercepts the request to add the authorization token\r\n * @param config - The Axios request configuration object\r\n * @returns The updated configuration object with the token added\r\n */\r\n private async interuptHeader(config: InternalAxiosRequestConfig) {\r\n await this.addtoken(config)\r\n return config\r\n }\r\n /**\r\n * Adds the authorization token to the request headers\r\n * @param config - The Axios request configuration object\r\n * @returns The updated configuration object with the token added\r\n */\r\n private addtoken = async (config?: AxiosRequestConfig) => {\r\n const _token = await this.getToken()\r\n if (_token && config?.headers) {\r\n config.headers.Authorization = 'Bearer ' + _token\r\n }\r\n return config\r\n }\r\n /**\r\n * HTTP GET request with automatic authentication\r\n * @param url - The request URL\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data\r\n */\r\n async get<TModel>(url: string, config?: AxiosRequestConfig | undefined) {\r\n const response = await this._http.get<TModel>(url, await this.addCustomHeader(config))\r\n return response.data\r\n }\r\n /**\r\n * HTTP GET request with error handling\r\n * @param url - The request URL\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data or null if an error occurs\r\n */\r\n async tryGet<TModel>(url: string, config?: AxiosRequestConfig | undefined) {\r\n try {\r\n return this.get<TModel>(url, config)\r\n } catch {\r\n return null\r\n }\r\n }\r\n /**\r\n * HTTP POST request with automatic authentication\r\n * @param url - The request URL\r\n * @param data - Optional data to send in the request body\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data\r\n */\r\n async post<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined) {\r\n const response = await this._http.post<TModel>(url, data, await this.addCustomHeader(config))\r\n return response.data\r\n }\r\n /**\r\n * HTTP PUT request with automatic authentication\r\n * @param url - The request URL\r\n * @param data - Optional data to send in the request body\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data\r\n */\r\n async put<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined) {\r\n const response = await this._http.put<TModel>(url, data, await this.addCustomHeader(config))\r\n return response.data\r\n }\r\n /**\r\n * HTTP PUT request with error handling\r\n * @param url - The request URL\r\n * @param data - Optional data to send in the request body\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data or null if an error occurs\r\n */\r\n async tryPut<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined) {\r\n try {\r\n await this.addCustomHeader(config)\r\n return await this.put<TModel>(url, data, config)\r\n } catch (error) {\r\n // processError(error as any)\r\n return null\r\n }\r\n }\r\n /**\r\n * HTTP PATCH request with automatic authentication\r\n * @param url - The request URL\r\n * @param data - Optional data to send in the request body\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data\r\n */\r\n async patch<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined) {\r\n const response = await this._http.patch<TModel>(url, data, await this.addCustomHeader(config))\r\n return response.data\r\n }\r\n /**\r\n * HTTP PATCH request with error handling\r\n * @param url - The request URL\r\n * @param data - Optional data to send in the request body\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data or null if an error occurs\r\n */\r\n async tryPatch<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined) {\r\n try {\r\n await this.addCustomHeader(config)\r\n return await this.patch<TModel>(url, data, config)\r\n } catch (error) {\r\n // processError(error as any)\r\n return null\r\n }\r\n }\r\n /**\r\n * HTTP POST request with error handling\r\n * @param url - The request URL\r\n * @param data - Optional data to send in the request body\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data or null if an error occurs\r\n */\r\n async tryPost<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined) {\r\n try {\r\n return await this.post<TModel>(url, data, config)\r\n } catch (error) {\r\n // processError(error as any)\r\n return null\r\n }\r\n }\r\n /**\r\n * HTTP DELETE request with automatic authentication\r\n * @param url - The request URL\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data\r\n */\r\n async delete<TModel>(url: string, config?: AxiosRequestConfig | undefined) {\r\n const response = await this._http.delete<TModel>(url, await this.addCustomHeader(config))\r\n return response.data\r\n }\r\n /**\r\n * HTTP DELETE request with error handling\r\n * @param url - The request URL\r\n * @param config - Optional axios configuration\r\n * @returns Promise with the response data or null if an error occurs\r\n */\r\n async tryDelete<TModel>(url: string, config?: AxiosRequestConfig | undefined) {\r\n try {\r\n return await this.delete<TModel>(url, await this.addCustomHeader(config))\r\n } catch (error) {\r\n // processError(error as any)\r\n return null\r\n }\r\n }\r\n /**\r\n * Push notification with error handling\r\n * @param action - The function to execute\r\n * @param p - Parameters to pass to the function\r\n * @returns Promise with the result of the function execution\r\n */\r\n async tryPushNotify<TFunc extends (...param: any[]) => any>(action: TFunc, ...p: Parameters<TFunc>) {\r\n try {\r\n return await this.pushNotify(action, ...p)\r\n } catch (err) {}\r\n }\r\n /**\r\n * Push notification with error handling\r\n * @param action - The function to execute\r\n * @param p - Parameters to pass to the function\r\n * @returns Promise with the result of the function execution\r\n */\r\n async pushNotify<TFunc extends (...param: any[]) => any>(action: TFunc, ...p: Parameters<TFunc>): Promise<ReturnType<TFunc>> {\r\n try {\r\n return await action.bind(this)(...p)\r\n } catch (err) {\r\n const error = err as AxiosError\r\n const data = error.response?.data as any\r\n if (data) {\r\n const keys = Object.keys(data)\r\n keys.forEach((key) => {\r\n const errors = data[key] as string[]\r\n if (Array.isArray(errors)) {\r\n errors.forEach((message) => {\r\n ApiAlertContext?.ApiAlert?.PushError(message)\r\n })\r\n }\r\n })\r\n }\r\n throw error\r\n }\r\n }\r\n}\r\n/**\r\n * CancelAction class extends AbortController to provide a cancel method\r\n * This class can be used to cancel ongoing HTTP requests\r\n */\r\nexport class CancelAction extends AbortController {\r\n cancel = () => {\r\n this.trigger && this.trigger()\r\n super.abort()\r\n }\r\n trigger?: () => void\r\n}\r\n"],"names":["ServiceBase","_createClass","http","_this","this","_classCallCheck","_defineProperty","_http","interceptors","response","use","res","err","tryFetchToken","handleResponseError","request","req","interuptHeader","_ref","_asyncToGenerator","_regenerator","m","_callee","error","next","_error$response","originalRequest","w","_context","n","config","status","authService","signIn","a","axios","_x","_x2","apply","arguments","_callee2","_t","_context2","undefined","_token","getAccessToken","v","_ref3","_callee3","_context3","getToken","headers","Authorization","_x3","HttpService","mapResponse","key","value","token","_addCustomHeader","_callee4","_context4","_x4","_interuptHeader","_callee5","_context5","addtoken","_x5","_get","_callee6","url","_t2","_t3","_t4","_context6","addCustomHeader","get","call","data","_x6","_x7","_tryGet","_callee7","_context7","p","_x8","_x9","_post","_callee8","_t6","_t7","_t8","_t9","_context8","post","_x0","_x1","_x10","_put","_callee9","_t0","_t1","_t10","_t11","_context9","put","_x11","_x12","_x13","_tryPut","_callee0","_context0","_x14","_x15","_x16","_patch","_callee1","_t13","_t14","_t15","_t16","_context1","patch","_x17","_x18","_x19","_tryPatch","_callee10","_context10","_x20","_x21","_x22","_tryPost","_callee11","_context11","_x23","_x24","_x25","_delete2","_callee12","_t19","_t20","_t21","_context12","_x26","_x27","_tryDelete","_callee13","_t22","_t23","_t24","_context13","_x28","_x29","_tryPushNotify","_callee14","action","_len","_key","_args14","_context14","length","Array","pushNotify","concat","_x30","_pushNotify","_callee15","_len2","_key2","_error$response2","_t27","_args15","_context15","bind","Object","keys","forEach","errors","isArray","message","_ApiAlertContext$ApiA","ApiAlertContext","ApiAlert","PushError","_x31","CancelAction","_AbortController","_this2","_len3","args","_key3","_callSuper","trigger","_superPropGet","_inherits","_wrapNativeSuper","AbortController"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{objectWithoutProperties as e,objectSpread2 as o,defineProperty as r,inherits as t,createClass as a,classCallCheck as i,callSuper as l,toConsumableArray as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s}from"react/jsx-runtime";import{Component as d}from"react";import{styled as u,Box as p}from"@mui/material";import{DataGrid as c}from"@mui/x-data-grid";import{mergeObjects as m}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{TableBaseContext as g}from"./context.js";import{customFilterOperators as h}from"./custom.filter-operators.js";import f,{dinoTableClasses as v}from"./helpers.js";import b from"./toolbar-pannel.js";import y,{mapGlobalModalContext as C}from"../api-context/global-modal.js";var P=["children"];function M(e){return function(){function u(t){var a;return i(this,u),a=l(this,u,[t]),r(a,"setTableQueryParams",(function(e){a.tableQueryParams=m({},a.tableQueryParams,e)})),r(a,"renderWrapContext",(function(e){return s(y,{children:C((function(o){return s(g.Provider,{value:{showModal:o.show,closeModal:o.close},children:e})}))})})),r(a,"getDataGridProps",(function(){var o,r,t,i,l=a.mergeConfig,n={getRowId:e.getRowId,columns:a.columns,rows:null!==(o=null===(r=a.props.data)||void 0===r?void 0:r.items)&&void 0!==o?o:[],checkboxSelection:!0,pagination:!0,density:null!==(t=null===(i=a.props.slots)||void 0===i?void 0:i.density)&&void 0!==t?t:"standard",initialState:f.mapInitialState(a.props.query,{columns:{columnVisibilityModel:e.columnVisibilityModel}}),filterDebounceMs:800,sx:{border:0},slots:{toolbar:l.toolbar},rowSelectionModel:a.rowSelecteds,onRowSelectionModelChange:a.handleRowSelectionChange};if("server"===e.featureMode){var s,d,u={filterMode:"server",sortingMode:"server",paginationMode:"server",onPaginationModelChange:a.onPaginationModelChange,onFilterModelChange:a.onFilterModelChange,onSortModelChange:a.onSortModelChange,rowCount:null!==(s=null===(d=a.props.data)||void 0===d?void 0:d.rowTotal)&&void 0!==s?s:0,paginationModel:a.tableQueryParams.pagination,filterModel:a.tableQueryParams.filter,sortModel:f.mapSortModel(a.tableQueryParams.sort),loading:a.tableQueryParams.loading};Object.assign(n,u)}return m(n,a.mergeConfig.dataGridProps)})),r(a,"initialColumns",(function(){var r,t,i=a.mergeConfig.ActionRow,l=[];return i&&l.push(o({field:"Actions",minWidth:100,headerAlign:"right",align:"right",filterable:!1,sortable:!1,renderCell:function(e){return s(i,{value:e.row})}},e.actionRow)),r=l,t=Object.keys(e.columns).map((function(r){var t=o({field:r},e.columns[r]);return t.filterOperators=e.filterOperators?e.filterOperators(t):h(t),t})),r&&r.length>0&&t.push.apply(t,n(r)),t})),r(a,"onPaginationModelChange",(function(e,o){a.setTableQueryParams({pagination:e,detail:"pagination"}),a.handleChange()})),r(a,"onFilterModelChange",(function(e,o){var r,t=a.tableQueryParams.pagination;a.setTableQueryParams({filter:e,pagination:{page:0,pageSize:null!==(r=null==t?void 0:t.pageSize)&&void 0!==r?r:25},detail:f.detectSearchType(e)}),a.handleChange()})),r(a,"onSortModelChange",(function(e,o){var r,t,i,l,n,s=e,d=a.tableQueryParams.sort;null!=d&&d.length&&!s.length&&(s=(null==d||null===(r=d[0])||void 0===r?void 0:r.field)===(null===(t=a.defaultTableQueryParams.sort)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.field)?[{field:null===(i=d[0])||void 0===i?void 0:i.field,sort:"desc"===(null===(l=d[0])||void 0===l?void 0:l.sort)?"asc":"desc"}]:null!==(n=a.defaultTableQueryParams.sort)&&void 0!==n?n:[]);a.setTableQueryParams({sort:s,detail:"sort"}),a.handleChange()})),r(a,"handleChange",(function(){a.props.onChange&&a.props.onChange(a.tableQueryParams)})),r(a,"handleRowSelectionChange",(function(e,o){a.mergeConfig.maxSelcion&&e.length>a.mergeConfig.maxSelcion?a.rowSelecteds=e.slice(0,a.mergeConfig.maxSelcion):a.rowSelecteds=e,a.props.onRowSelectionChange&&a.props.onRowSelectionChange(a.rowSelecteds,o),a.forceUpdate()})),a.columns=a.initialColumns(),a.tableQueryParams=o({},t.query),a.defaultTableQueryParams=a.tableQueryParams,a.rowSelecteds=[],a}return t(u,d),a(u,[{key:"mergeConfig",get:function(){var r,t,a,i,l,n,d,u=m({},null==e?void 0:e.toolbarProps,null===(r=this.props.slots)||void 0===r?void 0:r.toolbarProps);return{toolbar:null!==(t=null===(a=this.props.slots)||void 0===a?void 0:a.toolbar)&&void 0!==t?t:function(){return s(b,o({},u))},ActionRow:null===(i=this.props.slots)||void 0===i?void 0:i.actionRow,columnVisibilityModel:e.columnVisibilityModel,maxSelcion:null!==(l=null===(n=this.props.slots)||void 0===n?void 0:n.maxSelection)&&void 0!==l?l:e.maxSelection,dataGridProps:m({},e.dataGridProps,null===(d=this.props.slots)||void 0===d?void 0:d.dataGridProps)}}},{key:"shouldComponentUpdate",value:function(o){return"server"!==e.featureMode||f.equalTableQueryParams(o.query,this.props.query)?"server"!==e.featureMode:(this.setTableQueryParams(null!==(r=o.query)&&void 0!==r?r:{}),!0);var r}},{key:"render",value:function(){return this.renderWrapContext(s(S,{children:s(c,o({},this.getDataGridProps()))}))}}])}()}var S=u((function(r){var t=r.children,a=e(r,P);return s(p,o(o({},a),{},{children:s("div",{children:t})}))}))(r({flex:1,position:"relative","& > div":{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflowY:"auto"},"& .MuiDataGrid-root":{"--unstable_DataGrid-radius":0}},"& .MuiDataGrid-cell.".concat(v.whiteSpacePre," .MuiDataGrid-cellContent"),{whiteSpace:"pre"}));export{M as default};
1
+ import{objectWithoutProperties as e,objectSpread2 as o,defineProperty as r,inherits as t,createClass as a,classCallCheck as i,callSuper as l,toConsumableArray as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s}from"react/jsx-runtime";import{Component as d}from"react";import{styled as u,Box as p}from"@mui/material";import{DataGrid as c}from"@mui/x-data-grid";import{mergeObjects as m}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{TableBaseContext as g}from"./context.js";import{customFilterOperators as h}from"./custom.filter-operators.js";import f,{dinoTableClasses as v}from"./helpers.js";import b from"./toolbar-pannel.js";import y,{mapGlobalModalContext as C}from"../api-context/global-modal.js";var P=["children"];function M(e){return function(){function u(t){var a;return i(this,u),a=l(this,u,[t]),r(a,"setTableQueryParams",(function(e){a.tableQueryParams=m({},a.tableQueryParams,e)})),r(a,"renderWrapContext",(function(e){return s(y,{children:C((function(o){return s(g.Provider,{value:{showModal:o.show,closeModal:o.close},children:e})}))})})),r(a,"getDataGridProps",(function(){var o,r,t,i,l=a.mergeConfig,n={getRowId:e.getRowId,columns:a.columns,rows:null!==(o=null===(r=a.props.data)||void 0===r?void 0:r.items)&&void 0!==o?o:[],checkboxSelection:!0,pagination:!0,density:null!==(t=null===(i=a.props.slots)||void 0===i?void 0:i.density)&&void 0!==t?t:"standard",initialState:f.mapInitialState(a.props.query,{columns:{columnVisibilityModel:e.columnVisibilityModel}}),filterDebounceMs:800,sx:{border:0},slots:{toolbar:l.toolbar},rowSelectionModel:a.rowSelecteds,onRowSelectionModelChange:a.handleRowSelectionChange};if("server"===e.featureMode){var s,d,u={filterMode:"server",sortingMode:"server",paginationMode:"server",onPaginationModelChange:a.onPaginationModelChange,onFilterModelChange:a.onFilterModelChange,onSortModelChange:a.onSortModelChange,rowCount:null!==(s=null===(d=a.props.data)||void 0===d?void 0:d.rowTotal)&&void 0!==s?s:0,paginationModel:a.tableQueryParams.pagination,filterModel:a.tableQueryParams.filter,sortModel:f.mapSortModel(a.tableQueryParams.sort),loading:a.tableQueryParams.loading};Object.assign(n,u)}return m(n,a.mergeConfig.dataGridProps)})),r(a,"initialColumns",(function(){var r,t,i=a.mergeConfig.ActionRow,l=[];return i&&l.push(o({field:"Actions",minWidth:100,headerAlign:"right",align:"right",filterable:!1,sortable:!1,renderCell:function(e){return s(i,{value:e.row})}},e.actionRow)),r=l,t=Object.keys(e.columns).map((function(r){var t=o({field:r},e.columns[r]);return t.filterOperators=e.filterOperators?e.filterOperators(t):h(t),t})),r&&r.length>0&&t.push.apply(t,n(r)),t})),r(a,"onPaginationModelChange",(function(e,o){a.setTableQueryParams({pagination:e,detail:"pagination"}),a.handleChange()})),r(a,"onFilterModelChange",(function(e,o){var r,t=a.tableQueryParams.pagination;a.setTableQueryParams({filter:e,pagination:{page:0,pageSize:null!==(r=null==t?void 0:t.pageSize)&&void 0!==r?r:25},detail:f.detectSearchType(e)}),a.handleChange()})),r(a,"onSortModelChange",(function(e,o){var r,t,i,l,n,s=e,d=a.tableQueryParams.sort;null!=d&&d.length&&!s.length&&(s=(null==d||null===(r=d[0])||void 0===r?void 0:r.field)===(null===(t=a.defaultTableQueryParams.sort)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.field)?[{field:null===(i=d[0])||void 0===i?void 0:i.field,sort:"desc"===(null===(l=d[0])||void 0===l?void 0:l.sort)?"asc":"desc"}]:null!==(n=a.defaultTableQueryParams.sort)&&void 0!==n?n:[]);a.setTableQueryParams({sort:s,detail:"sort"}),a.handleChange()})),r(a,"handleChange",(function(){a.props.onChange&&a.props.onChange(a.tableQueryParams)})),r(a,"handleRowSelectionChange",(function(e,o){a.mergeConfig.maxSelcion&&e.length>a.mergeConfig.maxSelcion?a.rowSelecteds=e.slice(0,a.mergeConfig.maxSelcion):a.rowSelecteds=e,a.props.onRowSelectionChange&&a.props.onRowSelectionChange(a.rowSelecteds,o),a.forceUpdate()})),a.columns=a.initialColumns(),a.tableQueryParams=o({},t.query),a.defaultTableQueryParams=a.tableQueryParams,a.rowSelecteds=[],a}return t(u,d),a(u,[{key:"mergeConfig",get:function(){var r,t,a,i,l,n,d,u=m({},null==e?void 0:e.toolbarProps,null===(r=this.props.slots)||void 0===r?void 0:r.toolbarProps);return{toolbar:null!==(t=null===(a=this.props.slots)||void 0===a?void 0:a.toolbar)&&void 0!==t?t:function(){return s(b,o({},u))},ActionRow:null===(i=this.props.slots)||void 0===i?void 0:i.actionRow,columnVisibilityModel:e.columnVisibilityModel,maxSelcion:null!==(l=null===(n=this.props.slots)||void 0===n?void 0:n.maxSelection)&&void 0!==l?l:e.maxSelection,dataGridProps:m({},e.dataGridProps,null===(d=this.props.slots)||void 0===d?void 0:d.dataGridProps)}}},{key:"shouldComponentUpdate",value:function(o){return"server"!==e.featureMode||f.equalTableQueryParams(o.query,this.props.query)?"server"!==e.featureMode:(this.setTableQueryParams(null!==(r=o.query)&&void 0!==r?r:{}),!0);var r}},{key:"render",value:function(){return this.renderWrapContext(s(S,{children:s(c,o({loading:this.props.loading},this.getDataGridProps()))}))}}])}()}var S=u((function(r){var t=r.children,a=e(r,P);return s(p,o(o({},a),{},{children:s("div",{children:t})}))}))(r({flex:1,position:"relative","& > div":{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflowY:"auto"},"& .MuiDataGrid-root":{"--unstable_DataGrid-radius":0}},"& .MuiDataGrid-cell.".concat(v.whiteSpacePre," .MuiDataGrid-cellContent"),{whiteSpace:"pre"}));export{M as default};
2
2
  //# sourceMappingURL=create.table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.table.js","sources":["../../src/table/create.table.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Box, BoxProps, styled } from '@mui/material'\r\nimport { DataGrid, DataGridProps, GridColDef, GridFeatureMode, GridFilterOperator } from '@mui/x-data-grid'\r\nimport { GridSortModel, GridValidRowModel, GridRowIdGetter, GridRowSelectionModel } from '@mui/x-data-grid'\r\nimport { GridCallbackDetails, GridColumnVisibilityModel, GridDensity, GridFilterModel, GridPaginationModel } from '@mui/x-data-grid'\r\nimport { mergeObjects } from '../utils'\r\nimport { TableBaseContext } from './context'\r\nimport { IActionRowProps } from './create.action-row'\r\nimport { customFilterOperators } from './custom.filter-operators'\r\nimport { GlobalModal, mapGlobalModalContext } from '../api-context'\r\nimport { ICustomGridColDef, ICustomGridFilterModel, ICustomGridSortModel, ITableData, ITableQueryParams } from './types'\r\nimport TableHelper, { dinoTableClasses } from './helpers'\r\nimport ToolbarPannel, { IToolbarPannelProps } from './toolbar-pannel'\r\n\r\nexport interface ITableSlots<T> {\r\n maxSelection?: number\r\n density?: GridDensity\r\n toolbar?: React.ComponentType<IToolbarPannelProps>\r\n actionRow?: React.ComponentType<IActionRowProps<T>>\r\n toolbarProps?: IToolbarPannelProps\r\n dataGridProps?: DataGridProps\r\n}\r\n\r\nexport type ITableParamsSlots<T> = Pick<ITableSlots<T>, 'maxSelection' | 'toolbarProps' | 'dataGridProps'>\r\n\r\nexport interface ITableProps<T> {\r\n data?: ITableData<T>\r\n query?: ITableQueryParams<T>\r\n onChange?: (query: ITableQueryParams<T>) => void\r\n onRowSelectionChange?: DataGridProps['onRowSelectionModelChange']\r\n slots?: ITableSlots<T>\r\n}\r\n\r\nexport interface ITableParams<T extends GridValidRowModel> extends ITableParamsSlots<T> {\r\n featureMode?: GridFeatureMode\r\n getRowId: GridRowIdGetter<T>\r\n columns: ICustomGridColDef<T>\r\n filterOperators?: (config: GridColDef) => GridFilterOperator[]\r\n columnVisibilityModel?: Partial<Record<keyof T, boolean>>\r\n actionRow?: Omit<GridColDef, 'field'>\r\n}\r\n\r\nfunction CreateTable<T extends GridValidRowModel>(params: ITableParams<T>): ComponentType<ITableProps<T>> {\r\n const generateColumns = (extendColDefs?: GridColDef[]) => {\r\n const columns = Object.keys(params.columns).map<GridColDef>((key) => {\r\n const obj = { field: key, ...params.columns[key] }\r\n obj.filterOperators = params.filterOperators ? params.filterOperators(obj) : customFilterOperators(obj)\r\n return obj\r\n })\r\n\r\n if (!!extendColDefs && extendColDefs.length > 0) columns.push(...extendColDefs)\r\n return columns\r\n }\r\n\r\n class Table extends Component<ITableProps<T>> {\r\n private tableQueryParams: ITableQueryParams<T>\r\n // private tableQueryParamsCache: ITableQueryParams<T> = {}\r\n private defaultTableQueryParams: ITableQueryParams<T>\r\n private columns: GridColDef<T>[]\r\n private rowSelecteds: GridRowSelectionModel\r\n constructor(props: ITableProps<T>) {\r\n super(props)\r\n this.columns = this.initialColumns()\r\n this.tableQueryParams = { ...props.query }\r\n this.defaultTableQueryParams = this.tableQueryParams\r\n this.rowSelecteds = []\r\n }\r\n\r\n get mergeConfig() {\r\n const toolbarPannelProps = mergeObjects({}, params?.toolbarProps, this.props.slots?.toolbarProps)\r\n return {\r\n toolbar: this.props.slots?.toolbar ?? (() => <ToolbarPannel {...toolbarPannelProps} />),\r\n ActionRow: this.props.slots?.actionRow,\r\n columnVisibilityModel: params.columnVisibilityModel,\r\n maxSelcion: this.props.slots?.maxSelection ?? params.maxSelection,\r\n dataGridProps: mergeObjects({}, params.dataGridProps, this.props.slots?.dataGridProps)\r\n }\r\n }\r\n\r\n setTableQueryParams = (value: Partial<ITableQueryParams<T>>) => {\r\n this.tableQueryParams = mergeObjects({}, this.tableQueryParams, value)\r\n }\r\n\r\n shouldComponentUpdate(nextProps: Readonly<ITableProps<T>>): boolean {\r\n if (params.featureMode === 'server' && !TableHelper.equalTableQueryParams(nextProps.query, this.props.query)) {\r\n this.setTableQueryParams(nextProps.query ?? {})\r\n return true\r\n } else if (params.featureMode !== 'server') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n render() {\r\n return this.renderWrapContext(\r\n <Wrap>\r\n <DataGrid {...this.getDataGridProps()} />\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderWrapContext = (children: React.ReactNode) => (\r\n <GlobalModal>\r\n {mapGlobalModalContext((context) => (\r\n <TableBaseContext.Provider value={{ showModal: context.show, closeModal: context.close }}>{children}</TableBaseContext.Provider>\r\n ))}\r\n </GlobalModal>\r\n )\r\n\r\n getDataGridProps = (): DataGridProps<T> => {\r\n const mergeConfig = this.mergeConfig\r\n const obj: DataGridProps<T> = {\r\n getRowId: params.getRowId,\r\n columns: this.columns,\r\n rows: this.props.data?.items ?? [],\r\n checkboxSelection: true,\r\n pagination: true,\r\n density: this.props.slots?.density ?? 'standard',\r\n initialState: TableHelper.mapInitialState(this.props.query, {\r\n columns: { columnVisibilityModel: params.columnVisibilityModel as GridColumnVisibilityModel }\r\n }),\r\n filterDebounceMs: 800,\r\n sx: { border: 0 },\r\n slots: { toolbar: mergeConfig.toolbar },\r\n rowSelectionModel: this.rowSelecteds,\r\n onRowSelectionModelChange: this.handleRowSelectionChange\r\n }\r\n if (params.featureMode === 'server') {\r\n const objServer: Partial<DataGridProps<T>> = {\r\n filterMode: 'server',\r\n sortingMode: 'server',\r\n paginationMode: 'server',\r\n onPaginationModelChange: this.onPaginationModelChange,\r\n onFilterModelChange: this.onFilterModelChange,\r\n onSortModelChange: this.onSortModelChange,\r\n rowCount: this.props.data?.rowTotal ?? 0,\r\n paginationModel: this.tableQueryParams.pagination,\r\n filterModel: this.tableQueryParams.filter as GridFilterModel,\r\n sortModel: TableHelper.mapSortModel(this.tableQueryParams.sort),\r\n loading: this.tableQueryParams.loading\r\n }\r\n Object.assign(obj, objServer)\r\n }\r\n return mergeObjects(obj, this.mergeConfig.dataGridProps)\r\n }\r\n\r\n initialColumns = (): GridColDef<T>[] => {\r\n const { ActionRow } = this.mergeConfig\r\n const list: GridColDef<T>[] = []\r\n if (!!ActionRow) {\r\n list.push({\r\n field: 'Actions',\r\n minWidth: 100,\r\n headerAlign: 'right',\r\n align: 'right',\r\n filterable: false,\r\n sortable: false,\r\n renderCell: (value) => <ActionRow value={value.row} />,\r\n ...params.actionRow\r\n })\r\n }\r\n return generateColumns(list)\r\n }\r\n\r\n onPaginationModelChange = (model: GridPaginationModel, details: GridCallbackDetails<'pagination'>) => {\r\n this.setTableQueryParams({ pagination: model, detail: 'pagination' })\r\n this.handleChange()\r\n }\r\n\r\n onFilterModelChange = (model: GridFilterModel, details: GridCallbackDetails<'filter'>) => {\r\n const { pagination } = this.tableQueryParams\r\n this.setTableQueryParams({\r\n filter: model as ICustomGridFilterModel<T>,\r\n pagination: { page: 0, pageSize: pagination?.pageSize ?? 25 },\r\n detail: TableHelper.detectSearchType(model)\r\n })\r\n this.handleChange()\r\n }\r\n\r\n onSortModelChange = (model: GridSortModel, details: GridCallbackDetails<any>) => {\r\n let sortValue = model as ICustomGridSortModel<T>\r\n const { sort } = this.tableQueryParams\r\n if (!!sort?.length && !sortValue.length) {\r\n if (sort?.[0]?.field === this.defaultTableQueryParams.sort?.[0]?.field) {\r\n sortValue = [{ field: sort[0]?.field, sort: sort[0]?.sort === 'desc' ? 'asc' : 'desc' }]\r\n } else {\r\n sortValue = this.defaultTableQueryParams.sort ?? []\r\n }\r\n }\r\n this.setTableQueryParams({ sort: sortValue, detail: 'sort' })\r\n this.handleChange()\r\n }\r\n\r\n handleChange = () => {\r\n this.props.onChange && this.props.onChange(this.tableQueryParams)\r\n }\r\n\r\n handleRowSelectionChange = (value: GridRowSelectionModel, details: GridCallbackDetails) => {\r\n if (this.mergeConfig.maxSelcion && value.length > this.mergeConfig.maxSelcion) {\r\n this.rowSelecteds = value.slice(0, this.mergeConfig.maxSelcion)\r\n } else {\r\n this.rowSelecteds = value\r\n }\r\n this.props.onRowSelectionChange && this.props.onRowSelectionChange(this.rowSelecteds, details)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n return Table\r\n}\r\n\r\nexport default CreateTable\r\n\r\nconst Wrap = styled(({ children, ...p }: BoxProps) => (\r\n <Box {...p}>\r\n <div>{children}</div>\r\n </Box>\r\n))({\r\n flex: 1,\r\n position: 'relative',\r\n '& > div': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n overflowY: 'auto'\r\n },\r\n '& .MuiDataGrid-root': {\r\n '--unstable_DataGrid-radius': 0\r\n },\r\n [`& .MuiDataGrid-cell.${dinoTableClasses.whiteSpacePre} .MuiDataGrid-cellContent`]: {\r\n whiteSpace: 'pre'\r\n }\r\n})\r\n"],"names":["CreateTable","params","Table","props","_this","_classCallCheck","_callSuper","_defineProperty","value","tableQueryParams","mergeObjects","children","_jsx","GlobalModal","mapGlobalModalContext","context","TableBaseContext","Provider","showModal","show","closeModal","close","_this$props$data$item","_this$props$data","_this$props$slots$den","_this$props$slots","mergeConfig","obj","getRowId","columns","rows","data","items","checkboxSelection","pagination","density","slots","initialState","TableHelper","mapInitialState","query","columnVisibilityModel","filterDebounceMs","sx","border","toolbar","rowSelectionModel","rowSelecteds","onRowSelectionModelChange","handleRowSelectionChange","featureMode","_this$props$data$rowT","_this$props$data2","objServer","filterMode","sortingMode","paginationMode","onPaginationModelChange","onFilterModelChange","onSortModelChange","rowCount","rowTotal","paginationModel","filterModel","filter","sortModel","mapSortModel","sort","loading","Object","assign","dataGridProps","extendColDefs","ActionRow","list","push","_objectSpread","field","minWidth","headerAlign","align","filterable","sortable","renderCell","row","actionRow","keys","map","key","filterOperators","customFilterOperators","length","apply","_toConsumableArray","model","details","setTableQueryParams","detail","handleChange","_pagination$pageSize","page","pageSize","detectSearchType","_sort$","_this$defaultTableQue","_sort$2","_sort$3","_this$defaultTableQue2","sortValue","defaultTableQueryParams","onChange","maxSelcion","slice","onRowSelectionChange","forceUpdate","initialColumns","_inherits","Component","_createClass","get","_this$props$slots2","_this$props$slots$too","_this$props$slots3","_this$props$slots4","_this$props$slots$max","_this$props$slots5","_this$props$slots6","toolbarPannelProps","toolbarProps","this","ToolbarPannel","maxSelection","nextProps","equalTableQueryParams","_nextProps$query","renderWrapContext","Wrap","DataGrid","getDataGridProps","styled","_ref","p","_objectWithoutProperties","_excluded","Box","flex","position","top","left","width","height","overflowY","concat","dinoTableClasses","whiteSpacePre","whiteSpace"],"mappings":"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"}
1
+ {"version":3,"file":"create.table.js","sources":["../../src/table/create.table.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Box, BoxProps, styled } from '@mui/material'\r\nimport { DataGrid, DataGridProps, GridColDef, GridFeatureMode, GridFilterOperator } from '@mui/x-data-grid'\r\nimport { GridSortModel, GridValidRowModel, GridRowIdGetter, GridRowSelectionModel } from '@mui/x-data-grid'\r\nimport { GridCallbackDetails, GridColumnVisibilityModel, GridDensity, GridFilterModel, GridPaginationModel } from '@mui/x-data-grid'\r\nimport { mergeObjects } from '../utils'\r\nimport { TableBaseContext } from './context'\r\nimport { IActionRowProps } from './create.action-row'\r\nimport { customFilterOperators } from './custom.filter-operators'\r\nimport { GlobalModal, mapGlobalModalContext } from '../api-context'\r\nimport { ICustomGridColDef, ICustomGridFilterModel, ICustomGridSortModel, ITableData, ITableQueryParams } from './types'\r\nimport TableHelper, { dinoTableClasses } from './helpers'\r\nimport ToolbarPannel, { IToolbarPannelProps } from './toolbar-pannel'\r\n\r\nexport interface ITableSlots<T> {\r\n maxSelection?: number\r\n density?: GridDensity\r\n toolbar?: React.ComponentType<IToolbarPannelProps>\r\n actionRow?: React.ComponentType<IActionRowProps<T>>\r\n toolbarProps?: IToolbarPannelProps\r\n dataGridProps?: DataGridProps\r\n}\r\n\r\nexport type ITableParamsSlots<T> = Pick<ITableSlots<T>, 'maxSelection' | 'toolbarProps' | 'dataGridProps'>\r\n\r\nexport interface ITableProps<T> {\r\n data?: ITableData<T>\r\n query?: ITableQueryParams<T>\r\n loading?: boolean\r\n onChange?: (query: ITableQueryParams<T>) => void\r\n onRowSelectionChange?: DataGridProps['onRowSelectionModelChange']\r\n slots?: ITableSlots<T>\r\n}\r\n\r\nexport interface ITableParams<T extends GridValidRowModel> extends ITableParamsSlots<T> {\r\n featureMode?: GridFeatureMode\r\n getRowId: GridRowIdGetter<T>\r\n columns: ICustomGridColDef<T>\r\n filterOperators?: (config: GridColDef) => GridFilterOperator[]\r\n columnVisibilityModel?: Partial<Record<keyof T, boolean>>\r\n actionRow?: Omit<GridColDef, 'field'>\r\n}\r\n\r\nfunction CreateTable<T extends GridValidRowModel>(params: ITableParams<T>): ComponentType<ITableProps<T>> {\r\n const generateColumns = (extendColDefs?: GridColDef[]) => {\r\n const columns = Object.keys(params.columns).map<GridColDef>((key) => {\r\n const obj = { field: key, ...params.columns[key] }\r\n obj.filterOperators = params.filterOperators ? params.filterOperators(obj) : customFilterOperators(obj)\r\n return obj\r\n })\r\n\r\n if (!!extendColDefs && extendColDefs.length > 0) columns.push(...extendColDefs)\r\n return columns\r\n }\r\n\r\n class Table extends Component<ITableProps<T>> {\r\n private tableQueryParams: ITableQueryParams<T>\r\n // private tableQueryParamsCache: ITableQueryParams<T> = {}\r\n private defaultTableQueryParams: ITableQueryParams<T>\r\n private columns: GridColDef<T>[]\r\n private rowSelecteds: GridRowSelectionModel\r\n constructor(props: ITableProps<T>) {\r\n super(props)\r\n this.columns = this.initialColumns()\r\n this.tableQueryParams = { ...props.query }\r\n this.defaultTableQueryParams = this.tableQueryParams\r\n this.rowSelecteds = []\r\n }\r\n\r\n get mergeConfig() {\r\n const toolbarPannelProps = mergeObjects({}, params?.toolbarProps, this.props.slots?.toolbarProps)\r\n return {\r\n toolbar: this.props.slots?.toolbar ?? (() => <ToolbarPannel {...toolbarPannelProps} />),\r\n ActionRow: this.props.slots?.actionRow,\r\n columnVisibilityModel: params.columnVisibilityModel,\r\n maxSelcion: this.props.slots?.maxSelection ?? params.maxSelection,\r\n dataGridProps: mergeObjects({}, params.dataGridProps, this.props.slots?.dataGridProps)\r\n }\r\n }\r\n\r\n setTableQueryParams = (value: Partial<ITableQueryParams<T>>) => {\r\n this.tableQueryParams = mergeObjects({}, this.tableQueryParams, value)\r\n }\r\n\r\n shouldComponentUpdate(nextProps: Readonly<ITableProps<T>>): boolean {\r\n if (params.featureMode === 'server' && !TableHelper.equalTableQueryParams(nextProps.query, this.props.query)) {\r\n this.setTableQueryParams(nextProps.query ?? {})\r\n return true\r\n } else if (params.featureMode !== 'server') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n render() {\r\n return this.renderWrapContext(\r\n <Wrap>\r\n <DataGrid loading={this.props.loading} {...this.getDataGridProps()} />\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderWrapContext = (children: React.ReactNode) => (\r\n <GlobalModal>\r\n {mapGlobalModalContext((context) => (\r\n <TableBaseContext.Provider value={{ showModal: context.show, closeModal: context.close }}>{children}</TableBaseContext.Provider>\r\n ))}\r\n </GlobalModal>\r\n )\r\n\r\n getDataGridProps = (): DataGridProps<T> => {\r\n const mergeConfig = this.mergeConfig\r\n const obj: DataGridProps<T> = {\r\n getRowId: params.getRowId,\r\n columns: this.columns,\r\n rows: this.props.data?.items ?? [],\r\n checkboxSelection: true,\r\n pagination: true,\r\n density: this.props.slots?.density ?? 'standard',\r\n initialState: TableHelper.mapInitialState(this.props.query, {\r\n columns: { columnVisibilityModel: params.columnVisibilityModel as GridColumnVisibilityModel }\r\n }),\r\n filterDebounceMs: 800,\r\n sx: { border: 0 },\r\n slots: { toolbar: mergeConfig.toolbar },\r\n rowSelectionModel: this.rowSelecteds,\r\n onRowSelectionModelChange: this.handleRowSelectionChange\r\n }\r\n if (params.featureMode === 'server') {\r\n const objServer: Partial<DataGridProps<T>> = {\r\n filterMode: 'server',\r\n sortingMode: 'server',\r\n paginationMode: 'server',\r\n onPaginationModelChange: this.onPaginationModelChange,\r\n onFilterModelChange: this.onFilterModelChange,\r\n onSortModelChange: this.onSortModelChange,\r\n rowCount: this.props.data?.rowTotal ?? 0,\r\n paginationModel: this.tableQueryParams.pagination,\r\n filterModel: this.tableQueryParams.filter as GridFilterModel,\r\n sortModel: TableHelper.mapSortModel(this.tableQueryParams.sort),\r\n loading: this.tableQueryParams.loading\r\n }\r\n Object.assign(obj, objServer)\r\n }\r\n return mergeObjects(obj, this.mergeConfig.dataGridProps)\r\n }\r\n\r\n initialColumns = (): GridColDef<T>[] => {\r\n const { ActionRow } = this.mergeConfig\r\n const list: GridColDef<T>[] = []\r\n if (!!ActionRow) {\r\n list.push({\r\n field: 'Actions',\r\n minWidth: 100,\r\n headerAlign: 'right',\r\n align: 'right',\r\n filterable: false,\r\n sortable: false,\r\n renderCell: (value) => <ActionRow value={value.row} />,\r\n ...params.actionRow\r\n })\r\n }\r\n return generateColumns(list)\r\n }\r\n\r\n onPaginationModelChange = (model: GridPaginationModel, details: GridCallbackDetails<'pagination'>) => {\r\n this.setTableQueryParams({ pagination: model, detail: 'pagination' })\r\n this.handleChange()\r\n }\r\n\r\n onFilterModelChange = (model: GridFilterModel, details: GridCallbackDetails<'filter'>) => {\r\n const { pagination } = this.tableQueryParams\r\n this.setTableQueryParams({\r\n filter: model as ICustomGridFilterModel<T>,\r\n pagination: { page: 0, pageSize: pagination?.pageSize ?? 25 },\r\n detail: TableHelper.detectSearchType(model)\r\n })\r\n this.handleChange()\r\n }\r\n\r\n onSortModelChange = (model: GridSortModel, details: GridCallbackDetails<any>) => {\r\n let sortValue = model as ICustomGridSortModel<T>\r\n const { sort } = this.tableQueryParams\r\n if (!!sort?.length && !sortValue.length) {\r\n if (sort?.[0]?.field === this.defaultTableQueryParams.sort?.[0]?.field) {\r\n sortValue = [{ field: sort[0]?.field, sort: sort[0]?.sort === 'desc' ? 'asc' : 'desc' }]\r\n } else {\r\n sortValue = this.defaultTableQueryParams.sort ?? []\r\n }\r\n }\r\n this.setTableQueryParams({ sort: sortValue, detail: 'sort' })\r\n this.handleChange()\r\n }\r\n\r\n handleChange = () => {\r\n this.props.onChange && this.props.onChange(this.tableQueryParams)\r\n }\r\n\r\n handleRowSelectionChange = (value: GridRowSelectionModel, details: GridCallbackDetails) => {\r\n if (this.mergeConfig.maxSelcion && value.length > this.mergeConfig.maxSelcion) {\r\n this.rowSelecteds = value.slice(0, this.mergeConfig.maxSelcion)\r\n } else {\r\n this.rowSelecteds = value\r\n }\r\n this.props.onRowSelectionChange && this.props.onRowSelectionChange(this.rowSelecteds, details)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n return Table\r\n}\r\n\r\nexport default CreateTable\r\n\r\nconst Wrap = styled(({ children, ...p }: BoxProps) => (\r\n <Box {...p}>\r\n <div>{children}</div>\r\n </Box>\r\n))({\r\n flex: 1,\r\n position: 'relative',\r\n '& > div': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n overflowY: 'auto'\r\n },\r\n '& .MuiDataGrid-root': {\r\n '--unstable_DataGrid-radius': 0\r\n },\r\n [`& .MuiDataGrid-cell.${dinoTableClasses.whiteSpacePre} .MuiDataGrid-cellContent`]: {\r\n whiteSpace: 'pre'\r\n }\r\n})\r\n"],"names":["CreateTable","params","Table","props","_this","_classCallCheck","_callSuper","_defineProperty","value","tableQueryParams","mergeObjects","children","_jsx","GlobalModal","mapGlobalModalContext","context","TableBaseContext","Provider","showModal","show","closeModal","close","_this$props$data$item","_this$props$data","_this$props$slots$den","_this$props$slots","mergeConfig","obj","getRowId","columns","rows","data","items","checkboxSelection","pagination","density","slots","initialState","TableHelper","mapInitialState","query","columnVisibilityModel","filterDebounceMs","sx","border","toolbar","rowSelectionModel","rowSelecteds","onRowSelectionModelChange","handleRowSelectionChange","featureMode","_this$props$data$rowT","_this$props$data2","objServer","filterMode","sortingMode","paginationMode","onPaginationModelChange","onFilterModelChange","onSortModelChange","rowCount","rowTotal","paginationModel","filterModel","filter","sortModel","mapSortModel","sort","loading","Object","assign","dataGridProps","extendColDefs","ActionRow","list","push","_objectSpread","field","minWidth","headerAlign","align","filterable","sortable","renderCell","row","actionRow","keys","map","key","filterOperators","customFilterOperators","length","apply","_toConsumableArray","model","details","setTableQueryParams","detail","handleChange","_pagination$pageSize","page","pageSize","detectSearchType","_sort$","_this$defaultTableQue","_sort$2","_sort$3","_this$defaultTableQue2","sortValue","defaultTableQueryParams","onChange","maxSelcion","slice","onRowSelectionChange","forceUpdate","initialColumns","_inherits","Component","_createClass","get","_this$props$slots2","_this$props$slots$too","_this$props$slots3","_this$props$slots4","_this$props$slots$max","_this$props$slots5","_this$props$slots6","toolbarPannelProps","toolbarProps","this","ToolbarPannel","maxSelection","nextProps","equalTableQueryParams","_nextProps$query","renderWrapContext","Wrap","DataGrid","getDataGridProps","styled","_ref","p","_objectWithoutProperties","_excluded","Box","flex","position","top","left","width","height","overflowY","concat","dinoTableClasses","whiteSpacePre","whiteSpace"],"mappings":"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"}
@@ -56,6 +56,15 @@ declare class CRUDServiceBase<T, K> extends ServiceBase {
56
56
  * @returns A promise resolving to the updated entity data.
57
57
  */
58
58
  update: (id: K, model: Partial<T>, signal?: AbortSignal) => Promise<T>;
59
+ /**
60
+ * HTTP PATCH request with automatic authentication
61
+ *
62
+ * @param id - The ID of the entity to update.
63
+ * @param model - The partial entity data to update.
64
+ * @param signal - Optional AbortSignal for request cancellation.
65
+ * @returns A promise resolving to the updated entity data.
66
+ */
67
+ updatePatch: (id: K, model: Partial<T>, signal?: AbortSignal) => Promise<T>;
59
68
  /**
60
69
  * Deletes an entity by its ID.
61
70
  *
@@ -85,6 +85,22 @@ export default class ServiceBase {
85
85
  * @returns Promise with the response data or null if an error occurs
86
86
  */
87
87
  tryPut<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined): Promise<TModel | null>;
88
+ /**
89
+ * HTTP PATCH request with automatic authentication
90
+ * @param url - The request URL
91
+ * @param data - Optional data to send in the request body
92
+ * @param config - Optional axios configuration
93
+ * @returns Promise with the response data
94
+ */
95
+ patch<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined): Promise<TModel>;
96
+ /**
97
+ * HTTP PATCH request with error handling
98
+ * @param url - The request URL
99
+ * @param data - Optional data to send in the request body
100
+ * @param config - Optional axios configuration
101
+ * @returns Promise with the response data or null if an error occurs
102
+ */
103
+ tryPatch<TModel>(url: string, data?: any, config?: AxiosRequestConfig | undefined): Promise<TModel | null>;
88
104
  /**
89
105
  * HTTP POST request with error handling
90
106
  * @param url - The request URL
@@ -17,6 +17,7 @@ export type ITableParamsSlots<T> = Pick<ITableSlots<T>, 'maxSelection' | 'toolba
17
17
  export interface ITableProps<T> {
18
18
  data?: ITableData<T>;
19
19
  query?: ITableQueryParams<T>;
20
+ loading?: boolean;
20
21
  onChange?: (query: ITableQueryParams<T>) => void;
21
22
  onRowSelectionChange?: DataGridProps['onRowSelectionModelChange'];
22
23
  slots?: ITableSlots<T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-core",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",