@cloudbase/cals 1.0.43 → 1.0.45

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.
@@ -364,7 +364,7 @@ function serializeDataset(ctx, dataset) {
364
364
  }
365
365
  });
366
366
  Object.entries(result.query || {}).forEach(([key, query]) => {
367
- var _a, _b, _c, _d, _e;
367
+ var _a, _b, _c, _d;
368
368
  let { dataSourceName, method, listeners, handler, data, args } = query, restQuery = __rest(query, ["dataSourceName", "method", "listeners", "handler", "data", "args"]);
369
369
  let mergedData = (_a = serializeDynamicMapWithExtra({
370
370
  ctx,
@@ -386,20 +386,20 @@ function serializeDataset(ctx, dataset) {
386
386
  }
387
387
  const argsData = (_c = serializeDynamicMapWithExtra({
388
388
  ctx,
389
- map: args.args || {},
389
+ map: args || {},
390
390
  })) === null || _c === void 0 ? void 0 : _c.data;
391
391
  let processedHandler = {
392
392
  module: handler === null || handler === void 0 ? void 0 : handler.moduleName,
393
393
  name: handler === null || handler === void 0 ? void 0 : handler.name,
394
394
  code: handler === null || handler === void 0 ? void 0 : handler.code,
395
395
  };
396
- if (((_d = argsData.params) === null || _d === void 0 ? void 0 : _d.length) === 1 && Object.keys(argsData).length === 1 && data) {
397
- processedHandler.params = data;
396
+ if (mergedData && !args) {
397
+ processedHandler.params = mergedData;
398
398
  }
399
399
  else {
400
400
  processedHandler = Object.assign(Object.assign({}, argsData), processedHandler);
401
401
  }
402
- result.query[key] = Object.assign(Object.assign({}, restQuery), { handler: processedHandler, listeners: (_e = listeners === null || listeners === void 0 ? void 0 : listeners.map) === null || _e === void 0 ? void 0 : _e.call(listeners, (listener) => serializeListener(ctx, listener)) });
402
+ result.query[key] = Object.assign(Object.assign({}, restQuery), { handler: processedHandler, listeners: (_d = listeners === null || listeners === void 0 ? void 0 : listeners.map) === null || _d === void 0 ? void 0 : _d.call(listeners, (listener) => serializeListener(ctx, listener)) });
403
403
  });
404
404
  return result;
405
405
  }
@@ -559,7 +559,6 @@ function deserializeDirecties(ctx, directives) {
559
559
  * heander 更新为表达式
560
560
  */
561
561
  function serializeListener(ctx, listener) {
562
- var _a;
563
562
  const { data, extra = {} } = serializeDynamicMapWithExtra({
564
563
  ctx,
565
564
  map: listener.data,
@@ -579,7 +578,7 @@ function serializeListener(ctx, listener) {
579
578
  },
580
579
  isCapturePhase: listener.isCapturePhase,
581
580
  };
582
- if (((_a = args.params) === null || _a === void 0 ? void 0 : _a.length) === 1 && Object.keys(args).length === 1 && data) {
581
+ if (!listener.args && data) {
583
582
  platfromListener.handler.params = data;
584
583
  }
585
584
  else {
@@ -0,0 +1,5 @@
1
+ export declare function semverComp(a: string, b: string): number;
2
+ export declare function toFixed(num: number, precision: number): number;
3
+ export declare const OFFICIAL_COMPONENT_LIB_NAME = "CLOUDBASE_STANDARD";
4
+ export declare const OFFICIAL_MATERIAL_LIB_NAME = "gsd-h5-react";
5
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/utils/version-migrations/common.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAYvD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAChE,eAAO,MAAM,0BAA0B,iBAAiB,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OFFICIAL_MATERIAL_LIB_NAME = exports.OFFICIAL_COMPONENT_LIB_NAME = exports.toFixed = exports.semverComp = void 0;
4
+ function semverComp(a, b) {
5
+ const pa = a.split('.');
6
+ const pb = b.split('.');
7
+ for (let i = 0; i < 3; i++) {
8
+ const na = Number(pa[i]);
9
+ const nb = Number(pb[i]);
10
+ if (na > nb)
11
+ return 1;
12
+ if (nb > na)
13
+ return -1;
14
+ if (!isNaN(na) && isNaN(nb))
15
+ return 1;
16
+ if (isNaN(na) && !isNaN(nb))
17
+ return -1;
18
+ }
19
+ return 0;
20
+ }
21
+ exports.semverComp = semverComp;
22
+ function toFixed(num, precision) {
23
+ const multiplier = Math.pow(10, (precision + 1));
24
+ const wholeNumber = Math.floor(num * multiplier);
25
+ return (Math.round(wholeNumber / 10) * 10) / multiplier;
26
+ }
27
+ exports.toFixed = toFixed;
28
+ exports.OFFICIAL_COMPONENT_LIB_NAME = 'CLOUDBASE_STANDARD';
29
+ exports.OFFICIAL_MATERIAL_LIB_NAME = 'gsd-h5-react';
@@ -0,0 +1,3 @@
1
+ import type { IPlatformApp } from '../../types';
2
+ export declare function version4(cals: IPlatformApp, isUpgrade: boolean, setSchemaVersionCallback?: (version: string | undefined) => void): IPlatformApp;
3
+ //# sourceMappingURL=version4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version4.d.ts","sourceRoot":"","sources":["../../../src/utils/version-migrations/version4.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAGhE,wBAAgB,QAAQ,CACtB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,OAAO,EAClB,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,GAC/D,YAAY,CAEd"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.version4 = void 0;
7
+ const postcss_1 = __importDefault(require("postcss"));
8
+ const postcss_less_1 = __importDefault(require("postcss-less"));
9
+ const __1 = require("..");
10
+ const common_1 = require("./common");
11
+ function version4(cals, isUpgrade, setSchemaVersionCallback) {
12
+ return transformPxLowcodeCompAndSourceComp(cals, isUpgrade, setSchemaVersionCallback);
13
+ }
14
+ exports.version4 = version4;
15
+ const transformPxLowcodeCompAndSourceComp = (cals, isUpgrade, setSchemaVersionCallback) => {
16
+ var _a, _b, _c, _d;
17
+ {
18
+ function transformCals(items, isUpgradeToPx) {
19
+ return items.map((item) => {
20
+ var _a;
21
+ // 对于表单操作区的按钮组件的父容器添加.wd-form__action, 兼容组件规范化按钮升级样式
22
+ if ((item === null || item === void 0 ? void 0 : item.module) === common_1.OFFICIAL_COMPONENT_LIB_NAME && (item === null || item === void 0 ? void 0 : item.component) === 'Form') {
23
+ item = addClassToButtonContainer(item);
24
+ }
25
+ if ((_a = item === null || item === void 0 ? void 0 : item.extra) === null || _a === void 0 ? void 0 : _a.commonStyle) {
26
+ item.extra.commonStyle = convertCommonStyle(item.extra.commonStyle, isUpgradeToPx);
27
+ if (item.extra.commonStyle.self) {
28
+ // 处理 margin padding shorthand 同步
29
+ const newSelf = (0, __1.processCommonStyle2CSSProperties)(item.extra.commonStyle, {
30
+ toRem: false,
31
+ ignoreSelf: true,
32
+ addPXUnit: true,
33
+ });
34
+ ['margin', 'padding', 'border'].forEach((k) => {
35
+ if (item.extra.commonStyle.self[k]) {
36
+ item.extra.commonStyle.self[k] = newSelf[k];
37
+ }
38
+ });
39
+ }
40
+ }
41
+ if (item === null || item === void 0 ? void 0 : item.resources) {
42
+ item.resources = item.resources.map((n) => {
43
+ if (n.codeType === 'style') {
44
+ n = convertLowCodesStyle(n, isUpgradeToPx);
45
+ return n;
46
+ }
47
+ return n;
48
+ });
49
+ }
50
+ if (item.items) {
51
+ item.items = transformCals(item.items, isUpgradeToPx);
52
+ }
53
+ return item;
54
+ });
55
+ }
56
+ let pages = cals['items'];
57
+ let isDivision;
58
+ if (isUpgrade && (0, common_1.semverComp)((_a = cals['schemaVersion']) !== null && _a !== void 0 ? _a : '3.0.0', '4.0.0') < 0) {
59
+ // 组件库版本高于目标版本,且schemaVersion小于4, 将应用 CALS 数据中的 CSS 和 style 中的无单位和有单位的小写 px统一改写为 1/2 px
60
+ isDivision = true;
61
+ pages = transformCals(pages, isDivision);
62
+ cals.resources = (_b = cals.resources) === null || _b === void 0 ? void 0 : _b.map((n) => {
63
+ if (n.codeType === 'style') {
64
+ n = convertLowCodesStyle(n, isDivision);
65
+ return n;
66
+ }
67
+ return n;
68
+ });
69
+ cals['schemaVersion'] = '4.0.0';
70
+ setSchemaVersionCallback === null || setSchemaVersionCallback === void 0 ? void 0 : setSchemaVersionCallback('4.0.0');
71
+ }
72
+ else if (!isUpgrade && (0, common_1.semverComp)((_c = cals['schemaVersion']) !== null && _c !== void 0 ? _c : '3.0.0', '4.0.0') >= 0) {
73
+ // 组件库低于目标版本,并且schemaVersion大于4 将应用 CALS 数据中的 CSS 和 style 中的无单位和有单位的小写 px统一改写为 2倍 px
74
+ isDivision = false;
75
+ pages = transformCals(pages, isDivision);
76
+ cals.resources = (_d = cals.resources) === null || _d === void 0 ? void 0 : _d.map((n) => {
77
+ if (n.codeType === 'style') {
78
+ n = convertLowCodesStyle(n, isDivision);
79
+ return n;
80
+ }
81
+ return n;
82
+ });
83
+ delete cals['schemaVersion'];
84
+ setSchemaVersionCallback === null || setSchemaVersionCallback === void 0 ? void 0 : setSchemaVersionCallback(undefined);
85
+ }
86
+ cals['items'] = pages;
87
+ return cals;
88
+ }
89
+ };
90
+ function hasSubmitButton(item) {
91
+ var _a;
92
+ if ((_a = item === null || item === void 0 ? void 0 : item.items) === null || _a === void 0 ? void 0 : _a.length) {
93
+ const children = item.items;
94
+ return children.some((i) => { var _a; return (i === null || i === void 0 ? void 0 : i.module) === common_1.OFFICIAL_COMPONENT_LIB_NAME && i.component === 'Button' && ((_a = i === null || i === void 0 ? void 0 : i.attributes) === null || _a === void 0 ? void 0 : _a.formType) === 'submit'; });
95
+ }
96
+ return false;
97
+ }
98
+ function addClassToButtonContainer(item) {
99
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
100
+ if ((item === null || item === void 0 ? void 0 : item.module) === common_1.OFFICIAL_MATERIAL_LIB_NAME && item.component === 'Container') {
101
+ if (hasSubmitButton(item)) {
102
+ if (((_a = item.attributes) === null || _a === void 0 ? void 0 : _a.class) && !((_b = item.attributes) === null || _b === void 0 ? void 0 : _b.class.includes('wd-form__action'))) {
103
+ if (typeof ((_c = item.attributes) === null || _c === void 0 ? void 0 : _c.class) === 'string') {
104
+ item.attributes = Object.assign(Object.assign({}, item.attributes), { class: `${(_d = item.attributes) === null || _d === void 0 ? void 0 : _d.class} wd-form__action` });
105
+ }
106
+ else if (Array.isArray((_e = item.attributes) === null || _e === void 0 ? void 0 : _e.class)) {
107
+ item.attributes = Object.assign(Object.assign({}, item.attributes), { class: [...(_f = item.attributes) === null || _f === void 0 ? void 0 : _f.class, 'wd-form__action'] });
108
+ }
109
+ }
110
+ else if (!((_g = item.attributes) === null || _g === void 0 ? void 0 : _g.class)) {
111
+ item.attributes = Object.assign(Object.assign({}, item.attributes), { class: 'wd-form__action' });
112
+ }
113
+ // 移除旧的padding配置
114
+ if ((_j = (_h = item === null || item === void 0 ? void 0 : item.extra) === null || _h === void 0 ? void 0 : _h.commonStyle) === null || _j === void 0 ? void 0 : _j.padding) {
115
+ delete item.extra.commonStyle.padding;
116
+ }
117
+ }
118
+ }
119
+ if ((_k = item === null || item === void 0 ? void 0 : item.items) === null || _k === void 0 ? void 0 : _k.length) {
120
+ item.items = item.items.map((i) => addClassToButtonContainer(i));
121
+ }
122
+ return item;
123
+ }
124
+ function jsonTranverse(json, reviver) {
125
+ return JSON.parse(JSON.stringify(json, reviver, 2));
126
+ }
127
+ function convertCommonStyle(value, isUpgrade) {
128
+ return jsonTranverse(value, (key, value) => {
129
+ if (__1.isUnitlessNumber[key]) {
130
+ return value;
131
+ }
132
+ if (typeof value === 'number') {
133
+ if (isUpgrade) {
134
+ value = value / 2;
135
+ }
136
+ else {
137
+ value = value * 2;
138
+ }
139
+ }
140
+ else if (/^((\d+\.)?\d+)(px)?$/.test(value)) {
141
+ value = !value ? value : value === null || value === void 0 ? void 0 : value.replace('px', '');
142
+ if (isUpgrade) {
143
+ // console.log(key, value, Number(value) / 2);
144
+ value = !value ? value : `${(0, common_1.toFixed)(Number(value) / 2, 3)}px`;
145
+ }
146
+ else {
147
+ value = !value ? value : `${Number(value) * 2}px`;
148
+ }
149
+ }
150
+ return value;
151
+ });
152
+ }
153
+ const rem2PxPlugin = (opts) => {
154
+ const rem2pxSym = Symbol('rem2pxSym');
155
+ const { isUpgrade } = opts;
156
+ return {
157
+ postcssPlugin: 'postcss-rem2px',
158
+ Declaration(decl, rule) {
159
+ // Modified From https://github.com/cuth/postcss-pxtorem/blob/122649015322214f8e9d1ac852eb11c0791b634b/lib/pixel-unit-regex.js#L9
160
+ // eslint-disable-next-line no-useless-escape
161
+ const pxRegex = /"[^"]+"|'[^']+'|(\d*\.?\d+)px/gm;
162
+ if (decl.value.indexOf('px') < 0) {
163
+ return;
164
+ }
165
+ if (decl[rem2pxSym]) {
166
+ return;
167
+ }
168
+ if (isUpgrade) {
169
+ const value = decl.value.replace(pxRegex, (match, p1) => {
170
+ if (p1 !== null && p1 !== undefined) {
171
+ const r = (0, common_1.toFixed)(Number(p1) / 2, 3);
172
+ const rs = r.toString();
173
+ return `${rs}px`;
174
+ }
175
+ return match;
176
+ });
177
+ decl.value = value;
178
+ }
179
+ else {
180
+ const value = decl.value.replace(pxRegex, (match, p1) => {
181
+ if (p1 !== null && p1 !== undefined) {
182
+ return `${Number(p1) * 2}px`;
183
+ }
184
+ return match;
185
+ });
186
+ decl.value = value;
187
+ }
188
+ decl[rem2pxSym] = true;
189
+ },
190
+ };
191
+ };
192
+ rem2PxPlugin.postcss = true;
193
+ function convertLowCodesStyle(value, isUpgrade) {
194
+ const result = (0, postcss_1.default)([rem2PxPlugin({ isUpgrade })]).process(value.code, {
195
+ syntax: postcss_less_1.default,
196
+ });
197
+ value.code = result.css;
198
+ return value;
199
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/cals",
3
- "version": "1.0.43",
3
+ "version": "1.0.45",
4
4
  "description": "Common application specifications",
5
5
  "main": "lib/utils/index.js",
6
6
  "source": "src/utils/index.ts",
@@ -44,7 +44,7 @@
44
44
  "postcss-less": "^6.0.0"
45
45
  },
46
46
  "devDependencies": {
47
- "@tcwd/dev-tools": "^1.0.1",
47
+ "@tcwd/dev-tools": "workspace:^",
48
48
  "@types/acorn": "^4.0.5",
49
49
  "@types/jest": "^27.4.0",
50
50
  "@types/lodash": "^4.14.168",
@@ -63,4 +63,4 @@
63
63
  "typescript": "^4.7.4",
64
64
  "typescript-json-schema": "^0.53.0"
65
65
  }
66
- }
66
+ }