pict-section-recordset 1.0.28 → 1.0.30

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.
Files changed (24) hide show
  1. package/package.json +3 -3
  2. package/source/providers/RecordSet-RecordProvider-MeadowEndpoints.js +2 -2
  3. package/source/templates/Pict-Template-FilterInstanceViews.js +1 -1
  4. package/source/views/RecordSet-Filters.js +39 -3
  5. package/source/views/filters/RecordSet-Filter-Base.js +1 -1
  6. package/source/views/filters/RecordSet-Filter-DateMatch.js +1 -1
  7. package/source/views/filters/RecordSet-Filter-DateRange.js +1 -1
  8. package/source/views/filters/RecordSet-Filter-ExternalJoinDateMatch.js +1 -1
  9. package/source/views/filters/RecordSet-Filter-ExternalJoinDateRange.js +1 -1
  10. package/source/views/filters/RecordSet-Filter-ExternalJoinNumericMatch.js +1 -1
  11. package/source/views/filters/RecordSet-Filter-ExternalJoinNumericRange.js +1 -1
  12. package/source/views/filters/RecordSet-Filter-ExternalJoinStringMatch.js +1 -1
  13. package/source/views/filters/RecordSet-Filter-ExternalJoinStringRange.js +1 -1
  14. package/source/views/filters/RecordSet-Filter-InternalJoinDateMatch.js +1 -1
  15. package/source/views/filters/RecordSet-Filter-InternalJoinDateRange.js +1 -1
  16. package/source/views/filters/RecordSet-Filter-InternalJoinNumericMatch.js +1 -1
  17. package/source/views/filters/RecordSet-Filter-InternalJoinNumericRange.js +1 -1
  18. package/source/views/filters/RecordSet-Filter-InternalJoinStringMatch.js +1 -1
  19. package/source/views/filters/RecordSet-Filter-InternalJoinStringRange.js +1 -1
  20. package/source/views/filters/RecordSet-Filter-NumericMatch.js +1 -1
  21. package/source/views/filters/RecordSet-Filter-NumericRange.js +1 -1
  22. package/source/views/filters/RecordSet-Filter-StringMatch.js +1 -1
  23. package/source/views/filters/RecordSet-Filter-StringRange.js +1 -1
  24. package/types/views/RecordSet-Filters.d.ts.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pict-section-recordset",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
4
4
  "description": "Pict dynamic record set management views",
5
5
  "main": "source/Pict-Section-RecordSet.js",
6
6
  "directories": {
@@ -33,7 +33,7 @@
33
33
  "browser-env": "^3.3.0",
34
34
  "eslint": "^9.28.0",
35
35
  "jquery": "^3.7.1",
36
- "pict": "^1.0.288",
36
+ "pict": "^1.0.292",
37
37
  "pict-application": "^1.0.27",
38
38
  "pict-service-commandlineutility": "^1.0.15",
39
39
  "quackage": "^1.0.42",
@@ -43,7 +43,7 @@
43
43
  "fable-serviceproviderbase": "^3.0.15",
44
44
  "pict-provider": "^1.0.6",
45
45
  "pict-router": "^1.0.4",
46
- "pict-section-form": "^1.0.106",
46
+ "pict-section-form": "^1.0.107",
47
47
  "pict-template": "^1.0.12",
48
48
  "pict-view": "^1.0.62"
49
49
  },
@@ -489,8 +489,8 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
489
489
  break;
490
490
  case 'boolean': //TODO: we didn't add filters for this - they are just numeric but it's weird for the user, maybe we should add views for this that account for the difference
491
491
  case 'integer':
492
- tmpFieldFilterSchema.AvailableClauses.push({ FilterKey: tmpSchemaField, ClauseKey: `${tmpSchemaField}_Match_Exact`, DisplayName: `${tmpFieldHumanName} Exact Match`, Type: 'NumberMatch', FilterByColumn: tmpSchemaField, ExactMatch: true , Ordinal: tmpFieldFilterSchema.AvailableClauses.length + 1 });
493
- tmpFieldFilterSchema.AvailableClauses.push({ FilterKey: tmpSchemaField, ClauseKey: `${tmpSchemaField}_Match_Fuzzy`, DisplayName: `${tmpFieldHumanName} Partial Match`, Type: 'NumberMatch', FilterByColumn: tmpSchemaField, ExactMatch: false , Ordinal: tmpFieldFilterSchema.AvailableClauses.length + 1 });
492
+ tmpFieldFilterSchema.AvailableClauses.push({ FilterKey: tmpSchemaField, ClauseKey: `${tmpSchemaField}_Match_Exact`, DisplayName: `${tmpFieldHumanName} Exact Match`, Type: 'NumericMatch', FilterByColumn: tmpSchemaField, ExactMatch: true , Ordinal: tmpFieldFilterSchema.AvailableClauses.length + 1 });
493
+ tmpFieldFilterSchema.AvailableClauses.push({ FilterKey: tmpSchemaField, ClauseKey: `${tmpSchemaField}_Match_Fuzzy`, DisplayName: `${tmpFieldHumanName} Partial Match`, Type: 'NumericMatch', FilterByColumn: tmpSchemaField, ExactMatch: false , Ordinal: tmpFieldFilterSchema.AvailableClauses.length + 1 });
494
494
  tmpFieldFilterSchema.AvailableClauses.push({ FilterKey: tmpSchemaField, ClauseKey: `${tmpSchemaField}_Range`, DisplayName: `${tmpFieldHumanName} in Range`, Type: 'NumberRange', FilterByColumn: tmpSchemaField , Ordinal: tmpFieldFilterSchema.AvailableClauses.length + 1 });
495
495
  break;
496
496
  default:
@@ -32,7 +32,7 @@ class PictTemplateFilterInstanceViewInstruction extends libPictTemplate
32
32
 
33
33
  _getViewForFilterClauses(pClauses)
34
34
  {
35
- const tmpViewHash =`PSRS-FilterType-${pClauses.Type}`;
35
+ const tmpViewHash =`PRSP-FilterType-${pClauses.Type}`;
36
36
  /** @type {import('../views/filters/RecordSet-Filter-Base.js')} */
37
37
  let tmpView = this.pict.views[tmpViewHash];
38
38
  if (!tmpView)
@@ -82,7 +82,7 @@ const _DEFAULT_CONFIGURATION_SUBSET_Filter =
82
82
  Template: /*html*/`
83
83
  <!-- DefaultPackage pict view template: [PRSP-SUBSET-Filters-Template-AddFilter-Dropdown] -->
84
84
  <div>
85
- <select onchange="event.preventDefault(); _Pict.views['PRSP-Filters'].render('PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-AddFilterClauseDropdown', undefined,
85
+ <select id="PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-Select" onchange="event.preventDefault(); _Pict.views['PRSP-Filters'].render('PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-AddFilterClauseDropdown', undefined,
86
86
  {
87
87
  RecordSet: event.target.querySelector('option:checked').getAttribute('data-i-recordset'),
88
88
  FilterKey: event.target.querySelector('option:checked').getAttribute('data-i-filter-key'),
@@ -100,7 +100,7 @@ const _DEFAULT_CONFIGURATION_SUBSET_Filter =
100
100
  Hash: 'PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-AddFilterClauseDropdown',
101
101
  Template: /*html*/`
102
102
  <!-- DefaultPackage pict view template: [PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-AddFilterClauseDropdown] -->
103
- <select>
103
+ <select id="PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-AddFilterClauseDropdown-Select">
104
104
  {~TS:PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-Entry:Record.AvailableClauses~}
105
105
  </select>
106
106
  <button type="button" id="PRSP_Filter_Button_ConfirmAdd" onclick="_Pict.views['PRSP-Filters'].addFilter(event, '{~D:Record.RecordSet~}', '{~D:Record.ViewContext~}',
@@ -206,6 +206,13 @@ class ViewRecordSetSUBSETFilters extends libPictView
206
206
  this.pict.addView(tmpViewConfiguration.ViewHash, tmpViewConfiguration, libPictViewDynamicForm);
207
207
  this.pict.views[tmpDynamicInputViewSection.ViewHash].viewMarshalDestination = 'Bundle';
208
208
  }
209
+ for (const tmpView of Object.values(require('./filters')))
210
+ {
211
+ if (tmpView.default_configuration.ViewIdentifier && !this.pict.views[tmpView.default_configuration.ViewIdentifier])
212
+ {
213
+ this.pict.addView(tmpView.default_configuration.ViewIdentifier, {}, tmpView);
214
+ }
215
+ }
209
216
  this.chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
210
217
 
211
218
  // Use a lookup table to find the index.
@@ -382,7 +389,36 @@ class ViewRecordSetSUBSETFilters extends libPictView
382
389
  //FIXME: since this is rendering to the DOM indirectly, can't marshal right after render; need to fix this better, if this even works
383
390
  setTimeout(() =>
384
391
  {
385
- this.onMarshalToView();
392
+ if (!pRecord)
393
+ {
394
+ pRecord = {};
395
+ }
396
+ if (!Array.isArray(pRecord.AvailableClauses))
397
+ {
398
+ const tmpSelect = document.getElementById('PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-Select');
399
+ if (tmpSelect)
400
+ {
401
+ const tmpActiveOption = document.getElementById('PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-Select')?.querySelector('option:checked')
402
+ const tmpRecordSet = tmpActiveOption?.getAttribute('data-i-recordset');
403
+ const tmpFilterKey = tmpActiveOption?.getAttribute('data-i-filter-key');
404
+ if (tmpRecordSet && tmpFilterKey)
405
+ {
406
+ const tmpProvider = this.pict.providers[`RSP-Provider-${tmpRecordSet}`];
407
+ if (tmpProvider)
408
+ {
409
+ pRecord.AvailableClauses = tmpProvider.getFilterClauseSchemaForKey(tmpFilterKey).AvailableClauses;
410
+ if (Array.isArray(pRecord.AvailableClauses))
411
+ {
412
+ this.render('PRSP-SUBSET-Filters-Template-AddFilter-Dropdown-AddFilterClauseDropdown', undefined, pRecord);
413
+ }
414
+ }
415
+ }
416
+ }
417
+ }
418
+ setTimeout(() =>
419
+ {
420
+ this.onMarshalToView();
421
+ }, 1);
386
422
  }, 1);
387
423
  return super.onAfterRender(pRenderable, pRenderDestinationAddress, pRecord, pContent);
388
424
  }
@@ -3,7 +3,7 @@ const libPictView = require('pict-view');
3
3
  /** @type {Record<string, any>} */
4
4
  const _DEFAULT_CONFIGURATION_SUBSET_Filter =
5
5
  {
6
- ViewIdentifier: 'PRSP-SUBSET-Filter-Base',
6
+ ViewIdentifier: 'PRSP-FilterType-Base',
7
7
 
8
8
  DefaultTemplateRecordAddress: false,
9
9
 
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBase = require('./RecordSet-Filter-Base');
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_DateMatch =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-DateMatch',
7
+ ViewIdentifier: 'PRSP-FilterType-DateMatch',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBaseRange = require('./RecordSet-Filter-Base-Rang
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_DateRange =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-DateRange',
7
+ ViewIdentifier: 'PRSP-FilterType-DateRange',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBase = require('./RecordSet-Filter-Base');
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_ExternalJoin_DateMatch =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-ExternalJoin-DateMatch',
7
+ ViewIdentifier: 'PRSP-FilterType-ExternalJoinDateMatch',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBaseRange = require('./RecordSet-Filter-Base-Rang
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_ExternalJoin_DateRange =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-ExternalJoin-DateRange',
7
+ ViewIdentifier: 'PRSP-FilterType-ExternalJoinDateRange',
8
8
 
9
9
  Templates:
10
10
  [
@@ -3,7 +3,7 @@ const ViewRecordSetSUBSETFilterBase = require('./RecordSet-Filter-Base');
3
3
 
4
4
  const _DEFAULT_CONFIGURATION_Filter_ExternalJoin_NumericMatch =
5
5
  {
6
- ViewIdentifier: 'PRSP-Filter-ExternalJoin-NumericMatch',
6
+ ViewIdentifier: 'PRSP-FilterType-ExternalJoinNumericMatch',
7
7
 
8
8
  Templates:
9
9
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBaseRange = require('./RecordSet-Filter-Base-Rang
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_ExternalJoin_NumericRange =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-ExternalJoin-NumericRange',
7
+ ViewIdentifier: 'PRSP-FilterType-ExternalJoinNumericRange',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBase = require('./RecordSet-Filter-Base.js');
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_ExternalJoinStringMatch =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-ExternalJoinStringMatch',
7
+ ViewIdentifier: 'PRSP-FilterType-ExternalJoinStringMatch',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBaseRange = require('./RecordSet-Filter-Base-Rang
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_ExternalJoin_StringRange =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-ExternalJoin-StringRange',
7
+ ViewIdentifier: 'PRSP-FilterType-ExternalJoinStringRange',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBase = require('./RecordSet-Filter-Base');
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_InternalJoin_DateMatch =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-InternalJoin-DateMatch',
7
+ ViewIdentifier: 'PRSP-FilterType-InternalJoinDateMatch',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBaseRange = require('./RecordSet-Filter-Base-Rang
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_InternalJoin_DateRange =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-InternalJoin-DateRange',
7
+ ViewIdentifier: 'PRSP-FilterType-InternalJoinDateRange',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBase = require('./RecordSet-Filter-Base');
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_InternalJoin_NumericMatch =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-InternalJoin-NumericMatch',
7
+ ViewIdentifier: 'PRSP-FilterType-InternalJoinNumericMatch',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBaseRange = require('./RecordSet-Filter-Base-Rang
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_InternalJoin_NumericRange =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-InternalJoin-NumericRange',
7
+ ViewIdentifier: 'PRSP-FilterType-InternalJoinNumericRange',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBase = require('./RecordSet-Filter-Base');
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_InternalJoin_StringMatch =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-InternalJoin-StringMatch',
7
+ ViewIdentifier: 'PRSP-FilterType-InternalJoinStringMatch',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBaseRange = require('./RecordSet-Filter-Base-Rang
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_InternalJoin_StringRange =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-InternalJoin-StringRange',
7
+ ViewIdentifier: 'PRSP-FilterType-InternalJoinStringRange',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBase = require('./RecordSet-Filter-Base');
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_NumericMatch =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-NumericMatch',
7
+ ViewIdentifier: 'PRSP-FilterType-NumericMatch',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBaseRange = require('./RecordSet-Filter-Base-Rang
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_NumericRange =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-NumericRange',
7
+ ViewIdentifier: 'PRSP-FilterType-NumericRange',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBase = require('./RecordSet-Filter-Base');
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_StringMatch =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-StringMatch',
7
+ ViewIdentifier: 'PRSP-FilterType-StringMatch',
8
8
 
9
9
  Templates:
10
10
  [
@@ -4,7 +4,7 @@ const ViewRecordSetSUBSETFilterBaseRange = require('./RecordSet-Filter-Base-Rang
4
4
  /** @type {Record<string, any>} */
5
5
  const _DEFAULT_CONFIGURATION_Filter_StringRange =
6
6
  {
7
- ViewIdentifier: 'PRSP-Filter-StringRange',
7
+ ViewIdentifier: 'PRSP-FilterType-StringRange',
8
8
 
9
9
  Templates:
10
10
  [
@@ -1 +1 @@
1
- {"version":3,"file":"RecordSet-Filters.d.ts","sourceRoot":"","sources":["../../source/views/RecordSet-Filters.js"],"names":[],"mappings":";AAwJA;IAEC,2DA8DC;IA1DA,kHAAkH;IAClH,MADW,GAAe,GAAG,OAAO,MAAM,CAAC,GAAG;QAAE,oBAAoB,EAAE;;;;;;SAAsC,CAAA;KAAE,CACrG;IAiDT,cAA+E;IAG/E,wCAA0E;IAU3E;;;;OAIG;IACH,qBAFa,GAAG,CAaf;IAED;;;;OAIG;IACH,mBAFa,GAAG,CAaf;IAED;;;;OAIG;IACH,qBAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAShB;IAED;;;;OAIG;IACH,0BAJW,MAAM,gBACN,MAAM,kBACN,MAAM,QA+ChB;IAED;;;;OAIG;IACH,oBAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAgBhB;IAED;;;;OAIG;IACH,0BAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAQhB;IAED,mGAMC;IAED,wCAIC;IAsCD,6DAOC;IAED;;;;OAIG;IACH,yCAJW,MAAM,GAEL,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAUvC;IAED;;;;;OAKG;IACH,iBALW,MAAM,aACN,iBAAiB,GAEhB,OAAO,CAAC,WAAW,CAAC,CAU/B;IAED;;;OAGG;IACH,sBAHW,UAAU,aACV,iBAAiB,mBAY3B;IAED;;;;OAIG;IACH,oBAJW,WAAW,GAEV,MAAM,CA2BjB;IAED;;;;OAIG;IACH,eAJW,MAAM,GAEL,WAAW,CAsCtB;CACD;;;;;AAvhBD,kCAAkC;AAClC,oDADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAiJ5B"}
1
+ {"version":3,"file":"RecordSet-Filters.d.ts","sourceRoot":"","sources":["../../source/views/RecordSet-Filters.js"],"names":[],"mappings":";AAwJA;IAEC,2DAqEC;IAjEA,kHAAkH;IAClH,MADW,GAAe,GAAG,OAAO,MAAM,CAAC,GAAG;QAAE,oBAAoB,EAAE;;;;;;SAAsC,CAAA;KAAE,CACrG;IAwDT,cAA+E;IAG/E,wCAA0E;IAU3E;;;;OAIG;IACH,qBAFa,GAAG,CAaf;IAED;;;;OAIG;IACH,mBAFa,GAAG,CAaf;IAED;;;;OAIG;IACH,qBAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAShB;IAED;;;;OAIG;IACH,0BAJW,MAAM,gBACN,MAAM,kBACN,MAAM,QA+ChB;IAED;;;;OAIG;IACH,oBAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAgBhB;IAED;;;;OAIG;IACH,0BAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAQhB;IAED,mGAMC;IAED,wCAIC;IAmED,6DAOC;IAED;;;;OAIG;IACH,yCAJW,MAAM,GAEL,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAUvC;IAED;;;;;OAKG;IACH,iBALW,MAAM,aACN,iBAAiB,GAEhB,OAAO,CAAC,WAAW,CAAC,CAU/B;IAED;;;OAGG;IACH,sBAHW,UAAU,aACV,iBAAiB,mBAY3B;IAED;;;;OAIG;IACH,oBAJW,WAAW,GAEV,MAAM,CA2BjB;IAED;;;;OAIG;IACH,eAJW,MAAM,GAEL,WAAW,CAsCtB;CACD;;;;;AA3jBD,kCAAkC;AAClC,oDADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAiJ5B"}