@pega/lists-core 10.0.0-build.10.3 → 10.0.0-build.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"viewUtilityMockSetup.d.ts","sourceRoot":"","sources":["../../../../../src/core/generators/__tests__/viewUtilityMockSetup.js"],"names":[],"mappings":"AAGA;;;;;iBAcwmJ,CAAC;0BAA4C,CAAC;gCAAoD,CAAC;qCAA+D,CAAC;oBAAkD,CAAC;;;;;;;;;;;;;;;;;sBAAm6R,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EADjub"}
1
+ {"version":3,"file":"viewUtilityMockSetup.d.ts","sourceRoot":"","sources":["../../../../../src/core/generators/__tests__/viewUtilityMockSetup.js"],"names":[],"mappings":"AAGA;;;;;iBAc2jJ,CAAC;0BAA4C,CAAC;gCAAoD,CAAC;qCAA+D,CAAC;oBAAkD,CAAC;;;;;;;;;;;;;;;;;sBAAm6R,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EADprb"}
@@ -1 +1 @@
1
- {"version":3,"file":"viewUtilityMethods.d.ts","sourceRoot":"","sources":["../../../../src/core/generators/viewUtilityMethods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AAEzG,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAOrD,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAIhE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,KAAK,EACV,UAAU,EACV,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,EACV,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAG/B,MAAM,MAAM,8BAA8B,GAAG,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAEnF,MAAM,MAAM,yBAAyB,GAAG;IACtC,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,UAAU,CAChD,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,EAC9C,UAAU,GAAG,UAAU,CACxB,CAAC;IACF,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC3C,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAChD,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,kBAAkB,CAAC;IAClD,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,8BAA8B,CAAC;IAClE,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IACzE,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC;IAC9C,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,MAAM,yBAAyB,CAAC;AAS1E,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,UAAU,EAAE,UAAU;IAI7D;;;;;;;;OAQG;gCACyB,OAAO,wBAAwB,KAAK,CAAC,qBAAqB,CAAC;IAIvF;;;;;;;;;;;;OAYG;gCACyB,MAAM,kBAAkB,MAAM;IAiB1D;;;;;;;;;OASG;yGAOA;QACD,KAAK,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7B,cAAc,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,oBAAoB,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpD,yBAAyB,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC7D,QAAQ,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;KAClC;IAiBD;;;;;;;OAOG;mBAGY,CAAC,SAAS,2BAA2B,UAC1C,CAAC,YACC,yBAAyB,CAAC,CAAC,CAAC,GACrC,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS;IAoE3B,gEAAgE;;IAMhE;;;;;OAKG;kCAC2B,UAAU,CAAC,qBAAqB,EAAE,QAAQ,CAAC;IAIzE;;OAEG;;IAMH;;;;;OAKG;wBACiB,iBAAiB,eAAe,UAAU;IAI9D;;;;;OAKG;gCACyB,MAAM,EAAE;IAIpC;;;;;OAKG;wBACiB,4BAA4B;IAIhD;;;;OAIG;yBACkB,yBAAyB;IAI9C;;;;OAIG;0BACmB,MAAM;IAI5B;;;;OAIG;2BACoB,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAInD;;;;OAIG;0BACmB,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAIxD;;;;;OAKG;wCACiC,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAIzE;;;;;OAKG;yBACkB,MAAM,EAAE;IAI7B;;;;OAIG;mCAC4B,MAAM,EAAE;IAIvC;;;;;OAKG;gCACyB,MAAM,EAAE,gBAAgB;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE;IAI5E;;;OAGG;iCAC0B,MAAM,EAAE;IAIrC;;;OAGG;+BACwB,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAIhE;;;;OAIG;wBACiB,MAAM,EAAE;IAI5B;;;;;;;OAOG;8CAEmB,MAAM,iBACX,OAAO,oBACJ,OAAO;IAO3B;;;;;;;;OAQG;iDACkD;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE;IAUtF;;;;;;;OAOG;gCACyB,MAAM,iBAAiB,OAAO;IAI1D;;;;;;;OAOG;gCAEO,MAAM,QACR,MAAM,iBACG,OAAO,oBACJ,OAAO;IAO3B;;;;;;OAMG;8CACuC,MAAM;IAIhD;;;;;;OAMG;kDAC2C,MAAM;IAIpD;;;;;;OAMG;qDAC8C,MAAM,eAAe,MAAM;IAM5E;;;;;OAKG;uBAEgB,MAAM;IAIzB;;;;OAIG;4BACqB,CAAC,OAAO,WAAW,EAAE,MAAM,OAAO,WAAW,CAAC;IAItE;;;;OAIG;+BACwB,aAAa;IAIxC;;OAEG;;IAMH;;;;;OAKG;8BACsB;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,oBAAwB,MAAM,EAAE;IAajF;;;OAGG;gCACyB,MAAM,EAAE;;;IAIpC;;;OAGG;uCACsC,MAAM,EAAE;IAIjD;;OAEG;;IAKH;;;OAGG;uBACgB,MAAM;IAKzB;;;;OAIG;qDAC8C,MAAM,SAAS,OAAO;IAKvE;;;;OAIG;uBACqB,MAAM,EAAE;IA8BhC;;;;OAIG;8BAC6B,OAAO;IA8CvC;;;OAGG;0BACmB,wBAAwB,CAAC,QAAQ,CAAC;IAYxD;;OAEG;;IAiCH;;OAEG;;IAkBH;;;OAGG;qCAC8B;QAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;KAAE;wDAKxC,WAAW,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAKxE;;;;;;;;OAQG;6BACsB,MAAM,iBAAiB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,MAAM;IA6B1F,4CAA4C;;IAK5C,4GAA4G;0CACtE,MAAM;IAQ5C,wFAAwF;kCAC1D,MAAM,EAAE;IAWtC,oEAAoE;oCACpC,UAAU,GAAG,MAAM;IAkCnD;;;;;OAKG;6BACsB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;EAMzD;AACD,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"viewUtilityMethods.d.ts","sourceRoot":"","sources":["../../../../src/core/generators/viewUtilityMethods.ts"],"names":[],"mappings":"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"}
@@ -538,23 +538,13 @@ export default function viewUtilityMethods(rsInternal) {
538
538
  * Triggers {@link ApiContext.exportData exportData} api.
539
539
  */
540
540
  exportToExcel() {
541
- function getVisibleColumnFormatters() {
542
- const visibleColumns = getView().getVisibleColumns();
543
- const formatters = {};
544
- visibleColumns?.forEach(column => {
545
- if (column.formatterConfig) {
546
- formatters[column.field.id] = column.formatterConfig;
547
- }
548
- });
549
- return formatters;
550
- }
551
541
  return getRsProps()
552
- .apiContext.exportData?.(deepCopy(getView().state), getView().meta, {
542
+ .apiContext.exportData?.(deepCopy(getRsStateResolver().getState()), getView().meta, {
553
543
  ...(getRsStore().refreshInProgress && {
554
544
  invalidateCache: true,
555
545
  invalidateCacheToken: getRsStore().refreshToken
556
546
  })
557
- }, getVisibleColumnFormatters())
547
+ })
558
548
  .catch(err => {
559
549
  getRsStateResolver().dispatch(actions.actionNotificationAdd({
560
550
  content: err
@@ -566,7 +556,7 @@ export default function viewUtilityMethods(rsInternal) {
566
556
  */
567
557
  exportToCSV() {
568
558
  return getRsProps()
569
- .apiContext.exportDataToCSV?.(deepCopy(getView().state), getView().meta, {
559
+ .apiContext.exportDataToCSV?.(deepCopy(getRsStateResolver().getState()), getView().meta, {
570
560
  ...(getRsStore().refreshInProgress && {
571
561
  invalidateCache: true,
572
562
  invalidateCacheToken: getRsStore().refreshToken
@@ -1 +1 @@
1
- {"version":3,"file":"viewUtilityMethods.js","sourceRoot":"","sources":["../../../../src/core/generators/viewUtilityMethods.ts"],"names":[],"mappings":"AAIA,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,wBAAwB,EAAE,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AA0C1F,SAAS,QAAQ,CAAC,GAAW,EAAE,WAAsB,EAAE,aAAwB;IAC7E,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,UAAsB;IAC/D,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;IAE3E,MAAM,WAAW,GAAG;QAClB;;;;;;;;WAQG;QACH,WAAW,CAAC,aAAuB,EAAE,mBAAkD;YACrF,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC/F,CAAC;QAED;;;;;;;;;;;;WAYG;QACH,gBAAgB,CAAC,SAAiB,EAAE,cAAsB;YACxD,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;gBACrC,kBAAkB,EAAE,CAAC,QAAQ,CAC3B,OAAO,CAAC,0BAA0B,CAAC;oBACjC,SAAS;oBACT,cAAc;iBACf,CAAC,CACH,CAAC;gBACF,OAAO;YACT,CAAC;YACD,UAAU,EAAE;iBACT,UAAU,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;iBACvD,IAAI,CAAC,GAAG,EAAE;gBACT,WAAW,CAAC,YAAY,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;QACP,CAAC;QAED;;;;;;;;;WASG;QACH,cAAc,CAAC,EACb,KAAK,EACL,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,QAAQ,EAOT;YACC,oJAAoJ;YACpJ,+HAA+H;YAC/H,OAAO,EAAE,CAAC,OAAO,CAAC;gBAChB,wBAAwB,EAAE,CAAC,CAAC,yBAAyB;gBACrD,cAAc,EAAE,cAAc,IAAI,KAAK;gBACvC,YAAY,EAAE,KAAK;gBACnB,oBAAoB,EAAE,oBAAoB,IAAI,OAAO,EAAE,CAAC,oBAAoB;gBAC5E,SAAS,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAyB;gBACvE,aAAa,EAAE,QAAQ;aACxB,CAAC,CAAC;YACH,4IAA4I;YAC5I,gFAAgF;YAChF,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9C,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;QAED;;;;;;;WAOG;QACH,sIAAsI;QACtI,iCAAiC;QACjC,cAAc,CACZ,MAAS,EACT,OAAsC;YAEtC,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;YAC1C,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC;YAE7D,IAAI,iBAAiB,CAAC;YACtB,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,WAAW,CAAC,wBAAwB;oBACvC,gDAAgD;oBAChD,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,eAAe,EAAO,CAAC;oBAC7D,OAAO,EAAE,CAAC,OAAO,CAAC;wBAChB,yBAAyB,EAAE;4BACzB,QAAQ;4BACR,QAAQ;4BACR,GAAI,OAGF;yBACH;qBACF,CAAC,CAAC;oBACH,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;oBAC3C,iBAAiB,GAAG,OAAO,CAAC;oBAC5B,MAAM;gBACR,KAAK,WAAW,CAAC,iBAAiB;oBAChC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,OAAoB,CAAC,EAAE,CAAC,CAAC;oBACzD,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM;gBACR,KAAK,WAAW,CAAC,wBAAwB,CAAC,CAAC,CAAC;oBAC1C,IAAI,eAAe,GAAG,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAC3D,CAAC;oBACF,IAAI,eAAe,EAAE,CAAC;wBACpB,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC;4BACxC,gBAAgB,EAAE,OAAkB;yBACrC,CAAC,CAAC;wBACH,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,WAAW,CAAC,eAAe;oBAC9B,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAA6B,EAAE,CAAC,CAAC;oBAClE,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM;gBACR,KAAK,WAAW,CAAC,mBAAmB;oBAClC,OAAO,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE;wBACvC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;wBACd,GAAI,OAA0C;qBAC/C,CAAC,CAAC;oBACH,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM;gBACR,KAAK,WAAW,CAAC,qBAAqB;oBACpC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAA8C,CAAC,CAAC,CAAC;oBACnF,MAAM;gBACR,KAAK,WAAW,CAAC,oBAAoB;oBACnC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE;wBAC7B,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;qBACzC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,WAAW,CAAC,oBAAoB;oBACnC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,kBAAkB,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;wBACxD,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,OAA0B,EAAE,CAAC,CAAC;wBACnE,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC;oBACD,MAAM;gBACR,QAAQ;YACV,CAAC;YACD,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAED,gEAAgE;QAChE,oBAAoB;YAClB,OAAO,UAAU,EAAE,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC/C,CAAC;QAED,0DAA0D;QAC1D;;;;;WAKG;QACH,oBAAoB,CAAC,OAAoD;YACvE,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED;;WAEG;QACH,sBAAsB;YACpB,UAAU,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC;YAC/B,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;QAED;;;;;WAKG;QACH,UAAU,CAAC,OAA0B,EAAE,UAAuB;YAC5D,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED;;;;;WAKG;QACH,kBAAkB,CAAC,OAAiB;YAClC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED;;;;;WAKG;QACH,WAAW,CAAC,MAAoC;YAC9C,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,CAAC;QAED;;;;WAIG;QACH,YAAY,CAAC,MAAiC;YAC5C,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QACrE,CAAC;QAED;;;;WAIG;QACH,WAAW,CAAC,QAAgB;YAC1B,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;QAED;;;;WAIG;QACH,aAAa,CAAC,OAAqC;YACjD,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;QAED;;;;WAIG;QACH,YAAY,CAAC,OAA2C;YACtD,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,CAAC;QAED;;;;;WAKG;QACH,2BAA2B,CAAC,MAA6C;YACvE,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,CAAC;QAED;;;;;WAKG;QACH,WAAW,CAAC,OAAiB;YAC3B,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;QAED;;;;WAIG;QACH,qBAAqB,CAAC,OAAiB;YACrC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QAED;;;;;WAKG;QACH,kBAAkB,CAAC,OAAiB,EAAE,WAAsC;YAC1E,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QACxF,CAAC;QAED;;;WAGG;QACH,mBAAmB,CAAC,OAAiB;YACnC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED;;;WAGG;QACH,iBAAiB,CAAC,OAA8C;YAC9D,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED;;;;WAIG;QACH,UAAU,CAAC,OAAiB;YAC1B,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QACvE,CAAC;QAED;;;;;;;WAOG;QACH,qBAAqB,CACnB,kBAA0B,EAC1B,aAAsB,EACtB,gBAAyB;YAEzB,kBAAkB,EAAE,CAAC,QAAQ,CAC3B,OAAO,CAAC,2BAA2B,CAAC,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,CAAC,CACzF,CAAC;QACJ,CAAC;QAED;;;;;;;;WAQG;QACH,0BAA0B,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAqC;YACpF,kBAAkB,EAAE,CAAC,QAAQ,CAC3B,OAAO,CAAC,8BAA8B,CAAC;gBACrC,EAAE;gBACF,QAAQ;aACT,CAAC,CACH,CAAC;YACF,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;QACpE,CAAC;QAED;;;;;;;WAOG;QACH,qBAAqB,CAAC,IAAY,EAAE,aAAsB;YACxD,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;QAC1F,CAAC;QAED;;;;;;;WAOG;QACH,mBAAmB,CACjB,MAAc,EACd,IAAY,EACZ,aAAsB,EACtB,gBAAyB;YAEzB,kBAAkB,EAAE,CAAC,QAAQ,CAC3B,OAAO,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,CACjF,CAAC;QACJ,CAAC;QAED;;;;;;WAMG;QACH,qBAAqB,CAAC,kBAA0B;YAC9C,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACzF,CAAC;QAED;;;;;;WAMG;QACH,yBAAyB,CAAC,kBAA0B;YAClD,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,+BAA+B,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC7F,CAAC;QAED;;;;;;WAMG;QACH,4BAA4B,CAAC,kBAA0B,EAAE,WAAmB;YAC1E,kBAAkB,EAAE,CAAC,QAAQ,CAC3B,OAAO,CAAC,kCAAkC,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAC5E,CAAC;QACJ,CAAC;QAED;;;;;WAKG;QAEH,WAAW,CAAC,KAAa;YACvB,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC;QAED;;;;WAIG;QACH,cAAc,CAAC,OAAuD;YACpE,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,CAAC;QAED;;;;WAIG;QACH,kBAAkB,CAAC,MAAqB;YACtC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED;;WAEG;QACH,WAAW;YACT,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;YACzD,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;QACpE,CAAC;QAED;;;;;WAKG;QACH,YAAY,CAAC,aAAuC,EAAE,EAAE,kBAA4B,EAAE;YACpF,8DAA8D;YAC9D,IAAI,UAAU,EAAE,CAAC,iBAAiB;gBAAE,OAAO;YAE3C,yDAAyD;YACzD,UAAU,EAAE,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACtC,UAAU,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvC,uDAAuD;YACvD,UAAU,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC;YAE5C,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;QACzF,CAAC;QAED;;;WAGG;QACH,YAAY,CAAC,aAAuB;YAClC,OAAO,UAAU,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC;QAC/D,CAAC;QAED;;;WAGG;QACH,KAAK,CAAC,4BAA4B,CAAC,IAAc;YAC/C,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9F,CAAC;QAED;;WAEG;QACH,0BAA0B;YACxB,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC;QACtE,CAAC;QAED;;;WAGG;QACH,SAAS,CAAC,OAAe;YACvB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QACD;;;;WAIG;QACH,oCAAoC,CAAC,UAAkB,EAAE,KAAc;YACrE,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;YACtC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,oCAAoC,CAAC,OAAO,CAAC,CAAC,CAAC;QACvF,CAAC;QAED;;;;WAIG;QACH,KAAK,CAAC,WAAW,CAAC,OAAiB,EAAE;YACnC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC9C,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,aAAa,EAAE,CACpC,QAAQ,CAAC,KAAK,CAAC,EACf,OAAO,EAAE,CAAC,IAAI,EACd,IAAI,EACJ,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,EACtB;gBACE,GAAG,CAAC,UAAU,EAAE,CAAC,iBAAiB,IAAI;oBACpC,eAAe,EAAE,IAAI;oBACrB,oBAAoB,EAAE,UAAU,EAAE,CAAC,YAAY;iBAChD,CAAC;aACH,CACF,CAAC;YAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,IAAK,EAAE,QAAS,CAAC,CAAC;YAC1E,OAAO,EAAE,CAAC,OAAO,CAAC;gBAChB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;aAChB,CAAC,CAAC;YAEH,oGAAoG;YACpG,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACtC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QAED;;;;WAIG;QACH,KAAK,CAAC,aAAa,CAAC,UAAmB;YACrC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,YAAY,GAAyC,EAAE,CAAC;YAC5D,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CACjD;oBACE,GAAG,kBAAkB,EAAE,CAAC,QAAQ,EAAE;oBAClC,iBAAiB,EAAE;wBACjB,eAAe,EAAE;4BACf,UAAU,EAAE,CAAC;4BACb,QAAQ,EAAE,OAAO,EAAE,CAAC,YAAa,GAAG,CAAC;yBACtC;qBACF;oBACD,+DAA+D;oBAC/D,MAAM,EAAE,SAAS;oBACjB,YAAY,EAAE,SAAS;iBACxB,EACD,OAAO,EAAE,CAAC,IAAI,EACd,EAAE,CACH,CAAC;gBACF,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC;oBAC/B,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxE,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,CAAC;gBAC3D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,sCAAsC;oBACtC,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,CAAC,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,mDAAmD;gBACnD,MAAM,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACjD,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC;YAE1D,IAAI,IAAI;gBACN,kBAAkB,EAAE,CAAC,QAAQ,CAC3B,OAAO,CAAC,6BAA6B,CAAC;oBACpC,YAAY,EAAE,IAAI;oBAClB,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,aAAc;iBACpC,CAAC,CACH,CAAC;QACN,CAAC;QAED;;;WAGG;QACH,aAAa,CAAC,MAA0C;YACtD,OAAO,UAAU,EAAE;iBAChB,UAAU,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;iBAClC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACX,kBAAkB,EAAE,CAAC,QAAQ,CAC3B,OAAO,CAAC,qBAAqB,CAAC;oBAC5B,OAAO,EAAE,GAAG;iBACb,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC;QAED;;WAEG;QACH,aAAa;YACX,SAAS,0BAA0B;gBACjC,MAAM,cAAc,GAAG,OAAO,EAAE,CAAC,iBAAiB,EAAE,CAAC;gBACrD,MAAM,UAAU,GAA8C,EAAE,CAAC;gBACjE,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;oBAC/B,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;wBAC3B,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC;oBACvD,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,OAAO,UAAU,EAAE;iBAChB,UAAU,CAAC,UAAU,EAAE,CACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EACzB,OAAO,EAAE,CAAC,IAAI,EACd;gBACE,GAAG,CAAC,UAAU,EAAE,CAAC,iBAAiB,IAAI;oBACpC,eAAe,EAAE,IAAI;oBACrB,oBAAoB,EAAE,UAAU,EAAE,CAAC,YAAY;iBAChD,CAAC;aACH,EACD,0BAA0B,EAAE,CAC7B;iBACA,KAAK,CAAC,GAAG,CAAC,EAAE;gBACX,kBAAkB,EAAE,CAAC,QAAQ,CAC3B,OAAO,CAAC,qBAAqB,CAAC;oBAC5B,OAAO,EAAE,GAAG;iBACb,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC;QAED;;WAEG;QACH,WAAW;YACT,OAAO,UAAU,EAAE;iBAChB,UAAU,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE;gBACvE,GAAG,CAAC,UAAU,EAAE,CAAC,iBAAiB,IAAI;oBACpC,eAAe,EAAE,IAAI;oBACrB,oBAAoB,EAAE,UAAU,EAAE,CAAC,YAAY;iBAChD,CAAC;aACH,CAAC;iBACD,KAAK,CAAC,GAAG,CAAC,EAAE;gBACX,kBAAkB,EAAE,CAAC,QAAQ,CAC3B,OAAO,CAAC,qBAAqB,CAAC;oBAC5B,OAAO,EAAE,GAAG;iBACb,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC;QAED;;;WAGG;QACH,uBAAuB,CAAC,OAA2C;YACjE,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,0BAA0B,CACxB,uBAAsE;YAEtE,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,0BAA0B,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC7F,CAAC;QAED;;;;;;;;WAQG;QACH,gBAAgB,CAAC,MAAc,EAAE,YAAsC,EAAE,QAAiB;YACxF,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBACxC,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO;YACT,CAAC;YAED,6FAA6F;YAC7F,kFAAkF;YAClF,gGAAgG;YAChG,yIAAyI;YACzI,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/E,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,OAAO,CAAC;oBACX,YAAY,EAAE;wBACZ,GAAG,SAAS;wBACZ,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;wBACjD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;qBAC9C;iBACF,CAAC,CAAC;YACL,CAAC;YAED,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,4CAA4C;QAC5C,iBAAiB;YACf,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,4GAA4G;QAC5G,6BAA6B,CAAC,MAAc;YAC1C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;gBAC5E,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,wFAAwF;QACxF,mBAAmB,CAAC,OAAkB;YACpC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACzE,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,CAAC;gBACX,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE;aACnE,CAAC,CAAC;QACL,CAAC;QAED,oEAAoE;QACpE,oBAAoB,CAAC,SAA8B;YACjD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC;YACzE,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,EAAE;gBACnD,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE;aACtC,CAAC,CAAC;YACH,IAAI,aAAa,EAAE,CAAC;gBAClB,0CAA0C;gBAC1C,IAAI,CAAC,OAAO,CAAC;oBACX,YAAY,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE;iBACjE,CAAC,CAAC;YACL,CAAC;YACD,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;QAED;;;;;WAKG;QACH,cAAc,CAAC,QAAuC;YACpD,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,mBAAmB,KAAK,KAAK;gBAAE,OAAO;YACzD,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;KACF,CAAC;IACF,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["import type { OmitStrict } from '@pega/cosmos-react-core';\nimport type { ModalManagerContextValue } from '@pega/cosmos-react-core/lib/components/Modal/Modal.types';\n\nimport type RsInternal from '../RsInternal';\nimport ActionTypes from '../actions/actionConstants';\nimport * as actions from '../actions/actions';\nimport { rowSelectColumnMeta } from '../constants';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { SUPPORTED_AVOIDABLE_FEATURES, SUPPORTED_FLUSH_KEYS } from '../constants';\nimport { validateAction, passablePromise, deepCopy, deepEqual } from '../utils/util';\nimport getMasterDetailSelection, { isMasterDetailSupported } from '../utils/masterDetail';\nimport type { Errors, State } from '../../../types/State.types';\n// This is being used in JSdoc.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { ApiContext, ApiOptions } from '../../../types/ApiContext.types';\nimport type { FieldDef, GalleryLayout, ROW_DENSITY } from '../../../types/Meta.types';\nimport type {\n ActionMeta,\n ApplyAliasesActionPayload,\n ColumnFilteringActionPayload,\n ExpandCollapsePayload,\n PaginationPayload\n} from '../actions/actions.types';\n\nimport type { RowData } from './RowGenerator.types';\nimport type View from './ViewGenerator';\nimport type {\n DebugInfo,\n RefreshNotification,\n RequiredDefinition,\n WarningDetail\n} from './ViewGenerator.types';\nimport type Column from './ColumnGenerator';\n\nexport type RefreshNotificationForConsumer = OmitStrict<RefreshNotification, 'id'>;\n\nexport type SupportedConsumerPayloads = {\n [ActionTypes.USER_CONFIRMATION_ACTION]: OmitStrict<\n NonNullable<View['confirmationActionDetails']>,\n 'onSubmit' | 'onCancel'\n >;\n [ActionTypes.UPDATE_DEBUG_INFO]: DebugInfo;\n [ActionTypes.TOGGLE_DISABLE_SELECTION]: boolean;\n [ActionTypes.TOGGLE_REQUIRED]: RequiredDefinition;\n [ActionTypes.NOTIFY_DATA_REFRESH]: RefreshNotificationForConsumer;\n [ActionTypes.SET_IN_EXTERNAL_STATE]: NonNullable<State['externalState']>;\n [ActionTypes.UPDATE_SELECTED_ROWS]: undefined;\n [ActionTypes.SET_WARNING_MESSAGES]: WarningDetail[];\n};\n\nexport type SupportedConsumerActionType = keyof SupportedConsumerPayloads;\n\nfunction syncData(key: string, sourceArray: RowData[], modifiedArray: RowData[]) {\n return sourceArray.map(item => {\n const item2 = modifiedArray.find(i2 => i2[key] === item[key]);\n return item2 || item;\n });\n}\n\nexport default function viewUtilityMethods(rsInternal: RsInternal) {\n const { getRsProps, getRsStateResolver, getView, getRsStore } = rsInternal;\n\n const utilMethods = {\n /**\n * Dispatches an action that creates a new state object without any internal modifications.\n *\n * If {@link instantRender} is false and {@link forceUpdateFeatures} are provided,\n * it updates the {@link State.forceUpdateFeatures forceUpdateFeatures} slice in the state.\n *\n * @param instantRender - Determines if the render should happen instantly.\n * @param forceUpdateFeatures - The features to force update in the state on next render cycle.\n */\n forceUpdate(instantRender?: boolean, forceUpdateFeatures?: State['forceUpdateFeatures']) {\n getRsStateResolver().dispatch(actions.actionForceUpdate(instantRender, forceUpdateFeatures));\n },\n\n /**\n * Handles the reordering of rows.\n *\n * If {@link Meta.moveListRecords moveListRecords} is set to true in Meta, it dispatches an action\n * that updates the keys of the {@link sourceKey source} row and the {@link destinationKey destination} row\n * in the {@link State.sourceKey sourceKey} and {@link State.destinationKey destinationKey} state slices, respectively.\n *\n * Otherwise, it calls {@link ApiContext.applyRowReorder applyRowReorder} from the apiContext and triggers\n * a {@link utilMethods.forceRefresh forceRefresh} on the state.\n *\n * @param sourceKey - The itemKey for the row being dragged.\n * @param destinationKey - The itemKey for the row on which it is dropped.\n */\n handleRowReorder(sourceKey: string, destinationKey: string) {\n if (getView()?.meta?.moveListRecords) {\n getRsStateResolver().dispatch(\n actions.actionMoveRecordKeysUpdate({\n sourceKey,\n destinationKey\n })\n );\n return;\n }\n getRsProps()\n .apiContext.applyRowReorder?.(sourceKey, destinationKey)\n .then(() => {\n utilMethods.forceRefresh();\n });\n },\n\n /**\n * Sets the count-related information onto the {@link View view} via {@link View.setProp setProp} and triggers {@link utilMethods.forceUpdate forceUpdate}.\n *\n * @param args - The count information object.\n * @param args.count - The total record count of the view, including group headers.\n * @param args.hasMoreResults - Indicates if the view has more records.\n * @param args.selectedRecordsCount - The total count of selected records.\n * @param args._countGeneratedInternally - Indicates if the count is generated internally. This is used for RS core internal purposes. Setting this from apiContext might lead to erroneous behavior.\n * @returns void\n */\n setRecordCount({\n count,\n hasMoreResults,\n selectedRecordsCount,\n _countGeneratedInternally,\n announce\n }: {\n count?: View['resultsCount'];\n hasMoreResults?: View['hasMoreResults'];\n selectedRecordsCount?: View['selectedRecordsCount'];\n _countGeneratedInternally?: View['countGeneratedInternally'];\n announce?: View['announceCount'];\n }) {\n // NOTE: setRecordCount can be called with partial props. So while doing setProp we need to make sure to check the existence of incoming prop value.\n // If incoming prop is undefined then it should have a fallback otherwise it will override existing value on view to undefined.\n getView().setProp({\n countGeneratedInternally: !!_countGeneratedInternally,\n hasMoreResults: hasMoreResults ?? false,\n resultsCount: count,\n selectedRecordsCount: selectedRecordsCount ?? getView().selectedRecordsCount,\n showCount: !Number.isFinite(count) ? false : !_countGeneratedInternally,\n announceCount: announce\n });\n // If count is not finite then do instantRender as we want to hide the count immediately and don't want the StateResolver queue to be empty.\n // Else the count will be displayed after the StateResolver queue becomes empty.\n const instantRender = !Number.isFinite(count);\n utilMethods.forceUpdate(instantRender);\n },\n\n /**\n * Dispatches an action to interact with repeating structures, allowing consumers\n * to perform operations using standard actions and payloads.\n *\n * @param action The action to be dispatched.\n * @param payload The payload associated with the action.\n * @returns The return value after the action has been processed by the repeating structure.\n */\n // TODO Refactor- this method to have only one parameter action object that contains type and payload. Maintenance of it will be easy.\n // TODO Make it generic specific.\n dispatchAction<T extends SupportedConsumerActionType>(\n action: T,\n payload?: SupportedConsumerPayloads[T]\n ): Promise<any> | undefined {\n const { dispatch } = getRsStateResolver();\n validateAction(action, payload, getView().externalStateKeys);\n\n let actionReturnValue;\n switch (action) {\n case ActionTypes.USER_CONFIRMATION_ACTION:\n // eslint-disable-next-line no-case-declarations\n const [promise, onSubmit, onCancel] = passablePromise<any>();\n getView().setProp({\n confirmationActionDetails: {\n onSubmit,\n onCancel,\n ...(payload as OmitStrict<\n NonNullable<View['confirmationActionDetails']>,\n 'onSubmit' | 'onCancel'\n >)\n }\n });\n dispatch(actions.showConfirmationAction());\n actionReturnValue = promise;\n break;\n case ActionTypes.UPDATE_DEBUG_INFO:\n getView().setProp({ debugInfo: [payload as DebugInfo] });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.TOGGLE_DISABLE_SELECTION: {\n let rowSelectColumn = getView().columns?.find(\n column => column.field.id === rowSelectColumnMeta.field.id\n );\n if (rowSelectColumn) {\n rowSelectColumn = rowSelectColumn.setProp({\n disableSelection: payload as boolean\n });\n utilMethods.forceUpdate(false);\n }\n break;\n }\n case ActionTypes.TOGGLE_REQUIRED:\n getView().setProp({ requiredDef: payload as RequiredDefinition });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.NOTIFY_DATA_REFRESH:\n getView().setProp('refreshNotification', {\n id: Date.now(),\n ...(payload as RefreshNotificationForConsumer)\n });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.SET_IN_EXTERNAL_STATE:\n dispatch(actions.setExternalState(payload as NonNullable<State['externalState']>));\n break;\n case ActionTypes.UPDATE_SELECTED_ROWS:\n utilMethods.forceUpdate(false, {\n updateSelectedRows: new Date().getTime()\n });\n break;\n case ActionTypes.SET_WARNING_MESSAGES:\n if (!deepEqual(getView().getWarningMessages(), payload)) {\n getView().setProp({ warningMessages: payload as WarningDetail[] });\n utilMethods.forceUpdate(false);\n }\n break;\n default:\n }\n return actionReturnValue;\n },\n\n /** Returns the Html events required for reordering a column. */\n getFieldReorderProps() {\n return getRsStore().getFieldReorderProps?.();\n },\n\n // TODO: this should be moved to group generator instance.\n /**\n * Triggers the expand or collapse action for a group header.\n * Dispatches an action to update the {@link State.groupToggle groupToggle} slices in the state.\n *\n * @param payload The data related to the groups.\n */\n toggleGroupExpansion(payload: OmitStrict<ExpandCollapsePayload, 'groups'>) {\n getRsStateResolver().dispatch(actions.actionToggleExpandCollpase(payload));\n },\n\n /**\n * Clears hierarchical groups by dispatching an action to reset the {@link State.hierarchicalGroup hierarchicalGroup} slice in the state.\n */\n clearHierarchicalGroup() {\n getRsStore().groupingInfo = [];\n getRsStateResolver().dispatch(actions.actionUpdateDisplayMode({}));\n },\n\n /**\n * Dispatches a pagination action to update {@link State.paginationOptions paginationOptions} in the state slice.\n *\n * @param payload - The pagination options to update.\n * @param actionMeta - The action metadata.\n */\n onPaginate(payload: PaginationPayload, actionMeta?: ActionMeta) {\n getRsStateResolver().dispatch(actions.actionPaginate(payload, actionMeta));\n },\n\n /**\n * Removes a notification message.\n * Dispatches an action to update the {@link State.notifications notifications} slice in the state.\n *\n * @param payload The notification messages to be removed.\n */\n removeNotification(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionNotificationRemove(payload));\n },\n\n /**\n * Applies a filter to the repeating structures.\n * Dispatches an action that updates the {@link State.filterExpression filterExpression} in the state.\n *\n * @param params The filter expression to apply.\n */\n applyFilter(params: ColumnFilteringActionPayload) {\n getRsStateResolver().dispatch(actions.actionColumnFiltering(params));\n },\n\n /**\n * Dispatches an action to replace the {@link State.columnAlias columnAlias} slice in the state.\n *\n * @param params - Parameters for the action. Specify the necessary details.\n */\n applyAliases(params: ApplyAliasesActionPayload) {\n getRsStateResolver().dispatch(actions.actionReplaceLabels(params));\n },\n\n /**\n * Clears filters for the specified {@link columnId}.\n * Dispatches an action to update the {@link State.clearColFilter clearColFilter} slice in the state.\n * @param columnId - The column on which the filter should be cleared.\n */\n clearFilter(columnId: string) {\n getRsStateResolver().dispatch(actions.actionClearFiltering(columnId));\n },\n\n /**\n * Applies grouping to repeating structures.\n * Dispatches an action that adds {@link State.groups groups} in the state.\n * @param payload\n */\n applyGrouping(payload: NonNullable<State['groups']>) {\n getRsStateResolver().dispatch(actions.actionAddGroups(payload));\n },\n\n /**\n * Applies sorting the repeating structures.\n * Dispatches an action that adds {@link State.sortingOrder sortingOrder} in state.\n * @param payload\n */\n applySorting(payload: NonNullable<State['sortingOrder']>) {\n getRsStateResolver().dispatch(actions.actionUpdateSort(payload));\n },\n\n /**\n * Toggles the visibility of header icons.\n * Dispatches an action to update {@link State.showHeaderIcons} in the state.\n *\n * @param status The status indicating whether to show or hide header icons.\n */\n updateHeaderIconsVisibility(status: NonNullable<State['showHeaderIcons']>) {\n getRsStateResolver().dispatch(actions.actionShowHeaderIcons(status));\n },\n\n /**\n * Applies freezing to a set of columns.\n * Dispatches an action to update {@link State.freezeColumns freezeColumns} in the state.\n *\n * @param payload The payload containing information about the columns to freeze.\n */\n applyFreeze(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionColumnPin(payload));\n },\n\n /**\n * Toggles the visibility of columns.\n * Dispatches an action that updates {@link State.hiddenColumns hiddenColumns} in the state.\n * @param payload\n */\n applyToggleVisibility(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionColumnToggle(payload));\n },\n\n /**\n * Sets the {@link State.hiddenColumns hiddenColumns} in the state, including out-of-the-box columns like dragHandle.\n *\n * @param payload - The payload containing columns to hide.\n * @param ootbColumns - The out-of-the-box columns to include in {@link State.hiddenColumns hiddenColumns}.\n */\n applyHiddenColumns(payload: string[], ootbColumns?: { dragHandle?: boolean }) {\n getRsStateResolver().dispatch(actions.actionHiddenColumnUpdate(payload, ootbColumns));\n },\n\n /**\n * Sets the {@link State.visibleColumns visibleColumns} in the state.\n * @param columnId - A single column ID or an array of column IDs to make visible.\n */\n applyVisibleColumns(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionVisibleColumnUpdate(payload));\n },\n\n /**\n * Dispatches an action that replace {@link State.aggregationInfo aggregationInfo} slice in the state with the given {@link payload}.\n * @param payload\n */\n applyAggregations(payload: NonNullable<State['aggregationInfo']>) {\n getRsStateResolver().dispatch(actions.actionUpdateAggregations(payload));\n },\n\n /**\n * Applies order to columns of a repeatings structure with the given {@link payload}.\n * Dispatches an action that sets {@link State.colOrder columnOrder} in the state with the given {@link payload}.\n * @param payload\n */\n applyOrder(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionNewColumnOrder(payload));\n },\n\n /**\n * Saves the current personalization state.\n * Dispatches an action that invokes {@link ApiContext.updatePersonalization} to persist the changes.\n *\n * @param personalizationKey The key representing the current personalization.\n * @param markAsDefault Whether to mark the current personalization as default.\n * @param markAsAppDefault Whether to mark the current personalization as app default.\n */\n updatePersonalization(\n personalizationKey: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n ) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationUpdate(personalizationKey, markAsDefault, markAsAppDefault)\n );\n },\n\n /**\n * Sets the selected personalization state as the current state of the repeating structures.\n * Dispatches an action to update the {@link State} of the repeating structures with the selected personalization state,\n * and updates the active personalization in the {@link State.personalization personalization} state slice.\n *\n * @param args Method arguments.\n * @param args.id ID of the personalization to be set active.\n * @param args.isPreset Indicates if the personalization is preset.\n */\n applyActivePersonalization({ id, isPreset = false }: { id: string; isPreset: boolean }) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationSetActive({\n id,\n isPreset\n })\n );\n getRsStateResolver().dispatch(actions.actionUpdateStateVersion());\n },\n\n /**\n * Creates a new personalization in the state.\n * Dispatches an action that calls {@link ApiContext.createPersonalization createPersonalization} API to create\n * a new personalization with the provided name and saves it in the {@link State.personalization personalization}.\n *\n * @param name The name of the personalization.\n * @param markAsDefault Indicates whether the new personalization should be marked as default.\n */\n createPersonalization(name: string, markAsDefault: boolean) {\n getRsStateResolver().dispatch(actions.actionPersonalizationCreate(name, markAsDefault));\n },\n\n /**\n * Updates the name, markAsDefault, and markAsAppDefault flags of the current personalization.\n *\n * @param active The current active personalization key.\n * @param name The updated name.\n * @param markAsDefault Indicates whether the current personalization should be marked as default.\n * @param markAsAppDefault Indicates whether the current personalization should be marked as app default.\n */\n editPersonalization(\n active: string,\n name: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n ) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationEdit(active, name, markAsDefault, markAsAppDefault)\n );\n },\n\n /**\n * Deletes the current personalization identified by the given key.\n * Dispatches an action that calls {@link ApiContext.deletePersonalization deletePersonalization} API\n * and updates the {@link State.personalization personalization} state by removing the deleted personalization.\n *\n * @param personalizationKey - The key or ID of the personalization to be deleted.\n */\n deletePersonalization(personalizationKey: string) {\n getRsStateResolver().dispatch(actions.actionPersonalizationDelete(personalizationKey));\n },\n\n /**\n * Sets the current personalization key as the default personalization.\n * Dispatches an action to update `defaultPersonalization` in the `personalization` state slice\n * and calls {@link ApiContext.updatePersonalization updatePersonalization} API.\n *\n * @param personalizationKey - The key identifying the personalization to set as default.\n */\n setDefaultPersonalization(personalizationKey: string) {\n getRsStateResolver().dispatch(actions.actionPersonalizationSetDefault(personalizationKey));\n },\n\n /**\n * Sets the current {@link personalizationKey} as the app's default personalization.\n * Dispatches an action that invokes {@link ApiContext.updatePersonalization updatePersonalization} api with markAsAppDefault=true for the current personalization.\n *\n * @param personalizationKey The key of the personalization to set as default.\n * @param trimmedName The name of the personalization to update.\n */\n setAppDefaultPersonalization(personalizationKey: string, trimmedName: string) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationSetAppDefault(personalizationKey, trimmedName)\n );\n },\n\n /**\n * Applies the provided search value as a filter expression in the state,\n * using an OR condition with a contains clause.\n *\n * @param value The search value to apply.\n */\n\n applySearch(value: string) {\n getRsStateResolver().dispatch(actions.actionSearchGlobal(value));\n },\n\n /**\n * Applies the given row density in {@link State.selectedHeightOption selectedHeightOption} state slice.\n *\n * @param payload the row density id.\n */\n applyRowHeight(payload: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY]) {\n getRsStateResolver().dispatch(actions.actionRowHeightChange(payload));\n },\n\n /**\n * Applies gallery layout on the current view.\n *\n * @param layout - Gallery layout mode.\n */\n applyGalleryLayout(layout: GalleryLayout) {\n getRsStateResolver().dispatch(actions.actionGalleryLayoutChange(layout));\n },\n\n /**\n * Sets the {@link State.bootstrap bootstrap} status of repeating structures and update the {@link State.version version}in state.\n */\n doBootstrap() {\n getRsStateResolver().dispatch(actions.actionBootstrap());\n getRsStateResolver().dispatch(actions.actionUpdateStateVersion());\n },\n\n /**\n * Triggers a refresh of data in repeating structures.\n * Dispatches an action that injects {@link State.refresh refresh} flag in the state.\n * @param flushState The state slice that needs to be reset on refresh. See {@link SUPPORTED_AVOIDABLE_FEATURES}.\n * @param featuresToAvoid The features that should not run as part of refresh. See {@link SUPPORTED_FLUSH_KEYS}.\n */\n forceRefresh(flushState: { [k: string]: boolean } = {}, featuresToAvoid: string[] = []) {\n // If a refresh is in progress, don't trigger another refresh.\n if (getRsStore().refreshInProgress) return;\n\n // Communicate forceRefresh to apiContext via ApiOptions.\n getRsStore().refreshInProgress = true;\n getRsStore().refreshToken = Date.now();\n // Communicate forceRefresh to apiContext via callback.\n getRsProps().apiContext.onBeforeRefresh?.();\n\n getRsStateResolver().dispatch(actions.actionForceRefresh(flushState, featuresToAvoid));\n },\n\n /**\n * Fetches actions for the {@link selectedItems} using {@link ApiContext.fetchActions fetchActions} api.\n * @param selectedItems\n */\n fetchActions(selectedItems: string[]) {\n return getRsProps().apiContext.fetchActions?.(selectedItems);\n },\n\n /**\n * This resets the selection and refreshes the {@link rows} data.\n * @param rows\n */\n async clearSelectionAndRefreshRows(rows: string[]) {\n await Promise.allSettled([utilMethods.selectAllRows(false), utilMethods.refreshRows(rows)]);\n },\n\n /**\n * This removes {@link State.showConfirmationAction confirmationAction} from the state.\n */\n completeConfirmationAction() {\n getRsStateResolver().dispatch(actions.completeConfirmationAction());\n },\n\n /**\n * This sets the {@link State.errors errors} in the state.\n * @param payload\n */\n setErrors(payload: Errors) {\n if (payload.dataErrors) {\n getRsStateResolver().dispatch(actions.setDataErrors(payload.dataErrors));\n }\n },\n /**\n * Dispatches the dom container responsive breakpoints to state.\n * @param breakpoint\n * @param value\n */\n setDomContainerResponsiveBreakpoints(breakpoint: string, value: boolean) {\n const payload = { breakpoint, value };\n getRsStateResolver().dispatch(actions.setDomContainerResponsiveBreakpoints(payload));\n },\n\n /**\n * Refreshes the {@link View.data data} for {@link rows} by calling {@link ApiContext.fetchRowsData fetchRowsData} api.\n * It also calls {@link utilMethods.forceUpdate forceUpdate } to trigger state change for re-rendering.\n * @param rows\n */\n async refreshRows(rows: string[] = []) {\n const rsProps = getRsProps();\n if (rows.length === 0) {\n return;\n }\n const state = getRsStateResolver().getState();\n const { fetchRowsData } = rsProps.apiContext;\n const response = await fetchRowsData?.(\n deepCopy(state),\n getView().meta,\n rows,\n getView().meta.itemKey,\n {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n }\n );\n\n const data = syncData(getView().meta.itemKey, getView().data!, response!);\n getView().setProp({\n data: [...data]\n });\n\n // Refresh the active detail as it may be stale even when the refreshed table row data is unchanged.\n utilMethods.refreshMasterDetail(rows);\n utilMethods.forceUpdate(false, { forceRenderOnNextRun: true });\n },\n\n /**\n * Select/Deselect all rows(all pages in case of paginated data) by calling {@link ApiContext.setSelectedRows setSelectedRows}/ {@link ApiContext.clearSelectedRows clearSelectedRows} api.\n * It also updates the selected rows received from {@link ApiContext.getSelectedRows getSelectedRows} api in {@link State.selectedRows selectedRows} state slice.\n * @param isSelected\n */\n async selectAllRows(isSelected: boolean) {\n const rsProps = getRsProps();\n let selectedRows: (RowData & { $selected: boolean })[] = [];\n if (isSelected) {\n const response = await rsProps.apiContext.fetchData(\n {\n ...getRsStateResolver().getState(),\n paginationOptions: {\n rootVirtualiser: {\n startIndex: 0,\n endIndex: getView().resultsCount! - 1\n }\n },\n // passing groups and groupFilters as undefined to get all rows\n groups: undefined,\n groupFilters: undefined\n },\n getView().meta,\n {}\n );\n if (response) {\n const { data = [] } = response;\n selectedRows = data.map(item => ({ ...item, $selected: true })) || [];\n }\n try {\n await rsProps.apiContext.setSelectedRows?.(selectedRows);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('setSelectedRows api resulting into error.', e);\n }\n } else {\n // clear all selections when selectAll is unchecked\n await rsProps.apiContext.clearSelectedRows?.();\n }\n\n const rows = await rsProps.apiContext.getSelectedRows?.();\n\n if (rows)\n getRsStateResolver().dispatch(\n actions.actionRowSelectionItemsUpdate({\n selectedRows: rows,\n mode: getView().meta.selectionMode!\n })\n );\n },\n\n /**\n * Triggers {@link ApiContext.importCSVData importCSVData} api.\n * @param create\n */\n importCSVData(create: ModalManagerContextValue['create']) {\n return getRsProps()\n .apiContext.importCSVData?.(create)\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Triggers {@link ApiContext.exportData exportData} api.\n */\n exportToExcel() {\n function getVisibleColumnFormatters() {\n const visibleColumns = getView().getVisibleColumns();\n const formatters: Record<string, Column['formatterConfig']> = {};\n visibleColumns?.forEach(column => {\n if (column.formatterConfig) {\n formatters[column.field.id] = column.formatterConfig;\n }\n });\n return formatters;\n }\n return getRsProps()\n .apiContext.exportData?.(\n deepCopy(getView().state),\n getView().meta,\n {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n },\n getVisibleColumnFormatters()\n )\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Triggers {@link ApiContext.exportDataToCSV exportDataToCSV} api.\n */\n exportToCSV() {\n return getRsProps()\n .apiContext.exportDataToCSV?.(deepCopy(getView().state), getView().meta, {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n })\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Updates the visibility of columns by modifying {@link State.hiddenColumns}.\n * @param columns - An object mapping column IDs to their visibility status. `true` indicates the column is visible, and `false` means it is hidden.\n */\n updateColumnsVisibility(columns: { [key: FieldDef['id']]: boolean }) {\n getRsStateResolver().dispatch(actions.updateColumnsVisibility(columns));\n },\n\n setConditionalStyleFormats(\n conditionalStyleFormats: NonNullable<State['conditionalStyleFormats']>\n ) {\n getRsStateResolver().dispatch(actions.setConditionalStyleFormats(conditionalStyleFormats));\n },\n\n /**\n * Opens a currently generated row in Master Detail.\n * Semantic Link supplies `nestedTarget` for nested navigation, while View-in-Modal supplies\n * `viewName` for a custom root view; these overrides are mutually exclusive.\n *\n * @param rowKey - Key of the row to open from the current generated row window.\n * @param nestedTarget - Semantic Link target to open within the selected row's detail panel.\n * @param viewName - View-in-Modal view to render as the selected row's root detail.\n */\n openMasterDetail(rowKey: string, nestedTarget?: Record<string, unknown>, viewName?: string) {\n if (!isMasterDetailSupported(getView())) {\n return;\n }\n\n const matchingRows = getView().rows?.filter(row => row.key === rowKey) ?? [];\n if (matchingRows.length !== 1) {\n return;\n }\n\n // The feature that resolves State into View.masterDetail runs asynchronously after dispatch,\n // so nestedTarget/viewName must be set on the View before dispatching, not after.\n // Every outer open starts a new selection and clears navigation metadata omitted by the caller.\n // TODO: Nested target(Semantic link) && viewName(ViewInModal) handling should not be part of RS core, its DX/RS semantics. Can simplify?\n const view = getView();\n const selection = getMasterDetailSelection(view, { masterDetail: { rowKey } });\n if (selection) {\n view.setProp({\n masterDetail: {\n ...selection,\n nestedTarget: viewName ? undefined : nestedTarget,\n viewName: nestedTarget ? undefined : viewName\n }\n });\n }\n\n getRsStateResolver().dispatch(actions.actionOpenMasterDetail({ rowKey }));\n },\n\n /** Closes the active Master Detail item. */\n closeMasterDetail() {\n getRsStateResolver().dispatch(actions.actionCloseMasterDetail());\n },\n\n /** Clears the nested target on the active Master Detail selection for the given row, without closing it. */\n clearMasterDetailNestedTarget(rowKey: string) {\n const view = getView();\n if (view.masterDetail?.rowKey !== rowKey || !view.masterDetail.nestedTarget) {\n return;\n }\n view.setProp({ masterDetail: { ...view.masterDetail, nestedTarget: undefined } });\n },\n\n /** Refreshes the active Master Detail when no row keys, or its row key, is supplied. */\n refreshMasterDetail(rowKeys?: string[]) {\n const view = getView();\n const { masterDetail } = view;\n if (!masterDetail || (rowKeys && !rowKeys.includes(masterDetail.rowKey))) {\n return;\n }\n view.setProp({\n masterDetail: { ...masterDetail, refreshKey: crypto.randomUUID() }\n });\n },\n\n /** Navigates within the current loaded Master Detail row window. */\n navigateMasterDetail(direction: 'previous' | 'next') {\n const view = getView();\n if (!isMasterDetailSupported(view)) {\n return;\n }\n\n const selection = view.masterDetail;\n const rows = view.rows ?? [];\n if (!selection) {\n return;\n }\n\n const currentIndex = rows.findIndex(row => row.key === selection.rowKey);\n if (currentIndex === -1) {\n return;\n }\n const offset = direction === 'previous' ? -1 : 1;\n const nextRow = rows[currentIndex + offset];\n if (!nextRow) {\n return;\n }\n\n const nextSelection = getMasterDetailSelection(view, {\n masterDetail: { rowKey: nextRow.key }\n });\n if (nextSelection) {\n // Set same view that was there previously\n view.setProp({\n masterDetail: { ...nextSelection, viewName: selection.viewName }\n });\n }\n getRsStateResolver().dispatch(actions.actionOpenMasterDetail({ rowKey: nextRow.key }));\n },\n\n /**\n * Switches the active template for the view at runtime\n * (e.g. when the user toggles between Table and Gallery from the toolbar).\n *\n * @param template The target template to switch to.\n */\n changeTemplate(template: NonNullable<View['template']>) {\n if (getView().meta.allowSwitchTemplate === false) return;\n getRsStateResolver().dispatch(actions.actionChangeTemplate(template));\n }\n };\n return utilMethods;\n}\nexport type UtilityFunctions = ReturnType<typeof viewUtilityMethods>;\n"]}
1
+ {"version":3,"file":"viewUtilityMethods.js","sourceRoot":"","sources":["../../../../src/core/generators/viewUtilityMethods.ts"],"names":[],"mappings":"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","sourcesContent":["import type { OmitStrict } from '@pega/cosmos-react-core';\nimport type { ModalManagerContextValue } from '@pega/cosmos-react-core/lib/components/Modal/Modal.types';\n\nimport type RsInternal from '../RsInternal';\nimport ActionTypes from '../actions/actionConstants';\nimport * as actions from '../actions/actions';\nimport { rowSelectColumnMeta } from '../constants';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { SUPPORTED_AVOIDABLE_FEATURES, SUPPORTED_FLUSH_KEYS } from '../constants';\nimport { validateAction, passablePromise, deepCopy, deepEqual } from '../utils/util';\nimport getMasterDetailSelection, { isMasterDetailSupported } from '../utils/masterDetail';\nimport type { Errors, State } from '../../../types/State.types';\n// This is being used in JSdoc.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { ApiContext, ApiOptions } from '../../../types/ApiContext.types';\nimport type { FieldDef, GalleryLayout, ROW_DENSITY } from '../../../types/Meta.types';\nimport type {\n ActionMeta,\n ApplyAliasesActionPayload,\n ColumnFilteringActionPayload,\n ExpandCollapsePayload,\n PaginationPayload\n} from '../actions/actions.types';\n\nimport type { RowData } from './RowGenerator.types';\nimport type View from './ViewGenerator';\nimport type {\n DebugInfo,\n RefreshNotification,\n RequiredDefinition,\n WarningDetail\n} from './ViewGenerator.types';\n\nexport type RefreshNotificationForConsumer = OmitStrict<RefreshNotification, 'id'>;\n\nexport type SupportedConsumerPayloads = {\n [ActionTypes.USER_CONFIRMATION_ACTION]: OmitStrict<\n NonNullable<View['confirmationActionDetails']>,\n 'onSubmit' | 'onCancel'\n >;\n [ActionTypes.UPDATE_DEBUG_INFO]: DebugInfo;\n [ActionTypes.TOGGLE_DISABLE_SELECTION]: boolean;\n [ActionTypes.TOGGLE_REQUIRED]: RequiredDefinition;\n [ActionTypes.NOTIFY_DATA_REFRESH]: RefreshNotificationForConsumer;\n [ActionTypes.SET_IN_EXTERNAL_STATE]: NonNullable<State['externalState']>;\n [ActionTypes.UPDATE_SELECTED_ROWS]: undefined;\n [ActionTypes.SET_WARNING_MESSAGES]: WarningDetail[];\n};\n\nexport type SupportedConsumerActionType = keyof SupportedConsumerPayloads;\n\nfunction syncData(key: string, sourceArray: RowData[], modifiedArray: RowData[]) {\n return sourceArray.map(item => {\n const item2 = modifiedArray.find(i2 => i2[key] === item[key]);\n return item2 || item;\n });\n}\n\nexport default function viewUtilityMethods(rsInternal: RsInternal) {\n const { getRsProps, getRsStateResolver, getView, getRsStore } = rsInternal;\n\n const utilMethods = {\n /**\n * Dispatches an action that creates a new state object without any internal modifications.\n *\n * If {@link instantRender} is false and {@link forceUpdateFeatures} are provided,\n * it updates the {@link State.forceUpdateFeatures forceUpdateFeatures} slice in the state.\n *\n * @param instantRender - Determines if the render should happen instantly.\n * @param forceUpdateFeatures - The features to force update in the state on next render cycle.\n */\n forceUpdate(instantRender?: boolean, forceUpdateFeatures?: State['forceUpdateFeatures']) {\n getRsStateResolver().dispatch(actions.actionForceUpdate(instantRender, forceUpdateFeatures));\n },\n\n /**\n * Handles the reordering of rows.\n *\n * If {@link Meta.moveListRecords moveListRecords} is set to true in Meta, it dispatches an action\n * that updates the keys of the {@link sourceKey source} row and the {@link destinationKey destination} row\n * in the {@link State.sourceKey sourceKey} and {@link State.destinationKey destinationKey} state slices, respectively.\n *\n * Otherwise, it calls {@link ApiContext.applyRowReorder applyRowReorder} from the apiContext and triggers\n * a {@link utilMethods.forceRefresh forceRefresh} on the state.\n *\n * @param sourceKey - The itemKey for the row being dragged.\n * @param destinationKey - The itemKey for the row on which it is dropped.\n */\n handleRowReorder(sourceKey: string, destinationKey: string) {\n if (getView()?.meta?.moveListRecords) {\n getRsStateResolver().dispatch(\n actions.actionMoveRecordKeysUpdate({\n sourceKey,\n destinationKey\n })\n );\n return;\n }\n getRsProps()\n .apiContext.applyRowReorder?.(sourceKey, destinationKey)\n .then(() => {\n utilMethods.forceRefresh();\n });\n },\n\n /**\n * Sets the count-related information onto the {@link View view} via {@link View.setProp setProp} and triggers {@link utilMethods.forceUpdate forceUpdate}.\n *\n * @param args - The count information object.\n * @param args.count - The total record count of the view, including group headers.\n * @param args.hasMoreResults - Indicates if the view has more records.\n * @param args.selectedRecordsCount - The total count of selected records.\n * @param args._countGeneratedInternally - Indicates if the count is generated internally. This is used for RS core internal purposes. Setting this from apiContext might lead to erroneous behavior.\n * @returns void\n */\n setRecordCount({\n count,\n hasMoreResults,\n selectedRecordsCount,\n _countGeneratedInternally,\n announce\n }: {\n count?: View['resultsCount'];\n hasMoreResults?: View['hasMoreResults'];\n selectedRecordsCount?: View['selectedRecordsCount'];\n _countGeneratedInternally?: View['countGeneratedInternally'];\n announce?: View['announceCount'];\n }) {\n // NOTE: setRecordCount can be called with partial props. So while doing setProp we need to make sure to check the existence of incoming prop value.\n // If incoming prop is undefined then it should have a fallback otherwise it will override existing value on view to undefined.\n getView().setProp({\n countGeneratedInternally: !!_countGeneratedInternally,\n hasMoreResults: hasMoreResults ?? false,\n resultsCount: count,\n selectedRecordsCount: selectedRecordsCount ?? getView().selectedRecordsCount,\n showCount: !Number.isFinite(count) ? false : !_countGeneratedInternally,\n announceCount: announce\n });\n // If count is not finite then do instantRender as we want to hide the count immediately and don't want the StateResolver queue to be empty.\n // Else the count will be displayed after the StateResolver queue becomes empty.\n const instantRender = !Number.isFinite(count);\n utilMethods.forceUpdate(instantRender);\n },\n\n /**\n * Dispatches an action to interact with repeating structures, allowing consumers\n * to perform operations using standard actions and payloads.\n *\n * @param action The action to be dispatched.\n * @param payload The payload associated with the action.\n * @returns The return value after the action has been processed by the repeating structure.\n */\n // TODO Refactor- this method to have only one parameter action object that contains type and payload. Maintenance of it will be easy.\n // TODO Make it generic specific.\n dispatchAction<T extends SupportedConsumerActionType>(\n action: T,\n payload?: SupportedConsumerPayloads[T]\n ): Promise<any> | undefined {\n const { dispatch } = getRsStateResolver();\n validateAction(action, payload, getView().externalStateKeys);\n\n let actionReturnValue;\n switch (action) {\n case ActionTypes.USER_CONFIRMATION_ACTION:\n // eslint-disable-next-line no-case-declarations\n const [promise, onSubmit, onCancel] = passablePromise<any>();\n getView().setProp({\n confirmationActionDetails: {\n onSubmit,\n onCancel,\n ...(payload as OmitStrict<\n NonNullable<View['confirmationActionDetails']>,\n 'onSubmit' | 'onCancel'\n >)\n }\n });\n dispatch(actions.showConfirmationAction());\n actionReturnValue = promise;\n break;\n case ActionTypes.UPDATE_DEBUG_INFO:\n getView().setProp({ debugInfo: [payload as DebugInfo] });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.TOGGLE_DISABLE_SELECTION: {\n let rowSelectColumn = getView().columns?.find(\n column => column.field.id === rowSelectColumnMeta.field.id\n );\n if (rowSelectColumn) {\n rowSelectColumn = rowSelectColumn.setProp({\n disableSelection: payload as boolean\n });\n utilMethods.forceUpdate(false);\n }\n break;\n }\n case ActionTypes.TOGGLE_REQUIRED:\n getView().setProp({ requiredDef: payload as RequiredDefinition });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.NOTIFY_DATA_REFRESH:\n getView().setProp('refreshNotification', {\n id: Date.now(),\n ...(payload as RefreshNotificationForConsumer)\n });\n utilMethods.forceUpdate(false);\n break;\n case ActionTypes.SET_IN_EXTERNAL_STATE:\n dispatch(actions.setExternalState(payload as NonNullable<State['externalState']>));\n break;\n case ActionTypes.UPDATE_SELECTED_ROWS:\n utilMethods.forceUpdate(false, {\n updateSelectedRows: new Date().getTime()\n });\n break;\n case ActionTypes.SET_WARNING_MESSAGES:\n if (!deepEqual(getView().getWarningMessages(), payload)) {\n getView().setProp({ warningMessages: payload as WarningDetail[] });\n utilMethods.forceUpdate(false);\n }\n break;\n default:\n }\n return actionReturnValue;\n },\n\n /** Returns the Html events required for reordering a column. */\n getFieldReorderProps() {\n return getRsStore().getFieldReorderProps?.();\n },\n\n // TODO: this should be moved to group generator instance.\n /**\n * Triggers the expand or collapse action for a group header.\n * Dispatches an action to update the {@link State.groupToggle groupToggle} slices in the state.\n *\n * @param payload The data related to the groups.\n */\n toggleGroupExpansion(payload: OmitStrict<ExpandCollapsePayload, 'groups'>) {\n getRsStateResolver().dispatch(actions.actionToggleExpandCollpase(payload));\n },\n\n /**\n * Clears hierarchical groups by dispatching an action to reset the {@link State.hierarchicalGroup hierarchicalGroup} slice in the state.\n */\n clearHierarchicalGroup() {\n getRsStore().groupingInfo = [];\n getRsStateResolver().dispatch(actions.actionUpdateDisplayMode({}));\n },\n\n /**\n * Dispatches a pagination action to update {@link State.paginationOptions paginationOptions} in the state slice.\n *\n * @param payload - The pagination options to update.\n * @param actionMeta - The action metadata.\n */\n onPaginate(payload: PaginationPayload, actionMeta?: ActionMeta) {\n getRsStateResolver().dispatch(actions.actionPaginate(payload, actionMeta));\n },\n\n /**\n * Removes a notification message.\n * Dispatches an action to update the {@link State.notifications notifications} slice in the state.\n *\n * @param payload The notification messages to be removed.\n */\n removeNotification(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionNotificationRemove(payload));\n },\n\n /**\n * Applies a filter to the repeating structures.\n * Dispatches an action that updates the {@link State.filterExpression filterExpression} in the state.\n *\n * @param params The filter expression to apply.\n */\n applyFilter(params: ColumnFilteringActionPayload) {\n getRsStateResolver().dispatch(actions.actionColumnFiltering(params));\n },\n\n /**\n * Dispatches an action to replace the {@link State.columnAlias columnAlias} slice in the state.\n *\n * @param params - Parameters for the action. Specify the necessary details.\n */\n applyAliases(params: ApplyAliasesActionPayload) {\n getRsStateResolver().dispatch(actions.actionReplaceLabels(params));\n },\n\n /**\n * Clears filters for the specified {@link columnId}.\n * Dispatches an action to update the {@link State.clearColFilter clearColFilter} slice in the state.\n * @param columnId - The column on which the filter should be cleared.\n */\n clearFilter(columnId: string) {\n getRsStateResolver().dispatch(actions.actionClearFiltering(columnId));\n },\n\n /**\n * Applies grouping to repeating structures.\n * Dispatches an action that adds {@link State.groups groups} in the state.\n * @param payload\n */\n applyGrouping(payload: NonNullable<State['groups']>) {\n getRsStateResolver().dispatch(actions.actionAddGroups(payload));\n },\n\n /**\n * Applies sorting the repeating structures.\n * Dispatches an action that adds {@link State.sortingOrder sortingOrder} in state.\n * @param payload\n */\n applySorting(payload: NonNullable<State['sortingOrder']>) {\n getRsStateResolver().dispatch(actions.actionUpdateSort(payload));\n },\n\n /**\n * Toggles the visibility of header icons.\n * Dispatches an action to update {@link State.showHeaderIcons} in the state.\n *\n * @param status The status indicating whether to show or hide header icons.\n */\n updateHeaderIconsVisibility(status: NonNullable<State['showHeaderIcons']>) {\n getRsStateResolver().dispatch(actions.actionShowHeaderIcons(status));\n },\n\n /**\n * Applies freezing to a set of columns.\n * Dispatches an action to update {@link State.freezeColumns freezeColumns} in the state.\n *\n * @param payload The payload containing information about the columns to freeze.\n */\n applyFreeze(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionColumnPin(payload));\n },\n\n /**\n * Toggles the visibility of columns.\n * Dispatches an action that updates {@link State.hiddenColumns hiddenColumns} in the state.\n * @param payload\n */\n applyToggleVisibility(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionColumnToggle(payload));\n },\n\n /**\n * Sets the {@link State.hiddenColumns hiddenColumns} in the state, including out-of-the-box columns like dragHandle.\n *\n * @param payload - The payload containing columns to hide.\n * @param ootbColumns - The out-of-the-box columns to include in {@link State.hiddenColumns hiddenColumns}.\n */\n applyHiddenColumns(payload: string[], ootbColumns?: { dragHandle?: boolean }) {\n getRsStateResolver().dispatch(actions.actionHiddenColumnUpdate(payload, ootbColumns));\n },\n\n /**\n * Sets the {@link State.visibleColumns visibleColumns} in the state.\n * @param columnId - A single column ID or an array of column IDs to make visible.\n */\n applyVisibleColumns(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionVisibleColumnUpdate(payload));\n },\n\n /**\n * Dispatches an action that replace {@link State.aggregationInfo aggregationInfo} slice in the state with the given {@link payload}.\n * @param payload\n */\n applyAggregations(payload: NonNullable<State['aggregationInfo']>) {\n getRsStateResolver().dispatch(actions.actionUpdateAggregations(payload));\n },\n\n /**\n * Applies order to columns of a repeatings structure with the given {@link payload}.\n * Dispatches an action that sets {@link State.colOrder columnOrder} in the state with the given {@link payload}.\n * @param payload\n */\n applyOrder(payload: string[]) {\n getRsStateResolver().dispatch(actions.actionNewColumnOrder(payload));\n },\n\n /**\n * Saves the current personalization state.\n * Dispatches an action that invokes {@link ApiContext.updatePersonalization} to persist the changes.\n *\n * @param personalizationKey The key representing the current personalization.\n * @param markAsDefault Whether to mark the current personalization as default.\n * @param markAsAppDefault Whether to mark the current personalization as app default.\n */\n updatePersonalization(\n personalizationKey: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n ) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationUpdate(personalizationKey, markAsDefault, markAsAppDefault)\n );\n },\n\n /**\n * Sets the selected personalization state as the current state of the repeating structures.\n * Dispatches an action to update the {@link State} of the repeating structures with the selected personalization state,\n * and updates the active personalization in the {@link State.personalization personalization} state slice.\n *\n * @param args Method arguments.\n * @param args.id ID of the personalization to be set active.\n * @param args.isPreset Indicates if the personalization is preset.\n */\n applyActivePersonalization({ id, isPreset = false }: { id: string; isPreset: boolean }) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationSetActive({\n id,\n isPreset\n })\n );\n getRsStateResolver().dispatch(actions.actionUpdateStateVersion());\n },\n\n /**\n * Creates a new personalization in the state.\n * Dispatches an action that calls {@link ApiContext.createPersonalization createPersonalization} API to create\n * a new personalization with the provided name and saves it in the {@link State.personalization personalization}.\n *\n * @param name The name of the personalization.\n * @param markAsDefault Indicates whether the new personalization should be marked as default.\n */\n createPersonalization(name: string, markAsDefault: boolean) {\n getRsStateResolver().dispatch(actions.actionPersonalizationCreate(name, markAsDefault));\n },\n\n /**\n * Updates the name, markAsDefault, and markAsAppDefault flags of the current personalization.\n *\n * @param active The current active personalization key.\n * @param name The updated name.\n * @param markAsDefault Indicates whether the current personalization should be marked as default.\n * @param markAsAppDefault Indicates whether the current personalization should be marked as app default.\n */\n editPersonalization(\n active: string,\n name: string,\n markAsDefault: boolean,\n markAsAppDefault: boolean\n ) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationEdit(active, name, markAsDefault, markAsAppDefault)\n );\n },\n\n /**\n * Deletes the current personalization identified by the given key.\n * Dispatches an action that calls {@link ApiContext.deletePersonalization deletePersonalization} API\n * and updates the {@link State.personalization personalization} state by removing the deleted personalization.\n *\n * @param personalizationKey - The key or ID of the personalization to be deleted.\n */\n deletePersonalization(personalizationKey: string) {\n getRsStateResolver().dispatch(actions.actionPersonalizationDelete(personalizationKey));\n },\n\n /**\n * Sets the current personalization key as the default personalization.\n * Dispatches an action to update `defaultPersonalization` in the `personalization` state slice\n * and calls {@link ApiContext.updatePersonalization updatePersonalization} API.\n *\n * @param personalizationKey - The key identifying the personalization to set as default.\n */\n setDefaultPersonalization(personalizationKey: string) {\n getRsStateResolver().dispatch(actions.actionPersonalizationSetDefault(personalizationKey));\n },\n\n /**\n * Sets the current {@link personalizationKey} as the app's default personalization.\n * Dispatches an action that invokes {@link ApiContext.updatePersonalization updatePersonalization} api with markAsAppDefault=true for the current personalization.\n *\n * @param personalizationKey The key of the personalization to set as default.\n * @param trimmedName The name of the personalization to update.\n */\n setAppDefaultPersonalization(personalizationKey: string, trimmedName: string) {\n getRsStateResolver().dispatch(\n actions.actionPersonalizationSetAppDefault(personalizationKey, trimmedName)\n );\n },\n\n /**\n * Applies the provided search value as a filter expression in the state,\n * using an OR condition with a contains clause.\n *\n * @param value The search value to apply.\n */\n\n applySearch(value: string) {\n getRsStateResolver().dispatch(actions.actionSearchGlobal(value));\n },\n\n /**\n * Applies the given row density in {@link State.selectedHeightOption selectedHeightOption} state slice.\n *\n * @param payload the row density id.\n */\n applyRowHeight(payload: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY]) {\n getRsStateResolver().dispatch(actions.actionRowHeightChange(payload));\n },\n\n /**\n * Applies gallery layout on the current view.\n *\n * @param layout - Gallery layout mode.\n */\n applyGalleryLayout(layout: GalleryLayout) {\n getRsStateResolver().dispatch(actions.actionGalleryLayoutChange(layout));\n },\n\n /**\n * Sets the {@link State.bootstrap bootstrap} status of repeating structures and update the {@link State.version version}in state.\n */\n doBootstrap() {\n getRsStateResolver().dispatch(actions.actionBootstrap());\n getRsStateResolver().dispatch(actions.actionUpdateStateVersion());\n },\n\n /**\n * Triggers a refresh of data in repeating structures.\n * Dispatches an action that injects {@link State.refresh refresh} flag in the state.\n * @param flushState The state slice that needs to be reset on refresh. See {@link SUPPORTED_AVOIDABLE_FEATURES}.\n * @param featuresToAvoid The features that should not run as part of refresh. See {@link SUPPORTED_FLUSH_KEYS}.\n */\n forceRefresh(flushState: { [k: string]: boolean } = {}, featuresToAvoid: string[] = []) {\n // If a refresh is in progress, don't trigger another refresh.\n if (getRsStore().refreshInProgress) return;\n\n // Communicate forceRefresh to apiContext via ApiOptions.\n getRsStore().refreshInProgress = true;\n getRsStore().refreshToken = Date.now();\n // Communicate forceRefresh to apiContext via callback.\n getRsProps().apiContext.onBeforeRefresh?.();\n\n getRsStateResolver().dispatch(actions.actionForceRefresh(flushState, featuresToAvoid));\n },\n\n /**\n * Fetches actions for the {@link selectedItems} using {@link ApiContext.fetchActions fetchActions} api.\n * @param selectedItems\n */\n fetchActions(selectedItems: string[]) {\n return getRsProps().apiContext.fetchActions?.(selectedItems);\n },\n\n /**\n * This resets the selection and refreshes the {@link rows} data.\n * @param rows\n */\n async clearSelectionAndRefreshRows(rows: string[]) {\n await Promise.allSettled([utilMethods.selectAllRows(false), utilMethods.refreshRows(rows)]);\n },\n\n /**\n * This removes {@link State.showConfirmationAction confirmationAction} from the state.\n */\n completeConfirmationAction() {\n getRsStateResolver().dispatch(actions.completeConfirmationAction());\n },\n\n /**\n * This sets the {@link State.errors errors} in the state.\n * @param payload\n */\n setErrors(payload: Errors) {\n if (payload.dataErrors) {\n getRsStateResolver().dispatch(actions.setDataErrors(payload.dataErrors));\n }\n },\n /**\n * Dispatches the dom container responsive breakpoints to state.\n * @param breakpoint\n * @param value\n */\n setDomContainerResponsiveBreakpoints(breakpoint: string, value: boolean) {\n const payload = { breakpoint, value };\n getRsStateResolver().dispatch(actions.setDomContainerResponsiveBreakpoints(payload));\n },\n\n /**\n * Refreshes the {@link View.data data} for {@link rows} by calling {@link ApiContext.fetchRowsData fetchRowsData} api.\n * It also calls {@link utilMethods.forceUpdate forceUpdate } to trigger state change for re-rendering.\n * @param rows\n */\n async refreshRows(rows: string[] = []) {\n const rsProps = getRsProps();\n if (rows.length === 0) {\n return;\n }\n const state = getRsStateResolver().getState();\n const { fetchRowsData } = rsProps.apiContext;\n const response = await fetchRowsData?.(\n deepCopy(state),\n getView().meta,\n rows,\n getView().meta.itemKey,\n {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n }\n );\n\n const data = syncData(getView().meta.itemKey, getView().data!, response!);\n getView().setProp({\n data: [...data]\n });\n\n // Refresh the active detail as it may be stale even when the refreshed table row data is unchanged.\n utilMethods.refreshMasterDetail(rows);\n utilMethods.forceUpdate(false, { forceRenderOnNextRun: true });\n },\n\n /**\n * Select/Deselect all rows(all pages in case of paginated data) by calling {@link ApiContext.setSelectedRows setSelectedRows}/ {@link ApiContext.clearSelectedRows clearSelectedRows} api.\n * It also updates the selected rows received from {@link ApiContext.getSelectedRows getSelectedRows} api in {@link State.selectedRows selectedRows} state slice.\n * @param isSelected\n */\n async selectAllRows(isSelected: boolean) {\n const rsProps = getRsProps();\n let selectedRows: (RowData & { $selected: boolean })[] = [];\n if (isSelected) {\n const response = await rsProps.apiContext.fetchData(\n {\n ...getRsStateResolver().getState(),\n paginationOptions: {\n rootVirtualiser: {\n startIndex: 0,\n endIndex: getView().resultsCount! - 1\n }\n },\n // passing groups and groupFilters as undefined to get all rows\n groups: undefined,\n groupFilters: undefined\n },\n getView().meta,\n {}\n );\n if (response) {\n const { data = [] } = response;\n selectedRows = data.map(item => ({ ...item, $selected: true })) || [];\n }\n try {\n await rsProps.apiContext.setSelectedRows?.(selectedRows);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('setSelectedRows api resulting into error.', e);\n }\n } else {\n // clear all selections when selectAll is unchecked\n await rsProps.apiContext.clearSelectedRows?.();\n }\n\n const rows = await rsProps.apiContext.getSelectedRows?.();\n\n if (rows)\n getRsStateResolver().dispatch(\n actions.actionRowSelectionItemsUpdate({\n selectedRows: rows,\n mode: getView().meta.selectionMode!\n })\n );\n },\n\n /**\n * Triggers {@link ApiContext.importCSVData importCSVData} api.\n * @param create\n */\n importCSVData(create: ModalManagerContextValue['create']) {\n return getRsProps()\n .apiContext.importCSVData?.(create)\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Triggers {@link ApiContext.exportData exportData} api.\n */\n exportToExcel() {\n return getRsProps()\n .apiContext.exportData?.(deepCopy(getRsStateResolver().getState()), getView().meta, {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n })\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Triggers {@link ApiContext.exportDataToCSV exportDataToCSV} api.\n */\n exportToCSV() {\n return getRsProps()\n .apiContext.exportDataToCSV?.(deepCopy(getRsStateResolver().getState()), getView().meta, {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n })\n .catch(err => {\n getRsStateResolver().dispatch(\n actions.actionNotificationAdd({\n content: err\n })\n );\n });\n },\n\n /**\n * Updates the visibility of columns by modifying {@link State.hiddenColumns}.\n * @param columns - An object mapping column IDs to their visibility status. `true` indicates the column is visible, and `false` means it is hidden.\n */\n updateColumnsVisibility(columns: { [key: FieldDef['id']]: boolean }) {\n getRsStateResolver().dispatch(actions.updateColumnsVisibility(columns));\n },\n\n setConditionalStyleFormats(\n conditionalStyleFormats: NonNullable<State['conditionalStyleFormats']>\n ) {\n getRsStateResolver().dispatch(actions.setConditionalStyleFormats(conditionalStyleFormats));\n },\n\n /**\n * Opens a currently generated row in Master Detail.\n * Semantic Link supplies `nestedTarget` for nested navigation, while View-in-Modal supplies\n * `viewName` for a custom root view; these overrides are mutually exclusive.\n *\n * @param rowKey - Key of the row to open from the current generated row window.\n * @param nestedTarget - Semantic Link target to open within the selected row's detail panel.\n * @param viewName - View-in-Modal view to render as the selected row's root detail.\n */\n openMasterDetail(rowKey: string, nestedTarget?: Record<string, unknown>, viewName?: string) {\n if (!isMasterDetailSupported(getView())) {\n return;\n }\n\n const matchingRows = getView().rows?.filter(row => row.key === rowKey) ?? [];\n if (matchingRows.length !== 1) {\n return;\n }\n\n // The feature that resolves State into View.masterDetail runs asynchronously after dispatch,\n // so nestedTarget/viewName must be set on the View before dispatching, not after.\n // Every outer open starts a new selection and clears navigation metadata omitted by the caller.\n // TODO: Nested target(Semantic link) && viewName(ViewInModal) handling should not be part of RS core, its DX/RS semantics. Can simplify?\n const view = getView();\n const selection = getMasterDetailSelection(view, { masterDetail: { rowKey } });\n if (selection) {\n view.setProp({\n masterDetail: {\n ...selection,\n nestedTarget: viewName ? undefined : nestedTarget,\n viewName: nestedTarget ? undefined : viewName\n }\n });\n }\n\n getRsStateResolver().dispatch(actions.actionOpenMasterDetail({ rowKey }));\n },\n\n /** Closes the active Master Detail item. */\n closeMasterDetail() {\n getRsStateResolver().dispatch(actions.actionCloseMasterDetail());\n },\n\n /** Clears the nested target on the active Master Detail selection for the given row, without closing it. */\n clearMasterDetailNestedTarget(rowKey: string) {\n const view = getView();\n if (view.masterDetail?.rowKey !== rowKey || !view.masterDetail.nestedTarget) {\n return;\n }\n view.setProp({ masterDetail: { ...view.masterDetail, nestedTarget: undefined } });\n },\n\n /** Refreshes the active Master Detail when no row keys, or its row key, is supplied. */\n refreshMasterDetail(rowKeys?: string[]) {\n const view = getView();\n const { masterDetail } = view;\n if (!masterDetail || (rowKeys && !rowKeys.includes(masterDetail.rowKey))) {\n return;\n }\n view.setProp({\n masterDetail: { ...masterDetail, refreshKey: crypto.randomUUID() }\n });\n },\n\n /** Navigates within the current loaded Master Detail row window. */\n navigateMasterDetail(direction: 'previous' | 'next') {\n const view = getView();\n if (!isMasterDetailSupported(view)) {\n return;\n }\n\n const selection = view.masterDetail;\n const rows = view.rows ?? [];\n if (!selection) {\n return;\n }\n\n const currentIndex = rows.findIndex(row => row.key === selection.rowKey);\n if (currentIndex === -1) {\n return;\n }\n const offset = direction === 'previous' ? -1 : 1;\n const nextRow = rows[currentIndex + offset];\n if (!nextRow) {\n return;\n }\n\n const nextSelection = getMasterDetailSelection(view, {\n masterDetail: { rowKey: nextRow.key }\n });\n if (nextSelection) {\n // Set same view that was there previously\n view.setProp({\n masterDetail: { ...nextSelection, viewName: selection.viewName }\n });\n }\n getRsStateResolver().dispatch(actions.actionOpenMasterDetail({ rowKey: nextRow.key }));\n },\n\n /**\n * Switches the active template for the view at runtime\n * (e.g. when the user toggles between Table and Gallery from the toolbar).\n *\n * @param template The target template to switch to.\n */\n changeTemplate(template: NonNullable<View['template']>) {\n if (getView().meta.allowSwitchTemplate === false) return;\n getRsStateResolver().dispatch(actions.actionChangeTemplate(template));\n }\n };\n return utilMethods;\n}\nexport type UtilityFunctions = ReturnType<typeof viewUtilityMethods>;\n"]}
@@ -2,7 +2,6 @@ import type { ModalManagerContextValue } from '@pega/cosmos-react-core/lib/compo
2
2
  import type { Condition } from '@pega/cosmos-react-condition-builder';
3
3
  import type { RowData } from '../src/core/generators/RowGenerator.types';
4
4
  import type { UtilityFunctions } from '../src/core/generators/viewUtilityMethods';
5
- import type Column from '../src/core/generators/ColumnGenerator';
6
5
  import type { Personalization, PersonalizationInfo, PersonalizedState, State, Group, GroupFilter, GroupAdditionalField } from './State.types';
7
6
  import type { Meta, RowAction, FieldDef } from './Meta.types';
8
7
  /**
@@ -507,7 +506,7 @@ export interface ApiContext {
507
506
  * @param {Meta} rsMeta - Repeating structures meta {@link Meta}.
508
507
  * @returns {void} void
509
508
  */
510
- exportData?: (rsState: State, rsMeta: Meta, apiOptions: ApiOptions, renderFormatters?: Record<string, Column['formatterConfig']>) => Promise<void>;
509
+ exportData?: (rsState: State, rsMeta: Meta, apiOptions: ApiOptions) => Promise<void>;
511
510
  /** This api is called on click of 'Export to CSV' option in repeating structures toolbar and should export the data into a CSV file.
512
511
  * @requireWhen {@link Meta.showExportToCSVOption showExportToCSVOption} is set to true in Meta.
513
512
  * @invokedWhen "Export to CSV" button is clicked in the repeating structures toolbar
@@ -1 +1 @@
1
- {"version":3,"file":"ApiContext.types.d.ts","sourceRoot":"","sources":["../../types/ApiContext.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACzG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAEtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,MAAM,MAAM,wCAAwC,CAAC;AAEjE,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,EACL,KAAK,EAIL,WAAW,EACX,oBAAoB,EAErB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,IAAI,EACJ,SAAS,EACT,QAAQ,EAGT,MAAM,cAAc,CAAC;AAItB;;GAEG;AACH,KAAK,cAAc,GAAG;IACpB;;OAEG;IACH,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,gBAAgB,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAEzD,MAAM,MAAM,KAAK,GAAG;IAClB;;;OAGG;IACH,WAAW,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAE9C;;;OAGG;IACH,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAEnD;;;OAGG;IACH,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAEnD;;;OAGG;IACH,iBAAiB,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC;IAE/C;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAEtF;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAEhD;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAE7C;;;OAGG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAEvC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IAExC;;;OAGG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,IAAI,CAAC;IAEhE;;;OAGG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAEpD;;;OAGG;IACH,eAAe,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAEzD;;;;;OAKG;IACH,4BAA4B,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAE5D;;;;OAIG;IACH,yBAAyB,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvF;;;OAGG;IACH,uBAAuB,EAAE,CAAC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAE/E;;;;OAIG;IACH,kBAAkB,EAAE,CAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAClD,IAAI,CAAC;IAEV;;;OAGG;IACH,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAElD;;;OAGG;IACH,0BAA0B,EAAE,CAC1B,uBAAuB,EAAE,WAAW,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,KACnE,IAAI,CAAC;CACX,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;6DACyD;IACzD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,KAAK,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,cAAc,GAAG,KAAK,GAAG,eAAe,CAAC;AAC5F,+IAA+I;AAC/I,KAAK,kBAAkB,GAAG;KACvB,GAAG,IAAI,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;CAC7C,CAAC;AACF,sKAAsK;AACtK,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;OAOG;IACH,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC/C;;;4CAGwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9C,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,gHAAgH;IAChH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wDAAwD;IACxD,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7C,gDAAgD;IAChD,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,KAAK,CAAC;IACjF,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,uBAAuB,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AACF,kKAAkK;AAClK,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,uLAAuL;IACvL,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mMAAmM;IACnM,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,KAAK,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG;IACjD;;;;;OAKG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,oCAAoC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACvF,CAAC;AAEF,UAAU,eAAe;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,eAAe,EAAE,wBAAwB,CAAC,GAAG;IACtF,mBAAmB,EAAE;QACnB,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG;YAChE,oBAAoB,EAAE,iBAAiB,CAAC;SACzC,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,gCAAgC;IAC/C,oDAAoD;IACpD,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7C,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEhG;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,CACjB,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE5B;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,EAAE,CACtB,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEhC;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAAC,EAAE,CACrB,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAEnD;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,OAAO,EACxB,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAExB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAExB;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAEzF;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,CACX,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAEnC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;KACvB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAEpC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAE3D;;;;OAIG;IACH,YAAY,CAAC,EAAE;IACb;;;;OAIG;IACH,kBAAkB,EAAE,KAAK,GAAG;QAC1B;;;;;WAKG;QACH,YAAY,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;KAChD,KACE,IAAI,CAAC;IAEV;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAE/D;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,CACtB,kBAAkB,EAAE,MAAM,EAC1B,eAAe,EAAE;QACf,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,oBAAoB,CAAC,EAAE,iBAAiB,CAAC;KAC1C,KACE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,CAAC,kBAAkB,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,CACtB,kBAAkB,EAAE,MAAM,EAC1B,eAAe,EAAE;QACf,aAAa,EAAE,OAAO,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,oBAAoB,EAAE,iBAAiB,CAAC;KACzC,KACE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEjD;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,OAAO,GAAG;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExF;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1C;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;;;;OAOG;IACH,4BAA4B,CAAC,EAAE,CAC7B,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAExC;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAEzF;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,GAAG;QAAE,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5F;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG;QAAE,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1F;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,CACX,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,UAAU,EACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,KACzD,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1F;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC;IAEvF;;;;;;;;;OASG;IACH,qCAAqC,CAAC,EAAE,CACtC,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,EACpC,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,OAAO,CAAC,EAAE,UAAU,KACjB,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAE/C;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B"}
1
+ {"version":3,"file":"ApiContext.types.d.ts","sourceRoot":"","sources":["../../types/ApiContext.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ApiContext.types.js","sourceRoot":"","sources":["../../types/ApiContext.types.ts"],"names":[],"mappings":"AA2BA,6DAA6D;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC","sourcesContent":["import type { ModalManagerContextValue } from '@pega/cosmos-react-core/lib/components/Modal/Modal.types';\nimport type { Condition } from '@pega/cosmos-react-condition-builder';\n\nimport type { RowData } from '../src/core/generators/RowGenerator.types';\nimport type { UtilityFunctions } from '../src/core/generators/viewUtilityMethods';\nimport type Column from '../src/core/generators/ColumnGenerator';\n\nimport type {\n Personalization,\n PersonalizationInfo,\n PersonalizedState,\n State,\n Group,\n /* eslint-disable @typescript-eslint/no-unused-vars */\n DateGroupAdditionalField,\n NumberGroupAdditionalField,\n GroupFilter,\n GroupAdditionalField\n /* eslint-enable @typescript-eslint/no-unused-vars */\n} from './State.types';\nimport type {\n Meta,\n RowAction,\n FieldDef,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n FieldType\n} from './Meta.types';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { REPEATING_STRUCTURE_TEMPLATES } from './Meta.types';\n\n/**\n * Represents information about the currently active view in the repeating structures.\n */\ntype ActiveViewInfo = {\n /**\n * The unique identifier of the active view.\n */\n id: string | undefined;\n\n /**\n * The name of the active view.\n */\n name: string | undefined;\n\n /**\n * Indicates whether the active view has unsaved changes.\n */\n isDirty: boolean;\n};\n\ntype ColumnActionType = 'RowReorder' | 'RowDeleteAction';\n\nexport type RsApi = {\n /**\n * Refreshes the current view.\n * @see {@link UtilityFunctions.refreshView}\n */\n refreshView: UtilityFunctions['forceRefresh'];\n\n /**\n * Sets the record count in the view.\n * @see {@link UtilityFunctions.setRecordCount}\n */\n setRecordCount: UtilityFunctions['setRecordCount'];\n\n /**\n * Dispatches an action to the repeating structures with an payload.\n * @see {@link UtilityFunctions.dispatchAction}\n */\n dispatchAction: UtilityFunctions['dispatchAction'];\n\n /**\n * Retrieves information about the currently active view.\n * @returns The {@link ActiveViewInfo active view information} or `void` if unavailable.\n */\n getActiveViewInfo: () => ActiveViewInfo | void;\n\n /**\n * Sets hidden columns of the view.\n * @param columns - An array of column IDs to hide.\n * @param ootbColumns - .\n * @param ootbColumns.dragHandle - Whether to hide the drag-and-drop column.\n */\n setHiddenColumns?: (columns: string[], ootbColumns?: { dragHandle: boolean }) => void;\n\n /**\n * Sets visible columns of the view.\n * @param columns - An array of column IDs to show.\n */\n setVisibleColumns?: (columns: string[]) => void;\n\n /**\n * Sets Column order of the view.\n * @param columns - An array of column IDs to reorder.\n */\n setColumnOrder?: (columns: string[]) => void;\n\n /**\n * Sets the filters of the view.\n * @param filter - The filter condition to apply.\n */\n setFilter: (filter: Condition) => void;\n\n /**\n * Sets the groups of the view.\n * @param groups - The grouping configuration.\n */\n setGrouping?: (groups: Group[]) => void;\n\n /**\n * Sets the sorting order of the view.\n * @param {NonNullable<State['sortingOrder']>} sorts - The sorting configuration.\n */\n setSorting: (sorts: NonNullable<State['sortingOrder']>) => void;\n\n /**\n * Sets the column aliases of the view.\n * @param aliases - The column alias configuration.\n */\n setAliases: (aliases: State['columnAlias']) => void;\n\n /**\n * Sets the aggregation information of the view.\n * @param {State['aggregationInfo']} agg - The aggregation configuration.\n */\n setAggregations: (agg: State['aggregationInfo']) => void;\n\n /**\n * Sets visibility of row reorder OOTB column.\n *\n * @deprecated Use {@link setActionColumnVisibility} instead.\n * @param visibility - Whether the row reorder column should be visible.\n */\n setRowReorderFieldVisibility: (visibility: boolean) => void;\n\n /**\n * Sets the visibility of an OOTB column.\n * @param columnType - OOTB column type to toggle.\n * @param visibility - Whether the OOTB column should be visible.\n */\n setActionColumnVisibility: (columnType: ColumnActionType, visibility: boolean) => void;\n\n /**\n * Updates the visibility of specific columns.\n * @param {Object} columns - A mapping of column IDs to their visibility state.\n */\n updateColumnsVisibility: (columns: { [key: FieldDef['id']]: boolean }) => void;\n\n /**\n * Sets the `renderFormatter` for the given column.\n * @param columnId - Column ID\n * @param formatterName - ID of the formatter/renderer\n */\n setRenderFormatter: (\n columnId: string,\n formatter: string | { type: string; config: unknown }\n ) => void;\n\n /**\n * Removes the `renderFormatter` for the given column.\n * @param columnId - Column ID\n */\n removeRenderFormatter: (columnId: string) => void;\n\n /**\n * Sets the conditional style formats of the view.\n * @param conditionalStyleFormats - The conditional style formats to apply.\n */\n setConditionalStyleFormats: (\n conditionalStyleFormats: NonNullable<State['conditionalStyleFormats']>\n ) => void;\n};\n\nexport interface ApiOptions {\n signal?: AbortSignal;\n /** Indicates that the current API call should invalidate the cache and reload the data.\n *\n * @remarks\n * There is an alternative method for signaling the `ApiContext` to invalidate the cache and refresh the data:\n * - The {@link ApiContext.onBeforeRefresh onBeforeRefresh} API in {@link ApiContext}, which is invoked just prior to refreshing the data.\n * Consumers have the option to use either of these methods to invalidate the cache and refresh the data. Prefer `onBeforeRefresh` when using a class-based API context with centralized cache invalidation; use api options for stateless or function-based APIs.\n */\n invalidateCache?: boolean;\n /** A unique token or version identifier that changes whenever a refresh is triggered. Unlike a boolean `invalidateCache` flag, the `invalidateCacheToken` ensures that multiple APIs triggered\n in the same refresh cycle receive the same identifier. */\n invalidateCacheToken?: number;\n}\n// Aggregation response type\ntype AggregationTypeResp = 'avg' | 'max' | 'min' | 'nonNullCount' | 'sum' | 'distinctCount';\n/** An object with key equal to {@link AggregationTypeResp aggregation type} and value is equal to the actual value of that aggregation type */\ntype AggregationOptions = {\n [agg in AggregationTypeResp]?: number | null;\n};\n/** An object where key is equal to the column id (i.e. {@link FieldDef.id id} in FieldDef) and value is equal to its {@link AggregationOptions Aggregation values} */\nexport type AggregationResp = {\n [columnId: string]: AggregationOptions;\n};\n\nexport type AdditionalFieldData = {\n /** {@link FieldDef.id Field Id} of the additional field. */\n id: string;\n /** Value of the additional field that should be displayed for additional field.\n * The value can represent:\n * - An aggregated value (e.g., sum, max, min, avg) for {@link FieldType.NUMBER number} type fields when\n * {@link NumberGroupAdditionalField.aggregation aggregation} is selected in additional fields meta.\n * - A date function value (e.g., Day, Month, Year) for {@link FieldType.DATE 'date'} / {@link FieldType.DATE_TIME 'datetime'}\n * fields when a {@link DateGroupAdditionalField.dateFunction date function} is selected in the additional fields metadata..\n * - A scalar or single value for the additional field.\n */\n value: null | string | number | boolean | Date;\n /** Represents the distinct count of\n * occurrences for the additional field data. This is generally required,\n * but may be omitted if {@link NumberGroupAdditionalField.aggregation aggregation} is selected for number type fields\n * in the additional fields metadata. */\n count?: number;\n};\n\n// Grouping response type\nexport interface GroupedInfo {\n /** Value for the current group node. */\n name: null | string | number | boolean | Date; // Value for the current node\n /** # of data rows in this node */\n count: number;\n /** An optional data row from the group node that is used to process extra information required by group node */\n data?: RowData;\n /** Additional fields data for the current group node */\n additionalFieldsData?: AdditionalFieldData[];\n /** Aggregation values of a column if applied */\n agg?: AggregationResp;\n /** Nested groups within the parent group node */\n children?: GroupedInfo[];\n}\n\nexport interface HierarchicalGroupedInfo extends Pick<GroupedInfo, 'count' | 'agg'> {\n info: RowData;\n children?: HierarchicalGroupedInfo[];\n}\n\nexport type AggregateValueResponse = {\n [columnId: string]: number | null;\n};\n/** An object where key is equal to column id i.e. {@link FieldDef.id id key in fieldDef} and value is equal to the aggregation value for the given aggregation */\nexport type AggregationResult = {\n [columnId: string]: number;\n};\n\nexport interface FetchDataResponse {\n /** An array of {@link RowData} */\n data: RowData[];\n /** An optional parameter to provide the total record count for a given Repeating structures with a given filter criteria in the query. If not provided, use callback setRecordCount */\n totalRecordCount?: number;\n /** @deprecated An optional parameter to provide the total record count for a given Repeating structures with a given filter criteria in the query. If not provided, use callback setRecordCount */\n filteredRecordCount?: number;\n}\n\ntype BulkAction = Pick<RowAction, 'id' | 'text'> & {\n /**\n * @param rowIds - The values for the {@link Meta.itemKey 'itemkey'} for given rows.\n * @param clearSelectionAndRefreshRowsCallback - A callback used to trigger deselection of all the selected rows and then call\n * {@link ApiContext.fetchRowsData 'fetchRowsData'} api of to fetch latest data for given rows, after action is completed.\n * @return {void} - void\n */\n onClick: (rowIds: string[], clearSelectionAndRefreshRowsCallback: () => void) => void;\n};\n\ninterface ConditionConfig {\n condition: Condition;\n data: RowData;\n}\n\nexport type PersonalizationResponse = Pick<Personalization, 'defaultPersonalization'> & {\n allPersonalizations: {\n [personalizationKey: string]: Pick<PersonalizationInfo, 'name'> & {\n personalizationState: PersonalizedState;\n };\n };\n};\n\nexport interface GroupAdditionalFieldUniqueValues {\n /** Unique values for the group additional field. */\n values: (string | number | boolean | Date)[];\n /** Indicates if there are more values. */\n hasMore: boolean;\n}\n\nexport interface ApiContext {\n /**\n * This api is used to fetch a list of raw data rows (excluding aggregations) for a given group or at the top level when no groups.\n *Refer **[apiContext](https://git.pega.io/projects/PS/repos/ui-lists-lib/browse/docs/apiContext.md?useDefaultHandler=true#29) documentation** for more details.\n * @requireWhen Always\n * @invokedWhen filters are changed OR\\\n * search criteria is changed OR\\\n end user scrolls through the RS records OR\\\n sorting is changed OR\\\n forceRefresh is triggered by consumer OR\\\n groups are changed OR\\\n hierarchicalGroups are changed OR\\\n hiddenColumns are changed\n * @param {State} rsState - Current repeating structures {@link State}. Majorly used to build the criteria for query(e.g. filter, sort, group criteria, paginationOptions).\n * @param {Meta} rsMeta - Repeating structures {@link Meta}. Majorly used to determine the fields for which data needs to be fetched.\n * @param {ApiOptions} apiOptions - Extra api options provided by repeating structures,\n * for instance, abort signal handler is sent which can be attached to the native fetch call or any framework like axios. Repeating structures will use to cancel the api calls which might be using stale state, e.g. in case of progressive scroll.\n * @returns {Promise<FetchDataResponse>} - It should return a promise of type {@link FetchDataResponse} that should contain data as one key of type Array<{@link RowData}> to provide data for given query.\n */\n fetchData: (rsState: State, rsMeta: Meta, apiOptions: ApiOptions) => Promise<FetchDataResponse>;\n\n /**\n * This api is used to fetch details for any group/sub-group ribbons in the RS. Should return labels, counts, aggregation values at each group node.This can sometimes be called even when there are no groups. Avoid running into exceptions in those cases.\n * Refer **[apiContext](https://git.pega.io/projects/PS/repos/ui-lists-lib/browse/docs/apiContext.md?useDefaultHandler=true#59) documentation** for more details.\n * @requireWhen {@link Meta.grouping 'grouping'} key is set to true.\n * @invokedWhen Grouping is applied on any {@link FieldDef fieldDef} OR\\\n * filters are changed OR\\\n * search criteria is changed OR\\\n * personalization is toggled. OR\\\n * aggregation is changed OR\\\n * hiddenColumns are changed OR\\\n * forceRefresh of RS is triggered by consumer.\n * @param {State} rsState - Current repeating structures {@link State}. Majorly used to build the criteria for query. For e.g. use rsState.groups and rsState.aggregationInfo to determine the query.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}. Majorly used to determine the fields info for which data needs to be fetched.\n * @returns {GroupedInfo[]} - It should return a promise of type array of all the {@link GroupedInfo } for the specific field. It can also include nested groups in children key.\n */\n fetchGroupedInfo?: (\n rsState: State,\n rsMeta: Meta,\n apiOptions: ApiOptions\n ) => Promise<GroupedInfo[]>;\n\n /**\n * This api is used to fetch aggregation results for a given aggregation type(sum/min/max/count) on a field. This is called when aggregations are configured on one or more column.\n * Refer **[apiContext](https://git.pega.io/projects/PS/repos/ui-lists-lib/browse/docs/apiContext.md?useDefaultHandler=true#84) documentation** for more details.\n * @requireWhen {@link FieldDef.aggregation 'aggregation'} key is set to true for at least one FieldDef AND {@link FieldDef.type 'type'} key in FieldDef should be of number for that particular fieldDef.\n * @invokedWhen When aggregation is applied on any {@link FieldDef fieldDef} OR\\\n * filters are changed OR\\\n * search criteria is changed OR\\\n * personalization is toggled. OR\\\n * hiddenColumns are changed.\n * @param {State} rsState - Current repeating structures {@link State}. Majorly used to get current aggregations applied on the RS from aggregationInfo key in state. Apart from this current filters and search criteria can also be picked from state.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}. Majorly used to determine the fields for which data needs to be fetched.\n * @returns {Promise<AggregationResult>} - It should return a promise of type {@link AggregationResult}\n */\n fetchAggregatedValues?: (\n rsState: State,\n rsMeta: Meta,\n apiOptions: ApiOptions\n ) => Promise<AggregationResult>;\n\n /**\n * This api is used to fetch unique values available for a particular field. It is generally called for a field which has {@link FieldDef.filterPickList filterPickList} key set to true. The unique values are presented to the user while filtering and resolve the stable lanes for a Kanban template with a default lane configuration.\n * Refer **[apiContext](https://git.pega.io/projects/PS/repos/ui-lists-lib/browse/docs/apiContext.md?useDefaultHandler=true#99) documentation** for more details.\n * @requireWhen Any of the below conditions is met:\n * - {@link FieldDef.filterPickList filterPickList} key set to true for at least one FieldDef.\n * - {@link Meta.template template} is set to {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban}\n * @invokedWhen\n * - Picklist Filter is invoked by end user from FieldDef header action menu\n * - On load of Kanban template to fetch default lanes of Kanban template.\n * @param {State} rsState - Current repeating structures {@link State}.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}.\n * @param {string} columnId - This is equal to { @link FieldDef.id 'id'} key of the field for which unique values needs to be fetched.\n * @returns {Promise<Array<string | number | boolean | Date>>} It should return a promise of type array of unique values for a given fieldDef id.\n */\n fetchUniqueColValues?: (\n rsState: State,\n rsMeta: Meta,\n columnId: string,\n apiOptions: ApiOptions\n ) => Promise<(string | number | boolean | Date)[]>;\n\n /**\n * This api is used to fetch the latest data for a given row identified uniquely by {@link FieldDef.itemKey itemKey}.\n * @requireWhen {@link Meta.editing 'editing'} OR {@link Meta.deleting 'deleting'} is set to true\n * @invokedWhen A {@link Meta.rowActions rowAction} is submitted by consumer of RS, as part of {@link RowAction. rowAction.onClick} 'refresRow' callback.\n * @param {State} rsState - Current repeating structures {@link State}.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}.\n * @param {string} key - A unique identifier for a given row. This is equal to {@link Meta.itemKey 'itemKey'}\n * @param {string} value - The value for the given {@link Meta.itemKey 'itemKey'} for given row.\n * @param {RowData} existingRowData - Existing row data for the given row.\n * @returns {Promise<RowData[]>} It should return a promise of type {@link RowData} array containing the data for a given row.Only 0th index is considered from the array.\n */\n fetchRowData?: (\n rsState: State,\n rsMeta: Meta,\n key: string,\n value: string,\n existingRowData: RowData,\n apiOptions: ApiOptions\n ) => Promise<RowData[]>;\n\n /**\n * This api is used to fetch the latest data for given set of rows identified uniquely by itemKey in {@link FieldDef}. This is passed as callback to all the {@link BulkAction.onClick bulk actions 'onClick'} method with {@link ApiContext.clearSelectedRows clearSelectedRows} api.\n * @requireWhen {@link Meta.allowBulkActions 'allowBulkActions'} is set to true.\n * @invokedWhen The bulk action is submitted, this can be called by bulk actions {@link BulkAction.onClick 'onClick'} method by RS consumer.\n * @param {State} rsState - Current repeating structures {@link State}.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}.\n * @param {Array<string | number | boolean | Date>} rowIds - The values for the given {@link Meta.itemKey 'itemKey'} for given rows.\n * @param itemKey - A unique identifier for a given row. This is equal to {@link Meta.itemKey 'itemKey'}\n * @returns {Promise<RowData[]>} It should return a promise of type {@link RowData} array containing the data for given rows.\n */\n fetchRowsData?: (\n rsState: State,\n rsMeta: Meta,\n rowIds: string[],\n itemKey: string,\n apiOptions: ApiOptions\n ) => Promise<RowData[]>;\n\n /**\n * This api is used to fetch the actions that is supported on rows of Repeating Structure. It is generally called when {@link Meta.editing 'editing'} is set to true.\n * @requireWhen {@link Meta.editing 'editing'} OR {@link Meta.deleting 'deleting'} is set to true\n * @invokedWhen The end user clicks on 'RowActionMenu'.Once fetched it is not refetched.\n * @param {} uniqueKey - A unique identifier for a given row. This is equal to value for {@link Meta.itemKey 'itemKey'} in {@link RowData} data.\n * @returns - A promise of type Array of {@link RowAction}\n */\n fetchRowActionDetails?: (uniqueKey: string, rowContext: RowData) => Promise<RowAction[]>;\n\n /**\n * This api is used to submit the updated row data to apiContext. It is generally called when {@link FieldDef.editable 'editable'} key is set to true for at least one FieldDef to enable inline editing for a cell.\n * @requireWhen {@link FieldDef.editable 'editable'} key is set to true for at least one FieldDef.\n * @invokedWhen The end user is done editing the cell using inline editing.\n * @param {State} rsState - Current repeating structures {@link State}.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}.\n * @param dataToSubmit - Updated row data to be submitted to apiContext\n * @returns It should return a promise of type {@link RowData} with the updated contents that is passed in {@link dataToSubmit} param.\n */\n submitData?: (\n rsState: State,\n rsMeta: Meta,\n dataToSubmit: RowData\n ) => Promise<{ rowData: RowData }>;\n\n /**\n * This api is used to submit moved records in a repeating structure. It is called when {@link Meta.moveListRecords 'moveListRecords'} is set to true. Repeating structure allow moving of records based on it's value.\n * @requireWhen {@link Meta.moveListRecords 'moveListRecords'} is set to true\n * @invokedWhen The move process is completed by end user this api is called to provide the info related to move records.\n * @param moveInfo - It is an object that contains sourceID(the data of {@link Meta.itemKey 'itemKey'} for the given row) that user has selected to move and\n * destinationID(the data of {@link Meta.itemKey 'itemKey'} for the given row) where the user has dropped the source row.\n * @returns It should return a promise of type object that contains a refresh key if set to true, repeating structures will trigger a refresh and fetch the whole data agin using {@link ApiContext.fetchData 'fetchData'} api\n */\n moveListRecords?: (moveInfo: {\n sourceID: string;\n destinationID: string;\n }) => Promise<{ refresh: boolean }>;\n\n /**\n * This api is used to fetch the bulkActions for a repeating structures if {@link Meta.allowBulkActions 'allowBulkActions'} is set to true.\n * This is called on demand, when the bulk action button in repeating structures is clicked. The button will be disabled till the time at least one record is not selected in repeating structures to trigger bulk action.\n * @requireWhen {@link Meta.allowBulkActions 'allowBulkActions'} is set to true.\n * @invokedWhen End user clicks on 'Bulk actions' button in RS Toolbar.Once fetched it is not refetched.\n * @param {Array<string>} rowIds - The values for the given {@link Meta.itemKey 'itemKey'} for given rows.\n * @returns A promise of type Array of {@link BulkAction}\n */\n fetchActions?: (rowIds: string[]) => Promise<BulkAction[]>;\n\n /**\n * This API is used to pass utility callbacks to the consumer. Consumers can use these callbacks at any point in the lifecycle of Repeating Structures to interact with them.\n *\n * @returns {void} This function does not return any value.\n */\n addCallbacks?: (\n /**\n * @param rsUtilityCallbacks - A set of callbacks exposed by Repeating Structures, including methods for interacting with the view and managing state.\n * See {@link RsApi} for the list of available callbacks.\n *\n */\n rsUtilityCallbacks: RsApi & {\n /**\n * @deprecated This method will be removed in future versions. Please use {@link RsApi.refreshView refreshView} instead.\n *\n * It is used to trigger a force refresh the data and re-fetch selections using apiContext.getSelectedRows api (if any of the selection mode is enabled) of repeating structures\n * @returns {void} void\n */\n forceRefresh: UtilityFunctions['forceRefresh'];\n }\n ) => void;\n\n /**\n * This api passes a unique identifier to apiContext to identify a repeating structure instance. This can be used to uniquely identify a RS instance in case of multiple RS instances.\n * @requireWhen Optional\n * @invokedWhen On Repeating structures mount to share current repeating structure instance identifier.\n * @param {string} rsID - A unique identifier\n * @returns {void} void\n */\n setRsID?: (rsID: string) => void;\n\n /**\n * This api is called to fetch all the personalizations for a repeating structure.\n * @requireWhen {@link Meta.personalization 'personalization'} key is set to true.\n * @invokedWhen On Repeating structures mount to fetch all personalizations.\n * @returns {PersonalizationResponse} It should return all the personalizations.\n */\n fetchPersonalizations?: () => Promise<PersonalizationResponse>;\n\n /**\n * This api is called to update the personalization for a repeating structure.\n * @requireWhen {@link Meta.personalization 'personalization'} key is set to true.\n * @invokedWhen End user deletes a personalization.\n * @param {string} personalizationKey - Unique identifier for the personalization.\n * @param personalization - The updated personalization state.\n * @returns {void} void\n */\n updatePersonalization?: (\n personalizationKey: string,\n personalization: {\n markAsDefault?: boolean;\n markAsAppDefault?: boolean;\n name?: string;\n personalizationState?: PersonalizedState;\n }\n ) => Promise<void>;\n\n /**\n * This api is called to delete the personalization for a repeating structure.\n * @requireWhen {@link Meta.personalization 'personalization'} key is set to true.\n * @invokedWhen End user deletes a personalization.\n * @param personalizationKey - Unique identifier for a personalization.\n * @returns {void} void\n */\n deletePersonalization?: (personalizationKey: string) => Promise<void>;\n\n /**\n * This api is called to create the personalization for a repeating structure.\n * @requireWhen {@link Meta.personalization 'personalization'} key is set to true.\n * @invokedWhen End user create a new personalization.\n * @param {string} personalizationKey - Unique identifier for the personalization.\n * @param personalization - The personalization state to be saved\n * @returns {void} void\n */\n createPersonalization?: (\n personalizationKey: string,\n personalization: {\n markAsDefault: boolean;\n name: string;\n personalizationState: PersonalizedState;\n }\n ) => Promise<string> | Promise<{ data: string }>;\n\n /**\n * This api is used to communicate selectedRows in the repeating structures to the consumer.\n * @requireWhen {@link Meta.selectionMode 'selectionMode'} key is set to true.\n * @invokedWhen {@link Meta.selectionMode 'selectionMode'} key is set to true and whenever selection changes in RS.\n * @param {Array<RowData & { $selected: boolean }>} selectedRows The selectedRows that needs to be communicated.\n * @returns {Promise<void>} A promise\n */\n setSelectedRows?: (selectedRows: (RowData & { $selected: boolean })[]) => Promise<void>;\n\n /**\n * This api is used to get the selectedRows for the repeating structures from the consumer, to populate the selections in RS.\n * @requireWhen {@link Meta.selectionMode 'selectionMode'} key is set to true.\n * @invokedWhen {@link Meta.selectionMode 'selectionMode'} key is set to true and RS requires current selected rows from the consumer.\n * @returns {Promise<Array<string>>} A promise of type array of unique identifiers for all the row. It is value of {@link Meta.itemKey 'itemKey'}\n */\n getSelectedRows?: () => Promise<string[]>;\n\n /** This api is used to communicate the clearance of all the selectedRows for the repeating structures to the consumer.\n * This is also passed as callback to all the {@link BulkAction.onClick bulk actions 'onClick'} method with {@link ApiContext.fetchRowsData fetchRowsData} api.\n * @requireWhen {@link Meta.selectionMode 'selectionMode'} key is set to true.\n * @invokedWhen In case of {@link Meta.selectionMode \"multi\"} selection mode, while toggling all the selections OR\\\n * while switching personalizations OR\\\n * when the bulk action is submitted, this can be called by bulk actions {@link BulkAction.onClick 'onClick'} method by RS consumer.\n * @returns {Promise<void>} A promise\n */\n clearSelectedRows?: () => Promise<void>;\n\n /**\n * This api is used to fetch the hierarchical groups for an RS if {@link FieldDef.hierarchicalInfo 'hierarchicalInfo'} key is set to true for at least one FieldDef.\n * @requireWhen {@link FieldDef.hierarchicalInfo 'hierarchicalInfo'} key is set to true for at least one FieldDef\n * @invokedWhen Any change in filters, search criteria, hierarchichal groups, aggregations is detected in RS state or personalizations are toggled.\n * @param {State} rsState - Current repeating structures {@link State}.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}.\n * @returns {HierarchicalGroupedInfo[]} - It should return a promise of type array of all the {@link HierarchicalGroupedInfo } for the specific field. It can also include nested hierarchical groups in children key.\n */\n fetchHierarchicalGroupedInfo?: (\n rsState: State,\n rsMeta: Meta,\n apiOptions: ApiOptions\n ) => Promise<HierarchicalGroupedInfo[]>;\n\n /**\n * This api is used to communicate repeating structure state to the consumer. It also includes visibleColumns apart from regular repeating structure state.\n * @requireWhen Optional\n * @invokedWhen After any action performed on Repeating structures that results in updating of state.\n * @param state Repeating structure state\n * @returns {void} void\n */\n stateUpdateCallback?: (state: PersonalizedState & { visibleColumns?: string[] }) => void;\n\n /**\n * This api is used to communicate repeating structure state to the consumer. It also includes active personalization in RS apart from regular repeating structure state.\n * @requireWhen Optional\n * @param state Repeating structure state\n * @returns {void} void\n */\n setComponentState?: (state: PersonalizedState & { activePersonalization?: string }) => void;\n /**\n * This api is used to communicate repeating structure state to RS from consumer.\n * @requireWhen Optional\n * @returns RS state.\n */\n getComponentState?: () => Promise<PersonalizedState & { activePersonalization?: string }>;\n /** This api is called on click of 'Import data' option in repeating structures toolbar and should open a modal to allow import of data from a CSV file.\n * @requireWhen {@link Meta.showImportDataOption showImportDataOption} is set to true in Meta.\n * @invokedWhen \"Import data\" button is clicked in the repeating structures toolbar\n * @param {ModalManagerContextValue['create']} create - The function to create a modal in the current context {@link ModalManagerContextValue['create']}.\n * @returns {void} void\n */\n importCSVData?: (create: ModalManagerContextValue['create']) => Promise<void>;\n /** This api is called on click of 'Export to excel' option in repeating structures toolbar and should export the data into a excel file.\n * @requireWhen {@link Meta.showExportToExcelOption showExportToExcelOption} is set to true in Meta.\n * @invokedWhen \"Export to excel\" button is clicked in the repeating structures toolbar\n * @param {State} rsState - Current repeating structures state {@link State}.\n * @param {Meta} rsMeta - Repeating structures meta {@link Meta}.\n * @returns {void} void\n */\n exportData?: (\n rsState: State,\n rsMeta: Meta,\n apiOptions: ApiOptions,\n renderFormatters?: Record<string, Column['formatterConfig']>\n ) => Promise<void>;\n\n /** This api is called on click of 'Export to CSV' option in repeating structures toolbar and should export the data into a CSV file.\n * @requireWhen {@link Meta.showExportToCSVOption showExportToCSVOption} is set to true in Meta.\n * @invokedWhen \"Export to CSV\" button is clicked in the repeating structures toolbar\n * @param {State} rsState - Current repeating structures state {@link State}.\n * @param {Meta} rsMeta - Repeating structures meta {@link Meta}.\n * @returns {void} void\n */\n exportDataToCSV?: (rsState: State, rsMeta: Meta, apiOptions: ApiOptions) => Promise<void>;\n\n /** This api is used to communicate source and destinaltion row keys to apiContext during row-reordering operation.\n * @requireWhen {@link Meta.reorderItems reorderItems} is set to true and {@link Meta.moveListRecords moveListRecords} is set to false in Meta.\n * @invokedWhen Reordering operations is being performed on rows.\n * @param {string} sourceKey - the value of {@link Meta.itemKey 'itemKey'} for the given row that user has selected to move.\n * @param {string} destinationKey - the value of {@link Meta.itemKey 'itemKey'} for the given row where the user has dropped the source row.\n * @returns {void} void\n */\n applyRowReorder?: (sourceKey: string, destinationKey: string) => Promise<void>;\n\n /**\n * This API allows Repeating Structures to determine if a given `data` meets a specified `condition`. It is utilized in the following features if provided:\n * - `Conditional Formatting` - Optional. If `evaluateCondition` is not provided, Repeating Structures will evaluate the row condition on their own. Otherwise, this function will be used.\n *\n * @param {State} rsState - The state of the Repeating Structures.\n * @param {Meta} rsMeta - The meta information of the Repeating Structures.\n * @param {ConditionConfig} config - The configuration for the condition.\n * @returns {Promise<boolean> | boolean} - Returns `true` if the data satisfies the condition, otherwise `false`.\n */\n evaluateCondition?: (rsState: State, rsMeta: Meta, config: ConditionConfig) => boolean;\n\n /**\n * This api is used to fetch unique values for a particular group additional field. It is generally called for a group additional field which has more than 1 value.\n * It should return unique values for the additional field along with hasMore flag to indicate if there are more values.\n * @param additionalField - The group additional field for which unique values needs to be fetched.\n * @param groupFilters - The current group filters on which the additional field is set.\n * @param rsState - The state of the Repeating Structures.\n * @param rsMeta - The meta information of the Repeating Structures.\n * @param options - Extra api options provided by repeating structures.\n * @returns GroupAdditionalFieldUniqueValues - It should return a promise of type {@link GroupAdditionalFieldUniqueValues}\n */\n fetchGroupAdditionalFieldUniqueValues?: (\n additionalField: GroupAdditionalField,\n groupFilters: GroupFilter['filters'],\n rsState: State,\n rsMeta: Meta,\n options?: ApiOptions\n ) => Promise<GroupAdditionalFieldUniqueValues>;\n\n /**\n * This API is invoked just before refreshing the data in repeating structures. The refresh in Repeating Structures can occur in two ways:\n * - Through the Refresh button in the Toolbar.\n * - By clicking the refresh notification dispatched via the NOTIFY_DATA_REFRESH action.\n * The implementation of this method should include clearing any caches maintained by the consumer to ensure that fresh data is fetched when the repeating structures refresh the data.\n * @requireWhen Optional\n * @invokedWhen Before Repeating Structures refresh the data.\n * @returns void\n *\n * @remarks\n * There is an alternative way for signaling the `ApiContext` to invalidate the cache is available.\n * - The `invalidateCache` or `invalidateCacheToken` boolean flag in {@link ApiOptions} indicates that the current API call should invalidate the cache, as it is triggered by the refresh of the Repeating Structures.\n * Consumers can choose to implement either of the two approaches to clear their caches. Prefer `onBeforeRefresh` when using a class-based API context with centralized cache invalidation; use api options for stateless or function-based APIs.\n */\n onBeforeRefresh?: () => void;\n}\n"]}
1
+ {"version":3,"file":"ApiContext.types.js","sourceRoot":"","sources":["../../types/ApiContext.types.ts"],"names":[],"mappings":"AA0BA,6DAA6D;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC","sourcesContent":["import type { ModalManagerContextValue } from '@pega/cosmos-react-core/lib/components/Modal/Modal.types';\nimport type { Condition } from '@pega/cosmos-react-condition-builder';\n\nimport type { RowData } from '../src/core/generators/RowGenerator.types';\nimport type { UtilityFunctions } from '../src/core/generators/viewUtilityMethods';\n\nimport type {\n Personalization,\n PersonalizationInfo,\n PersonalizedState,\n State,\n Group,\n /* eslint-disable @typescript-eslint/no-unused-vars */\n DateGroupAdditionalField,\n NumberGroupAdditionalField,\n GroupFilter,\n GroupAdditionalField\n /* eslint-enable @typescript-eslint/no-unused-vars */\n} from './State.types';\nimport type {\n Meta,\n RowAction,\n FieldDef,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n FieldType\n} from './Meta.types';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { REPEATING_STRUCTURE_TEMPLATES } from './Meta.types';\n\n/**\n * Represents information about the currently active view in the repeating structures.\n */\ntype ActiveViewInfo = {\n /**\n * The unique identifier of the active view.\n */\n id: string | undefined;\n\n /**\n * The name of the active view.\n */\n name: string | undefined;\n\n /**\n * Indicates whether the active view has unsaved changes.\n */\n isDirty: boolean;\n};\n\ntype ColumnActionType = 'RowReorder' | 'RowDeleteAction';\n\nexport type RsApi = {\n /**\n * Refreshes the current view.\n * @see {@link UtilityFunctions.refreshView}\n */\n refreshView: UtilityFunctions['forceRefresh'];\n\n /**\n * Sets the record count in the view.\n * @see {@link UtilityFunctions.setRecordCount}\n */\n setRecordCount: UtilityFunctions['setRecordCount'];\n\n /**\n * Dispatches an action to the repeating structures with an payload.\n * @see {@link UtilityFunctions.dispatchAction}\n */\n dispatchAction: UtilityFunctions['dispatchAction'];\n\n /**\n * Retrieves information about the currently active view.\n * @returns The {@link ActiveViewInfo active view information} or `void` if unavailable.\n */\n getActiveViewInfo: () => ActiveViewInfo | void;\n\n /**\n * Sets hidden columns of the view.\n * @param columns - An array of column IDs to hide.\n * @param ootbColumns - .\n * @param ootbColumns.dragHandle - Whether to hide the drag-and-drop column.\n */\n setHiddenColumns?: (columns: string[], ootbColumns?: { dragHandle: boolean }) => void;\n\n /**\n * Sets visible columns of the view.\n * @param columns - An array of column IDs to show.\n */\n setVisibleColumns?: (columns: string[]) => void;\n\n /**\n * Sets Column order of the view.\n * @param columns - An array of column IDs to reorder.\n */\n setColumnOrder?: (columns: string[]) => void;\n\n /**\n * Sets the filters of the view.\n * @param filter - The filter condition to apply.\n */\n setFilter: (filter: Condition) => void;\n\n /**\n * Sets the groups of the view.\n * @param groups - The grouping configuration.\n */\n setGrouping?: (groups: Group[]) => void;\n\n /**\n * Sets the sorting order of the view.\n * @param {NonNullable<State['sortingOrder']>} sorts - The sorting configuration.\n */\n setSorting: (sorts: NonNullable<State['sortingOrder']>) => void;\n\n /**\n * Sets the column aliases of the view.\n * @param aliases - The column alias configuration.\n */\n setAliases: (aliases: State['columnAlias']) => void;\n\n /**\n * Sets the aggregation information of the view.\n * @param {State['aggregationInfo']} agg - The aggregation configuration.\n */\n setAggregations: (agg: State['aggregationInfo']) => void;\n\n /**\n * Sets visibility of row reorder OOTB column.\n *\n * @deprecated Use {@link setActionColumnVisibility} instead.\n * @param visibility - Whether the row reorder column should be visible.\n */\n setRowReorderFieldVisibility: (visibility: boolean) => void;\n\n /**\n * Sets the visibility of an OOTB column.\n * @param columnType - OOTB column type to toggle.\n * @param visibility - Whether the OOTB column should be visible.\n */\n setActionColumnVisibility: (columnType: ColumnActionType, visibility: boolean) => void;\n\n /**\n * Updates the visibility of specific columns.\n * @param {Object} columns - A mapping of column IDs to their visibility state.\n */\n updateColumnsVisibility: (columns: { [key: FieldDef['id']]: boolean }) => void;\n\n /**\n * Sets the `renderFormatter` for the given column.\n * @param columnId - Column ID\n * @param formatterName - ID of the formatter/renderer\n */\n setRenderFormatter: (\n columnId: string,\n formatter: string | { type: string; config: unknown }\n ) => void;\n\n /**\n * Removes the `renderFormatter` for the given column.\n * @param columnId - Column ID\n */\n removeRenderFormatter: (columnId: string) => void;\n\n /**\n * Sets the conditional style formats of the view.\n * @param conditionalStyleFormats - The conditional style formats to apply.\n */\n setConditionalStyleFormats: (\n conditionalStyleFormats: NonNullable<State['conditionalStyleFormats']>\n ) => void;\n};\n\nexport interface ApiOptions {\n signal?: AbortSignal;\n /** Indicates that the current API call should invalidate the cache and reload the data.\n *\n * @remarks\n * There is an alternative method for signaling the `ApiContext` to invalidate the cache and refresh the data:\n * - The {@link ApiContext.onBeforeRefresh onBeforeRefresh} API in {@link ApiContext}, which is invoked just prior to refreshing the data.\n * Consumers have the option to use either of these methods to invalidate the cache and refresh the data. Prefer `onBeforeRefresh` when using a class-based API context with centralized cache invalidation; use api options for stateless or function-based APIs.\n */\n invalidateCache?: boolean;\n /** A unique token or version identifier that changes whenever a refresh is triggered. Unlike a boolean `invalidateCache` flag, the `invalidateCacheToken` ensures that multiple APIs triggered\n in the same refresh cycle receive the same identifier. */\n invalidateCacheToken?: number;\n}\n// Aggregation response type\ntype AggregationTypeResp = 'avg' | 'max' | 'min' | 'nonNullCount' | 'sum' | 'distinctCount';\n/** An object with key equal to {@link AggregationTypeResp aggregation type} and value is equal to the actual value of that aggregation type */\ntype AggregationOptions = {\n [agg in AggregationTypeResp]?: number | null;\n};\n/** An object where key is equal to the column id (i.e. {@link FieldDef.id id} in FieldDef) and value is equal to its {@link AggregationOptions Aggregation values} */\nexport type AggregationResp = {\n [columnId: string]: AggregationOptions;\n};\n\nexport type AdditionalFieldData = {\n /** {@link FieldDef.id Field Id} of the additional field. */\n id: string;\n /** Value of the additional field that should be displayed for additional field.\n * The value can represent:\n * - An aggregated value (e.g., sum, max, min, avg) for {@link FieldType.NUMBER number} type fields when\n * {@link NumberGroupAdditionalField.aggregation aggregation} is selected in additional fields meta.\n * - A date function value (e.g., Day, Month, Year) for {@link FieldType.DATE 'date'} / {@link FieldType.DATE_TIME 'datetime'}\n * fields when a {@link DateGroupAdditionalField.dateFunction date function} is selected in the additional fields metadata..\n * - A scalar or single value for the additional field.\n */\n value: null | string | number | boolean | Date;\n /** Represents the distinct count of\n * occurrences for the additional field data. This is generally required,\n * but may be omitted if {@link NumberGroupAdditionalField.aggregation aggregation} is selected for number type fields\n * in the additional fields metadata. */\n count?: number;\n};\n\n// Grouping response type\nexport interface GroupedInfo {\n /** Value for the current group node. */\n name: null | string | number | boolean | Date; // Value for the current node\n /** # of data rows in this node */\n count: number;\n /** An optional data row from the group node that is used to process extra information required by group node */\n data?: RowData;\n /** Additional fields data for the current group node */\n additionalFieldsData?: AdditionalFieldData[];\n /** Aggregation values of a column if applied */\n agg?: AggregationResp;\n /** Nested groups within the parent group node */\n children?: GroupedInfo[];\n}\n\nexport interface HierarchicalGroupedInfo extends Pick<GroupedInfo, 'count' | 'agg'> {\n info: RowData;\n children?: HierarchicalGroupedInfo[];\n}\n\nexport type AggregateValueResponse = {\n [columnId: string]: number | null;\n};\n/** An object where key is equal to column id i.e. {@link FieldDef.id id key in fieldDef} and value is equal to the aggregation value for the given aggregation */\nexport type AggregationResult = {\n [columnId: string]: number;\n};\n\nexport interface FetchDataResponse {\n /** An array of {@link RowData} */\n data: RowData[];\n /** An optional parameter to provide the total record count for a given Repeating structures with a given filter criteria in the query. If not provided, use callback setRecordCount */\n totalRecordCount?: number;\n /** @deprecated An optional parameter to provide the total record count for a given Repeating structures with a given filter criteria in the query. If not provided, use callback setRecordCount */\n filteredRecordCount?: number;\n}\n\ntype BulkAction = Pick<RowAction, 'id' | 'text'> & {\n /**\n * @param rowIds - The values for the {@link Meta.itemKey 'itemkey'} for given rows.\n * @param clearSelectionAndRefreshRowsCallback - A callback used to trigger deselection of all the selected rows and then call\n * {@link ApiContext.fetchRowsData 'fetchRowsData'} api of to fetch latest data for given rows, after action is completed.\n * @return {void} - void\n */\n onClick: (rowIds: string[], clearSelectionAndRefreshRowsCallback: () => void) => void;\n};\n\ninterface ConditionConfig {\n condition: Condition;\n data: RowData;\n}\n\nexport type PersonalizationResponse = Pick<Personalization, 'defaultPersonalization'> & {\n allPersonalizations: {\n [personalizationKey: string]: Pick<PersonalizationInfo, 'name'> & {\n personalizationState: PersonalizedState;\n };\n };\n};\n\nexport interface GroupAdditionalFieldUniqueValues {\n /** Unique values for the group additional field. */\n values: (string | number | boolean | Date)[];\n /** Indicates if there are more values. */\n hasMore: boolean;\n}\n\nexport interface ApiContext {\n /**\n * This api is used to fetch a list of raw data rows (excluding aggregations) for a given group or at the top level when no groups.\n *Refer **[apiContext](https://git.pega.io/projects/PS/repos/ui-lists-lib/browse/docs/apiContext.md?useDefaultHandler=true#29) documentation** for more details.\n * @requireWhen Always\n * @invokedWhen filters are changed OR\\\n * search criteria is changed OR\\\n end user scrolls through the RS records OR\\\n sorting is changed OR\\\n forceRefresh is triggered by consumer OR\\\n groups are changed OR\\\n hierarchicalGroups are changed OR\\\n hiddenColumns are changed\n * @param {State} rsState - Current repeating structures {@link State}. Majorly used to build the criteria for query(e.g. filter, sort, group criteria, paginationOptions).\n * @param {Meta} rsMeta - Repeating structures {@link Meta}. Majorly used to determine the fields for which data needs to be fetched.\n * @param {ApiOptions} apiOptions - Extra api options provided by repeating structures,\n * for instance, abort signal handler is sent which can be attached to the native fetch call or any framework like axios. Repeating structures will use to cancel the api calls which might be using stale state, e.g. in case of progressive scroll.\n * @returns {Promise<FetchDataResponse>} - It should return a promise of type {@link FetchDataResponse} that should contain data as one key of type Array<{@link RowData}> to provide data for given query.\n */\n fetchData: (rsState: State, rsMeta: Meta, apiOptions: ApiOptions) => Promise<FetchDataResponse>;\n\n /**\n * This api is used to fetch details for any group/sub-group ribbons in the RS. Should return labels, counts, aggregation values at each group node.This can sometimes be called even when there are no groups. Avoid running into exceptions in those cases.\n * Refer **[apiContext](https://git.pega.io/projects/PS/repos/ui-lists-lib/browse/docs/apiContext.md?useDefaultHandler=true#59) documentation** for more details.\n * @requireWhen {@link Meta.grouping 'grouping'} key is set to true.\n * @invokedWhen Grouping is applied on any {@link FieldDef fieldDef} OR\\\n * filters are changed OR\\\n * search criteria is changed OR\\\n * personalization is toggled. OR\\\n * aggregation is changed OR\\\n * hiddenColumns are changed OR\\\n * forceRefresh of RS is triggered by consumer.\n * @param {State} rsState - Current repeating structures {@link State}. Majorly used to build the criteria for query. For e.g. use rsState.groups and rsState.aggregationInfo to determine the query.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}. Majorly used to determine the fields info for which data needs to be fetched.\n * @returns {GroupedInfo[]} - It should return a promise of type array of all the {@link GroupedInfo } for the specific field. It can also include nested groups in children key.\n */\n fetchGroupedInfo?: (\n rsState: State,\n rsMeta: Meta,\n apiOptions: ApiOptions\n ) => Promise<GroupedInfo[]>;\n\n /**\n * This api is used to fetch aggregation results for a given aggregation type(sum/min/max/count) on a field. This is called when aggregations are configured on one or more column.\n * Refer **[apiContext](https://git.pega.io/projects/PS/repos/ui-lists-lib/browse/docs/apiContext.md?useDefaultHandler=true#84) documentation** for more details.\n * @requireWhen {@link FieldDef.aggregation 'aggregation'} key is set to true for at least one FieldDef AND {@link FieldDef.type 'type'} key in FieldDef should be of number for that particular fieldDef.\n * @invokedWhen When aggregation is applied on any {@link FieldDef fieldDef} OR\\\n * filters are changed OR\\\n * search criteria is changed OR\\\n * personalization is toggled. OR\\\n * hiddenColumns are changed.\n * @param {State} rsState - Current repeating structures {@link State}. Majorly used to get current aggregations applied on the RS from aggregationInfo key in state. Apart from this current filters and search criteria can also be picked from state.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}. Majorly used to determine the fields for which data needs to be fetched.\n * @returns {Promise<AggregationResult>} - It should return a promise of type {@link AggregationResult}\n */\n fetchAggregatedValues?: (\n rsState: State,\n rsMeta: Meta,\n apiOptions: ApiOptions\n ) => Promise<AggregationResult>;\n\n /**\n * This api is used to fetch unique values available for a particular field. It is generally called for a field which has {@link FieldDef.filterPickList filterPickList} key set to true. The unique values are presented to the user while filtering and resolve the stable lanes for a Kanban template with a default lane configuration.\n * Refer **[apiContext](https://git.pega.io/projects/PS/repos/ui-lists-lib/browse/docs/apiContext.md?useDefaultHandler=true#99) documentation** for more details.\n * @requireWhen Any of the below conditions is met:\n * - {@link FieldDef.filterPickList filterPickList} key set to true for at least one FieldDef.\n * - {@link Meta.template template} is set to {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban}\n * @invokedWhen\n * - Picklist Filter is invoked by end user from FieldDef header action menu\n * - On load of Kanban template to fetch default lanes of Kanban template.\n * @param {State} rsState - Current repeating structures {@link State}.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}.\n * @param {string} columnId - This is equal to { @link FieldDef.id 'id'} key of the field for which unique values needs to be fetched.\n * @returns {Promise<Array<string | number | boolean | Date>>} It should return a promise of type array of unique values for a given fieldDef id.\n */\n fetchUniqueColValues?: (\n rsState: State,\n rsMeta: Meta,\n columnId: string,\n apiOptions: ApiOptions\n ) => Promise<(string | number | boolean | Date)[]>;\n\n /**\n * This api is used to fetch the latest data for a given row identified uniquely by {@link FieldDef.itemKey itemKey}.\n * @requireWhen {@link Meta.editing 'editing'} OR {@link Meta.deleting 'deleting'} is set to true\n * @invokedWhen A {@link Meta.rowActions rowAction} is submitted by consumer of RS, as part of {@link RowAction. rowAction.onClick} 'refresRow' callback.\n * @param {State} rsState - Current repeating structures {@link State}.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}.\n * @param {string} key - A unique identifier for a given row. This is equal to {@link Meta.itemKey 'itemKey'}\n * @param {string} value - The value for the given {@link Meta.itemKey 'itemKey'} for given row.\n * @param {RowData} existingRowData - Existing row data for the given row.\n * @returns {Promise<RowData[]>} It should return a promise of type {@link RowData} array containing the data for a given row.Only 0th index is considered from the array.\n */\n fetchRowData?: (\n rsState: State,\n rsMeta: Meta,\n key: string,\n value: string,\n existingRowData: RowData,\n apiOptions: ApiOptions\n ) => Promise<RowData[]>;\n\n /**\n * This api is used to fetch the latest data for given set of rows identified uniquely by itemKey in {@link FieldDef}. This is passed as callback to all the {@link BulkAction.onClick bulk actions 'onClick'} method with {@link ApiContext.clearSelectedRows clearSelectedRows} api.\n * @requireWhen {@link Meta.allowBulkActions 'allowBulkActions'} is set to true.\n * @invokedWhen The bulk action is submitted, this can be called by bulk actions {@link BulkAction.onClick 'onClick'} method by RS consumer.\n * @param {State} rsState - Current repeating structures {@link State}.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}.\n * @param {Array<string | number | boolean | Date>} rowIds - The values for the given {@link Meta.itemKey 'itemKey'} for given rows.\n * @param itemKey - A unique identifier for a given row. This is equal to {@link Meta.itemKey 'itemKey'}\n * @returns {Promise<RowData[]>} It should return a promise of type {@link RowData} array containing the data for given rows.\n */\n fetchRowsData?: (\n rsState: State,\n rsMeta: Meta,\n rowIds: string[],\n itemKey: string,\n apiOptions: ApiOptions\n ) => Promise<RowData[]>;\n\n /**\n * This api is used to fetch the actions that is supported on rows of Repeating Structure. It is generally called when {@link Meta.editing 'editing'} is set to true.\n * @requireWhen {@link Meta.editing 'editing'} OR {@link Meta.deleting 'deleting'} is set to true\n * @invokedWhen The end user clicks on 'RowActionMenu'.Once fetched it is not refetched.\n * @param {} uniqueKey - A unique identifier for a given row. This is equal to value for {@link Meta.itemKey 'itemKey'} in {@link RowData} data.\n * @returns - A promise of type Array of {@link RowAction}\n */\n fetchRowActionDetails?: (uniqueKey: string, rowContext: RowData) => Promise<RowAction[]>;\n\n /**\n * This api is used to submit the updated row data to apiContext. It is generally called when {@link FieldDef.editable 'editable'} key is set to true for at least one FieldDef to enable inline editing for a cell.\n * @requireWhen {@link FieldDef.editable 'editable'} key is set to true for at least one FieldDef.\n * @invokedWhen The end user is done editing the cell using inline editing.\n * @param {State} rsState - Current repeating structures {@link State}.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}.\n * @param dataToSubmit - Updated row data to be submitted to apiContext\n * @returns It should return a promise of type {@link RowData} with the updated contents that is passed in {@link dataToSubmit} param.\n */\n submitData?: (\n rsState: State,\n rsMeta: Meta,\n dataToSubmit: RowData\n ) => Promise<{ rowData: RowData }>;\n\n /**\n * This api is used to submit moved records in a repeating structure. It is called when {@link Meta.moveListRecords 'moveListRecords'} is set to true. Repeating structure allow moving of records based on it's value.\n * @requireWhen {@link Meta.moveListRecords 'moveListRecords'} is set to true\n * @invokedWhen The move process is completed by end user this api is called to provide the info related to move records.\n * @param moveInfo - It is an object that contains sourceID(the data of {@link Meta.itemKey 'itemKey'} for the given row) that user has selected to move and\n * destinationID(the data of {@link Meta.itemKey 'itemKey'} for the given row) where the user has dropped the source row.\n * @returns It should return a promise of type object that contains a refresh key if set to true, repeating structures will trigger a refresh and fetch the whole data agin using {@link ApiContext.fetchData 'fetchData'} api\n */\n moveListRecords?: (moveInfo: {\n sourceID: string;\n destinationID: string;\n }) => Promise<{ refresh: boolean }>;\n\n /**\n * This api is used to fetch the bulkActions for a repeating structures if {@link Meta.allowBulkActions 'allowBulkActions'} is set to true.\n * This is called on demand, when the bulk action button in repeating structures is clicked. The button will be disabled till the time at least one record is not selected in repeating structures to trigger bulk action.\n * @requireWhen {@link Meta.allowBulkActions 'allowBulkActions'} is set to true.\n * @invokedWhen End user clicks on 'Bulk actions' button in RS Toolbar.Once fetched it is not refetched.\n * @param {Array<string>} rowIds - The values for the given {@link Meta.itemKey 'itemKey'} for given rows.\n * @returns A promise of type Array of {@link BulkAction}\n */\n fetchActions?: (rowIds: string[]) => Promise<BulkAction[]>;\n\n /**\n * This API is used to pass utility callbacks to the consumer. Consumers can use these callbacks at any point in the lifecycle of Repeating Structures to interact with them.\n *\n * @returns {void} This function does not return any value.\n */\n addCallbacks?: (\n /**\n * @param rsUtilityCallbacks - A set of callbacks exposed by Repeating Structures, including methods for interacting with the view and managing state.\n * See {@link RsApi} for the list of available callbacks.\n *\n */\n rsUtilityCallbacks: RsApi & {\n /**\n * @deprecated This method will be removed in future versions. Please use {@link RsApi.refreshView refreshView} instead.\n *\n * It is used to trigger a force refresh the data and re-fetch selections using apiContext.getSelectedRows api (if any of the selection mode is enabled) of repeating structures\n * @returns {void} void\n */\n forceRefresh: UtilityFunctions['forceRefresh'];\n }\n ) => void;\n\n /**\n * This api passes a unique identifier to apiContext to identify a repeating structure instance. This can be used to uniquely identify a RS instance in case of multiple RS instances.\n * @requireWhen Optional\n * @invokedWhen On Repeating structures mount to share current repeating structure instance identifier.\n * @param {string} rsID - A unique identifier\n * @returns {void} void\n */\n setRsID?: (rsID: string) => void;\n\n /**\n * This api is called to fetch all the personalizations for a repeating structure.\n * @requireWhen {@link Meta.personalization 'personalization'} key is set to true.\n * @invokedWhen On Repeating structures mount to fetch all personalizations.\n * @returns {PersonalizationResponse} It should return all the personalizations.\n */\n fetchPersonalizations?: () => Promise<PersonalizationResponse>;\n\n /**\n * This api is called to update the personalization for a repeating structure.\n * @requireWhen {@link Meta.personalization 'personalization'} key is set to true.\n * @invokedWhen End user deletes a personalization.\n * @param {string} personalizationKey - Unique identifier for the personalization.\n * @param personalization - The updated personalization state.\n * @returns {void} void\n */\n updatePersonalization?: (\n personalizationKey: string,\n personalization: {\n markAsDefault?: boolean;\n markAsAppDefault?: boolean;\n name?: string;\n personalizationState?: PersonalizedState;\n }\n ) => Promise<void>;\n\n /**\n * This api is called to delete the personalization for a repeating structure.\n * @requireWhen {@link Meta.personalization 'personalization'} key is set to true.\n * @invokedWhen End user deletes a personalization.\n * @param personalizationKey - Unique identifier for a personalization.\n * @returns {void} void\n */\n deletePersonalization?: (personalizationKey: string) => Promise<void>;\n\n /**\n * This api is called to create the personalization for a repeating structure.\n * @requireWhen {@link Meta.personalization 'personalization'} key is set to true.\n * @invokedWhen End user create a new personalization.\n * @param {string} personalizationKey - Unique identifier for the personalization.\n * @param personalization - The personalization state to be saved\n * @returns {void} void\n */\n createPersonalization?: (\n personalizationKey: string,\n personalization: {\n markAsDefault: boolean;\n name: string;\n personalizationState: PersonalizedState;\n }\n ) => Promise<string> | Promise<{ data: string }>;\n\n /**\n * This api is used to communicate selectedRows in the repeating structures to the consumer.\n * @requireWhen {@link Meta.selectionMode 'selectionMode'} key is set to true.\n * @invokedWhen {@link Meta.selectionMode 'selectionMode'} key is set to true and whenever selection changes in RS.\n * @param {Array<RowData & { $selected: boolean }>} selectedRows The selectedRows that needs to be communicated.\n * @returns {Promise<void>} A promise\n */\n setSelectedRows?: (selectedRows: (RowData & { $selected: boolean })[]) => Promise<void>;\n\n /**\n * This api is used to get the selectedRows for the repeating structures from the consumer, to populate the selections in RS.\n * @requireWhen {@link Meta.selectionMode 'selectionMode'} key is set to true.\n * @invokedWhen {@link Meta.selectionMode 'selectionMode'} key is set to true and RS requires current selected rows from the consumer.\n * @returns {Promise<Array<string>>} A promise of type array of unique identifiers for all the row. It is value of {@link Meta.itemKey 'itemKey'}\n */\n getSelectedRows?: () => Promise<string[]>;\n\n /** This api is used to communicate the clearance of all the selectedRows for the repeating structures to the consumer.\n * This is also passed as callback to all the {@link BulkAction.onClick bulk actions 'onClick'} method with {@link ApiContext.fetchRowsData fetchRowsData} api.\n * @requireWhen {@link Meta.selectionMode 'selectionMode'} key is set to true.\n * @invokedWhen In case of {@link Meta.selectionMode \"multi\"} selection mode, while toggling all the selections OR\\\n * while switching personalizations OR\\\n * when the bulk action is submitted, this can be called by bulk actions {@link BulkAction.onClick 'onClick'} method by RS consumer.\n * @returns {Promise<void>} A promise\n */\n clearSelectedRows?: () => Promise<void>;\n\n /**\n * This api is used to fetch the hierarchical groups for an RS if {@link FieldDef.hierarchicalInfo 'hierarchicalInfo'} key is set to true for at least one FieldDef.\n * @requireWhen {@link FieldDef.hierarchicalInfo 'hierarchicalInfo'} key is set to true for at least one FieldDef\n * @invokedWhen Any change in filters, search criteria, hierarchichal groups, aggregations is detected in RS state or personalizations are toggled.\n * @param {State} rsState - Current repeating structures {@link State}.\n * @param {Meta} rsMeta - Repeating structures {@link Meta}.\n * @returns {HierarchicalGroupedInfo[]} - It should return a promise of type array of all the {@link HierarchicalGroupedInfo } for the specific field. It can also include nested hierarchical groups in children key.\n */\n fetchHierarchicalGroupedInfo?: (\n rsState: State,\n rsMeta: Meta,\n apiOptions: ApiOptions\n ) => Promise<HierarchicalGroupedInfo[]>;\n\n /**\n * This api is used to communicate repeating structure state to the consumer. It also includes visibleColumns apart from regular repeating structure state.\n * @requireWhen Optional\n * @invokedWhen After any action performed on Repeating structures that results in updating of state.\n * @param state Repeating structure state\n * @returns {void} void\n */\n stateUpdateCallback?: (state: PersonalizedState & { visibleColumns?: string[] }) => void;\n\n /**\n * This api is used to communicate repeating structure state to the consumer. It also includes active personalization in RS apart from regular repeating structure state.\n * @requireWhen Optional\n * @param state Repeating structure state\n * @returns {void} void\n */\n setComponentState?: (state: PersonalizedState & { activePersonalization?: string }) => void;\n /**\n * This api is used to communicate repeating structure state to RS from consumer.\n * @requireWhen Optional\n * @returns RS state.\n */\n getComponentState?: () => Promise<PersonalizedState & { activePersonalization?: string }>;\n /** This api is called on click of 'Import data' option in repeating structures toolbar and should open a modal to allow import of data from a CSV file.\n * @requireWhen {@link Meta.showImportDataOption showImportDataOption} is set to true in Meta.\n * @invokedWhen \"Import data\" button is clicked in the repeating structures toolbar\n * @param {ModalManagerContextValue['create']} create - The function to create a modal in the current context {@link ModalManagerContextValue['create']}.\n * @returns {void} void\n */\n importCSVData?: (create: ModalManagerContextValue['create']) => Promise<void>;\n /** This api is called on click of 'Export to excel' option in repeating structures toolbar and should export the data into a excel file.\n * @requireWhen {@link Meta.showExportToExcelOption showExportToExcelOption} is set to true in Meta.\n * @invokedWhen \"Export to excel\" button is clicked in the repeating structures toolbar\n * @param {State} rsState - Current repeating structures state {@link State}.\n * @param {Meta} rsMeta - Repeating structures meta {@link Meta}.\n * @returns {void} void\n */\n exportData?: (rsState: State, rsMeta: Meta, apiOptions: ApiOptions) => Promise<void>;\n\n /** This api is called on click of 'Export to CSV' option in repeating structures toolbar and should export the data into a CSV file.\n * @requireWhen {@link Meta.showExportToCSVOption showExportToCSVOption} is set to true in Meta.\n * @invokedWhen \"Export to CSV\" button is clicked in the repeating structures toolbar\n * @param {State} rsState - Current repeating structures state {@link State}.\n * @param {Meta} rsMeta - Repeating structures meta {@link Meta}.\n * @returns {void} void\n */\n exportDataToCSV?: (rsState: State, rsMeta: Meta, apiOptions: ApiOptions) => Promise<void>;\n\n /** This api is used to communicate source and destinaltion row keys to apiContext during row-reordering operation.\n * @requireWhen {@link Meta.reorderItems reorderItems} is set to true and {@link Meta.moveListRecords moveListRecords} is set to false in Meta.\n * @invokedWhen Reordering operations is being performed on rows.\n * @param {string} sourceKey - the value of {@link Meta.itemKey 'itemKey'} for the given row that user has selected to move.\n * @param {string} destinationKey - the value of {@link Meta.itemKey 'itemKey'} for the given row where the user has dropped the source row.\n * @returns {void} void\n */\n applyRowReorder?: (sourceKey: string, destinationKey: string) => Promise<void>;\n\n /**\n * This API allows Repeating Structures to determine if a given `data` meets a specified `condition`. It is utilized in the following features if provided:\n * - `Conditional Formatting` - Optional. If `evaluateCondition` is not provided, Repeating Structures will evaluate the row condition on their own. Otherwise, this function will be used.\n *\n * @param {State} rsState - The state of the Repeating Structures.\n * @param {Meta} rsMeta - The meta information of the Repeating Structures.\n * @param {ConditionConfig} config - The configuration for the condition.\n * @returns {Promise<boolean> | boolean} - Returns `true` if the data satisfies the condition, otherwise `false`.\n */\n evaluateCondition?: (rsState: State, rsMeta: Meta, config: ConditionConfig) => boolean;\n\n /**\n * This api is used to fetch unique values for a particular group additional field. It is generally called for a group additional field which has more than 1 value.\n * It should return unique values for the additional field along with hasMore flag to indicate if there are more values.\n * @param additionalField - The group additional field for which unique values needs to be fetched.\n * @param groupFilters - The current group filters on which the additional field is set.\n * @param rsState - The state of the Repeating Structures.\n * @param rsMeta - The meta information of the Repeating Structures.\n * @param options - Extra api options provided by repeating structures.\n * @returns GroupAdditionalFieldUniqueValues - It should return a promise of type {@link GroupAdditionalFieldUniqueValues}\n */\n fetchGroupAdditionalFieldUniqueValues?: (\n additionalField: GroupAdditionalField,\n groupFilters: GroupFilter['filters'],\n rsState: State,\n rsMeta: Meta,\n options?: ApiOptions\n ) => Promise<GroupAdditionalFieldUniqueValues>;\n\n /**\n * This API is invoked just before refreshing the data in repeating structures. The refresh in Repeating Structures can occur in two ways:\n * - Through the Refresh button in the Toolbar.\n * - By clicking the refresh notification dispatched via the NOTIFY_DATA_REFRESH action.\n * The implementation of this method should include clearing any caches maintained by the consumer to ensure that fresh data is fetched when the repeating structures refresh the data.\n * @requireWhen Optional\n * @invokedWhen Before Repeating Structures refresh the data.\n * @returns void\n *\n * @remarks\n * There is an alternative way for signaling the `ApiContext` to invalidate the cache is available.\n * - The `invalidateCache` or `invalidateCacheToken` boolean flag in {@link ApiOptions} indicates that the current API call should invalidate the cache, as it is triggered by the refresh of the Repeating Structures.\n * Consumers can choose to implement either of the two approaches to clear their caches. Prefer `onBeforeRefresh` when using a class-based API context with centralized cache invalidation; use api options for stateless or function-based APIs.\n */\n onBeforeRefresh?: () => void;\n}\n"]}
@@ -909,8 +909,9 @@ export interface Meta {
909
909
  */
910
910
  showImportDataOption?: boolean;
911
911
  /** This key is used to show 'Export to Excel' action in repeating structure toolbar.
912
- * On click of it, {@link ApiContext.exportData exportData} api is called to export repeating structures data into excel file. */
913
- showExportToExcelOption?: boolean;
912
+ * On click of it, {@link ApiContext.exportData exportData} api is called to export repeating structures data into excel file.
913
+ * Can be a callback, evaluated on every toolbar render with the current meta and state, to show the action conditionally. */
914
+ showExportToExcelOption?: boolean | ((meta: Meta, state: State) => boolean);
914
915
  /** This key is used to show 'Export to CSV' action in repeating structure toolbar.
915
916
  * On click of it, {@link ApiContext.exportDataToCSV exportDataToCSV} api is called to export repeating structures data into CSV file. */
916
917
  showExportToCSVOption?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Meta.types.d.ts","sourceRoot":"","sources":["../../types/Meta.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Meta.types.d.ts","sourceRoot":"","sources":["../../types/Meta.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Meta.types.js","sourceRoot":"","sources":["../../types/Meta.types.ts"],"names":[],"mappings":"AAiCA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAC;AAiEX,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,UAAU;IACrB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,WAAW;IACtB,iEAAiE;IACjE,GAAG,EAAE,KAAK;IACV,iBAAiB,EAAE,QAAQ;IAC3B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACR,CAAC;AAyDX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,kBAAkB,EAAE,kBAAkB;CAC9B,CAAC;AAuQX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG;IACT,YAAY,EAAE,GAAG;CACT,CAAC;AAOX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAuIX;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,mBAAmB;IACnB,iBAAiB;IACjB,UAAU;IACV,aAAa;IACb,cAAc;IACd,cAAc;IACd,eAAe;IACf,eAAe;IACf,QAAQ;IACR,iBAAiB;IACjB,SAAS;IACT,gBAAgB;CAC2B,CAAC","sourcesContent":["import type { ReactNode } from 'react';\n\nimport type { Condition, DateFunctionsByType } from '@pega/cosmos-react-condition-builder';\nimport type { DateFunction } from '@pega/cosmos-react-condition-builder/lib/components/ConditionBuilder/core/types';\nimport type {\n HeadingTag,\n IconName,\n ImageSize,\n OmitStrict,\n StatusProps\n} from '@pega/cosmos-react-core';\n\nimport type { FilterConfig } from '../src/core/config/filterConfig';\nimport type Row from '../src/core/generators/RowGenerator';\nimport type { RowData } from '../src/core/generators/RowGenerator.types';\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { ApiContext } from './ApiContext.types';\nimport type {\n AggregationType,\n GroupAdditionalField,\n IntervalGrouping,\n RangeGrouping,\n SortDirection,\n State,\n TextGrouping\n} from './State.types';\nimport type RsCoreBootArgs from './RsCoreBootArgs.types';\nimport type { RenderFormatterType } from './RsCoreBootArgs.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\ntype CSSVariable = `--${string}`;\n\nexport const ActionColumnPlacement = {\n COLUMN: 'column',\n MENU: 'menu'\n} as const;\n\n/**\n * Additive row-position metadata handed to row-action onClick callbacks. Optional so existing\n * two-argument onClick implementations remain valid without change.\n */\nexport interface RowActionMeta {\n /**\n * The row header column's resolved value, read at the time the action was invoked (not a live\n * column/getValue reference) - the underlying Column instance's execution context is a\n * transient, render-cycle-scoped value that gets rebound to other rows as they render, so\n * reading it lazily later would be unsafe.\n */\n rowHeader?: RowData[keyof RowData];\n /** The row's 0-based position among the underlying data (-1 when unresolved); not a stable identifier. */\n rowIndex: number;\n}\n\nexport interface RowAction {\n /** A label to be displayed to end user for this action */\n text: string;\n /** An identifier to uniquely identify this action */\n id: string;\n /**\n * @param {RowData} rowContext - RowData where this row action is triggered.\n * @param refreshRow - A callback which can be used to trigger refreshRow\n * which will trigger 'fetchRowData' api of {@link ApiContext} to fetch latest data for a row, after action is completed.\n * @param rowMeta - Optional row-position metadata; see {@link RowActionMeta}.\n * @return {void} - void\n */\n onClick: (rowContext: RowData, refreshRow: () => void, rowMeta?: RowActionMeta) => void;\n}\n\n// Meta and it's type START\ninterface Category {\n label: string;\n}\n\ninterface ContextMenuOption {\n id: string;\n icon?: string;\n label: string;\n onClick?: (target: HTMLElement) => void;\n}\n\nexport interface ActionConfig {\n /** Controls whether action column should be visible in table. */\n show: boolean;\n /** Controls whether action cell should be visible for a specific row. */\n isVisible: (rowContext: RowData) => boolean;\n /** Where action should be rendered. */\n placement: (typeof ActionColumnPlacement)[keyof typeof ActionColumnPlacement];\n /** Action to be invoked on click. */\n onClick: (rowContext: RowData, refreshRow?: () => void, rowMeta?: RowActionMeta) => void;\n}\n\nexport interface HierarchicalInfo {\n parentId?: string;\n materializedPathId?: string;\n targetId?: string;\n sortById?: string;\n columnId?: string;\n mode?: string;\n}\n\nconst CellAlign = {\n LEFT: 'left',\n RIGHT: 'right',\n CENTER: 'center'\n} as const;\n\n// TODO: Look into expanding the types to accept more field types.\nexport const FieldType = {\n TEXT: 'text',\n NUMBER: 'number',\n BOOLEAN: 'boolean',\n DATE_TIME: 'datetime',\n DATE: 'date',\n TIME: 'time',\n DATE_TIMELINE: 'Date',\n DATE_ONLY: 'Date only',\n // TODO: URL as a type is not needed. It can be merged with TEXT.\n URL: 'URL',\n ACTION_FIELD_TYPE: 'action',\n CUSTOM: 'custom',\n CURRENCY: 'currency',\n OBJECT: 'object'\n} as const;\n\nexport interface StyleFormat {\n /** A unique identifier for the style format. */\n id: string;\n /** The display name of the style format. */\n label: string;\n /** A collection of style properties that defines how the format will be applied. */\n config: {\n /** Background color to be applied.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n */\n backgroundColor: string;\n /**\n * Foreground (text) color to be applied.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n *\n * Optional\n */\n foregroundColor?: string;\n /**\n * An icon used as a visual indicator of the applied format.\n * Optional.\n */\n icon?: {\n /** The name of icon. */\n name: string;\n /** The color of icon.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n */\n color: string;\n };\n };\n}\n\n// For now, conditionalFormatting is exposed for fields only. In future, for rows the fieldName can be made optional.\nexport interface ConditionalStyleFormat {\n /** The condition that determines whether this style format should be applied. */\n condition: Condition;\n /** The ID of the style format, sourced from {@link RsCoreBootArgs.styleFormats}, that will be applied if the condition is met. */\n styleFormatId: StyleFormat['id'];\n /** The {@link FieldDef.name name of the fieldDef} to which this style format is applied. */\n fieldName: FieldDef['name'];\n}\n\nexport const cellUpdateTrigger = {\n ROW_DENSITY_CHANGE: 'rowDensityChange'\n} as const;\n\nexport interface FieldDef {\n /** Actual field name in data */\n name: string;\n /** The data type of the field. */\n type: (typeof FieldType)[keyof typeof FieldType];\n /** Persistent ID of the field, typically the same as the name */\n id: string;\n /** A display name of that field */\n label: string;\n /**\n * Represents the category hierarchy of a field, if the field is nested within a parent property. The format should be an array of objects\n * where each index represents a level of the category hierarchy.\n * This structure is used to display the hierarchy of the field wherever necessary.\n * @example\n * ```json\n * [{label: 'categoryName'}]\n * ```\n */\n category?: Category[];\n /** Show {@link category} in header label. The header will be displayed in format {categoryName}.{label} where categoryName will be all the category's labels combined with .(dot) notation */\n showCategoryInHeaderLabel?: boolean;\n /** Defines Field whose value needs to be shown as HelperText e.g tooltip: 'pzDescription' field value for pyID field */\n tooltip?: string;\n /** Enable/Disable tooltip on column */\n showTooltip?: boolean;\n /** Width of the field in px */\n width?: number;\n /** Maximum width of the field in px */\n maxWidth?: number;\n /** Minimum width in pixels, field width cannot be resized below this threshold\n * @default 90\n */\n minWidth?: number;\n /** Allow filtering on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n filter?: boolean;\n /** Filter popup presents a pick list to choose values from\n * @default false\n */\n filterPickList?: boolean;\n /** Allow sorting on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n sort?: boolean;\n /** Allows sorting on load. If this property is present, then sortPriority is mandatory */\n sortDirection?: (typeof SortDirection)[keyof typeof SortDirection];\n /** Sets the priority on filed for multi sorting(1 takes highest precedence). Allows sorting on load. If this property is present, then sortDirection is mandatory */\n sortPriority?: number;\n /** Allow grouping on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n grouping?: boolean;\n /** To set group order of the current field def */\n groupOrder?: number;\n /** To auto apply grouping on this field */\n grouped?: boolean;\n /**\n * Custom grouping applied when {@link grouped} is enabled. For custom grouping, the order is set to 'custom'.\n * - `TEXT_GROUPING` applies to {@link FieldType.TEXT text} fields.\n * - `RANGE_GROUPING` and `INTERVAL_GROUPING` apply to {@link FieldType.NUMBER number} and {@link FieldType.CURRENCY currency} fields.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.TABLE Table} supports all compatible custom grouping types.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} supports only {@link TextGrouping}.\n *\n * Incompatible combinations are removed during meta normalization.\n */\n customGrouping?: TextGrouping | RangeGrouping | IntervalGrouping;\n /**\n * Choose a date function {@link DateFunction} to group by when `grouped` is enabled for a date/time field.\n * Falls back to grouping by equality when undefined.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} does not support date-function grouping.\n */\n groupedDateFunction?: DateFunction;\n /**\n * Additional field configuration for the group.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} does not support group additional fields.\n */\n groupedAdditionalFields?: GroupAdditionalField[];\n /** Allow resizing on this field\n * @default true\n */\n resize?: boolean;\n /** Allow reordering on this field\n * @default true\n */\n reorderFields?: boolean;\n /** Allow freezing of this field\n * @default true\n */\n freeze?: boolean;\n /** This field will resize to available excess width if set to true. Only first field definition will be honoured if configured on multiple fields. */\n fillAvailableSpace?: boolean;\n /** Force the field label and value to appear in a specific layout. If layoutMode is omitted, layout is auto.\n * Currently, only supported when {@link Meta.template template} is set to {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} or {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban}.\n */\n layoutMode?: 'stacked' | 'inline';\n /** An asterisk will be added in the table header cell right after the label signifying it is required. */\n required?: boolean;\n /** Allow show/hide of this field\n * @default true\n */\n toggle?: boolean;\n /** Field shows in the view by default. Can be set to false to toggle it in later */\n show?: boolean;\n /** Show/hide field level Header action menu\n * @default true\n */\n showMenu?: boolean;\n /** Allow aggregation on this field\n * @default false (except when the field type is \"number\"/ \"currency\", where it defaults to true)\n */\n aggregation?: boolean;\n /** Allow combining of this field with other field\n * @default true\n */\n combineColumn?: boolean;\n /** Allow customizing column label and apply formatting\n * @default true\n */\n customizeColumn?: boolean;\n /** Disable context menu at cells of this field if set to true. Context menu is shown on right mouse click in the cell\n * @default false\n */\n noContextMenu?: boolean;\n /** This property extends options provided on right click in a cell context.\n * The default one's that the Repeating structures provide out of the box\n * are 'Copy Text', and 'Filter by this' */\n contextMenuOptions?: ContextMenuOption[];\n /** Optional name of a custom component to be rendered in the header cell of the column.\n * The custom component should be provided via the render factory.\n * If not specified, the default header cell renderer will be used. */\n headerCellRenderer?: string;\n /** Name of a custom component that is made available through the render factory. Check section on cellRenderer */\n cellRenderer?: string;\n /**\n * Configure additional events that explicitly trigger this field’s cell(s) to regenerate (re-render).\n * If omitted or empty, the cell will not update automatically on these events.\n *\n * These are *explicit* triggers that require the consumer to specify them for the cell to update.\n *\n *\n * Supported triggers include:\n * - `rowDensityChange`: when the row height or density changes.\n *\n * **Caution:** Using this may cause rendering overhead as the cells will be re-generated(re-rendered).\n *\n * @examples\n * ```json\n * cellUpdateTriggers: [\"rowDensityChange\"]\n * ```\n */\n cellUpdateTriggers?: (typeof cellUpdateTrigger)[keyof typeof cellUpdateTrigger][];\n\n /** Format on the basis of this field data should be formatted. The formatter should be present in {@link RsCoreBootArgs.renderFormatterTypeMap renderFormatterTypeMap}. */\n formatter?: string;\n /** To enable autosize on this field.\n * @default true\n */\n autosize?: boolean;\n // TODO: Remove this parentPath field. Consumer should handle the corresponding logic.\n /** If a field is of type pageList, parentpath should contain the path of the parent to traverse the field. */\n parentPath?: string;\n // TODO: Remove this isPageListField field. Consumer should handle the corresponding logic.\n /** Set if the field is of type pageList */\n isPageListField?: boolean;\n /** Enable 'Hierarchical' display mode on column if hierarchicalInfo exists. */\n hierarchicalInfo?: HierarchicalInfo;\n /** Align cell to left/right/center. Values accepted: 'left', 'right', 'center' */\n cellAlign?: (typeof CellAlign)[keyof typeof CellAlign];\n /** Column name label in group header will be hidden when set to 'true'\n * @default false\n */\n hideGroupColumnNameLabel?: boolean;\n // TODO this is exposed to consumer but is not being considered. Check this.\n /** Filter options for various field type\n * @example\n * [\n {\n value: 'Equals',\n key: 'equals'\n },\n {\n value: 'Not equals',\n key: 'notEquals'\n },\n {\n value: 'After',\n key: 'greaterThan'\n },\n {\n value: 'Before',\n key: 'lessThan'\n },\n {\n value: 'On or after',\n key: 'greaterThanEquals'\n },\n {\n value: 'On or before',\n key: 'lessThanEquals'\n }\n ]\n */\n filterParams?: {\n value: string;\n key: string;\n }[];\n /** To enable inline editing for a field. */\n editable?: boolean;\n /** A read only extra info related to field can be preserved in meta.\\\n * This will never be manipulated by repeating structure, it will be passed as it is to {@link FieldDef.cellRenderer cellRenderer} as props as it is. */\n meta?: { [key: string | number | symbol]: any };\n /** A read only extra info related to field can be preserved in this.\\\n * This will never be manipulated by repeating structure, it will be passed as it is to {@link FieldDef.cellRenderer cellRenderer} as props as it is. */\n customObject?: { [key: string | number | symbol]: any };\n /** Indicates if the field is used as rowHeader for A11y of the row */\n isRowHeader?: boolean;\n /**\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * A unique idHash.\n */\n idHash?: number;\n /** Indicates if this field is aggregated. If set to true, then first option from {@link Meta.aggregationType} will be picked as aggregation type for this field. */\n aggregated?: boolean;\n /** An array of conditional formats applied to the fieldDef.\n *\n * **Template support:** {@link REPEATING_STRUCTURE_TEMPLATES.TABLE Table} only.\n *\n * @property {Condition} condition - The condition that determines whether the format should be applied.\n * @property {ConditionalStyleFormat} styleFormat - The {@link StyleFormat.id style format id} from `field` {@link RsCoreBootArgs.styleFormats styleFormats} applied to the cell if the condition evaluates to true.\n *\n * **Note**: *If the data satisfies multiple conditional style formats, the first matching conditional format will be used.*\n * */\n conditionalStyleFormats?: OmitStrict<ConditionalStyleFormat, 'fieldName'>[];\n /** Disables formatting on the field using {@link RsCoreBootArgs.renderFormatterTypeMap renderFormatterTypeMap}\n * @default false\n */\n disableFormatting?: boolean;\n /**\n * Formatter options for this specific field.\n * If the field level formatters are provided then they will be given priority than RS level {@link RsCoreBootArgs.renderFormatterTypeMap formatters}.\n */\n formatters?: RenderFormatterType[];\n /** Indicates if the field is searchable via global search.\n * @default false (except when the field type is \"text\", where it defaults to true)\n */\n searchable?: boolean;\n /**\n * Optional field whose property is used when matching this field against a global search query.\n */\n searchProperty?: FieldReference;\n}\n\nexport const ROW_DENSITY = {\n SHORT: '1',\n MEDIUM: '2',\n TALL: '3',\n WRAP_CONTENT: '4'\n} as const;\n\ntype DisplayDensity = {\n id: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY];\n name: string;\n};\n\nexport const REPEATING_STRUCTURE_TEMPLATES = {\n TABLE: 'Table',\n GALLERY: 'Gallery',\n TIMELINE: 'Timeline',\n MAP: 'Map',\n KANBAN: 'Kanban'\n} as const;\n\nconst SELECTION_MODE = {\n SINGLE: 'single',\n MULTI: 'multi',\n MULTI_ON_HOVER: 'multi_on_hover'\n} as const;\n\ntype TimelineFieldDef = Partial<Pick<FieldDef, 'name' | 'label' | 'type' | 'meta'>>;\n\ntype DisplayFeature = {\n filter?: boolean;\n grouping?: boolean;\n sort?: boolean;\n};\n\n/** Represents a constant string value. */\nexport type ConstantValue = { value: string };\n\n/** Represents a reference to a field from {@link Meta.fieldDefs fieldDefs} by its {@link FieldDef.id id}. */\nexport type FieldReference = { field: FieldDef['id'] };\n\n/** Placement options for hero image */\nexport type HeroImagePlacement = 'left' | 'right' | 'top';\n\n/**\n * Configuration for a hero image displayed on gallery cards.\n *\n * @example\n * ```json\n * {\n * \"source\": { \"field\": \"ImageURL\" },\n * \"altText\": { \"field\": \"ImageDescription\" },\n * \"placement\": \"left\",\n * \"size\": \"flexible\"\n * }\n */\nexport type HeroImage = {\n /** Image source URL. Accepts `{field: 'fieldId'}` to reference a {@link FieldDef field} to get URL. */\n source: FieldReference;\n /** Alternative text for the image. Accepts either `{field: 'fieldId'}` to reference a {@link FieldDef field} or `{value: 'text'}` for a constant value. */\n altText?: ConstantValue | FieldReference;\n /**\n * Position of the hero image relative to card content.\n * @default 'left'\n */\n placement?: HeroImagePlacement;\n /**\n * Size of the hero image.\n * @default 'flexible'\n */\n size?: ImageSize;\n};\n\n/** Possible layout modes for the Gallery template. Extensible for future layouts (e.g. 'board'). */\nexport type GalleryLayout = 'cardgrid' | 'cardlist';\n\nexport interface CardTile {\n /** Field id whose value is the foreground colour (hex string). */\n foregroundColor: FieldReference;\n /** Field id whose value is the background CSS value (e.g. a linear-gradient string). */\n backgroundColor: FieldReference;\n /** Field id whose value is the registered icon name for the tile. */\n iconName?: FieldReference;\n /** Field id whose value is the text content for the tile. */\n text?: FieldReference;\n /**\n * Position of the tile relative to card content.\n * @default 'left'\n */\n placement?: HeroImagePlacement;\n /**\n * Size of the tile.\n * @default 'flexible'\n */\n size?: ImageSize;\n}\n\nexport interface CardConfig {\n /** Header of the card. Accepts `{field: 'fieldId'}` to reference a {@link FieldDef field}. */\n header?: FieldReference;\n /** Subheadings of the card. Accepts an array of `{field: 'fieldId'}` references to {@link FieldDef fields}. */\n subHeadings?: FieldReference[];\n /** Configuration for the hero image displayed on cards. */\n heroImage?: HeroImage;\n /** Configuration for a coloured tile shown in place of a hero image. */\n tile?: CardTile;\n /** Show field labels on cards.\n * @default true\n */\n showFieldLabels?: boolean;\n /** Optional render callback invoked for each card to produce footer content. */\n renderCardFooter?: (rowData: RowData) => ReactNode;\n}\n\n/** Template-neutral Master Detail metadata. */\nexport interface MasterDetailConfig {\n viewName: string;\n /** Icon displayed for each Master Detail selection in the configured table. */\n icon?: IconName;\n}\n\nexport interface GalleryConfig extends CardConfig {\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n header?: FieldReference;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n subHeadings?: FieldReference[];\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n heroImage?: HeroImage;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n tile?: CardTile;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n showFieldLabels?: boolean;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n renderCardFooter?: (rowData: RowData) => ReactNode;\n /** Optional click handler called when a gallery card is clicked. Receives the raw row data. */\n onCardClick?: (rowData: RowData) => void;\n /** Layout mode for the gallery.\n * - `'cardgrid'` - multi-column grid layout (default)\n * - `'cardlist'` - single-column list layout\n * @default 'cardgrid'\n */\n layout?: GalleryLayout;\n /** Shows the toolbar toggle for switching between card grid and card list layouts.\n * @default true\n */\n showLayoutToggle?: boolean;\n}\n\n/**\n * State keys a preset can carry in {@link Meta.presetState}: the state that cannot be reconstructed from\n * `fieldDefs` and the other Meta properties. This list is the single contract between RS Core (which\n * accepts only these keys at runtime) and consumers (which build `presetState` from them).\n */\nexport const PRESET_STATE_KEYS = [\n 'allGroupsExpanded',\n 'aggregationInfo',\n 'colOrder',\n 'columnAlias',\n 'columnWidths',\n 'customFields',\n 'externalState',\n 'freezeColumns',\n 'groups',\n 'renderFormatter',\n 'version',\n 'visibleColumns'\n] as const satisfies readonly (keyof State)[];\n\n/** Initial state of a preset, see {@link Meta.presetState}. */\nexport type PresetState = Partial<Pick<State, (typeof PRESET_STATE_KEYS)[number]>>;\n\n/** Meta input to RS */\nexport interface Meta {\n /** Metadata for fields */\n fieldDefs: FieldDef[];\n /** itemKey for data identification */\n itemKey: string;\n /** Preset id of the current preset/personalization. This will be used to uniquely identify the preset on which the current view is dervied from */\n id: string;\n /** Preset name of the current preset/personalization. This will be displayed to end user */\n name: string;\n /**\n * Id of the preset that is active on first render, instead of the personalization default (which does\n * not change). Read from the base meta only; ignored when it matches no preset.\n */\n initialPresetId?: string;\n /**\n * Initial state for an unpersonalized preset that cannot be reconstructed from `fieldDefs` and the\n * other Meta properties (e.g. column aliases, frozen columns, custom columns, custom grouping,\n * column widths and order, exact aggregation choices, external filter values). Everything Meta can\n * express (field visibility, sorting, filter, conditional styles, header icons, row height, gallery\n * layout) is hydrated from Meta itself and is intentionally not accepted here. `visibleColumns` is\n * accepted only because custom columns have no field definition to carry their visibility.\n * Only the keys in {@link PRESET_STATE_KEYS} are accepted. They override values reconstructed from\n * fieldDefs. `externalState` (keyed like {@link externalFilters}) makes external filters known\n * before the first data fetch. Preset identity, template and personalization remain controlled by\n * Meta and the current component state rather than this property.\n */\n presetState?: PresetState;\n /** Array of fields(extra) that should be included in the query prepared for different api's in {@link ApiContext}.\n * `lists-client-api` package implicitly appends this in `select` field while preparing the query.\n */\n patchQueryFields?: string[];\n /** Array denoting sort operation order.\n *\n * @default\n * ```json\n * ['asc', 'desc', null]\n * ```\n */\n sortOrder?: (string | null)[];\n /**\n * A collection of row density options that users can select to adjust the height of rows based on the chosen density.\n *\n * @default\n * ```json\n * [\n * { \"name\": \"Short\", \"id\": \"1\" },\n * { \"name\": \"Medium\", \"id\": \"2\" },\n * { \"name\": \"Tall\", \"id\": \"3\" },\n * { \"name\": \"Full content\", \"id\": \"4\" }\n * ]\n * ```\n */\n displayDensity?: DisplayDensity[];\n /**\n * Configuration for the height of the view.\n *\n * @default\n * ```json\n * {\n * minHeight: 600\n * }\n * ```\n */\n height?: {\n /** The minimum height in pixels for the view or 'auto' */\n minHeight?: number;\n /** Specifies an HTML element or a string query selector to which the view's height will be adjusted. If this property is used, the `height` property will be ignored */\n fitHeightToElement?: HTMLElement | string;\n /** Specifies an explicit height for the view. If set, the `fitHeightToElement` property will be ignored.\n * - `number` — explicit pixel height.\n * - CSS variable (e.g. `'--my-height'`) — height driven by a CSS custom property.\n * This takes precedence over `basicMode` height behavior.\n */\n height?: number | CSSVariable;\n /** A height adjustment value in pixels */\n deltaAdjustment?: number;\n /** If true, the height will be adjusted responsively on window resize, but only if `fitHeightToElement` is provided. */\n autoSize?: boolean;\n /** The maximum height for the view, specified in pixels or as a CSS variable (e.g., `--view-height`) */\n maxHeight?: number | string;\n /** CSS variable that defines the minimum threshold to be used in `maxHeight` calculations. If not provided, a default value of `25rem` will be used.\n *\n * Caution: Use carefully as setting this value too low can introduce usability issues on smaller screens.\n */\n maxHeightMinValueVariable?: CSSVariable;\n };\n /** Allow show/hide of fields\n *\n * @default true\n */\n toggleFieldVisibility?: boolean;\n /** Allow grouping on fields\n *\n * @default true\n */\n grouping?: boolean;\n /**\n * Determines the view of a Repeating Structure.\n *\n * @remarks\n * **Template-specific constraints:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} and {@link REPEATING_STRUCTURE_TEMPLATES.MAP Map} do not support grouping.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.TIMELINE Timeline} supports only one grouping level.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} renders only the level-0 group as board lanes.\n * Configure the lane field through {@link Meta.fieldDefs fieldDefs} by setting\n * {@link FieldDef.grouping grouping} and {@link FieldDef.grouped grouped} to `true`,\n * with {@link FieldDef.groupOrder groupOrder} set to `0`.\n *\n * @default 'Table'\n */\n template?: (typeof REPEATING_STRUCTURE_TEMPLATES)[keyof typeof REPEATING_STRUCTURE_TEMPLATES];\n /** Configuration for card-based templates. Only applicable when {@link Meta.template template} is set to {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} or {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban}. */\n cardConfig?: CardConfig;\n /** Allow editing on fields and if enabled then row actions are also enabled.\n *\n * Backward-compatible values:\n * - `boolean`: data- use case.\n * - {@link ActionConfig}: explicit edit behavior.\n *\n * @default false\n */\n editing?: boolean | ActionConfig;\n /** Allow deleting of rows.\n *\n * Backward-compatible values:\n * - `boolean`: data- use case.\n * - {@link ActionConfig}: explicit delete behavior.\n */\n deleting?: boolean | ActionConfig;\n /** Allow personalization views\n * @default true\n */\n personalization?: boolean;\n /** Enable app default personalization options in Toolbar action menu.\n * If a personalization is set as App Default then that will be used as default personalization in repeating structures.\n * @default false\n * */\n enableAppDefault?: boolean;\n /**\n * Name to be shown for non personalized view.\n * @default 'Initial view'\n */\n nonPersonalizationViewName?: string;\n /** Allow field (column) reordering through a drag and drop action.\n * @default true\n */\n reorderFields?: boolean;\n /** Allow row reordering through a drag and drop action.\n * @default false\n */\n reorderItems?: boolean;\n /**\n * Allow to add a column for drag handle\n * @default false\n * @deprecated Use {@link rowReorderField}\n */\n dragHandle?: boolean;\n /**\n * Enables row reorder column. By default if enabled, it will be visible. To override the default behavior set show as false.\n */\n rowReorderField?: {\n show: boolean;\n };\n /**\n * Brings in a search widget to allow searching across all text type fields.\n * @default true\n */\n globalSearch?: boolean;\n /** Display toolbar on the view.\n * @default true\n */\n toolbar?: boolean;\n /** Display count in toolbar.\n * @default true\n */\n showCount?: boolean;\n /**\n * Row density id value from the \"displayDensity\" options prop above.\n * @default {@link ROW_DENSITY.SHORT}\n */\n defaultRowHeight?: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY];\n /**\n * Renders the 'Bulk actions' button in the table toolbar, which gets enabled on row selection.\n * Works only if the template is not set to timeline.\n * @default false\n */\n allowBulkActions?: boolean;\n /**\n * Denotes the page size being passed in the case of rest backed data page\n * #JSDOC\n */\n pageSize?: number;\n /** Enables date-functions like MONTHS/WEEKS/... during Grouping and Filtering. ([Object structure](https://git.pega.io/projects/PS/repos/cosmos/browse/packages/cosmos-condition-builder/src/components/ConditionBuilder/ConditionBuilder.types.ts?until=dfcf607851276bfeb877e9fb2c8f55d4396fd8b7&untilPath=packages%2Fcosmos-condition-builder%2Fsrc%2Fcomponents%2FConditionBuilder%2FConditionBuilder.types.ts#79-85)) */\n dateFunctions?: DateFunctionsByType;\n /** Enabled Relative Dates, such as \"Last 7 days\" (Or) \"Current Year\", in filtering for the DateTime or Date_Only values\".\n * @default false\n */\n relativeDates?: boolean;\n /** Display footer on the view.\n * @default true\n */\n footer?: boolean;\n /**\n * Templates for dynamic fields (or) columns which are used to combine two columns with a template.\n * @default\n * ```json\n * [\n * { name: 'Comma separated', value: 'comma',selected: true },\n * { name: 'Space separated', value: 'space' },\n * { name: 'Multi line', value: 'multiline' },\n * { name: 'Forward slash', value: 'forwardslash' }\n * ]\n * ```\n */\n dynamicFieldTemplates?: {\n name: string;\n value: string;\n selected?: boolean;\n }[];\n /** Repeating Structure Title\n * @default '<label not set>'\n */\n title?: string;\n /**\n * Override the heading tag used for the {@link Meta.title title} title in the toolbar.\n * @default 'h2'\n */\n headingTag?: HeadingTag;\n /**\n * Show the repeating structure title.\n * @default true\n */\n showTitle?: boolean;\n /** Repeating Structure Icon\n * @default 'picture'\n */\n icon?: string;\n /** Display Header Bar\n * @default false\n */\n headerBar?: boolean;\n /**\n * Display Respective Header Icons at field labels based on type\n * @default false\n */\n showHeaderIcons?: boolean;\n /** Indicates if freezing is allowed on Fields. */\n freezeFields?: boolean;\n /**\n * list of available static actions for an editable table with following properties\n * @example\n * ```json\n * [\n * {\n * text: 'Open in a new tab',\n * id: 'row-new-tab',\n * onClick: () => {}\n * }\n * ]\n * ```\n * @default\n * []\n */\n rowActions?: RowAction[];\n /** Decides type of row selection mode (radio for single/ checkbox for multi) possible values : single / multi / multi-on-hover */\n selectionMode?: (typeof SELECTION_MODE)[keyof typeof SELECTION_MODE];\n /** Displays select-all checkbox if selectionMode is multi-on-hover and the records count is not greater than threshold */\n selectionCountThreshold?: number;\n /** To Disable/Enable selection of rows */\n disableSelectionOnLoad?: boolean;\n /** To show asterisk(*) symbol on table header in case of Data Reference/Embedded views. (Note: This works perfectly if the personalization is off.) */\n requiredOnLoad?: boolean;\n /**\n * List of available static actions at table level (shown in toolbar/ headerbar) with following properties\n * [{ text: 'Add', tooltip: 'Add story', id: 'Add', onClick: () => {}}]\n */\n toolbarActions?: {\n text: string;\n id: string;\n onClick: () => void;\n tooltip: string;\n }[];\n /** Allow row reordering through a drag and drop action.\n * default value: false\n */\n moveListRecords?: boolean;\n\n /** Allow end user to refresh data of the repeating structures. Enabling this will show up `Refresh` action in repeating structures toolbar.\n * @default false\n */\n allowRefresh?: boolean;\n /** Allow switching between Table and Gallery templates at runtime via the toolbar.\n * Set to `false` for embedded tables where template switching is not supported.\n * @default true\n */\n allowSwitchTemplate?: boolean;\n\n /** The height of repeating structure is calculated on this parameter if provided. */\n numberOfRows?: number;\n /** Display views of repeating structures with full or condensed toolbar.\n * @default false\n * Default shows full toolbar.\n */\n basicMode?: boolean;\n /** Timezone which is passed to formatter\n * @default 'America/New_York'\n */\n timezone?: string;\n /** Locale which is passed to formatter function\n * @default 'en-US'\n */\n locale?: string;\n timelineFields?: {\n /** Timeline template title for display */\n title?: TimelineFieldDef;\n /** Timeline template date for display */\n date?: TimelineFieldDef;\n /** Timeline template status for display */\n status?: TimelineFieldDef & { getCustomContent?: (row: Row) => StatusProps };\n /** Timeline template icon for display */\n icon?: TimelineFieldDef;\n /** Timeline template content for display */\n content?: TimelineFieldDef;\n };\n /** Map template field ids for display */\n mapFieldIds?: {\n /** Map template location field id for display */\n location?: FieldDef['id'];\n /** Map template label field id for display */\n label?: FieldDef['id'];\n /** Map template content field id for display */\n content?: FieldDef['id'];\n };\n /**\n * Gallery-specific configuration. Card-content properties remain supported for backward\n * compatibility; use {@link Meta.cardConfig cardConfig} for new integrations.\n */\n galleryConfig?: GalleryConfig;\n // TODO: Narrow this type to a union of the known dx keys: `'PromotedFilters' | 'SEARCH_AND_SELECT_AS_EXTERNAL_FILTERS' | 'ADVANCED_SEARCH_AND_SELECT_AS_EXTERNAL_FILTERS'`.\n /** A unique key for injectable filters component.\n * This key will be sent to {@link RsCoreBootArgs.renderFactory renderFactory} as 'type' to get a renderer for the external filters.\n * The renderer will be shown between Repeating structures body and repeating structures toolbar.\n * This key should be used in {@link State.externalState externalState} to populate state related to externalFilters.\n */\n externalFilters?: string;\n /** This key is used to show the 'Import Data' action in the repeating structures toolbar. It will only work for Launchpad.\n * On click, it will call {@link ApiContext.importCSVData importCSVData} open a modal allowing the user to upload a file.\n */\n showImportDataOption?: boolean;\n /** This key is used to show 'Export to Excel' action in repeating structure toolbar.\n * On click of it, {@link ApiContext.exportData exportData} api is called to export repeating structures data into excel file. */\n showExportToExcelOption?: boolean;\n /** This key is used to show 'Export to CSV' action in repeating structure toolbar.\n * On click of it, {@link ApiContext.exportDataToCSV exportDataToCSV} api is called to export repeating structures data into CSV file. */\n showExportToCSVOption?: boolean;\n /** To enable 'Freeze columns' action in toolbar action menu. This action triggers freezing of columns.This toolbar action considers {@link FieldDef.freeze freeze} key in FieldDef too.\n * @default true\n */\n // TODO: meta.freezeFields and meta.enableFreezeColumns are checking the same thing. Evaluate if one can be removed.\n enableFreezeColumns?: boolean;\n /** To enable 'Auto size columns' action in toolbar action menu. This action triggers auto size of columns.\n * @default true\n */\n autoSizeColumns?: boolean;\n /** To enable 'Query info' action in toolbar action menu. This action shows query information.\n * @default false\n */\n showQueryInfo?: boolean;\n /** To enable 'Reset column widths' action in toolbar action menu. This action triggers reset of columns width to its default state.\n * @default true\n */\n resetColumnWidths?: boolean;\n /** To enable 'Row density' action in toolbar action menu. This action triggers a popover menu item to select row density.This toolbar action considers {@link Meta.displayDensity displayDensity} key in Meta too.\n * @default true\n */\n rowDensity?: boolean;\n /** Shows the row wrap toggle action in the toolbar.\n * Applicable only when {@link Meta.template template} is set to 'Table'.\n * @default true\n */\n showWrapAction?: boolean;\n /** To show/hide filter,sort,group action buttons from end user.\\\n * **Note**: Above features will still work, it is just not available to end user to trigger.\n * @default\n * ```json\n * {\n * filter: true,\n * grouping: true,\n * sort: true\n * }\n * ```\n */\n displayFeatures?: DisplayFeature;\n /** Enables error column. The column will be visible when dataErrors are present in {@link State.errors errors}.\n * @default false\n * @deprecated Use {@link rowErrorField}\n */\n showErrorField?: boolean;\n /**\n * Enables error column. By default if enabled, it will be hidden. To override the default behavior set show as true.\n * The column will be visible when dataErrors are present in {@link State.errors errors}.\n */\n rowErrorField?: {\n show: boolean;\n };\n /** Id of the custom renderer that should be used to display customized columns cells. */\n customFieldRenderer?: string;\n /** Id of the custom renderer that should be used to display header cells. */\n customHeaderRenderer?: string;\n /**\n * @deprecated Provide the exact fieldDef configuration in the {@link FieldDef}.\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * The default config of the FieldDef. This is used to normalize each {@link FieldDef} properties with its default value.\n */\n defaultFieldDef?: OmitStrict<FieldDef, 'name' | 'type' | 'id' | 'label'>;\n /**\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * A set of comparator map used for filter operation on columns. */\n comparatorMap?: FilterConfig['comparatorMap'];\n /**\n * @deprecated Use {@link Meta.editing editing} property\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * Indicates if editing is enabled on Repeating structures.\n */\n editable?: boolean;\n /** A set of aggregation options available for a column on which the data can be aggregated.\n *\n * @default\n * ```json\n * {\n * number: ['Sum', 'Min', 'Max', 'Avg']\n * }\n * ```\n */\n aggregateOptions?: {\n [fieldType: string]: AggregationType[];\n };\n /** An optional change action that will be called whenever the personalization is switched. */\n personalizationChangeAction?: () => void;\n /** Predefined filters that will be applied on load of repeating structures. */\n filterExpression?: Condition;\n /**\n * Configures a detail region for a selected Table item. Its absence disables Master Detail.\n * This is currently supported only when {@link Meta.template template} is set to\n * {@link REPEATING_STRUCTURE_TEMPLATES.TABLE Table}; it is removed during metadata\n * normalization for other templates.\n *\n */\n masterDetail?: MasterDetailConfig;\n}\n"]}
1
+ {"version":3,"file":"Meta.types.js","sourceRoot":"","sources":["../../types/Meta.types.ts"],"names":[],"mappings":"AAiCA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAC;AAiEX,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,UAAU;IACrB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,WAAW;IACtB,iEAAiE;IACjE,GAAG,EAAE,KAAK;IACV,iBAAiB,EAAE,QAAQ;IAC3B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACR,CAAC;AAyDX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,kBAAkB,EAAE,kBAAkB;CAC9B,CAAC;AAuQX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG;IACT,YAAY,EAAE,GAAG;CACT,CAAC;AAOX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAuIX;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,mBAAmB;IACnB,iBAAiB;IACjB,UAAU;IACV,aAAa;IACb,cAAc;IACd,cAAc;IACd,eAAe;IACf,eAAe;IACf,QAAQ;IACR,iBAAiB;IACjB,SAAS;IACT,gBAAgB;CAC2B,CAAC","sourcesContent":["import type { ReactNode } from 'react';\n\nimport type { Condition, DateFunctionsByType } from '@pega/cosmos-react-condition-builder';\nimport type { DateFunction } from '@pega/cosmos-react-condition-builder/lib/components/ConditionBuilder/core/types';\nimport type {\n HeadingTag,\n IconName,\n ImageSize,\n OmitStrict,\n StatusProps\n} from '@pega/cosmos-react-core';\n\nimport type { FilterConfig } from '../src/core/config/filterConfig';\nimport type Row from '../src/core/generators/RowGenerator';\nimport type { RowData } from '../src/core/generators/RowGenerator.types';\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { ApiContext } from './ApiContext.types';\nimport type {\n AggregationType,\n GroupAdditionalField,\n IntervalGrouping,\n RangeGrouping,\n SortDirection,\n State,\n TextGrouping\n} from './State.types';\nimport type RsCoreBootArgs from './RsCoreBootArgs.types';\nimport type { RenderFormatterType } from './RsCoreBootArgs.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\ntype CSSVariable = `--${string}`;\n\nexport const ActionColumnPlacement = {\n COLUMN: 'column',\n MENU: 'menu'\n} as const;\n\n/**\n * Additive row-position metadata handed to row-action onClick callbacks. Optional so existing\n * two-argument onClick implementations remain valid without change.\n */\nexport interface RowActionMeta {\n /**\n * The row header column's resolved value, read at the time the action was invoked (not a live\n * column/getValue reference) - the underlying Column instance's execution context is a\n * transient, render-cycle-scoped value that gets rebound to other rows as they render, so\n * reading it lazily later would be unsafe.\n */\n rowHeader?: RowData[keyof RowData];\n /** The row's 0-based position among the underlying data (-1 when unresolved); not a stable identifier. */\n rowIndex: number;\n}\n\nexport interface RowAction {\n /** A label to be displayed to end user for this action */\n text: string;\n /** An identifier to uniquely identify this action */\n id: string;\n /**\n * @param {RowData} rowContext - RowData where this row action is triggered.\n * @param refreshRow - A callback which can be used to trigger refreshRow\n * which will trigger 'fetchRowData' api of {@link ApiContext} to fetch latest data for a row, after action is completed.\n * @param rowMeta - Optional row-position metadata; see {@link RowActionMeta}.\n * @return {void} - void\n */\n onClick: (rowContext: RowData, refreshRow: () => void, rowMeta?: RowActionMeta) => void;\n}\n\n// Meta and it's type START\ninterface Category {\n label: string;\n}\n\ninterface ContextMenuOption {\n id: string;\n icon?: string;\n label: string;\n onClick?: (target: HTMLElement) => void;\n}\n\nexport interface ActionConfig {\n /** Controls whether action column should be visible in table. */\n show: boolean;\n /** Controls whether action cell should be visible for a specific row. */\n isVisible: (rowContext: RowData) => boolean;\n /** Where action should be rendered. */\n placement: (typeof ActionColumnPlacement)[keyof typeof ActionColumnPlacement];\n /** Action to be invoked on click. */\n onClick: (rowContext: RowData, refreshRow?: () => void, rowMeta?: RowActionMeta) => void;\n}\n\nexport interface HierarchicalInfo {\n parentId?: string;\n materializedPathId?: string;\n targetId?: string;\n sortById?: string;\n columnId?: string;\n mode?: string;\n}\n\nconst CellAlign = {\n LEFT: 'left',\n RIGHT: 'right',\n CENTER: 'center'\n} as const;\n\n// TODO: Look into expanding the types to accept more field types.\nexport const FieldType = {\n TEXT: 'text',\n NUMBER: 'number',\n BOOLEAN: 'boolean',\n DATE_TIME: 'datetime',\n DATE: 'date',\n TIME: 'time',\n DATE_TIMELINE: 'Date',\n DATE_ONLY: 'Date only',\n // TODO: URL as a type is not needed. It can be merged with TEXT.\n URL: 'URL',\n ACTION_FIELD_TYPE: 'action',\n CUSTOM: 'custom',\n CURRENCY: 'currency',\n OBJECT: 'object'\n} as const;\n\nexport interface StyleFormat {\n /** A unique identifier for the style format. */\n id: string;\n /** The display name of the style format. */\n label: string;\n /** A collection of style properties that defines how the format will be applied. */\n config: {\n /** Background color to be applied.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n */\n backgroundColor: string;\n /**\n * Foreground (text) color to be applied.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n *\n * Optional\n */\n foregroundColor?: string;\n /**\n * An icon used as a visual indicator of the applied format.\n * Optional.\n */\n icon?: {\n /** The name of icon. */\n name: string;\n /** The color of icon.\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n */\n color: string;\n };\n };\n}\n\n// For now, conditionalFormatting is exposed for fields only. In future, for rows the fieldName can be made optional.\nexport interface ConditionalStyleFormat {\n /** The condition that determines whether this style format should be applied. */\n condition: Condition;\n /** The ID of the style format, sourced from {@link RsCoreBootArgs.styleFormats}, that will be applied if the condition is met. */\n styleFormatId: StyleFormat['id'];\n /** The {@link FieldDef.name name of the fieldDef} to which this style format is applied. */\n fieldName: FieldDef['name'];\n}\n\nexport const cellUpdateTrigger = {\n ROW_DENSITY_CHANGE: 'rowDensityChange'\n} as const;\n\nexport interface FieldDef {\n /** Actual field name in data */\n name: string;\n /** The data type of the field. */\n type: (typeof FieldType)[keyof typeof FieldType];\n /** Persistent ID of the field, typically the same as the name */\n id: string;\n /** A display name of that field */\n label: string;\n /**\n * Represents the category hierarchy of a field, if the field is nested within a parent property. The format should be an array of objects\n * where each index represents a level of the category hierarchy.\n * This structure is used to display the hierarchy of the field wherever necessary.\n * @example\n * ```json\n * [{label: 'categoryName'}]\n * ```\n */\n category?: Category[];\n /** Show {@link category} in header label. The header will be displayed in format {categoryName}.{label} where categoryName will be all the category's labels combined with .(dot) notation */\n showCategoryInHeaderLabel?: boolean;\n /** Defines Field whose value needs to be shown as HelperText e.g tooltip: 'pzDescription' field value for pyID field */\n tooltip?: string;\n /** Enable/Disable tooltip on column */\n showTooltip?: boolean;\n /** Width of the field in px */\n width?: number;\n /** Maximum width of the field in px */\n maxWidth?: number;\n /** Minimum width in pixels, field width cannot be resized below this threshold\n * @default 90\n */\n minWidth?: number;\n /** Allow filtering on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n filter?: boolean;\n /** Filter popup presents a pick list to choose values from\n * @default false\n */\n filterPickList?: boolean;\n /** Allow sorting on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n sort?: boolean;\n /** Allows sorting on load. If this property is present, then sortPriority is mandatory */\n sortDirection?: (typeof SortDirection)[keyof typeof SortDirection];\n /** Sets the priority on filed for multi sorting(1 takes highest precedence). Allows sorting on load. If this property is present, then sortDirection is mandatory */\n sortPriority?: number;\n /** Allow grouping on this field\n * @default true (except when the field type is \"object\", where it defaults to false)\n */\n grouping?: boolean;\n /** To set group order of the current field def */\n groupOrder?: number;\n /** To auto apply grouping on this field */\n grouped?: boolean;\n /**\n * Custom grouping applied when {@link grouped} is enabled. For custom grouping, the order is set to 'custom'.\n * - `TEXT_GROUPING` applies to {@link FieldType.TEXT text} fields.\n * - `RANGE_GROUPING` and `INTERVAL_GROUPING` apply to {@link FieldType.NUMBER number} and {@link FieldType.CURRENCY currency} fields.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.TABLE Table} supports all compatible custom grouping types.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} supports only {@link TextGrouping}.\n *\n * Incompatible combinations are removed during meta normalization.\n */\n customGrouping?: TextGrouping | RangeGrouping | IntervalGrouping;\n /**\n * Choose a date function {@link DateFunction} to group by when `grouped` is enabled for a date/time field.\n * Falls back to grouping by equality when undefined.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} does not support date-function grouping.\n */\n groupedDateFunction?: DateFunction;\n /**\n * Additional field configuration for the group.\n *\n * **Template support:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} does not support group additional fields.\n */\n groupedAdditionalFields?: GroupAdditionalField[];\n /** Allow resizing on this field\n * @default true\n */\n resize?: boolean;\n /** Allow reordering on this field\n * @default true\n */\n reorderFields?: boolean;\n /** Allow freezing of this field\n * @default true\n */\n freeze?: boolean;\n /** This field will resize to available excess width if set to true. Only first field definition will be honoured if configured on multiple fields. */\n fillAvailableSpace?: boolean;\n /** Force the field label and value to appear in a specific layout. If layoutMode is omitted, layout is auto.\n * Currently, only supported when {@link Meta.template template} is set to {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} or {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban}.\n */\n layoutMode?: 'stacked' | 'inline';\n /** An asterisk will be added in the table header cell right after the label signifying it is required. */\n required?: boolean;\n /** Allow show/hide of this field\n * @default true\n */\n toggle?: boolean;\n /** Field shows in the view by default. Can be set to false to toggle it in later */\n show?: boolean;\n /** Show/hide field level Header action menu\n * @default true\n */\n showMenu?: boolean;\n /** Allow aggregation on this field\n * @default false (except when the field type is \"number\"/ \"currency\", where it defaults to true)\n */\n aggregation?: boolean;\n /** Allow combining of this field with other field\n * @default true\n */\n combineColumn?: boolean;\n /** Allow customizing column label and apply formatting\n * @default true\n */\n customizeColumn?: boolean;\n /** Disable context menu at cells of this field if set to true. Context menu is shown on right mouse click in the cell\n * @default false\n */\n noContextMenu?: boolean;\n /** This property extends options provided on right click in a cell context.\n * The default one's that the Repeating structures provide out of the box\n * are 'Copy Text', and 'Filter by this' */\n contextMenuOptions?: ContextMenuOption[];\n /** Optional name of a custom component to be rendered in the header cell of the column.\n * The custom component should be provided via the render factory.\n * If not specified, the default header cell renderer will be used. */\n headerCellRenderer?: string;\n /** Name of a custom component that is made available through the render factory. Check section on cellRenderer */\n cellRenderer?: string;\n /**\n * Configure additional events that explicitly trigger this field’s cell(s) to regenerate (re-render).\n * If omitted or empty, the cell will not update automatically on these events.\n *\n * These are *explicit* triggers that require the consumer to specify them for the cell to update.\n *\n *\n * Supported triggers include:\n * - `rowDensityChange`: when the row height or density changes.\n *\n * **Caution:** Using this may cause rendering overhead as the cells will be re-generated(re-rendered).\n *\n * @examples\n * ```json\n * cellUpdateTriggers: [\"rowDensityChange\"]\n * ```\n */\n cellUpdateTriggers?: (typeof cellUpdateTrigger)[keyof typeof cellUpdateTrigger][];\n\n /** Format on the basis of this field data should be formatted. The formatter should be present in {@link RsCoreBootArgs.renderFormatterTypeMap renderFormatterTypeMap}. */\n formatter?: string;\n /** To enable autosize on this field.\n * @default true\n */\n autosize?: boolean;\n // TODO: Remove this parentPath field. Consumer should handle the corresponding logic.\n /** If a field is of type pageList, parentpath should contain the path of the parent to traverse the field. */\n parentPath?: string;\n // TODO: Remove this isPageListField field. Consumer should handle the corresponding logic.\n /** Set if the field is of type pageList */\n isPageListField?: boolean;\n /** Enable 'Hierarchical' display mode on column if hierarchicalInfo exists. */\n hierarchicalInfo?: HierarchicalInfo;\n /** Align cell to left/right/center. Values accepted: 'left', 'right', 'center' */\n cellAlign?: (typeof CellAlign)[keyof typeof CellAlign];\n /** Column name label in group header will be hidden when set to 'true'\n * @default false\n */\n hideGroupColumnNameLabel?: boolean;\n // TODO this is exposed to consumer but is not being considered. Check this.\n /** Filter options for various field type\n * @example\n * [\n {\n value: 'Equals',\n key: 'equals'\n },\n {\n value: 'Not equals',\n key: 'notEquals'\n },\n {\n value: 'After',\n key: 'greaterThan'\n },\n {\n value: 'Before',\n key: 'lessThan'\n },\n {\n value: 'On or after',\n key: 'greaterThanEquals'\n },\n {\n value: 'On or before',\n key: 'lessThanEquals'\n }\n ]\n */\n filterParams?: {\n value: string;\n key: string;\n }[];\n /** To enable inline editing for a field. */\n editable?: boolean;\n /** A read only extra info related to field can be preserved in meta.\\\n * This will never be manipulated by repeating structure, it will be passed as it is to {@link FieldDef.cellRenderer cellRenderer} as props as it is. */\n meta?: { [key: string | number | symbol]: any };\n /** A read only extra info related to field can be preserved in this.\\\n * This will never be manipulated by repeating structure, it will be passed as it is to {@link FieldDef.cellRenderer cellRenderer} as props as it is. */\n customObject?: { [key: string | number | symbol]: any };\n /** Indicates if the field is used as rowHeader for A11y of the row */\n isRowHeader?: boolean;\n /**\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * A unique idHash.\n */\n idHash?: number;\n /** Indicates if this field is aggregated. If set to true, then first option from {@link Meta.aggregationType} will be picked as aggregation type for this field. */\n aggregated?: boolean;\n /** An array of conditional formats applied to the fieldDef.\n *\n * **Template support:** {@link REPEATING_STRUCTURE_TEMPLATES.TABLE Table} only.\n *\n * @property {Condition} condition - The condition that determines whether the format should be applied.\n * @property {ConditionalStyleFormat} styleFormat - The {@link StyleFormat.id style format id} from `field` {@link RsCoreBootArgs.styleFormats styleFormats} applied to the cell if the condition evaluates to true.\n *\n * **Note**: *If the data satisfies multiple conditional style formats, the first matching conditional format will be used.*\n * */\n conditionalStyleFormats?: OmitStrict<ConditionalStyleFormat, 'fieldName'>[];\n /** Disables formatting on the field using {@link RsCoreBootArgs.renderFormatterTypeMap renderFormatterTypeMap}\n * @default false\n */\n disableFormatting?: boolean;\n /**\n * Formatter options for this specific field.\n * If the field level formatters are provided then they will be given priority than RS level {@link RsCoreBootArgs.renderFormatterTypeMap formatters}.\n */\n formatters?: RenderFormatterType[];\n /** Indicates if the field is searchable via global search.\n * @default false (except when the field type is \"text\", where it defaults to true)\n */\n searchable?: boolean;\n /**\n * Optional field whose property is used when matching this field against a global search query.\n */\n searchProperty?: FieldReference;\n}\n\nexport const ROW_DENSITY = {\n SHORT: '1',\n MEDIUM: '2',\n TALL: '3',\n WRAP_CONTENT: '4'\n} as const;\n\ntype DisplayDensity = {\n id: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY];\n name: string;\n};\n\nexport const REPEATING_STRUCTURE_TEMPLATES = {\n TABLE: 'Table',\n GALLERY: 'Gallery',\n TIMELINE: 'Timeline',\n MAP: 'Map',\n KANBAN: 'Kanban'\n} as const;\n\nconst SELECTION_MODE = {\n SINGLE: 'single',\n MULTI: 'multi',\n MULTI_ON_HOVER: 'multi_on_hover'\n} as const;\n\ntype TimelineFieldDef = Partial<Pick<FieldDef, 'name' | 'label' | 'type' | 'meta'>>;\n\ntype DisplayFeature = {\n filter?: boolean;\n grouping?: boolean;\n sort?: boolean;\n};\n\n/** Represents a constant string value. */\nexport type ConstantValue = { value: string };\n\n/** Represents a reference to a field from {@link Meta.fieldDefs fieldDefs} by its {@link FieldDef.id id}. */\nexport type FieldReference = { field: FieldDef['id'] };\n\n/** Placement options for hero image */\nexport type HeroImagePlacement = 'left' | 'right' | 'top';\n\n/**\n * Configuration for a hero image displayed on gallery cards.\n *\n * @example\n * ```json\n * {\n * \"source\": { \"field\": \"ImageURL\" },\n * \"altText\": { \"field\": \"ImageDescription\" },\n * \"placement\": \"left\",\n * \"size\": \"flexible\"\n * }\n */\nexport type HeroImage = {\n /** Image source URL. Accepts `{field: 'fieldId'}` to reference a {@link FieldDef field} to get URL. */\n source: FieldReference;\n /** Alternative text for the image. Accepts either `{field: 'fieldId'}` to reference a {@link FieldDef field} or `{value: 'text'}` for a constant value. */\n altText?: ConstantValue | FieldReference;\n /**\n * Position of the hero image relative to card content.\n * @default 'left'\n */\n placement?: HeroImagePlacement;\n /**\n * Size of the hero image.\n * @default 'flexible'\n */\n size?: ImageSize;\n};\n\n/** Possible layout modes for the Gallery template. Extensible for future layouts (e.g. 'board'). */\nexport type GalleryLayout = 'cardgrid' | 'cardlist';\n\nexport interface CardTile {\n /** Field id whose value is the foreground colour (hex string). */\n foregroundColor: FieldReference;\n /** Field id whose value is the background CSS value (e.g. a linear-gradient string). */\n backgroundColor: FieldReference;\n /** Field id whose value is the registered icon name for the tile. */\n iconName?: FieldReference;\n /** Field id whose value is the text content for the tile. */\n text?: FieldReference;\n /**\n * Position of the tile relative to card content.\n * @default 'left'\n */\n placement?: HeroImagePlacement;\n /**\n * Size of the tile.\n * @default 'flexible'\n */\n size?: ImageSize;\n}\n\nexport interface CardConfig {\n /** Header of the card. Accepts `{field: 'fieldId'}` to reference a {@link FieldDef field}. */\n header?: FieldReference;\n /** Subheadings of the card. Accepts an array of `{field: 'fieldId'}` references to {@link FieldDef fields}. */\n subHeadings?: FieldReference[];\n /** Configuration for the hero image displayed on cards. */\n heroImage?: HeroImage;\n /** Configuration for a coloured tile shown in place of a hero image. */\n tile?: CardTile;\n /** Show field labels on cards.\n * @default true\n */\n showFieldLabels?: boolean;\n /** Optional render callback invoked for each card to produce footer content. */\n renderCardFooter?: (rowData: RowData) => ReactNode;\n}\n\n/** Template-neutral Master Detail metadata. */\nexport interface MasterDetailConfig {\n viewName: string;\n /** Icon displayed for each Master Detail selection in the configured table. */\n icon?: IconName;\n}\n\nexport interface GalleryConfig extends CardConfig {\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n header?: FieldReference;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n subHeadings?: FieldReference[];\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n heroImage?: HeroImage;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n tile?: CardTile;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n showFieldLabels?: boolean;\n /**\n * @deprecated Use {@link Meta.cardConfig cardConfig}.\n */\n renderCardFooter?: (rowData: RowData) => ReactNode;\n /** Optional click handler called when a gallery card is clicked. Receives the raw row data. */\n onCardClick?: (rowData: RowData) => void;\n /** Layout mode for the gallery.\n * - `'cardgrid'` - multi-column grid layout (default)\n * - `'cardlist'` - single-column list layout\n * @default 'cardgrid'\n */\n layout?: GalleryLayout;\n /** Shows the toolbar toggle for switching between card grid and card list layouts.\n * @default true\n */\n showLayoutToggle?: boolean;\n}\n\n/**\n * State keys a preset can carry in {@link Meta.presetState}: the state that cannot be reconstructed from\n * `fieldDefs` and the other Meta properties. This list is the single contract between RS Core (which\n * accepts only these keys at runtime) and consumers (which build `presetState` from them).\n */\nexport const PRESET_STATE_KEYS = [\n 'allGroupsExpanded',\n 'aggregationInfo',\n 'colOrder',\n 'columnAlias',\n 'columnWidths',\n 'customFields',\n 'externalState',\n 'freezeColumns',\n 'groups',\n 'renderFormatter',\n 'version',\n 'visibleColumns'\n] as const satisfies readonly (keyof State)[];\n\n/** Initial state of a preset, see {@link Meta.presetState}. */\nexport type PresetState = Partial<Pick<State, (typeof PRESET_STATE_KEYS)[number]>>;\n\n/** Meta input to RS */\nexport interface Meta {\n /** Metadata for fields */\n fieldDefs: FieldDef[];\n /** itemKey for data identification */\n itemKey: string;\n /** Preset id of the current preset/personalization. This will be used to uniquely identify the preset on which the current view is dervied from */\n id: string;\n /** Preset name of the current preset/personalization. This will be displayed to end user */\n name: string;\n /**\n * Id of the preset that is active on first render, instead of the personalization default (which does\n * not change). Read from the base meta only; ignored when it matches no preset.\n */\n initialPresetId?: string;\n /**\n * Initial state for an unpersonalized preset that cannot be reconstructed from `fieldDefs` and the\n * other Meta properties (e.g. column aliases, frozen columns, custom columns, custom grouping,\n * column widths and order, exact aggregation choices, external filter values). Everything Meta can\n * express (field visibility, sorting, filter, conditional styles, header icons, row height, gallery\n * layout) is hydrated from Meta itself and is intentionally not accepted here. `visibleColumns` is\n * accepted only because custom columns have no field definition to carry their visibility.\n * Only the keys in {@link PRESET_STATE_KEYS} are accepted. They override values reconstructed from\n * fieldDefs. `externalState` (keyed like {@link externalFilters}) makes external filters known\n * before the first data fetch. Preset identity, template and personalization remain controlled by\n * Meta and the current component state rather than this property.\n */\n presetState?: PresetState;\n /** Array of fields(extra) that should be included in the query prepared for different api's in {@link ApiContext}.\n * `lists-client-api` package implicitly appends this in `select` field while preparing the query.\n */\n patchQueryFields?: string[];\n /** Array denoting sort operation order.\n *\n * @default\n * ```json\n * ['asc', 'desc', null]\n * ```\n */\n sortOrder?: (string | null)[];\n /**\n * A collection of row density options that users can select to adjust the height of rows based on the chosen density.\n *\n * @default\n * ```json\n * [\n * { \"name\": \"Short\", \"id\": \"1\" },\n * { \"name\": \"Medium\", \"id\": \"2\" },\n * { \"name\": \"Tall\", \"id\": \"3\" },\n * { \"name\": \"Full content\", \"id\": \"4\" }\n * ]\n * ```\n */\n displayDensity?: DisplayDensity[];\n /**\n * Configuration for the height of the view.\n *\n * @default\n * ```json\n * {\n * minHeight: 600\n * }\n * ```\n */\n height?: {\n /** The minimum height in pixels for the view or 'auto' */\n minHeight?: number;\n /** Specifies an HTML element or a string query selector to which the view's height will be adjusted. If this property is used, the `height` property will be ignored */\n fitHeightToElement?: HTMLElement | string;\n /** Specifies an explicit height for the view. If set, the `fitHeightToElement` property will be ignored.\n * - `number` — explicit pixel height.\n * - CSS variable (e.g. `'--my-height'`) — height driven by a CSS custom property.\n * This takes precedence over `basicMode` height behavior.\n */\n height?: number | CSSVariable;\n /** A height adjustment value in pixels */\n deltaAdjustment?: number;\n /** If true, the height will be adjusted responsively on window resize, but only if `fitHeightToElement` is provided. */\n autoSize?: boolean;\n /** The maximum height for the view, specified in pixels or as a CSS variable (e.g., `--view-height`) */\n maxHeight?: number | string;\n /** CSS variable that defines the minimum threshold to be used in `maxHeight` calculations. If not provided, a default value of `25rem` will be used.\n *\n * Caution: Use carefully as setting this value too low can introduce usability issues on smaller screens.\n */\n maxHeightMinValueVariable?: CSSVariable;\n };\n /** Allow show/hide of fields\n *\n * @default true\n */\n toggleFieldVisibility?: boolean;\n /** Allow grouping on fields\n *\n * @default true\n */\n grouping?: boolean;\n /**\n * Determines the view of a Repeating Structure.\n *\n * @remarks\n * **Template-specific constraints:**\n * - {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} and {@link REPEATING_STRUCTURE_TEMPLATES.MAP Map} do not support grouping.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.TIMELINE Timeline} supports only one grouping level.\n * - {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban} renders only the level-0 group as board lanes.\n * Configure the lane field through {@link Meta.fieldDefs fieldDefs} by setting\n * {@link FieldDef.grouping grouping} and {@link FieldDef.grouped grouped} to `true`,\n * with {@link FieldDef.groupOrder groupOrder} set to `0`.\n *\n * @default 'Table'\n */\n template?: (typeof REPEATING_STRUCTURE_TEMPLATES)[keyof typeof REPEATING_STRUCTURE_TEMPLATES];\n /** Configuration for card-based templates. Only applicable when {@link Meta.template template} is set to {@link REPEATING_STRUCTURE_TEMPLATES.GALLERY Gallery} or {@link REPEATING_STRUCTURE_TEMPLATES.KANBAN Kanban}. */\n cardConfig?: CardConfig;\n /** Allow editing on fields and if enabled then row actions are also enabled.\n *\n * Backward-compatible values:\n * - `boolean`: data- use case.\n * - {@link ActionConfig}: explicit edit behavior.\n *\n * @default false\n */\n editing?: boolean | ActionConfig;\n /** Allow deleting of rows.\n *\n * Backward-compatible values:\n * - `boolean`: data- use case.\n * - {@link ActionConfig}: explicit delete behavior.\n */\n deleting?: boolean | ActionConfig;\n /** Allow personalization views\n * @default true\n */\n personalization?: boolean;\n /** Enable app default personalization options in Toolbar action menu.\n * If a personalization is set as App Default then that will be used as default personalization in repeating structures.\n * @default false\n * */\n enableAppDefault?: boolean;\n /**\n * Name to be shown for non personalized view.\n * @default 'Initial view'\n */\n nonPersonalizationViewName?: string;\n /** Allow field (column) reordering through a drag and drop action.\n * @default true\n */\n reorderFields?: boolean;\n /** Allow row reordering through a drag and drop action.\n * @default false\n */\n reorderItems?: boolean;\n /**\n * Allow to add a column for drag handle\n * @default false\n * @deprecated Use {@link rowReorderField}\n */\n dragHandle?: boolean;\n /**\n * Enables row reorder column. By default if enabled, it will be visible. To override the default behavior set show as false.\n */\n rowReorderField?: {\n show: boolean;\n };\n /**\n * Brings in a search widget to allow searching across all text type fields.\n * @default true\n */\n globalSearch?: boolean;\n /** Display toolbar on the view.\n * @default true\n */\n toolbar?: boolean;\n /** Display count in toolbar.\n * @default true\n */\n showCount?: boolean;\n /**\n * Row density id value from the \"displayDensity\" options prop above.\n * @default {@link ROW_DENSITY.SHORT}\n */\n defaultRowHeight?: (typeof ROW_DENSITY)[keyof typeof ROW_DENSITY];\n /**\n * Renders the 'Bulk actions' button in the table toolbar, which gets enabled on row selection.\n * Works only if the template is not set to timeline.\n * @default false\n */\n allowBulkActions?: boolean;\n /**\n * Denotes the page size being passed in the case of rest backed data page\n * #JSDOC\n */\n pageSize?: number;\n /** Enables date-functions like MONTHS/WEEKS/... during Grouping and Filtering. ([Object structure](https://git.pega.io/projects/PS/repos/cosmos/browse/packages/cosmos-condition-builder/src/components/ConditionBuilder/ConditionBuilder.types.ts?until=dfcf607851276bfeb877e9fb2c8f55d4396fd8b7&untilPath=packages%2Fcosmos-condition-builder%2Fsrc%2Fcomponents%2FConditionBuilder%2FConditionBuilder.types.ts#79-85)) */\n dateFunctions?: DateFunctionsByType;\n /** Enabled Relative Dates, such as \"Last 7 days\" (Or) \"Current Year\", in filtering for the DateTime or Date_Only values\".\n * @default false\n */\n relativeDates?: boolean;\n /** Display footer on the view.\n * @default true\n */\n footer?: boolean;\n /**\n * Templates for dynamic fields (or) columns which are used to combine two columns with a template.\n * @default\n * ```json\n * [\n * { name: 'Comma separated', value: 'comma',selected: true },\n * { name: 'Space separated', value: 'space' },\n * { name: 'Multi line', value: 'multiline' },\n * { name: 'Forward slash', value: 'forwardslash' }\n * ]\n * ```\n */\n dynamicFieldTemplates?: {\n name: string;\n value: string;\n selected?: boolean;\n }[];\n /** Repeating Structure Title\n * @default '<label not set>'\n */\n title?: string;\n /**\n * Override the heading tag used for the {@link Meta.title title} title in the toolbar.\n * @default 'h2'\n */\n headingTag?: HeadingTag;\n /**\n * Show the repeating structure title.\n * @default true\n */\n showTitle?: boolean;\n /** Repeating Structure Icon\n * @default 'picture'\n */\n icon?: string;\n /** Display Header Bar\n * @default false\n */\n headerBar?: boolean;\n /**\n * Display Respective Header Icons at field labels based on type\n * @default false\n */\n showHeaderIcons?: boolean;\n /** Indicates if freezing is allowed on Fields. */\n freezeFields?: boolean;\n /**\n * list of available static actions for an editable table with following properties\n * @example\n * ```json\n * [\n * {\n * text: 'Open in a new tab',\n * id: 'row-new-tab',\n * onClick: () => {}\n * }\n * ]\n * ```\n * @default\n * []\n */\n rowActions?: RowAction[];\n /** Decides type of row selection mode (radio for single/ checkbox for multi) possible values : single / multi / multi-on-hover */\n selectionMode?: (typeof SELECTION_MODE)[keyof typeof SELECTION_MODE];\n /** Displays select-all checkbox if selectionMode is multi-on-hover and the records count is not greater than threshold */\n selectionCountThreshold?: number;\n /** To Disable/Enable selection of rows */\n disableSelectionOnLoad?: boolean;\n /** To show asterisk(*) symbol on table header in case of Data Reference/Embedded views. (Note: This works perfectly if the personalization is off.) */\n requiredOnLoad?: boolean;\n /**\n * List of available static actions at table level (shown in toolbar/ headerbar) with following properties\n * [{ text: 'Add', tooltip: 'Add story', id: 'Add', onClick: () => {}}]\n */\n toolbarActions?: {\n text: string;\n id: string;\n onClick: () => void;\n tooltip: string;\n }[];\n /** Allow row reordering through a drag and drop action.\n * default value: false\n */\n moveListRecords?: boolean;\n\n /** Allow end user to refresh data of the repeating structures. Enabling this will show up `Refresh` action in repeating structures toolbar.\n * @default false\n */\n allowRefresh?: boolean;\n /** Allow switching between Table and Gallery templates at runtime via the toolbar.\n * Set to `false` for embedded tables where template switching is not supported.\n * @default true\n */\n allowSwitchTemplate?: boolean;\n\n /** The height of repeating structure is calculated on this parameter if provided. */\n numberOfRows?: number;\n /** Display views of repeating structures with full or condensed toolbar.\n * @default false\n * Default shows full toolbar.\n */\n basicMode?: boolean;\n /** Timezone which is passed to formatter\n * @default 'America/New_York'\n */\n timezone?: string;\n /** Locale which is passed to formatter function\n * @default 'en-US'\n */\n locale?: string;\n timelineFields?: {\n /** Timeline template title for display */\n title?: TimelineFieldDef;\n /** Timeline template date for display */\n date?: TimelineFieldDef;\n /** Timeline template status for display */\n status?: TimelineFieldDef & { getCustomContent?: (row: Row) => StatusProps };\n /** Timeline template icon for display */\n icon?: TimelineFieldDef;\n /** Timeline template content for display */\n content?: TimelineFieldDef;\n };\n /** Map template field ids for display */\n mapFieldIds?: {\n /** Map template location field id for display */\n location?: FieldDef['id'];\n /** Map template label field id for display */\n label?: FieldDef['id'];\n /** Map template content field id for display */\n content?: FieldDef['id'];\n };\n /**\n * Gallery-specific configuration. Card-content properties remain supported for backward\n * compatibility; use {@link Meta.cardConfig cardConfig} for new integrations.\n */\n galleryConfig?: GalleryConfig;\n // TODO: Narrow this type to a union of the known dx keys: `'PromotedFilters' | 'SEARCH_AND_SELECT_AS_EXTERNAL_FILTERS' | 'ADVANCED_SEARCH_AND_SELECT_AS_EXTERNAL_FILTERS'`.\n /** A unique key for injectable filters component.\n * This key will be sent to {@link RsCoreBootArgs.renderFactory renderFactory} as 'type' to get a renderer for the external filters.\n * The renderer will be shown between Repeating structures body and repeating structures toolbar.\n * This key should be used in {@link State.externalState externalState} to populate state related to externalFilters.\n */\n externalFilters?: string;\n /** This key is used to show the 'Import Data' action in the repeating structures toolbar. It will only work for Launchpad.\n * On click, it will call {@link ApiContext.importCSVData importCSVData} open a modal allowing the user to upload a file.\n */\n showImportDataOption?: boolean;\n /** This key is used to show 'Export to Excel' action in repeating structure toolbar.\n * On click of it, {@link ApiContext.exportData exportData} api is called to export repeating structures data into excel file.\n * Can be a callback, evaluated on every toolbar render with the current meta and state, to show the action conditionally. */\n showExportToExcelOption?: boolean | ((meta: Meta, state: State) => boolean);\n /** This key is used to show 'Export to CSV' action in repeating structure toolbar.\n * On click of it, {@link ApiContext.exportDataToCSV exportDataToCSV} api is called to export repeating structures data into CSV file. */\n showExportToCSVOption?: boolean;\n /** To enable 'Freeze columns' action in toolbar action menu. This action triggers freezing of columns.This toolbar action considers {@link FieldDef.freeze freeze} key in FieldDef too.\n * @default true\n */\n // TODO: meta.freezeFields and meta.enableFreezeColumns are checking the same thing. Evaluate if one can be removed.\n enableFreezeColumns?: boolean;\n /** To enable 'Auto size columns' action in toolbar action menu. This action triggers auto size of columns.\n * @default true\n */\n autoSizeColumns?: boolean;\n /** To enable 'Query info' action in toolbar action menu. This action shows query information.\n * @default false\n */\n showQueryInfo?: boolean;\n /** To enable 'Reset column widths' action in toolbar action menu. This action triggers reset of columns width to its default state.\n * @default true\n */\n resetColumnWidths?: boolean;\n /** To enable 'Row density' action in toolbar action menu. This action triggers a popover menu item to select row density.This toolbar action considers {@link Meta.displayDensity displayDensity} key in Meta too.\n * @default true\n */\n rowDensity?: boolean;\n /** Shows the row wrap toggle action in the toolbar.\n * Applicable only when {@link Meta.template template} is set to 'Table'.\n * @default true\n */\n showWrapAction?: boolean;\n /** To show/hide filter,sort,group action buttons from end user.\\\n * **Note**: Above features will still work, it is just not available to end user to trigger.\n * @default\n * ```json\n * {\n * filter: true,\n * grouping: true,\n * sort: true\n * }\n * ```\n */\n displayFeatures?: DisplayFeature;\n /** Enables error column. The column will be visible when dataErrors are present in {@link State.errors errors}.\n * @default false\n * @deprecated Use {@link rowErrorField}\n */\n showErrorField?: boolean;\n /**\n * Enables error column. By default if enabled, it will be hidden. To override the default behavior set show as true.\n * The column will be visible when dataErrors are present in {@link State.errors errors}.\n */\n rowErrorField?: {\n show: boolean;\n };\n /** Id of the custom renderer that should be used to display customized columns cells. */\n customFieldRenderer?: string;\n /** Id of the custom renderer that should be used to display header cells. */\n customHeaderRenderer?: string;\n /**\n * @deprecated Provide the exact fieldDef configuration in the {@link FieldDef}.\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * The default config of the FieldDef. This is used to normalize each {@link FieldDef} properties with its default value.\n */\n defaultFieldDef?: OmitStrict<FieldDef, 'name' | 'type' | 'id' | 'label'>;\n /**\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * A set of comparator map used for filter operation on columns. */\n comparatorMap?: FilterConfig['comparatorMap'];\n /**\n * @deprecated Use {@link Meta.editing editing} property\n * @private\n * This is for internal purpose only. Value for this will not be considered.\n *\n * Indicates if editing is enabled on Repeating structures.\n */\n editable?: boolean;\n /** A set of aggregation options available for a column on which the data can be aggregated.\n *\n * @default\n * ```json\n * {\n * number: ['Sum', 'Min', 'Max', 'Avg']\n * }\n * ```\n */\n aggregateOptions?: {\n [fieldType: string]: AggregationType[];\n };\n /** An optional change action that will be called whenever the personalization is switched. */\n personalizationChangeAction?: () => void;\n /** Predefined filters that will be applied on load of repeating structures. */\n filterExpression?: Condition;\n /**\n * Configures a detail region for a selected Table item. Its absence disables Master Detail.\n * This is currently supported only when {@link Meta.template template} is set to\n * {@link REPEATING_STRUCTURE_TEMPLATES.TABLE Table}; it is removed during metadata\n * normalization for other templates.\n *\n */\n masterDetail?: MasterDetailConfig;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/lists-core",
3
- "version": "10.0.0-build.10.3",
3
+ "version": "10.0.0-build.11.0",
4
4
  "description": "Core headless UI library that the users can use to write their own UI and create repeating structures like table, gallery, timeline etc.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Pegasystems",
@@ -14,8 +14,8 @@
14
14
  "build": "tsc -b tsconfig.build.json"
15
15
  },
16
16
  "dependencies": {
17
- "@pega/cosmos-react-condition-builder": "10.0.0-build.10.3",
18
- "@pega/cosmos-react-core": "10.0.0-build.10.3",
17
+ "@pega/cosmos-react-condition-builder": "10.0.0-build.11.0",
18
+ "@pega/cosmos-react-core": "10.0.0-build.11.0",
19
19
  "@types/lodash-es": "^4.17.12",
20
20
  "dayjs": "^1.11.13",
21
21
  "fast-deep-equal": "^3.1.3",