@boteteam/utils 0.0.27 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/README.md +23 -23
  2. package/dist/cjs/CookieUtils.js.map +1 -1
  3. package/dist/cjs/asyncStorage.js.map +1 -1
  4. package/dist/cjs/environment.js.map +1 -1
  5. package/dist/cjs/file.js.map +1 -1
  6. package/dist/cjs/fileToBase64.js.map +1 -1
  7. package/dist/cjs/formatModule/formatModuleData.js +99 -9
  8. package/dist/cjs/formatModule/formatModuleData.js.map +2 -2
  9. package/dist/cjs/formatModule/helpers/formRulsRegMap.js.map +1 -1
  10. package/dist/cjs/formatModule/helpers/formatCarouselProps.js.map +1 -1
  11. package/dist/cjs/formatModule/helpers/formatChartsProps.js.map +1 -1
  12. package/dist/cjs/formatModule/helpers/formatControlBtn.d.ts +8 -0
  13. package/dist/cjs/formatModule/helpers/formatControlBtn.js +67 -0
  14. package/dist/cjs/formatModule/helpers/formatControlBtn.js.map +7 -0
  15. package/dist/cjs/formatModule/helpers/formatDescriptionsProps.js.map +1 -1
  16. package/dist/cjs/formatModule/helpers/formatEchartCommonProps.js.map +1 -1
  17. package/dist/cjs/formatModule/helpers/formatEchartLineProps.js.map +1 -1
  18. package/dist/cjs/formatModule/helpers/formatEchartPieProps.js.map +1 -1
  19. package/dist/cjs/formatModule/helpers/formatFormProps.d.ts +4 -1
  20. package/dist/cjs/formatModule/helpers/formatFormProps.js +51 -28
  21. package/dist/cjs/formatModule/helpers/formatFormProps.js.map +2 -2
  22. package/dist/cjs/formatModule/helpers/formatHighCodeProps.js.map +1 -1
  23. package/dist/cjs/formatModule/helpers/formatIconProps.d.ts +16 -0
  24. package/dist/cjs/formatModule/helpers/formatIconProps.js +49 -0
  25. package/dist/cjs/formatModule/helpers/formatIconProps.js.map +7 -0
  26. package/dist/cjs/formatModule/helpers/formatImageProps.js.map +1 -1
  27. package/dist/cjs/formatModule/helpers/formatListProps.js +69 -44
  28. package/dist/cjs/formatModule/helpers/formatListProps.js.map +3 -3
  29. package/dist/cjs/formatModule/helpers/formatLoopProps.d.ts +26 -2
  30. package/dist/cjs/formatModule/helpers/formatLoopProps.js +17 -10
  31. package/dist/cjs/formatModule/helpers/formatLoopProps.js.map +3 -3
  32. package/dist/cjs/formatModule/helpers/formatPanelProps.d.ts +8 -0
  33. package/dist/cjs/formatModule/helpers/formatPanelProps.js +67 -0
  34. package/dist/cjs/formatModule/helpers/formatPanelProps.js.map +7 -0
  35. package/dist/cjs/formatModule/helpers/formatStepsProps.js.map +1 -1
  36. package/dist/cjs/formatModule/helpers/formatStyleProps.js.map +1 -1
  37. package/dist/cjs/formatModule/helpers/formatTableProps.d.ts +5 -0
  38. package/dist/cjs/formatModule/helpers/formatTableProps.js +20 -0
  39. package/dist/cjs/formatModule/helpers/formatTableProps.js.map +3 -3
  40. package/dist/cjs/formatModule/helpers/index.d.ts +4 -1
  41. package/dist/cjs/formatModule/helpers/index.js +9 -0
  42. package/dist/cjs/formatModule/helpers/index.js.map +3 -3
  43. package/dist/cjs/formatModule/helpers/patternTransitionRegExp.js.map +1 -1
  44. package/dist/cjs/formatModule/helpers/staticCodeAssemble.js.map +1 -1
  45. package/dist/cjs/formatModule/helpers/stringPramarsValTransition.js.map +1 -1
  46. package/dist/cjs/formatModule/helpers/stringScriptExecution.js.map +1 -1
  47. package/dist/cjs/formatModule/helpers/urlPrefix.js.map +1 -1
  48. package/dist/cjs/getValueByPath.d.ts +10 -0
  49. package/dist/cjs/getValueByPath.js +69 -0
  50. package/dist/cjs/getValueByPath.js.map +7 -0
  51. package/dist/cjs/http.d.ts +8 -0
  52. package/dist/cjs/http.js +37 -1
  53. package/dist/cjs/http.js.map +2 -2
  54. package/dist/cjs/index.d.ts +5 -2
  55. package/dist/cjs/index.js +17 -0
  56. package/dist/cjs/index.js.map +3 -3
  57. package/dist/cjs/loopPageServiceApiMap.d.ts +17 -0
  58. package/dist/cjs/loopPageServiceApiMap.js +54 -0
  59. package/dist/cjs/loopPageServiceApiMap.js.map +7 -0
  60. package/dist/cjs/loopPageStaticCodeMap.js.map +1 -1
  61. package/dist/cjs/markdownEscape.js.map +1 -1
  62. package/dist/cjs/pathArgsUtils.js.map +1 -1
  63. package/dist/cjs/scriptExecution.js.map +1 -1
  64. package/dist/cjs/securityUtils.js +1 -1
  65. package/dist/cjs/securityUtils.js.map +2 -2
  66. package/dist/cjs/stringUtils.js.map +1 -1
  67. package/dist/cjs/timeFormat.d.ts +44 -0
  68. package/dist/cjs/timeFormat.js +127 -0
  69. package/dist/cjs/timeFormat.js.map +7 -0
  70. package/dist/cjs/treeUtils.js.map +1 -1
  71. package/dist/cjs/watchMatchMedia.js.map +1 -1
  72. package/dist/esm/CookieUtils.js.map +1 -1
  73. package/dist/esm/asyncStorage.js +4 -4
  74. package/dist/esm/asyncStorage.js.map +1 -1
  75. package/dist/esm/environment.js +3 -3
  76. package/dist/esm/environment.js.map +1 -1
  77. package/dist/esm/file.js +32 -32
  78. package/dist/esm/file.js.map +1 -1
  79. package/dist/esm/fileToBase64.js +4 -4
  80. package/dist/esm/fileToBase64.js.map +1 -1
  81. package/dist/esm/formatModule/formatModuleData.js +118 -26
  82. package/dist/esm/formatModule/formatModuleData.js.map +1 -1
  83. package/dist/esm/formatModule/helpers/formRulsRegMap.js.map +1 -1
  84. package/dist/esm/formatModule/helpers/formatCarouselProps.js.map +1 -1
  85. package/dist/esm/formatModule/helpers/formatChartsProps.js.map +1 -1
  86. package/dist/esm/formatModule/helpers/formatControlBtn.d.ts +8 -0
  87. package/dist/esm/formatModule/helpers/formatControlBtn.js +41 -0
  88. package/dist/esm/formatModule/helpers/formatControlBtn.js.map +1 -0
  89. package/dist/esm/formatModule/helpers/formatDescriptionsProps.js.map +1 -1
  90. package/dist/esm/formatModule/helpers/formatEchartCommonProps.js.map +1 -1
  91. package/dist/esm/formatModule/helpers/formatEchartLineProps.js.map +1 -1
  92. package/dist/esm/formatModule/helpers/formatEchartPieProps.js.map +1 -1
  93. package/dist/esm/formatModule/helpers/formatFormProps.d.ts +4 -1
  94. package/dist/esm/formatModule/helpers/formatFormProps.js +93 -31
  95. package/dist/esm/formatModule/helpers/formatFormProps.js.map +1 -1
  96. package/dist/esm/formatModule/helpers/formatHighCodeProps.js.map +1 -1
  97. package/dist/esm/formatModule/helpers/formatIconProps.d.ts +16 -0
  98. package/dist/esm/formatModule/helpers/formatIconProps.js +25 -0
  99. package/dist/esm/formatModule/helpers/formatIconProps.js.map +1 -0
  100. package/dist/esm/formatModule/helpers/formatImageProps.js.map +1 -1
  101. package/dist/esm/formatModule/helpers/formatListProps.js +69 -44
  102. package/dist/esm/formatModule/helpers/formatListProps.js.map +1 -1
  103. package/dist/esm/formatModule/helpers/formatLoopProps.d.ts +26 -2
  104. package/dist/esm/formatModule/helpers/formatLoopProps.js +35 -7
  105. package/dist/esm/formatModule/helpers/formatLoopProps.js.map +1 -1
  106. package/dist/esm/formatModule/helpers/formatPanelProps.d.ts +8 -0
  107. package/dist/esm/formatModule/helpers/formatPanelProps.js +41 -0
  108. package/dist/esm/formatModule/helpers/formatPanelProps.js.map +1 -0
  109. package/dist/esm/formatModule/helpers/formatStepsProps.js.map +1 -1
  110. package/dist/esm/formatModule/helpers/formatStyleProps.js.map +1 -1
  111. package/dist/esm/formatModule/helpers/formatTableProps.d.ts +5 -0
  112. package/dist/esm/formatModule/helpers/formatTableProps.js +12 -0
  113. package/dist/esm/formatModule/helpers/formatTableProps.js.map +1 -1
  114. package/dist/esm/formatModule/helpers/index.d.ts +4 -1
  115. package/dist/esm/formatModule/helpers/index.js +4 -1
  116. package/dist/esm/formatModule/helpers/index.js.map +1 -1
  117. package/dist/esm/formatModule/helpers/patternTransitionRegExp.js.map +1 -1
  118. package/dist/esm/formatModule/helpers/staticCodeAssemble.js +4 -4
  119. package/dist/esm/formatModule/helpers/staticCodeAssemble.js.map +1 -1
  120. package/dist/esm/formatModule/helpers/stringPramarsValTransition.js.map +1 -1
  121. package/dist/esm/formatModule/helpers/stringScriptExecution.js.map +1 -1
  122. package/dist/esm/formatModule/helpers/urlPrefix.js.map +1 -1
  123. package/dist/esm/getValueByPath.d.ts +10 -0
  124. package/dist/esm/getValueByPath.js +87 -0
  125. package/dist/esm/getValueByPath.js.map +1 -0
  126. package/dist/esm/http.d.ts +8 -0
  127. package/dist/esm/http.js +97 -58
  128. package/dist/esm/http.js.map +1 -1
  129. package/dist/esm/index.d.ts +5 -2
  130. package/dist/esm/index.js +5 -2
  131. package/dist/esm/index.js.map +1 -1
  132. package/dist/esm/loopPageServiceApiMap.d.ts +17 -0
  133. package/dist/esm/loopPageServiceApiMap.js +40 -0
  134. package/dist/esm/loopPageServiceApiMap.js.map +1 -0
  135. package/dist/esm/loopPageStaticCodeMap.js.map +1 -1
  136. package/dist/esm/markdownEscape.js.map +1 -1
  137. package/dist/esm/pathArgsUtils.js +8 -8
  138. package/dist/esm/pathArgsUtils.js.map +1 -1
  139. package/dist/esm/scriptExecution.js.map +1 -1
  140. package/dist/esm/securityUtils.js +20 -20
  141. package/dist/esm/securityUtils.js.map +1 -1
  142. package/dist/esm/stringUtils.js.map +1 -1
  143. package/dist/esm/timeFormat.d.ts +44 -0
  144. package/dist/esm/timeFormat.js +121 -0
  145. package/dist/esm/timeFormat.js.map +1 -0
  146. package/dist/esm/treeUtils.js +8 -8
  147. package/dist/esm/treeUtils.js.map +1 -1
  148. package/dist/esm/watchMatchMedia.js.map +1 -1
  149. package/dist/umd/index.min.js +1 -1
  150. package/dist/umd/index.min.js.map +1 -1
  151. package/package.json +4 -3
@@ -1,6 +1,7 @@
1
1
  import stringPramarsValTransition from "./stringPramarsValTransition";
2
2
  import patternTransitionRegExp from "./patternTransitionRegExp";
3
3
  import staticCodeAssemble from "./staticCodeAssemble";
4
+ import formatPanelProps from "./formatPanelProps";
4
5
  import formatTableProps from "./formatTableProps";
5
6
  import formatListProps from "./formatListProps";
6
7
  import formatImageProps from "./formatImageProps";
@@ -14,8 +15,10 @@ import formatChartsProps from "./formatChartsProps";
14
15
  import formatLoopProps from "./formatLoopProps";
15
16
  import formatStyleProps from "./formatStyleProps";
16
17
  import formatStepsProps from "./formatStepsProps";
18
+ import formatIconProps from "./formatIconProps";
19
+ import formatControlBtn from "./formatControlBtn";
17
20
  import formRulsRegMap from "./formRulsRegMap";
18
21
  import urlPrefix from "./urlPrefix";
19
22
  import { stringScriptExecution, createCompartmentExecution } from "./stringScriptExecution";
20
- export { urlPrefix, formRulsRegMap, formatListProps, formatTableProps, formatCarouselProps, formatImageProps, formatDescriptionsProps, formatFormProps, formatHighCodeProps, formatEchartLineProps, formatEchartPieProps, formatChartsProps, formatLoopProps, formatStyleProps, formatStepsProps, staticCodeAssemble, patternTransitionRegExp, stringPramarsValTransition, stringScriptExecution, createCompartmentExecution };
23
+ export { urlPrefix, formRulsRegMap, formatPanelProps, formatListProps, formatTableProps, formatCarouselProps, formatImageProps, formatDescriptionsProps, formatFormProps, formatHighCodeProps, formatEchartLineProps, formatEchartPieProps, formatChartsProps, formatLoopProps, formatStyleProps, formatStepsProps, formatIconProps, formatControlBtn, staticCodeAssemble, patternTransitionRegExp, stringPramarsValTransition, stringScriptExecution, createCompartmentExecution };
21
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["stringPramarsValTransition","patternTransitionRegExp","staticCodeAssemble","formatTableProps","formatListProps","formatImageProps","formatCarouselProps","formatDescriptionsProps","formatHighCodeProps","formatFormProps","formatEchartLineProps","formatEchartPieProps","formatChartsProps","formatLoopProps","formatStyleProps","formatStepsProps","formRulsRegMap","urlPrefix","stringScriptExecution","createCompartmentExecution"],"sources":["../../../../src/formatModule/helpers/index.ts"],"sourcesContent":["import stringPramarsValTransition from './stringPramarsValTransition';\r\nimport patternTransitionRegExp from './patternTransitionRegExp';\r\nimport staticCodeAssemble from './staticCodeAssemble';\r\nimport formatTableProps from './formatTableProps';\r\nimport formatListProps from './formatListProps';\r\nimport formatImageProps from './formatImageProps';\r\nimport formatCarouselProps from './formatCarouselProps';\r\nimport formatDescriptionsProps from './formatDescriptionsProps';\r\nimport formatHighCodeProps from './formatHighCodeProps';\r\nimport formatFormProps from './formatFormProps';\r\nimport formatEchartLineProps from './formatEchartLineProps';\r\nimport formatEchartPieProps from './formatEchartPieProps';\r\nimport formatChartsProps from './formatChartsProps';\r\nimport formatLoopProps from './formatLoopProps';\r\nimport formatStyleProps from './formatStyleProps';\r\nimport formatStepsProps from './formatStepsProps';\r\nimport formRulsRegMap from './formRulsRegMap';\r\nimport urlPrefix from './urlPrefix';\r\nimport { stringScriptExecution, createCompartmentExecution } from './stringScriptExecution';\r\n\r\nexport {\r\n urlPrefix,\r\n formRulsRegMap,\r\n formatListProps,\r\n formatTableProps,\r\n formatCarouselProps,\r\n formatImageProps,\r\n formatDescriptionsProps,\r\n formatFormProps,\r\n formatHighCodeProps,\r\n formatEchartLineProps,\r\n formatEchartPieProps,\r\n formatChartsProps,\r\n formatLoopProps,\r\n formatStyleProps,\r\n formatStepsProps,\r\n staticCodeAssemble,\r\n patternTransitionRegExp,\r\n stringPramarsValTransition,\r\n stringScriptExecution,\r\n createCompartmentExecution,\r\n};\r\n"],"mappings":"AAAA,OAAOA,0BAA0B;AACjC,OAAOC,uBAAuB;AAC9B,OAAOC,kBAAkB;AACzB,OAAOC,gBAAgB;AACvB,OAAOC,eAAe;AACtB,OAAOC,gBAAgB;AACvB,OAAOC,mBAAmB;AAC1B,OAAOC,uBAAuB;AAC9B,OAAOC,mBAAmB;AAC1B,OAAOC,eAAe;AACtB,OAAOC,qBAAqB;AAC5B,OAAOC,oBAAoB;AAC3B,OAAOC,iBAAiB;AACxB,OAAOC,eAAe;AACtB,OAAOC,gBAAgB;AACvB,OAAOC,gBAAgB;AACvB,OAAOC,cAAc;AACrB,OAAOC,SAAS;AAChB,SAASC,qBAAqB,EAAEC,0BAA0B;AAE1D,SACEF,SAAS,EACTD,cAAc,EACdZ,eAAe,EACfD,gBAAgB,EAChBG,mBAAmB,EACnBD,gBAAgB,EAChBE,uBAAuB,EACvBE,eAAe,EACfD,mBAAmB,EACnBE,qBAAqB,EACrBC,oBAAoB,EACpBC,iBAAiB,EACjBC,eAAe,EACfC,gBAAgB,EAChBC,gBAAgB,EAChBb,kBAAkB,EAClBD,uBAAuB,EACvBD,0BAA0B,EAC1BkB,qBAAqB,EACrBC,0BAA0B"}
1
+ {"version":3,"names":["stringPramarsValTransition","patternTransitionRegExp","staticCodeAssemble","formatPanelProps","formatTableProps","formatListProps","formatImageProps","formatCarouselProps","formatDescriptionsProps","formatHighCodeProps","formatFormProps","formatEchartLineProps","formatEchartPieProps","formatChartsProps","formatLoopProps","formatStyleProps","formatStepsProps","formatIconProps","formatControlBtn","formRulsRegMap","urlPrefix","stringScriptExecution","createCompartmentExecution"],"sources":["../../../../src/formatModule/helpers/index.ts"],"sourcesContent":["import stringPramarsValTransition from './stringPramarsValTransition';\nimport patternTransitionRegExp from './patternTransitionRegExp';\nimport staticCodeAssemble from './staticCodeAssemble';\nimport formatPanelProps from './formatPanelProps';\nimport formatTableProps from './formatTableProps';\nimport formatListProps from './formatListProps';\nimport formatImageProps from './formatImageProps';\nimport formatCarouselProps from './formatCarouselProps';\nimport formatDescriptionsProps from './formatDescriptionsProps';\nimport formatHighCodeProps from './formatHighCodeProps';\nimport formatFormProps from './formatFormProps';\nimport formatEchartLineProps from './formatEchartLineProps';\nimport formatEchartPieProps from './formatEchartPieProps';\nimport formatChartsProps from './formatChartsProps';\nimport formatLoopProps from './formatLoopProps';\nimport formatStyleProps from './formatStyleProps';\nimport formatStepsProps from './formatStepsProps';\nimport formatIconProps from './formatIconProps';\nimport formatControlBtn from './formatControlBtn';\nimport formRulsRegMap from './formRulsRegMap';\nimport urlPrefix from './urlPrefix';\nimport { stringScriptExecution, createCompartmentExecution } from './stringScriptExecution';\n\nexport {\n urlPrefix,\n formRulsRegMap,\n formatPanelProps,\n formatListProps,\n formatTableProps,\n formatCarouselProps,\n formatImageProps,\n formatDescriptionsProps,\n formatFormProps,\n formatHighCodeProps,\n formatEchartLineProps,\n formatEchartPieProps,\n formatChartsProps,\n formatLoopProps,\n formatStyleProps,\n formatStepsProps,\n formatIconProps,\n formatControlBtn,\n staticCodeAssemble,\n patternTransitionRegExp,\n stringPramarsValTransition,\n stringScriptExecution,\n createCompartmentExecution,\n};\n"],"mappings":"AAAA,OAAOA,0BAA0B;AACjC,OAAOC,uBAAuB;AAC9B,OAAOC,kBAAkB;AACzB,OAAOC,gBAAgB;AACvB,OAAOC,gBAAgB;AACvB,OAAOC,eAAe;AACtB,OAAOC,gBAAgB;AACvB,OAAOC,mBAAmB;AAC1B,OAAOC,uBAAuB;AAC9B,OAAOC,mBAAmB;AAC1B,OAAOC,eAAe;AACtB,OAAOC,qBAAqB;AAC5B,OAAOC,oBAAoB;AAC3B,OAAOC,iBAAiB;AACxB,OAAOC,eAAe;AACtB,OAAOC,gBAAgB;AACvB,OAAOC,gBAAgB;AACvB,OAAOC,eAAe;AACtB,OAAOC,gBAAgB;AACvB,OAAOC,cAAc;AACrB,OAAOC,SAAS;AAChB,SAASC,qBAAqB,EAAEC,0BAA0B;AAE1D,SACEF,SAAS,EACTD,cAAc,EACdhB,gBAAgB,EAChBE,eAAe,EACfD,gBAAgB,EAChBG,mBAAmB,EACnBD,gBAAgB,EAChBE,uBAAuB,EACvBE,eAAe,EACfD,mBAAmB,EACnBE,qBAAqB,EACrBC,oBAAoB,EACpBC,iBAAiB,EACjBC,eAAe,EACfC,gBAAgB,EAChBC,gBAAgB,EAChBC,eAAe,EACfC,gBAAgB,EAChBhB,kBAAkB,EAClBD,uBAAuB,EACvBD,0BAA0B,EAC1BqB,qBAAqB,EACrBC,0BAA0B"}
@@ -1 +1 @@
1
- {"version":3,"names":["patternTransitionRegExp","patternString","expMatchPattern","test","patternArr","match","Array","isArray","RegExp","_unused"],"sources":["../../../../src/formatModule/helpers/patternTransitionRegExp.ts"],"sourcesContent":["// 字符串转正则表达式\r\nconst patternTransitionRegExp = (patternString:string) => {\r\n try {\r\n if (typeof patternString === 'string' && patternString) {\r\n const expMatchPattern = /^\\/(.*?)\\/([gimsy]*)$/;\r\n if (expMatchPattern.test(patternString)) {\r\n const patternArr = patternString.match(expMatchPattern);\r\n if (Array.isArray(patternArr)) {\r\n return new RegExp(patternArr?.[1], patternArr?.[2]);\r\n }\r\n return '';\r\n }\r\n return new RegExp(patternString);\r\n }\r\n return '';\r\n } catch {\r\n return '';\r\n }\r\n};\r\n\r\n\r\nexport default patternTransitionRegExp;\r\n"],"mappings":"AAAA;AACA,IAAMA,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIC,aAAoB,EAAK;EACxD,IAAI;IACF,IAAI,OAAOA,aAAa,KAAK,QAAQ,IAAIA,aAAa,EAAE;MACtD,IAAMC,eAAe,GAAG,uBAAuB;MAC/C,IAAIA,eAAe,CAACC,IAAI,CAACF,aAAa,CAAC,EAAE;QACvC,IAAMG,UAAU,GAAGH,aAAa,CAACI,KAAK,CAACH,eAAe,CAAC;QACvD,IAAII,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;UAC7B,OAAO,IAAII,MAAM,CAACJ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAG,CAAC,CAAC,EAAEA,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAG,CAAC,CAAC,CAAC;QACrD;QACA,OAAO,EAAE;MACX;MACA,OAAO,IAAII,MAAM,CAACP,aAAa,CAAC;IAClC;IACA,OAAO,EAAE;EACX,CAAC,CAAC,OAAAQ,OAAA,EAAM;IACN,OAAO,EAAE;EACX;AACF,CAAC;AAGD,eAAeT,uBAAuB"}
1
+ {"version":3,"names":["patternTransitionRegExp","patternString","expMatchPattern","test","patternArr","match","Array","isArray","RegExp","_unused"],"sources":["../../../../src/formatModule/helpers/patternTransitionRegExp.ts"],"sourcesContent":["// 字符串转正则表达式\nconst patternTransitionRegExp = (patternString:string) => {\n try {\n if (typeof patternString === 'string' && patternString) {\n const expMatchPattern = /^\\/(.*?)\\/([gimsy]*)$/;\n if (expMatchPattern.test(patternString)) {\n const patternArr = patternString.match(expMatchPattern);\n if (Array.isArray(patternArr)) {\n return new RegExp(patternArr?.[1], patternArr?.[2]);\n }\n return '';\n }\n return new RegExp(patternString);\n }\n return '';\n } catch {\n return '';\n }\n};\n\n\nexport default patternTransitionRegExp;\n"],"mappings":"AAAA;AACA,IAAMA,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIC,aAAoB,EAAK;EACxD,IAAI;IACF,IAAI,OAAOA,aAAa,KAAK,QAAQ,IAAIA,aAAa,EAAE;MACtD,IAAMC,eAAe,GAAG,uBAAuB;MAC/C,IAAIA,eAAe,CAACC,IAAI,CAACF,aAAa,CAAC,EAAE;QACvC,IAAMG,UAAU,GAAGH,aAAa,CAACI,KAAK,CAACH,eAAe,CAAC;QACvD,IAAII,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;UAC7B,OAAO,IAAII,MAAM,CAACJ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAG,CAAC,CAAC,EAAEA,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAG,CAAC,CAAC,CAAC;QACrD;QACA,OAAO,EAAE;MACX;MACA,OAAO,IAAII,MAAM,CAACP,aAAa,CAAC;IAClC;IACA,OAAO,EAAE;EACX,CAAC,CAAC,OAAAQ,OAAA,EAAM;IACN,OAAO,EAAE;EACX;AACF,CAAC;AAGD,eAAeT,uBAAuB"}
@@ -4,10 +4,10 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
5
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- /**
8
- * 拼装静态数据键值对
9
- * @param staticCodeList 静态数据列表
10
- * @returns
7
+ /**
8
+ * 拼装静态数据键值对
9
+ * @param staticCodeList 静态数据列表
10
+ * @returns
11
11
  */
12
12
 
13
13
  var staticCodeAssemble = function staticCodeAssemble(staticCodeList) {
@@ -1 +1 @@
1
- {"version":3,"names":["staticCodeAssemble","staticCodeList","staticCodeMap","staticOptionsMap","Object","keys","forEach","codeKey","objMap","loopStaticData","staticItems","staticOpts","Array","isArray","length","codeItem","attrValue","attrValueName","staticOptItem","value","label","attrCode","_objectSpread","_defineProperty","attrRelList","children","push"],"sources":["../../../../src/formatModule/helpers/staticCodeAssemble.ts"],"sourcesContent":["/**\r\n * 拼装静态数据键值对\r\n * @param staticCodeList 静态数据列表\r\n * @returns\r\n */\r\n\r\nconst staticCodeAssemble = (staticCodeList?:{[key:string]:any}|null):{\r\n staticCodeMap: { [key: string]: any },\r\n staticOptionsMap: { [key: string]: any }\r\n} => {\r\n const staticCodeMap: { [key: string]: any } = {};\r\n const staticOptionsMap: { [key: string]: any } = {};\r\n if (staticCodeList) {\r\n Object.keys(staticCodeList).forEach((codeKey) => {\r\n const objMap: { [key: string]: any } = {};\r\n\r\n const loopStaticData = (staticItems:{[key:string]: any}[]) => {\r\n const staticOpts:{ [key: string]: any }[] = [];\r\n if (Array.isArray(staticItems) && staticItems.length > 0) {\r\n staticItems.forEach((codeItem: any) => {\r\n objMap[codeItem?.attrValue] = codeItem?.attrValueName;\r\n const staticOptItem:{[key:string]: any} = {\r\n value: codeItem?.attrValue,\r\n label: codeItem?.attrValueName,\r\n };\r\n staticCodeMap[codeItem?.attrCode] = {\r\n ...staticCodeMap[codeItem?.attrCode],\r\n [codeItem?.attrValue]: codeItem?.attrValueName,\r\n };\r\n if (Array.isArray(codeItem?.attrRelList) && codeItem?.attrRelList.length > 0) {\r\n staticOptItem.children = loopStaticData(codeItem?.attrRelList);\r\n }\r\n staticOpts.push(staticOptItem);\r\n });\r\n }\r\n return staticOpts;\r\n };\r\n staticOptionsMap[codeKey] = loopStaticData(staticCodeList?.[codeKey]);\r\n });\r\n }\r\n\r\n return {\r\n staticCodeMap,\r\n staticOptionsMap,\r\n };\r\n};\r\n\r\n\r\nexport default staticCodeAssemble;\r\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,cAAuC,EAG9D;EACH,IAAMC,aAAqC,GAAG,CAAC,CAAC;EAChD,IAAMC,gBAAwC,GAAG,CAAC,CAAC;EACnD,IAAIF,cAAc,EAAE;IAClBG,MAAM,CAACC,IAAI,CAACJ,cAAc,CAAC,CAACK,OAAO,CAAC,UAACC,OAAO,EAAK;MAC/C,IAAMC,MAA8B,GAAG,CAAC,CAAC;MAEzC,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,WAAiC,EAAK;QAC5D,IAAMC,UAAmC,GAAG,EAAE;QAC9C,IAAIC,KAAK,CAACC,OAAO,CAACH,WAAW,CAAC,IAAIA,WAAW,CAACI,MAAM,GAAG,CAAC,EAAE;UACxDJ,WAAW,CAACJ,OAAO,CAAC,UAACS,QAAa,EAAK;YACrCP,MAAM,CAACO,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEC,SAAS,CAAC,GAAGD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,aAAa;YACrD,IAAMC,aAAiC,GAAG;cACxCC,KAAK,EAAEJ,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEC,SAAS;cAC1BI,KAAK,EAAEL,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE;YACnB,CAAC;YACDf,aAAa,CAACa,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,QAAQ,CAAC,GAAAC,aAAA,CAAAA,aAAA,KAC5BpB,aAAa,CAACa,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,QAAQ,CAAC,OAAAE,eAAA,KACnCR,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEC,SAAS,EAAGD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,aAAa,EAC/C;YACD,IAAIL,KAAK,CAACC,OAAO,CAACE,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAES,WAAW,CAAC,IAAI,CAAAT,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAES,WAAW,CAACV,MAAM,IAAG,CAAC,EAAE;cAC5EI,aAAa,CAACO,QAAQ,GAAGhB,cAAc,CAACM,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAES,WAAW,CAAC;YAChE;YACAb,UAAU,CAACe,IAAI,CAACR,aAAa,CAAC;UAChC,CAAC,CAAC;QACJ;QACA,OAAOP,UAAU;MACnB,CAAC;MACDR,gBAAgB,CAACI,OAAO,CAAC,GAAGE,cAAc,CAACR,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGM,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC;EACJ;EAEA,OAAO;IACLL,aAAa,EAAbA,aAAa;IACbC,gBAAgB,EAAhBA;EACF,CAAC;AACH,CAAC;AAGD,eAAeH,kBAAkB"}
1
+ {"version":3,"names":["staticCodeAssemble","staticCodeList","staticCodeMap","staticOptionsMap","Object","keys","forEach","codeKey","objMap","loopStaticData","staticItems","staticOpts","Array","isArray","length","codeItem","attrValue","attrValueName","staticOptItem","value","label","attrCode","_objectSpread","_defineProperty","attrRelList","children","push"],"sources":["../../../../src/formatModule/helpers/staticCodeAssemble.ts"],"sourcesContent":["/**\n * 拼装静态数据键值对\n * @param staticCodeList 静态数据列表\n * @returns\n */\n\nconst staticCodeAssemble = (staticCodeList?:{[key:string]:any}|null):{\n staticCodeMap: { [key: string]: any },\n staticOptionsMap: { [key: string]: any }\n} => {\n const staticCodeMap: { [key: string]: any } = {};\n const staticOptionsMap: { [key: string]: any } = {};\n if (staticCodeList) {\n Object.keys(staticCodeList).forEach((codeKey) => {\n const objMap: { [key: string]: any } = {};\n\n const loopStaticData = (staticItems:{[key:string]: any}[]) => {\n const staticOpts:{ [key: string]: any }[] = [];\n if (Array.isArray(staticItems) && staticItems.length > 0) {\n staticItems.forEach((codeItem: any) => {\n objMap[codeItem?.attrValue] = codeItem?.attrValueName;\n const staticOptItem:{[key:string]: any} = {\n value: codeItem?.attrValue,\n label: codeItem?.attrValueName,\n };\n staticCodeMap[codeItem?.attrCode] = {\n ...staticCodeMap[codeItem?.attrCode],\n [codeItem?.attrValue]: codeItem?.attrValueName,\n };\n if (Array.isArray(codeItem?.attrRelList) && codeItem?.attrRelList.length > 0) {\n staticOptItem.children = loopStaticData(codeItem?.attrRelList);\n }\n staticOpts.push(staticOptItem);\n });\n }\n return staticOpts;\n };\n staticOptionsMap[codeKey] = loopStaticData(staticCodeList?.[codeKey]);\n });\n }\n\n return {\n staticCodeMap,\n staticOptionsMap,\n };\n};\n\n\nexport default staticCodeAssemble;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,cAAuC,EAG9D;EACH,IAAMC,aAAqC,GAAG,CAAC,CAAC;EAChD,IAAMC,gBAAwC,GAAG,CAAC,CAAC;EACnD,IAAIF,cAAc,EAAE;IAClBG,MAAM,CAACC,IAAI,CAACJ,cAAc,CAAC,CAACK,OAAO,CAAC,UAACC,OAAO,EAAK;MAC/C,IAAMC,MAA8B,GAAG,CAAC,CAAC;MAEzC,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,WAAiC,EAAK;QAC5D,IAAMC,UAAmC,GAAG,EAAE;QAC9C,IAAIC,KAAK,CAACC,OAAO,CAACH,WAAW,CAAC,IAAIA,WAAW,CAACI,MAAM,GAAG,CAAC,EAAE;UACxDJ,WAAW,CAACJ,OAAO,CAAC,UAACS,QAAa,EAAK;YACrCP,MAAM,CAACO,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEC,SAAS,CAAC,GAAGD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,aAAa;YACrD,IAAMC,aAAiC,GAAG;cACxCC,KAAK,EAAEJ,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEC,SAAS;cAC1BI,KAAK,EAAEL,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE;YACnB,CAAC;YACDf,aAAa,CAACa,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,QAAQ,CAAC,GAAAC,aAAA,CAAAA,aAAA,KAC5BpB,aAAa,CAACa,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,QAAQ,CAAC,OAAAE,eAAA,KACnCR,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEC,SAAS,EAAGD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,aAAa,EAC/C;YACD,IAAIL,KAAK,CAACC,OAAO,CAACE,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAES,WAAW,CAAC,IAAI,CAAAT,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAES,WAAW,CAACV,MAAM,IAAG,CAAC,EAAE;cAC5EI,aAAa,CAACO,QAAQ,GAAGhB,cAAc,CAACM,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAES,WAAW,CAAC;YAChE;YACAb,UAAU,CAACe,IAAI,CAACR,aAAa,CAAC;UAChC,CAAC,CAAC;QACJ;QACA,OAAOP,UAAU;MACnB,CAAC;MACDR,gBAAgB,CAACI,OAAO,CAAC,GAAGE,cAAc,CAACR,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGM,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC;EACJ;EAEA,OAAO;IACLL,aAAa,EAAbA,aAAa;IACbC,gBAAgB,EAAhBA;EACF,CAAC;AACH,CAAC;AAGD,eAAeH,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"names":["replaceParamsValue","stringPramarsValTransition"],"sources":["../../../../src/formatModule/helpers/stringPramarsValTransition.ts"],"sourcesContent":["import { replaceParamsValue } from '../../treeUtils';\r\n\r\nconst stringPramarsValTransition = replaceParamsValue;\r\n\r\nexport default stringPramarsValTransition;\r\n"],"mappings":"AAAA,SAASA,kBAAkB;AAE3B,IAAMC,0BAA0B,GAAGD,kBAAkB;AAErD,eAAeC,0BAA0B"}
1
+ {"version":3,"names":["replaceParamsValue","stringPramarsValTransition"],"sources":["../../../../src/formatModule/helpers/stringPramarsValTransition.ts"],"sourcesContent":["import { replaceParamsValue } from '../../treeUtils';\n\nconst stringPramarsValTransition = replaceParamsValue;\n\nexport default stringPramarsValTransition;\n"],"mappings":"AAAA,SAASA,kBAAkB;AAE3B,IAAMC,0BAA0B,GAAGD,kBAAkB;AAErD,eAAeC,0BAA0B"}
@@ -1 +1 @@
1
- {"version":3,"names":["stringScriptExecution","scriptCode","root","arguments","length","undefined","compartment","Compartment","window","evaluate","err","console","error","createCompartmentExecution","globals"],"sources":["../../../../src/formatModule/helpers/stringScriptExecution.ts"],"sourcesContent":["import 'ses';\r\nimport type { CompartmentOptions } from 'ses';\r\n/* eslint-disable no-new-func */\r\n// export const stringScriptExecution = (scriptCode: string, root: any) => {\r\n// try {\r\n// if (scriptCode) {\r\n// // 将参数作为全局变量传递\r\n// const func = new Function('root', `return ${scriptCode}`);\r\n// const result = func(root);\r\n// console.log(result, root, scriptCode);\r\n// return result;\r\n// }\r\n// throw new Error('No script code provided');\r\n// } catch (err) {\r\n// console.error(err);\r\n// return null;\r\n// }\r\n// };\r\n\r\nexport const stringScriptExecution = (scriptCode: string, root: any = {}) => {\r\n const compartment = new Compartment({ root, window });\r\n try {\r\n return scriptCode ? compartment.evaluate(scriptCode) : null;\r\n } catch (err) {\r\n console.error(err);\r\n return err;\r\n }\r\n};\r\n\r\nexport const createCompartmentExecution = (globals?: CompartmentOptions) => {\r\n return new Compartment(globals);\r\n};\r\n"],"mappings":"AAAA,OAAO,KAAK;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,UAAkB,EAAqB;EAAA,IAAnBC,IAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACtE,IAAMG,WAAW,GAAG,IAAIC,WAAW,CAAC;IAAEL,IAAI,EAAJA,IAAI;IAAEM,MAAM,EAANA;EAAO,CAAC,CAAC;EACrD,IAAI;IACF,OAAOP,UAAU,GAAGK,WAAW,CAACG,QAAQ,CAACR,UAAU,CAAC,GAAG,IAAI;EAC7D,CAAC,CAAC,OAAOS,GAAG,EAAE;IACZC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;IAClB,OAAOA,GAAG;EACZ;AACF,CAAC;AAED,OAAO,IAAMG,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAIC,OAA4B,EAAK;EAC1E,OAAO,IAAIP,WAAW,CAACO,OAAO,CAAC;AACjC,CAAC"}
1
+ {"version":3,"names":["stringScriptExecution","scriptCode","root","arguments","length","undefined","compartment","Compartment","window","evaluate","err","console","error","createCompartmentExecution","globals"],"sources":["../../../../src/formatModule/helpers/stringScriptExecution.ts"],"sourcesContent":["import 'ses';\nimport type { CompartmentOptions } from 'ses';\n/* eslint-disable no-new-func */\n// export const stringScriptExecution = (scriptCode: string, root: any) => {\n// try {\n// if (scriptCode) {\n// // 将参数作为全局变量传递\n// const func = new Function('root', `return ${scriptCode}`);\n// const result = func(root);\n// console.log(result, root, scriptCode);\n// return result;\n// }\n// throw new Error('No script code provided');\n// } catch (err) {\n// console.error(err);\n// return null;\n// }\n// };\n\nexport const stringScriptExecution = (scriptCode: string, root: any = {}) => {\n const compartment = new Compartment({ root, window });\n try {\n return scriptCode ? compartment.evaluate(scriptCode) : null;\n } catch (err) {\n console.error(err);\n return err;\n }\n};\n\nexport const createCompartmentExecution = (globals?: CompartmentOptions) => {\n return new Compartment(globals);\n};\n"],"mappings":"AAAA,OAAO,KAAK;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,UAAkB,EAAqB;EAAA,IAAnBC,IAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACtE,IAAMG,WAAW,GAAG,IAAIC,WAAW,CAAC;IAAEL,IAAI,EAAJA,IAAI;IAAEM,MAAM,EAANA;EAAO,CAAC,CAAC;EACrD,IAAI;IACF,OAAOP,UAAU,GAAGK,WAAW,CAACG,QAAQ,CAACR,UAAU,CAAC,GAAG,IAAI;EAC7D,CAAC,CAAC,OAAOS,GAAG,EAAE;IACZC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;IAClB,OAAOA,GAAG;EACZ;AACF,CAAC;AAED,OAAO,IAAMG,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAIC,OAA4B,EAAK;EAC1E,OAAO,IAAIP,WAAW,CAACO,OAAO,CAAC;AACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["urlPrefix","concat","process","env","REACT_APP_REQ_PREFIX"],"sources":["../../../../src/formatModule/helpers/urlPrefix.ts"],"sourcesContent":["const urlPrefix = `${process.env.REACT_APP_REQ_PREFIX}/bote/`;\r\n\r\nexport default urlPrefix;\r\n"],"mappings":"AAAA,IAAMA,SAAS,MAAAC,MAAA,CAAMC,OAAO,CAACC,GAAG,CAACC,oBAAoB,WAAQ;AAE7D,eAAeJ,SAAS"}
1
+ {"version":3,"names":["urlPrefix","concat","process","env","REACT_APP_REQ_PREFIX"],"sources":["../../../../src/formatModule/helpers/urlPrefix.ts"],"sourcesContent":["const urlPrefix = `${process.env.REACT_APP_REQ_PREFIX}/bote/`;\n\nexport default urlPrefix;\n"],"mappings":"AAAA,IAAMA,SAAS,MAAAC,MAAA,CAAMC,OAAO,CAACC,GAAG,CAACC,oBAAoB,WAAQ;AAE7D,eAAeJ,SAAS"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 根据路径字符串从对象中提取数据
3
+ * @param obj - 要提取数据的对象
4
+ * @param path - 路径字符串,例如 'res.data.list' 或 'user.name'
5
+ * @returns 提取到的数据,如果路径无效返回 null
6
+ */
7
+ export declare const getValueByPath: (obj: any, path: string) => any;
8
+ export declare const replaceServiceApiValue: (contentStr: string, item: {
9
+ [key: string]: any;
10
+ }) => string;
@@ -0,0 +1,87 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ /**
6
+ * 根据路径字符串从对象中提取数据
7
+ * @param obj - 要提取数据的对象
8
+ * @param path - 路径字符串,例如 'res.data.list' 或 'user.name'
9
+ * @returns 提取到的数据,如果路径无效返回 null
10
+ */
11
+ export var getValueByPath = function getValueByPath(obj, path) {
12
+ // 空值检查:如果 path 或 obj 为空,返回 null
13
+ if (!path || !obj) {
14
+ return null;
15
+ }
16
+
17
+ // 分割路径并过滤空字符串
18
+ var pathArr = path.split('.').filter(Boolean);
19
+
20
+ // 如果过滤后路径为空,返回 null
21
+ if (pathArr.length === 0) {
22
+ return null;
23
+ }
24
+
25
+ // 如果路径以 res 开头,从 res 对象开始提取
26
+ var currentData = obj;
27
+ if (pathArr[0] === 'res') {
28
+ currentData = obj.res || obj;
29
+ pathArr.shift(); // 移除 'res'
30
+ }
31
+
32
+ // 遍历剩余路径获取数据,使用严格检查
33
+ var _iterator = _createForOfIteratorHelper(pathArr),
34
+ _step;
35
+ try {
36
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
37
+ var _key = _step.value;
38
+ // 严格检查:必须存在且为对象,且必须拥有该属性
39
+ if (!_key || !currentData || _typeof(currentData) !== 'object' || !currentData.hasOwnProperty(_key)) {
40
+ return null;
41
+ }
42
+ // 继续深入下一层
43
+ currentData = currentData[_key];
44
+ }
45
+
46
+ // 返回最终的值
47
+ } catch (err) {
48
+ _iterator.e(err);
49
+ } finally {
50
+ _iterator.f();
51
+ }
52
+ return currentData;
53
+ };
54
+
55
+ // 替换 serviceApi 数据源中的模板字符串
56
+ export var replaceServiceApiValue = function replaceServiceApiValue(contentStr, item) {
57
+ if (!contentStr || typeof contentStr !== 'string' || !item) {
58
+ return contentStr || '';
59
+ }
60
+
61
+ // 匹配 ${row.xxx} 格式的模板字符串
62
+ return contentStr.replace(/\$\{row\.(.+?)\}/g, function (match, fieldPath) {
63
+ // 支持嵌套字段,如 row.ACCESS_NAME 或 row.user.name
64
+ var fieldPathArr = fieldPath.split('.').filter(Boolean);
65
+ var fieldValue = item;
66
+
67
+ // 遍历路径获取值
68
+ var _iterator2 = _createForOfIteratorHelper(fieldPathArr),
69
+ _step2;
70
+ try {
71
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
72
+ var _key2 = _step2.value;
73
+ if (fieldValue && _typeof(fieldValue) === 'object' && _key2 in fieldValue) {
74
+ fieldValue = fieldValue[_key2];
75
+ } else {
76
+ return '';
77
+ }
78
+ }
79
+ } catch (err) {
80
+ _iterator2.e(err);
81
+ } finally {
82
+ _iterator2.f();
83
+ }
84
+ return fieldValue != null ? String(fieldValue) : '';
85
+ });
86
+ };
87
+ //# sourceMappingURL=getValueByPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getValueByPath","obj","path","pathArr","split","filter","Boolean","length","currentData","res","shift","_iterator","_createForOfIteratorHelper","_step","s","n","done","key","value","_typeof","hasOwnProperty","err","e","f","replaceServiceApiValue","contentStr","item","replace","match","fieldPath","fieldPathArr","fieldValue","_iterator2","_step2","String"],"sources":["../../src/getValueByPath.ts"],"sourcesContent":["/**\n * 根据路径字符串从对象中提取数据\n * @param obj - 要提取数据的对象\n * @param path - 路径字符串,例如 'res.data.list' 或 'user.name'\n * @returns 提取到的数据,如果路径无效返回 null\n */\nexport const getValueByPath = (obj: any, path: string): any => {\n // 空值检查:如果 path 或 obj 为空,返回 null\n if (!path || !obj) {\n return null;\n }\n\n // 分割路径并过滤空字符串\n const pathArr = path.split('.').filter(Boolean);\n \n // 如果过滤后路径为空,返回 null\n if (pathArr.length === 0) {\n return null;\n }\n\n // 如果路径以 res 开头,从 res 对象开始提取\n let currentData = obj;\n if (pathArr[0] === 'res') {\n currentData = obj.res || obj;\n pathArr.shift(); // 移除 'res'\n }\n\n // 遍历剩余路径获取数据,使用严格检查\n for (const key of pathArr) {\n // 严格检查:必须存在且为对象,且必须拥有该属性\n if (\n !key ||\n !currentData ||\n typeof currentData !== 'object' ||\n !currentData.hasOwnProperty(key)\n ) {\n return null;\n }\n // 继续深入下一层\n currentData = currentData[key];\n }\n\n // 返回最终的值\n return currentData;\n};\n\n// 替换 serviceApi 数据源中的模板字符串\nexport const replaceServiceApiValue = (\n contentStr: string,\n item: { [key: string]: any },\n): string => {\n if (!contentStr || typeof contentStr !== 'string' || !item) {\n return contentStr || '';\n }\n \n // 匹配 ${row.xxx} 格式的模板字符串\n return contentStr.replace(/\\$\\{row\\.(.+?)\\}/g, (match, fieldPath) => {\n // 支持嵌套字段,如 row.ACCESS_NAME 或 row.user.name\n const fieldPathArr = fieldPath.split('.').filter(Boolean);\n let fieldValue = item;\n \n // 遍历路径获取值\n for (const key of fieldPathArr) {\n if (fieldValue && typeof fieldValue === 'object' && key in fieldValue) {\n fieldValue = fieldValue[key];\n } else {\n return '';\n }\n }\n \n return fieldValue != null ? String(fieldValue) : '';\n });\n};\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,GAAQ,EAAEC,IAAY,EAAU;EAC7D;EACA,IAAI,CAACA,IAAI,IAAI,CAACD,GAAG,EAAE;IACjB,OAAO,IAAI;EACb;;EAEA;EACA,IAAME,OAAO,GAAGD,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC;;EAE/C;EACA,IAAIH,OAAO,CAACI,MAAM,KAAK,CAAC,EAAE;IACxB,OAAO,IAAI;EACb;;EAEA;EACA,IAAIC,WAAW,GAAGP,GAAG;EACrB,IAAIE,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;IACxBK,WAAW,GAAGP,GAAG,CAACQ,GAAG,IAAIR,GAAG;IAC5BE,OAAO,CAACO,KAAK,CAAC,CAAC,CAAC,CAAC;EACnB;;EAEA;EAAA,IAAAC,SAAA,GAAAC,0BAAA,CACkBT,OAAO;IAAAU,KAAA;EAAA;IAAzB,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAA2B;MAAA,IAAhBC,IAAG,GAAAJ,KAAA,CAAAK,KAAA;MACZ;MACA,IACE,CAACD,IAAG,IACJ,CAACT,WAAW,IACZW,OAAA,CAAOX,WAAW,MAAK,QAAQ,IAC/B,CAACA,WAAW,CAACY,cAAc,CAACH,IAAG,CAAC,EAChC;QACA,OAAO,IAAI;MACb;MACA;MACAT,WAAW,GAAGA,WAAW,CAACS,IAAG,CAAC;IAChC;;IAEA;EAAA,SAAAI,GAAA;IAAAV,SAAA,CAAAW,CAAA,CAAAD,GAAA;EAAA;IAAAV,SAAA,CAAAY,CAAA;EAAA;EACA,OAAOf,WAAW;AACpB,CAAC;;AAED;AACA,OAAO,IAAMgB,sBAAsB,GAAG,SAAzBA,sBAAsBA,CACjCC,UAAkB,EAClBC,IAA4B,EACjB;EACX,IAAI,CAACD,UAAU,IAAI,OAAOA,UAAU,KAAK,QAAQ,IAAI,CAACC,IAAI,EAAE;IAC1D,OAAOD,UAAU,IAAI,EAAE;EACzB;;EAEA;EACA,OAAOA,UAAU,CAACE,OAAO,CAAC,mBAAmB,EAAE,UAACC,KAAK,EAAEC,SAAS,EAAK;IACnE;IACA,IAAMC,YAAY,GAAGD,SAAS,CAACzB,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC;IACzD,IAAIyB,UAAU,GAAGL,IAAI;;IAErB;IAAA,IAAAM,UAAA,GAAApB,0BAAA,CACkBkB,YAAY;MAAAG,MAAA;IAAA;MAA9B,KAAAD,UAAA,CAAAlB,CAAA,MAAAmB,MAAA,GAAAD,UAAA,CAAAjB,CAAA,IAAAC,IAAA,GAAgC;QAAA,IAArBC,KAAG,GAAAgB,MAAA,CAAAf,KAAA;QACZ,IAAIa,UAAU,IAAIZ,OAAA,CAAOY,UAAU,MAAK,QAAQ,IAAId,KAAG,IAAIc,UAAU,EAAE;UACrEA,UAAU,GAAGA,UAAU,CAACd,KAAG,CAAC;QAC9B,CAAC,MAAM;UACL,OAAO,EAAE;QACX;MACF;IAAC,SAAAI,GAAA;MAAAW,UAAA,CAAAV,CAAA,CAAAD,GAAA;IAAA;MAAAW,UAAA,CAAAT,CAAA;IAAA;IAED,OAAOQ,UAAU,IAAI,IAAI,GAAGG,MAAM,CAACH,UAAU,CAAC,GAAG,EAAE;EACrD,CAAC,CAAC;AACJ,CAAC"}
@@ -9,8 +9,10 @@ declare const request: {
9
9
  setUrlPrefix: (prefix: string) => void;
10
10
  setTenantId: (tenantId: string) => void;
11
11
  getManagerUrl: (route?: string | null) => string | null;
12
+ getUserIconUrl: (userId?: string, updatedTime?: string, isSecurity?: boolean) => string;
12
13
  getBotUrl: (route?: string | null) => string | null;
13
14
  getBotIconUrl: (tenantId?: string, botId?: string, updatedTime?: string, isSecurity?: boolean) => string | undefined;
15
+ getPlatBotIconUrl: (platBotId: string) => string | undefined;
14
16
  getSceneIconUrl: (tenantId?: string, sceneId?: string, updatedTime?: string, isSecurity?: boolean) => string | undefined;
15
17
  getBotPageSettingIcon: ({ botId, tenantId, type, updatedTime, isSecurity, }: {
16
18
  botId: string;
@@ -19,6 +21,12 @@ declare const request: {
19
21
  updatedTime?: string | undefined;
20
22
  isSecurity?: boolean | undefined;
21
23
  }) => string;
24
+ getWorkspaceIcon: ({ spaceId }: {
25
+ spaceId: string;
26
+ }) => string | undefined;
27
+ getTenantIcon: ({ tenantId }: {
28
+ tenantId: string;
29
+ }) => string | undefined;
22
30
  docChain: {
23
31
  referenceDocUrl: ({ tenantId, docId, token, }: {
24
32
  [key: string]: string;
package/dist/esm/http.js CHANGED
@@ -24,7 +24,10 @@ var http = function http(url, config) {
24
24
  }
25
25
 
26
26
  // 兼容生产环境
27
- config.headers['Tenant-Id'] = currentTenantId;
27
+ var tenantId = currentTenantId || sessionStorage.getItem(tenantIdSessionKey) || sessionStorage.getItem('managerSelectedTenantID');
28
+ if (tenantId) {
29
+ config.headers['Tenant-Id'] = tenantId;
30
+ }
28
31
  return new Promise(function (resolve, rejects) {
29
32
  fetch(url, config).then(function (response) {
30
33
  var contentType = response.headers.get('content-type');
@@ -69,12 +72,12 @@ var getUrl = function getUrl(url) {
69
72
  return "".concat(baseUrl).concat(url).concat(paramsArr ? "?".concat(paramsArr) : '');
70
73
  };
71
74
 
72
- // 当前租户ID
75
+ // 当前项目ID
73
76
  var currentTenantId = '';
74
77
 
75
- /**
76
- * 构造管理平台或机器人工程的完整访问地址
77
- * @param url 环境变量中配置的地址
78
+ /**
79
+ * 构造管理平台或机器人工程的完整访问地址
80
+ * @param url 环境变量中配置的地址
78
81
  */
79
82
  export var getAccessUrl = function getAccessUrl(url) {
80
83
  // 未配置,表示使用当前工程地址,去掉 hash 部分
@@ -105,19 +108,19 @@ var managerUrl = getAccessUrl(process.env.BOTE_MANAGER_URL);
105
108
  // 机器人工程访问地址
106
109
  var botUrl = getAccessUrl(process.env.BOTE_BOT_URL);
107
110
 
108
- /**
109
- * 获取管理平台地址
110
- *
111
- * @param route 路由("#" 后面的部分),可选
111
+ /**
112
+ * 获取管理平台地址
113
+ *
114
+ * @param route 路由("#" 后面的部分),可选
112
115
  */
113
116
  var getManagerUrl = function getManagerUrl(route) {
114
117
  return route ? "".concat(managerUrl, "#").concat(route) : managerUrl;
115
118
  };
116
119
 
117
- /**
118
- * 获取机器人工程访问地址
119
- *
120
- * @param route 路由("#" 后面的部分),可选
120
+ /**
121
+ * 获取机器人工程访问地址
122
+ *
123
+ * @param route 路由("#" 后面的部分),可选
121
124
  */
122
125
  var getBotUrl = function getBotUrl(route) {
123
126
  return route ? "".concat(botUrl, "#").concat(route) : botUrl;
@@ -133,6 +136,18 @@ var request = {
133
136
  currentTenantId = tenantId;
134
137
  },
135
138
  getManagerUrl: getManagerUrl,
139
+ // 获取用户头像
140
+ getUserIconUrl: function getUserIconUrl(userId, updatedTime) {
141
+ var isSecurity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
142
+ var url = "".concat(baseUrl, "/manager/user/userIcon?userId=").concat(userId || '');
143
+ if (updatedTime) {
144
+ url += "&_=".concat(updatedTime.replace(/\D/g, ''));
145
+ }
146
+ if (isSecurity) {
147
+ url = security.autoSecurityWithUrl(url);
148
+ }
149
+ return url;
150
+ },
136
151
  getBotUrl: getBotUrl,
137
152
  // 获取智能应用图标地址
138
153
  getBotIconUrl: function getBotIconUrl(tenantId, botId, updatedTime) {
@@ -151,6 +166,13 @@ var request = {
151
166
  }
152
167
  return undefined;
153
168
  },
169
+ getPlatBotIconUrl: function getPlatBotIconUrl(platBotId) {
170
+ if (platBotId) {
171
+ var url = "".concat(baseUrl, "/manager/platBotInfo/getPlatBotIcon?platBotId=").concat(platBotId);
172
+ return url;
173
+ }
174
+ return undefined;
175
+ },
154
176
  // 获取智能体图标地址
155
177
  getSceneIconUrl: function getSceneIconUrl(tenantId, sceneId, updatedTime) {
156
178
  var isSecurity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
@@ -183,27 +205,44 @@ var request = {
183
205
  }
184
206
  return url;
185
207
  },
208
+ getWorkspaceIcon: function getWorkspaceIcon(_ref2) {
209
+ var spaceId = _ref2.spaceId;
210
+ if (spaceId) {
211
+ var url = "".concat(baseUrl, "/manager/workspace/getWorkspaceIcon?spaceId=").concat(spaceId);
212
+ return url;
213
+ }
214
+ return undefined;
215
+ },
216
+ // 获取项目头像
217
+ getTenantIcon: function getTenantIcon(_ref3) {
218
+ var tenantId = _ref3.tenantId;
219
+ if (tenantId) {
220
+ var url = "".concat(baseUrl, "/manager/tenant/getTenantIcon?tenantId=").concat(tenantId);
221
+ return url;
222
+ }
223
+ return undefined;
224
+ },
186
225
  // 构造 DocChain 相关地址的辅助方法
187
226
  docChain: {
188
- referenceDocUrl: function referenceDocUrl(_ref2) {
189
- var tenantId = _ref2.tenantId,
190
- docId = _ref2.docId,
191
- token = _ref2.token;
227
+ referenceDocUrl: function referenceDocUrl(_ref4) {
228
+ var tenantId = _ref4.tenantId,
229
+ docId = _ref4.docId,
230
+ token = _ref4.token;
192
231
  var url = "".concat(managerUrl, "#/referencesDetail?tenantId=").concat(tenantId, "&docId=").concat(docId);
193
232
  if (token) {
194
233
  url += "&token=".concat(token);
195
234
  }
196
235
  return url;
197
236
  },
198
- referenceDocChunkUrl: function referenceDocChunkUrl(_ref3) {
199
- var tenantId = _ref3.tenantId,
200
- docId = _ref3.docId,
201
- chunkId = _ref3.chunkId,
202
- token = _ref3.token,
203
- score = _ref3.score,
204
- rank = _ref3.rank,
205
- docType = _ref3.docType,
206
- botId = _ref3.botId;
237
+ referenceDocChunkUrl: function referenceDocChunkUrl(_ref5) {
238
+ var tenantId = _ref5.tenantId,
239
+ docId = _ref5.docId,
240
+ chunkId = _ref5.chunkId,
241
+ token = _ref5.token,
242
+ score = _ref5.score,
243
+ rank = _ref5.rank,
244
+ docType = _ref5.docType,
245
+ botId = _ref5.botId;
207
246
  var url = "".concat(managerUrl, "#/documentChunk?tenantId=").concat(tenantId, "&docId=").concat(docId, "&chunkId=").concat(chunkId, "&score=").concat(score, "&rank=").concat(rank, "&docType=").concat(docType);
208
247
  if (botId) {
209
248
  url += "&botId=".concat(botId);
@@ -214,12 +253,12 @@ var request = {
214
253
  return url;
215
254
  },
216
255
  // 下载文档接口地址
217
- downloadDocUrl: function downloadDocUrl(_ref4) {
218
- var tenantId = _ref4.tenantId,
219
- docId = _ref4.docId,
220
- token = _ref4.token,
221
- _ref4$isSecurity = _ref4.isSecurity,
222
- isSecurity = _ref4$isSecurity === void 0 ? true : _ref4$isSecurity;
256
+ downloadDocUrl: function downloadDocUrl(_ref6) {
257
+ var tenantId = _ref6.tenantId,
258
+ docId = _ref6.docId,
259
+ token = _ref6.token,
260
+ _ref6$isSecurity = _ref6.isSecurity,
261
+ isSecurity = _ref6$isSecurity === void 0 ? true : _ref6$isSecurity;
223
262
  var url = "".concat(baseUrl, "/docchain/v1/doc/read?tenantId=").concat(tenantId, "&read_format=src&doc_id=").concat(docId);
224
263
  if (token) {
225
264
  url += "&token=".concat(token);
@@ -230,13 +269,13 @@ var request = {
230
269
  return url;
231
270
  },
232
271
  // 图片地址
233
- imageUrl: function imageUrl(_ref5) {
234
- var tenantId = _ref5.tenantId,
235
- docId = _ref5.docId,
236
- token = _ref5.token,
237
- path = _ref5.path,
238
- _ref5$isSecurity = _ref5.isSecurity,
239
- isSecurity = _ref5$isSecurity === void 0 ? true : _ref5$isSecurity;
272
+ imageUrl: function imageUrl(_ref7) {
273
+ var tenantId = _ref7.tenantId,
274
+ docId = _ref7.docId,
275
+ token = _ref7.token,
276
+ path = _ref7.path,
277
+ _ref7$isSecurity = _ref7.isSecurity,
278
+ isSecurity = _ref7$isSecurity === void 0 ? true : _ref7$isSecurity;
240
279
  var url = "".concat(baseUrl, "/docchain/v1/doc/read?tenantId=").concat(tenantId, "&read_format=path&doc_id=").concat(docId, "&path=").concat(encodeURIComponent(path));
241
280
  if (token) {
242
281
  url += "&token=".concat(token);
@@ -249,12 +288,12 @@ var request = {
249
288
  },
250
289
  // 构造 tenantKnowledge 相关地址的辅助方法
251
290
  tenantKnowledge: {
252
- referenceDocUrl: function referenceDocUrl(_ref6) {
253
- var tenantId = _ref6.tenantId,
254
- docId = _ref6.docId,
255
- token = _ref6.token,
256
- knowledgeType = _ref6.knowledgeType,
257
- docName = _ref6.docName;
291
+ referenceDocUrl: function referenceDocUrl(_ref8) {
292
+ var tenantId = _ref8.tenantId,
293
+ docId = _ref8.docId,
294
+ token = _ref8.token,
295
+ knowledgeType = _ref8.knowledgeType,
296
+ docName = _ref8.docName;
258
297
  var url = "".concat(managerUrl, "#/referencesDetail?tenantId=").concat(tenantId, "&docId=").concat(docId, "&knowledgeType=").concat(knowledgeType, "&casPortal=true&docName=").concat(docName);
259
298
  if (token) {
260
299
  url += "&token=".concat(token);
@@ -262,18 +301,18 @@ var request = {
262
301
  return url;
263
302
  },
264
303
  // 下载文档接口地址
265
- downloadDocUrl: function downloadDocUrl(_ref7) {
266
- var knowledgeType = _ref7.knowledgeType,
267
- docId = _ref7.docId;
304
+ downloadDocUrl: function downloadDocUrl(_ref9) {
305
+ var knowledgeType = _ref9.knowledgeType,
306
+ docId = _ref9.docId;
268
307
  var url = "".concat(baseUrl, "/knowledge/access/downloadKnowledgeDoc?knowledgeType=").concat(knowledgeType, "&docId=").concat(docId);
269
308
  return url;
270
309
  }
271
310
  },
272
311
  get: function get(url, cfg) {
273
- var _ref8 = cfg || {},
274
- params = _ref8.params,
275
- rest = _objectWithoutProperties(_ref8, _excluded);
276
- // 拼租户ID 到参数中
312
+ var _ref10 = cfg || {},
313
+ params = _ref10.params,
314
+ rest = _objectWithoutProperties(_ref10, _excluded);
315
+ // 拼项目ID 到参数中
277
316
  if (!params.tenantId && currentTenantId) {
278
317
  params.tenantId = currentTenantId;
279
318
  }
@@ -284,19 +323,19 @@ var request = {
284
323
  }, rest));
285
324
  },
286
325
  post: function post(url, cfg) {
287
- var _ref9 = cfg || {},
288
- data = _ref9.data,
289
- params = _ref9.params,
290
- rest = _objectWithoutProperties(_ref9, _excluded2);
326
+ var _ref11 = cfg || {},
327
+ data = _ref11.data,
328
+ params = _ref11.params,
329
+ rest = _objectWithoutProperties(_ref11, _excluded2);
291
330
  var _body;
292
331
  if (data instanceof FormData) {
293
- // 拼租户ID 到参数中
332
+ // 拼项目ID 到参数中
294
333
  if (!data.get('tenantId') && currentTenantId) {
295
334
  data.append('tenantId', currentTenantId);
296
335
  }
297
336
  _body = data;
298
337
  } else {
299
- // 拼租户ID 到参数中
338
+ // 拼项目ID 到参数中
300
339
  if (!data.tenantId && currentTenantId) {
301
340
  data.tenantId = currentTenantId;
302
341
  }