@next-core/brick-kit 2.122.4 → 2.122.7

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.
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/asyncToGenerator'), require('@babel/runtime/helpers/defineProperty'), require('@babel/runtime/helpers/objectSpread2'), require('antd'), require('@next-core/easyops-analytics'), require('react'), require('@next-core/brick-http'), require('@ant-design/icons'), require('i18next'), require('history'), require('@babel/runtime/helpers/objectWithoutProperties'), require('@next-core/brick-utils'), require('lodash'), require('moment'), require('@next-core/pipes'), require('js-yaml'), require('react-i18next'), require('@babel/runtime/helpers/esm/extends'), require('@next-core/illustrations'), require('@babel/runtime/helpers/decorate')) :
3
3
  typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/asyncToGenerator', '@babel/runtime/helpers/defineProperty', '@babel/runtime/helpers/objectSpread2', 'antd', '@next-core/easyops-analytics', 'react', '@next-core/brick-http', '@ant-design/icons', 'i18next', 'history', '@babel/runtime/helpers/objectWithoutProperties', '@next-core/brick-utils', 'lodash', 'moment', '@next-core/pipes', 'js-yaml', 'react-i18next', '@babel/runtime/helpers/esm/extends', '@next-core/illustrations', '@babel/runtime/helpers/decorate'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.BrickKit = {}, global._asyncToGenerator$4, global._defineProperty$1, global._objectSpread, global.antd, global.easyopsAnalytics, global.React, global.brickHttp, global.icons, global.i18next, global.history$1, global._objectWithoutProperties, global.brickUtils, global.lodash, global.moment, global.pipes, global.yaml, global.reactI18next, global._extends, global.illustrations, global._decorate));
5
- })(this, (function (exports, _asyncToGenerator$4, _defineProperty$1, _objectSpread, antd, easyopsAnalytics, React, brickHttp, icons, i18next, history$1, _objectWithoutProperties, brickUtils, lodash, moment, pipes, yaml, reactI18next, _extends, illustrations, _decorate) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.BrickKit = {}, global._asyncToGenerator$4, global._defineProperty$1, global._objectSpread, global.antd, global.easyopsAnalytics, global.React, global.brickHttp, global.icons, global.i18next, global.history$1, global._objectWithoutProperties, global.brickUtils, global._, global.moment, global.pipes, global.yaml, global.reactI18next, global._extends, global.illustrations, global._decorate));
5
+ })(this, (function (exports, _asyncToGenerator$4, _defineProperty$1, _objectSpread, antd, easyopsAnalytics, React, brickHttp, icons, i18next, history$1, _objectWithoutProperties, brickUtils, _, moment, pipes, yaml, reactI18next, _extends, illustrations, _decorate) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -12,7 +12,7 @@
12
12
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
13
  var i18next__default = /*#__PURE__*/_interopDefaultLegacy(i18next);
14
14
  var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
15
- var lodash__default = /*#__PURE__*/_interopDefaultLegacy(lodash);
15
+ var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
16
16
  var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
17
17
  var yaml__default = /*#__PURE__*/_interopDefaultLegacy(yaml);
18
18
  var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
@@ -607,7 +607,7 @@
607
607
  return delegateMethods(Object, ["entries", "fromEntries", "keys", "values"]);
608
608
 
609
609
  case "_":
610
- return Object.fromEntries(Object.entries(lodash__default["default"]).filter(entry => !shouldOmitInLodash.has(entry[0])).concat(mock ? [["uniqueId", prefix => "".concat(prefix !== null && prefix !== void 0 ? prefix : "", "42")]] : []));
610
+ return Object.fromEntries(Object.entries(___default["default"]).filter(entry => !shouldOmitInLodash.has(entry[0])).concat(mock ? [["uniqueId", prefix => "".concat(prefix !== null && prefix !== void 0 ? prefix : "", "42")]] : []));
611
611
 
612
612
  case "moment":
613
613
  return Object.assign(function () {
@@ -936,7 +936,7 @@
936
936
  var result = preprocessTransformProperties(data, to, from, mapArray, options);
937
937
 
938
938
  for (var [propName, propValue] of Object.entries(result)) {
939
- lodash.set(props, propName, propValue);
939
+ _.set(props, propName, propValue);
940
940
  }
941
941
 
942
942
  return props;
@@ -1037,7 +1037,7 @@
1037
1037
 
1038
1038
  function preprocessTransformProperties(data, to, from, mapArray, options) {
1039
1039
  var props = {};
1040
- var processedData = from ? lodash.get(data, from) : data;
1040
+ var processedData = from ? _.get(data, from) : data;
1041
1041
 
1042
1042
  if (Array.isArray(to)) {
1043
1043
  for (var item of to) {
@@ -1080,7 +1080,7 @@
1080
1080
  return;
1081
1081
  }
1082
1082
 
1083
- var fromData = from ? lodash.get(data, from) : data;
1083
+ var fromData = from ? _.get(data, from) : data;
1084
1084
  var isArray = Array.isArray(fromData);
1085
1085
 
1086
1086
  if (!isArray && mapArray === true) {
@@ -1108,7 +1108,7 @@
1108
1108
 
1109
1109
 
1110
1110
  function transformIntermediateData(data, to, from, mapArray) {
1111
- var intermediateData = from ? lodash.get(data, from) : data;
1111
+ var intermediateData = from ? _.get(data, from) : data;
1112
1112
 
1113
1113
  if (!to) {
1114
1114
  return intermediateData;
@@ -1418,7 +1418,7 @@
1418
1418
  function _validatePermissions() {
1419
1419
  _validatePermissions = _asyncToGenerator__default["default"](function* (usedActions) {
1420
1420
  // Do not request known actions.
1421
- var actions = lodash.difference(usedActions, Array.from(permissionMap.keys()));
1421
+ var actions = _.difference(usedActions, Array.from(permissionMap.keys()));
1422
1422
 
1423
1423
  if (actions.length === 0) {
1424
1424
  return;
@@ -1553,7 +1553,7 @@
1553
1553
  return collectCoverage ? fakeImageFactory() : widgetId ? widgetImagesFactory(widgetId) : imagesFactory(app.id, app.isBuildPush);
1554
1554
 
1555
1555
  case "I18N":
1556
- return collectCoverage ? lodash.identity : widgetId ? widgetI18nFactory(widgetId) : i18next.getFixedT(null, getI18nNamespace("app", app.id));
1556
+ return collectCoverage ? _.identity : widgetId ? widgetI18nFactory(widgetId) : i18next.getFixedT(null, getI18nNamespace("app", app.id));
1557
1557
 
1558
1558
  case "I18N_TEXT":
1559
1559
  return collectCoverage ? fakeI18nText : i18nText;
@@ -2132,7 +2132,7 @@
2132
2132
 
2133
2133
  _defineProperty__default["default"](this, "state", void 0);
2134
2134
 
2135
- _defineProperty__default["default"](this, "id", lodash.uniqueId("tpl-ctx-"));
2135
+ _defineProperty__default["default"](this, "id", _.uniqueId("tpl-ctx-"));
2136
2136
 
2137
2137
  this.brick = brick;
2138
2138
  tplContextMap.set(this.id, this);
@@ -2364,7 +2364,7 @@
2364
2364
  return hash ? hash.substr(1) : null;
2365
2365
 
2366
2366
  case "APP":
2367
- return _objectSpread__default["default"](_objectSpread__default["default"]({}, lodash.cloneDeep(app)), {}, {
2367
+ return _objectSpread__default["default"](_objectSpread__default["default"]({}, _.cloneDeep(app)), {}, {
2368
2368
  getMenu
2369
2369
  });
2370
2370
 
@@ -2558,7 +2558,7 @@
2558
2558
  }
2559
2559
 
2560
2560
  function propertyMergeAllOfArray(_ref, object) {
2561
- var _, _proxy$mergeArgs;
2561
+ var _$1, _proxy$mergeArgs;
2562
2562
 
2563
2563
  var {
2564
2564
  baseValue,
@@ -2592,14 +2592,14 @@
2592
2592
 
2593
2593
  case "insertAt":
2594
2594
  // Defaults to `-1`.
2595
- position = (_ = (_proxy$mergeArgs = proxy.mergeArgs) === null || _proxy$mergeArgs === void 0 ? void 0 : _proxy$mergeArgs[0]) !== null && _ !== void 0 ? _ : -1;
2595
+ position = (_$1 = (_proxy$mergeArgs = proxy.mergeArgs) === null || _proxy$mergeArgs === void 0 ? void 0 : _proxy$mergeArgs[0]) !== null && _$1 !== void 0 ? _$1 : -1;
2596
2596
 
2597
2597
  if (position < 0) {
2598
2598
  // It's counted from the end if position is negative.
2599
2599
  position += quasis.length;
2600
2600
  }
2601
2601
 
2602
- position = lodash.clamp(position, 0, computedBaseValue.length);
2602
+ position = _.clamp(position, 0, computedBaseValue.length);
2603
2603
  break;
2604
2604
  // istanbul ignore next: should never reach
2605
2605
 
@@ -2704,7 +2704,7 @@
2704
2704
 
2705
2705
  var expandableSlot = quasisMap.get(item.refSlot);
2706
2706
  var refPosition = (_item$refPosition = item.refPosition) !== null && _item$refPosition !== void 0 ? _item$refPosition : -1;
2707
- expandableSlot[lodash.clamp(refPosition < 0 ? expandableSlot.length + refPosition : refPosition, 0, expandableSlot.length - 1)].push(...((_externalSlots$item$$ = externalSlots === null || externalSlots === void 0 ? void 0 : (_externalSlots$item$$2 = externalSlots[item.$$reversedRef]) === null || _externalSlots$item$$2 === void 0 ? void 0 : _externalSlots$item$$2.bricks) !== null && _externalSlots$item$$ !== void 0 ? _externalSlots$item$$ : []));
2707
+ expandableSlot[_.clamp(refPosition < 0 ? expandableSlot.length + refPosition : refPosition, 0, expandableSlot.length - 1)].push(...((_externalSlots$item$$ = externalSlots === null || externalSlots === void 0 ? void 0 : (_externalSlots$item$$2 = externalSlots[item.$$reversedRef]) === null || _externalSlots$item$$2 === void 0 ? void 0 : _externalSlots$item$$2.bricks) !== null && _externalSlots$item$$ !== void 0 ? _externalSlots$item$$ : []));
2708
2708
  }
2709
2709
  }
2710
2710
 
@@ -2859,7 +2859,7 @@
2859
2859
  brick.textContent = propValue;
2860
2860
  } else {
2861
2861
  if (extractProps) {
2862
- lodash.set(brick, propName, propValue);
2862
+ _.set(brick, propName, propValue);
2863
2863
  } else {
2864
2864
  brick[propName] = propValue;
2865
2865
  }
@@ -2930,7 +2930,7 @@
2930
2930
  var defaultCollapsed = (_menuBar$menu = menuBar.menu) === null || _menuBar$menu === void 0 ? void 0 : _menuBar$menu.defaultCollapsed;
2931
2931
  var menu = yield processMenu(menuBar.menuId, context, kernel, hasSubMenu);
2932
2932
 
2933
- if (!lodash.isNil(defaultCollapsed)) {
2933
+ if (!_.isNil(defaultCollapsed)) {
2934
2934
  menu.defaultCollapsed = defaultCollapsed;
2935
2935
  }
2936
2936
 
@@ -3202,7 +3202,7 @@
3202
3202
  }
3203
3203
 
3204
3204
  function sortMenuItems(list) {
3205
- return lodash.sortBy(list, item => {
3205
+ return _.sortBy(list, item => {
3206
3206
  var _item$sort;
3207
3207
 
3208
3208
  return (_item$sort = item.sort) !== null && _item$sort !== void 0 ? _item$sort : -Infinity;
@@ -3383,6 +3383,11 @@
3383
3383
  function _dev_only_updateSnippetPreviewSettings(appId, snippetData) {
3384
3384
  kernel._dev_only_updateSnippetPreviewSettings(appId, snippetData);
3385
3385
  }
3386
+ /* istanbul ignore next */
3387
+
3388
+ function _dev_only_updateFormPreviewSettings(appId, formId, settings) {
3389
+ kernel._dev_only_updateFormPreviewSettings(appId, formId, settings);
3390
+ }
3386
3391
  class Runtime {
3387
3392
  constructor() {
3388
3393
  _defineProperty__default["default"](this, "registerBrickTemplate", registerBrickTemplate);
@@ -6842,7 +6847,7 @@
6842
6847
  var app = storyboard.app;
6843
6848
 
6844
6849
  if (app) {
6845
- app.config = brickUtils.deepFreeze(lodash.merge({}, app.defaultConfig, app.userConfig));
6850
+ app.config = brickUtils.deepFreeze(_.merge({}, app.defaultConfig, app.userConfig));
6846
6851
 
6847
6852
  if (app.locales) {
6848
6853
  (function () {
@@ -7948,6 +7953,9 @@
7948
7953
  }
7949
7954
  }
7950
7955
 
7956
+ var formRenderer = "form-renderer.form-renderer";
7957
+ var filterProperties = ["brick", "slots", "properties", "events", "if", "context", "bricks", "mountPoint"];
7958
+
7951
7959
  class Kernel {
7952
7960
  constructor() {
7953
7961
  var _this = this;
@@ -8280,7 +8288,7 @@
8280
8288
  path: previewPath,
8281
8289
  bricks: [_objectSpread__default["default"]({
8282
8290
  brick: templateId
8283
- }, lodash.pick(settings, "properties", "events", "lifeCycle", "context"))],
8291
+ }, _.pick(settings, "properties", "events", "lifeCycle", "context"))],
8284
8292
  menu: false,
8285
8293
  exact: true
8286
8294
  };
@@ -8316,6 +8324,31 @@
8316
8324
  }
8317
8325
  }
8318
8326
 
8327
+ _dev_only_updateFormPreviewSettings(appId, formId, formData) {
8328
+ var {
8329
+ routes
8330
+ } = this.bootstrapData.storyboards.find(item => item.app.id === appId);
8331
+ var previewPath = "${APP.homepage}/_dev_only_/form-preview/".concat(formId);
8332
+ var previewRouteIndex = routes.findIndex(route => route.path === previewPath);
8333
+ var newPreviewRoute = {
8334
+ path: previewPath,
8335
+ bricks: [{
8336
+ brick: formRenderer,
8337
+ properties: {
8338
+ formData: formData
8339
+ }
8340
+ }],
8341
+ menu: false,
8342
+ exact: true
8343
+ };
8344
+
8345
+ if (previewRouteIndex === -1) {
8346
+ routes.unshift(newPreviewRoute);
8347
+ } else {
8348
+ routes.splice(previewRouteIndex, 1, newPreviewRoute);
8349
+ }
8350
+ }
8351
+
8319
8352
  loadDepsOfStoryboard(storyboard) {
8320
8353
  return this.gracefullyLoadDeps(this._loadDepsOfStoryboard, storyboard);
8321
8354
  }
@@ -8611,7 +8644,7 @@
8611
8644
  return [];
8612
8645
  }
8613
8646
 
8614
- return lodash.sortBy(allRelatedApps.filter(item => item.objectId === thisApp.objectId), ["order"]);
8647
+ return _.sortBy(allRelatedApps.filter(item => item.objectId === thisApp.objectId), ["order"]);
8615
8648
  })();
8616
8649
  }
8617
8650
 
@@ -8680,7 +8713,7 @@
8680
8713
 
8681
8714
  var currentAppId = this.currentApp.id;
8682
8715
  var currentStoryboard = this.bootstrapData.storyboards.find(storyboard => storyboard.app.id === currentAppId);
8683
- return ((_cloneDeep = lodash.cloneDeep((_currentStoryboard$me = currentStoryboard.meta) === null || _currentStoryboard$me === void 0 ? void 0 : _currentStoryboard$me.menus)) !== null && _cloneDeep !== void 0 ? _cloneDeep : []).filter(menu => menu.menuId === menuId).map(menu => _objectSpread__default["default"](_objectSpread__default["default"]({}, menu), {}, {
8716
+ return ((_cloneDeep = _.cloneDeep((_currentStoryboard$me = currentStoryboard.meta) === null || _currentStoryboard$me === void 0 ? void 0 : _currentStoryboard$me.menus)) !== null && _cloneDeep !== void 0 ? _cloneDeep : []).filter(menu => menu.menuId === menuId).map(menu => _objectSpread__default["default"](_objectSpread__default["default"]({}, menu), {}, {
8684
8717
  app: [{
8685
8718
  appId: currentAppId
8686
8719
  }]
@@ -9016,6 +9049,299 @@
9016
9049
  }
9017
9050
  }
9018
9051
 
9052
+ function ExpandCustomForm(formData, brickConf) {
9053
+ var errorBrick = {
9054
+ brick: "presentational-bricks.brick-illustration",
9055
+ properties: {
9056
+ category: "default",
9057
+ header: {
9058
+ title: "参数错误"
9059
+ },
9060
+ mode: "guide",
9061
+ name: "search-empty"
9062
+ }
9063
+ };
9064
+
9065
+ try {
9066
+ var formStoryboard = getStoryboard([formData.formSchema], [], formData.fields);
9067
+ formStoryboard[0] = ___default["default"].isEmpty(formStoryboard[0]) ? errorBrick : formStoryboard[0];
9068
+ return _objectSpread__default["default"](_objectSpread__default["default"]({}, brickConf), {}, {
9069
+ brick: "div",
9070
+ slots: {
9071
+ "": {
9072
+ bricks: formStoryboard,
9073
+ type: "bricks"
9074
+ }
9075
+ }
9076
+ });
9077
+ } catch (error) {
9078
+ // eslint-disable-next-line no-console
9079
+ console.warn(error.message);
9080
+ return {
9081
+ brick: "div",
9082
+ slots: {
9083
+ "": {
9084
+ bricks: [errorBrick],
9085
+ type: "bricks"
9086
+ }
9087
+ }
9088
+ };
9089
+ }
9090
+ }
9091
+ function getDefaultProperties(_name, fields) {
9092
+ var field = fields.filter(item => item.id === _name)[0];
9093
+ var defaultValue = {};
9094
+
9095
+ if (field) {
9096
+ switch (field.type) {
9097
+ case "STRING":
9098
+ defaultValue = {
9099
+ brick: "forms.general-input",
9100
+ properties: {
9101
+ id: field.id,
9102
+ name: field.id,
9103
+ label: field.name,
9104
+ readOnly: field.limit.includes("readOnly"),
9105
+ required: field.limit.includes("required"),
9106
+ placeholder: field.description
9107
+ }
9108
+ };
9109
+ break;
9110
+
9111
+ case "INT":
9112
+ defaultValue = {
9113
+ brick: "forms.general-input-number",
9114
+ properties: {
9115
+ id: field.id,
9116
+ name: field.id,
9117
+ label: field.name,
9118
+ readOnly: field.limit.includes("readOnly"),
9119
+ required: field.limit.includes("required"),
9120
+ placeholder: field.description,
9121
+ precision: 0,
9122
+ inputBoxStyle: {
9123
+ width: "100%"
9124
+ }
9125
+ }
9126
+ };
9127
+ break;
9128
+
9129
+ case "BOOLEAN":
9130
+ defaultValue = {
9131
+ brick: "forms.general-switch",
9132
+ properties: {
9133
+ id: field.id,
9134
+ name: field.id,
9135
+ label: field.name,
9136
+ readOnly: field.limit.includes("readOnly"),
9137
+ required: field.limit.includes("required")
9138
+ }
9139
+ };
9140
+ break;
9141
+
9142
+ case "FLOAT":
9143
+ defaultValue = {
9144
+ brick: "forms.general-input-number",
9145
+ properties: {
9146
+ id: field.id,
9147
+ name: field.id,
9148
+ label: field.name,
9149
+ readOnly: field.limit.includes("readOnly"),
9150
+ required: field.limit.includes("required"),
9151
+ placeholder: field.description,
9152
+ inputBoxStyle: {
9153
+ width: "100%"
9154
+ }
9155
+ }
9156
+ };
9157
+ break;
9158
+
9159
+ case "ENUMERATED_SINGLE_OPTION":
9160
+ defaultValue = {
9161
+ brick: "forms.general-select",
9162
+ properties: {
9163
+ id: field.id,
9164
+ name: field.id,
9165
+ label: field.name,
9166
+ readOnly: field.limit.includes("readOnly"),
9167
+ required: field.limit.includes("required"),
9168
+ options: [{
9169
+ label: "选项一",
9170
+ value: 1
9171
+ }, {
9172
+ label: "选项二",
9173
+ value: 2
9174
+ }],
9175
+ placeholder: field.description,
9176
+ inputBoxStyle: {
9177
+ width: "100%"
9178
+ }
9179
+ }
9180
+ };
9181
+ break;
9182
+
9183
+ case "SELECT_MULTIPLE_ENUMERATED_TYPE":
9184
+ defaultValue = {
9185
+ brick: "forms.general-select",
9186
+ properties: {
9187
+ id: field.id,
9188
+ name: field.id,
9189
+ label: field.name,
9190
+ readOnly: field.limit.includes("readOnly"),
9191
+ required: field.limit.includes("required"),
9192
+ mode: "multiple",
9193
+ options: [{
9194
+ label: "选项一",
9195
+ value: 1
9196
+ }, {
9197
+ label: "选项二",
9198
+ value: 2
9199
+ }],
9200
+ placeholder: field.description,
9201
+ inputBoxStyle: {
9202
+ width: "100%"
9203
+ }
9204
+ }
9205
+ };
9206
+ break;
9207
+
9208
+ case "DATE":
9209
+ defaultValue = {
9210
+ brick: "forms.general-date-picker",
9211
+ properties: {
9212
+ id: field.id,
9213
+ name: field.id,
9214
+ label: field.name,
9215
+ readOnly: field.limit.includes("readOnly"),
9216
+ required: field.limit.includes("required"),
9217
+ placeholder: field.description
9218
+ }
9219
+ };
9220
+ break;
9221
+
9222
+ case "TIME":
9223
+ defaultValue = {
9224
+ brick: "forms.general-date-picker",
9225
+ properties: {
9226
+ id: field.id,
9227
+ name: field.id,
9228
+ label: field.name,
9229
+ readOnly: field.limit.includes("readOnly"),
9230
+ required: field.limit.includes("required"),
9231
+ placeholder: field.description
9232
+ }
9233
+ };
9234
+ break;
9235
+
9236
+ case "IP":
9237
+ defaultValue = {
9238
+ brick: "forms.general-input",
9239
+ properties: {
9240
+ id: field.id,
9241
+ name: field.id,
9242
+ label: field.name,
9243
+ readOnly: field.limit.includes("readOnly"),
9244
+ required: field.limit.includes("required"),
9245
+ placeholder: field.description,
9246
+ pattern: /((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/
9247
+ }
9248
+ };
9249
+ break;
9250
+
9251
+ case "JSON":
9252
+ defaultValue = {};
9253
+ break;
9254
+
9255
+ case "ARRAY":
9256
+ defaultValue = {};
9257
+ break;
9258
+
9259
+ case "STRUCTURE":
9260
+ defaultValue = {
9261
+ brick: "forms.cmdb-instance-select-panel",
9262
+ properties: {
9263
+ id: field.id,
9264
+ name: field.id,
9265
+ label: field.name,
9266
+ readOnly: field.limit.includes("readOnly"),
9267
+ required: field.limit.includes("required")
9268
+ }
9269
+ };
9270
+ break;
9271
+
9272
+ case "STRUCTURE_ARRAY":
9273
+ defaultValue = {
9274
+ brick: "forms.cmdb-instance-select-panel",
9275
+ properties: {
9276
+ id: field.id,
9277
+ name: field.id,
9278
+ label: field.name,
9279
+ readOnly: field.limit.includes("readOnly"),
9280
+ required: field.limit.includes("required")
9281
+ }
9282
+ };
9283
+ break;
9284
+
9285
+ default:
9286
+ defaultValue = {
9287
+ brick: "forms.general-input",
9288
+ properties: {
9289
+ id: field.id,
9290
+ name: field.id,
9291
+ label: field.name,
9292
+ readOnly: field.limit.includes("readOnly"),
9293
+ required: field.limit.includes("required"),
9294
+ placeholder: field.description
9295
+ }
9296
+ };
9297
+ break;
9298
+ }
9299
+ }
9300
+
9301
+ return defaultValue;
9302
+ }
9303
+ function getStoryboard(datasource, result, fields) {
9304
+ var _loop = function (i) {
9305
+ var dataItem = datasource[i];
9306
+ var resultItem = {}; //数据初始化:根据id,字段类型获取默认属性
9307
+
9308
+ var defaultProperties = getDefaultProperties(dataItem.id, fields); //数据初始化:与默认属性进行合并
9309
+
9310
+ Object.keys(defaultProperties).forEach(item => {
9311
+ if (!dataItem[item]) {
9312
+ dataItem[item] = defaultProperties[item];
9313
+ } else if (dataItem[item] && typeof dataItem[item] === "object") {
9314
+ dataItem[item] = _objectSpread__default["default"](_objectSpread__default["default"]({}, defaultProperties[item]), dataItem[item]);
9315
+ }
9316
+ });
9317
+ Object.keys(dataItem).forEach(item => {
9318
+ if (filterProperties.includes(item)) {
9319
+ resultItem[item] = dataItem[item];
9320
+ }
9321
+ });
9322
+
9323
+ if (Array.isArray(dataItem.bricks)) {
9324
+ var _Object$keys;
9325
+
9326
+ resultItem["slots"] = ___default["default"].groupBy(getStoryboard(dataItem.bricks, [], fields), "mountPoint");
9327
+ (_Object$keys = Object.keys(resultItem["slots"])) === null || _Object$keys === void 0 ? void 0 : _Object$keys.forEach(item => {
9328
+ resultItem.slots[item] = {
9329
+ bricks: resultItem.slots[item],
9330
+ type: "bricks"
9331
+ };
9332
+ });
9333
+ }
9334
+
9335
+ result[i] = resultItem;
9336
+ };
9337
+
9338
+ for (var i = 0; i < datasource.length; i++) {
9339
+ _loop(i);
9340
+ }
9341
+
9342
+ return result;
9343
+ }
9344
+
9019
9345
  class LocationContext {
9020
9346
  constructor(kernel, location) {
9021
9347
  _defineProperty__default["default"](this, "query", void 0);
@@ -9132,7 +9458,7 @@
9132
9458
  // This enables two apps with relationship of parent-child of homepage.
9133
9459
 
9134
9460
 
9135
- var sortedStoryboards = lodash.orderBy(storyboards, storyboard => {
9461
+ var sortedStoryboards = _.orderBy(storyboards, storyboard => {
9136
9462
  var _storyboard$app$homep, _storyboard$app, _storyboard$app$homep2;
9137
9463
 
9138
9464
  return (_storyboard$app$homep = (_storyboard$app = storyboard.app) === null || _storyboard$app === void 0 ? void 0 : (_storyboard$app$homep2 = _storyboard$app.homepage) === null || _storyboard$app$homep2 === void 0 ? void 0 : _storyboard$app$homep2.length) !== null && _storyboard$app$homep !== void 0 ? _storyboard$app$homep : 0;
@@ -9300,7 +9626,7 @@
9300
9626
  } // 静态菜单配置,仅在有值时才设置,这样可以让菜单设置也具有按路由层级覆盖的能力。
9301
9627
 
9302
9628
 
9303
- var otherMenuConf = lodash.omit(menuConf, ["injectDeep", "type"]);
9629
+ var otherMenuConf = _.omit(menuConf, ["injectDeep", "type"]);
9304
9630
  var injectedMenuConf = injectDeep !== false ? computeRealValue(otherMenuConf, context, true) : otherMenuConf;
9305
9631
  var {
9306
9632
  sidebarMenu,
@@ -9478,7 +9804,7 @@
9478
9804
  if (brickConf[symbolForComputedPropsFromProxy]) {
9479
9805
  Object.entries(brickConf[symbolForComputedPropsFromProxy]).forEach(_ref2 => {
9480
9806
  var [propName, propValue] = _ref2;
9481
- lodash.set(brick.properties, propName, propValue);
9807
+ _.set(brick.properties, propName, propValue);
9482
9808
  });
9483
9809
  }
9484
9810
 
@@ -9512,6 +9838,12 @@
9512
9838
  yield _this6.kernel.loadDynamicBricksInBrickConf(expandedBrickConf);
9513
9839
  }
9514
9840
 
9841
+ if (brick.type === formRenderer) {
9842
+ var formData = brick.properties.formData;
9843
+ expandedBrickConf = ExpandCustomForm(formData, brickConf);
9844
+ yield _this6.kernel.loadDynamicBricksInBrickConf(expandedBrickConf);
9845
+ }
9846
+
9515
9847
  if (expandedBrickConf.exports) {
9516
9848
  for (var [prop, ctxName] of Object.entries(expandedBrickConf.exports)) {
9517
9849
  if (typeof ctxName === "string" && ctxName.startsWith("CTX.")) {
@@ -9901,7 +10233,7 @@
9901
10233
  function _fetchData() {
9902
10234
  _fetchData = _asyncToGenerator__default["default"](function* () {
9903
10235
  var value = yield promise;
9904
- data = field === null || field === undefined ? value : lodash.get(value, field); // The fetched data and its inner objects should never be *injected* again.
10236
+ data = field === null || field === undefined ? value : _.get(value, field); // The fetched data and its inner objects should never be *injected* again.
9905
10237
 
9906
10238
  recursiveMarkAsInjected(data);
9907
10239
  });
@@ -10142,7 +10474,7 @@
10142
10474
  function _fetchData() {
10143
10475
  _fetchData = _asyncToGenerator__default["default"](function* () {
10144
10476
  var value = yield promise;
10145
- data = field === null || field === undefined ? value : lodash.get(value, field); // The fetched data and its inner objects should never be *injected* again.
10477
+ data = field === null || field === undefined ? value : _.get(value, field); // The fetched data and its inner objects should never be *injected* again.
10146
10478
 
10147
10479
  recursiveMarkAsInjected(data);
10148
10480
  });
@@ -10282,6 +10614,15 @@
10282
10614
  return;
10283
10615
  };
10284
10616
 
10617
+ function registerFormRenderer() {
10618
+ customElements.get(formRenderer) || customElements.define(formRenderer, class FormElement extends HTMLElement {
10619
+ get $$typeof() {
10620
+ return "formRenderer";
10621
+ }
10622
+
10623
+ });
10624
+ }
10625
+
10285
10626
  class Router {
10286
10627
  constructor(kernel) {
10287
10628
  _defineProperty__default["default"](this, "defaultCollapsed", false);
@@ -10454,7 +10795,7 @@
10454
10795
  var _apiAnalyzer$getInsta, _getLocalAppsTheme;
10455
10796
 
10456
10797
  _this3.state = "initial";
10457
- _this3.renderId = lodash.uniqueId("render-id-");
10798
+ _this3.renderId = _.uniqueId("render-id-");
10458
10799
  resetAllInjected();
10459
10800
  clearPollTimeout();
10460
10801
 
@@ -10490,6 +10831,7 @@
10490
10831
 
10491
10832
  registerStoryboardFunctions((_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.functions, storyboard.app);
10492
10833
  registerMock((_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.mocks);
10834
+ registerFormRenderer();
10493
10835
  collectContract((_storyboard$meta3 = storyboard.meta) === null || _storyboard$meta3 === void 0 ? void 0 : _storyboard$meta3.contracts);
10494
10836
  }
10495
10837
 
@@ -10549,23 +10891,8 @@
10549
10891
  };
10550
10892
 
10551
10893
  try {
10552
- var specificTemplatePreviewIndex = lodash.findLastIndex(storyboard.routes, route => route.path.startsWith("${APP.homepage}/_dev_only_/template-preview/"));
10553
- var specificSnippetPreviewIndex = lodash.findLastIndex(storyboard.routes, route => route.path.startsWith("${APP.homepage}/_dev_only_/snippet-preview/"));
10554
- var mergedRoutes = [...storyboard.routes.slice(0, specificTemplatePreviewIndex + 1), ...storyboard.routes.slice(0, specificSnippetPreviewIndex + 1), {
10555
- path: "${APP.homepage}/_dev_only_/template-preview/:templateId",
10556
- bricks: [{
10557
- brick: "span"
10558
- }],
10559
- menu: false,
10560
- exact: true
10561
- }, {
10562
- path: "${APP.homepage}/_dev_only_/snippet-preview/:snippetId",
10563
- bricks: [{
10564
- brick: "span"
10565
- }],
10566
- menu: false,
10567
- exact: true
10568
- }, ...storyboard.routes.slice(specificTemplatePreviewIndex + 1)];
10894
+ var mergedRoutes = _this3.MergePreviewRouter(storyboard.routes);
10895
+
10569
10896
  yield locationContext.mountRoutes(mergedRoutes, undefined, mountRoutesResult);
10570
10897
  } catch (error) {
10571
10898
  // eslint-disable-next-line no-console
@@ -10775,6 +11102,50 @@
10775
11102
  subMenu: mountResult.menuBar.subMenu
10776
11103
  };
10777
11104
  }
11105
+
11106
+ MergePreviewRouter(router) {
11107
+ var mergedRoutes = router;
11108
+ var specificTemplatePreviewIndex = _.findLastIndex(mergedRoutes, route => route.path.startsWith("${APP.homepage}/_dev_only_/template-preview/"));
11109
+
11110
+ if (specificTemplatePreviewIndex > -1) {
11111
+ mergedRoutes = [...mergedRoutes.slice(0, specificTemplatePreviewIndex + 1), {
11112
+ path: "${APP.homepage}/_dev_only_/template-preview/:templateId",
11113
+ bricks: [{
11114
+ brick: "span"
11115
+ }],
11116
+ menu: false,
11117
+ exact: true
11118
+ }, ...mergedRoutes.slice(specificTemplatePreviewIndex + 1)];
11119
+ }
11120
+
11121
+ var specificSnippetPreviewIndex = _.findLastIndex(mergedRoutes, route => route.path.startsWith("${APP.homepage}/_dev_only_/snippet-preview/"));
11122
+
11123
+ if (specificSnippetPreviewIndex > -1) {
11124
+ mergedRoutes = [...mergedRoutes.slice(0, specificSnippetPreviewIndex + 1), {
11125
+ path: "${APP.homepage}/_dev_only_/snippet-preview/:snippetId",
11126
+ bricks: [{
11127
+ brick: "span"
11128
+ }],
11129
+ menu: false,
11130
+ exact: true
11131
+ }, ...mergedRoutes.slice(specificSnippetPreviewIndex + 1)];
11132
+ }
11133
+
11134
+ var specificFormPreviewIndex = _.findLastIndex(mergedRoutes, route => route.path.startsWith("${APP.homepage}/_dev_only_/form-preview/"));
11135
+
11136
+ if (specificFormPreviewIndex > -1) {
11137
+ mergedRoutes = [...mergedRoutes.slice(0, specificFormPreviewIndex + 1), {
11138
+ path: "${APP.homepage}/_dev_only_/form-preview/:FormId",
11139
+ bricks: [{
11140
+ brick: "span"
11141
+ }],
11142
+ menu: false,
11143
+ exact: true
11144
+ }, ...mergedRoutes.slice(specificFormPreviewIndex + 1)];
11145
+ }
11146
+
11147
+ return mergedRoutes;
11148
+ }
10778
11149
  /* istanbul ignore next */
10779
11150
 
10780
11151
 
@@ -11774,7 +12145,7 @@
11774
12145
  if (useBrick[symbolForComputedPropsFromProxy]) {
11775
12146
  Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref3 => {
11776
12147
  var [propName, propValue] = _ref3;
11777
- lodash.set(brick.properties, propName, propValue);
12148
+ _.set(brick.properties, propName, propValue);
11778
12149
  });
11779
12150
  }
11780
12151
 
@@ -11976,7 +12347,7 @@
11976
12347
  if (useBrick[symbolForComputedPropsFromProxy]) {
11977
12348
  Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref9 => {
11978
12349
  var [propName, propValue] = _ref9;
11979
- lodash.set(brick.properties, propName, propValue);
12350
+ _.set(brick.properties, propName, propValue);
11980
12351
  });
11981
12352
  }
11982
12353
 
@@ -12450,7 +12821,7 @@
12450
12821
  isBig
12451
12822
  } = props;
12452
12823
  var theme = useCurrentTheme();
12453
- var prefix = lodash.uniqueId();
12824
+ var prefix = _.uniqueId();
12454
12825
 
12455
12826
  var createNewId = id => {
12456
12827
  return prefix + id;
@@ -13192,10 +13563,11 @@
13192
13563
  getFakeKernel: _dev_only_getFakeKernel,
13193
13564
 
13194
13565
  /** @deprecated Keep it for backward-compatibility. */
13195
- checkoutTplContext: lodash.noop,
13566
+ checkoutTplContext: _.noop,
13196
13567
  updateStoryboard: _dev_only_updateStoryboard,
13197
13568
  updateTemplatePreviewSettings: _dev_only_updateTemplatePreviewSettings,
13198
- updateSnippetPreviewSettings: _dev_only_updateSnippetPreviewSettings
13569
+ updateSnippetPreviewSettings: _dev_only_updateSnippetPreviewSettings,
13570
+ updateFormPreviewSettings: _dev_only_updateFormPreviewSettings
13199
13571
  };
13200
13572
 
13201
13573
  var _excluded$2 = ["type"];
@@ -13530,9 +13902,9 @@
13530
13902
  return e => {
13531
13903
  if (e) {
13532
13904
  if (typeof e.detail === "object" && !Array.isArray(e.detail)) {
13533
- lodash.merge(this, e.detail);
13905
+ _.merge(this, e.detail);
13534
13906
  } else {
13535
- lodash.merge(this, {
13907
+ _.merge(this, {
13536
13908
  detail: e.detail
13537
13909
  });
13538
13910
  }
@@ -13593,9 +13965,9 @@
13593
13965
  var options = React.useMemo(() => {
13594
13966
  var localOptions = {};
13595
13967
 
13596
- if (lodash.isObject(providerOrParamsOrGlobalOptions)) {
13968
+ if (_.isObject(providerOrParamsOrGlobalOptions)) {
13597
13969
  localOptions = providerOrParamsOrGlobalOptions;
13598
- } else if (lodash.isObject(gloabalOptionsOrDeps)) {
13970
+ } else if (_.isObject(gloabalOptionsOrDeps)) {
13599
13971
  localOptions = gloabalOptionsOrDeps;
13600
13972
  }
13601
13973
 
@@ -13763,13 +14135,13 @@
13763
14135
  var providerStr = provider;
13764
14136
  var providerArgs = [];
13765
14137
 
13766
- if (lodash.isString(providerOrBody)) {
14138
+ if (_.isString(providerOrBody)) {
13767
14139
  providerStr = providerOrBody;
13768
14140
  }
13769
14141
 
13770
- if (lodash.isObject(providerOrBody)) {
14142
+ if (_.isObject(providerOrBody)) {
13771
14143
  providerArgs = providerOrBody;
13772
- } else if (lodash.isObject(args)) {
14144
+ } else if (_.isObject(args)) {
13773
14145
  providerArgs = args;
13774
14146
  }
13775
14147