@byteluck-fe/model-driven-driven 2.6.0-alpha.1 → 2.6.0-alpha.6
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.
- package/dist/esm/Builder.js +113 -86
- package/dist/esm/Designer.js +128 -177
- package/dist/esm/Driven.js +547 -406
- package/dist/esm/EventLogic.js +1 -1
- package/dist/esm/Store.js +112 -89
- package/dist/esm/constants.js +8 -8
- package/dist/esm/designerUtils.js +6 -5
- package/dist/esm/index.js +6 -6
- package/dist/esm/utils.js +76 -177
- package/dist/index.umd.js +3 -3
- package/dist/types/Builder.d.ts +8 -8
- package/dist/types/Designer.d.ts +36 -36
- package/dist/types/Driven.d.ts +112 -112
- package/dist/types/EventLogic.d.ts +2 -2
- package/dist/types/Plugin.d.ts +6 -6
- package/dist/types/Store.d.ts +82 -82
- package/dist/types/constants.d.ts +6 -6
- package/dist/types/designerUtils.d.ts +4 -4
- package/dist/types/index.d.ts +8 -8
- package/dist/types/utils.d.ts +55 -55
- package/package.json +6 -6
package/dist/esm/Driven.js
CHANGED
|
@@ -20,6 +20,20 @@ function _classCallCheck(instance, Constructor) {
|
|
|
20
20
|
throw new TypeError("Cannot call a class as a function");
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
function _defineProperties(target, props) {
|
|
24
|
+
for(var i = 0; i < props.length; i++){
|
|
25
|
+
var descriptor = props[i];
|
|
26
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
27
|
+
descriptor.configurable = true;
|
|
28
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
29
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function _createClass(Constructor, protoProps, staticProps) {
|
|
33
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
34
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
35
|
+
return Constructor;
|
|
36
|
+
}
|
|
23
37
|
function _defineProperty(obj, key, value) {
|
|
24
38
|
if (key in obj) {
|
|
25
39
|
Object.defineProperty(obj, key, {
|
|
@@ -178,19 +192,19 @@ function _createSuper(Derived) {
|
|
|
178
192
|
return _possibleConstructorReturn(this, result);
|
|
179
193
|
};
|
|
180
194
|
}
|
|
181
|
-
import { CONTROL_BASE_TYPE, error, genNonDuplicateId, isArray, isBuiltInControls, isObject, isString, updateValueFromKeys, warn, Watcher } from
|
|
182
|
-
import { findInstanceDataScopeParent, Store } from
|
|
183
|
-
import { Designer } from
|
|
184
|
-
import EventLogic from
|
|
185
|
-
import { checkSchema, generatePermissions, getModelBindInfoList, toSchema } from
|
|
186
|
-
import { Group, initSettings, Tab } from
|
|
195
|
+
import { CONTROL_BASE_TYPE, error, genNonDuplicateId, isArray, isBuiltInControls, isObject, isString, updateValueFromKeys, warn, Watcher } from '@byteluck-fe/model-driven-shared';
|
|
196
|
+
import { findInstanceDataScopeParent, Store } from './Store';
|
|
197
|
+
import { Designer } from './Designer';
|
|
198
|
+
import EventLogic from './EventLogic';
|
|
199
|
+
import { checkSchema, generatePermissions, getModelBindInfoList, toSchema } from './utils';
|
|
200
|
+
import { Group, initSettings, Tab } from '@byteluck-fe/model-driven-settings';
|
|
187
201
|
// 当前正在注册的插件名称
|
|
188
|
-
var applyingPluginName =
|
|
189
|
-
/**
|
|
202
|
+
var applyingPluginName = '';
|
|
203
|
+
var Driven = /**
|
|
190
204
|
* 设计器驱动
|
|
191
|
-
* */
|
|
205
|
+
* */ /*#__PURE__*/ function(Watcher1) {
|
|
192
206
|
"use strict";
|
|
193
|
-
_inherits(Driven,
|
|
207
|
+
_inherits(Driven, Watcher1);
|
|
194
208
|
var _super = _createSuper(Driven);
|
|
195
209
|
function Driven(options) {
|
|
196
210
|
_classCallCheck(this, Driven);
|
|
@@ -206,7 +220,7 @@ var applyingPluginName = "";
|
|
|
206
220
|
// TODO 拿到permission_controls
|
|
207
221
|
_this.generatePermissions = generatePermissions;
|
|
208
222
|
_this.$options = Object.freeze(options);
|
|
209
|
-
var
|
|
223
|
+
var _$options = _this.$options, _autoMount = _$options.autoMount, autoMount = _autoMount === void 0 ? false : _autoMount, tmp = _$options.Designer, DesignerClass = tmp === void 0 ? Designer : tmp, schema = _$options.schema, _mode = _$options.mode, mode = _mode === void 0 ? 'form' : _mode, tmp1 = _$options.store, storeOptions = tmp1 === void 0 ? {} : tmp1;
|
|
210
224
|
_this.eventLogic = new EventLogic();
|
|
211
225
|
_this.designer = new DesignerClass();
|
|
212
226
|
_this.store = new Store(_objectSpread({
|
|
@@ -218,417 +232,544 @@ var applyingPluginName = "";
|
|
|
218
232
|
autoMount && _this.mount();
|
|
219
233
|
return _this;
|
|
220
234
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
if (!this.__pluginsApplied) {
|
|
231
|
-
this.__plugins.push(plugin);
|
|
232
|
-
}
|
|
233
|
-
return this;
|
|
234
|
-
};
|
|
235
|
-
_proto.applyPlugins = function applyPlugins() {
|
|
236
|
-
var _this = this;
|
|
237
|
-
if (this.__pluginsApplied) return;
|
|
238
|
-
this.__plugins.forEach(function(plugin) {
|
|
239
|
-
try {
|
|
240
|
-
var _plugin_pluginName;
|
|
241
|
-
applyingPluginName = (_plugin_pluginName = plugin.pluginName) !== null && _plugin_pluginName !== void 0 ? _plugin_pluginName : plugin.constructor.name;
|
|
242
|
-
plugin.apply(_this);
|
|
243
|
-
applyingPluginName = "";
|
|
244
|
-
} catch (e) {
|
|
245
|
-
error("".concat(applyingPluginName || plugin.constructor.name, " Plugin apply Error \n ").concat(e));
|
|
235
|
+
_createClass(Driven, [
|
|
236
|
+
{
|
|
237
|
+
key: "mount",
|
|
238
|
+
value: // 挂载
|
|
239
|
+
function mount() {
|
|
240
|
+
var _$options = this.$options, _plugins = _$options.plugins, plugins = _plugins === void 0 ? [] : _plugins;
|
|
241
|
+
this.__plugins = plugins;
|
|
242
|
+
this.applyPlugins();
|
|
243
|
+
this.isMounted = true;
|
|
246
244
|
}
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
if (!instance) {
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
this.setSelectedInstanceSetting();
|
|
275
|
-
this.emit("select", {
|
|
276
|
-
instance: instance
|
|
277
|
-
});
|
|
278
|
-
};
|
|
279
|
-
_proto.setSelectedInstanceSetting = function setSelectedInstanceSetting() {
|
|
280
|
-
var _instance_parent;
|
|
281
|
-
var instance = this.store.selected;
|
|
282
|
-
if (!instance) {
|
|
283
|
-
return;
|
|
284
|
-
}
|
|
285
|
-
var setting = this.getControlSetting(instance.type);
|
|
286
|
-
// console.log('iswrap:', instance.parent?.controlType, instance.parent)
|
|
287
|
-
// if (instance.parent instanceof DesignerWrapControl) {
|
|
288
|
-
if (((_instance_parent = instance.parent) === null || _instance_parent === void 0 ? void 0 : _instance_parent.controlType) === CONTROL_BASE_TYPE.WRAP) {
|
|
289
|
-
var _instance_parent1;
|
|
290
|
-
var wrapSetting = this.getControlSetting((_instance_parent1 = instance.parent) === null || _instance_parent1 === void 0 ? void 0 : _instance_parent1.type);
|
|
291
|
-
setting = this.concatSetting(setting, wrapSetting, instance.parent.id);
|
|
292
|
-
}
|
|
293
|
-
this.store.setSelectInstanceSettings(setting);
|
|
294
|
-
this.callSelectedEffect("");
|
|
295
|
-
// 选中触发scopeEffect
|
|
296
|
-
var payload = {
|
|
297
|
-
from: null,
|
|
298
|
-
current: this.store.selectedInstanceDataScopeParent,
|
|
299
|
-
oldParent: null,
|
|
300
|
-
newParent: instance.parent
|
|
301
|
-
};
|
|
302
|
-
this.callSelectedScopeEffect(payload);
|
|
303
|
-
};
|
|
304
|
-
_proto.concatSetting = function concatSetting(settings, otherSettings, settingFromId) {
|
|
305
|
-
var _this = this;
|
|
306
|
-
var _settings_, _otherSettings_, _settings_1, _otherSettings_1;
|
|
307
|
-
var result = settings;
|
|
308
|
-
// tab
|
|
309
|
-
if (((_settings_ = settings[0]) === null || _settings_ === void 0 ? void 0 : _settings_.type) === "tab" && ((_otherSettings_ = otherSettings[0]) === null || _otherSettings_ === void 0 ? void 0 : _otherSettings_.type) === "tab") {
|
|
310
|
-
var tabSettings = settings;
|
|
311
|
-
var otherTabSettings = otherSettings.slice(0);
|
|
312
|
-
result = tabSettings.map(function(tab, index) {
|
|
313
|
-
var result = new Tab(tab);
|
|
314
|
-
var otherTabIndex = otherTabSettings.findIndex(function(item) {
|
|
315
|
-
return item.title === tab.title;
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
key: "use",
|
|
248
|
+
value: function use(plugin) {
|
|
249
|
+
if (!this.__pluginsApplied) {
|
|
250
|
+
this.__plugins.push(plugin);
|
|
251
|
+
}
|
|
252
|
+
return this;
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
key: "applyPlugins",
|
|
257
|
+
value: function applyPlugins() {
|
|
258
|
+
var _this = this;
|
|
259
|
+
if (this.__pluginsApplied) return;
|
|
260
|
+
this.__plugins.forEach(function(plugin) {
|
|
261
|
+
try {
|
|
262
|
+
var _pluginName;
|
|
263
|
+
applyingPluginName = (_pluginName = plugin.pluginName) !== null && _pluginName !== void 0 ? _pluginName : plugin.constructor.name;
|
|
264
|
+
plugin.apply(_this);
|
|
265
|
+
applyingPluginName = '';
|
|
266
|
+
} catch (e) {
|
|
267
|
+
error("".concat(applyingPluginName || plugin.constructor.name, " Plugin apply Error \n ").concat(e));
|
|
268
|
+
}
|
|
316
269
|
});
|
|
317
|
-
|
|
270
|
+
this.__pluginsApplied = true;
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
key: "emit",
|
|
275
|
+
value: function emit(key) {
|
|
276
|
+
for(var _len = arguments.length, payload = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
277
|
+
payload[_key - 1] = arguments[_key];
|
|
278
|
+
}
|
|
279
|
+
return _get(_getPrototypeOf(Driven.prototype), "emit", this).call(this, key, payload);
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
key: "on",
|
|
284
|
+
value: function on(key, callback) {
|
|
285
|
+
return _get(_getPrototypeOf(Driven.prototype), "on", this).call(this, key, callback);
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
key: "setInstances",
|
|
290
|
+
value: function setInstances(schema, beforeCreateInstance) {
|
|
291
|
+
this.store.setInstances(this.designer.createControl(Array.isArray(schema) ? schema : [
|
|
292
|
+
schema
|
|
293
|
+
], beforeCreateInstance));
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
key: "beforeSelectInstance",
|
|
298
|
+
value: function beforeSelectInstance() {
|
|
299
|
+
this.store.setSelectInstance(null);
|
|
300
|
+
this.setSelectedFieldItem(null);
|
|
301
|
+
this.store.setSelectInstanceSettings([]);
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
key: "afterSelectInstance",
|
|
306
|
+
value: function afterSelectInstance() {
|
|
307
|
+
var instance = this.store.selected;
|
|
308
|
+
if (!instance) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
this.setSelectedInstanceSetting();
|
|
312
|
+
this.emit('select', {
|
|
313
|
+
instance: instance
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
key: "setSelectedInstanceSetting",
|
|
319
|
+
value: function setSelectedInstanceSetting() {
|
|
320
|
+
var ref;
|
|
321
|
+
var instance = this.store.selected;
|
|
322
|
+
if (!instance) {
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
var setting = this.getControlSetting(instance.type);
|
|
326
|
+
// console.log('iswrap:', instance.parent?.controlType, instance.parent)
|
|
327
|
+
// if (instance.parent instanceof DesignerWrapControl) {
|
|
328
|
+
if (((ref = instance.parent) === null || ref === void 0 ? void 0 : ref.controlType) === CONTROL_BASE_TYPE.WRAP) {
|
|
329
|
+
var ref1;
|
|
330
|
+
var wrapSetting = this.getControlSetting((ref1 = instance.parent) === null || ref1 === void 0 ? void 0 : ref1.type);
|
|
331
|
+
setting = this.concatSetting(setting, wrapSetting, instance.parent.id);
|
|
332
|
+
}
|
|
333
|
+
this.store.setSelectInstanceSettings(setting);
|
|
334
|
+
this.callSelectedEffect('');
|
|
335
|
+
// 选中触发scopeEffect
|
|
336
|
+
var payload = {
|
|
337
|
+
from: null,
|
|
338
|
+
current: this.store.selectedInstanceDataScopeParent,
|
|
339
|
+
oldParent: null,
|
|
340
|
+
newParent: instance.parent
|
|
341
|
+
};
|
|
342
|
+
this.callSelectedScopeEffect(payload);
|
|
343
|
+
}
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
key: "concatSetting",
|
|
347
|
+
value: function concatSetting(settings, otherSettings, settingFromId) {
|
|
348
|
+
var ref, ref2, ref3, ref4;
|
|
349
|
+
var result1 = settings;
|
|
350
|
+
// tab
|
|
351
|
+
if (((ref = settings[0]) === null || ref === void 0 ? void 0 : ref.type) === 'tab' && ((ref2 = otherSettings[0]) === null || ref2 === void 0 ? void 0 : ref2.type) === 'tab') {
|
|
352
|
+
var _this = this;
|
|
353
|
+
var tabSettings = settings;
|
|
354
|
+
var otherTabSettings = otherSettings.slice(0);
|
|
355
|
+
result1 = tabSettings.map(function(tab, index) {
|
|
356
|
+
var result = new Tab(tab);
|
|
357
|
+
var otherTabIndex = otherTabSettings.findIndex(function(item) {
|
|
358
|
+
return item.title === tab.title;
|
|
359
|
+
});
|
|
360
|
+
if (otherTabIndex === -1) {
|
|
361
|
+
return result;
|
|
362
|
+
}
|
|
363
|
+
var otherTab = otherTabSettings.splice(otherTabIndex, 1)[0];
|
|
364
|
+
if (otherTab) {
|
|
365
|
+
result.items = _toConsumableArray(_this.formatGroupSetting(otherTab.items, settingFromId)).concat(_toConsumableArray(result.items));
|
|
366
|
+
}
|
|
367
|
+
return result;
|
|
368
|
+
});
|
|
369
|
+
if (otherTabSettings.length) {
|
|
370
|
+
var _this1 = this;
|
|
371
|
+
result1 = _toConsumableArray(result1).concat(_toConsumableArray(otherTabSettings.map(function(item) {
|
|
372
|
+
return _this1.formatGroupSetting(item, settingFromId);
|
|
373
|
+
})));
|
|
374
|
+
}
|
|
375
|
+
// group
|
|
376
|
+
} else if (((ref3 = settings[0]) === null || ref3 === void 0 ? void 0 : ref3.type) === 'group' && ((ref4 = otherSettings[0]) === null || ref4 === void 0 ? void 0 : ref4.type) === 'group') {
|
|
377
|
+
var groupSettings = settings;
|
|
378
|
+
var otherGroupSettings = otherSettings;
|
|
379
|
+
result1 = _toConsumableArray(this.formatGroupSetting(otherGroupSettings, settingFromId)).concat(_toConsumableArray(groupSettings));
|
|
380
|
+
} else {
|
|
381
|
+
// 一个是tab,一个是group,暂时不支持
|
|
382
|
+
}
|
|
383
|
+
return result1;
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
key: "formatGroupSetting",
|
|
388
|
+
value: function formatGroupSetting(tab, fromId) {
|
|
389
|
+
if (isArray(tab)) {
|
|
390
|
+
return tab.map(function(item) {
|
|
391
|
+
var group = new Group(item);
|
|
392
|
+
group.fromId = fromId;
|
|
393
|
+
return group;
|
|
394
|
+
});
|
|
395
|
+
} else {
|
|
396
|
+
var result = new Tab(tab);
|
|
397
|
+
result.items = this.formatGroupSetting(result.items, fromId);
|
|
318
398
|
return result;
|
|
319
399
|
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
key: "setControlConfig",
|
|
404
|
+
value: function setControlConfig() {
|
|
405
|
+
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
406
|
+
args[_key] = arguments[_key];
|
|
323
407
|
}
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
});
|
|
384
|
-
};
|
|
385
|
-
_proto.moveStart = function moveStart(instance) {
|
|
386
|
-
// 移动之前,记录控件原始的位置和父级
|
|
387
|
-
var _instance = this.getInstance(instance);
|
|
388
|
-
if (_instance) {
|
|
389
|
-
this.store.setMovingInstance(_instance);
|
|
390
|
-
}
|
|
391
|
-
};
|
|
392
|
-
_proto.moveEnd = function moveEnd() {
|
|
393
|
-
var instance = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.store.movingInstance;
|
|
394
|
-
var _this_store_selected;
|
|
395
|
-
if (instance === null) return;
|
|
396
|
-
var _instance = this.getInstance(instance);
|
|
397
|
-
if (!_instance) return;
|
|
398
|
-
/*
|
|
408
|
+
var _designer;
|
|
409
|
+
return (_designer = this.designer).registerControlConfig.apply(_designer, _toConsumableArray(args));
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
key: "getControlConfig",
|
|
414
|
+
value: function getControlConfig(control) {
|
|
415
|
+
return this.designer.getControlConfig(control);
|
|
416
|
+
}
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
key: "getControlSetting",
|
|
420
|
+
value: function getControlSetting(type) {
|
|
421
|
+
var settingInit = this.designer.getControlSetting(type);
|
|
422
|
+
if (!settingInit) {
|
|
423
|
+
return [];
|
|
424
|
+
}
|
|
425
|
+
return initSettings(settingInit);
|
|
426
|
+
}
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
key: "selectInstance",
|
|
430
|
+
value: function selectInstance(instance) {
|
|
431
|
+
// 先清空上一次的store
|
|
432
|
+
this.beforeSelectInstance();
|
|
433
|
+
// 选中一个控件
|
|
434
|
+
this.store.setSelectInstance(instance);
|
|
435
|
+
// 针对这一次选中的控件初始化一些内容,并触发事件
|
|
436
|
+
this.afterSelectInstance();
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
key: "setSelectedFieldItem",
|
|
441
|
+
value: function setSelectedFieldItem(fieldItem) {
|
|
442
|
+
this.store.setSelectedFieldItem(fieldItem);
|
|
443
|
+
this.callSelectedEffect('dataBind', {
|
|
444
|
+
fieldItem: fieldItem
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
key: "moveStart",
|
|
450
|
+
value: function moveStart(instance) {
|
|
451
|
+
// 移动之前,记录控件原始的位置和父级
|
|
452
|
+
var _instance = this.getInstance(instance);
|
|
453
|
+
if (_instance) {
|
|
454
|
+
this.store.setMovingInstance(_instance);
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
key: "moveEnd",
|
|
460
|
+
value: function moveEnd() {
|
|
461
|
+
var instance = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.store.movingInstance;
|
|
462
|
+
var ref;
|
|
463
|
+
if (instance === null) return;
|
|
464
|
+
var _instance = this.getInstance(instance);
|
|
465
|
+
if (!_instance) return;
|
|
466
|
+
/*
|
|
399
467
|
移动之后,拿到控件新的位置,并触发事件, 如果是新增的控件的话,就没有原始位置和父级,
|
|
400
468
|
事件是否区分move和add
|
|
401
469
|
move是从主表移动到子表或子表移动到主表才触发,还是所有移动都触发
|
|
402
470
|
*/ var oldDataScopeParent = this.store.movingInstanceOldDataScopeParent;
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
};
|
|
428
|
-
_proto.createInstance = function createInstance(type, initSchema) {
|
|
429
|
-
return this.designer.createControlInstance(type, initSchema);
|
|
430
|
-
};
|
|
431
|
-
_proto.getInstance = function getInstance(instanceId) {
|
|
432
|
-
// if (instanceId instanceof DesignerControl) {
|
|
433
|
-
// return instanceId
|
|
434
|
-
// }
|
|
435
|
-
// return this.store.instanceIdMap.get(instanceId)
|
|
436
|
-
if (typeof instanceId === "string") {
|
|
437
|
-
return this.store.instanceIdMap.get(instanceId);
|
|
438
|
-
}
|
|
439
|
-
return instanceId;
|
|
440
|
-
};
|
|
441
|
-
_proto.getInstances = function getInstances() {
|
|
442
|
-
return this.store.flatInstances;
|
|
443
|
-
};
|
|
444
|
-
_proto.getInstancesFromType = function getInstancesFromType(type) {
|
|
445
|
-
return this.getInstances().filter(function(item) {
|
|
446
|
-
return item.type === type;
|
|
447
|
-
});
|
|
448
|
-
};
|
|
449
|
-
_proto.getDataScopeInstances = function getDataScopeInstances() {
|
|
450
|
-
return this.store.selectedDataScopeFlatInstances;
|
|
451
|
-
};
|
|
452
|
-
_proto.getDataScopeInstancesFromType = function getDataScopeInstancesFromType(type) {
|
|
453
|
-
return this.getDataScopeInstances().filter(function(item) {
|
|
454
|
-
return item.type === type;
|
|
455
|
-
});
|
|
456
|
-
};
|
|
457
|
-
_proto.updateInstancePropValue = function updateInstancePropValue(instance, propName, value, payload) {
|
|
458
|
-
var _this_store_selected;
|
|
459
|
-
var result = updateValueFromKeys(instance.props, propName, value);
|
|
460
|
-
if (!result) {
|
|
461
|
-
return;
|
|
462
|
-
}
|
|
463
|
-
// 修改dataBind的时候要更新 fieldCodeMap
|
|
464
|
-
if (propName.startsWith("dataBind")) {
|
|
465
|
-
this.store.updateDataFieldCodeMap(instance);
|
|
466
|
-
}
|
|
467
|
-
if (instance.id === ((_this_store_selected = this.store.selected) === null || _this_store_selected === void 0 ? void 0 : _this_store_selected.id)) {
|
|
468
|
-
this.callSelectedEffect(propName, payload);
|
|
469
|
-
}
|
|
470
|
-
this.emit("updated", {
|
|
471
|
-
instance: instance,
|
|
472
|
-
propName: propName,
|
|
473
|
-
value: value
|
|
474
|
-
});
|
|
475
|
-
};
|
|
476
|
-
_proto.updateInstanceProps = function updateInstanceProps(instance, props, payload) {
|
|
477
|
-
var prevKey = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "";
|
|
478
|
-
var _this = this;
|
|
479
|
-
Object.entries(props).forEach(function(param) {
|
|
480
|
-
var _param = _slicedToArray(param, 2), key = _param[0], value = _param[1];
|
|
481
|
-
var propName = "".concat(prevKey ? prevKey + "." : "").concat(key);
|
|
482
|
-
if (isObject(value)) {
|
|
483
|
-
_this.updateInstanceProps(instance, value, payload, propName);
|
|
484
|
-
} else {
|
|
485
|
-
_this.updateInstancePropValue(instance, propName, value, payload);
|
|
471
|
+
var newDataScopeParent = findInstanceDataScopeParent(_instance);
|
|
472
|
+
var oldParent = this.store.movingInstanceOldParent;
|
|
473
|
+
var newParent = _instance.parent;
|
|
474
|
+
// 移动之后清空movingInstance
|
|
475
|
+
this.store.setMovingInstance(null);
|
|
476
|
+
if (_instance.id !== ((ref = this.store.selected) === null || ref === void 0 ? void 0 : ref.id)) {
|
|
477
|
+
this.selectInstance(_instance);
|
|
478
|
+
} else {
|
|
479
|
+
this.store.setSelectInstance(_instance);
|
|
480
|
+
}
|
|
481
|
+
this.store.getFlatInstances();
|
|
482
|
+
// 结束以后
|
|
483
|
+
var payload = {
|
|
484
|
+
from: oldDataScopeParent,
|
|
485
|
+
current: newDataScopeParent,
|
|
486
|
+
oldParent: oldParent,
|
|
487
|
+
newParent: newParent
|
|
488
|
+
};
|
|
489
|
+
this.callSelectedScopeEffect(payload);
|
|
490
|
+
if (oldParent) {
|
|
491
|
+
this.emit('moved', _objectSpread({}, payload));
|
|
492
|
+
} else {
|
|
493
|
+
this.emit('joined', _objectSpread({}, payload));
|
|
494
|
+
}
|
|
486
495
|
}
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
key: "createInstance",
|
|
499
|
+
value: function createInstance(type, initSchema) {
|
|
500
|
+
return this.designer.createControlInstance(type, initSchema);
|
|
501
|
+
}
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
key: "getInstance",
|
|
505
|
+
value: function getInstance(instanceId) {
|
|
506
|
+
// if (instanceId instanceof DesignerControl) {
|
|
507
|
+
// return instanceId
|
|
508
|
+
// }
|
|
509
|
+
// return this.store.instanceIdMap.get(instanceId)
|
|
510
|
+
if (typeof instanceId === 'string') {
|
|
511
|
+
return this.store.instanceIdMap.get(instanceId);
|
|
512
|
+
}
|
|
513
|
+
return instanceId;
|
|
514
|
+
}
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
key: "getInstances",
|
|
518
|
+
value: function getInstances() {
|
|
519
|
+
return this.store.flatInstances;
|
|
520
|
+
}
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
key: "getInstancesFromType",
|
|
524
|
+
value: function getInstancesFromType(type) {
|
|
525
|
+
return this.getInstances().filter(function(item) {
|
|
526
|
+
return item.type === type;
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
key: "getDataScopeInstances",
|
|
532
|
+
value: function getDataScopeInstances() {
|
|
533
|
+
return this.store.selectedDataScopeFlatInstances;
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
key: "getDataScopeInstancesFromType",
|
|
538
|
+
value: function getDataScopeInstancesFromType(type) {
|
|
539
|
+
return this.getDataScopeInstances().filter(function(item) {
|
|
540
|
+
return item.type === type;
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
key: "updateInstancePropValue",
|
|
546
|
+
value: function updateInstancePropValue(instance, propName, value, payload) {
|
|
547
|
+
var ref;
|
|
548
|
+
var result = updateValueFromKeys(instance.props, propName, value);
|
|
549
|
+
if (!result) {
|
|
550
|
+
return;
|
|
551
|
+
}
|
|
552
|
+
// 修改dataBind的时候要更新 fieldCodeMap
|
|
553
|
+
if (propName.startsWith('dataBind')) {
|
|
554
|
+
this.store.updateDataFieldCodeMap(instance);
|
|
555
|
+
}
|
|
556
|
+
if (instance.id === ((ref = this.store.selected) === null || ref === void 0 ? void 0 : ref.id)) {
|
|
557
|
+
this.callSelectedEffect(propName, payload);
|
|
558
|
+
}
|
|
559
|
+
this.emit('updated', {
|
|
560
|
+
instance: instance,
|
|
561
|
+
propName: propName,
|
|
562
|
+
value: value
|
|
563
|
+
});
|
|
564
|
+
}
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
key: "updateInstanceProps",
|
|
568
|
+
value: function updateInstanceProps(instance, props, payload) {
|
|
569
|
+
var prevKey = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : '';
|
|
570
|
+
var _this = this;
|
|
571
|
+
Object.entries(props).forEach(function(param) {
|
|
572
|
+
var _param = _slicedToArray(param, 2), key = _param[0], value = _param[1];
|
|
573
|
+
var propName = "".concat(prevKey ? prevKey + '.' : '').concat(key);
|
|
574
|
+
if (isObject(value)) {
|
|
575
|
+
_this.updateInstanceProps(instance, value, payload, propName);
|
|
576
|
+
} else {
|
|
577
|
+
_this.updateInstancePropValue(instance, propName, value, payload);
|
|
578
|
+
}
|
|
579
|
+
});
|
|
580
|
+
}
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
key: "setInstance",
|
|
584
|
+
value: function setInstance(instance, propName, value, payload) {
|
|
585
|
+
if (isString(propName)) {
|
|
586
|
+
this.updateInstancePropValue(instance, String(propName), value, payload);
|
|
587
|
+
} else {
|
|
588
|
+
this.updateInstanceProps(instance, propName, value);
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
key: "removeInstance",
|
|
594
|
+
value: /**
|
|
497
595
|
* 删除控件
|
|
498
|
-
* */
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
596
|
+
* */ function removeInstance(instance) {
|
|
597
|
+
// 删除实例,并触发事件 removed
|
|
598
|
+
var parent = instance.parent;
|
|
599
|
+
if (!parent) {
|
|
600
|
+
return;
|
|
601
|
+
}
|
|
602
|
+
var parentList = // parent instanceof DesignerListControl &&
|
|
603
|
+
parent.controlType === CONTROL_BASE_TYPE.LIST && parent.props.headers.includes(instance) ? parent.props.headers : parent.children;
|
|
604
|
+
var index = parentList.findIndex(function(item) {
|
|
605
|
+
return item === instance;
|
|
606
|
+
});
|
|
607
|
+
index > -1 && parentList.splice(index, 1);
|
|
608
|
+
this.store.getFlatInstances();
|
|
609
|
+
this.emit('removed', {
|
|
610
|
+
instance: instance,
|
|
611
|
+
index: index,
|
|
612
|
+
parent: parent
|
|
613
|
+
});
|
|
614
|
+
}
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
key: "replaceInstance",
|
|
618
|
+
value: function replaceInstance(oldInstance, newInstance) {
|
|
619
|
+
var parent = oldInstance.parent;
|
|
620
|
+
if (!parent) {
|
|
621
|
+
return;
|
|
622
|
+
}
|
|
623
|
+
var parentList = // parent instanceof DesignerListControl &&
|
|
624
|
+
parent.controlType === CONTROL_BASE_TYPE.LIST && parent.props.headers.includes(oldInstance) ? parent.props.headers : parent.children;
|
|
625
|
+
var index = parentList.findIndex(function(item) {
|
|
626
|
+
return item === oldInstance;
|
|
627
|
+
});
|
|
628
|
+
index > -1 && parentList.splice(index, 1, newInstance);
|
|
629
|
+
this.store.getFlatInstances();
|
|
630
|
+
}
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
key: "updateInstanceType",
|
|
634
|
+
value: /**
|
|
531
635
|
* 修改控件类型
|
|
532
|
-
* */
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
636
|
+
* */ function updateInstanceType(instance, type) {
|
|
637
|
+
var schema = instance.toSchema();
|
|
638
|
+
var newInstance = this.createInstance(type, {
|
|
639
|
+
id: schema.id,
|
|
640
|
+
props: schema.props
|
|
641
|
+
});
|
|
642
|
+
if (!newInstance) {
|
|
643
|
+
warn("can‘t update instance type to ".concat(type));
|
|
644
|
+
return;
|
|
645
|
+
}
|
|
646
|
+
return newInstance;
|
|
647
|
+
}
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
key: "validate",
|
|
651
|
+
value: function validate(messages, ignore) {
|
|
652
|
+
//TODO 校验实例属性,并触发事件 before-validate 和 validated
|
|
653
|
+
return checkSchema(this.store.instance, messages, ignore);
|
|
654
|
+
}
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
key: "getCustomControlsInUse",
|
|
658
|
+
value: // 获取使用到的自定义控件
|
|
659
|
+
function getCustomControlsInUse() {
|
|
660
|
+
return this.getInstances().filter(this.assertInstanceIsCustomControl).reduce(function(result, item) {
|
|
661
|
+
if (!result.includes(item.type)) {
|
|
662
|
+
result.push(item.type);
|
|
663
|
+
}
|
|
664
|
+
return result;
|
|
665
|
+
}, []);
|
|
666
|
+
}
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
key: "assertInstanceIsCustomControl",
|
|
670
|
+
value: // 判断控件或控件类型是一个自定义控件
|
|
671
|
+
function assertInstanceIsCustomControl(instance) {
|
|
672
|
+
return !isBuiltInControls(isString(instance) ? instance : instance.type);
|
|
673
|
+
}
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
key: "judgeControlIsRegistered",
|
|
677
|
+
value: function judgeControlIsRegistered(control) {
|
|
678
|
+
return this.designer.registeredControlTypes.has(control.Designer.controlType);
|
|
679
|
+
}
|
|
680
|
+
},
|
|
681
|
+
{
|
|
682
|
+
key: "register",
|
|
683
|
+
value: function register() {
|
|
684
|
+
for(var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++){
|
|
685
|
+
arg[_key] = arguments[_key];
|
|
686
|
+
}
|
|
687
|
+
var _designer;
|
|
688
|
+
(_designer = this.designer).registerControl.apply(_designer, _toConsumableArray(arg));
|
|
689
|
+
return this;
|
|
690
|
+
}
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
key: "assertInstance",
|
|
694
|
+
value: /**
|
|
573
695
|
* 判断控件的类型,返回当前控件的正确类型
|
|
574
|
-
* */
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
696
|
+
* */ function assertInstance(instance, types) {
|
|
697
|
+
return isString(types) ? instance.type === types : types.includes(instance.type);
|
|
698
|
+
}
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
key: "getInstanceInListControl",
|
|
702
|
+
value: /**
|
|
578
703
|
* 控件在列表控件内,如明细子表或列表控件
|
|
579
|
-
* */
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
704
|
+
* */ function getInstanceInListControl(instance) {
|
|
705
|
+
var _instance = instance;
|
|
706
|
+
while(_instance){
|
|
707
|
+
// if (_instance instanceof DesignerListControl) {
|
|
708
|
+
if (_instance.controlType === CONTROL_BASE_TYPE.LIST) {
|
|
709
|
+
return true;
|
|
710
|
+
}
|
|
711
|
+
_instance = _instance.parent;
|
|
712
|
+
}
|
|
713
|
+
return false;
|
|
714
|
+
}
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
key: "getInstanceParentControl",
|
|
718
|
+
value: function getInstanceParentControl(instance, controlType) {
|
|
719
|
+
if (!instance.parent) {
|
|
720
|
+
return;
|
|
721
|
+
}
|
|
722
|
+
if (this.assertInstance(instance.parent, controlType)) {
|
|
723
|
+
return instance.parent;
|
|
724
|
+
}
|
|
725
|
+
return this.getInstanceParentControl(instance.parent, controlType);
|
|
726
|
+
}
|
|
727
|
+
},
|
|
728
|
+
{
|
|
729
|
+
key: "callSelectedEffect",
|
|
730
|
+
value: function callSelectedEffect(effectKey) {
|
|
731
|
+
var payload = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
732
|
+
var _this = this;
|
|
733
|
+
this.store.selectedInstanceSettingItems.forEach(function(setting) {
|
|
734
|
+
setting.callEffect(effectKey, _this, _objectSpread({
|
|
735
|
+
control: _this.store.selected
|
|
736
|
+
}, payload));
|
|
737
|
+
});
|
|
738
|
+
}
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
key: "callSelectedScopeEffect",
|
|
742
|
+
value: function callSelectedScopeEffect() {
|
|
743
|
+
var payload = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
744
|
+
var _this = this;
|
|
745
|
+
this.store.selectedInstanceSettingItems.forEach(function(setting) {
|
|
746
|
+
setting.callScopeEffect(_this, _objectSpread({
|
|
747
|
+
control: _this.store.selected
|
|
748
|
+
}, payload));
|
|
749
|
+
});
|
|
750
|
+
}
|
|
596
751
|
}
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
}
|
|
615
|
-
});
|
|
616
|
-
};
|
|
617
|
-
// 注册外部控件
|
|
618
|
-
Driven.register = function register() {
|
|
619
|
-
for(var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++){
|
|
620
|
-
arg[_key] = arguments[_key];
|
|
752
|
+
], [
|
|
753
|
+
{
|
|
754
|
+
key: "register",
|
|
755
|
+
value: // 注册外部控件
|
|
756
|
+
function register() {
|
|
757
|
+
for(var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++){
|
|
758
|
+
arg[_key] = arguments[_key];
|
|
759
|
+
}
|
|
760
|
+
var _Designer;
|
|
761
|
+
(_Designer = Designer).register.apply(_Designer, _toConsumableArray(arg));
|
|
762
|
+
return this;
|
|
763
|
+
}
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
key: "judgeControlIsRegistered",
|
|
767
|
+
value: function judgeControlIsRegistered(control) {
|
|
768
|
+
return Designer.staticRegisteredTypes.has(control.Designer.controlType);
|
|
769
|
+
}
|
|
621
770
|
}
|
|
622
|
-
|
|
623
|
-
(_Designer = Designer).register.apply(_Designer, _toConsumableArray(arg));
|
|
624
|
-
return this;
|
|
625
|
-
};
|
|
626
|
-
Driven.judgeControlIsRegistered = function judgeControlIsRegistered(control) {
|
|
627
|
-
return Designer.staticRegisteredTypes.has(control.Designer.controlType);
|
|
628
|
-
};
|
|
771
|
+
]);
|
|
629
772
|
return Driven;
|
|
630
773
|
}(Watcher);
|
|
631
|
-
|
|
632
|
-
* 控件事件定义
|
|
633
|
-
* */ Driven.EventLogic = EventLogic;
|
|
774
|
+
Driven.EventLogic = EventLogic;
|
|
634
775
|
export { Driven };
|