@cloudbase/cals 0.5.8 → 0.5.10

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 (101) hide show
  1. package/lib/parser/cals/index.d.ts +0 -0
  2. package/lib/parser/cals/index.d.ts.map +0 -0
  3. package/lib/parser/cals/index.js +0 -0
  4. package/lib/parser/cals/utils/block/index.d.ts +0 -0
  5. package/lib/parser/cals/utils/block/index.d.ts.map +0 -0
  6. package/lib/parser/cals/utils/block/index.js +0 -0
  7. package/lib/parser/cals/utils/code/index.d.ts +0 -0
  8. package/lib/parser/cals/utils/code/index.d.ts.map +0 -0
  9. package/lib/parser/cals/utils/code/index.js +0 -0
  10. package/lib/parser/cals/utils/common.d.ts +0 -0
  11. package/lib/parser/cals/utils/common.d.ts.map +0 -0
  12. package/lib/parser/cals/utils/common.js +0 -0
  13. package/lib/parser/cals/utils/runtime.d.ts +0 -0
  14. package/lib/parser/cals/utils/runtime.d.ts.map +0 -0
  15. package/lib/parser/cals/utils/runtime.js +0 -0
  16. package/lib/parser/cals/utils/spinoff/index.d.ts +0 -0
  17. package/lib/parser/cals/utils/spinoff/index.d.ts.map +0 -0
  18. package/lib/parser/cals/utils/spinoff/index.js +0 -0
  19. package/lib/parser/cals/utils/style.d.ts +0 -0
  20. package/lib/parser/cals/utils/style.d.ts.map +0 -0
  21. package/lib/parser/cals/utils/style.js +8 -8
  22. package/lib/parser/cals/utils/template.d.ts +0 -0
  23. package/lib/parser/cals/utils/template.d.ts.map +0 -0
  24. package/lib/parser/cals/utils/template.js +0 -0
  25. package/lib/parser/cals/utils/version/common.d.ts +0 -0
  26. package/lib/parser/cals/utils/version/common.d.ts.map +0 -0
  27. package/lib/parser/cals/utils/version/common.js +0 -0
  28. package/lib/parser/cals/utils/version/config.d.ts +0 -0
  29. package/lib/parser/cals/utils/version/config.d.ts.map +0 -0
  30. package/lib/parser/cals/utils/version/config.js +0 -0
  31. package/lib/parser/cals/utils/version/index.d.ts +0 -0
  32. package/lib/parser/cals/utils/version/index.d.ts.map +0 -0
  33. package/lib/parser/cals/utils/version/index.js +0 -0
  34. package/lib/parser/cals/utils/version/parses.d.ts +0 -0
  35. package/lib/parser/cals/utils/version/parses.d.ts.map +0 -0
  36. package/lib/parser/cals/utils/version/parses.js +0 -0
  37. package/lib/parser/cals/utils/version/utils.d.ts +0 -0
  38. package/lib/parser/cals/utils/version/utils.d.ts.map +0 -0
  39. package/lib/parser/cals/utils/version/utils.js +0 -0
  40. package/lib/parser/expression/index.d.ts +0 -0
  41. package/lib/parser/expression/index.d.ts.map +0 -0
  42. package/lib/parser/expression/index.js +0 -0
  43. package/lib/parser/index.d.ts +0 -0
  44. package/lib/parser/index.d.ts.map +0 -0
  45. package/lib/parser/index.js +0 -0
  46. package/lib/types/basic/app.d.ts +0 -0
  47. package/lib/types/basic/app.d.ts.map +0 -0
  48. package/lib/types/basic/app.js +0 -0
  49. package/lib/types/basic/common.d.ts +0 -0
  50. package/lib/types/basic/common.d.ts.map +0 -0
  51. package/lib/types/basic/common.js +0 -0
  52. package/lib/types/basic/component.d.ts +0 -0
  53. package/lib/types/basic/component.d.ts.map +0 -0
  54. package/lib/types/basic/component.js +0 -0
  55. package/lib/types/basic/datasource.d.ts +0 -0
  56. package/lib/types/basic/datasource.d.ts.map +0 -0
  57. package/lib/types/basic/datasource.js +0 -0
  58. package/lib/types/index.d.ts +0 -0
  59. package/lib/types/index.d.ts.map +0 -0
  60. package/lib/types/index.js +0 -0
  61. package/lib/types/lcds.d.ts +0 -0
  62. package/lib/types/lcds.d.ts.map +0 -0
  63. package/lib/types/lcds.js +0 -0
  64. package/lib/types/platform/app.d.ts +0 -0
  65. package/lib/types/platform/app.d.ts.map +0 -0
  66. package/lib/types/platform/app.js +0 -0
  67. package/lib/types/platform/common.d.ts +0 -0
  68. package/lib/types/platform/common.d.ts.map +0 -0
  69. package/lib/types/platform/common.js +0 -0
  70. package/lib/types/platform/component.d.ts +0 -0
  71. package/lib/types/platform/component.d.ts.map +0 -0
  72. package/lib/types/platform/component.js +0 -0
  73. package/lib/types/platform/datasource.d.ts +0 -0
  74. package/lib/types/platform/datasource.d.ts.map +0 -0
  75. package/lib/types/platform/datasource.js +0 -0
  76. package/lib/types/platform/widget/form.d.ts +0 -0
  77. package/lib/types/platform/widget/form.d.ts.map +0 -0
  78. package/lib/types/platform/widget/form.js +0 -0
  79. package/lib/types/platform/widget/meta.d.ts +0 -0
  80. package/lib/types/platform/widget/meta.d.ts.map +0 -0
  81. package/lib/types/platform/widget/meta.js +0 -0
  82. package/lib/utils/CSSProperty.d.ts +0 -0
  83. package/lib/utils/CSSProperty.d.ts.map +0 -0
  84. package/lib/utils/CSSProperty.js +0 -0
  85. package/lib/utils/build.d.ts +0 -0
  86. package/lib/utils/build.d.ts.map +0 -0
  87. package/lib/utils/build.js +0 -0
  88. package/lib/utils/constant.d.ts +0 -0
  89. package/lib/utils/constant.d.ts.map +0 -0
  90. package/lib/utils/constant.js +0 -0
  91. package/lib/utils/dts/auto-generated.d.ts +1 -1
  92. package/lib/utils/dts/auto-generated.d.ts.map +1 -1
  93. package/lib/utils/dts/auto-generated.js +104 -1
  94. package/lib/utils/dts/build.js +2 -0
  95. package/lib/utils/dts/index.d.ts +31 -4
  96. package/lib/utils/dts/index.d.ts.map +1 -1
  97. package/lib/utils/dts/index.js +160 -18
  98. package/lib/utils/index.d.ts +0 -0
  99. package/lib/utils/index.d.ts.map +0 -0
  100. package/lib/utils/index.js +0 -0
  101. package/package.json +2 -2
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -114,12 +114,12 @@ function toREM(cssLen, rpxCalcRoot = undefined) {
114
114
  const cssLenArr = `${cssLen}`.split(' ');
115
115
  return cssLenArr
116
116
  .map((attr) => {
117
- const matchResult = attr.match(/^(-?\d+)(r?px)?$/);
117
+ const matchResult = attr.match(/^(-?\d*\.?\d+)(r?px)?$/);
118
118
  if (matchResult === null || matchResult === void 0 ? void 0 : matchResult[1]) {
119
119
  const px = +matchResult[1];
120
120
  if (Number.isNaN(px / 1))
121
121
  return px.toString();
122
- if (+px === 0) {
122
+ if (px === 0) {
123
123
  return '0';
124
124
  }
125
125
  if ((matchResult === null || matchResult === void 0 ? void 0 : matchResult[2]) === 'rpx') {
@@ -139,12 +139,12 @@ function toRPX(cssLen, rpxCalcRoot = undefined) {
139
139
  const cssLenArr = `${cssLen}`.split(' ');
140
140
  return cssLenArr
141
141
  .map((attr) => {
142
- const matchResult = attr.match(/^(-?\d+)(px)?$/);
142
+ const matchResult = attr.match(/^(-?\d*\.?\d+)(px)?$/);
143
143
  if (matchResult === null || matchResult === void 0 ? void 0 : matchResult[1]) {
144
144
  const px = +matchResult[1];
145
145
  if (Number.isNaN(px / 1))
146
146
  return px.toString();
147
- if (+px === 0) {
147
+ if (px === 0) {
148
148
  return '0';
149
149
  }
150
150
  return rpxCalcRoot ? `calc(${px}px / ${rpxCalcRoot})` : `${px}rpx`;
@@ -154,15 +154,15 @@ function toRPX(cssLen, rpxCalcRoot = undefined) {
154
154
  .join(' ');
155
155
  }
156
156
  function toPX(cssLen, rpxCalcRoot = undefined) {
157
- const cssLenArr = `${cssLen}`.split(' ');
158
- return cssLenArr
157
+ return `${cssLen}`
158
+ .split(' ')
159
159
  .map((attr) => {
160
- const matchResult = attr.match(/^(-?\d+)(rpx)?$/);
160
+ const matchResult = attr.match(/^(-?\d*\.?\d+)(rpx)?$/);
161
161
  if (matchResult === null || matchResult === void 0 ? void 0 : matchResult[1]) {
162
162
  const px = +matchResult[1];
163
163
  if (Number.isNaN(px / 1))
164
164
  return px.toString();
165
- if (+px === 0) {
165
+ if (px === 0) {
166
166
  return '0';
167
167
  }
168
168
  if ((matchResult === null || matchResult === void 0 ? void 0 : matchResult[2]) === 'rpx') {
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/lib/types/lcds.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,2 +1,2 @@
1
- export declare const wedaDTS = "declare namespace $app {\n namespace dataset {\n\n const state: {\n // Global State Inner Begin\n // Global State \u5168\u5C40\u53D8\u91CF - Don't touch me\n // Global State Inner End\n }\n\n }\n\n namespace utils {\n function ABS(num: number): number;\n function Min(...args: number[]): number;\n function Max(...args: number[]): number;\n function Average(...args: number[]): number;\n function Floor(num: number): number;\n function Ceiling(num: number): number;\n function Round(num: number): number;\n function Sum(...args: number[]): number;\n function Rand(num: number): number;\n\n function If(condition: boolean, val1: any, val2: any): any;\n function IsEmpty(text: string | string[]): boolean;\n function NotNull(val: any): boolean;\n function And(...args: boolean[]): boolean;\n function Or(...args: boolean[]): boolean;\n\n function Len(text: string): number;\n function Contains(text1: string, text2: string): boolean;\n function Split(text1: string, text2: string): string[];\n function Trim(text: string): string;\n function Upper(text: string): string;\n function Lower(text: string): string;\n function Concat(...text: string[]): string;\n\n function Now(): number;\n function Timestamp(arg: number | string | Date): number;\n function Second(arg: number | string | Date): number;\n function Minute(arg: number | string | Date): number;\n function Hour(arg: number | string | Date): number;\n function Day(arg: number | string | Date): number;\n function DayOfWeek(arg: number | string | Date): number;\n function Month(arg: number | string | Date): number;\n function Year(arg: number | string | Date): number;\n function GetDate(year: number, month: number, day: number): number;\n function DateTimeValue(arg: string, val: string): number;\n function Age(arg: number | string | Date, val: number | string | Date): number;\n function AgeOfNow(arg: number | string | Date): number;\n function DateAdd(arg: number | string | Date, day: number): number;\n function MonthAdd(arg: number | string | Date, month: number): number;\n function YearAdd(arg: number | string | Date, year: number): number;\n function DateDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function HourDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function MinuteDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function SecondDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function MonthDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function YearDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function DateText(createdTime: number | string | Date, text: string): string;\n function IsToday(date: number | string | Date): boolean;\n\n }\n\n namespace common {\n // Global Common Inner Begin\n // Global Common \u5168\u5C40\u65B9\u6CD5 - Don't touch me\n // Global Common Inner End\n }\n\n namespace auth {\n const currentUser: {\n userId?: string\n phone?: string\n type?: number\n relatedRoles?: {\n id?: string\n envId?: string\n name?: string\n roleIdentity?: string\n }[]\n openId?: string\n name?: string\n nickName?: string\n email?: string\n mainOrg?: {\n id?: string\n name?: string\n }\n orgs?: {\n id?: string\n name?: string\n }[]\n}\n\n }\n\n \n\ninterface navigatorOptions {\n packageName: string;\n pageId: string;\n data?: Record<string, any>;\n params?: Record<string, any>;\n events?: Record<string, (data: any) => void>;\n success(res: any);\n fail(res: any);\n complete(res: any);\n}\n\ninterface navigateBackOptions {\n delta: number;\n}\n\n// \u8BBE\u7F6E\u72B6\u6001\nfunction setState(userSetState: Record<string, any>): void\n\n// \u7279\u5236\u8DEF\u7531\nfunction navigateTo(options: navigatorOptions)\nfunction redirectTo(options: navigatorOptions)\nfunction reLaunch(options: navigatorOptions)\nfunction navigateBack(options: navigateBackOptions)\n\n// \u663E\u793A\u63D0\u793A\nfunction showToast(options);\n\n// \u663E\u793A\u6A21\u6001\u63D0\u793A\nfunction showModal(options);\n\n// \u663E\u793A loading \u63D0\u793A\nfunction showLoading(options);\n\n// \u9690\u85CF loading \u63D0\u793A\nfunction hideLoading(options);\n\n// \u9690\u85CF\u63D0\u793A\nfunction hideToast(options);\n\n// sacnCode\nfunction scanCode(options: {\n onlyFromCamera?: boolean;\n enableDefaultBehavior?: boolean;\n scanType?: ('barCode' | 'qrCode')[];\n success?: (res: { result: string; scanType: string }) => void;\n fail?: (err: Error) => void;\n complete?: () => void;\n}): Promise<ScanCodeResult> | ScanCodeResult;\n\n\n}\n\ndeclare const app = $app\n\n// Global For Begin\ndeclare const $for: {\n // Global For Inner Begin\n // For \u5FAA\u73AF\u53D8\u91CF - Don't touch me\n // Global For Inner End\n}\ndeclare const forItems = $for\n// Global For End\n\n// $page Begin\ndeclare namespace $page {\n namespace dataset {\n\n const state: {\n // Page State Inner Begin\n // Page State \u9875\u9762\u53D8\u91CF - Don't touch me\n // Page State Inner End\n }\n\n const params: {\n // Page Param Inner Begin\n // Page Param \u9875\u9762\u53C2\u6570 - Don't touch me\n // Page Param Inner End\n }\n\n }\n\n namespace handler {\n // Page Handler Inner Begin\n // Page Handler \u9875\u9762\u65B9\u6CD5 - Don't touch me\n // Page Handler Inner End\n }\n\n \n\n// \u8BBE\u7F6E\u72B6\u6001\nfunction setState(userSetState: Record<string, any>): void\n\n\n}\n// $page End\n\n// $comp Begin\ndeclare namespace $comp {\n\n namespace props {\n\n const data: {\n // Comp Prop Data Inner Begin\n // Comp Prop Data \u7EC4\u4EF6\u5C5E\u6027 - Don't touch me\n // Comp Prop Data Inner End\n }\n\n namespace events {\n // Comp Prop Events Inner Begin\n // Comp Prop Events \u7EC4\u4EF6\u4E8B\u4EF6 - Don't touch me\n // Comp Prop Events Inner End\n }\n\n }\n\n namespace dataset {\n\n const state: {\n // Comp State Inner Begin\n // Comp State \u7EC4\u4EF6\u53D8\u91CF - Don't touch me\n // Comp State Inner End\n }\n\n }\n\n namespace handler {\n // Comp Handler Inner Begin\n // Comp Handler \u7EC4\u4EF6\u65B9\u6CD5 - Don't touch me\n // Comp Handler Inner End\n }\n\n}\n// $comp End\n\n// Global Formula Begin\n\ndeclare function ABS(num: number): number;\ndeclare function Min(...args: number[]): number;\ndeclare function Max(...args: number[]): number;\ndeclare function Average(...args: number[]): number;\ndeclare function Floor(num: number): number;\ndeclare function Ceiling(num: number): number;\ndeclare function Round(num: number): number;\ndeclare function Sum(...args: number[]): number;\ndeclare function Rand(num: number): number;\n\ndeclare function If(condition: boolean, val1: any, val2: any): any;\ndeclare function IsEmpty(text: string | string[]): boolean;\ndeclare function NotNull(val: any): boolean;\ndeclare function And(...args: boolean[]): boolean;\ndeclare function Or(...args: boolean[]): boolean;\n\ndeclare function Len(text: string): number;\ndeclare function Contains(text1: string, text2: string): boolean;\ndeclare function Split(text1: string, text2: string): string[];\ndeclare function Trim(text: string): string;\ndeclare function Upper(text: string): string;\ndeclare function Lower(text: string): string;\ndeclare function Concat(...text: string[]): string;\n\ndeclare function Now(): number;\ndeclare function Timestamp(arg: number | string | Date): number;\ndeclare function Second(arg: number | string | Date): number;\ndeclare function Minute(arg: number | string | Date): number;\ndeclare function Hour(arg: number | string | Date): number;\ndeclare function Day(arg: number | string | Date): number;\ndeclare function DayOfWeek(arg: number | string | Date): number;\ndeclare function Month(arg: number | string | Date): number;\ndeclare function Year(arg: number | string | Date): number;\ndeclare function GetDate(year: number, month: number, day: number): number;\ndeclare function DateTimeValue(arg: string, val: string): number;\ndeclare function Age(arg: number | string | Date, val: number | string | Date): number;\ndeclare function AgeOfNow(arg: number | string | Date): number;\ndeclare function DateAdd(arg: number | string | Date, day: number): number;\ndeclare function MonthAdd(arg: number | string | Date, month: number): number;\ndeclare function YearAdd(arg: number | string | Date, year: number): number;\ndeclare function DateDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function HourDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function MinuteDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function SecondDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function MonthDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function YearDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function DateText(createdTime: number | string | Date, text: string): string;\ndeclare function IsToday(date: number | string | Date): boolean;\n\n\n// Global Formula End\n";
1
+ export declare const wedaDTS = "\ndeclare class UserWidget {\n // FIXME: \u6682\u65F6\u4E0D\u5BF9\u5916\u66B4\u9732\n // \u5185\u7F6E\u547D\u540D\u7A7A\u95F4\n // get sys(): {\n // readonly id: string;\n // readonly module: string;\n // readonly component: string;\n // readonly parent: UserWidget;\n // readonly children: UserWidget[];\n\n // closest(filter?: (parentWidget: UserWidget) => boolean): UserWidget | null;\n // };\n\n // FIXME: \u6682\u65F6\u4E0D\u5BF9\u5916\u66B4\u9732\n // \u81EA\u5B9A\u4E49\u547D\u540D\u7A7A\u95F4\n // get custom(): { [key: string]: any };\n\n // ========== \u5FEB\u6377\u8BBF\u95EE\u65B9\u5F0F ========== //\n\n /**\n * \u7EC4\u4EF6 id\n */\n readonly id: string;\n /**\n * \u7EC4\u4EF6\u5E93\u540D\u79F0\n */\n readonly module: string;\n /**\n * \u7EC4\u4EF6\u540D\u79F0\n */\n readonly component: string;\n // FIXME: \u6682\u65F6\u4E0D\u5BF9\u5916\u66B4\u9732\n // readonly parent: UserWidget;\n // readonly children: UserWidget[];\n\n // closest(filter?: (parentWidget: UserWidget) => boolean): UserWidget | null;\n}\n\n// Used Components Inner Begin\n// Used Components - Don't touch me\n// Used Components Inner End\n\ndeclare namespace $app {\n namespace dataset {\n\n const state: {\n // Global State Inner Begin\n // Global State \u5168\u5C40\u53D8\u91CF - Don't touch me\n // Global State Inner End\n }\n\n }\n\n namespace utils {\n function ABS(num: number): number;\n function Min(...args: number[]): number;\n function Max(...args: number[]): number;\n function Average(...args: number[]): number;\n function Floor(num: number): number;\n function Ceiling(num: number): number;\n function Round(num: number): number;\n function Sum(...args: number[]): number;\n function Rand(num: number): number;\n\n function If(condition: boolean, val1: any, val2: any): any;\n function IsEmpty(text: string | string[]): boolean;\n function NotNull(val: any): boolean;\n function And(...args: boolean[]): boolean;\n function Or(...args: boolean[]): boolean;\n\n function Len(text: string): number;\n function Contains(text1: string, text2: string): boolean;\n function Split(text1: string, text2: string): string[];\n function Trim(text: string): string;\n function Upper(text: string): string;\n function Lower(text: string): string;\n function Concat(...text: string[]): string;\n\n function Now(): number;\n function Timestamp(arg: number | string | Date): number;\n function Second(arg: number | string | Date): number;\n function Minute(arg: number | string | Date): number;\n function Hour(arg: number | string | Date): number;\n function Day(arg: number | string | Date): number;\n function DayOfWeek(arg: number | string | Date): number;\n function Month(arg: number | string | Date): number;\n function Year(arg: number | string | Date): number;\n function GetDate(year: number, month: number, day: number): number;\n function DateTimeValue(arg: string, val: string): number;\n function Age(arg: number | string | Date, val: number | string | Date): number;\n function AgeOfNow(arg: number | string | Date): number;\n function DateAdd(arg: number | string | Date, day: number): number;\n function MonthAdd(arg: number | string | Date, month: number): number;\n function YearAdd(arg: number | string | Date, year: number): number;\n function DateDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function HourDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function MinuteDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function SecondDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function MonthDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function YearDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function DateText(createdTime: number | string | Date, text: string): string;\n function IsToday(date: number | string | Date): boolean;\n\n }\n\n namespace common {\n // Global Common Inner Begin\n // Global Common \u5168\u5C40\u65B9\u6CD5 - Don't touch me\n // Global Common Inner End\n }\n\n namespace auth {\n const currentUser: {\n userId?: string\n phone?: string\n type?: number\n relatedRoles?: {\n id?: string\n envId?: string\n name?: string\n roleIdentity?: string\n }[]\n openId?: string\n name?: string\n nickName?: string\n email?: string\n mainOrg?: {\n id?: string\n name?: string\n }\n orgs?: {\n id?: string\n name?: string\n }[]\n}\n\n }\n\n \n\ninterface navigatorOptions {\n packageName: string;\n pageId: string;\n data?: Record<string, any>;\n params?: Record<string, any>;\n events?: Record<string, (data: any) => void>;\n success(res: any);\n fail(res: any);\n complete(res: any);\n}\n\ninterface navigateBackOptions {\n delta: number;\n}\n\n// \u8BBE\u7F6E\u72B6\u6001\nfunction setState(userSetState: Record<string, any>): void\n\n// \u7279\u5236\u8DEF\u7531\nfunction navigateTo(options: navigatorOptions)\nfunction redirectTo(options: navigatorOptions)\nfunction reLaunch(options: navigatorOptions)\nfunction navigateBack(options: navigateBackOptions)\n\n// \u663E\u793A\u63D0\u793A\nfunction showToast(options);\n\n// \u663E\u793A\u6A21\u6001\u63D0\u793A\nfunction showModal(options);\n\n// \u663E\u793A loading \u63D0\u793A\nfunction showLoading(options);\n\n// \u9690\u85CF loading \u63D0\u793A\nfunction hideLoading(options);\n\n// \u9690\u85CF\u63D0\u793A\nfunction hideToast(options);\n\n// sacnCode\nfunction scanCode(options: {\n onlyFromCamera?: boolean;\n enableDefaultBehavior?: boolean;\n scanType?: ('barCode' | 'qrCode')[];\n success?: (res: { result: string; scanType: string }) => void;\n fail?: (err: Error) => void;\n complete?: () => void;\n}): Promise<ScanCodeResult> | ScanCodeResult;\n\n\n}\n\ndeclare const app = $app\n\ndeclare namespace $w {\n function ABS(num: number): number;\n function Min(...args: number[]): number;\n function Max(...args: number[]): number;\n function Average(...args: number[]): number;\n function Floor(num: number): number;\n function Ceiling(num: number): number;\n function Round(num: number): number;\n function Sum(...args: number[]): number;\n function Rand(num: number): number;\n\n function If(condition: boolean, val1: any, val2: any): any;\n function IsEmpty(text: string | string[]): boolean;\n function NotNull(val: any): boolean;\n function And(...args: boolean[]): boolean;\n function Or(...args: boolean[]): boolean;\n\n function Len(text: string): number;\n function Contains(text1: string, text2: string): boolean;\n function Split(text1: string, text2: string): string[];\n function Trim(text: string): string;\n function Upper(text: string): string;\n function Lower(text: string): string;\n function Concat(...text: string[]): string;\n\n function Now(): number;\n function Timestamp(arg: number | string | Date): number;\n function Second(arg: number | string | Date): number;\n function Minute(arg: number | string | Date): number;\n function Hour(arg: number | string | Date): number;\n function Day(arg: number | string | Date): number;\n function DayOfWeek(arg: number | string | Date): number;\n function Month(arg: number | string | Date): number;\n function Year(arg: number | string | Date): number;\n function GetDate(year: number, month: number, day: number): number;\n function DateTimeValue(arg: string, val: string): number;\n function Age(arg: number | string | Date, val: number | string | Date): number;\n function AgeOfNow(arg: number | string | Date): number;\n function DateAdd(arg: number | string | Date, day: number): number;\n function MonthAdd(arg: number | string | Date, month: number): number;\n function YearAdd(arg: number | string | Date, year: number): number;\n function DateDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function HourDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function MinuteDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function SecondDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function MonthDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function YearDiff(startDay: number | string | Date, endDay: number | string | Date): number;\n function DateText(createdTime: number | string | Date, text: string): string;\n function IsToday(date: number | string | Date): boolean;\n\n\n // used widgets Inner Begin\n // used widgets - Don't touch me\n // used widgets Inner End\n\n // repeater scope Inner Begin\n // repeater scope - Don't touch me\n // repeater scope Inner End\n}\n\n// Global For Begin\ndeclare const $for: {\n // Global For Inner Begin\n // For \u5FAA\u73AF\u53D8\u91CF - Don't touch me\n // Global For Inner End\n}\ndeclare const forItems = $for\n// Global For End\n\n// $page Begin\ndeclare namespace $page {\n namespace dataset {\n\n const state: {\n // Page State Inner Begin\n // Page State \u9875\u9762\u53D8\u91CF - Don't touch me\n // Page State Inner End\n }\n\n const params: {\n // Page Param Inner Begin\n // Page Param \u9875\u9762\u53C2\u6570 - Don't touch me\n // Page Param Inner End\n }\n\n }\n\n namespace handler {\n // Page Handler Inner Begin\n // Page Handler \u9875\u9762\u65B9\u6CD5 - Don't touch me\n // Page Handler Inner End\n }\n\n \n\n// \u8BBE\u7F6E\u72B6\u6001\nfunction setState(userSetState: Record<string, any>): void\n\n\n}\n// $page End\n\n// $comp Begin\ndeclare namespace $comp {\n\n namespace props {\n\n const data: {\n // Comp Prop Data Inner Begin\n // Comp Prop Data \u7EC4\u4EF6\u5C5E\u6027 - Don't touch me\n // Comp Prop Data Inner End\n }\n\n namespace events {\n // Comp Prop Events Inner Begin\n // Comp Prop Events \u7EC4\u4EF6\u4E8B\u4EF6 - Don't touch me\n // Comp Prop Events Inner End\n }\n\n }\n\n namespace dataset {\n\n const state: {\n // Comp State Inner Begin\n // Comp State \u7EC4\u4EF6\u53D8\u91CF - Don't touch me\n // Comp State Inner End\n }\n\n }\n\n namespace handler {\n // Comp Handler Inner Begin\n // Comp Handler \u7EC4\u4EF6\u65B9\u6CD5 - Don't touch me\n // Comp Handler Inner End\n }\n\n}\n// $comp End\n\n// Global Formula Begin\n\ndeclare function ABS(num: number): number;\ndeclare function Min(...args: number[]): number;\ndeclare function Max(...args: number[]): number;\ndeclare function Average(...args: number[]): number;\ndeclare function Floor(num: number): number;\ndeclare function Ceiling(num: number): number;\ndeclare function Round(num: number): number;\ndeclare function Sum(...args: number[]): number;\ndeclare function Rand(num: number): number;\n\ndeclare function If(condition: boolean, val1: any, val2: any): any;\ndeclare function IsEmpty(text: string | string[]): boolean;\ndeclare function NotNull(val: any): boolean;\ndeclare function And(...args: boolean[]): boolean;\ndeclare function Or(...args: boolean[]): boolean;\n\ndeclare function Len(text: string): number;\ndeclare function Contains(text1: string, text2: string): boolean;\ndeclare function Split(text1: string, text2: string): string[];\ndeclare function Trim(text: string): string;\ndeclare function Upper(text: string): string;\ndeclare function Lower(text: string): string;\ndeclare function Concat(...text: string[]): string;\n\ndeclare function Now(): number;\ndeclare function Timestamp(arg: number | string | Date): number;\ndeclare function Second(arg: number | string | Date): number;\ndeclare function Minute(arg: number | string | Date): number;\ndeclare function Hour(arg: number | string | Date): number;\ndeclare function Day(arg: number | string | Date): number;\ndeclare function DayOfWeek(arg: number | string | Date): number;\ndeclare function Month(arg: number | string | Date): number;\ndeclare function Year(arg: number | string | Date): number;\ndeclare function GetDate(year: number, month: number, day: number): number;\ndeclare function DateTimeValue(arg: string, val: string): number;\ndeclare function Age(arg: number | string | Date, val: number | string | Date): number;\ndeclare function AgeOfNow(arg: number | string | Date): number;\ndeclare function DateAdd(arg: number | string | Date, day: number): number;\ndeclare function MonthAdd(arg: number | string | Date, month: number): number;\ndeclare function YearAdd(arg: number | string | Date, year: number): number;\ndeclare function DateDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function HourDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function MinuteDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function SecondDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function MonthDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function YearDiff(startDay: number | string | Date, endDay: number | string | Date): number;\ndeclare function DateText(createdTime: number | string | Date, text: string): string;\ndeclare function IsToday(date: number | string | Date): boolean;\n\n\n// Global Formula End\n";
2
2
  //# sourceMappingURL=auto-generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-generated.d.ts","sourceRoot":"","sources":["../../../src/utils/dts/auto-generated.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,wrSA6RnB,CAAA"}
1
+ {"version":3,"file":"auto-generated.d.ts","sourceRoot":"","sources":["../../../src/utils/dts/auto-generated.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,+maAoYnB,CAAA"}
@@ -1,7 +1,50 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.wedaDTS = void 0;
4
- exports.wedaDTS = `declare namespace $app {
4
+ exports.wedaDTS = `
5
+ declare class UserWidget {
6
+ // FIXME: 暂时不对外暴露
7
+ // 内置命名空间
8
+ // get sys(): {
9
+ // readonly id: string;
10
+ // readonly module: string;
11
+ // readonly component: string;
12
+ // readonly parent: UserWidget;
13
+ // readonly children: UserWidget[];
14
+
15
+ // closest(filter?: (parentWidget: UserWidget) => boolean): UserWidget | null;
16
+ // };
17
+
18
+ // FIXME: 暂时不对外暴露
19
+ // 自定义命名空间
20
+ // get custom(): { [key: string]: any };
21
+
22
+ // ========== 快捷访问方式 ========== //
23
+
24
+ /**
25
+ * 组件 id
26
+ */
27
+ readonly id: string;
28
+ /**
29
+ * 组件库名称
30
+ */
31
+ readonly module: string;
32
+ /**
33
+ * 组件名称
34
+ */
35
+ readonly component: string;
36
+ // FIXME: 暂时不对外暴露
37
+ // readonly parent: UserWidget;
38
+ // readonly children: UserWidget[];
39
+
40
+ // closest(filter?: (parentWidget: UserWidget) => boolean): UserWidget | null;
41
+ }
42
+
43
+ // Used Components Inner Begin
44
+ // Used Components - Don't touch me
45
+ // Used Components Inner End
46
+
47
+ declare namespace $app {
5
48
  namespace dataset {
6
49
 
7
50
  const state: {
@@ -153,6 +196,66 @@ function scanCode(options: {
153
196
 
154
197
  declare const app = $app
155
198
 
199
+ declare namespace $w {
200
+ function ABS(num: number): number;
201
+ function Min(...args: number[]): number;
202
+ function Max(...args: number[]): number;
203
+ function Average(...args: number[]): number;
204
+ function Floor(num: number): number;
205
+ function Ceiling(num: number): number;
206
+ function Round(num: number): number;
207
+ function Sum(...args: number[]): number;
208
+ function Rand(num: number): number;
209
+
210
+ function If(condition: boolean, val1: any, val2: any): any;
211
+ function IsEmpty(text: string | string[]): boolean;
212
+ function NotNull(val: any): boolean;
213
+ function And(...args: boolean[]): boolean;
214
+ function Or(...args: boolean[]): boolean;
215
+
216
+ function Len(text: string): number;
217
+ function Contains(text1: string, text2: string): boolean;
218
+ function Split(text1: string, text2: string): string[];
219
+ function Trim(text: string): string;
220
+ function Upper(text: string): string;
221
+ function Lower(text: string): string;
222
+ function Concat(...text: string[]): string;
223
+
224
+ function Now(): number;
225
+ function Timestamp(arg: number | string | Date): number;
226
+ function Second(arg: number | string | Date): number;
227
+ function Minute(arg: number | string | Date): number;
228
+ function Hour(arg: number | string | Date): number;
229
+ function Day(arg: number | string | Date): number;
230
+ function DayOfWeek(arg: number | string | Date): number;
231
+ function Month(arg: number | string | Date): number;
232
+ function Year(arg: number | string | Date): number;
233
+ function GetDate(year: number, month: number, day: number): number;
234
+ function DateTimeValue(arg: string, val: string): number;
235
+ function Age(arg: number | string | Date, val: number | string | Date): number;
236
+ function AgeOfNow(arg: number | string | Date): number;
237
+ function DateAdd(arg: number | string | Date, day: number): number;
238
+ function MonthAdd(arg: number | string | Date, month: number): number;
239
+ function YearAdd(arg: number | string | Date, year: number): number;
240
+ function DateDiff(startDay: number | string | Date, endDay: number | string | Date): number;
241
+ function HourDiff(startDay: number | string | Date, endDay: number | string | Date): number;
242
+ function MinuteDiff(startDay: number | string | Date, endDay: number | string | Date): number;
243
+ function SecondDiff(startDay: number | string | Date, endDay: number | string | Date): number;
244
+ function MonthDiff(startDay: number | string | Date, endDay: number | string | Date): number;
245
+ function YearDiff(startDay: number | string | Date, endDay: number | string | Date): number;
246
+ function DateText(createdTime: number | string | Date, text: string): string;
247
+ function IsToday(date: number | string | Date): boolean;
248
+
249
+
250
+ // used widgets Inner Begin
251
+ // used widgets - Don't touch me
252
+ // used widgets Inner End
253
+
254
+ // repeater scope Inner Begin
255
+ // repeater scope - Don't touch me
256
+ // repeater scope Inner End
257
+ }
258
+
156
259
  // Global For Begin
157
260
  declare const $for: {
158
261
  // Global For Inner Begin
@@ -79,6 +79,8 @@ function groupDTSs({ wedaFrameworkDTS = '', wedaAPIDTS = '', wedaAuthDTS = '', f
79
79
  resultDts = resultDts.replace("// Formula 函数公式 - Don't touch me", formulaDTS.replace(/export/g, ''));
80
80
  // 函数公式:全局变量提示
81
81
  resultDts = resultDts.replace("// Global Formula 全局函数公式- Don't touch me", formulaDTS.replace(/export/g, 'declare'));
82
+ // 函数公式:$w.xxx
83
+ resultDts = resultDts.replace("// $w global APIs - Don't touch me", formulaDTS.replace(/export/g, ''));
82
84
  // 增加 API
83
85
  const appAPIDTS = wedaAPIDTS.replace(/[\s\S]*\/\/ ============ App API Begin ============ \/\/([\s\S]*?)\/\/ ============ App API End ============ \/\/[\s\S]*/, '$1');
84
86
  resultDts = resultDts.replace("// App API - Don't touch me", appAPIDTS);
@@ -1,12 +1,33 @@
1
- import { IJsonSchemaObject } from '../../types';
1
+ import { IJsonSchemaAny, IJsonSchemaObject } from '../../types';
2
2
  export interface IDTSCodeItem {
3
3
  name: string;
4
4
  code: string;
5
5
  }
6
+ export interface IInputDataUsedComponents {
7
+ module: string;
8
+ component: string;
9
+ exportProperties?: IJsonSchemaObject;
10
+ exportMethods?: {
11
+ name: string;
12
+ input?: IJsonSchemaObject;
13
+ output?: IJsonSchemaAny;
14
+ }[];
15
+ }
16
+ export interface IInputDataWidgetItem {
17
+ module: string;
18
+ component: string;
19
+ idList: string[];
20
+ }
21
+ export interface IInputDataRepeaterItem {
22
+ currentItemAlias: string;
23
+ currentIndexAlias: string;
24
+ itemData: IJsonSchemaAny;
25
+ }
6
26
  export interface IOptions {
7
27
  isCompMode?: boolean;
8
28
  needGlobalFormula?: boolean;
9
29
  needGlobalFor?: boolean;
30
+ needRepeaterScope?: boolean;
10
31
  }
11
32
  export declare enum IInputDataType {
12
33
  globalState = "globalState",
@@ -18,7 +39,10 @@ export declare enum IInputDataType {
18
39
  pageHandlerCodes = "pageHandlerCodes",
19
40
  compHandlerCodes = "compHandlerCodes",
20
41
  compPropData = "compPropData",
21
- compPropEvents = "compPropEvents"
42
+ compPropEvents = "compPropEvents",
43
+ usedComponents = "usedComponents",
44
+ usedWidgets = "usedWidgets",
45
+ repeaterScope = "repeaterScope"
22
46
  }
23
47
  export interface IInputData {
24
48
  [IInputDataType.globalState]?: IJsonSchemaObject;
@@ -31,6 +55,9 @@ export interface IInputData {
31
55
  [IInputDataType.compHandlerCodes]?: IDTSCodeItem[];
32
56
  [IInputDataType.compPropData]?: IJsonSchemaObject;
33
57
  [IInputDataType.compPropEvents]?: string[];
58
+ [IInputDataType.usedComponents]?: IInputDataUsedComponents[];
59
+ [IInputDataType.usedWidgets]?: IInputDataWidgetItem[];
60
+ [IInputDataType.repeaterScope]?: IInputDataRepeaterItem[];
34
61
  }
35
62
  /**
36
63
  * 通过该类可以共享同个dts。
@@ -45,7 +72,7 @@ export declare class WeDaDTS {
45
72
  /**
46
73
  * 部分更新 - 只更新一种类型
47
74
  */
48
- static updateDTSPartial(inputData: IJsonSchemaObject | IDTSCodeItem[] | string[], itemType: IInputDataType, options?: {
75
+ static updateDTSPartial(inputData: IJsonSchemaObject | IDTSCodeItem[] | string[] | IInputDataUsedComponents[] | IInputDataWidgetItem[] | IInputDataRepeaterItem[], itemType: IInputDataType, options?: {
49
76
  setEmptyIfError: boolean;
50
77
  }): Promise<void>;
51
78
  static getDTS(options?: Omit<IOptions, "isCompMode">): string;
@@ -54,7 +81,7 @@ export declare class WeDaDTS {
54
81
  * 生成 WeDa 应用的低码代码提示的 dts 类型声明内容
55
82
  */
56
83
  export declare function generateWeDaAppDTS(inputData?: IInputData, options?: IOptions): Promise<string>;
57
- export declare const workerCode = "\nimportScripts('https://qbase.cdn-go.cn/lcap/lcap-resource-cdngo/-/release/_url/devtools/typescriptServices.min.js');\n\nts.transpileOptionValueCompilerOptions.forEach(item => {\n if (['emitDeclarationOnly', 'declaration'].includes(item.name)) {\n item.transpileOptionValue = true\n }\n})\naddEventListener('message', (message) => {\n const {action, data: {id, code}} = message.data\n switch(action) {\n case 'dts':\n const dts = ts.transpile(code, {})\n postMessage({action: 'dts_back', data: {id, dts}})\n break\n default:\n break\n }\n})\n";
84
+ export declare const workerCode = "\nimportScripts('https://qbase.cdn-go.cn/lcap/lcap-resource-cdngo/-/release/_url/devtools/typescriptServices.min.js');\nimportScripts('https://qbase.cdn-go.cn/lcap/lcap-resource-cdngo/-/release/_url/devtools/ts-lib.min.js');\n\nconst files = {\n \"foo.ts\": '',\n \"lib.d.ts\": libFileMap['lib.es5.d.ts']\n};\n\nfunction createLanguageService() {\n return ts.createLanguageService({\n getCompilationSettings() {\n return {};\n },\n getScriptFileNames() {\n return [\"foo.ts\", \"lib.d.ts\"];\n },\n getScriptVersion(_fileName) {\n // \u8FD9\u6837\u53EF\u907F\u514D\u4F7F\u7528\u7F13\u5B58\n if (_fileName === 'foo.ts')\n return 'v_' + Math.random();\n return ''\n },\n getScriptSnapshot(fileName) {\n if (fileName === \".ts\") {\n return ts.ScriptSnapshot.fromString(\"\");\n }\n return ts.ScriptSnapshot.fromString(files[fileName] || \"\");\n },\n getCurrentDirectory: () => \".\",\n getDefaultLibFileName(options) {\n return 'lib.d.ts'\n },\n fileExists: name => !!files[name],\n readFile: name => {\n return files[name]\n }\n });\n}\nconst languageService = createLanguageService();\n\nfunction transpile(code) {\n files[\"foo.ts\"] = code\n const result = languageService.getEmitOutput(\n \"foo.ts\",\n /*emitOnlyDtsFiles*/ true,\n /*forceDtsEmit*/ true\n )\n return result.outputFiles[0].text.trim()\n}\n\naddEventListener('message', (message) => {\n const {action, data: {id, code}} = message.data\n switch(action) {\n case 'dts':\n const dts = transpile(code)\n postMessage({action: 'dts_back', data: {id, dts}})\n break\n default:\n break\n }\n})\n";
58
85
  /**
59
86
  * 通过 js/ts 代码生成 dts
60
87
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/dts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAK/C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,QAAQ;IAEvB,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,oBAAY,cAAc;IACxB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,iBAAiB,CAAA;IAChD,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,iBAAiB,CAAA;IAC9C,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,iBAAiB,CAAA;IAC9C,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAA;IAC/C,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAA;IAC7C,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAA;IACnD,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAA;IAClD,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAA;IAClD,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,iBAAiB,CAAA;IACjD,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3C;AA4BD;;;GAGG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAa;IAEhC;;OAEG;WACU,SAAS,CAAC,SAAS,GAAE,UAAe,EAAE,OAAO,GAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAyB;IAIhH;;OAEG;WACU,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,GAAG,YAAY,EAAE,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,GAAE;QAAE,eAAe,EAAE,OAAO,CAAA;KAA+B;IAYpL,MAAM,CAAC,MAAM,CAAC,OAAO,GAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAsD;CAUzG;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,GAAE,UAAe,EAAE,OAAO,GAAE,QAAgF,GAAG,OAAO,CAAC,MAAM,CAAC,CAoC/K;AAyED,eAAO,MAAM,UAAU,onBAmBtB,CAAA;AA6CD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/dts/index.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,9 @@ var IInputDataType;
48
48
  IInputDataType["compHandlerCodes"] = "compHandlerCodes";
49
49
  IInputDataType["compPropData"] = "compPropData";
50
50
  IInputDataType["compPropEvents"] = "compPropEvents";
51
+ IInputDataType["usedComponents"] = "usedComponents";
52
+ IInputDataType["usedWidgets"] = "usedWidgets";
53
+ IInputDataType["repeaterScope"] = "repeaterScope";
51
54
  })(IInputDataType = exports.IInputDataType || (exports.IInputDataType = {}));
52
55
  const DtsPlaceholder = {
53
56
  [IInputDataType.globalState]: "// Global State 全局变量 - Don't touch me",
@@ -60,6 +63,9 @@ const DtsPlaceholder = {
60
63
  [IInputDataType.compHandlerCodes]: "// Comp Handler 组件方法 - Don't touch me",
61
64
  [IInputDataType.compPropData]: "// Comp Prop Data 组件属性 - Don't touch me",
62
65
  [IInputDataType.compPropEvents]: "// Comp Prop Events 组件事件 - Don't touch me",
66
+ [IInputDataType.usedComponents]: "// Used Components - Don't touch me",
67
+ [IInputDataType.usedWidgets]: "// used widgets - Don't touch me",
68
+ [IInputDataType.repeaterScope]: "// repeater scope - Don't touch me"
63
69
  };
64
70
  const DtsInnerSign = {
65
71
  [IInputDataType.globalState]: "Global State Inner",
@@ -72,6 +78,9 @@ const DtsInnerSign = {
72
78
  [IInputDataType.compHandlerCodes]: "Comp Handler Inner",
73
79
  [IInputDataType.compPropData]: "Comp Prop Data Inner",
74
80
  [IInputDataType.compPropEvents]: "Comp Prop Events Inner",
81
+ [IInputDataType.usedComponents]: "Used Components Inner",
82
+ [IInputDataType.usedWidgets]: "used widgets Inner",
83
+ [IInputDataType.repeaterScope]: "repeater scope Inner"
75
84
  };
76
85
  /**
77
86
  * 通过该类可以共享同个dts。
@@ -83,7 +92,7 @@ class WeDaDTS {
83
92
  */
84
93
  static updateDTS(inputData = {}, options = { isCompMode: false }) {
85
94
  return __awaiter(this, void 0, void 0, function* () {
86
- WeDaDTS._dts = yield generateWeDaAppDTS(inputData, Object.assign(Object.assign({}, options), { needGlobalFormula: true, needGlobalFor: true }));
95
+ WeDaDTS._dts = yield generateWeDaAppDTS(inputData, Object.assign(Object.assign({}, options), { needGlobalFormula: true, needGlobalFor: true, needRepeaterScope: true }));
87
96
  });
88
97
  }
89
98
  /**
@@ -103,7 +112,7 @@ class WeDaDTS {
103
112
  }
104
113
  });
105
114
  }
106
- static getDTS(options = { needGlobalFormula: false, needGlobalFor: false }) {
115
+ static getDTS(options = { needGlobalFormula: false, needGlobalFor: false, needRepeaterScope: false }) {
107
116
  let resultDts = WeDaDTS._dts;
108
117
  if (!options.needGlobalFormula) {
109
118
  resultDts = resultDts.replace(/^\/\/ Global Formula Begin[\s\S]*^\/\/ Global Formula End$/m, '');
@@ -111,6 +120,9 @@ class WeDaDTS {
111
120
  if (!options.needGlobalFor) {
112
121
  resultDts = resultDts.replace(/^\/\/ Global For Begin[\s\S]*^\/\/ Global For End$/m, '');
113
122
  }
123
+ if (!options.needRepeaterScope) {
124
+ resultDts = resultDts.replace(/\/\/ repeater scope Inner Begin[\s\S]*\/\/ repeater scope Inner End$/m, '');
125
+ }
114
126
  return resultDts;
115
127
  }
116
128
  }
@@ -119,7 +131,7 @@ WeDaDTS._dts = '';
119
131
  /**
120
132
  * 生成 WeDa 应用的低码代码提示的 dts 类型声明内容
121
133
  */
122
- function generateWeDaAppDTS(inputData = {}, options = { isCompMode: false, needGlobalFormula: false, needGlobalFor: false }) {
134
+ function generateWeDaAppDTS(inputData = {}, options = { isCompMode: false, needGlobalFormula: false, needGlobalFor: false, needRepeaterScope: false }) {
123
135
  return __awaiter(this, void 0, void 0, function* () {
124
136
  let resultDts = auto_generated_1.wedaDTS;
125
137
  yield Promise.all(Object.keys(inputData).map((key) => __awaiter(this, void 0, void 0, function* () {
@@ -150,6 +162,10 @@ function generateWeDaAppDTS(inputData = {}, options = { isCompMode: false, needG
150
162
  if (!(options === null || options === void 0 ? void 0 : options.needGlobalFor)) {
151
163
  resultDts = resultDts.replace(/^\/\/ Global For Begin[\s\S]*^\/\/ Global For End$/m, '');
152
164
  }
165
+ // 根据是否需要 Repeater 作用域来删除一些类型定义
166
+ if (!(options === null || options === void 0 ? void 0 : options.needRepeaterScope)) {
167
+ resultDts = resultDts.replace(/\/\/ repeater scope Inner Begin[\s\S]*\/\/ repeater scope Inner End$/m, '');
168
+ }
153
169
  // console.log(resultDts)
154
170
  return resultDts;
155
171
  });
@@ -207,16 +223,80 @@ function _generateOneItemDTS(inputData, itemType) {
207
223
  return inputData.map(eventName => {
208
224
  return `function ${eventName}(data?: ${IData}): void`;
209
225
  }).join('\n');
210
- }
211
- };
212
- function _compile(jsonschema) {
213
- return __awaiter(this, void 0, void 0, function* () {
214
- let dts = yield compile(jsonschema, 'IWeDa', { additionalProperties: false, bannerComment: '', format: false });
215
- dts = dts.replace(/^export interface.*$/m, '');
216
- dts = dts.substring(0, dts.length - 2);
217
- return dts;
218
- });
226
+ },
227
+ [IInputDataType.usedComponents]: function (inputData) {
228
+ return __awaiter(this, void 0, void 0, function* () {
229
+ const results = yield Promise.all(inputData.map((item) => __awaiter(this, void 0, void 0, function* () {
230
+ // 属性
231
+ let exportPropertiesDTS = '';
232
+ if (item.exportProperties) {
233
+ exportPropertiesDTS = yield _compile(item.exportProperties);
234
+ }
235
+ // 方法
236
+ let exportMethodsDTS = '';
237
+ if (item.exportMethods) {
238
+ const results = yield Promise.all(item.exportMethods.map((item) => __awaiter(this, void 0, void 0, function* () {
239
+ let inputDTS = '';
240
+ if (item.input) {
241
+ inputDTS = yield _compile(item.input);
242
+ }
243
+ let outputDTS = 'void';
244
+ if (item.output) {
245
+ outputDTS = yield _compile(item.output, true);
246
+ }
247
+ return `
248
+ /**
249
+ *
250
+ */
251
+ ${item.name} (${inputDTS.trim().replace(/\n/g, ',')}): ${outputDTS}`;
252
+ })));
253
+ exportMethodsDTS = results.join('\n');
254
+ }
255
+ // FIXME: 等确定要对外暴露 UserWidge 所有定义时
256
+ // return `
257
+ // declare class ${_genCompInterfaceName(item.module, item.component)} extends UserWidget {
258
+ // get custom(): {
259
+ // ${exportPropertiesDTS}
260
+ // ${exportMethodsDTS}
261
+ // };
262
+ // ${exportPropertiesDTS}
263
+ // ${exportMethodsDTS}
264
+ // }
265
+ // `
266
+ return `
267
+ declare class ${_genCompInterfaceName(item.module, item.component)} extends UserWidget {
268
+
269
+ ${exportPropertiesDTS}
270
+
271
+ ${exportMethodsDTS}
219
272
  }
273
+ `;
274
+ })));
275
+ return results.join('\n');
276
+ });
277
+ },
278
+ [IInputDataType.usedWidgets]: function (inputData) {
279
+ return inputData.map(item => {
280
+ if (item.idList && item.idList.length > 0) {
281
+ const interfaceName = _genCompInterfaceName(item.module, item.component);
282
+ return item.idList.map(id => `const ${id}: ${interfaceName}`).join('\n');
283
+ }
284
+ return '';
285
+ }).join('\n');
286
+ },
287
+ [IInputDataType.repeaterScope]: function (inputData) {
288
+ return __awaiter(this, void 0, void 0, function* () {
289
+ const results = yield Promise.all(inputData.map((item) => __awaiter(this, void 0, void 0, function* () {
290
+ let itemDataDTS = yield _compile(item.itemData, true);
291
+ return `
292
+ const ${item.currentItemAlias}: ${itemDataDTS}
293
+ const ${item.currentIndexAlias}: number
294
+ `;
295
+ })));
296
+ return results.join('\n');
297
+ });
298
+ },
299
+ };
220
300
  let dts = '';
221
301
  if (!inputData)
222
302
  return dts;
@@ -227,22 +307,84 @@ function _generateOneItemDTS(inputData, itemType) {
227
307
  }
228
308
  dts = dts || (yield _compile(inputData));
229
309
  return dts;
310
+ function _genCompInterfaceName(module, component) {
311
+ return `${module.replace(/-/g, '_')}_${component}`;
312
+ }
313
+ function _compile(jsonschema, isObjNeedWrapper = false) {
314
+ return __awaiter(this, void 0, void 0, function* () {
315
+ let dts = yield compile(jsonschema, 'IWeDa', { additionalProperties: false, bannerComment: '', format: false });
316
+ if (dts.search(/^export interface IWeDa/) >= 0) {
317
+ dts = dts.replace(/^export interface.*$/m, '');
318
+ dts = dts.substring(0, dts.length - 2);
319
+ if (isObjNeedWrapper) {
320
+ dts = `{${dts}}`;
321
+ }
322
+ }
323
+ else {
324
+ dts = dts.replace(/^export type IWeDa =/m, '');
325
+ }
326
+ return dts;
327
+ });
328
+ }
230
329
  });
231
330
  }
232
331
  // 仅仅为了与 unittest 共享,外部请不要使用
233
332
  exports.workerCode = `
234
333
  importScripts('https://qbase.cdn-go.cn/lcap/lcap-resource-cdngo/-/release/_url/devtools/typescriptServices.min.js');
334
+ importScripts('https://qbase.cdn-go.cn/lcap/lcap-resource-cdngo/-/release/_url/devtools/ts-lib.min.js');
335
+
336
+ const files = {
337
+ "foo.ts": '',
338
+ "lib.d.ts": libFileMap['lib.es5.d.ts']
339
+ };
340
+
341
+ function createLanguageService() {
342
+ return ts.createLanguageService({
343
+ getCompilationSettings() {
344
+ return {};
345
+ },
346
+ getScriptFileNames() {
347
+ return ["foo.ts", "lib.d.ts"];
348
+ },
349
+ getScriptVersion(_fileName) {
350
+ // 这样可避免使用缓存
351
+ if (_fileName === 'foo.ts')
352
+ return 'v_' + Math.random();
353
+ return ''
354
+ },
355
+ getScriptSnapshot(fileName) {
356
+ if (fileName === ".ts") {
357
+ return ts.ScriptSnapshot.fromString("");
358
+ }
359
+ return ts.ScriptSnapshot.fromString(files[fileName] || "");
360
+ },
361
+ getCurrentDirectory: () => ".",
362
+ getDefaultLibFileName(options) {
363
+ return 'lib.d.ts'
364
+ },
365
+ fileExists: name => !!files[name],
366
+ readFile: name => {
367
+ return files[name]
368
+ }
369
+ });
370
+ }
371
+ const languageService = createLanguageService();
372
+
373
+ function transpile(code) {
374
+ files["foo.ts"] = code
375
+ const result = languageService.getEmitOutput(
376
+ "foo.ts",
377
+ /*emitOnlyDtsFiles*/ true,
378
+ /*forceDtsEmit*/ true
379
+ )
380
+ return result.outputFiles[0].text.trim()
381
+ }
235
382
 
236
- ts.transpileOptionValueCompilerOptions.forEach(item => {
237
- if (['emitDeclarationOnly', 'declaration'].includes(item.name)) {
238
- item.transpileOptionValue = true
239
- }
240
- })
241
383
  addEventListener('message', (message) => {
242
384
  const {action, data: {id, code}} = message.data
243
385
  switch(action) {
244
386
  case 'dts':
245
- const dts = ts.transpile(code, {})
387
+ const dts = transpile(code)
246
388
  postMessage({action: 'dts_back', data: {id, dts}})
247
389
  break
248
390
  default:
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/cals",
3
- "version": "0.5.8",
3
+ "version": "0.5.10",
4
4
  "description": "Common application specifications",
5
5
  "main": "lib/utils/index.js",
6
6
  "source": "src/utils/index.ts",
@@ -53,4 +53,4 @@
53
53
  "typescript": "^4.7.4",
54
54
  "typescript-json-schema": "^0.53.0"
55
55
  }
56
- }
56
+ }