@qrvey/widget-configurability 0.0.0-dev.2391 → 0.0.0-dev.2401

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.
@@ -23,19 +23,7 @@ const downloadManagerV1Config = {
23
23
  header: ['qTitle'],
24
24
  controlBar: {
25
25
  defaults: {
26
- filters: {
27
- fileType: ['PDF', 'JPG', 'CSV', 'XLS', 'ZIP'],
28
- execution: ['SCHEDULED', 'OTHERS'],
29
- sourceWidget: [
30
- 'ANALYZE',
31
- 'AUTOMATION',
32
- 'DASHBOARD',
33
- 'LEGACY_DASHBOARD',
34
- 'PIXEL_PERFECT',
35
- 'SUBSCRIPTION',
36
- ],
37
- searchByName: '',
38
- },
26
+ filters: {},
39
27
  },
40
28
  qFilterByFileType: [
41
29
  'qTypeAll',
@@ -1 +1 @@
1
- {"version":3,"file":"download-manager.structure.v1.js","sourceRoot":"","sources":["../../../src/structures/download-manager.structure.v1.ts"],"names":[],"mappings":";;AAEA,MAAM,uBAAuB,GAAiB;IAC1C,OAAO,EAAE,KAAK;IACd,aAAa,EAAE;QACX,KAAK,EAAE;YACH,IAAI,EAAE;gBACF,QAAQ;gBACR,YAAY;gBACZ,WAAW;gBACX,eAAe;gBACf,eAAe;aAClB;YACD,MAAM,EAAE;gBACJ,QAAQ;gBACR,YAAY;gBACZ,WAAW;gBACX,eAAe;gBACf,WAAW;gBACX,eAAe;aAClB;SACJ;QACD,MAAM,EAAE,CAAC,QAAQ,CAAC;QAClB,UAAU,EAAE;YACR,QAAQ,EAAE;gBACN,OAAO,EAAE;oBACL,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;oBAC7C,SAAS,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;oBAClC,YAAY,EAAE;wBACV,SAAS;wBACT,YAAY;wBACZ,WAAW;wBACX,kBAAkB;wBAClB,eAAe;wBACf,cAAc;qBACjB;oBACD,YAAY,EAAE,EAAE;iBACnB;aACJ;YACD,iBAAiB,EAAE;gBACf,UAAU;gBACV,UAAU;gBACV,UAAU;gBACV,UAAU;gBACV,YAAY;gBACZ,UAAU;aACb;YACD,kBAAkB,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,aAAa,CAAC;YACjE,eAAe,EAAE;gBACb,YAAY;gBACZ,gBAAgB;gBAChB,mBAAmB;gBACnB,aAAa;gBACb,mBAAmB;gBACnB,sBAAsB;gBACtB,YAAY;aACf;YACD,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,IAAI;SAClB;QAED,SAAS,EAAE;YACP,KAAK,EAAE;gBACH;oBACI,UAAU,EAAE;wBACR,SAAS;wBACT,WAAW;wBACX,iBAAiB;wBACjB,YAAY;wBACZ,oBAAoB;wBACpB,cAAc;qBACjB;oBACD,KAAK,EAAE;wBACH,OAAO;wBACP,WAAW;wBACX,OAAO;wBACP,eAAe;wBACf,iBAAiB;wBACjB,WAAW;qBACd;iBACJ;gBACD,gBAAgB;gBAChB,cAAc;aACjB;SACJ;QAED,SAAS,EAAE;YACP,iBAAiB;YACjB,YAAY;YACZ,oBAAoB;YACpB,SAAS;SACZ;QAED,aAAa,EAAE;YACX,iBAAiB;YACjB,kBAAkB;YAClB,yBAAyB;SAC5B;QAED,aAAa,EAAE;YACX,WAAW;YACX,SAAS;YACT,QAAQ;YACR,cAAc;YACd,OAAO;SACV;KACJ;CACJ,CAAC;AAEF,kBAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"download-manager.structure.v1.js","sourceRoot":"","sources":["../../../src/structures/download-manager.structure.v1.ts"],"names":[],"mappings":";;AAEA,MAAM,uBAAuB,GAAiB;IAC1C,OAAO,EAAE,KAAK;IACd,aAAa,EAAE;QACX,KAAK,EAAE;YACH,IAAI,EAAE;gBACF,QAAQ;gBACR,YAAY;gBACZ,WAAW;gBACX,eAAe;gBACf,eAAe;aAClB;YACD,MAAM,EAAE;gBACJ,QAAQ;gBACR,YAAY;gBACZ,WAAW;gBACX,eAAe;gBACf,WAAW;gBACX,eAAe;aAClB;SACJ;QACD,MAAM,EAAE,CAAC,QAAQ,CAAC;QAClB,UAAU,EAAE;YACR,QAAQ,EAAE;gBACN,OAAO,EAAE,EAAE;aACd;YACD,iBAAiB,EAAE;gBACf,UAAU;gBACV,UAAU;gBACV,UAAU;gBACV,UAAU;gBACV,YAAY;gBACZ,UAAU;aACb;YACD,kBAAkB,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,aAAa,CAAC;YACjE,eAAe,EAAE;gBACb,YAAY;gBACZ,gBAAgB;gBAChB,mBAAmB;gBACnB,aAAa;gBACb,mBAAmB;gBACnB,sBAAsB;gBACtB,YAAY;aACf;YACD,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,IAAI;SAClB;QAED,SAAS,EAAE;YACP,KAAK,EAAE;gBACH;oBACI,UAAU,EAAE;wBACR,SAAS;wBACT,WAAW;wBACX,iBAAiB;wBACjB,YAAY;wBACZ,oBAAoB;wBACpB,cAAc;qBACjB;oBACD,KAAK,EAAE;wBACH,OAAO;wBACP,WAAW;wBACX,OAAO;wBACP,eAAe;wBACf,iBAAiB;wBACjB,WAAW;qBACd;iBACJ;gBACD,gBAAgB;gBAChB,cAAc;aACjB;SACJ;QAED,SAAS,EAAE;YACP,iBAAiB;YACjB,YAAY;YACZ,oBAAoB;YACpB,SAAS;SACZ;QAED,aAAa,EAAE;YACX,iBAAiB;YACjB,kBAAkB;YAClB,yBAAyB;SAC5B;QAED,aAAa,EAAE;YACX,WAAW;YACX,SAAS;YACT,QAAQ;YACR,cAAc;YACd,OAAO;SACV;KACJ;CACJ,CAAC;AAEF,kBAAe,uBAAuB,CAAC"}
@@ -916,28 +916,7 @@ var downloadManagerV1Config = {
916
916
  ],
917
917
  controlBar: {
918
918
  defaults: {
919
- filters: {
920
- fileType: [
921
- "PDF",
922
- "JPG",
923
- "CSV",
924
- "XLS",
925
- "ZIP"
926
- ],
927
- execution: [
928
- "SCHEDULED",
929
- "OTHERS"
930
- ],
931
- sourceWidget: [
932
- "ANALYZE",
933
- "AUTOMATION",
934
- "DASHBOARD",
935
- "LEGACY_DASHBOARD",
936
- "PIXEL_PERFECT",
937
- "SUBSCRIPTION"
938
- ],
939
- searchByName: ""
940
- }
919
+ filters: {}
941
920
  },
942
921
  qFilterByFileType: [
943
922
  "qTypeAll",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/structure.constants.ts","../../src/doc/swagger.optional.ts","../../src/structures/dashboard.structure.v1.ts","../../src/structures/download-manager.structure.v1.ts","../../src/structures/report.structure.v1.ts","../../src/constants/configs.ts","../../src/models/conditions.models.ts","../../src/utils/conditions.helpers.ts","../../src/utils/defaults.helpers.ts","../../src/utils/merge.helpers.ts","../../src/utils/structural.helpers.ts","../../src/structural-manager.ts"],"names":["STRUCTURE_SECTION_NAME_SEPARATOR","STRUCTURE_VIEW_NAME_SEPARATOR","STRUCTURE_RESERVED_WORDS","Widget","WidgetVersion","ApiProperty","require","metadata","ViewsDto","list","design","preview","endUser","type","String","description","example","AssetListDto","defaults","asset","Object","assetListViewMode","optionMenu","MenuBarDto","file","edit","grid","insert","qArrange","qMnuDownloadDash","qMnuInsertChart","qMnuInsertFilterCtrl","qMnuAlign","FilterPanelDto","qAddFilter","qEnabDisabAllFilters","qDeleteAllFilters","qFilterSettings","dashFilterScope","tabFilterScope","panelFilterScope","SubModulesDto","chartPanel","chartGallery","chartBuilder","BaseDashboardV1StructureDto","views","navBar","endUserTopBar","assetList","controlBarLeft","controlBarRight","header","menuBar","toolBar","configPanel","filterPanel","downloadModal","subModules","qInsertChart","qInsertFilterCtrl","qDownloadDash","qResponsiveView","qAlign","dashboardV1Config","version","baseStructure","qMnuArrange","downloadManagerV1Config","main","detail","controlBar","filters","fileType","execution","sourceWidget","searchByName","qFilterByFileType","qFilterByExecution","qFilterByWidget","qFilterByAsset","qSearch","qRemoveFilters","qScheduleDetail","qFilesExported","qMoreInfo","table","bottomBar","moreInfoModal","reportV1Config","tabBar","qInsertShape","qDownloadReport","dataPanel","tabDataset","tabParameters","repoFilterScope","widgetConfigs","DASHBOARD","v1","latest","REPORT","DOWNLOAD_MANAGER","allowedOperators","isOperator","value","includes","getValue","condition","state","field","_evalConditionOperator","operator","OPERATOR_MAP","a","b","startsWith","endsWith","contains","evaluateCondition","conditions","length","every","c","_evalCondition","evalFn","checkConditions","cond","effect","result","FONT_SIZES","applyValidation","currentObj","validatorMap","parentKey","validatedObj","keys","forEach","key","fullKey","Array","isArray","validateDefaults","obj","isANumber","_value","Number","isNaN","undefined","numberMinMaxValue","maxValue","minValue","fontSizeMinMaxValue","minSize","maxSize","inputSize","parseInt","validFontSizes","filter","size","closestSize","smallestDiff","Math","abs","diff","fontColorValue","normalizedColor","toLowerCase","validateType","validValues","receivedValue","toUpperCase","DX_VALIDATOR_MAP","mergeDeep","obj1","obj2","settings","defaultSettings","mergeExistingValues","mergeMissingProperties","isValid","objectCopy","val1","val2","isObject","map","item","prototype","hasOwnProperty","call","toString","getWidgetStructure","config","customization","validationMap","calculateViewMap","permissionMap","view","assign","calculateSpecificViewMap","customDefaults","calculateCustomDefaults","prevDefaults","submodules","calculateSubmodules","conditionMaps","calculateConditions","calculatePermissionMap","viewDefinition","viewKeys","viewPrefix","getViewPrefix","getStructureKey","viewValue","matchWildcard","pattern","regexPattern","RegExp","replace","test","keyIsIncludedInKeep","keep","keyIsIncludedInRemove","remove","canInsertInCustomization","validateKeepOption","includedInRemove","canInsert","keepValue","keepResult","conditionAffect","evalInsertKey","hasKeepOption","customizationView","custCanInsert","custViewCanInsert","some","x","canInsertKey","checkCondition","addKeyToPermissions","childMap","keyAttr","addDefaultKey","addChildMapKey","getConditionsForKey","pathPrefix","previousKeepOption","currentKeepOption","nodeHasKeepOption","configValue","currentKey","newPrefix","canInsertResult","calculateDefaults","calculatePermissionMapArray","reduce","mapValue","push","rootConditionals","conditional","viewConditionals","customConditionals","viewSubmodules","customRootSubmodules","customSubmodules","mergeObjects","viewDefaults","customRootDefaults","defaultObj","structureDefaults","itemDefaults","baseDefaults","prevObj","newObj","mapObjKeys","mapArrayKeys","nodeKeys","defaultsSimple","option","fullPath","buildStructure","widget","versionSet","widgetConfigurability","Error","structureMap","WidgetStructureInstance","constructor","viewMap","isVisible","getChildMap","getSubmodule","module","getDefaults"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,gCAAAA,GAAmC,GAAA;AACzC,IAAMC,6BAAAA,GAAgC,IAAA;AACtC,IAAMC,wBAAAA,GAA2B;AAAC,EAAA,OAAA;AAAS,EAAA,UAAA;AAAY,EAAA;;AAEvD,IAAKC,MAAAA,4BAAAA,OAAAA,EAAAA;;;;AAAAA,EAAAA,OAAAA,OAAAA;;AAML,IAAKC,aAAAA,4BAAAA,cAAAA,EAAAA;;;AAAAA,EAAAA,OAAAA,cAAAA;;;;;;;;;;;;;;;ACRZ,IAAIC,WAAAA;AAEJ,IAAI;AACAA,EAAAA,WAAAA,GAAcC,SAAAA,CAAQ,iBAAA,CAAA,CAAmBD,WAAAA;AAC7C,CAAA,CAAA,OAAQ,CAAA,EAAA;AAEJA,EAAAA,WAAAA,2BAAeE,QAAAA,KAAAA;AACX,IAAA,OAAO,MAAA;AAAa,IAAA,CAAA;EACxB,CAAA,EAFc,aAAA,CAAA;AAGlB;;;;;;;;;;;;;;AATO,IAAMC,SAAAA,GAAN,MAAMA,SAAAA,CAAAA;AAAN,EAAA,WAAA,GAAA;AAMHC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,MAAAA,CAAAA;AAgBAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,QAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,SAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,SAAAA,CAAAA;;AACJ,CAAA;AArCaJ,MAAAA,CAAAA,SAAAA,EAAAA,UAAAA,CAAAA;AAAN,IAAMA,QAAAA,GAAN,SAAA;;;IAECK,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,2BAAA;IACbC,OAAAA,EAAS;AAAC,MAAA,QAAA;AAAU,MAAA,WAAA;AAAa,MAAA,gBAAA;AAAkB,MAAA;;;;;;;IAKnDH,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,6BAAA;IACbC,OAAAA,EAAS;AACL,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,iBAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA;;;;;;;IAMJH,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,8BAAA;IACbC,OAAAA,EAAS;AAAC,MAAA,QAAA;AAAU,MAAA,QAAA;AAAU,MAAA,iBAAA;AAAmB,MAAA;;;;;;;IAKjDH,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,+BAAA;IACbC,OAAAA,EAAS;AAAC,MAAA,QAAA;AAAU,MAAA,SAAA;AAAW,MAAA,aAAA;AAAe,MAAA;;;;;AAK/C,IAAMC,aAAAA,GAAN,MAAMA,aAAAA,CAAAA;AAAN,EAAA,WAAA,GAAA;AAMHC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,UAAAA,CAAAA;AAeAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,OAAAA,CAAAA;;AACJ,CAAA;AAtBaF,MAAAA,CAAAA,aAAAA,EAAAA,cAAAA,CAAAA;AAAN,IAAMA,YAAAA,GAAN,aAAA;;;IAECJ,IAAAA,EAAMO,MAAAA;IACNL,WAAAA,EAAa,qCAAA;IACbC,OAAAA,EAAS;MAAEK,iBAAAA,EAAmB;AAAO;;;;;;IAKrCR,IAAAA,EAAMO,MAAAA;IACNL,WAAAA,EAAa,qCAAA;IACbC,OAAAA,EAAS;MACLM,UAAAA,EAAY;AACR,QAAA,WAAA;AACA,QAAA,aAAA;AACA,QAAA,aAAA;AACA,QAAA,WAAA;AACA,QAAA;;AAER;;;;AAKD,IAAMC,WAAAA,GAAN,MAAMA,WAAAA,CAAAA;AAAN,EAAA,WAAA,GAAA;AAyBHC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,MAAAA,CAAAA;AAgBAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,MAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,MAAAA,CAAAA;AA0BAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,QAAAA,CAAAA;AAoBAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,UAAAA,CAAAA;;AACJ,CAAA;AA/FaL,MAAAA,CAAAA,WAAAA,EAAAA,YAAAA,CAAAA;AAAN,IAAMA,UAAAA,GAAN,WAAA;;;IAECV,IAAAA,EAAMO,MAAAA;IACNL,WAAAA,EAAa,mDAAA;IACbC,OAAAA,EAAS;MACLQ,IAAAA,EAAM;AACF,QAAA,gBAAA;AACA,QAAA,cAAA;AACA,QAAA,mBAAA;AACA,QAAA,gBAAA;AACA,QAAA,YAAA;AACA,QAAA,YAAA;AACA,QAAA,gBAAA;AACA,QAAA,0BAAA;AACA,QAAA;UACIK,gBAAAA,EAAkB;AACd,YAAA,UAAA;AACA,YAAA,UAAA;AACA,YAAA,YAAA;AACA,YAAA;;AAER;;AAER;;;;;;IAKAhB,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,mBAAA;IACbC,OAAAA,EAAS;AACL,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA;;;;;;;IAMJH,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,mBAAA;IACbC,OAAAA,EAAS;AAAC,MAAA,gBAAA;AAAkB,MAAA,iBAAA;AAAmB,MAAA;;;;;;;IAK/CH,IAAAA,EAAM;AAACO,MAAAA;;IACPL,WAAAA,EAAa,gDAAA;IACbC,OAAAA,EAAS;AACL,MAAA;QACIc,eAAAA,EAAiB;AACb,UAAA,mBAAA;AACA,UAAA,cAAA;AACA,UAAA;;QAEJC,oBAAAA,EAAsB;AAClB,UAAA,gBAAA;AACA,UAAA,cAAA;AACA,UAAA;;AAER,OAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA,qBAAA;AACA,MAAA,kBAAA;AACA,MAAA;;;;;;;IAMJlB,IAAAA,EAAM;AAACO,MAAAA;;IACPL,WAAAA,EAAa,oDAAA;IACbC,OAAAA,EAAS;AACL,MAAA,kBAAA;AACA,MAAA,gBAAA;AACA,MAAA;QACIgB,SAAAA,EAAW;AACP,UAAA,aAAA;AACA,UAAA,YAAA;AACA,UAAA,cAAA;AACA,UAAA,WAAA;AACA,UAAA,cAAA;AACA,UAAA;;AAER;;;;;AAML,IAAMC,eAAAA,GAAN,MAAMA,eAAAA,CAAAA;AAAN,EAAA,WAAA,GAAA;AAEHC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,YAAAA,CAAAA;AAMAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,sBAAAA,CAAAA;AAGAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,mBAAAA,CAAAA;AAGAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,iBAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,iBAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,gBAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,kBAAAA,CAAAA;;AACJ,CAAA;AApCaP,MAAAA,CAAAA,eAAAA,EAAAA,gBAAAA,CAAAA;AAAN,IAAMA,cAAAA,GAAN,eAAA;;;IACYlB,WAAAA,EAAa,uBAAA;IAAyBC,OAAAA,EAAS;;;;;;IAI1DD,WAAAA,EAAa,uCAAA;IACbC,OAAAA,EAAS;;;;;;IAIED,WAAAA,EAAa,6BAAA;IAA+BC,OAAAA,EAAS;;;;;;IAGrDD,WAAAA,EAAa,sBAAA;IAAwBC,OAAAA,EAAS;;;;;;IAIzDH,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,qCAAA;IACbC,OAAAA,EAAS;AAAC,MAAA,aAAA;AAAe,MAAA,kBAAA;AAAoB,MAAA;;;;;;;IAK7CH,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,+BAAA;IACbC,OAAAA,EAAS;AAAC,MAAA,aAAA;AAAe,MAAA,kBAAA;AAAoB,MAAA;;;;;;;IAK7CH,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,iCAAA;IACbC,OAAAA,EAAS;AAAC,MAAA,aAAA;AAAe,MAAA,kBAAA;AAAoB,MAAA;;;;;AAK9C,IAAMyB,cAAAA,GAAN,MAAMA,cAAAA,CAAAA;AAAN,EAAA,WAAA,GAAA;AAMHC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,YAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,cAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,cAAAA,CAAAA;;AACJ,CAAA;AArBaH,MAAAA,CAAAA,cAAAA,EAAAA,eAAAA,CAAAA;AAAN,IAAMA,aAAAA,GAAN,cAAA;;;IAEC5B,IAAAA,EAAMO,MAAAA;IACNL,WAAAA,EAAa,uBAAA;AACbC,IAAAA,OAAAA,EAAS;;;;;;IAKTH,IAAAA,EAAMO,MAAAA;IACNL,WAAAA,EAAa,yBAAA;AACbC,IAAAA,OAAAA,EAAS;;;;;;IAKTH,IAAAA,EAAMO,MAAAA;IACNL,WAAAA,EAAa,yBAAA;AACbC,IAAAA,OAAAA,EAAS;;;;AAKV,IAAM6B,4BAAAA,GAAN,MAAMA,4BAAAA,CAAAA;AAAN,EAAA,WAAA,GAAA;AAEHC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,OAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,QAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,eAAAA,CAAAA;AAMAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,WAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,gBAAAA,CAAAA;AAmBAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,iBAAAA,CAAAA;AAOAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,QAAAA,CAAAA;AAMAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,SAAAA,CAAAA;AAsDAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,SAAAA,CAAAA;AAMAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,aAAAA,CAAAA;AAGAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,aAAAA,CAAAA;AAWAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,eAAAA,CAAAA;AAMAC,IAAAA,aAAAA,CAAAA,IAAAA,EAAAA,YAAAA,CAAAA;;AACJ,CAAA;AA9Iab,MAAAA,CAAAA,4BAAAA,EAAAA,6BAAAA,CAAAA;AAAN,IAAMA,2BAAAA,GAAN,4BAAA;;;IACYhC,IAAAA,EAAML,QAAAA;IAAUO,WAAAA,EAAa;;;;;;IAIxCF,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,uBAAA;IACbC,OAAAA,EAAS;AAAC,MAAA,WAAA;AAAa,MAAA;;;;;;;IAKvBH,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,iCAAA;IACbC,OAAAA,EAAS;AAAC,MAAA,WAAA;AAAa,MAAA;;;;;;;IAKvBH,IAAAA,EAAMI,YAAAA;IACNF,WAAAA,EAAa;;;;;;IAKbF,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,iCAAA;IACbC,OAAAA,EAAS;AAAC,MAAA;;;;;;;IAKVH,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,kCAAA;IACbC,OAAAA,EAAS;AACL,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,eAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA;;;;;;;IAMJH,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,uBAAA;IACbC,OAAAA,EAAS;AAAC,MAAA,eAAA;AAAiB,MAAA,YAAA;AAAc,MAAA,WAAA;AAAa,MAAA;;;;;;;IAKtDH,IAAAA,EAAMU,UAAAA;IACNR,WAAAA,EAAa;;;;;;IAKbF,IAAAA,EAAM;AAACO,MAAAA;;IACPL,WAAAA,EAAa,+CAAA;IACbC,OAAAA,EAAS;AACL,MAAA,aAAA;AACA,MAAA;QACI2C,YAAAA,EAAc;AAAC,UAAA,gBAAA;AAAkB,UAAA,WAAA;AAAa,UAAA;;QAC9CC,iBAAAA,EAAmB;AACf,UAAA,aAAA;AACA,UAAA,WAAA;AACA,UAAA;;QAEJlC,IAAAA,EAAM;AAAC,UAAA,aAAA;AAAe,UAAA,cAAA;AAAgB,UAAA;;QACtCmC,aAAAA,EAAe;AACX,UAAA,UAAA;AACA,UAAA,UAAA;AACA,UAAA,YAAA;AACA,UAAA;;QAEJjC,QAAAA,EAAU;AAAC,UAAA,eAAA;AAAiB,UAAA;;QAC5BkC,eAAAA,EAAiB;AACb,UAAA,UAAA;AACA,UAAA,SAAA;AACA,UAAA,SAAA;AACA,UAAA;;QAEJC,MAAAA,EAAQ;AACJ,UAAA,aAAA;AACA,UAAA,YAAA;AACA,UAAA,cAAA;AACA,UAAA,WAAA;AACA,UAAA,cAAA;AACA,UAAA;;AAER,OAAA;AACA,MAAA,aAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA;;;;;;;IAMJhD,WAAAA,EAAa,qCAAA;IACbC,OAAAA,EAAS;;;;;;IAIEH,IAAAA,EAAMoB,cAAAA;IAAgBlB,WAAAA,EAAa;;;;;;IAI9CF,IAAAA,EAAM;AAACC,MAAAA;;IACPC,WAAAA,EAAa,wBAAA;IACbC,OAAAA,EAAS;AACL,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA;;;;;;;IAMJH,IAAAA,EAAM4B,aAAAA;IACN1B,WAAAA,EAAa;;;;;;ACxWrB,IAAMiD,iBAAAA,GAAkC;EACpCC,OAAAA,EAAS,KAAA;EACTC,aAAAA,EAAe;IACXpB,KAAAA,EAAO;MACHrC,IAAAA,EAAM;AAAC,QAAA,QAAA;AAAU,QAAA,WAAA;AAAa,QAAA,gBAAA;AAAkB,QAAA;;MAChDC,MAAAA,EAAQ;AACJ,QAAA,QAAA;AACA,QAAA,QAAA;AACA,QAAA,iBAAA;AACA,QAAA,SAAA;AACA,QAAA,SAAA;AACA,QAAA,aAAA;AACA,QAAA,aAAA;AACA,QAAA;;MAEJC,OAAAA,EAAS;AAAC,QAAA,QAAA;AAAU,QAAA,QAAA;AAAU,QAAA,iBAAA;AAAmB,QAAA;;MACjDC,OAAAA,EAAS;AAAC,QAAA,QAAA;AAAU,QAAA,SAAA;AAAW,QAAA,aAAA;AAAe,QAAA;;AAClD,KAAA;IAEAmC,MAAAA,EAAQ;AAAC,MAAA,WAAA;AAAa,MAAA;;IAEtBC,aAAAA,EAAe;AAAC,MAAA,WAAA;AAAa,MAAA;;IAE7BC,SAAAA,EAAW;MACP/B,QAAAA,EAAU;QACNG,iBAAAA,EAAmB;AACvB,OAAA;MACAF,KAAAA,EAAO;QACHG,UAAAA,EAAY;AACR,UAAA,WAAA;AACA,UAAA,aAAA;AACA,UAAA,aAAA;AACA,UAAA,WAAA;AACA,UAAA;;AAER;AACJ,KAAA;IAEA4B,cAAAA,EAAgB;AAAC,MAAA;;IAEjBC,eAAAA,EAAiB;AACb,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,eAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA;;IAGJC,MAAAA,EAAQ;AAAC,MAAA,eAAA;AAAiB,MAAA,YAAA;AAAc,MAAA,WAAA;AAAa,MAAA;;IAErDC,OAAAA,EAAS;MACL7B,IAAAA,EAAM;AACF,QAAA,gBAAA;AACA,QAAA,cAAA;AACA,QAAA,mBAAA;AACA,QAAA,gBAAA;AACA,QAAA,YAAA;AACA,QAAA,YAAA;AACA,QAAA,gBAAA;AACA,QAAA,0BAAA;AACA,QAAA;UACIK,gBAAAA,EAAkB;AACd,YAAA,UAAA;AACA,YAAA,UAAA;AACA,YAAA,YAAA;AACA,YAAA;;AAER;;MAEJJ,IAAAA,EAAM;AACF,QAAA,WAAA;AACA,QAAA,cAAA;AACA,QAAA,eAAA;AACA,QAAA,aAAA;AACA,QAAA,gBAAA;AACA,QAAA,cAAA;AACA,QAAA,gBAAA;AACA,QAAA;;MAEJC,IAAAA,EAAM;AAAC,QAAA,gBAAA;AAAkB,QAAA,iBAAA;AAAmB,QAAA;;MAC5CC,MAAAA,EAAQ;AACJ,QAAA;UACIG,eAAAA,EAAiB;AACb,YAAA,mBAAA;AACA,YAAA,cAAA;AACA,YAAA;;UAEJC,oBAAAA,EAAsB;AAClB,YAAA,gBAAA;AACA,YAAA,cAAA;AACA,YAAA;;AAER,SAAA;AACA,QAAA,gBAAA;AACA,QAAA,iBAAA;AACA,QAAA,kBAAA;AACA,QAAA,qBAAA;AACA,QAAA,kBAAA;AACA,QAAA;;MAEJoC,WAAAA,EAAa;AACT,QAAA,kBAAA;AACA,QAAA,gBAAA;AACA,QAAA;UACInC,SAAAA,EAAW;AACP,YAAA,aAAA;AACA,YAAA,YAAA;AACA,YAAA,cAAA;AACA,YAAA,WAAA;AACA,YAAA,cAAA;AACA,YAAA;;AAER;;AAER,KAAA;IACAsB,OAAAA,EAAS;AACL,MAAA,aAAA;AACA,MAAA;QACIK,YAAAA,EAAc;AAAC,UAAA,gBAAA;AAAkB,UAAA,WAAA;AAAa,UAAA;;QAC9CC,iBAAAA,EAAmB;AACf,UAAA,aAAA;AACA,UAAA,WAAA;AACA,UAAA;;QAEJlC,IAAAA,EAAM;AAAC,UAAA,aAAA;AAAe,UAAA,cAAA;AAAgB,UAAA;;QACtCmC,aAAAA,EAAe;AACX,UAAA,UAAA;AACA,UAAA,UAAA;AACA,UAAA,YAAA;AACA,UAAA;;QAEJjC,QAAAA,EAAU;AAAC,UAAA,eAAA;AAAiB,UAAA;;QAC5BkC,eAAAA,EAAiB;AACb,UAAA,UAAA;AACA,UAAA,SAAA;AACA,UAAA,SAAA;AACA,UAAA;;QAEJC,MAAAA,EAAQ;AACJ,UAAA,aAAA;AACA,UAAA,YAAA;AACA,UAAA,cAAA;AACA,UAAA,WAAA;AACA,UAAA,cAAA;AACA,UAAA;;AAER,OAAA;AACA,MAAA,aAAA;AACA,MAAA,0BAAA;AACA,MAAA,cAAA;AACA,MAAA,eAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;;AAGA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA;;IAEJR,WAAAA,EAAa,IAAA;IACbC,WAAAA,EAAa;MACTtB,UAAAA,EAAY,IAAA;MACZC,oBAAAA,EAAsB,IAAA;MACtBC,iBAAAA,EAAmB,IAAA;MACnBC,eAAAA,EAAiB,IAAA;MACjBC,eAAAA,EAAiB;AACb,QAAA,aAAA;AACA,QAAA,kBAAA;AACA,QAAA;;MAEJC,cAAAA,EAAgB;AACZ,QAAA,aAAA;AACA,QAAA,kBAAA;AACA,QAAA;;MAEJC,gBAAAA,EAAkB;AACd,QAAA,aAAA;AACA,QAAA,kBAAA;AACA,QAAA;;AAER,KAAA;IACAiB,aAAAA,EAAe;AACX,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA;;IAEJC,UAAAA,EAAY;AACRhB,MAAAA,UAAAA,EAAY,EAAC;AACbC,MAAAA,YAAAA,EAAc,EAAC;AACfC,MAAAA,YAAAA,EAAc;AAClB;AACJ;AACJ,CAAA;AAEA,IAAA,8BAAA,GAAeoB,iBAAAA;;;AC9Mf,IAAMI,uBAAAA,GAAwC;EAC1CH,OAAAA,EAAS,KAAA;EACTC,aAAAA,EAAe;IACXpB,KAAAA,EAAO;MACHuB,IAAAA,EAAM;AACF,QAAA,QAAA;AACA,QAAA,YAAA;AACA,QAAA,WAAA;AACA,QAAA,eAAA;AACA,QAAA;;MAEJC,MAAAA,EAAQ;AACJ,QAAA,QAAA;AACA,QAAA,YAAA;AACA,QAAA,WAAA;AACA,QAAA,eAAA;AACA,QAAA,WAAA;AACA,QAAA;;AAER,KAAA;IACAlB,MAAAA,EAAQ;AAAC,MAAA;;IACTmB,UAAAA,EAAY;MACRrD,QAAAA,EAAU;QACNsD,OAAAA,EAAS;UACLC,QAAAA,EAAU;AAAC,YAAA,KAAA;AAAO,YAAA,KAAA;AAAO,YAAA,KAAA;AAAO,YAAA,KAAA;AAAO,YAAA;;UACvCC,SAAAA,EAAW;AAAC,YAAA,WAAA;AAAa,YAAA;;UACzBC,YAAAA,EAAc;AACV,YAAA,SAAA;AACA,YAAA,YAAA;AACA,YAAA,WAAA;AACA,YAAA,kBAAA;AACA,YAAA,eAAA;AACA,YAAA;;UAEJC,YAAAA,EAAc;AAClB;AACJ,OAAA;MACAC,iBAAAA,EAAmB;AACf,QAAA,UAAA;AACA,QAAA,UAAA;AACA,QAAA,UAAA;AACA,QAAA,UAAA;AACA,QAAA,YAAA;AACA,QAAA;;MAEJC,kBAAAA,EAAoB;AAAC,QAAA,UAAA;AAAY,QAAA,gBAAA;AAAkB,QAAA;;MACnDC,eAAAA,EAAiB;AACb,QAAA,YAAA;AACA,QAAA,gBAAA;AACA,QAAA,mBAAA;AACA,QAAA,aAAA;AACA,QAAA,mBAAA;AACA,QAAA,sBAAA;AACA,QAAA;;MAEJC,cAAAA,EAAgB,IAAA;MAChBC,OAAAA,EAAS,IAAA;MACTC,cAAAA,EAAgB,IAAA;MAChBC,eAAAA,EAAiB,IAAA;MACjBC,cAAAA,EAAgB,IAAA;MAChBC,SAAAA,EAAW;AACf,KAAA;IAEApC,SAAAA,EAAW;MACP9B,KAAAA,EAAO;AACH,QAAA;UACIG,UAAAA,EAAY;AACR,YAAA,SAAA;AACA,YAAA,WAAA;AACA,YAAA,iBAAA;AACA,YAAA,YAAA;AACA,YAAA,oBAAA;AACA,YAAA;;UAEJgE,KAAAA,EAAO;AACH,YAAA,OAAA;AACA,YAAA,WAAA;AACA,YAAA,OAAA;AACA,YAAA,eAAA;AACA,YAAA,iBAAA;AACA,YAAA;;AAER,SAAA;AACA,QAAA,gBAAA;AACA,QAAA;;AAER,KAAA;IAEAC,SAAAA,EAAW;AACP,MAAA,iBAAA;AACA,MAAA,YAAA;AACA,MAAA,oBAAA;AACA,MAAA;;IAGJ9B,aAAAA,EAAe;AACX,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA;;IAGJ+B,aAAAA,EAAe;AACX,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,cAAA;AACA,MAAA;;AAER;AACJ,CAAA;AAEA,IAAA,qCAAA,GAAepB,uBAAAA;;;AC/Gf,IAAMqB,cAAAA,GAA+B;EACjCxB,OAAAA,EAAS,KAAA;EAETC,aAAAA,EAAe;IACXpB,KAAAA,EAAO;MACHrC,IAAAA,EAAM;AAAC,QAAA,QAAA;AAAU,QAAA,WAAA;AAAa,QAAA,gBAAA;AAAkB,QAAA;;MAChDC,MAAAA,EAAQ;AACJ,QAAA,QAAA;AACA,QAAA,iBAAA;AACA,QAAA,SAAA;AACA,QAAA,SAAA;AACA,QAAA,aAAA;AACA,QAAA,aAAA;AACA,QAAA;;MAEJC,OAAAA,EAAS;AACL,QAAA,QAAA;AACA,QAAA,QAAA;AACA,QAAA,SAAA;AACA,QAAA,aAAA;AACA,QAAA,iBAAA;AACA,QAAA;;AAER,KAAA;IACAoC,MAAAA,EAAQ;AAAC,MAAA,WAAA;AAAa,MAAA;;IACtB2C,MAAAA,EAAQ;AAAC,MAAA,cAAA;AAAgB,MAAA;;IACzBzC,SAAAA,EAAW;MACP/B,QAAAA,EAAU;QACNG,iBAAAA,EAAmB;AACvB,OAAA;MACAF,KAAAA,EAAO;QACHG,UAAAA,EAAY;AACR,UAAA,UAAA;AACA,UAAA,YAAA;AACA,UAAA,YAAA;AACA,UAAA;;AAER;AACJ,KAAA;IAEA4B,cAAAA,EAAgB;AAAC,MAAA;;IAEjBC,eAAAA,EAAiB;AACb,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA;;IAGJE,OAAAA,EAAS;MACL5B,IAAAA,EAAM;AAAC,QAAA,cAAA;AAAgB,QAAA;;AAC3B,KAAA;IACA6B,OAAAA,EAAS;AACL,MAAA,YAAA;AACA,MAAA;QACIqC,YAAAA,EAAc;AAAC,UAAA,OAAA;AAAS,UAAA,YAAA;AAAc,UAAA;;QACtCjE,IAAAA,EAAM;AAAC,UAAA,eAAA;AAAiB,UAAA;;QACxBE,QAAAA,EAAU;AAAC,UAAA,eAAA;AAAiB,UAAA;;QAC5BmC,MAAAA,EAAQ;AACJ,UAAA,aAAA;AACA,UAAA,YAAA;AACA,UAAA,cAAA;AACA,UAAA,WAAA;AACA,UAAA,cAAA;AACA,UAAA;;QAEJ6B,eAAAA,EAAiB;AACb,UAAA,YAAA;AACA,UAAA;;AAER,OAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,kBAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA;;IAEJrC,WAAAA,EAAa,IAAA;IACbsC,SAAAA,EAAW;MACPC,UAAAA,EAAY;AAAC,QAAA,gBAAA;AAAkB,QAAA;;MAC/BC,aAAAA,EAAe;AAAC,QAAA,eAAA;AAAiB,QAAA;;AACrC,KAAA;IACAvC,WAAAA,EAAa;MACTtB,UAAAA,EAAY,IAAA;MACZC,oBAAAA,EAAsB,IAAA;MACtBC,iBAAAA,EAAmB,IAAA;MACnBC,eAAAA,EAAiB,IAAA;MACjB2D,eAAAA,EAAiB;AACb,QAAA,aAAA;AACA,QAAA,kBAAA;AACA,QAAA;;MAEJzD,cAAAA,EAAgB;AACZ,QAAA,aAAA;AACA,QAAA,kBAAA;AACA,QAAA;;MAEJC,gBAAAA,EAAkB;AACd,QAAA,aAAA;AACA,QAAA,kBAAA;AACA,QAAA;;AAER,KAAA;IACAiB,aAAAA,EAAe;AACX,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA;;AAER;AACJ,CAAA;AAEA,IAAA,2BAAA,GAAegC,cAAAA;;;AClHR,IAAMQ,aAAAA,GAAkC;EAC3C,CAAC9F,MAAAA,CAAO+F,SAAS,GAAG;IAChB,CAAC9F,aAAAA,CAAc+F,EAAE,GAAGnC,8BAAAA;IACpB,CAAC5D,aAAAA,CAAcgG,MAAM,GAAGpC;AAC5B,GAAA;EACA,CAAC7D,MAAAA,CAAOkG,MAAM,GAAG;IACb,CAACjG,aAAAA,CAAc+F,EAAE,GAAGV,2BAAAA;IACpB,CAACrF,aAAAA,CAAcgG,MAAM,GAAGX;AAC5B,GAAA;EACA,CAACtF,MAAAA,CAAOmG,gBAAgB,GAAG;IACvB,CAAClG,aAAAA,CAAc+F,EAAE,GAAG/B,qCAAAA;IACpB,CAAChE,aAAAA,CAAcgG,MAAM,GAAGhC;AAC5B;AACJ,CAAA;;;ACnBO,IAAMmC,gBAAAA,GAAmB;AAC5B,EAAA,GAAA;AACA,EAAA,IAAA;AACA,EAAA,GAAA;AACA,EAAA,IAAA;AACA,EAAA,GAAA;AACA,EAAA,IAAA;AACA,EAAA,YAAA;AACA,EAAA,UAAA;AACA,EAAA;;;;ACCJ,SAASC,WAAWC,KAAAA,EAAa;AAC7B,EAAA,OAAOF,gBAAAA,CAAiBG,SAASD,KAAAA,CAAAA;AACrC;AAFSD,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAIT,SAASG,QAAAA,CAASC,WAAsBC,KAAAA,EAAqB;AACzD,EAAA,OAAOA,KAAAA,CAAMD,UAAUE,KAAK,CAAA;AAChC;AAFSH,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA;AAIT,SAASI,sBAAAA,CACLH,SAAAA,EACAC,KAAAA,EACAG,QAAAA,EAA2D;AAE3D,EAAA,MAAMP,KAAAA,GAAQE,QAAAA,CAASC,SAAAA,EAAWC,KAAAA,CAAAA;AAClC,EAAA,IAAIJ,KAAAA,IAAS,MAAM,OAAO,KAAA;AAC1B,EAAA,OAAOO,QAAAA,CAASP,KAAAA,EAAOG,SAAAA,CAAUH,KAAK,CAAA;AAC1C;AARSM,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAUT,IAAME,YAAAA,GAAuD;EACzD,GAAA,kBAAK,MAAA,CAAA,CAACL,SAAAA,EAAWC,KAAAA,KACbE,sBAAAA,CAAuBH,SAAAA,EAAWC,KAAAA,EAAO,CAACK,CAAAA,EAAGC,CAAAA,KAAMD,CAAAA,IAAKC,CAAAA,CAAAA,EADvD,GAAA,CAAA;EAEL,IAAA,kBAAM,MAAA,CAAA,CAACP,SAAAA,EAAWC,KAAAA,KACdE,sBAAAA,CAAuBH,SAAAA,EAAWC,KAAAA,EAAO,CAACK,CAAAA,EAAGC,CAAAA,KAAMD,CAAAA,IAAKC,CAAAA,CAAAA,EADtD,IAAA,CAAA;EAEN,GAAA,kBAAK,MAAA,CAAA,CAACP,SAAAA,EAAWC,KAAAA,KACbE,sBAAAA,CAAuBH,SAAAA,EAAWC,KAAAA,EAAO,CAACK,CAAAA,EAAGC,CAAAA,KAAMD,CAAAA,GAAIC,CAAAA,CAAAA,EADtD,GAAA,CAAA;EAEL,IAAA,kBAAM,MAAA,CAAA,CAACP,SAAAA,EAAWC,KAAAA,KACdE,sBAAAA,CAAuBH,SAAAA,EAAWC,KAAAA,EAAO,CAACK,CAAAA,EAAGC,CAAAA,KAAMD,CAAAA,IAAKC,CAAAA,CAAAA,EADtD,IAAA,CAAA;EAEN,GAAA,kBAAK,MAAA,CAAA,CAACP,SAAAA,EAAWC,KAAAA,KACbE,sBAAAA,CAAuBH,SAAAA,EAAWC,KAAAA,EAAO,CAACK,CAAAA,EAAGC,CAAAA,KAAMD,CAAAA,GAAIC,CAAAA,CAAAA,EADtD,GAAA,CAAA;EAEL,IAAA,kBAAM,MAAA,CAAA,CAACP,SAAAA,EAAWC,KAAAA,KACdE,sBAAAA,CAAuBH,SAAAA,EAAWC,KAAAA,EAAO,CAACK,CAAAA,EAAGC,CAAAA,KAAMD,CAAAA,IAAKC,CAAAA,CAAAA,EADtD,IAAA,CAAA;AAGNC,EAAAA,UAAAA,0BAAaR,SAAAA,EAAWC,KAAAA,KACpBE,uBACIH,SAAAA,EACAC,KAAAA,EACA,CAACK,CAAAA,EAAGC,CAAAA,KACA,OAAOD,CAAAA,KAAM,QAAA,IACb,OAAOC,CAAAA,KAAM,QAAA,IACbD,EAAEE,UAAAA,CAAWD,CAAAA,CAAAA,CAAAA,EAPb,YAAA,CAAA;AAUZE,EAAAA,QAAAA,0BAAWT,SAAAA,EAAWC,KAAAA,KAClBE,uBACIH,SAAAA,EACAC,KAAAA,EACA,CAACK,CAAAA,EAAGC,CAAAA,KACA,OAAOD,CAAAA,KAAM,QAAA,IAAY,OAAOC,CAAAA,KAAM,QAAA,IAAYD,EAAEG,QAAAA,CAASF,CAAAA,CAAAA,CAAAA,EAL/D,UAAA,CAAA;AAQVG,EAAAA,QAAAA,0BAAWV,SAAAA,EAAWC,KAAAA,KAClBE,uBACIH,SAAAA,EACAC,KAAAA,EACA,CAACK,CAAAA,EAAGC,CAAAA,KACA,OAAOD,CAAAA,KAAM,QAAA,IAAY,OAAOC,CAAAA,KAAM,QAAA,IAAYD,EAAER,QAAAA,CAASS,CAAAA,CAAAA,CAAAA,EAL/D,UAAA;AAOd,CAAA;AAEO,SAASI,iBAAAA,CACZV,UACGW,UAAAA,EAAuB;AAE1B,EAAA,IAAI,CAACX,OAAO,OAAO,KAAA;AACnB,EAAA,IAAIW,UAAAA,CAAWC,MAAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AACpC,EAAA,OAAOD,WAAWE,KAAAA,CAAM,CAACC,MAAMC,cAAAA,CAAef,KAAAA,EAAOc,CAAAA,CAAAA,CAAAA;AACzD;AAPgBJ,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAShB,SAASK,cAAAA,CAAef,OAAuBD,SAAAA,EAAoB;AAC/D,EAAA,IAAI,CAACJ,UAAAA,CAAWI,SAAAA,CAAUI,QAAQ,GAAG,OAAO,KAAA;AAC5C,EAAA,MAAMa,MAAAA,GAASZ,YAAAA,CAAaL,SAAAA,CAAUI,QAAQ,CAAA;AAC9C,EAAA,OAAOa,MAAAA,CAAOjB,WAAWC,KAAAA,CAAAA;AAC7B;AAJSe,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAMF,SAASE,eAAAA,CACZjB,OACAW,UAAAA,EAAiC;AAEjC,EAAA,IAAI,CAACX,OAAO,OAAO,KAAA;AACnB,EAAA,KAAA,MAAWkB,QAAQP,UAAAA,EAAY;AAC3B,IAAA,IAAIO,IAAAA,CAAKC,WAAW,MAAA,EAAQ;AAC5B,IAAA,MAAMC,MAAAA,GAASV,iBAAAA,CAAkBV,KAAAA,EAAOkB,IAAAA,CAAKnB,SAAS,CAAA;AACtD,IAAA,IAAIqB,QAAQ,OAAO,KAAA;AACvB,EAAA;AACA,EAAA,OAAO,IAAA;AACX;AAXgBH,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA;;;AClFhB,IAAMI,UAAAA,GAAuB;AACzB,EAAA,CAAA;AAAG,EAAA,CAAA;AAAG,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA,EAAA;AAAI,EAAA;;AAI9D,SAASC,eAAAA,CACLC,UAAAA,EACAC,YAAAA,EACAC,SAAAA,GAAY,EAAA,EAAE;AAEd,EAAA,MAAMC,eAAwC,EAAC;AAE/CnH,EAAAA,MAAAA,CAAOoH,IAAAA,CAAKJ,UAAAA,CAAAA,CAAYK,OAAAA,CAAQ,CAACC,GAAAA,KAAAA;AAC7B,IAAA,MAAMC,UAAUL,SAAAA,GAAY,CAAA,EAAGA,SAAAA,CAAAA,CAAAA,EAAaI,GAAAA,CAAAA,CAAAA,GAAQA,GAAAA;AACpD,IAAA,MAAMjC,KAAAA,GAAQ2B,WAAWM,GAAAA,CAAAA;AACzB,IAAA,IACI,OAAOjC,UAAU,QAAA,IACjB,CAACmC,MAAMC,OAAAA,CAAQpC,KAAAA,CAAAA,IACfA,KAAAA,KAAU,IAAA,EACZ;AACE8B,MAAAA,YAAAA,CAAaG,GAAAA,CAAAA,GAAOP,eAAAA,CAChB1B,KAAAA,EACA4B,cACAM,OAAAA,CAAAA;IAER,CAAA,MAAA,IAAWN,YAAAA,CAAaM,OAAAA,CAAAA,EAAU;AAC9BJ,MAAAA,YAAAA,CAAaG,GAAAA,CAAAA,GAAOL,YAAAA,CAAaM,OAAAA,EAASlC,KAAAA,CAAAA;IAC9C,CAAA,MAAO;AACH8B,MAAAA,YAAAA,CAAaG,GAAAA,CAAAA,GAAOjC,KAAAA;AACxB,IAAA;EACJ,CAAA,CAAA;AAEA,EAAA,OAAO8B,YAAAA;AACX;AA5BSJ,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA;AA8BF,SAASW,gBAAAA,CACZC,KACAV,YAAAA,EAA2B;AAE3B,EAAA,OAAOF,eAAAA,CAAgBY,KAAKV,YAAAA,CAAAA;AAChC;AALgBS,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AAOhB,IAAME,SAAAA,2BAAavC,KAAAA,KAAAA;AACf,EAAA,MAAMwC,MAAAA,GAASC,OAAOzC,KAAAA,CAAAA;AACtB,EAAA,IAAI,CAACwC,MAAAA,IAAUE,KAAAA,CAAMF,MAAAA,GAAS,OAAOG,MAAAA;AACrC,EAAA,OAAOH,MAAAA;AACX,CAAA,EAJkB,WAAA,CAAA;AAMlB,IAAMI,iBAAAA,mBACF,MAAA,CAAA,CAACC,QAAAA,EAAkBC,QAAAA,KAAsB,CAAC9C,KAAAA,KAAAA;AACtC,EAAA,MAAMwC,MAAAA,GAASD,UAAUvC,KAAAA,CAAAA;AACzB,EAAA,IAAI,CAACwC,QAAQ,OAAOG,MAAAA;AACpB,EAAA,IAAIG,QAAAA,IAAYN,MAAAA,GAASM,QAAAA,EAAU,OAAOA,QAAAA;AAC1C,EAAA,IAAIN,MAAAA,GAASK,UAAU,OAAOA,QAAAA;AAC9B,EAAA,OAAOL,MAAAA;AACX,CAAA,EANA,mBAAA,CAAA;AAQG,IAAMO,mBAAAA,mBACT,MAAA,CAAA,CAACC,OAAAA,EAAiBC,OAAAA,KAClB,CAACjD,KAAAA,KAAAA;AACG,EAAA,MAAMkD,SAAAA,GAAYC,QAAAA,CAASnD,KAAAA,EAAO,EAAA,CAAA;AAElC,EAAA,IACIyB,WAAWxB,QAAAA,CAASiD,SAAAA,KACpBA,SAAAA,IAAaF,OAAAA,IACbE,aAAaD,OAAAA,EACf;AACE,IAAA,OAAO,GAAGC,SAAAA,CAAAA,EAAAA,CAAAA;AACd,EAAA;AAGA,EAAA,MAAME,cAAAA,GAAiB3B,WAAW4B,MAAAA,CAC9B,CAACC,SAASA,IAAAA,IAAQN,OAAAA,IAAWM,QAAQL,OAAAA,CAAAA;AAGzC,EAAA,IAAIG,cAAAA,CAAepC,WAAW,CAAA,EAAG;AAC7B,IAAA,OAAO2B,MAAAA;AACX,EAAA;AAGA,EAAA,IAAIY,WAAAA,GAAcH,eAAe,CAAA,CAAA;AACjC,EAAA,IAAII,YAAAA,GAAeC,IAAAA,CAAKC,GAAAA,CAAIR,SAAAA,GAAYK,WAAAA,CAAAA;AAExC,EAAA,KAAA,MAAWD,QAAQF,cAAAA,EAAgB;AAC/B,IAAA,MAAMO,IAAAA,GAAOF,IAAAA,CAAKC,GAAAA,CAAIR,SAAAA,GAAYI,IAAAA,CAAAA;AAClC,IAAA,IAAIK,OAAOH,YAAAA,EAAc;AACrBA,MAAAA,YAAAA,GAAeG,IAAAA;AACfJ,MAAAA,WAAAA,GAAcD,IAAAA;AAClB,IAAA;AACJ,EAAA;AAGA,EAAA,OAAO,GAAGC,WAAAA,CAAAA,EAAAA,CAAAA;AACd,CAAA,EAnCA,qBAAA,CAAA;AAoCG,IAAMK,cAAAA,2BAAkB5D,KAAAA,KAAAA;AAC3B,EAAA,MAAM6D,eAAAA,GAAkB7D,MAAM8D,WAAAA,EAAW;AACzC,EAAA,OAAOD,eAAAA;AACX,CAAA,EAH8B,gBAAA,CAAA;AAK9B,IAAME,YAAAA,mBAAe,MAAA,CAAA,CAACC,WAAAA,KAA0B,CAAChE,KAAAA,KAAAA;AAC7C,EAAA,IAAI,OAAOA,KAAAA,KAAU,QAAA,EAAU,OAAO2C,MAAAA;AACtC,EAAA,MAAMsB,aAAAA,GAAgBjE,MAAMkE,WAAAA,EAAW;AACvC,EAAA,OAAOF,WAAAA,CAAY/D,QAAAA,CAASgE,aAAAA,CAAAA,GAAiBA,aAAAA,GAAgBtB,MAAAA;AACjE,CAAA,EAJqB,cAAA,CAAA;AAMd,IAAMwB,gBAAAA,GAAkC;EAC3C,4BAAA,EAA8BvB,iBAAAA,CAAkB,KAAK,EAAA,CAAA;EACrD,4BAAA,EAA8BG,mBAAAA,CAAoB,GAAG,EAAA,CAAA;EACrD,6BAAA,EAA+Ba,cAAAA;EAC/B,oCAAA,EAAsChB,iBAAAA,CAAkB,IAAI,CAAA,CAAA;EAC5D,qCAAA,EAAuCA,iBAAAA,CAAkB,KAAK,CAAA,CAAA;;AAG9D,EAAA,8BAAA,EAAgCmB,YAAAA,CAAa;AAAC,IAAA,MAAA;AAAQ,IAAA;AAAW,GAAA,CAAA;AACjE,EAAA,qCAAA,EAAuCA,YAAAA,CAAa;AAChD,IAAA,QAAA;AACA,IAAA;AACH,GAAA,CAAA;;AAGD,EAAA,sCAAA,EAAwCA,YAAAA,CAAa;AACjD,IAAA,QAAA;AACA,IAAA;AACH,GAAA,CAAA;;AAGD,EAAA,qCAAA,EAAuCA,YAAAA,CAAa;AAChD,IAAA,QAAA;AACA,IAAA;AACH,GAAA;AACL,CAAA;;;AC/HO,SAASK,SAAAA,CACZC,IAAAA,EACAC,IAAAA,EACAC,QAAAA,EAA4B;AAHhC,EAAA,IAAA,EAAA,EAAA,EAAA;AAKI,EAAA,MAAMC,eAAAA,GAAkB;IACpBC,mBAAAA,EAAAA,CAAqBF,EAAAA,GAAAA,QAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,QAAAA,CAAUE,wBAAVF,IAAAA,GAAAA,EAAAA,GAAiC,IAAA;IACtDG,sBAAAA,EAAAA,CAAwBH,EAAAA,GAAAA,QAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,QAAAA,CAAUG,2BAAVH,IAAAA,GAAAA,EAAAA,GAAoC;AAChE,GAAA;AAEA,EAAA,IAAI,CAACI,OAAAA,CAAQN,IAAAA,EAAMC,IAAAA,CAAAA,EAAO,OAAOM,WAAWP,IAAAA,CAAAA;AAE5C,EAAA,MAAM7C,SAAcW,KAAAA,CAAMC,OAAAA,CAAQiC,IAAAA,CAAAA,GAAQ,KAAK,EAAC;AAEhD,EAAA,KAAA,MAAWpC,OAAOoC,IAAAA,EAAM;AACpB,IAAA,MAAMQ,IAAAA,GAAOR,KAAKpC,GAAAA,CAAAA;AAClB,IAAA,MAAM6C,OAAOR,IAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,IAAAA,CAAOrC,GAAAA,CAAAA;AAEpB,IAAA,IAAI8C,SAASF,IAAAA,CAAAA,IAAS1C,KAAAA,CAAMC,OAAAA,CAAQyC,IAAAA,CAAAA,EAAO;AACvCrD,MAAAA,MAAAA,CAAOS,GAAAA,CAAAA,GAAOmC,SAAAA,CAAUS,IAAAA,EAAMC,MAAMN,eAAAA,CAAAA;IACxC,CAAA,MAAA,IAAWvC,GAAAA,IAAOqC,IAAAA,IAAQE,eAAAA,CAAgBC,mBAAAA,EAAqB;AAC3DjD,MAAAA,MAAAA,CAAOS,GAAAA,CAAAA,GAAO6C,IAAAA;IAClB,CAAA,MAAO;AACHtD,MAAAA,MAAAA,CAAOS,GAAAA,CAAAA,GAAO4C,IAAAA;AAClB,IAAA;AACJ,EAAA;AAEA,EAAA,IAAIL,gBAAgBE,sBAAAA,EAAwB;AACxC,IAAA,KAAA,MAAWzC,OAAOqC,IAAAA,EAAM;AACpB,MAAA,IAAI,EAAErC,OAAOT,MAAAA,CAAAA,EAAS;AAClBA,QAAAA,MAAAA,CAAOS,GAAAA,CAAAA,GAAOqC,IAAAA,CAAKrC,GAAAA,CAAAA;AACvB,MAAA;AACJ,IAAA;AACJ,EAAA;AAEA,EAAA,OAAOT,MAAAA;AACX;AApCgB4C,MAAAA,CAAAA,SAAAA,EAAAA,WAAAA,CAAAA;AAsChB,SAASO,OAAAA,CAAQN,MAAWC,IAAAA,EAAS;AACjC,EAAA,OACKS,QAAAA,CAASV,IAAAA,CAAAA,IAASU,QAAAA,CAAST,IAAAA,CAAAA,IAC3BnC,KAAAA,CAAMC,OAAAA,CAAQiC,IAAAA,CAAAA,IAASlC,KAAAA,CAAMC,OAAAA,CAAQkC,IAAAA,CAAAA;AAE9C;AALSK,MAAAA,CAAAA,OAAAA,EAAAA,SAAAA,CAAAA;AAOT,SAASC,WAAoBtC,GAAAA,EAAM;AAC/B,EAAA,IAAIA,GAAAA,KAAQ,IAAA,IAAQ,OAAOA,GAAAA,KAAQ,UAAU,OAAOA,GAAAA;AAEpD,EAAA,IAAIH,KAAAA,CAAMC,OAAAA,CAAQE,GAAAA,CAAAA,EAAM;AACpB,IAAA,OAAOA,IAAI0C,GAAAA,CAAI,CAACC,IAAAA,KAASL,UAAAA,CAAWK,IAAAA,CAAAA,CAAAA;AACxC,EAAA;AAEA,EAAA,MAAMzD,SAAc,EAAC;AACrB,EAAA,KAAA,MAAWS,OAAOK,GAAAA,EAAK;AACnB,IAAA,IAAI3H,OAAOuK,SAAAA,CAAUC,cAAAA,CAAeC,IAAAA,CAAK9C,GAAAA,EAAKL,GAAAA,CAAAA,EAAM;AAChDT,MAAAA,MAAAA,CAAOS,GAAAA,CAAAA,GAAO2C,UAAAA,CAAYtC,GAAAA,CAAYL,GAAAA,CAAI,CAAA;AAC9C,IAAA;AACJ,EAAA;AAEA,EAAA,OAAOT,MAAAA;AACX;AAfSoD,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAiBT,SAASG,SAAS/E,KAAAA,EAAU;AACxB,EAAA,OACIA,KAAAA,KAAU,IAAA,IACV,OAAOA,KAAAA,KAAU,YACjB,CAACmC,KAAAA,CAAMC,OAAAA,CAAQpC,KAAAA,KACfrF,MAAAA,CAAOuK,SAAAA,CAAUG,QAAAA,CAASD,IAAAA,CAAKpF,KAAAA,CAAAA,KAAW,iBAAA;AAElD;AAPS+E,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA;;;ACvBF,SAASO,kBAAAA,CACZC,MAAAA,EACAC,aAAAA,EACAC,aAAAA,EAA6B;AAE7B,EAAA,OAAOC,gBAAAA,CAAiBH,MAAAA,CAAO9H,aAAAA,EAAe+H,aAAAA,EAAeC,aAAAA,CAAAA;AACjE;AANgBH,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAQT,SAASI,gBAAAA,CACZH,MAAAA,EACAC,aAAAA,EACAC,aAAAA,EAA6B;AAE7B,EAAA,MAAME,gBAA+B,EAAC;AACtC,EAAA,IAAIJ,OAAOlJ,KAAAA,EAAO;AACd,IAAA,KAAA,MAAWuJ,IAAAA,IAAQL,OAAOlJ,KAAAA,EAAO;AAC7B1B,MAAAA,MAAAA,CAAOkL,OACHF,aAAAA,EACAG,wBAAAA,CACIF,MACAL,MAAAA,EACAC,aAAAA,EACAC,aAAAA,CAAAA,CAAAA;AAGZ,IAAA;EACJ,CAAA,MAAO;AACH,IAAA,MAAMM,cAAAA,GAAiBC,uBAAAA,CACnBR,aAAAA,EACA7C,MAAAA,EACA8C,aAAAA,CAAAA;AAEJ,IAAA,MAAMQ,eAAeV,MAAAA,CAAO9K,QAAAA;AAE5B,IAAA,MAAMyL,UAAAA,GAAaC,mBAAAA,CAAoBZ,MAAAA,EAAQC,aAAAA,CAAAA;AAC/C,IAAA,IAAIU,UAAAA,EAAY;AACZP,MAAAA,aAAAA,CAAc1I,UAAAA,GAAaiJ,UAAAA;AAC/B,IAAA;AAEA,IAAA,MAAME,aAAAA,GAAgBC,mBAAAA,CAAoBd,MAAAA,EAAQC,aAAAA,CAAAA;AAElD7K,IAAAA,MAAAA,CAAOkL,MAAAA,CACHF,aAAAA,EACAW,sBAAAA,CAAuBf,MAAAA,EAAQC,aAAAA,EAAe;AAC1CS,MAAAA,YAAAA;AACAF,MAAAA,cAAAA;AACAK,MAAAA;AACJ,KAAA,CAAA,CAAA;AAER,EAAA;AACA,EAAA,OAAOT,aAAAA;AACX;AA3CgBD,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AA6ChB,SAASI,wBAAAA,CACLF,IAAAA,EACAL,MAAAA,EACAC,aAAAA,EACAC,aAAAA,EAA6B;AAE7B,EAAA,MAAMc,cAAAA,GAAiBhB,MAAAA,CAAOlJ,KAAAA,CAAOuJ,IAAAA,CAAAA;AACrC,EAAA,MAAMG,cAAAA,GAAiBC,uBAAAA,CACnBR,aAAAA,EACAI,IAAAA,EACAH,aAAAA,CAAAA;AAEJ,EAAA,MAAMQ,eAAeV,MAAAA,CAAO9K,QAAAA;AAE5B,EAAA,MAAMkL,gBAA+B,EAAC;AAEtC,EAAA,MAAMO,UAAAA,GAAaC,mBAAAA,CAAoBZ,MAAAA,EAAQC,aAAAA,EAAeI,IAAAA,CAAAA;AAC9D,EAAA,IAAIM,UAAAA,EAAY;AACZP,IAAAA,aAAAA,CAAc,CAAA,EAAGC,IAAAA,CAAAA,YAAAA,CAAkB,CAAA,GAAIM,UAAAA;AAC3C,EAAA;AAEA,EAAA,MAAME,aAAAA,GAAgBC,mBAAAA,CAAoBd,MAAAA,EAAQC,aAAAA,EAAeI,IAAAA,CAAAA;AAEjEjL,EAAAA,MAAAA,CAAOkL,MAAAA,CACHF,aAAAA,EACAW,sBAAAA,CAAuBf,MAAAA,EAAQC,aAAAA,EAAe;IAC1CgB,QAAAA,EAAUD,cAAAA;IACVE,UAAAA,EAAYb,IAAAA;AACZK,IAAAA,YAAAA;AACAF,IAAAA,cAAAA;AACAK,IAAAA;AACJ,GAAA,CAAA,CAAA;AAGJ,EAAA,OAAOT,aAAAA;AACX;AAnCSG,MAAAA,CAAAA,wBAAAA,EAAAA,0BAAAA,CAAAA;AAqCT,SAASY,cAAcd,IAAAA,EAAa;AAChC,EAAA,OAAOA,IAAAA,GAAO,CAAA,EAAGA,IAAAA,CAAAA,EAAOpM,6BAAAA,CAAAA,CAAAA,GAAkC,EAAA;AAC9D;AAFSkN,MAAAA,CAAAA,aAAAA,EAAAA,eAAAA,CAAAA;AAIT,SAASC,eAAAA,CAAgB1E,KAAawE,UAAAA,EAAmB;AACrD,EAAA,MAAMG,SAAAA,GAAYF,cAAcD,UAAAA,CAAAA;AAChC,EAAA,OAAO,CAAA,EAAGG,SAAAA,CAAAA,EAAY3E,GAAAA,CAAAA,CAAAA;AAC1B;AAHS0E,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA;AAKT,IAAME,aAAAA,mBAAgB,MAAA,CAAA,CAACC,OAAAA,EAAiB9G,KAAAA,KAAAA;AACpC,EAAA,MAAM+G,YAAAA,GAAe,IAAIC,MAAAA,CACrB,GAAA,GAAMF,OAAAA,CAAQG,OAAAA,CAAQ,KAAA,EAAO,KAAA,CAAA,CAAOA,OAAAA,CAAQ,KAAA,EAAO,IAAA,IAAQ,GAAA,CAAA;AAE/D,EAAA,OAAOF,YAAAA,CAAaG,KAAKlH,KAAAA,CAAAA;AAC7B,CAAA,EALsB,eAAA,CAAA;AAOtB,SAASmH,mBAAAA,CACLlF,KACAuD,aAAAA,EAAkC;AAElC,EAAA,MAAM,EAAE4B,IAAAA,GAAO,EAAA,EAAE,GAAK5B,aAAAA;AACtB,EAAA,KAAA,MAAWsB,WAAWM,IAAAA,EAAM;AACxB,IAAA,IAAIN,OAAAA,KAAY7E,GAAAA,IAAO4E,aAAAA,CAAcC,OAAAA,EAAS7E,GAAAA,CAAAA,EAAM;AAChD,MAAA,OAAO,IAAA;AACX,IAAA;AACJ,EAAA;AACA,EAAA,OAAO,KAAA;AACX;AAXSkF,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA;AAaT,SAASE,qBAAAA,CACLpF,KACAuD,aAAAA,EAAkC;AAElC,EAAA,MAAM,EAAE8B,MAAAA,GAAS,EAAA,EAAE,GAAK9B,aAAAA;AACxB,EAAA,KAAA,MAAWsB,WAAWQ,MAAAA,EAAQ;AAC1B,IAAA,IAAIR,OAAAA,KAAY7E,GAAAA,IAAO4E,aAAAA,CAAcC,OAAAA,EAAS7E,GAAAA,CAAAA,EAAM;AAChD,MAAA,OAAO,IAAA;AACX,IAAA;AACJ,EAAA;AACA,EAAA,OAAO,KAAA;AACX;AAXSoF,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA;AAaT,SAASE,wBAAAA,CACLtF,GAAAA,EACAuD,aAAAA,EACAgC,kBAAAA,EAA4B;AAE5B,EAAA,MAAMC,gBAAAA,GAAmBJ,qBAAAA,CAAsBpF,GAAAA,EAAKuD,aAAAA,CAAAA;AACpD,EAAA,MAAMkC,YACF,CAACD,gBAAAA,KACA,CAACD,kBAAAA,IAAsBL,mBAAAA,CAAoBlF,KAAKuD,aAAAA,CAAAA,CAAAA;AAErD,EAAA,MAAMmC,SAAAA,GAAYR,mBAAAA,CAAoBlF,GAAAA,EAAKuD,aAAAA,IACrC,MAAA,GACA,QAAA;AACN,EAAA,MAAMoC,UAAAA,GAAaJ,qBAAqBG,SAAAA,GAAY,KAAA;AACpD,EAAA,MAAME,eAAAA,GAAkBJ,mBAAmB,QAAA,GAAWG,UAAAA;AACtD,EAAA,OAAO;AAAEF,IAAAA,SAAAA;AAAWG,IAAAA;AAAgB,GAAA;AACxC;AAhBSN,MAAAA,CAAAA,wBAAAA,EAAAA,0BAAAA,CAAAA;AAkBT,SAASO,aAAAA,CACL7F,KACA,EAAEuE,QAAAA,EAAUC,aAAa,EAAA,EAAIsB,aAAAA,IAC7BvC,aAAAA,EAAmC;AArMvC,EAAA,IAAA,EAAA;AAuMI,EAAA,MAAMwC,iBAAAA,GAAAA,CAAoBxC,EAAAA,GAAAA,aAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,aAAAA,CAAenJ,KAAAA,KAAfmJ,IAAAA,GAAAA,MAAAA,GAAAA,EAAAA,CAAuBiB,UAAAA,CAAAA;AAEjD,EAAA,MAAMwB,gBAAiCzC,aAAAA,GACjC+B,wBAAAA,CAAyBtF,KAAKuD,aAAAA,EAAeuC,aAAAA,KAAkB,MAAA,CAAA,GAC/D;IACIL,SAAAA,EAAW,IAAA;IACXG,eAAAA,EAAiB;AACrB,GAAA;AACN,EAAA,MAAMK,oBAAqCF,iBAAAA,GACrCT,wBAAAA,CACItF,KACA+F,iBAAAA,EACAD,aAAAA,KAAkB,MAAA,CAAA,GAEtB;IACIL,SAAAA,EAAW,IAAA;IACXG,eAAAA,EAAiB;AACrB,GAAA;AAGN,EAAA,MAAMH,SAAAA,GAAAA,CACD,CAAClB,QAAAA,IAAYA,QAAAA,CAAS2B,KAAK,CAACC,CAAAA,KAAMnG,GAAAA,CAAItB,UAAAA,CAAWyH,CAAAA,CAAAA,CAAAA,KAClDH,aAAAA,CAAcP,aACdQ,iBAAAA,CAAkBR,SAAAA;AAEtB,EAAA,MAAMG,eAAAA,GACFI,aAAAA,CAAcJ,eAAAA,IAAmBK,iBAAAA,CAAkBL,eAAAA;AAEvD,EAAA,OAAO;AAAEH,IAAAA,SAAAA;AAAWG,IAAAA;AAAgB,GAAA;AACxC;AAlCSC,MAAAA,CAAAA,aAAAA,EAAAA,eAAAA,CAAAA;AAoCT,SAASO,YAAAA,CACLpG,GAAAA,EACA,EACIuE,QAAAA,EACAC,UAAAA,GAAa,IACbsB,aAAAA,EACAO,cAAAA,GAAiB,KAAA,EAAK,EAE1B9C,aAAAA,EAAmC;AAEnC,EAAA,MAAMhE,MAAAA,GAASsG,cACX7F,GAAAA,EACA;AAAEuE,IAAAA,QAAAA;AAAUC,IAAAA,UAAAA;AAAYsB,IAAAA,aAA8B,CAAA,EACtDvC,aAAAA,CAAAA;AAEJ,EAAA,MAAMkC,SAAAA,GAAYY,kBAAkB9G,MAAAA,CAAOkG,SAAAA;AAC3C,EAAA,OAAO;AAAEA,IAAAA,SAAAA;AAAWG,IAAAA,eAAAA,EAAiBrG,MAAAA,CAAOqG;AAAgB,GAAA;AAChE;AAjBSQ,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAmBT,SAASE,mBAAAA,CACL5C,aAAAA,EACA1D,GAAAA,EACA,EAAEwE,UAAAA,EAAY6B,gBAAgBlC,aAAAA,EAAa,EAC3C3L,QAAAA,EACA+N,QAAAA,EACAX,eAAAA,EAAsC;AAEtC,EAAA,MAAMY,OAAAA,GAAU9B,eAAAA,CAAgB1E,GAAAA,EAAKwE,UAAAA,CAAAA;AAErC,EAAA,IAAI6B,cAAAA,IAAkBT,mBAAmB,IAAA,EAAM;AAC3ClC,IAAAA,aAAAA,CAAc8C,OAAAA,CAAAA,GAAWZ,eAAAA;AACzB,IAAA;AACJ,EAAA;AAEA,EAAA,MAAMa,gBAAgBjO,QAAAA,IAAYE,MAAAA,CAAOoH,IAAAA,CAAKtH,QAAAA,EAAUuG,MAAAA,GAAS,CAAA;AACjE,EAAA,MAAM2H,iBAAiBH,QAAAA,IAAY7N,MAAAA,CAAOoH,IAAAA,CAAKyG,QAAAA,EAAUxH,MAAAA,GAAS,CAAA;AAClE,EAAA,MAAMD,UAAAA,GAAa6H,mBAAAA,CAAoB3G,GAAAA,EAAKmE,aAAAA,CAAAA;AAE5CT,EAAAA,aAAAA,CAAc8C,OAAAA,CAAAA,GACV,CAACC,aAAAA,IAAiB,CAACC,kBAAkB,CAAC5H,UAAAA,GAChC,IAAA,GACA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,EAAA,EACQ2H,aAAAA,IAAiB;AAAEjO,IAAAA;AAAS,GAAA,CAAA,EAC5BkO,cAAAA,IAAkB;AAAEH,IAAAA;AAAS,GAAA,CAAA,EAC7BzH,UAAAA,IAAc;AAAEA,IAAAA;AAAW,GAAA,CAAA;AAEjD;AA3BSwH,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA;AA6BT,SAASjC,sBAAAA,CACLf,MAAAA,EACAC,aAAAA,EACA,EACIgB,UACAqC,UAAAA,GAAa,EAAA,EACbpC,UAAAA,GAAa,EAAA,EACbsB,eAAee,kBAAAA,EACf7C,YAAAA,EACAF,cAAAA,EACAK,aAAAA,EACAkC,gBAAc,EACK;AAEvB,EAAA,MAAM3C,gBAA+B,EAAC;AACtC,EAAA,MAAMoD,iBAAAA,GAAoBC,iBAAAA,CAAkBzD,MAAAA,EAAQC,aAAAA,EAAe;AAC/DiB,IAAAA,UAAAA;AACAoC,IAAAA;GACJ,CAAA;AAEA,EAAA,KAAA,MAAW5G,OAAOsD,MAAAA,EAAQ;AACtB,IAAA,IAAI9L,wBAAAA,CAAyBwG,QAAAA,CAASgC,GAAAA,CAAAA,EAAM;AACxC,MAAA;AACJ,IAAA;AACA,IAAA,MAAM8F,gBAAgBe,kBAAAA,IAAAA,IAAAA,GAAAA,kBAAAA,GAAsBC,iBAAAA;AAC5C,IAAA,MAAME,WAAAA,GAAc1D,OAAOtD,GAAAA,CAAAA;AAC3B,IAAA,MAAMiH,UAAAA,GAAa,CAAA,EAAGL,UAAAA,CAAAA,EAAa5G,GAAAA,CAAAA,CAAAA;AACnC,IAAA,MAAMkH,SAAAA,GAAY,CAAA,EAAGD,UAAAA,CAAAA,EAAa3P,gCAAAA,CAAAA,CAAAA;AAElC,IAAA,MAAM6P,eAAAA,GAAkBf,aACpBa,UAAAA,EACA;AACI1C,MAAAA,QAAAA;AACAC,MAAAA,UAAAA;AACAsB,MAAAA,aAAAA;AACAO,MAAAA;AACJ,KAAA,EACA9C,aAAAA,CAAAA;AAEJ,IAAA,IAAI,CAAC4D,gBAAgB1B,SAAAA,EAAW;AAC5B,MAAA;AACJ,IAAA;AAEA,IAAA,IAAIjN,QAAAA,GAAWwL,YAAAA;AACf,IAAA,IAAIuC,QAAAA,GAAsC7F,MAAAA;AAC1C,IAAA,IAAIR,KAAAA,CAAMC,OAAAA,CAAQ6G,WAAAA,CAAAA,EAAc;AAE5BxO,MAAAA,QAAAA,GAAW4O,iBAAAA,CACPpD,YAAAA,EACA,EAAC,EACDF,cAAAA,CAAAA;AAEJyC,MAAAA,QAAAA,GAAWc,2BAAAA,CAA4BL,aAAazD,aAAAA,EAAe;AAC/DgB,QAAAA,QAAAA;AACAC,QAAAA,UAAAA;QACAoC,UAAAA,EAAYM,SAAAA;AACZlD,QAAAA,YAAAA;AACAF,QAAAA,cAAAA;AACAK,QAAAA,aAAAA;AACAkC,QAAAA;OACJ,CAAA;AAEA3N,MAAAA,MAAAA,CAAOkL,MAAAA,CAAOF,eAAe6C,QAAAA,CAAAA;AACjC,IAAA,CAAA,MAAA,IACI,OAAOS,WAAAA,KAAgB,QAAA,IACvB,CAAC9G,KAAAA,CAAMC,OAAAA,CAAQ6G,WAAAA,CAAAA,EACjB;AACExO,MAAAA,QAAAA,GAAW4O,iBAAAA,CACPpD,YAAAA,EACAgD,WAAAA,CAAYxO,QAAAA,EACZsL,cAAAA,CAAAA;AAGJyC,MAAAA,QAAAA,GAAWlC,sBAAAA,CACP2C,aACAzD,aAAAA,EACA;AACIgB,QAAAA,QAAAA;AACAC,QAAAA,UAAAA;QACAoC,UAAAA,EAAYM,SAAAA;QACZlD,YAAAA,EAAcxL,QAAAA;AACd2L,QAAAA,aAAAA;AACAkC,QAAAA;OACJ,CAAA;AAEJ3N,MAAAA,MAAAA,CAAOkL,MAAAA,CAAOF,eAAe6C,QAAAA,CAAAA;AACjC,IAAA,CAAA,MAAA,IAAW,OAAOS,WAAAA,KAAgB,SAAA,IAAa,CAACA,WAAAA,EAAa;AAEzD,MAAA;IACJ,CAAA,MAAA,IAAW,OAAOA,WAAAA,KAAgB,SAAA,IAAaA,WAAAA,EAAa;AACxDxO,MAAAA,QAAAA,GAAW4O,iBAAAA,CACPpD,YAAAA,EACA,EAAC,EACDF,cAAAA,CAAAA;AAER,IAAA;AAEAwC,IAAAA,mBAAAA,CACI5C,eACAuD,UAAAA,EACA;AACIzC,MAAAA,UAAAA;AACA6B,MAAAA,cAAAA;AACAlC,MAAAA;KACJ,EACA3L,QAAAA,EACA+N,QAAAA,EACAY,eAAAA,CAAgBvB,eAAe,CAAA;AAEvC,EAAA;AAEA,EAAA,OAAOlC,aAAAA;AACX;AAhHSW,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAkHT,SAASsC,mBAAAA,CACL3G,KACAmE,aAAAA,EAA+C;AAE/C,EAAA,IAAI,CAACA,aAAAA,IAAiBA,aAAAA,CAAcpF,MAAAA,KAAW,GAAG,OAAO2B,MAAAA;AACzD,EAAA,MAAMnB,MAAAA,GAAS4E,aAAAA,CAAcmD,MAAAA,CAAO,CAAC/H,SAAQ4G,CAAAA,KAAAA;AACzC,IAAA,MAAMoB,QAAAA,GAAWpB,CAAAA,CAAEpD,GAAAA,CAAI/C,GAAAA,CAAAA;AACvB,IAAA,IACI,OAAOuH,QAAAA,KAAa,QAAA,KACnBA,QAAAA,KAAa,MAAA,IAAUA,aAAa,QAAA,CAAA,EACvC;AACEhI,MAAAA,QAAOiI,IAAAA,CAAK;QACRlI,MAAAA,EAAQiI,QAAAA;AACRrJ,QAAAA,SAAAA,EAAWiI,CAAAA,CAAEjI;OACjB,CAAA;AACJ,IAAA;AACA,IAAA,OAAOqB,OAAAA;AACX,EAAA,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAIA,MAAAA,CAAOR,MAAAA,KAAW,CAAA,EAAG,OAAO2B,MAAAA;AAChC,EAAA,OAAOnB,MAAAA;AACX;AArBSoH,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA;AAuBT,SAASvC,mBAAAA,CACLd,MAAAA,EACAC,aAAAA,EACAI,IAAAA,EAAa;AAlajB,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAoaI,EAAA,MAAM8D,mBAAmBlE,aAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,aAAAA,CAAemE,WAAAA;AACxC,EAAA,MAAMC,mBAAmBhE,IAAAA,GAAAA,CACnBJ,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,aAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,aAAAA,CAAenJ,UAAfmJ,IAAAA,GAAAA,MAAAA,GAAAA,EAAAA,CAAuBI,IAAAA,CAAAA,KAAvBJ,mBAA8BmE,WAAAA,GAC9BhH,MAAAA;AAEN,EAAA,IAAI,CAAC+G,gBAAAA,IAAoB,CAACE,gBAAAA,EAAkB,OAAOjH,MAAAA;AAEnD,EAAA,MAAMkH,kBAAAA,GAAqB;AACnBH,IAAAA,GAAAA,gBAAAA,IAAAA,IAAAA,GAAAA,gBAAAA,GAAoB,EAAA;AACpBE,IAAAA,GAAAA,gBAAAA,IAAAA,IAAAA,GAAAA,gBAAAA,GAAoB;;AAE5B,EAAA,OAAA,CACIC,EAAAA,GAAAA,kBAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,kBAAAA,CAAoB7E,GAAAA,CAAI,CAAC9D,CAAAA,MAAO;AAC5Bf,IAAAA,SAAAA,EAAWe,CAAAA,CAAEf,SAAAA;IACb6E,GAAAA,EAAKsB,sBAAAA,CAAuBf,QAAQrE,CAAAA,EAAG;MAAEoH,cAAAA,EAAgB;KAAK;AAClE,GAAA,CAAA,CAAA,KAHAuB,IAAAA,GAAAA,EAAAA,GAGOlH,MAAAA;AAEf;AAtBS0D,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA;AAwBT,SAASF,mBAAAA,CACLZ,MAAAA,EACAC,aAAAA,EACAI,IAAAA,EAAa;AA1bjB,EAAA,IAAA,EAAA,EAAA,EAAA;AA4bI,EAAA,MAAMkE,iBAAiBlE,IAAAA,GAAAA,CACjBJ,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,aAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,aAAAA,CAAenJ,UAAfmJ,IAAAA,GAAAA,MAAAA,GAAAA,EAAAA,CAAuBI,IAAAA,CAAAA,KAAvBJ,mBAA8BvI,UAAAA,GAC9B0F,MAAAA;AACN,EAAA,MAAMoH,uBAAuBvE,aAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,aAAAA,CAAevI,UAAAA;AAC5C,EAAA,MAAM+M,gBAAAA,GAAmBF,cAAAA,GACnBG,YAAAA,CAAaF,oBAAAA,EAAsBD,cAAAA,CAAAA,GACnCC,oBAAAA;AACN,EAAA,OAAOE,YAAAA,CAAa1E,MAAAA,CAAOtI,UAAAA,EAAY+M,gBAAAA,CAAAA;AAC3C;AAbS7D,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA;AAeT,SAASH,uBAAAA,CACLR,aAAAA,EACAI,IAAAA,EACAH,aAAAA,EAA6B;AAzcjC,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA2cI,EAAA,MAAMyE,eAAetE,IAAAA,GAAAA,CACfJ,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,aAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,aAAAA,CAAenJ,UAAfmJ,IAAAA,GAAAA,MAAAA,GAAAA,EAAAA,CAAuBI,IAAAA,CAAAA,KAAvBJ,mBAA8B/K,QAAAA,GAC9BkI,MAAAA;AACN,EAAA,MAAMwH,kBAAAA,GAAAA,CAAqB3E,EAAAA,GAAAA,aAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,aAAAA,CAAe/K,QAAAA,KAAf+K,IAAAA,GAAAA,EAAAA,GAA2B,EAAC;AACvD,EAAA,MAAM4E,UAAAA,GAAaF,YAAAA,GACbD,YAAAA,CAAaE,kBAAAA,EAAoBD,YAAAA,CAAAA,GACjCC,kBAAAA;AACN,EAAA,OAAO1E,aAAAA,IAAiB2E,UAAAA,GAClB/H,gBAAAA,CAAiB+H,UAAAA,EAAY3E,aAAAA,CAAAA,GAC7B2E,UAAAA;AACV;AAfSpE,MAAAA,CAAAA,uBAAAA,EAAAA,yBAAAA,CAAAA;AAiBT,SAASqD,iBAAAA,CACLgB,iBAAAA,EACAC,YAAAA,EACAvE,cAAAA,EAAmD;AAEnD,EAAA,MAAMwE,YAAAA,GAAeN,YAAAA,CAAaI,iBAAAA,EAAmBC,YAAAA,CAAAA;AACrD,EAAA,OAAOL,YAAAA,CAAaM,cAAcxE,cAAAA,CAAAA;AACtC;AAPSsD,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAST,SAASY,YAAAA,CACLO,SACAC,MAAAA,EAA2C;AAG3C,EAAA,IAAI,CAACA,MAAAA,IAAU,CAACD,OAAAA,EAAS,OAAO7H,MAAAA;AAEhC,EAAA,IAAI,CAAC8H,QAAQ,OAAOD,OAAAA;AAEpB,EAAA,IAAI,OAAOC,MAAAA,KAAW,QAAA,IAAYtI,MAAMC,OAAAA,CAAQqI,MAAAA,GAAS,OAAOD,OAAAA;AAChE,EAAA,OAAO,CAACA,OAAAA,GAAUC,MAAAA,GAASrG,SAAAA,CAAUoG,SAASC,MAAAA,CAAAA;AAClD;AAXSR,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAaT,SAASS,UAAAA,CACLzB,WAAAA,EACA,EAAEJ,UAAAA,EAAU,EAAwB;AAEpC,EAAA,OAAOlO,MAAAA,CAAOoH,IAAAA,CAAKkH,WAAAA,CAAAA,CAAajE,GAAAA,CAAI,CAACoD,CAAAA,KACjCzB,eAAAA,CAAgB,CAAA,EAAGkC,UAAAA,CAAAA,EAAaT,CAAAA,EAAG,CAAA,CAAA;AAE3C;AAPSsC,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAST,SAASC,YAAAA,CACL1B,WAAAA,EACA,EAAExC,UAAAA,EAAYoC,YAAU,EAAwB;AAEhD,EAAA,OAAOI,WAAAA,CAAYM,MAAAA,CAAO,CAAC/H,MAAAA,EAAQxB,KAAAA,KAAAA;AAC/B,IAAA,IAAI,OAAOA,UAAU,QAAA,EAAU;AAC3BwB,MAAAA,MAAAA,CAAOiI,KAAK9C,eAAAA,CAAgB,CAAA,EAAGkC,UAAAA,CAAAA,EAAa7I,KAAAA,EAAO,CAAA,CAAA;IACvD,CAAA,MAAO;AACHwB,MAAAA,MAAAA,CAAOiI,IAAAA,CAAI,GAAIiB,UAAAA,CAAW1K,KAAAA,EAAO;AAAEyG,QAAYoC;AAAW,OAAA,CAAA,CAAA;AAC9D,IAAA;AACA,IAAA,OAAOrH,MAAAA;AACX,EAAA,CAAA,EAAG,EAAE,CAAA;AACT;AAZSmJ,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAcT,SAAS3B,kBACLC,WAAAA,EACAzD,aAAAA,EACA,EAAEiB,UAAAA,EAAYoC,YAAU,EAAwB;AAvgBpD,EAAA,IAAA,EAAA;AAygBI,EAAA,IAAI,CAACrD,aAAAA,EAAe;AACpB,EAAA,MAAMoF,WAAWzI,KAAAA,CAAMC,OAAAA,CAAQ6G,WAAAA,CAAAA,GACzB0B,aAAa1B,WAAAA,EAAa;AAAExC,IAAAA,UAAAA;AAAYoC,IAAAA;GAAW,CAAA,GACnD6B,WAAWzB,WAAAA,EAAa;AAAExC,IAAYoC;GAAW,CAAA;AACvD,EAAA,MAAMb,iBAAAA,GAAoBvB,UAAAA,GAAAA,CACpBjB,EAAAA,GAAAA,aAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,aAAAA,CAAenJ,KAAAA,KAAfmJ,mBAAuBiB,UAAAA,CAAAA,GACvB9D,MAAAA;AACN,EAAA,KAAA,MAAWV,OAAO2I,QAAAA,EAAU;AACxB,IAAA,IAAIzD,mBAAAA,CAAoBlF,GAAAA,EAAKuD,aAAAA,CAAAA,EAAgB;AACzC,MAAA,OAAO,MAAA;AACX,IAAA,CAAA,MAAA,IACIwC,iBAAAA,IACAb,mBAAAA,CAAoBlF,GAAAA,EAAK+F,iBAAAA,CAAAA,EAC3B;AACE,MAAA,OAAO,MAAA;AACX,IAAA;AACJ,EAAA;AACA,EAAA,OAAOrF,MAAAA;AACX;AAvBSqG,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAyBT,SAASM,2BAAAA,CACLL,WAAAA,EACAzD,aAAAA,EACA,EACIgB,QAAAA,EACAC,UAAAA,EACAoC,UAAAA,EACA5C,YAAAA,EACAF,cAAAA,EACAK,aAAAA,EACAkC,cAAAA,EAAc,EACK;AAEvB,EAAA,MAAM3C,gBAA+B,EAAC;AACtC,EAAA,MAAMoC,aAAAA,GAAgBiB,iBAAAA,CAAkBC,WAAAA,EAAazD,aAAAA,EAAe;AAChEiB,IAAAA,UAAAA;AACAoC,IAAAA;GACJ,CAAA;AACA,EAAA,MAAMgC,cAAAA,GAAiBxB,iBAAAA,CACnBpD,YAAAA,EACAtD,MAAAA,EACAoD,cAAAA,CAAAA;AAGJkD,EAAAA,WAAAA,CAAYjH,OAAAA,CAAQ,CAAC8I,MAAAA,KAAAA;AACjB,IAAA,MAAMC,QAAAA,GAAW,CAAA,EAAGlC,UAAAA,CAAAA,EAAaiC,MAAAA,CAAAA,CAAAA;AACjC,IAAA,IAAI,OAAOA,WAAW,QAAA,EAAU;AAC5B,MAAA,MAAM1B,eAAAA,GAAkBf,aACpB0C,QAAAA,EACA;AACIvE,QAAAA,QAAAA;AACAC,QAAAA,UAAAA;AACAsB,QAAAA,aAAAA;AACAO,QAAAA;AACJ,OAAA,EACA9C,aAAAA,CAAAA;AAEJ,MAAA,IAAI,CAAC4D,gBAAgB1B,SAAAA,EAAW;AAC5B,QAAA;AACJ,MAAA;AACAa,MAAAA,mBAAAA,CACI5C,eACAoF,QAAAA,EACA;AACIvE,QACAC,UAAAA;AACA6B,QAAAA,cAAAA;AACAlC,QAAAA;OACJ,EACAyE,cAAAA,EACAlI,MAAAA,EACAyG,eAAAA,CAAgBvB,eAAe,CAAA;IAEvC,CAAA,MAAO;AACHlN,MAAAA,MAAAA,CAAOkL,MAAAA,CACHF,aAAAA,EACAW,sBAAAA,CAAuBwE,MAAAA,EAAQtF,aAAAA,EAAe;AAC1CgB,QAAAA,QAAAA;AACAqC,QAAAA,UAAAA;AACApC,QAAAA,UAAAA;AACAsB,QAAAA,aAAAA;AACA9B,QAAAA,YAAAA;AACAF,QAAAA,cAAAA;AACAK,QAAAA,aAAAA;AACAkC,QAAAA;AACJ,OAAA,CAAA,CAAA;AAER,IAAA;EACJ,CAAA,CAAA;AACA,EAAA,OAAO3C,aAAAA;AACX;AAtES2D,MAAAA,CAAAA,2BAAAA,EAAAA,6BAAAA,CAAAA;;;ACphBF,SAAS0B,cAAAA,CACZC,MAAAA,EACAzF,aAAAA,EACAhI,OAAAA,EAAuB;AAZ3B,EAAA,IAAA,EAAA;AAcI,EAAA,MAAM0N,UAAAA,GAAa1N,4BAAW7D,aAAAA,CAAcgG,MAAAA;AAC5C,EAAA,MAAMwL,qBAAAA,GAAAA,CAAwB3L,EAAAA,GAAAA,aAAAA,CAAcyL,MAAAA,CAAAA,KAAdzL,IAAAA,GAAAA,MAAAA,GAAAA,EAAAA,CAAwB0L,UAAAA,CAAAA;AACtD,EAAA,IAAI,CAACC,qBAAAA,EAAuB;AACxB,IAAA,MAAM,IAAIC,KAAAA,CACN,CAAA,2BAAA,EAA8BH,MAAAA,CAAAA,aAAAA,EAAsBzN,OAAAA,CAAAA,CAAS,CAAA;AAErE,EAAA;AACA,EAAA,MAAM6N,YAAAA,GAAe/F,kBAAAA,CACjB6F,qBAAAA,EACA3F,aAAAA,EACArB,gBAAAA,CAAAA;AAEJ,EAAA,OAAO,IAAImH,wBAAwBD,YAAAA,CAAAA;AACvC;AAlBgBL,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAoBT,IAAMM,wBAAAA,GAAN,MAAMA,wBAAAA,CAAAA;AACTC,EAAAA,WAAAA,CAAoBC,OAAAA,EAAwB;;SAAxBA,OAAAA,GAAAA,OAAAA;AAAyB,EAAA;AAErCtL,EAAAA,QAAAA,CAAS+B,GAAAA,EAAa;AAC1B,IAAA,OAAO,IAAA,CAAKuJ,QAAQvJ,GAAAA,CAAAA;AACxB,EAAA;AAEAwJ,EAAAA,SAAAA,CAAUxJ,KAAa7B,KAAAA,EAAiC;AACpD,IAAA,MAAMJ,KAAAA,GAAQ,IAAA,CAAKE,QAAAA,CAAS+B,GAAAA,CAAAA;AAC5B,IAAA,IAAI,CAACjC,OAAO,OAAO,KAAA;AACnB,IAAA,IAAI,OAAOA,KAAAA,KAAU,QAAA,IAAYA,KAAAA,CAAMe,UAAAA,EAAY;AAC/C,MAAA,OAAOM,eAAAA,CACHjB,KAAAA,EACAJ,KAAAA,CAAMe,UAAU,CAAA;AAExB,IAAA;AACA,IAAA,OAAO,IAAA;AACX,EAAA;AAEA2K,EAAAA,WAAAA,CAAYzJ,GAAAA,EAAwC;AAChD,IAAA,MAAMjC,KAAAA,GAAQ,IAAA,CAAKE,QAAAA,CAAS+B,GAAAA,CAAAA;AAC5B,IAAA,IACI,CAACjC,KAAAA,IACD,OAAOA,KAAAA,KAAU,SAAA,IACjB,OAAOA,KAAAA,KAAU,QAAA,IACjB,CAACA,KAAAA,CAAMwI,QAAAA,EAEP,OAAO7F,MAAAA;AACX,IAAA,OAAO3C,KAAAA,CAAMwI,QAAAA;AACjB,EAAA;AAEAmD,EAAAA,YAAAA,CACIC,QACAhG,IAAAA,EAC+B;AAC/B,IAAA,MAAM3D,GAAAA,GAAM,CAAA,EAAG2D,IAAAA,GAAOA,IAAAA,GAAO,OAAO,EAAA,CAAA,UAAA,CAAA;AACpC,IAAA,MAAM5F,KAAAA,GAAQ,IAAA,CAAKE,QAAAA,CAAS+B,GAAAA,CAAAA;AAC5B,IAAA,OAAQjC,KAAAA,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,KAAAA,CAAgD4L,MAAAA,CAAAA;AAC5D,EAAA;AAEAC,EAAAA,WAAAA,CAAY5J,GAAAA,EAAkD;AAC1D,IAAA,MAAMjC,KAAAA,GAAQ,IAAA,CAAKE,QAAAA,CAAS+B,GAAAA,CAAAA;AAC5B,IAAA,IACI,CAACjC,KAAAA,IACD,OAAOA,KAAAA,KAAU,SAAA,IACjB,OAAOA,KAAAA,KAAU,QAAA,IACjB,CAACA,KAAAA,CAAMvF,QAAAA,EAEP,OAAOkI,MAAAA;AACX,IAAA,OAAO3C,KAAAA,CAAMvF,QAAAA;AACjB,EAAA;AACJ,CAAA;AAnDa6Q,MAAAA,CAAAA,wBAAAA,EAAAA,yBAAAA,CAAAA;AAAN,IAAMA,uBAAAA,GAAN","file":"index.mjs","sourcesContent":["export const STRUCTURE_SECTION_NAME_SEPARATOR = '.';\nexport const STRUCTURE_VIEW_NAME_SEPARATOR = '::';\nexport const STRUCTURE_RESERVED_WORDS = ['views', 'defaults', 'subModules'];\n\nexport enum Widget {\n DASHBOARD = 'dashboard',\n REPORT = 'report',\n DOWNLOAD_MANAGER = 'download-manager',\n}\n\nexport enum WidgetVersion {\n v1 = '1.0',\n latest = 'latest',\n}\n","type DecoratorFactory = (metadata?: any) => PropertyDecorator;\n\nlet ApiProperty: DecoratorFactory;\n\ntry {\n ApiProperty = require('@nestjs/swagger').ApiProperty;\n} catch {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ApiProperty = (metadata?: unknown): PropertyDecorator => {\n return (): void => {};\n };\n}\n\nexport { ApiProperty };\n","import { WidgetConfig } from '../models/structure.models';\n\nconst dashboardV1Config: WidgetConfig = {\n version: '1.0',\n baseStructure: {\n views: {\n list: ['navBar', 'assetList', 'controlBarLeft', 'controlBarRight'],\n design: [\n 'navBar',\n 'header',\n 'controlBarRight',\n 'menuBar',\n 'toolBar',\n 'configPanel',\n 'filterPanel',\n 'downloadModal',\n ],\n preview: ['navBar', 'header', 'controlBarRight', 'filterPanel'],\n endUser: ['navBar', 'toolBar', 'filterPanel', 'downloadModal'],\n },\n\n navBar: ['qAppTitle', 'qBackButton'],\n\n endUserTopBar: ['indicator', 'options'],\n\n assetList: {\n defaults: {\n assetListViewMode: 'card',\n },\n asset: {\n optionMenu: [\n 'qEditDash',\n 'qRenameDash',\n 'qDeleteDash',\n 'qDuplDash',\n 'qShareDash',\n ],\n },\n },\n\n controlBarLeft: ['qCreateDash'],\n\n controlBarRight: [\n 'qSwitchView',\n 'timezone',\n 'qFilterBy',\n 'qSortBy',\n 'qSearch',\n 'qSelectColumn',\n 'qStatus',\n 'qPreview',\n 'qDiscard',\n 'qPublish',\n 'qDesign',\n ],\n\n header: ['qDashFavorite', 'qShareDash', 'qDashName', 'qDashDesc'],\n\n menuBar: {\n file: [\n 'qMnuCreateDash',\n 'qMnuOpenDash',\n 'qMnuDuplicateDash',\n 'qMnuCanvasSize',\n 'qMnuThemes',\n 'qShareDash',\n 'qMnuDeleteDash',\n 'qCreateCustomViewDataset',\n {\n qMnuDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n },\n ],\n edit: [\n 'qUndoRedo',\n 'qCopyElement',\n 'qPasteElement',\n 'qCutElement',\n 'qRemoveElement',\n 'qDuplElement',\n 'qSelectAllElem',\n 'qSelectAllContElem',\n ],\n grid: ['qMnuSnapToGrid', 'qMnuDisplayGrid', 'qMnuSwitchGrid'],\n insert: [\n {\n qMnuInsertChart: [\n 'qMnuExistingChart',\n 'qMnuNewChart',\n 'qMnuNewChartAI',\n ],\n qMnuInsertFilterCtrl: [\n 'qMnuDatePicker',\n 'qMnuInputBox',\n 'qMnuMultiSelectList',\n ],\n },\n 'qMnuInsertText',\n 'qMnuInsertImage',\n 'qMnuInsertButton',\n 'qMnuInsertContainer',\n 'qMnuInsertHeader',\n 'qMnuInsertTabs',\n ],\n qMnuArrange: [\n 'qMnuBringToFront',\n 'qMnuSendToBack',\n {\n qMnuAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n ],\n },\n toolBar: [\n 'qCanvasSize',\n {\n qInsertChart: ['qExistingChart', 'qNewChart', 'qNewChartAI'],\n qInsertFilterCtrl: [\n 'qDatePicker',\n 'qInputBox',\n 'qMultiSelectList',\n ],\n grid: ['qSnapToGrid', 'qDisplayGrid', 'qSwitchGrid'],\n qDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n qArrange: ['qBringToFront', 'qSendToBack'],\n qResponsiveView: [\n 'qDesktop',\n 'qTablet',\n 'qMobile',\n 'qBreakpoints',\n ],\n qAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n 'qInsertText',\n 'qCreateCustomViewDataset',\n 'qInsertImage',\n 'qInsertButton',\n 'qInsertContainer',\n 'qRespGridMargins',\n 'qRespGridColumns',\n 'qThemes',\n 'qUndoRedo',\n\n // only for end user\n 'qDashVersion',\n 'qGetDashVersion',\n 'qHiddenItems',\n 'qDiscard',\n 'qSave',\n 'qHideToolBar',\n ],\n configPanel: true,\n filterPanel: {\n qAddFilter: true,\n qEnabDisabAllFilters: true,\n qDeleteAllFilters: true,\n qFilterSettings: true,\n dashFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n tabFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n panelFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n },\n downloadModal: [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n ],\n subModules: {\n chartPanel: {},\n chartGallery: {},\n chartBuilder: {},\n },\n },\n};\n\nexport default dashboardV1Config;\n","import { WidgetConfig } from '../models/structure.models';\n\nconst downloadManagerV1Config: WidgetConfig = {\n version: '1.0',\n baseStructure: {\n views: {\n main: [\n 'header',\n 'controlBar',\n 'assetList',\n 'moreInfoModal',\n 'downloadModal',\n ],\n detail: [\n 'header',\n 'controlBar',\n 'assetList',\n 'moreInfoModal',\n 'bottomBar',\n 'downloadModal',\n ],\n },\n header: ['qTitle'],\n controlBar: {\n defaults: {\n filters: {\n fileType: ['PDF', 'JPG', 'CSV', 'XLS', 'ZIP'],\n execution: ['SCHEDULED', 'OTHERS'],\n sourceWidget: [\n 'ANALYZE',\n 'AUTOMATION',\n 'DASHBOARD',\n 'LEGACY_DASHBOARD',\n 'PIXEL_PERFECT',\n 'SUBSCRIPTION',\n ],\n searchByName: '',\n },\n },\n qFilterByFileType: [\n 'qTypeAll',\n 'qTypePDF',\n 'qTypeJPG',\n 'qTypeCSV',\n 'qTypeExcel',\n 'qTypeZIP',\n ],\n qFilterByExecution: ['qExecAll', 'qExecScheduled', 'qExecOthers'],\n qFilterByWidget: [\n 'qWidgetAll',\n 'qWidgetAnalyze',\n 'qWidgetAutomation',\n 'qWidgetDash',\n 'qWidgetLegacyDash',\n 'qWidgetSubscriptions',\n 'qWidgetPPR',\n ],\n qFilterByAsset: true,\n qSearch: true,\n qRemoveFilters: true,\n qScheduleDetail: true,\n qFilesExported: true,\n qMoreInfo: true,\n },\n\n assetList: {\n asset: [\n {\n optionMenu: [\n 'qDelete',\n 'qMoreInfo',\n 'qDeleteAllFiles',\n 'qEditSched',\n 'qPauseRestartSched',\n 'qUnsubscribe',\n ],\n table: [\n 'qType',\n 'qSchedule',\n 'qSize',\n 'qCreationDate',\n 'qExpirationDate',\n 'qDownload',\n ],\n },\n 'qDrillToDetail',\n 'qUnsubscribe',\n ],\n },\n\n bottomBar: [\n 'qDeleteAllFiles',\n 'qEditSched',\n 'qPauseRestartSched',\n 'qDelete',\n ],\n\n downloadModal: [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n ],\n\n moreInfoModal: [\n 'qFileType',\n 'qSource',\n 'qOwner',\n 'qApplication',\n 'qPath',\n ],\n },\n};\n\nexport default downloadManagerV1Config;\n","import { WidgetConfig } from '../models/structure.models';\n\nconst reportV1Config: WidgetConfig = {\n version: '1.0',\n\n baseStructure: {\n views: {\n list: ['navBar', 'assetList', 'controlBarLeft', 'controlBarRight'],\n design: [\n 'navBar',\n 'controlBarRight',\n 'menuBar',\n 'toolBar',\n 'configPanel',\n 'filterPanel',\n 'dataPanel',\n ],\n preview: [\n 'navBar',\n 'tabBar',\n 'toolBar',\n 'pagePreview',\n 'controlBarRight',\n 'downloadModal',\n ],\n },\n navBar: ['qAppTitle', 'qBackButton'],\n tabBar: ['qTabSelector', 'qScrollButton'],\n assetList: {\n defaults: {\n assetListViewMode: 'card',\n },\n asset: {\n optionMenu: [\n 'qEditRep',\n 'qRenameRep',\n 'qDeleteRep',\n 'qDuplRep',\n ],\n },\n },\n\n controlBarLeft: ['qCreateRep'],\n\n controlBarRight: [\n 'qSwitchView',\n 'timezone',\n 'qFilterBy',\n 'qSortBy',\n 'qSearch',\n 'qPreview',\n 'qDesign',\n ],\n\n menuBar: {\n edit: ['qCopyElement', 'qPasteElement'],\n },\n toolBar: [\n 'qPageSetup',\n {\n qInsertShape: ['qLine', 'qRectangle', 'qEllipse'],\n grid: ['qDisplayRuler', 'qDisplayGrid'],\n qArrange: ['qBringToFront', 'qSendToBack'],\n qAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n qDownloadReport: [\n 'qReportPDF',\n 'qReportExcel',\n ],\n },\n 'qUndoRedo',\n 'qInsertDTable',\n 'qInsertSTable',\n 'qInsertImage',\n 'qInsertText',\n 'qInsertPageGroup',\n 'qInsertFormula',\n 'qInsertBucket',\n 'qInsertPageBreak',\n ],\n configPanel: true,\n dataPanel: {\n tabDataset: ['qChangeDataSet', 'qSearch'],\n tabParameters: ['qAddParameter', 'qSearch'],\n },\n filterPanel: {\n qAddFilter: true,\n qEnabDisabAllFilters: true,\n qDeleteAllFilters: true,\n qFilterSettings: true,\n repoFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n tabFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n panelFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n },\n downloadModal: [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n ],\n },\n};\n\nexport default reportV1Config;\n","import { Widget, WidgetVersion } from './structure.constants';\nimport { WidgetConfigsMap } from './widget.config';\nimport dashboardV1Config from '../structures/dashboard.structure.v1';\nimport downloadManagerV1Config from '../structures/download-manager.structure.v1';\nimport reportV1Config from '../structures/report.structure.v1';\n\nexport const widgetConfigs: WidgetConfigsMap = {\n [Widget.DASHBOARD]: {\n [WidgetVersion.v1]: dashboardV1Config,\n [WidgetVersion.latest]: dashboardV1Config,\n },\n [Widget.REPORT]: {\n [WidgetVersion.v1]: reportV1Config,\n [WidgetVersion.latest]: reportV1Config,\n },\n [Widget.DOWNLOAD_MANAGER]: {\n [WidgetVersion.v1]: downloadManagerV1Config,\n [WidgetVersion.latest]: downloadManagerV1Config,\n },\n};\n","export const allowedOperators = [\n '=',\n '!=',\n '>',\n '>=',\n '<',\n '<=',\n 'startsWith',\n 'endsWith',\n 'contains',\n] as const;\nexport type Operators = (typeof allowedOperators)[number];\n\nexport type ConditionValue = string | number;\n\nexport interface Condition {\n field: string;\n operator: Operators;\n value: ConditionValue;\n}\n\nexport type ConditionState = Record<string, ConditionValue>;\n\nexport type OperatorConditionFn = (\n value: Condition,\n state: Record<string, ConditionValue>,\n) => boolean;\n","import {\n Condition,\n ConditionState,\n ConditionValue,\n OperatorConditionFn,\n Operators,\n allowedOperators,\n} from '../models/conditions.models';\nimport { WidgetItemCondition } from '../models/structure.models';\n\nfunction isOperator(value: string): value is Operators {\n return allowedOperators.includes(value as Operators);\n}\n\nfunction getValue(condition: Condition, state: ConditionState): ConditionValue {\n return state[condition.field];\n}\n\nfunction _evalConditionOperator(\n condition: Condition,\n state: ConditionState,\n operator: (a: ConditionValue, b: ConditionValue) => boolean,\n): boolean {\n const value = getValue(condition, state);\n if (value == null) return false;\n return operator(value, condition.value);\n}\n\nconst OPERATOR_MAP: Record<Operators, OperatorConditionFn> = {\n '=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a == b),\n '!=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a != b),\n '<': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a < b),\n '<=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a <= b),\n '>': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a > b),\n '>=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a >= b),\n\n startsWith: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' &&\n typeof b === 'string' &&\n a.startsWith(b),\n ),\n\n endsWith: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' && typeof b === 'string' && a.endsWith(b),\n ),\n\n contains: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' && typeof b === 'string' && a.includes(b),\n ),\n};\n\nexport function evaluateCondition(\n state: ConditionState | undefined,\n ...conditions: Condition[]\n): boolean {\n if (!state) return false;\n if (conditions.length === 0) return true;\n return conditions.every((c) => _evalCondition(state, c));\n}\n\nfunction _evalCondition(state: ConditionState, condition: Condition): boolean {\n if (!isOperator(condition.operator)) return false;\n const evalFn = OPERATOR_MAP[condition.operator];\n return evalFn(condition, state);\n}\n\nexport function checkConditions(\n state: ConditionState | undefined,\n conditions: WidgetItemCondition[],\n): boolean {\n if (!state) return false;\n for (const cond of conditions) {\n if (cond.effect === 'keep') continue;\n const result = evaluateCondition(state, cond.condition);\n if (result) return false;\n }\n return true;\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ValidationFN<T = any> = (value: T) => T | undefined;\nconst FONT_SIZES: number[] = [\n 8, 9, 10, 11, 12, 14, 15, 16, 18, 24, 30, 36, 48, 60, 72, 96,\n];\nexport type ValidationMap = Record<string, ValidationFN>;\n\nfunction applyValidation(\n currentObj: Record<string, unknown>,\n validatorMap: ValidationMap,\n parentKey = '',\n): Record<string, unknown> {\n const validatedObj: Record<string, unknown> = {};\n\n Object.keys(currentObj).forEach((key) => {\n const fullKey = parentKey ? `${parentKey}.${key}` : key;\n const value = currentObj[key];\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null\n ) {\n validatedObj[key] = applyValidation(\n value as Record<string, unknown>,\n validatorMap,\n fullKey,\n );\n } else if (validatorMap[fullKey]) {\n validatedObj[key] = validatorMap[fullKey](value);\n } else {\n validatedObj[key] = value;\n }\n });\n\n return validatedObj;\n}\n\nexport function validateDefaults(\n obj: Record<string, unknown>,\n validatorMap: ValidationMap,\n) {\n return applyValidation(obj, validatorMap);\n}\n\nconst isANumber = (value: string | number) => {\n const _value = Number(value);\n if (!_value || isNaN(_value)) return undefined;\n return _value;\n};\n\nconst numberMinMaxValue =\n (maxValue: number, minValue?: number) => (value: string) => {\n const _value = isANumber(value);\n if (!_value) return undefined;\n if (minValue && _value < minValue) return minValue;\n if (_value > maxValue) return maxValue;\n return _value;\n };\n\nexport const fontSizeMinMaxValue =\n (minSize: number, maxSize: number) =>\n (value: string): string | undefined => {\n const inputSize = parseInt(value, 10);\n // Check if the inputSize is valid and within range\n if (\n FONT_SIZES.includes(inputSize) &&\n inputSize >= minSize &&\n inputSize <= maxSize\n ) {\n return `${inputSize}px`;\n }\n\n // Filter FONT_SIZES by min and max\n const validFontSizes = FONT_SIZES.filter(\n (size) => size >= minSize && size <= maxSize,\n );\n\n if (validFontSizes.length === 0) {\n return undefined;\n }\n\n // Find the closest font size\n let closestSize = validFontSizes[0];\n let smallestDiff = Math.abs(inputSize - closestSize);\n\n for (const size of validFontSizes) {\n const diff = Math.abs(inputSize - size);\n if (diff < smallestDiff) {\n smallestDiff = diff;\n closestSize = size;\n }\n }\n\n // Return the closest font size as a string with 'px'\n return `${closestSize}px`;\n };\nexport const fontColorValue = (value: string) => {\n const normalizedColor = value.toLowerCase();\n return normalizedColor;\n};\n\nconst validateType = (validValues: string[]) => (value: unknown) => {\n if (typeof value !== 'string') return undefined;\n const receivedValue = value.toUpperCase();\n return validValues.includes(receivedValue) ? receivedValue : undefined;\n};\n\nexport const DX_VALIDATOR_MAP: ValidationMap = {\n 'customStyles.header.height': numberMinMaxValue(300, 10),\n 'customStyles.text.fontSize': fontSizeMinMaxValue(8, 96),\n 'customStyles.text.fontColor': fontColorValue,\n 'customStyles.container.borderWidth': numberMinMaxValue(20, 1),\n 'customStyles.container.borderRadius': numberMinMaxValue(100, 0),\n\n // Filter Controls: MULTISELECT LIST\n 'customStyles.filterList.type': validateType(['LIST', 'DROPDOWN']),\n 'customStyles.filterList.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n\n // Filter Controls: INPUTBOX\n 'customStyles.filterInput.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n\n // Filter Controls: DATE\n 'customStyles.filterDate.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n};\n","export interface MergeDeepSettings {\n mergeMissingProperties?: boolean;\n mergeExistingValues?: boolean;\n}\n\nexport function mergeDeep(\n obj1: any,\n obj2: any,\n settings?: MergeDeepSettings,\n): any {\n const defaultSettings = {\n mergeExistingValues: settings?.mergeExistingValues ?? true,\n mergeMissingProperties: settings?.mergeMissingProperties ?? true,\n };\n\n if (!isValid(obj1, obj2)) return objectCopy(obj1);\n\n const result: any = Array.isArray(obj1) ? [] : {};\n\n for (const key in obj1) {\n const val1 = obj1[key];\n const val2 = obj2?.[key];\n\n if (isObject(val1) || Array.isArray(val1)) {\n result[key] = mergeDeep(val1, val2, defaultSettings);\n } else if (key in obj2 && defaultSettings.mergeExistingValues) {\n result[key] = val2;\n } else {\n result[key] = val1;\n }\n }\n\n if (defaultSettings.mergeMissingProperties) {\n for (const key in obj2) {\n if (!(key in result)) {\n result[key] = obj2[key];\n }\n }\n }\n\n return result;\n}\n\nfunction isValid(obj1: any, obj2: any): boolean {\n return (\n (isObject(obj1) && isObject(obj2)) ||\n (Array.isArray(obj1) && Array.isArray(obj2))\n );\n}\n\nfunction objectCopy<T = any>(obj: T): T {\n if (obj === null || typeof obj !== 'object') return obj;\n\n if (Array.isArray(obj)) {\n return obj.map((item) => objectCopy(item)) as any;\n }\n\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[key] = objectCopy((obj as any)[key]);\n }\n }\n\n return result;\n}\n\nfunction isObject(value: any): boolean {\n return (\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n Object.prototype.toString.call(value) === '[object Object]'\n );\n}\n","import { ValidationMap, validateDefaults } from './defaults.helpers';\nimport { mergeDeep } from './merge.helpers';\nimport {\n STRUCTURE_RESERVED_WORDS,\n STRUCTURE_SECTION_NAME_SEPARATOR,\n STRUCTURE_VIEW_NAME_SEPARATOR,\n} from '../constants/structure.constants';\nimport { WidgetCustomization } from '../models/customization.models';\nimport {\n WidgetConditionMap,\n WidgetConfig,\n WidgetItemCondition,\n WidgetStructure,\n WidgetStructureRoot,\n WidgetViewMap,\n} from '../models/structure.models';\n\ntype hasKeepOptType = 'root' | 'view';\n\ninterface CalculateViewOptions {\n viewKeys?: string[];\n pathPrefix?: string;\n viewPrefix?: string;\n hasKeepOption?: hasKeepOptType;\n prevDefaults?: Record<string, unknown>;\n customDefaults?: Record<string, unknown>;\n conditionMaps?: WidgetConditionMap[];\n checkCondition?: boolean;\n}\n\ntype ConditionAffectValue = false | 'keep' | 'remove';\n\ninterface InsertionResult {\n canInsert: boolean;\n conditionAffect: ConditionAffectValue;\n}\n\n/**\n * constructs the permission map structure for a widget\n * @param config configuration of a widget\n * @param customization customization options for a widget\n * @param validationMap\n * @returns object representing the view map for the widget\n */\nexport function getWidgetStructure(\n config: WidgetConfig,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n): WidgetViewMap {\n return calculateViewMap(config.baseStructure, customization, validationMap);\n}\n\nexport function calculateViewMap(\n config: WidgetStructureRoot,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n): WidgetViewMap {\n const permissionMap: WidgetViewMap = {};\n if (config.views) {\n for (const view in config.views) {\n Object.assign(\n permissionMap,\n calculateSpecificViewMap(\n view,\n config,\n customization,\n validationMap,\n ),\n );\n }\n } else {\n const customDefaults = calculateCustomDefaults(\n customization,\n undefined,\n validationMap,\n );\n const prevDefaults = config.defaults;\n\n const submodules = calculateSubmodules(config, customization);\n if (submodules) {\n permissionMap.subModules = submodules;\n }\n\n const conditionMaps = calculateConditions(config, customization);\n\n Object.assign(\n permissionMap,\n calculatePermissionMap(config, customization, {\n prevDefaults,\n customDefaults,\n conditionMaps,\n }),\n );\n }\n return permissionMap;\n}\n\nfunction calculateSpecificViewMap(\n view: string,\n config: WidgetStructureRoot,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n) {\n const viewDefinition = config.views![view];\n const customDefaults = calculateCustomDefaults(\n customization,\n view,\n validationMap,\n );\n const prevDefaults = config.defaults;\n\n const permissionMap: WidgetViewMap = {};\n\n const submodules = calculateSubmodules(config, customization, view);\n if (submodules) {\n permissionMap[`${view}::subModules`] = submodules;\n }\n\n const conditionMaps = calculateConditions(config, customization, view);\n\n Object.assign(\n permissionMap,\n calculatePermissionMap(config, customization, {\n viewKeys: viewDefinition,\n viewPrefix: view,\n prevDefaults,\n customDefaults,\n conditionMaps,\n }),\n );\n\n return permissionMap;\n}\n\nfunction getViewPrefix(view?: string) {\n return view ? `${view}${STRUCTURE_VIEW_NAME_SEPARATOR}` : '';\n}\n\nfunction getStructureKey(key: string, viewPrefix?: string): string {\n const viewValue = getViewPrefix(viewPrefix);\n return `${viewValue}${key}`;\n}\n\nconst matchWildcard = (pattern: string, value: string): boolean => {\n const regexPattern = new RegExp(\n '^' + pattern.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*') + '$',\n );\n return regexPattern.test(value);\n};\n\nfunction keyIsIncludedInKeep(\n key: string,\n customization: WidgetCustomization,\n): boolean {\n const { keep = [] } = customization;\n for (const pattern of keep) {\n if (pattern === key || matchWildcard(pattern, key)) {\n return true;\n }\n }\n return false;\n}\n\nfunction keyIsIncludedInRemove(\n key: string,\n customization: WidgetCustomization,\n): boolean {\n const { remove = [] } = customization;\n for (const pattern of remove) {\n if (pattern === key || matchWildcard(pattern, key)) {\n return true;\n }\n }\n return false;\n}\n\nfunction canInsertInCustomization(\n key: string,\n customization: WidgetCustomization,\n validateKeepOption?: boolean,\n): InsertionResult {\n const includedInRemove = keyIsIncludedInRemove(key, customization);\n const canInsert =\n !includedInRemove &&\n (!validateKeepOption || keyIsIncludedInKeep(key, customization));\n\n const keepValue = keyIsIncludedInKeep(key, customization)\n ? 'keep'\n : 'remove';\n const keepResult = validateKeepOption ? keepValue : false;\n const conditionAffect = includedInRemove ? 'remove' : keepResult;\n return { canInsert, conditionAffect };\n}\n\nfunction evalInsertKey(\n key: string,\n { viewKeys, viewPrefix = '', hasKeepOption }: CalculateViewOptions,\n customization?: WidgetCustomization,\n): InsertionResult {\n const customizationView = customization?.views?.[viewPrefix];\n\n const custCanInsert: InsertionResult = customization\n ? canInsertInCustomization(key, customization, hasKeepOption === 'root')\n : {\n canInsert: true,\n conditionAffect: false,\n };\n const custViewCanInsert: InsertionResult = customizationView\n ? canInsertInCustomization(\n key,\n customizationView,\n hasKeepOption === 'view',\n )\n : {\n canInsert: true,\n conditionAffect: false,\n };\n\n // validate remove and keep attributes for views.\n const canInsert =\n (!viewKeys || viewKeys.some((x) => key.startsWith(x))) &&\n custCanInsert.canInsert &&\n custViewCanInsert.canInsert;\n\n const conditionAffect =\n custCanInsert.conditionAffect || custViewCanInsert.conditionAffect;\n\n return { canInsert, conditionAffect };\n}\n\nfunction canInsertKey(\n key: string,\n {\n viewKeys,\n viewPrefix = '',\n hasKeepOption,\n checkCondition = false,\n }: CalculateViewOptions,\n customization?: WidgetCustomization,\n): InsertionResult {\n const result = evalInsertKey(\n key,\n { viewKeys, viewPrefix, hasKeepOption, checkCondition },\n customization,\n );\n const canInsert = checkCondition || result.canInsert;\n return { canInsert, conditionAffect: result.conditionAffect };\n}\n\nfunction addKeyToPermissions(\n permissionMap: WidgetViewMap,\n key: string,\n { viewPrefix, checkCondition, conditionMaps }: CalculateViewOptions,\n defaults?: Record<string, unknown>,\n childMap?: WidgetViewMap,\n conditionAffect?: ConditionAffectValue,\n) {\n const keyAttr = getStructureKey(key, viewPrefix);\n\n if (checkCondition && conditionAffect != null) {\n permissionMap[keyAttr] = conditionAffect;\n return;\n }\n\n const addDefaultKey = defaults && Object.keys(defaults).length > 0;\n const addChildMapKey = childMap && Object.keys(childMap).length > 0;\n const conditions = getConditionsForKey(key, conditionMaps);\n\n permissionMap[keyAttr] =\n !addDefaultKey && !addChildMapKey && !conditions\n ? true\n : {\n ...(addDefaultKey && { defaults }),\n ...(addChildMapKey && { childMap }),\n ...(conditions && { conditions }),\n };\n}\n\nfunction calculatePermissionMap(\n config: WidgetStructure | Record<string, WidgetStructure>,\n customization: WidgetCustomization | undefined,\n {\n viewKeys,\n pathPrefix = '',\n viewPrefix = '',\n hasKeepOption: previousKeepOption,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }: CalculateViewOptions,\n) {\n const permissionMap: WidgetViewMap = {};\n const currentKeepOption = nodeHasKeepOption(config, customization, {\n viewPrefix,\n pathPrefix,\n });\n\n for (const key in config) {\n if (STRUCTURE_RESERVED_WORDS.includes(key)) {\n continue;\n }\n const hasKeepOption = previousKeepOption ?? currentKeepOption;\n const configValue = config[key];\n const currentKey = `${pathPrefix}${key}`;\n const newPrefix = `${currentKey}${STRUCTURE_SECTION_NAME_SEPARATOR}`;\n\n const canInsertResult = canInsertKey(\n currentKey,\n {\n viewKeys,\n viewPrefix,\n hasKeepOption,\n checkCondition,\n },\n customization,\n );\n if (!canInsertResult.canInsert) {\n continue;\n }\n\n let defaults = prevDefaults;\n let childMap: WidgetViewMap | undefined = undefined;\n if (Array.isArray(configValue)) {\n // if it's an array, every element is a key\n defaults = calculateDefaults(\n prevDefaults,\n {} as Record<string, unknown>,\n customDefaults,\n );\n childMap = calculatePermissionMapArray(configValue, customization, {\n viewKeys,\n viewPrefix,\n pathPrefix: newPrefix,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n });\n\n Object.assign(permissionMap, childMap);\n } else if (\n typeof configValue === 'object' &&\n !Array.isArray(configValue)\n ) {\n defaults = calculateDefaults(\n prevDefaults,\n configValue.defaults as Record<string, unknown>,\n customDefaults,\n );\n // if it's an object, a recursive call is made\n childMap = calculatePermissionMap(\n configValue as WidgetStructure,\n customization,\n {\n viewKeys,\n viewPrefix,\n pathPrefix: newPrefix,\n prevDefaults: defaults,\n conditionMaps,\n checkCondition,\n },\n );\n Object.assign(permissionMap, childMap);\n } else if (typeof configValue === 'boolean' && !configValue) {\n // if it's a boolean and its false, it should be ignored\n continue;\n } else if (typeof configValue === 'boolean' && configValue) {\n defaults = calculateDefaults(\n prevDefaults,\n {} as Record<string, unknown>,\n customDefaults,\n );\n }\n\n addKeyToPermissions(\n permissionMap,\n currentKey,\n {\n viewPrefix,\n checkCondition,\n conditionMaps,\n },\n defaults,\n childMap,\n canInsertResult.conditionAffect,\n );\n }\n\n return permissionMap;\n}\n\nfunction getConditionsForKey(\n key: string,\n conditionMaps: WidgetConditionMap[] | undefined,\n): WidgetItemCondition[] | undefined {\n if (!conditionMaps || conditionMaps.length === 0) return undefined;\n const result = conditionMaps.reduce((result, x) => {\n const mapValue = x.map[key];\n if (\n typeof mapValue === 'string' &&\n (mapValue === 'keep' || mapValue === 'remove')\n ) {\n result.push({\n effect: mapValue,\n condition: x.condition,\n });\n }\n return result;\n }, [] as WidgetItemCondition[]);\n\n if (result.length === 0) return undefined;\n return result;\n}\n\nfunction calculateConditions(\n config: WidgetStructure,\n customization?: WidgetCustomization,\n view?: string,\n): WidgetConditionMap[] | undefined {\n const rootConditionals = customization?.conditional;\n const viewConditionals = view\n ? customization?.views?.[view]?.conditional\n : undefined;\n\n if (!rootConditionals && !viewConditionals) return undefined;\n\n const customConditionals = [\n ...(rootConditionals ?? []),\n ...(viewConditionals ?? []),\n ];\n return (\n customConditionals?.map((c) => ({\n condition: c.condition,\n map: calculatePermissionMap(config, c, { checkCondition: true }),\n })) ?? undefined\n );\n}\n\nfunction calculateSubmodules(\n config: WidgetStructure,\n customization?: WidgetCustomization,\n view?: string,\n) {\n const viewSubmodules = view\n ? customization?.views?.[view]?.subModules\n : undefined;\n const customRootSubmodules = customization?.subModules;\n const customSubmodules = viewSubmodules\n ? mergeObjects(customRootSubmodules, viewSubmodules)\n : customRootSubmodules;\n return mergeObjects(config.subModules, customSubmodules);\n}\n\nfunction calculateCustomDefaults(\n customization?: WidgetCustomization,\n view?: string,\n validationMap?: ValidationMap,\n) {\n const viewDefaults = view\n ? customization?.views?.[view]?.defaults\n : undefined;\n const customRootDefaults = customization?.defaults ?? {};\n const defaultObj = viewDefaults\n ? mergeObjects(customRootDefaults, viewDefaults)\n : customRootDefaults;\n return validationMap && defaultObj\n ? validateDefaults(defaultObj, validationMap)\n : defaultObj;\n}\n\nfunction calculateDefaults(\n structureDefaults: Record<string, unknown> | undefined,\n itemDefaults: Record<string, unknown> | undefined,\n customDefaults: Record<string, unknown> | undefined,\n) {\n const baseDefaults = mergeObjects(structureDefaults, itemDefaults);\n return mergeObjects(baseDefaults, customDefaults);\n}\n\nfunction mergeObjects(\n prevObj: Record<string, unknown> | undefined,\n newObj: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n // if both of configurations are falsy return undefined;\n if (!newObj && !prevObj) return undefined;\n // if just the prev defaults has value, return it\n if (!newObj) return prevObj;\n // if the newDefaults value is different than an object\n if (typeof newObj !== 'object' || Array.isArray(newObj)) return prevObj;\n return !prevObj ? newObj : mergeDeep(prevObj, newObj);\n}\n\nfunction mapObjKeys(\n configValue: WidgetStructure,\n { pathPrefix }: CalculateViewOptions,\n) {\n return Object.keys(configValue).map((x) =>\n getStructureKey(`${pathPrefix}${x}`),\n );\n}\n\nfunction mapArrayKeys(\n configValue: (string | WidgetStructure)[],\n { viewPrefix, pathPrefix }: CalculateViewOptions,\n) {\n return configValue.reduce((result, value) => {\n if (typeof value === 'string') {\n result.push(getStructureKey(`${pathPrefix}${value}`));\n } else {\n result.push(...mapObjKeys(value, { viewPrefix, pathPrefix }));\n }\n return result;\n }, [] as string[]);\n}\n\nfunction nodeHasKeepOption(\n configValue: WidgetStructure | (string | WidgetStructure)[],\n customization: WidgetCustomization | undefined,\n { viewPrefix, pathPrefix }: CalculateViewOptions,\n): hasKeepOptType | undefined {\n if (!customization) return;\n const nodeKeys = Array.isArray(configValue)\n ? mapArrayKeys(configValue, { viewPrefix, pathPrefix })\n : mapObjKeys(configValue, { viewPrefix, pathPrefix });\n const customizationView = viewPrefix\n ? customization?.views?.[viewPrefix]\n : undefined;\n for (const key of nodeKeys) {\n if (keyIsIncludedInKeep(key, customization)) {\n return 'root';\n } else if (\n customizationView &&\n keyIsIncludedInKeep(key, customizationView)\n ) {\n return 'view';\n }\n }\n return undefined;\n}\n\nfunction calculatePermissionMapArray(\n configValue: (string | WidgetStructure)[],\n customization: WidgetCustomization | undefined,\n {\n viewKeys,\n viewPrefix,\n pathPrefix,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }: CalculateViewOptions,\n): WidgetViewMap {\n const permissionMap: WidgetViewMap = {};\n const hasKeepOption = nodeHasKeepOption(configValue, customization, {\n viewPrefix,\n pathPrefix,\n });\n const defaultsSimple = calculateDefaults(\n prevDefaults,\n undefined,\n customDefaults,\n );\n\n configValue.forEach((option) => {\n const fullPath = `${pathPrefix}${option}`;\n if (typeof option === 'string') {\n const canInsertResult = canInsertKey(\n fullPath,\n {\n viewKeys,\n viewPrefix,\n hasKeepOption,\n checkCondition,\n },\n customization,\n );\n if (!canInsertResult.canInsert) {\n return;\n }\n addKeyToPermissions(\n permissionMap,\n fullPath,\n {\n viewKeys,\n viewPrefix,\n checkCondition,\n conditionMaps,\n },\n defaultsSimple,\n undefined,\n canInsertResult.conditionAffect,\n );\n } else {\n Object.assign(\n permissionMap,\n calculatePermissionMap(option, customization, {\n viewKeys,\n pathPrefix,\n viewPrefix,\n hasKeepOption,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }),\n );\n }\n });\n return permissionMap;\n}\n","import { widgetConfigs } from './constants/configs';\nimport { Widget, WidgetVersion } from './constants/structure.constants';\nimport { ConditionState } from './models/conditions.models';\nimport { WidgetCustomization } from './models/customization.models';\nimport { WidgetItemCondition, WidgetViewMap } from './models/structure.models';\nimport { checkConditions } from './utils/conditions.helpers';\nimport { DX_VALIDATOR_MAP } from './utils/defaults.helpers';\nimport { getWidgetStructure } from './utils/structural.helpers';\n\nexport function buildStructure(\n widget: Widget,\n customization?: WidgetCustomization,\n version?: WidgetVersion,\n) {\n const versionSet = version ?? WidgetVersion.latest;\n const widgetConfigurability = widgetConfigs[widget]?.[versionSet];\n if (!widgetConfigurability) {\n throw new Error(\n `No config found for widget ${widget} and version ${version}`,\n );\n }\n const structureMap = getWidgetStructure(\n widgetConfigurability,\n customization,\n DX_VALIDATOR_MAP,\n );\n return new WidgetStructureInstance(structureMap);\n}\n\nexport class WidgetStructureInstance {\n constructor(private viewMap: WidgetViewMap) {}\n\n private getValue(key: string) {\n return this.viewMap[key];\n }\n\n isVisible(key: string, state?: ConditionState): boolean {\n const value = this.getValue(key);\n if (!value) return false;\n if (typeof value === 'object' && value.conditions) {\n return checkConditions(\n state,\n value.conditions as WidgetItemCondition[],\n );\n }\n return true;\n }\n\n getChildMap(key: string): WidgetViewMap | undefined {\n const value = this.getValue(key);\n if (\n !value ||\n typeof value === 'boolean' ||\n typeof value === 'string' ||\n !value.childMap\n )\n return undefined;\n return value.childMap as WidgetViewMap;\n }\n\n getSubmodule(\n module: string,\n view?: string,\n ): WidgetCustomization | undefined {\n const key = `${view ? view + '::' : ''}subModules`;\n const value = this.getValue(key);\n return (value as Record<string, WidgetCustomization>)?.[module];\n }\n\n getDefaults(key: string): Record<string, unknown> | undefined {\n const value = this.getValue(key);\n if (\n !value ||\n typeof value === 'boolean' ||\n typeof value === 'string' ||\n !value.defaults\n )\n return undefined;\n return value.defaults as WidgetViewMap;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/constants/structure.constants.ts","../../src/doc/swagger.optional.ts","../../src/structures/dashboard.structure.v1.ts","../../src/structures/download-manager.structure.v1.ts","../../src/structures/report.structure.v1.ts","../../src/constants/configs.ts","../../src/models/conditions.models.ts","../../src/utils/conditions.helpers.ts","../../src/utils/defaults.helpers.ts","../../src/utils/merge.helpers.ts","../../src/utils/structural.helpers.ts","../../src/structural-manager.ts"],"names":["STRUCTURE_SECTION_NAME_SEPARATOR","STRUCTURE_VIEW_NAME_SEPARATOR","STRUCTURE_RESERVED_WORDS","Widget","WidgetVersion","ApiProperty","require","metadata","ViewsDto","list","design","preview","endUser","type","String","description","example","AssetListDto","defaults","asset","Object","assetListViewMode","optionMenu","MenuBarDto","file","edit","grid","insert","qArrange","qMnuDownloadDash","qMnuInsertChart","qMnuInsertFilterCtrl","qMnuAlign","FilterPanelDto","qAddFilter","qEnabDisabAllFilters","qDeleteAllFilters","qFilterSettings","dashFilterScope","tabFilterScope","panelFilterScope","SubModulesDto","chartPanel","chartGallery","chartBuilder","BaseDashboardV1StructureDto","views","navBar","endUserTopBar","assetList","controlBarLeft","controlBarRight","header","menuBar","toolBar","configPanel","filterPanel","downloadModal","subModules","qInsertChart","qInsertFilterCtrl","qDownloadDash","qResponsiveView","qAlign","dashboardV1Config","version","baseStructure","qMnuArrange","downloadManagerV1Config","main","detail","controlBar","filters","qFilterByFileType","qFilterByExecution","qFilterByWidget","qFilterByAsset","qSearch","qRemoveFilters","qScheduleDetail","qFilesExported","qMoreInfo","table","bottomBar","moreInfoModal","reportV1Config","tabBar","qInsertShape","qDownloadReport","dataPanel","tabDataset","tabParameters","repoFilterScope","widgetConfigs","DASHBOARD","v1","latest","REPORT","DOWNLOAD_MANAGER","allowedOperators","isOperator","value","includes","getValue","condition","state","field","_evalConditionOperator","operator","OPERATOR_MAP","a","b","startsWith","endsWith","contains","evaluateCondition","conditions","length","every","c","_evalCondition","evalFn","checkConditions","cond","effect","result","FONT_SIZES","applyValidation","currentObj","validatorMap","parentKey","validatedObj","keys","forEach","key","fullKey","Array","isArray","validateDefaults","obj","isANumber","_value","Number","isNaN","undefined","numberMinMaxValue","maxValue","minValue","fontSizeMinMaxValue","minSize","maxSize","inputSize","parseInt","validFontSizes","filter","size","closestSize","smallestDiff","Math","abs","diff","fontColorValue","normalizedColor","toLowerCase","validateType","validValues","receivedValue","toUpperCase","DX_VALIDATOR_MAP","mergeDeep","obj1","obj2","settings","defaultSettings","mergeExistingValues","mergeMissingProperties","isValid","objectCopy","val1","val2","isObject","map","item","prototype","hasOwnProperty","call","toString","getWidgetStructure","config","customization","validationMap","calculateViewMap","permissionMap","view","assign","calculateSpecificViewMap","customDefaults","calculateCustomDefaults","prevDefaults","submodules","calculateSubmodules","conditionMaps","calculateConditions","calculatePermissionMap","viewDefinition","viewKeys","viewPrefix","getViewPrefix","getStructureKey","viewValue","matchWildcard","pattern","regexPattern","RegExp","replace","test","keyIsIncludedInKeep","keep","keyIsIncludedInRemove","remove","canInsertInCustomization","validateKeepOption","includedInRemove","canInsert","keepValue","keepResult","conditionAffect","evalInsertKey","hasKeepOption","customizationView","custCanInsert","custViewCanInsert","some","x","canInsertKey","checkCondition","addKeyToPermissions","childMap","keyAttr","addDefaultKey","addChildMapKey","getConditionsForKey","pathPrefix","previousKeepOption","currentKeepOption","nodeHasKeepOption","configValue","currentKey","newPrefix","canInsertResult","calculateDefaults","calculatePermissionMapArray","reduce","mapValue","push","rootConditionals","conditional","viewConditionals","customConditionals","viewSubmodules","customRootSubmodules","customSubmodules","mergeObjects","viewDefaults","customRootDefaults","defaultObj","structureDefaults","itemDefaults","baseDefaults","prevObj","newObj","mapObjKeys","mapArrayKeys","nodeKeys","defaultsSimple","option","fullPath","buildStructure","widget","versionSet","widgetConfigurability","Error","structureMap","WidgetStructureInstance","constructor","viewMap","isVisible","getChildMap","getSubmodule","module","getDefaults"],"mappings":"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","file":"index.mjs","sourcesContent":["export const STRUCTURE_SECTION_NAME_SEPARATOR = '.';\nexport const STRUCTURE_VIEW_NAME_SEPARATOR = '::';\nexport const STRUCTURE_RESERVED_WORDS = ['views', 'defaults', 'subModules'];\n\nexport enum Widget {\n DASHBOARD = 'dashboard',\n REPORT = 'report',\n DOWNLOAD_MANAGER = 'download-manager',\n}\n\nexport enum WidgetVersion {\n v1 = '1.0',\n latest = 'latest',\n}\n","type DecoratorFactory = (metadata?: any) => PropertyDecorator;\n\nlet ApiProperty: DecoratorFactory;\n\ntry {\n ApiProperty = require('@nestjs/swagger').ApiProperty;\n} catch {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ApiProperty = (metadata?: unknown): PropertyDecorator => {\n return (): void => {};\n };\n}\n\nexport { ApiProperty };\n","import { WidgetConfig } from '../models/structure.models';\n\nconst dashboardV1Config: WidgetConfig = {\n version: '1.0',\n baseStructure: {\n views: {\n list: ['navBar', 'assetList', 'controlBarLeft', 'controlBarRight'],\n design: [\n 'navBar',\n 'header',\n 'controlBarRight',\n 'menuBar',\n 'toolBar',\n 'configPanel',\n 'filterPanel',\n 'downloadModal',\n ],\n preview: ['navBar', 'header', 'controlBarRight', 'filterPanel'],\n endUser: ['navBar', 'toolBar', 'filterPanel', 'downloadModal'],\n },\n\n navBar: ['qAppTitle', 'qBackButton'],\n\n endUserTopBar: ['indicator', 'options'],\n\n assetList: {\n defaults: {\n assetListViewMode: 'card',\n },\n asset: {\n optionMenu: [\n 'qEditDash',\n 'qRenameDash',\n 'qDeleteDash',\n 'qDuplDash',\n 'qShareDash',\n ],\n },\n },\n\n controlBarLeft: ['qCreateDash'],\n\n controlBarRight: [\n 'qSwitchView',\n 'timezone',\n 'qFilterBy',\n 'qSortBy',\n 'qSearch',\n 'qSelectColumn',\n 'qStatus',\n 'qPreview',\n 'qDiscard',\n 'qPublish',\n 'qDesign',\n ],\n\n header: ['qDashFavorite', 'qShareDash', 'qDashName', 'qDashDesc'],\n\n menuBar: {\n file: [\n 'qMnuCreateDash',\n 'qMnuOpenDash',\n 'qMnuDuplicateDash',\n 'qMnuCanvasSize',\n 'qMnuThemes',\n 'qShareDash',\n 'qMnuDeleteDash',\n 'qCreateCustomViewDataset',\n {\n qMnuDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n },\n ],\n edit: [\n 'qUndoRedo',\n 'qCopyElement',\n 'qPasteElement',\n 'qCutElement',\n 'qRemoveElement',\n 'qDuplElement',\n 'qSelectAllElem',\n 'qSelectAllContElem',\n ],\n grid: ['qMnuSnapToGrid', 'qMnuDisplayGrid', 'qMnuSwitchGrid'],\n insert: [\n {\n qMnuInsertChart: [\n 'qMnuExistingChart',\n 'qMnuNewChart',\n 'qMnuNewChartAI',\n ],\n qMnuInsertFilterCtrl: [\n 'qMnuDatePicker',\n 'qMnuInputBox',\n 'qMnuMultiSelectList',\n ],\n },\n 'qMnuInsertText',\n 'qMnuInsertImage',\n 'qMnuInsertButton',\n 'qMnuInsertContainer',\n 'qMnuInsertHeader',\n 'qMnuInsertTabs',\n ],\n qMnuArrange: [\n 'qMnuBringToFront',\n 'qMnuSendToBack',\n {\n qMnuAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n ],\n },\n toolBar: [\n 'qCanvasSize',\n {\n qInsertChart: ['qExistingChart', 'qNewChart', 'qNewChartAI'],\n qInsertFilterCtrl: [\n 'qDatePicker',\n 'qInputBox',\n 'qMultiSelectList',\n ],\n grid: ['qSnapToGrid', 'qDisplayGrid', 'qSwitchGrid'],\n qDownloadDash: [\n 'qDashPDF',\n 'qDashCSV',\n 'qDashExcel',\n 'qDashDataset',\n ],\n qArrange: ['qBringToFront', 'qSendToBack'],\n qResponsiveView: [\n 'qDesktop',\n 'qTablet',\n 'qMobile',\n 'qBreakpoints',\n ],\n qAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n },\n 'qInsertText',\n 'qCreateCustomViewDataset',\n 'qInsertImage',\n 'qInsertButton',\n 'qInsertContainer',\n 'qRespGridMargins',\n 'qRespGridColumns',\n 'qThemes',\n 'qUndoRedo',\n\n // only for end user\n 'qDashVersion',\n 'qGetDashVersion',\n 'qHiddenItems',\n 'qDiscard',\n 'qSave',\n 'qHideToolBar',\n ],\n configPanel: true,\n filterPanel: {\n qAddFilter: true,\n qEnabDisabAllFilters: true,\n qDeleteAllFilters: true,\n qFilterSettings: true,\n dashFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n tabFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n panelFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n },\n downloadModal: [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n ],\n subModules: {\n chartPanel: {},\n chartGallery: {},\n chartBuilder: {},\n },\n },\n};\n\nexport default dashboardV1Config;\n","import { WidgetConfig } from '../models/structure.models';\n\nconst downloadManagerV1Config: WidgetConfig = {\n version: '1.0',\n baseStructure: {\n views: {\n main: [\n 'header',\n 'controlBar',\n 'assetList',\n 'moreInfoModal',\n 'downloadModal',\n ],\n detail: [\n 'header',\n 'controlBar',\n 'assetList',\n 'moreInfoModal',\n 'bottomBar',\n 'downloadModal',\n ],\n },\n header: ['qTitle'],\n controlBar: {\n defaults: {\n filters: {},\n },\n qFilterByFileType: [\n 'qTypeAll',\n 'qTypePDF',\n 'qTypeJPG',\n 'qTypeCSV',\n 'qTypeExcel',\n 'qTypeZIP',\n ],\n qFilterByExecution: ['qExecAll', 'qExecScheduled', 'qExecOthers'],\n qFilterByWidget: [\n 'qWidgetAll',\n 'qWidgetAnalyze',\n 'qWidgetAutomation',\n 'qWidgetDash',\n 'qWidgetLegacyDash',\n 'qWidgetSubscriptions',\n 'qWidgetPPR',\n ],\n qFilterByAsset: true,\n qSearch: true,\n qRemoveFilters: true,\n qScheduleDetail: true,\n qFilesExported: true,\n qMoreInfo: true,\n },\n\n assetList: {\n asset: [\n {\n optionMenu: [\n 'qDelete',\n 'qMoreInfo',\n 'qDeleteAllFiles',\n 'qEditSched',\n 'qPauseRestartSched',\n 'qUnsubscribe',\n ],\n table: [\n 'qType',\n 'qSchedule',\n 'qSize',\n 'qCreationDate',\n 'qExpirationDate',\n 'qDownload',\n ],\n },\n 'qDrillToDetail',\n 'qUnsubscribe',\n ],\n },\n\n bottomBar: [\n 'qDeleteAllFiles',\n 'qEditSched',\n 'qPauseRestartSched',\n 'qDelete',\n ],\n\n downloadModal: [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n ],\n\n moreInfoModal: [\n 'qFileType',\n 'qSource',\n 'qOwner',\n 'qApplication',\n 'qPath',\n ],\n },\n};\n\nexport default downloadManagerV1Config;\n","import { WidgetConfig } from '../models/structure.models';\n\nconst reportV1Config: WidgetConfig = {\n version: '1.0',\n\n baseStructure: {\n views: {\n list: ['navBar', 'assetList', 'controlBarLeft', 'controlBarRight'],\n design: [\n 'navBar',\n 'controlBarRight',\n 'menuBar',\n 'toolBar',\n 'configPanel',\n 'filterPanel',\n 'dataPanel',\n ],\n preview: [\n 'navBar',\n 'tabBar',\n 'toolBar',\n 'pagePreview',\n 'controlBarRight',\n 'downloadModal',\n ],\n },\n navBar: ['qAppTitle', 'qBackButton'],\n tabBar: ['qTabSelector', 'qScrollButton'],\n assetList: {\n defaults: {\n assetListViewMode: 'card',\n },\n asset: {\n optionMenu: [\n 'qEditRep',\n 'qRenameRep',\n 'qDeleteRep',\n 'qDuplRep',\n ],\n },\n },\n\n controlBarLeft: ['qCreateRep'],\n\n controlBarRight: [\n 'qSwitchView',\n 'timezone',\n 'qFilterBy',\n 'qSortBy',\n 'qSearch',\n 'qPreview',\n 'qDesign',\n ],\n\n menuBar: {\n edit: ['qCopyElement', 'qPasteElement'],\n },\n toolBar: [\n 'qPageSetup',\n {\n qInsertShape: ['qLine', 'qRectangle', 'qEllipse'],\n grid: ['qDisplayRuler', 'qDisplayGrid'],\n qArrange: ['qBringToFront', 'qSendToBack'],\n qAlign: [\n 'qAlignRight',\n 'qAlignLeft',\n 'qAlignCenter',\n 'qAlignTop',\n 'qAlignMiddle',\n 'qAlignBottom',\n ],\n qDownloadReport: [\n 'qReportPDF',\n 'qReportExcel',\n ],\n },\n 'qUndoRedo',\n 'qInsertDTable',\n 'qInsertSTable',\n 'qInsertImage',\n 'qInsertText',\n 'qInsertPageGroup',\n 'qInsertFormula',\n 'qInsertBucket',\n 'qInsertPageBreak',\n ],\n configPanel: true,\n dataPanel: {\n tabDataset: ['qChangeDataSet', 'qSearch'],\n tabParameters: ['qAddParameter', 'qSearch'],\n },\n filterPanel: {\n qAddFilter: true,\n qEnabDisabAllFilters: true,\n qDeleteAllFilters: true,\n qFilterSettings: true,\n repoFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n tabFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n panelFilterScope: [\n 'qEditFilter',\n 'qEnabDisabFilter',\n 'qDeleteFilter',\n ],\n },\n downloadModal: [\n 'qScheduleOption',\n 'qSubscribeOption',\n 'qSubscribeExternalUsers',\n ],\n },\n};\n\nexport default reportV1Config;\n","import { Widget, WidgetVersion } from './structure.constants';\nimport { WidgetConfigsMap } from './widget.config';\nimport dashboardV1Config from '../structures/dashboard.structure.v1';\nimport downloadManagerV1Config from '../structures/download-manager.structure.v1';\nimport reportV1Config from '../structures/report.structure.v1';\n\nexport const widgetConfigs: WidgetConfigsMap = {\n [Widget.DASHBOARD]: {\n [WidgetVersion.v1]: dashboardV1Config,\n [WidgetVersion.latest]: dashboardV1Config,\n },\n [Widget.REPORT]: {\n [WidgetVersion.v1]: reportV1Config,\n [WidgetVersion.latest]: reportV1Config,\n },\n [Widget.DOWNLOAD_MANAGER]: {\n [WidgetVersion.v1]: downloadManagerV1Config,\n [WidgetVersion.latest]: downloadManagerV1Config,\n },\n};\n","export const allowedOperators = [\n '=',\n '!=',\n '>',\n '>=',\n '<',\n '<=',\n 'startsWith',\n 'endsWith',\n 'contains',\n] as const;\nexport type Operators = (typeof allowedOperators)[number];\n\nexport type ConditionValue = string | number;\n\nexport interface Condition {\n field: string;\n operator: Operators;\n value: ConditionValue;\n}\n\nexport type ConditionState = Record<string, ConditionValue>;\n\nexport type OperatorConditionFn = (\n value: Condition,\n state: Record<string, ConditionValue>,\n) => boolean;\n","import {\n Condition,\n ConditionState,\n ConditionValue,\n OperatorConditionFn,\n Operators,\n allowedOperators,\n} from '../models/conditions.models';\nimport { WidgetItemCondition } from '../models/structure.models';\n\nfunction isOperator(value: string): value is Operators {\n return allowedOperators.includes(value as Operators);\n}\n\nfunction getValue(condition: Condition, state: ConditionState): ConditionValue {\n return state[condition.field];\n}\n\nfunction _evalConditionOperator(\n condition: Condition,\n state: ConditionState,\n operator: (a: ConditionValue, b: ConditionValue) => boolean,\n): boolean {\n const value = getValue(condition, state);\n if (value == null) return false;\n return operator(value, condition.value);\n}\n\nconst OPERATOR_MAP: Record<Operators, OperatorConditionFn> = {\n '=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a == b),\n '!=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a != b),\n '<': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a < b),\n '<=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a <= b),\n '>': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a > b),\n '>=': (condition, state) =>\n _evalConditionOperator(condition, state, (a, b) => a >= b),\n\n startsWith: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' &&\n typeof b === 'string' &&\n a.startsWith(b),\n ),\n\n endsWith: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' && typeof b === 'string' && a.endsWith(b),\n ),\n\n contains: (condition, state) =>\n _evalConditionOperator(\n condition,\n state,\n (a, b) =>\n typeof a === 'string' && typeof b === 'string' && a.includes(b),\n ),\n};\n\nexport function evaluateCondition(\n state: ConditionState | undefined,\n ...conditions: Condition[]\n): boolean {\n if (!state) return false;\n if (conditions.length === 0) return true;\n return conditions.every((c) => _evalCondition(state, c));\n}\n\nfunction _evalCondition(state: ConditionState, condition: Condition): boolean {\n if (!isOperator(condition.operator)) return false;\n const evalFn = OPERATOR_MAP[condition.operator];\n return evalFn(condition, state);\n}\n\nexport function checkConditions(\n state: ConditionState | undefined,\n conditions: WidgetItemCondition[],\n): boolean {\n if (!state) return false;\n for (const cond of conditions) {\n if (cond.effect === 'keep') continue;\n const result = evaluateCondition(state, cond.condition);\n if (result) return false;\n }\n return true;\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ValidationFN<T = any> = (value: T) => T | undefined;\nconst FONT_SIZES: number[] = [\n 8, 9, 10, 11, 12, 14, 15, 16, 18, 24, 30, 36, 48, 60, 72, 96,\n];\nexport type ValidationMap = Record<string, ValidationFN>;\n\nfunction applyValidation(\n currentObj: Record<string, unknown>,\n validatorMap: ValidationMap,\n parentKey = '',\n): Record<string, unknown> {\n const validatedObj: Record<string, unknown> = {};\n\n Object.keys(currentObj).forEach((key) => {\n const fullKey = parentKey ? `${parentKey}.${key}` : key;\n const value = currentObj[key];\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null\n ) {\n validatedObj[key] = applyValidation(\n value as Record<string, unknown>,\n validatorMap,\n fullKey,\n );\n } else if (validatorMap[fullKey]) {\n validatedObj[key] = validatorMap[fullKey](value);\n } else {\n validatedObj[key] = value;\n }\n });\n\n return validatedObj;\n}\n\nexport function validateDefaults(\n obj: Record<string, unknown>,\n validatorMap: ValidationMap,\n) {\n return applyValidation(obj, validatorMap);\n}\n\nconst isANumber = (value: string | number) => {\n const _value = Number(value);\n if (!_value || isNaN(_value)) return undefined;\n return _value;\n};\n\nconst numberMinMaxValue =\n (maxValue: number, minValue?: number) => (value: string) => {\n const _value = isANumber(value);\n if (!_value) return undefined;\n if (minValue && _value < minValue) return minValue;\n if (_value > maxValue) return maxValue;\n return _value;\n };\n\nexport const fontSizeMinMaxValue =\n (minSize: number, maxSize: number) =>\n (value: string): string | undefined => {\n const inputSize = parseInt(value, 10);\n // Check if the inputSize is valid and within range\n if (\n FONT_SIZES.includes(inputSize) &&\n inputSize >= minSize &&\n inputSize <= maxSize\n ) {\n return `${inputSize}px`;\n }\n\n // Filter FONT_SIZES by min and max\n const validFontSizes = FONT_SIZES.filter(\n (size) => size >= minSize && size <= maxSize,\n );\n\n if (validFontSizes.length === 0) {\n return undefined;\n }\n\n // Find the closest font size\n let closestSize = validFontSizes[0];\n let smallestDiff = Math.abs(inputSize - closestSize);\n\n for (const size of validFontSizes) {\n const diff = Math.abs(inputSize - size);\n if (diff < smallestDiff) {\n smallestDiff = diff;\n closestSize = size;\n }\n }\n\n // Return the closest font size as a string with 'px'\n return `${closestSize}px`;\n };\nexport const fontColorValue = (value: string) => {\n const normalizedColor = value.toLowerCase();\n return normalizedColor;\n};\n\nconst validateType = (validValues: string[]) => (value: unknown) => {\n if (typeof value !== 'string') return undefined;\n const receivedValue = value.toUpperCase();\n return validValues.includes(receivedValue) ? receivedValue : undefined;\n};\n\nexport const DX_VALIDATOR_MAP: ValidationMap = {\n 'customStyles.header.height': numberMinMaxValue(300, 10),\n 'customStyles.text.fontSize': fontSizeMinMaxValue(8, 96),\n 'customStyles.text.fontColor': fontColorValue,\n 'customStyles.container.borderWidth': numberMinMaxValue(20, 1),\n 'customStyles.container.borderRadius': numberMinMaxValue(100, 0),\n\n // Filter Controls: MULTISELECT LIST\n 'customStyles.filterList.type': validateType(['LIST', 'DROPDOWN']),\n 'customStyles.filterList.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n\n // Filter Controls: INPUTBOX\n 'customStyles.filterInput.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n\n // Filter Controls: DATE\n 'customStyles.filterDate.triggerType': validateType([\n 'BUTTON',\n 'AUTOMATIC',\n ]),\n};\n","export interface MergeDeepSettings {\n mergeMissingProperties?: boolean;\n mergeExistingValues?: boolean;\n}\n\nexport function mergeDeep(\n obj1: any,\n obj2: any,\n settings?: MergeDeepSettings,\n): any {\n const defaultSettings = {\n mergeExistingValues: settings?.mergeExistingValues ?? true,\n mergeMissingProperties: settings?.mergeMissingProperties ?? true,\n };\n\n if (!isValid(obj1, obj2)) return objectCopy(obj1);\n\n const result: any = Array.isArray(obj1) ? [] : {};\n\n for (const key in obj1) {\n const val1 = obj1[key];\n const val2 = obj2?.[key];\n\n if (isObject(val1) || Array.isArray(val1)) {\n result[key] = mergeDeep(val1, val2, defaultSettings);\n } else if (key in obj2 && defaultSettings.mergeExistingValues) {\n result[key] = val2;\n } else {\n result[key] = val1;\n }\n }\n\n if (defaultSettings.mergeMissingProperties) {\n for (const key in obj2) {\n if (!(key in result)) {\n result[key] = obj2[key];\n }\n }\n }\n\n return result;\n}\n\nfunction isValid(obj1: any, obj2: any): boolean {\n return (\n (isObject(obj1) && isObject(obj2)) ||\n (Array.isArray(obj1) && Array.isArray(obj2))\n );\n}\n\nfunction objectCopy<T = any>(obj: T): T {\n if (obj === null || typeof obj !== 'object') return obj;\n\n if (Array.isArray(obj)) {\n return obj.map((item) => objectCopy(item)) as any;\n }\n\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[key] = objectCopy((obj as any)[key]);\n }\n }\n\n return result;\n}\n\nfunction isObject(value: any): boolean {\n return (\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n Object.prototype.toString.call(value) === '[object Object]'\n );\n}\n","import { ValidationMap, validateDefaults } from './defaults.helpers';\nimport { mergeDeep } from './merge.helpers';\nimport {\n STRUCTURE_RESERVED_WORDS,\n STRUCTURE_SECTION_NAME_SEPARATOR,\n STRUCTURE_VIEW_NAME_SEPARATOR,\n} from '../constants/structure.constants';\nimport { WidgetCustomization } from '../models/customization.models';\nimport {\n WidgetConditionMap,\n WidgetConfig,\n WidgetItemCondition,\n WidgetStructure,\n WidgetStructureRoot,\n WidgetViewMap,\n} from '../models/structure.models';\n\ntype hasKeepOptType = 'root' | 'view';\n\ninterface CalculateViewOptions {\n viewKeys?: string[];\n pathPrefix?: string;\n viewPrefix?: string;\n hasKeepOption?: hasKeepOptType;\n prevDefaults?: Record<string, unknown>;\n customDefaults?: Record<string, unknown>;\n conditionMaps?: WidgetConditionMap[];\n checkCondition?: boolean;\n}\n\ntype ConditionAffectValue = false | 'keep' | 'remove';\n\ninterface InsertionResult {\n canInsert: boolean;\n conditionAffect: ConditionAffectValue;\n}\n\n/**\n * constructs the permission map structure for a widget\n * @param config configuration of a widget\n * @param customization customization options for a widget\n * @param validationMap\n * @returns object representing the view map for the widget\n */\nexport function getWidgetStructure(\n config: WidgetConfig,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n): WidgetViewMap {\n return calculateViewMap(config.baseStructure, customization, validationMap);\n}\n\nexport function calculateViewMap(\n config: WidgetStructureRoot,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n): WidgetViewMap {\n const permissionMap: WidgetViewMap = {};\n if (config.views) {\n for (const view in config.views) {\n Object.assign(\n permissionMap,\n calculateSpecificViewMap(\n view,\n config,\n customization,\n validationMap,\n ),\n );\n }\n } else {\n const customDefaults = calculateCustomDefaults(\n customization,\n undefined,\n validationMap,\n );\n const prevDefaults = config.defaults;\n\n const submodules = calculateSubmodules(config, customization);\n if (submodules) {\n permissionMap.subModules = submodules;\n }\n\n const conditionMaps = calculateConditions(config, customization);\n\n Object.assign(\n permissionMap,\n calculatePermissionMap(config, customization, {\n prevDefaults,\n customDefaults,\n conditionMaps,\n }),\n );\n }\n return permissionMap;\n}\n\nfunction calculateSpecificViewMap(\n view: string,\n config: WidgetStructureRoot,\n customization?: WidgetCustomization,\n validationMap?: ValidationMap,\n) {\n const viewDefinition = config.views![view];\n const customDefaults = calculateCustomDefaults(\n customization,\n view,\n validationMap,\n );\n const prevDefaults = config.defaults;\n\n const permissionMap: WidgetViewMap = {};\n\n const submodules = calculateSubmodules(config, customization, view);\n if (submodules) {\n permissionMap[`${view}::subModules`] = submodules;\n }\n\n const conditionMaps = calculateConditions(config, customization, view);\n\n Object.assign(\n permissionMap,\n calculatePermissionMap(config, customization, {\n viewKeys: viewDefinition,\n viewPrefix: view,\n prevDefaults,\n customDefaults,\n conditionMaps,\n }),\n );\n\n return permissionMap;\n}\n\nfunction getViewPrefix(view?: string) {\n return view ? `${view}${STRUCTURE_VIEW_NAME_SEPARATOR}` : '';\n}\n\nfunction getStructureKey(key: string, viewPrefix?: string): string {\n const viewValue = getViewPrefix(viewPrefix);\n return `${viewValue}${key}`;\n}\n\nconst matchWildcard = (pattern: string, value: string): boolean => {\n const regexPattern = new RegExp(\n '^' + pattern.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*') + '$',\n );\n return regexPattern.test(value);\n};\n\nfunction keyIsIncludedInKeep(\n key: string,\n customization: WidgetCustomization,\n): boolean {\n const { keep = [] } = customization;\n for (const pattern of keep) {\n if (pattern === key || matchWildcard(pattern, key)) {\n return true;\n }\n }\n return false;\n}\n\nfunction keyIsIncludedInRemove(\n key: string,\n customization: WidgetCustomization,\n): boolean {\n const { remove = [] } = customization;\n for (const pattern of remove) {\n if (pattern === key || matchWildcard(pattern, key)) {\n return true;\n }\n }\n return false;\n}\n\nfunction canInsertInCustomization(\n key: string,\n customization: WidgetCustomization,\n validateKeepOption?: boolean,\n): InsertionResult {\n const includedInRemove = keyIsIncludedInRemove(key, customization);\n const canInsert =\n !includedInRemove &&\n (!validateKeepOption || keyIsIncludedInKeep(key, customization));\n\n const keepValue = keyIsIncludedInKeep(key, customization)\n ? 'keep'\n : 'remove';\n const keepResult = validateKeepOption ? keepValue : false;\n const conditionAffect = includedInRemove ? 'remove' : keepResult;\n return { canInsert, conditionAffect };\n}\n\nfunction evalInsertKey(\n key: string,\n { viewKeys, viewPrefix = '', hasKeepOption }: CalculateViewOptions,\n customization?: WidgetCustomization,\n): InsertionResult {\n const customizationView = customization?.views?.[viewPrefix];\n\n const custCanInsert: InsertionResult = customization\n ? canInsertInCustomization(key, customization, hasKeepOption === 'root')\n : {\n canInsert: true,\n conditionAffect: false,\n };\n const custViewCanInsert: InsertionResult = customizationView\n ? canInsertInCustomization(\n key,\n customizationView,\n hasKeepOption === 'view',\n )\n : {\n canInsert: true,\n conditionAffect: false,\n };\n\n // validate remove and keep attributes for views.\n const canInsert =\n (!viewKeys || viewKeys.some((x) => key.startsWith(x))) &&\n custCanInsert.canInsert &&\n custViewCanInsert.canInsert;\n\n const conditionAffect =\n custCanInsert.conditionAffect || custViewCanInsert.conditionAffect;\n\n return { canInsert, conditionAffect };\n}\n\nfunction canInsertKey(\n key: string,\n {\n viewKeys,\n viewPrefix = '',\n hasKeepOption,\n checkCondition = false,\n }: CalculateViewOptions,\n customization?: WidgetCustomization,\n): InsertionResult {\n const result = evalInsertKey(\n key,\n { viewKeys, viewPrefix, hasKeepOption, checkCondition },\n customization,\n );\n const canInsert = checkCondition || result.canInsert;\n return { canInsert, conditionAffect: result.conditionAffect };\n}\n\nfunction addKeyToPermissions(\n permissionMap: WidgetViewMap,\n key: string,\n { viewPrefix, checkCondition, conditionMaps }: CalculateViewOptions,\n defaults?: Record<string, unknown>,\n childMap?: WidgetViewMap,\n conditionAffect?: ConditionAffectValue,\n) {\n const keyAttr = getStructureKey(key, viewPrefix);\n\n if (checkCondition && conditionAffect != null) {\n permissionMap[keyAttr] = conditionAffect;\n return;\n }\n\n const addDefaultKey = defaults && Object.keys(defaults).length > 0;\n const addChildMapKey = childMap && Object.keys(childMap).length > 0;\n const conditions = getConditionsForKey(key, conditionMaps);\n\n permissionMap[keyAttr] =\n !addDefaultKey && !addChildMapKey && !conditions\n ? true\n : {\n ...(addDefaultKey && { defaults }),\n ...(addChildMapKey && { childMap }),\n ...(conditions && { conditions }),\n };\n}\n\nfunction calculatePermissionMap(\n config: WidgetStructure | Record<string, WidgetStructure>,\n customization: WidgetCustomization | undefined,\n {\n viewKeys,\n pathPrefix = '',\n viewPrefix = '',\n hasKeepOption: previousKeepOption,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }: CalculateViewOptions,\n) {\n const permissionMap: WidgetViewMap = {};\n const currentKeepOption = nodeHasKeepOption(config, customization, {\n viewPrefix,\n pathPrefix,\n });\n\n for (const key in config) {\n if (STRUCTURE_RESERVED_WORDS.includes(key)) {\n continue;\n }\n const hasKeepOption = previousKeepOption ?? currentKeepOption;\n const configValue = config[key];\n const currentKey = `${pathPrefix}${key}`;\n const newPrefix = `${currentKey}${STRUCTURE_SECTION_NAME_SEPARATOR}`;\n\n const canInsertResult = canInsertKey(\n currentKey,\n {\n viewKeys,\n viewPrefix,\n hasKeepOption,\n checkCondition,\n },\n customization,\n );\n if (!canInsertResult.canInsert) {\n continue;\n }\n\n let defaults = prevDefaults;\n let childMap: WidgetViewMap | undefined = undefined;\n if (Array.isArray(configValue)) {\n // if it's an array, every element is a key\n defaults = calculateDefaults(\n prevDefaults,\n {} as Record<string, unknown>,\n customDefaults,\n );\n childMap = calculatePermissionMapArray(configValue, customization, {\n viewKeys,\n viewPrefix,\n pathPrefix: newPrefix,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n });\n\n Object.assign(permissionMap, childMap);\n } else if (\n typeof configValue === 'object' &&\n !Array.isArray(configValue)\n ) {\n defaults = calculateDefaults(\n prevDefaults,\n configValue.defaults as Record<string, unknown>,\n customDefaults,\n );\n // if it's an object, a recursive call is made\n childMap = calculatePermissionMap(\n configValue as WidgetStructure,\n customization,\n {\n viewKeys,\n viewPrefix,\n pathPrefix: newPrefix,\n prevDefaults: defaults,\n conditionMaps,\n checkCondition,\n },\n );\n Object.assign(permissionMap, childMap);\n } else if (typeof configValue === 'boolean' && !configValue) {\n // if it's a boolean and its false, it should be ignored\n continue;\n } else if (typeof configValue === 'boolean' && configValue) {\n defaults = calculateDefaults(\n prevDefaults,\n {} as Record<string, unknown>,\n customDefaults,\n );\n }\n\n addKeyToPermissions(\n permissionMap,\n currentKey,\n {\n viewPrefix,\n checkCondition,\n conditionMaps,\n },\n defaults,\n childMap,\n canInsertResult.conditionAffect,\n );\n }\n\n return permissionMap;\n}\n\nfunction getConditionsForKey(\n key: string,\n conditionMaps: WidgetConditionMap[] | undefined,\n): WidgetItemCondition[] | undefined {\n if (!conditionMaps || conditionMaps.length === 0) return undefined;\n const result = conditionMaps.reduce((result, x) => {\n const mapValue = x.map[key];\n if (\n typeof mapValue === 'string' &&\n (mapValue === 'keep' || mapValue === 'remove')\n ) {\n result.push({\n effect: mapValue,\n condition: x.condition,\n });\n }\n return result;\n }, [] as WidgetItemCondition[]);\n\n if (result.length === 0) return undefined;\n return result;\n}\n\nfunction calculateConditions(\n config: WidgetStructure,\n customization?: WidgetCustomization,\n view?: string,\n): WidgetConditionMap[] | undefined {\n const rootConditionals = customization?.conditional;\n const viewConditionals = view\n ? customization?.views?.[view]?.conditional\n : undefined;\n\n if (!rootConditionals && !viewConditionals) return undefined;\n\n const customConditionals = [\n ...(rootConditionals ?? []),\n ...(viewConditionals ?? []),\n ];\n return (\n customConditionals?.map((c) => ({\n condition: c.condition,\n map: calculatePermissionMap(config, c, { checkCondition: true }),\n })) ?? undefined\n );\n}\n\nfunction calculateSubmodules(\n config: WidgetStructure,\n customization?: WidgetCustomization,\n view?: string,\n) {\n const viewSubmodules = view\n ? customization?.views?.[view]?.subModules\n : undefined;\n const customRootSubmodules = customization?.subModules;\n const customSubmodules = viewSubmodules\n ? mergeObjects(customRootSubmodules, viewSubmodules)\n : customRootSubmodules;\n return mergeObjects(config.subModules, customSubmodules);\n}\n\nfunction calculateCustomDefaults(\n customization?: WidgetCustomization,\n view?: string,\n validationMap?: ValidationMap,\n) {\n const viewDefaults = view\n ? customization?.views?.[view]?.defaults\n : undefined;\n const customRootDefaults = customization?.defaults ?? {};\n const defaultObj = viewDefaults\n ? mergeObjects(customRootDefaults, viewDefaults)\n : customRootDefaults;\n return validationMap && defaultObj\n ? validateDefaults(defaultObj, validationMap)\n : defaultObj;\n}\n\nfunction calculateDefaults(\n structureDefaults: Record<string, unknown> | undefined,\n itemDefaults: Record<string, unknown> | undefined,\n customDefaults: Record<string, unknown> | undefined,\n) {\n const baseDefaults = mergeObjects(structureDefaults, itemDefaults);\n return mergeObjects(baseDefaults, customDefaults);\n}\n\nfunction mergeObjects(\n prevObj: Record<string, unknown> | undefined,\n newObj: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n // if both of configurations are falsy return undefined;\n if (!newObj && !prevObj) return undefined;\n // if just the prev defaults has value, return it\n if (!newObj) return prevObj;\n // if the newDefaults value is different than an object\n if (typeof newObj !== 'object' || Array.isArray(newObj)) return prevObj;\n return !prevObj ? newObj : mergeDeep(prevObj, newObj);\n}\n\nfunction mapObjKeys(\n configValue: WidgetStructure,\n { pathPrefix }: CalculateViewOptions,\n) {\n return Object.keys(configValue).map((x) =>\n getStructureKey(`${pathPrefix}${x}`),\n );\n}\n\nfunction mapArrayKeys(\n configValue: (string | WidgetStructure)[],\n { viewPrefix, pathPrefix }: CalculateViewOptions,\n) {\n return configValue.reduce((result, value) => {\n if (typeof value === 'string') {\n result.push(getStructureKey(`${pathPrefix}${value}`));\n } else {\n result.push(...mapObjKeys(value, { viewPrefix, pathPrefix }));\n }\n return result;\n }, [] as string[]);\n}\n\nfunction nodeHasKeepOption(\n configValue: WidgetStructure | (string | WidgetStructure)[],\n customization: WidgetCustomization | undefined,\n { viewPrefix, pathPrefix }: CalculateViewOptions,\n): hasKeepOptType | undefined {\n if (!customization) return;\n const nodeKeys = Array.isArray(configValue)\n ? mapArrayKeys(configValue, { viewPrefix, pathPrefix })\n : mapObjKeys(configValue, { viewPrefix, pathPrefix });\n const customizationView = viewPrefix\n ? customization?.views?.[viewPrefix]\n : undefined;\n for (const key of nodeKeys) {\n if (keyIsIncludedInKeep(key, customization)) {\n return 'root';\n } else if (\n customizationView &&\n keyIsIncludedInKeep(key, customizationView)\n ) {\n return 'view';\n }\n }\n return undefined;\n}\n\nfunction calculatePermissionMapArray(\n configValue: (string | WidgetStructure)[],\n customization: WidgetCustomization | undefined,\n {\n viewKeys,\n viewPrefix,\n pathPrefix,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }: CalculateViewOptions,\n): WidgetViewMap {\n const permissionMap: WidgetViewMap = {};\n const hasKeepOption = nodeHasKeepOption(configValue, customization, {\n viewPrefix,\n pathPrefix,\n });\n const defaultsSimple = calculateDefaults(\n prevDefaults,\n undefined,\n customDefaults,\n );\n\n configValue.forEach((option) => {\n const fullPath = `${pathPrefix}${option}`;\n if (typeof option === 'string') {\n const canInsertResult = canInsertKey(\n fullPath,\n {\n viewKeys,\n viewPrefix,\n hasKeepOption,\n checkCondition,\n },\n customization,\n );\n if (!canInsertResult.canInsert) {\n return;\n }\n addKeyToPermissions(\n permissionMap,\n fullPath,\n {\n viewKeys,\n viewPrefix,\n checkCondition,\n conditionMaps,\n },\n defaultsSimple,\n undefined,\n canInsertResult.conditionAffect,\n );\n } else {\n Object.assign(\n permissionMap,\n calculatePermissionMap(option, customization, {\n viewKeys,\n pathPrefix,\n viewPrefix,\n hasKeepOption,\n prevDefaults,\n customDefaults,\n conditionMaps,\n checkCondition,\n }),\n );\n }\n });\n return permissionMap;\n}\n","import { widgetConfigs } from './constants/configs';\nimport { Widget, WidgetVersion } from './constants/structure.constants';\nimport { ConditionState } from './models/conditions.models';\nimport { WidgetCustomization } from './models/customization.models';\nimport { WidgetItemCondition, WidgetViewMap } from './models/structure.models';\nimport { checkConditions } from './utils/conditions.helpers';\nimport { DX_VALIDATOR_MAP } from './utils/defaults.helpers';\nimport { getWidgetStructure } from './utils/structural.helpers';\n\nexport function buildStructure(\n widget: Widget,\n customization?: WidgetCustomization,\n version?: WidgetVersion,\n) {\n const versionSet = version ?? WidgetVersion.latest;\n const widgetConfigurability = widgetConfigs[widget]?.[versionSet];\n if (!widgetConfigurability) {\n throw new Error(\n `No config found for widget ${widget} and version ${version}`,\n );\n }\n const structureMap = getWidgetStructure(\n widgetConfigurability,\n customization,\n DX_VALIDATOR_MAP,\n );\n return new WidgetStructureInstance(structureMap);\n}\n\nexport class WidgetStructureInstance {\n constructor(private viewMap: WidgetViewMap) {}\n\n private getValue(key: string) {\n return this.viewMap[key];\n }\n\n isVisible(key: string, state?: ConditionState): boolean {\n const value = this.getValue(key);\n if (!value) return false;\n if (typeof value === 'object' && value.conditions) {\n return checkConditions(\n state,\n value.conditions as WidgetItemCondition[],\n );\n }\n return true;\n }\n\n getChildMap(key: string): WidgetViewMap | undefined {\n const value = this.getValue(key);\n if (\n !value ||\n typeof value === 'boolean' ||\n typeof value === 'string' ||\n !value.childMap\n )\n return undefined;\n return value.childMap as WidgetViewMap;\n }\n\n getSubmodule(\n module: string,\n view?: string,\n ): WidgetCustomization | undefined {\n const key = `${view ? view + '::' : ''}subModules`;\n const value = this.getValue(key);\n return (value as Record<string, WidgetCustomization>)?.[module];\n }\n\n getDefaults(key: string): Record<string, unknown> | undefined {\n const value = this.getValue(key);\n if (\n !value ||\n typeof value === 'boolean' ||\n typeof value === 'string' ||\n !value.defaults\n )\n return undefined;\n return value.defaults as WidgetViewMap;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/widget-configurability",
3
- "version": "0.0.0-dev.2391",
3
+ "version": "0.0.0-dev.2401",
4
4
  "types": "dist/types/index.d.ts",
5
5
  "main": "dist/cjs/index.js",
6
6
  "exports": {