rb-document-form-constructor 0.3.2 → 0.3.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/rb-document-form-constructor.esm.js +98 -26
- package/dist/rb-document-form-constructor.min.js +2 -2
- package/dist/rb-document-form-constructor.ssr.js +102 -36
- package/package.json +2 -2
- package/src/components/DocForm.vue +37 -1
- package/src/components/DocTemplateFacetList.vue +9 -3
- package/src/components/DocTemplateFieldSidebar.vue +13 -2
- package/src/components/FieldRuleFormModal.vue +3 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Vue from 'vue';
|
|
1
2
|
import crypto from 'crypto';
|
|
2
3
|
|
|
3
4
|
const UtFormConfig = {
|
|
@@ -4855,6 +4856,12 @@ let __applyRefProps = function (input, refConfig) {
|
|
|
4855
4856
|
}
|
|
4856
4857
|
};
|
|
4857
4858
|
|
|
4859
|
+
let __filterInputsByMultiple = function (inputs, multiple) {
|
|
4860
|
+
return inputs.filter(i => {
|
|
4861
|
+
return i.multiple && multiple || !i.multiple && !multiple;
|
|
4862
|
+
});
|
|
4863
|
+
};
|
|
4864
|
+
|
|
4858
4865
|
let fcInputs = {
|
|
4859
4866
|
string: {
|
|
4860
4867
|
text: 'Текст',
|
|
@@ -4967,8 +4974,8 @@ let baseConfig = {
|
|
|
4967
4974
|
refInputConfigs: __clone(fcRefInputConfigs),
|
|
4968
4975
|
rules: [],
|
|
4969
4976
|
icons: {
|
|
4970
|
-
iconExpandFacet: 'icon-chevron-
|
|
4971
|
-
iconCollapseFacet: 'icon-chevron-
|
|
4977
|
+
iconExpandFacet: 'icon-chevron-down',
|
|
4978
|
+
iconCollapseFacet: 'icon-chevron-up',
|
|
4972
4979
|
iconCloseFieldSidebar: 'icon-chevron-right',
|
|
4973
4980
|
iconOpenFieldSidebar: 'icon-chevron-left',
|
|
4974
4981
|
iconAdd: 'icon-add',
|
|
@@ -5020,26 +5027,40 @@ const UtFormConstructor = {
|
|
|
5020
5027
|
},
|
|
5021
5028
|
|
|
5022
5029
|
getInputTypes(field) {
|
|
5030
|
+
let inputs = [];
|
|
5031
|
+
|
|
5023
5032
|
if (!field) {
|
|
5024
|
-
return
|
|
5033
|
+
return inputs;
|
|
5025
5034
|
}
|
|
5026
5035
|
|
|
5027
5036
|
if (field.dict && !this.config.refInputs[field.ref]) {
|
|
5028
|
-
|
|
5037
|
+
inputs = __filterInputsByMultiple(this.config.dictInputs, field.multiple);
|
|
5038
|
+
} else if (field.ref) {
|
|
5039
|
+
inputs = __filterInputsByMultiple(this.config.refInputs[field.ref], field.multiple);
|
|
5040
|
+
} else {
|
|
5041
|
+
inputs = __filterInputsByMultiple(this.config.primitiveInputs[field.type], field.multiple);
|
|
5029
5042
|
}
|
|
5030
5043
|
|
|
5031
|
-
|
|
5032
|
-
|
|
5033
|
-
}
|
|
5044
|
+
return inputs;
|
|
5045
|
+
},
|
|
5034
5046
|
|
|
5035
|
-
|
|
5047
|
+
hasMultipleInputTypes(field) {
|
|
5048
|
+
let inputs = this.getInputTypes({ ...field,
|
|
5049
|
+
multiple: true
|
|
5050
|
+
});
|
|
5051
|
+
return inputs && inputs.length > 0;
|
|
5036
5052
|
},
|
|
5037
5053
|
|
|
5038
5054
|
getDefaultInput(field) {
|
|
5039
5055
|
let input = null;
|
|
5056
|
+
let inputs = this.getInputTypes(field);
|
|
5057
|
+
|
|
5058
|
+
if (!inputs) {
|
|
5059
|
+
input = this.primitiveInputs[0];
|
|
5060
|
+
}
|
|
5040
5061
|
|
|
5041
5062
|
if (field.ref && this.config.refInputs[field.ref]) {
|
|
5042
|
-
input = __clone(
|
|
5063
|
+
input = __clone(inputs[0]);
|
|
5043
5064
|
|
|
5044
5065
|
__applyDefaultProps(input);
|
|
5045
5066
|
|
|
@@ -5047,12 +5068,12 @@ const UtFormConstructor = {
|
|
|
5047
5068
|
__applyRefProps(input, this.config.refInputConfigs[field.ref][input.name]);
|
|
5048
5069
|
}
|
|
5049
5070
|
} else if (field.dict) {
|
|
5050
|
-
input = __clone(
|
|
5071
|
+
input = __clone(inputs[0]);
|
|
5051
5072
|
input.props.dict.default = field.ref;
|
|
5052
5073
|
|
|
5053
5074
|
__applyDefaultProps(input);
|
|
5054
5075
|
} else {
|
|
5055
|
-
input = __clone(
|
|
5076
|
+
input = __clone(inputs[0]);
|
|
5056
5077
|
|
|
5057
5078
|
__applyDefaultProps(input);
|
|
5058
5079
|
}
|
|
@@ -5094,17 +5115,12 @@ const UtFormConstructor = {
|
|
|
5094
5115
|
runRule(context, script) {
|
|
5095
5116
|
context = context ? context : {};
|
|
5096
5117
|
context['console'] = console;
|
|
5097
|
-
let appendScript = '';
|
|
5098
|
-
/*for(let v in context) {
|
|
5099
|
-
appendScript = appendScript + `var ${v} = this.${v};\n`;
|
|
5100
|
-
}
|
|
5101
|
-
appendScript = appendScript? appendScript + '\n': '';*/
|
|
5102
5118
|
|
|
5103
5119
|
let func = function (script) {
|
|
5104
5120
|
return notevil(script, context);
|
|
5105
5121
|
};
|
|
5106
5122
|
|
|
5107
|
-
func.call(context,
|
|
5123
|
+
func.call(context, script);
|
|
5108
5124
|
}
|
|
5109
5125
|
|
|
5110
5126
|
};
|
|
@@ -10791,6 +10807,13 @@ var script$4 = {
|
|
|
10791
10807
|
let innerFacets = this.facets.map(f => ({ ...f,
|
|
10792
10808
|
expanded: false
|
|
10793
10809
|
}));
|
|
10810
|
+
|
|
10811
|
+
if (innerFacets) {
|
|
10812
|
+
innerFacets.forEach(facet => {
|
|
10813
|
+
facet.fields = facet.fields.filter(field => !field.hiddenOnFormConfig);
|
|
10814
|
+
});
|
|
10815
|
+
}
|
|
10816
|
+
|
|
10794
10817
|
this.innerFacets = JSON.parse(JSON.stringify(innerFacets));
|
|
10795
10818
|
this.allFacets = JSON.parse(JSON.stringify(innerFacets));
|
|
10796
10819
|
}
|
|
@@ -10834,7 +10857,7 @@ var __vue_render__$4 = function () {
|
|
|
10834
10857
|
})], 1)], 1)], 1)], 1), _vm._v(" "), _c('div', {
|
|
10835
10858
|
staticClass: "rb-facet-list"
|
|
10836
10859
|
}, _vm._l(_vm.innerFacets, function (facet) {
|
|
10837
|
-
return facet.fields
|
|
10860
|
+
return facet.fields.length > 0 ? _c('div', {
|
|
10838
10861
|
key: facet.name,
|
|
10839
10862
|
staticClass: "rb-facet"
|
|
10840
10863
|
}, [_c('h6', {
|
|
@@ -10986,15 +11009,18 @@ var script$3 = {
|
|
|
10986
11009
|
type: Object,
|
|
10987
11010
|
default: () => ({})
|
|
10988
11011
|
},
|
|
10989
|
-
validationState: {
|
|
10990
|
-
type: Object,
|
|
10991
|
-
default: () => ({})
|
|
10992
|
-
},
|
|
10993
11012
|
refDataSuffix: {
|
|
10994
11013
|
type: String,
|
|
10995
11014
|
default: 'Data'
|
|
10996
11015
|
}
|
|
10997
11016
|
},
|
|
11017
|
+
|
|
11018
|
+
data() {
|
|
11019
|
+
return {
|
|
11020
|
+
validationState: {}
|
|
11021
|
+
};
|
|
11022
|
+
},
|
|
11023
|
+
|
|
10998
11024
|
methods: {
|
|
10999
11025
|
onEventFired(eventName, event, field) {
|
|
11000
11026
|
if (eventName === 'input' && field.ref) {
|
|
@@ -11013,6 +11039,34 @@ var script$3 = {
|
|
|
11013
11039
|
}
|
|
11014
11040
|
});
|
|
11015
11041
|
}
|
|
11042
|
+
},
|
|
11043
|
+
|
|
11044
|
+
validate() {
|
|
11045
|
+
this.formConfig.sections.forEach(s => {
|
|
11046
|
+
s.columns.forEach(c => {
|
|
11047
|
+
c.fields.forEach(f => {
|
|
11048
|
+
if (f.required && this.doc[f.name] == null) {
|
|
11049
|
+
Vue.set(this.validationState, f.name, false);
|
|
11050
|
+
Vue.set(this.validationState, `${f.name}__feedback`, `Поле ${f.labelRu} обязательно`);
|
|
11051
|
+
} else {
|
|
11052
|
+
Vue.set(this.validationState, f.name, null);
|
|
11053
|
+
}
|
|
11054
|
+
|
|
11055
|
+
this.onEventFired('validate', {
|
|
11056
|
+
validationState: this.validationState,
|
|
11057
|
+
doc: this.doc
|
|
11058
|
+
}, f);
|
|
11059
|
+
});
|
|
11060
|
+
});
|
|
11061
|
+
});
|
|
11062
|
+
|
|
11063
|
+
for (let fieldName in this.validationState) {
|
|
11064
|
+
if (this.validationState[fieldName] === false) {
|
|
11065
|
+
return false;
|
|
11066
|
+
}
|
|
11067
|
+
}
|
|
11068
|
+
|
|
11069
|
+
return true;
|
|
11016
11070
|
}
|
|
11017
11071
|
|
|
11018
11072
|
},
|
|
@@ -11093,7 +11147,7 @@ var __vue_render__$3 = function () {
|
|
|
11093
11147
|
},
|
|
11094
11148
|
expression: "doc[field.name]"
|
|
11095
11149
|
}
|
|
11096
|
-
}, 'component', field.input.propsData, false))], 1)], 1)], 1) : _vm._e()];
|
|
11150
|
+
}, 'component', field.input.propsData, false)), _vm._v(" "), !_vm.validationState[field.name] ? _c('b-form-invalid-feedback', [_vm._v("\n " + _vm._s(_vm.validationState[field.name + "__feedback"]) + "\n ")]) : _vm._e()], 1)], 1)], 1) : _vm._e()];
|
|
11097
11151
|
})], 2);
|
|
11098
11152
|
}), 0)]) : _vm._e();
|
|
11099
11153
|
}), 0);
|
|
@@ -11435,7 +11489,11 @@ var __vue_render__$2 = function () {
|
|
|
11435
11489
|
attrs: {
|
|
11436
11490
|
"value": 'click'
|
|
11437
11491
|
}
|
|
11438
|
-
}, [_vm._v("\n Клик\n ")])
|
|
11492
|
+
}, [_vm._v("\n Клик\n ")]), _vm._v(" "), _c('b-form-select-option', {
|
|
11493
|
+
attrs: {
|
|
11494
|
+
"value": 'validate'
|
|
11495
|
+
}
|
|
11496
|
+
}, [_vm._v("\n Валидация\n ")])], 1)], 1)], 1), _vm._v(" "), _c('b-col', {
|
|
11439
11497
|
attrs: {
|
|
11440
11498
|
"lg": "12"
|
|
11441
11499
|
}
|
|
@@ -11611,6 +11669,14 @@ var script$1 = {
|
|
|
11611
11669
|
|
|
11612
11670
|
rules() {
|
|
11613
11671
|
return UtFormConstructor.getAvailableFieldRules(this.field);
|
|
11672
|
+
},
|
|
11673
|
+
|
|
11674
|
+
hasMultipleInputTypes() {
|
|
11675
|
+
return UtFormConstructor.hasMultipleInputTypes(this.field);
|
|
11676
|
+
},
|
|
11677
|
+
|
|
11678
|
+
multiple() {
|
|
11679
|
+
return this.field && this.field.multiple;
|
|
11614
11680
|
}
|
|
11615
11681
|
|
|
11616
11682
|
},
|
|
@@ -11634,6 +11700,11 @@ var script$1 = {
|
|
|
11634
11700
|
|
|
11635
11701
|
currentInputName() {
|
|
11636
11702
|
this.field.input = UtFormConstructor.getInputTypeByName(this.currentInputName, this.field);
|
|
11703
|
+
},
|
|
11704
|
+
|
|
11705
|
+
multiple() {
|
|
11706
|
+
let input = UtFormConstructor.getDefaultInput(this.field);
|
|
11707
|
+
this.currentInputName = input.name;
|
|
11637
11708
|
}
|
|
11638
11709
|
|
|
11639
11710
|
},
|
|
@@ -11812,7 +11883,8 @@ var __vue_render__$1 = function () {
|
|
|
11812
11883
|
}
|
|
11813
11884
|
}, [_c('b-checkbox', {
|
|
11814
11885
|
attrs: {
|
|
11815
|
-
"size": "lg"
|
|
11886
|
+
"size": "lg",
|
|
11887
|
+
"disabled": !_vm.hasMultipleInputTypes
|
|
11816
11888
|
},
|
|
11817
11889
|
model: {
|
|
11818
11890
|
value: _vm.field.multiple,
|
|
@@ -11821,7 +11893,7 @@ var __vue_render__$1 = function () {
|
|
|
11821
11893
|
},
|
|
11822
11894
|
expression: "field.multiple"
|
|
11823
11895
|
}
|
|
11824
|
-
}, [_vm._v("
|
|
11896
|
+
}, [_vm._v("\n Множественное\n ")])], 1)], 1), _vm._v(" "), _c('b-form-row', [_c('b-col', {
|
|
11825
11897
|
attrs: {
|
|
11826
11898
|
"lg": "12"
|
|
11827
11899
|
}
|