rb-document-form-constructor 0.1.5 → 0.1.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.
@@ -1,4 +1,4 @@
1
- 'use strict';function ownKeys(object, enumerableOnly) {
1
+ 'use strict';var crypto=require('crypto');function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var crypto__default=/*#__PURE__*/_interopDefaultLegacy(crypto);function ownKeys(object, enumerableOnly) {
2
2
  var keys = Object.keys(object);
3
3
 
4
4
  if (Object.getOwnPropertySymbols) {
@@ -108,278 +108,83 @@ function _arrayLikeToArray(arr, len) {
108
108
 
109
109
  function _nonIterableRest() {
110
110
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
111
- }var __clone = function __clone(data) {
112
- return JSON.parse(JSON.stringify(data));
113
- };
114
-
115
- var _assign = function __assign() {
116
- _assign = Object.assign || function __assign(t) {
117
- for (var s, i = 1, n = arguments.length; i < n; i++) {
118
- s = arguments[i];
119
-
120
- for (var p in s) {
121
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
122
- }
111
+ }var UtFormConfig = {
112
+ findField: function findField(fieldName, formConfig) {
113
+ if (!formConfig || !formConfig.sections) {
114
+ return null;
123
115
  }
124
116
 
125
- return t;
126
- };
127
-
128
- return _assign.apply(this, arguments);
129
- };
130
-
131
- var fcInputs = {
132
- text: {
133
- text: 'Текст',
134
- name: 'text',
135
- type: 'b-form-input',
136
- props: {
137
- placeholder: {
138
- type: 'string',
139
- default: null,
140
- label: 'Надпись внутри',
141
- visible: true
142
- },
143
- type: {
144
- type: 'string',
145
- default: 'text',
146
- label: 'Тип данных',
147
- visible: false
148
- }
149
- },
150
- propsData: {},
151
- defaultValue: null
152
- },
153
- number: {
154
- text: 'Число',
155
- name: 'number',
156
- type: 'b-form-input',
157
- props: {
158
- placeholder: {
159
- type: 'string',
160
- default: null,
161
- label: 'Надпись внутри',
162
- visible: true
163
- },
164
- type: {
165
- type: 'string',
166
- default: 'number',
167
- label: 'Тип данных',
168
- visible: false
169
- }
170
- },
171
- propsData: {},
172
- defaultValue: null
173
- },
174
- memo: {
175
- text: 'Большой текст',
176
- name: 'memo',
177
- type: 'b-form-textarea',
178
- props: {
179
- placeholder: {
180
- type: 'string',
181
- default: null,
182
- label: 'Надпись внутри',
183
- visible: true
184
- }
185
- },
186
- propsData: {},
187
- defaultValue: null
188
- },
189
- date: {
190
- text: 'Дата',
191
- name: 'date',
192
- type: 'rb-date-picker-input',
193
- props: {},
194
- propsData: {},
195
- defaultValue: null
196
- },
197
- phone: {
198
- text: 'Телефон',
199
- name: 'phone',
200
- type: 'rb-phone-input',
201
- props: {
202
- placeholder: {
203
- type: 'string',
204
- default: 'Телефон',
205
- label: 'Надпись внутри',
206
- visible: true
207
- }
208
- },
209
- propsData: {},
210
- defaultValue: null
211
- }
212
- };
213
- var fcPrimitiveInputs = {
214
- text: [__clone(fcInputs.text), __clone(fcInputs.number), __clone(fcInputs.memo), __clone(fcInputs.phone)],
215
- memo: [__clone(fcInputs.memo), __clone(fcInputs.text)],
216
- number: [__clone(fcInputs.text), __clone(fcInputs.number)],
217
- date: [__clone(fcInputs.date)]
218
- };
219
- var fcDictInputs = [];
220
- var fcRefInputs = {};
221
- var fcRefInputConfigs = {};
222
- var baseConfig = {
223
- inputs: __clone(fcInputs),
224
- primitiveInputs: __clone(fcPrimitiveInputs),
225
- dictInputs: __clone(fcDictInputs),
226
- refInputs: __clone(fcRefInputs),
227
- refInputConfigs: __clone(fcRefInputConfigs),
228
- icons: {
229
- iconExpandFacet: 'icon-chevron-up',
230
- iconCollapseFacet: 'icon-chevron-down',
231
- iconCloseFieldSidebar: 'icon-chevron-right',
232
- iconOpenFieldSidebar: 'icon-chevron-left',
233
- iconAdd: 'icon-add',
234
- iconEdit: 'icon-edit',
235
- iconDelete: 'icon-delete',
236
- iconDrag: 'icon-reorder'
237
- }
238
- };
239
- var UtFormConfig = {
240
- config: {},
241
- init: function init(formConfig) {
242
- this.config = __clone(baseConfig);
243
-
244
- if (formConfig) {
245
- if (formConfig.inputs) {
246
- this.mergeInputsInMap(this.config.inputs, formConfig.inputs);
247
- }
248
-
249
- if (formConfig.primitiveInputs) {
250
- this.mergeInputInMapOfArrays(this.config.primitiveInputs, formConfig.primitiveInputs);
251
- }
252
-
253
- if (formConfig.dictInputs) {
254
- this.mergeInputsInArray(this.config.dictInputs, formConfig.dictInputs);
255
- }
256
-
257
- if (formConfig.refInputs) {
258
- this.mergeInputInMapOfArrays(this.config.refInputs, formConfig.refInputs);
259
- }
260
-
261
- if (formConfig.refInputConfigs) {
262
- this.config.refInputConfigs = formConfig.refInputConfigs;
263
- }
264
-
265
- if (formConfig.icons) {
266
- this.config.icons = _assign(this.config.icons, formConfig.icons);
267
- }
268
- }
269
- },
270
- mergeInputInMapOfArrays: function mergeInputInMapOfArrays(inputs, formConfigInputs) {
271
- for (var dataType in formConfigInputs) {
272
- var foundInputs = inputs[dataType];
117
+ var found = null;
118
+ formConfig.sections.every(function (r) {
119
+ if (r.columns) {
120
+ r.columns.every(function (c) {
121
+ c.fields.forEach(function (f) {
122
+ if (f.name === fieldName) {
123
+ found = f;
124
+ }
125
+ });
273
126
 
274
- if (foundInputs) {
275
- this.mergeInputsInArray(foundInputs, formConfigInputs[dataType]);
276
- } else {
277
- inputs[dataType] = formConfigInputs[dataType];
127
+ if (found) {
128
+ return false;
129
+ }
130
+ });
278
131
  }
279
- }
280
- },
281
- mergeInputsInMap: function mergeInputsInMap(inputs, formConfigInputs) {
282
- for (var name in formConfigInputs) {
283
- inputs[name] = _assign(inputs[name] ? inputs[name] : {}, formConfigInputs[name] ? formConfigInputs[name] : {});
284
- }
285
- },
286
- mergeInputsInArray: function mergeInputsInArray(inputs, formConfigInputs) {
287
- formConfigInputs.forEach(function (input) {
288
- var index = inputs.findIndex(function (item) {
289
- return item.name === input.name;
290
- });
291
132
 
292
- if (index >= 0) {
293
- inputs[index] = input;
294
- } else {
295
- inputs.push(input);
133
+ if (found) {
134
+ return false;
296
135
  }
297
136
  });
137
+ return found;
298
138
  },
299
- getAllInputTypes: function getAllInputTypes() {
300
- return this.config.inputs;
301
- },
302
- getAllDictInputs: function getAllDictInputs() {
303
- return this.config.dictInputs;
304
- },
305
- getInputTypes: function getInputTypes(field) {
306
- if (!field) {
307
- return [];
308
- }
309
-
310
- if (field.dict && !this.config.refInputs[field.ref]) {
311
- return this.config.dictInputs;
312
- }
313
-
314
- if (field.ref) {
315
- return this.config.refInputs[field.ref];
316
- }
317
-
318
- return this.config.primitiveInputs[field.type];
319
- },
320
- getDefaultInput: function getDefaultInput(field) {
321
- var input = null;
322
-
323
- if (field.ref && this.config.refInputs[field.ref]) {
324
- input = __clone(this.config.refInputs[field.ref][0]);
325
- this.applyDefaultProps(input);
326
-
327
- if (this.config.refInputConfigs[field.ref] && this.config.refInputConfigs[field.ref][input.name]) {
328
- this.applyRefProps(input, this.config.refInputConfigs[field.ref][input.name]);
329
- }
330
- } else if (field.dict) {
331
- input = __clone(this.config.dictInputs[0]);
332
- input.props.dict.default = field.ref;
333
- this.applyDefaultProps(input);
334
- } else {
335
- input = __clone(this.config.primitiveInputs[field.type][0]);
336
- this.applyDefaultProps(input);
337
- }
338
-
339
- return input;
340
- },
341
- getInputTypeByName: function getInputTypeByName(name, field) {
342
- var input = JSON.parse(JSON.stringify(this.config.inputs[name]));
139
+ findRule: function findRule(ruleId, formConfig) {
140
+ if (!formConfig || !formConfig.sections) {
141
+ return null;
142
+ }
143
+
144
+ var found = null;
145
+ formConfig.sections.every(function (s) {
146
+ if (s.columns) {
147
+ s.columns.every(function (c) {
148
+ c.fields.every(function (f) {
149
+ if (f.rules) {
150
+ f.rules.forEach(function (r) {
151
+ if (r.id === ruleId) {
152
+ found = r;
153
+ }
154
+ });
155
+ }
343
156
 
344
- if (field.ref && this.config.refInputs[field.ref]) {
345
- this.applyDefaultProps(input);
157
+ if (found) {
158
+ return false;
159
+ }
160
+ });
346
161
 
347
- if (this.config.refInputConfigs[field.ref] && this.config.refInputConfigs[field.ref][input.name]) {
348
- this.applyRefProps(input, this.config.refInputConfigs[field.ref][input.name]);
162
+ if (found) {
163
+ return false;
164
+ }
165
+ });
349
166
  }
350
- } else if (field.dict) {
351
- input.props.dict.default = field.ref;
352
- this.applyDefaultProps(input);
353
- } else {
354
- this.applyDefaultProps(input);
355
- }
356
167
 
357
- return input;
358
- },
359
- applyDefaultProps: function applyDefaultProps(input) {
360
- for (var propName in input.props) {
361
- input.propsData[propName] = input.props[propName].default;
362
- }
363
- },
364
- applyRefProps: function applyRefProps(input, refConfig) {
365
- if (refConfig !== null && refConfig !== void 0 && refConfig.propsData) {
366
- for (var propName in refConfig.propsData) {
367
- input.propsData[propName] = refConfig.propsData[propName];
168
+ if (found) {
169
+ return false;
368
170
  }
369
- }
171
+ });
172
+ return found;
370
173
  },
371
- parseFacets: function parseFacets(formConfig) {
372
- var facets = [];
373
- formConfig.sections.every(function (section) {
374
- section.columns.every(function (c) {
375
- c.fields.forEach(function (f) {
376
- if (!(facets.indexOf(f.facet) >= 0)) {
377
- facets.push(f.facet);
174
+ getFields: function getFields(formConfig) {
175
+ var fields = [];
176
+ formConfig.sections.forEach(function (s) {
177
+ if (s.columns) {
178
+ s.columns.forEach(function (c) {
179
+ if (c.fields) {
180
+ c.fields.forEach(function (f) {
181
+ fields.push(f);
182
+ });
378
183
  }
379
184
  });
380
- });
185
+ }
381
186
  });
382
- return facets;
187
+ return fields;
383
188
  }
384
189
  };//
385
190
  //
@@ -400,7 +205,7 @@ var UtFormConfig = {
400
205
  //
401
206
  //
402
207
  //
403
- var script$4 = {
208
+ var script$5 = {
404
209
  name: 'DocTemplateSectionModal',
405
210
  props: {
406
211
  section: Object,
@@ -525,10 +330,10 @@ var script$4 = {
525
330
  }
526
331
  return script;
527
332
  }/* script */
528
- var __vue_script__$4 = script$4;
333
+ var __vue_script__$5 = script$5;
529
334
  /* template */
530
335
 
531
- var __vue_render__$4 = function __vue_render__() {
336
+ var __vue_render__$5 = function __vue_render__() {
532
337
  var _vm = this;
533
338
 
534
339
  var _h = _vm.$createElement;
@@ -576,19 +381,19 @@ var __vue_render__$4 = function __vue_render__() {
576
381
  })], 1)], 1)], 1)], 1)], 1);
577
382
  };
578
383
 
579
- var __vue_staticRenderFns__$4 = [];
384
+ var __vue_staticRenderFns__$5 = [];
580
385
  /* style */
581
386
 
582
- var __vue_inject_styles__$4 = undefined;
387
+ var __vue_inject_styles__$5 = undefined;
583
388
  /* scoped */
584
389
 
585
- var __vue_scope_id__$4 = undefined;
390
+ var __vue_scope_id__$5 = undefined;
586
391
  /* module identifier */
587
392
 
588
- var __vue_module_identifier__$4 = "data-v-0dc54a8c";
393
+ var __vue_module_identifier__$5 = "data-v-0dc54a8c";
589
394
  /* functional template */
590
395
 
591
- var __vue_is_functional_template__$4 = false;
396
+ var __vue_is_functional_template__$5 = false;
592
397
  /* style inject */
593
398
 
594
399
  /* style inject SSR */
@@ -596,9 +401,9 @@ var __vue_is_functional_template__$4 = false;
596
401
  /* style inject shadow dom */
597
402
 
598
403
  var __vue_component__$6 = /*#__PURE__*/normalizeComponent({
599
- render: __vue_render__$4,
600
- staticRenderFns: __vue_staticRenderFns__$4
601
- }, __vue_inject_styles__$4, __vue_script__$4, __vue_scope_id__$4, __vue_is_functional_template__$4, __vue_module_identifier__$4, false, undefined, undefined, undefined);
404
+ render: __vue_render__$5,
405
+ staticRenderFns: __vue_staticRenderFns__$5
406
+ }, __vue_inject_styles__$5, __vue_script__$5, __vue_scope_id__$5, __vue_is_functional_template__$5, __vue_module_identifier__$5, false, undefined, undefined, undefined);
602
407
 
603
408
  var DocTemplateSectionModal = __vue_component__$6;var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
604
409
 
@@ -5982,32 +5787,323 @@ if (typeof window !== "undefined" && "Vue" in window) {
5982
5787
  /******/ })["default"];
5983
5788
  });
5984
5789
 
5985
- });var script$3 = {
5986
- name: 'DocTemplateFacetList',
5987
- components: {
5988
- draggable: vuedraggable_umd
5989
- },
5990
- props: {
5991
- facets: {
5992
- type: Array,
5993
- default: function _default() {
5994
- return [];
5995
- }
5996
- }
5997
- },
5998
- data: function data() {
5999
- return {
6000
- allFacets: [],
6001
- innerFacets: [],
6002
- facetSearchStr: null
6003
- };
5790
+ });var __clone = function __clone(data) {
5791
+ return JSON.parse(JSON.stringify(data));
5792
+ };
5793
+
5794
+ var _assign = function __assign() {
5795
+ _assign = Object.assign || function __assign(t) {
5796
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5797
+ s = arguments[i];
5798
+
5799
+ for (var p in s) {
5800
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
5801
+ }
5802
+ }
5803
+
5804
+ return t;
5805
+ };
5806
+
5807
+ return _assign.apply(this, arguments);
5808
+ };
5809
+
5810
+ var __mergeInputInMapOfArrays = function __mergeInputInMapOfArrays(inputs, formConfigInputs) {
5811
+ for (var dataType in formConfigInputs) {
5812
+ var foundInputs = inputs[dataType];
5813
+
5814
+ if (foundInputs) {
5815
+ __mergeInputsInArray(foundInputs, formConfigInputs[dataType]);
5816
+ } else {
5817
+ inputs[dataType] = formConfigInputs[dataType];
5818
+ }
5819
+ }
5820
+ };
5821
+
5822
+ var __mergeInputsInMap = function __mergeInputsInMap(inputs, formConfigInputs) {
5823
+ for (var name in formConfigInputs) {
5824
+ inputs[name] = _assign(inputs[name] ? inputs[name] : {}, formConfigInputs[name] ? formConfigInputs[name] : {});
5825
+ }
5826
+ };
5827
+
5828
+ var __mergeInputsInArray = function __mergeInputsInArray(inputs, formConfigInputs) {
5829
+ formConfigInputs.forEach(function (input) {
5830
+ var index = inputs.findIndex(function (item) {
5831
+ return item.name === input.name;
5832
+ });
5833
+
5834
+ if (index >= 0) {
5835
+ inputs[index] = input;
5836
+ } else {
5837
+ inputs.push(input);
5838
+ }
5839
+ });
5840
+ };
5841
+
5842
+ var __applyDefaultProps = function __applyDefaultProps(input) {
5843
+ for (var propName in input.props) {
5844
+ input.propsData[propName] = input.props[propName].default;
5845
+ }
5846
+ };
5847
+
5848
+ var __applyRefProps = function __applyRefProps(input, refConfig) {
5849
+ if (refConfig !== null && refConfig !== void 0 && refConfig.propsData) {
5850
+ for (var propName in refConfig.propsData) {
5851
+ input.propsData[propName] = refConfig.propsData[propName];
5852
+ }
5853
+ }
5854
+ };
5855
+
5856
+ var fcInputs = {
5857
+ text: {
5858
+ text: 'Текст',
5859
+ name: 'text',
5860
+ type: 'b-form-input',
5861
+ props: {
5862
+ placeholder: {
5863
+ type: 'string',
5864
+ default: null,
5865
+ label: 'Надпись внутри',
5866
+ visible: true
5867
+ },
5868
+ type: {
5869
+ type: 'string',
5870
+ default: 'text',
5871
+ label: 'Тип данных',
5872
+ visible: false
5873
+ }
5874
+ },
5875
+ propsData: {},
5876
+ defaultValue: null
5877
+ },
5878
+ number: {
5879
+ text: 'Число',
5880
+ name: 'number',
5881
+ type: 'b-form-input',
5882
+ props: {
5883
+ placeholder: {
5884
+ type: 'string',
5885
+ default: null,
5886
+ label: 'Надпись внутри',
5887
+ visible: true
5888
+ },
5889
+ type: {
5890
+ type: 'string',
5891
+ default: 'number',
5892
+ label: 'Тип данных',
5893
+ visible: false
5894
+ }
5895
+ },
5896
+ propsData: {},
5897
+ defaultValue: null
5898
+ },
5899
+ memo: {
5900
+ text: 'Большой текст',
5901
+ name: 'memo',
5902
+ type: 'b-form-textarea',
5903
+ props: {
5904
+ placeholder: {
5905
+ type: 'string',
5906
+ default: null,
5907
+ label: 'Надпись внутри',
5908
+ visible: true
5909
+ }
5910
+ },
5911
+ propsData: {},
5912
+ defaultValue: null
5913
+ },
5914
+ date: {
5915
+ text: 'Дата',
5916
+ name: 'date',
5917
+ type: 'rb-date-picker-input',
5918
+ props: {},
5919
+ propsData: {},
5920
+ defaultValue: null
5921
+ },
5922
+ phone: {
5923
+ text: 'Телефон',
5924
+ name: 'phone',
5925
+ type: 'rb-phone-input',
5926
+ props: {
5927
+ placeholder: {
5928
+ type: 'string',
5929
+ default: 'Телефон',
5930
+ label: 'Надпись внутри',
5931
+ visible: true
5932
+ }
5933
+ },
5934
+ propsData: {},
5935
+ defaultValue: null
5936
+ }
5937
+ };
5938
+ var fcPrimitiveInputs = {
5939
+ text: [__clone(fcInputs.text), __clone(fcInputs.number), __clone(fcInputs.memo), __clone(fcInputs.phone)],
5940
+ memo: [__clone(fcInputs.memo), __clone(fcInputs.text)],
5941
+ number: [__clone(fcInputs.text), __clone(fcInputs.number)],
5942
+ date: [__clone(fcInputs.date)]
5943
+ };
5944
+ var fcDictInputs = [];
5945
+ var fcRefInputs = {};
5946
+ var fcRefInputConfigs = {};
5947
+ var baseConfig = {
5948
+ inputs: __clone(fcInputs),
5949
+ primitiveInputs: __clone(fcPrimitiveInputs),
5950
+ dictInputs: __clone(fcDictInputs),
5951
+ refInputs: __clone(fcRefInputs),
5952
+ refInputConfigs: __clone(fcRefInputConfigs),
5953
+ rules: [],
5954
+ icons: {
5955
+ iconExpandFacet: 'icon-chevron-up',
5956
+ iconCollapseFacet: 'icon-chevron-down',
5957
+ iconCloseFieldSidebar: 'icon-chevron-right',
5958
+ iconOpenFieldSidebar: 'icon-chevron-left',
5959
+ iconAdd: 'icon-add',
5960
+ iconEdit: 'icon-edit',
5961
+ iconDelete: 'icon-delete',
5962
+ iconDrag: 'icon-reorder'
5963
+ },
5964
+ ruleContext: {}
5965
+ };
5966
+ var UtFormConstructor = {
5967
+ config: {},
5968
+ init: function init(formConfig) {
5969
+ this.config = __clone(baseConfig);
5970
+
5971
+ if (formConfig) {
5972
+ if (formConfig.inputs) {
5973
+ __mergeInputsInMap(this.config.inputs, formConfig.inputs);
5974
+ }
5975
+
5976
+ if (formConfig.primitiveInputs) {
5977
+ __mergeInputInMapOfArrays(this.config.primitiveInputs, formConfig.primitiveInputs);
5978
+ }
5979
+
5980
+ if (formConfig.dictInputs) {
5981
+ __mergeInputsInArray(this.config.dictInputs, formConfig.dictInputs);
5982
+ }
5983
+
5984
+ if (formConfig.refInputs) {
5985
+ __mergeInputInMapOfArrays(this.config.refInputs, formConfig.refInputs);
5986
+ }
5987
+
5988
+ if (formConfig.refInputConfigs) {
5989
+ this.config.refInputConfigs = formConfig.refInputConfigs;
5990
+ }
5991
+
5992
+ if (formConfig.icons) {
5993
+ this.config.icons = _assign(this.config.icons, formConfig.icons);
5994
+ }
5995
+
5996
+ if (formConfig.rules) {
5997
+ this.config.rules = formConfig.rules;
5998
+ }
5999
+
6000
+ if (formConfig.ruleContext) {
6001
+ this.config.ruleContext = formConfig.ruleContext;
6002
+ }
6003
+ }
6004
+ },
6005
+ getInputTypes: function getInputTypes(field) {
6006
+ if (!field) {
6007
+ return [];
6008
+ }
6009
+
6010
+ if (field.dict && !this.config.refInputs[field.ref]) {
6011
+ return this.config.dictInputs;
6012
+ }
6013
+
6014
+ if (field.ref) {
6015
+ return this.config.refInputs[field.ref];
6016
+ }
6017
+
6018
+ return this.config.primitiveInputs[field.type];
6019
+ },
6020
+ getDefaultInput: function getDefaultInput(field) {
6021
+ var input = null;
6022
+
6023
+ if (field.ref && this.config.refInputs[field.ref]) {
6024
+ input = __clone(this.config.refInputs[field.ref][0]);
6025
+
6026
+ __applyDefaultProps(input);
6027
+
6028
+ if (this.config.refInputConfigs[field.ref] && this.config.refInputConfigs[field.ref][input.name]) {
6029
+ __applyRefProps(input, this.config.refInputConfigs[field.ref][input.name]);
6030
+ }
6031
+ } else if (field.dict) {
6032
+ input = __clone(this.config.dictInputs[0]);
6033
+ input.props.dict.default = field.ref;
6034
+
6035
+ __applyDefaultProps(input);
6036
+ } else {
6037
+ input = __clone(this.config.primitiveInputs[field.type][0]);
6038
+
6039
+ __applyDefaultProps(input);
6040
+ }
6041
+
6042
+ return input;
6043
+ },
6044
+ getInputTypeByName: function getInputTypeByName(name, field) {
6045
+ var input = JSON.parse(JSON.stringify(this.config.inputs[name]));
6046
+
6047
+ if (field.ref && this.config.refInputs[field.ref]) {
6048
+ __applyDefaultProps(input);
6049
+
6050
+ if (this.config.refInputConfigs[field.ref] && this.config.refInputConfigs[field.ref][input.name]) {
6051
+ __applyRefProps(input, this.config.refInputConfigs[field.ref][input.name]);
6052
+ }
6053
+ } else if (field.dict) {
6054
+ input.props.dict.default = field.ref;
6055
+
6056
+ __applyDefaultProps(input);
6057
+ } else {
6058
+ __applyDefaultProps(input);
6059
+ }
6060
+
6061
+ input.propsData['ref'] = field.name;
6062
+ return input;
6063
+ },
6064
+ getAvailableFieldRules: function getAvailableFieldRules(field) {
6065
+ return this.config.rules.filter(function (rule) {
6066
+ return !rule.fields || rule.fields.length === 0 || rule.fields.indexOf(field.name) >= 0;
6067
+ });
6068
+ },
6069
+ getRuleContext: function getRuleContext() {
6070
+ return this.config.ruleContext;
6071
+ },
6072
+ runRule: function runRule(context, script) {
6073
+ var appendScript = "\n var doc = this.form.doc;\n var form = this.form;\n var event = this.event;\n var eventName = this.eventName;\n \n ";
6074
+
6075
+ var func = function func(script) {
6076
+ return eval(script);
6077
+ };
6078
+
6079
+ func.call(context, appendScript + script);
6080
+ }
6081
+ };var script$4 = {
6082
+ name: 'DocTemplateFacetList',
6083
+ components: {
6084
+ draggable: vuedraggable_umd
6085
+ },
6086
+ props: {
6087
+ facets: {
6088
+ type: Array,
6089
+ default: function _default() {
6090
+ return [];
6091
+ }
6092
+ }
6093
+ },
6094
+ data: function data() {
6095
+ return {
6096
+ allFacets: [],
6097
+ innerFacets: [],
6098
+ facetSearchStr: null
6099
+ };
6004
6100
  },
6005
6101
  computed: {
6006
6102
  iconExpandFacet: function iconExpandFacet() {
6007
- return UtFormConfig.config.icons.iconExpandFacet;
6103
+ return UtFormConstructor.config.icons.iconExpandFacet;
6008
6104
  },
6009
6105
  iconCollapseFacet: function iconCollapseFacet() {
6010
- return UtFormConfig.config.icons.iconCollapseFacet;
6106
+ return UtFormConstructor.config.icons.iconCollapseFacet;
6011
6107
  }
6012
6108
  },
6013
6109
  watch: {
@@ -6021,7 +6117,7 @@ if (typeof window !== "undefined" && "Vue" in window) {
6021
6117
  methods: {
6022
6118
  onFieldCloned: function onFieldCloned(cloneField) {
6023
6119
  var field = JSON.parse(JSON.stringify(cloneField));
6024
- field.input = UtFormConfig.getDefaultInput(field);
6120
+ field.input = UtFormConstructor.getDefaultInput(field);
6025
6121
  return field;
6026
6122
  },
6027
6123
  onFieldMoveEnd: function onFieldMoveEnd(event) {
@@ -6050,90 +6146,549 @@ if (typeof window !== "undefined" && "Vue" in window) {
6050
6146
  });
6051
6147
  this.innerFacets = facets;
6052
6148
  },
6053
- handleFacetsProp: function handleFacetsProp() {
6054
- var innerFacets = this.facets.map(function (f) {
6055
- return _objectSpread2(_objectSpread2({}, f), {}, {
6056
- expanded: false
6057
- });
6058
- });
6059
- this.innerFacets = JSON.parse(JSON.stringify(innerFacets));
6060
- this.allFacets = JSON.parse(JSON.stringify(innerFacets));
6149
+ handleFacetsProp: function handleFacetsProp() {
6150
+ var innerFacets = this.facets.map(function (f) {
6151
+ return _objectSpread2(_objectSpread2({}, f), {}, {
6152
+ expanded: false
6153
+ });
6154
+ });
6155
+ this.innerFacets = JSON.parse(JSON.stringify(innerFacets));
6156
+ this.allFacets = JSON.parse(JSON.stringify(innerFacets));
6157
+ }
6158
+ },
6159
+ created: function created() {
6160
+ this.handleFacetsProp();
6161
+ }
6162
+ };/* script */
6163
+ var __vue_script__$4 = script$4;
6164
+ /* template */
6165
+
6166
+ var __vue_render__$4 = function __vue_render__() {
6167
+ var _vm = this;
6168
+
6169
+ var _h = _vm.$createElement;
6170
+
6171
+ var _c = _vm._self._c || _h;
6172
+
6173
+ return _c('div', {
6174
+ staticClass: "rb-facets-sidebar"
6175
+ }, [_vm._ssrNode("<h4>Компоненты</h4> "), _c('b-form', [_c('b-form-row', [_c('b-col', {
6176
+ attrs: {
6177
+ "lg": "12"
6178
+ }
6179
+ }, [_c('b-form-group', [_c('b-form-input', {
6180
+ attrs: {
6181
+ "placeholder": "Название поля"
6182
+ },
6183
+ model: {
6184
+ value: _vm.facetSearchStr,
6185
+ callback: function callback($$v) {
6186
+ _vm.facetSearchStr = $$v;
6187
+ },
6188
+ expression: "facetSearchStr"
6189
+ }
6190
+ })], 1)], 1)], 1)], 1), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"rb-facet-list\">", "</div>", _vm._l(_vm.innerFacets, function (facet) {
6191
+ return _vm._ssrNode("<div class=\"rb-facet\">", "</div>", [_vm._ssrNode("<h6 class=\"rb-facet-label d-flex cursor-pointer\">", "</h6>", [_c('rb-text', {
6192
+ staticClass: "flex-fill"
6193
+ }, [_vm._v(_vm._s(facet.labelRu))]), _vm._ssrNode(" "), _c('rb-icon', {
6194
+ attrs: {
6195
+ "icon": facet.expanded ? _vm.iconCollapseFacet : _vm.iconExpandFacet
6196
+ }
6197
+ })], 2), _vm._ssrNode(" "), facet.expanded ? _c('b-list-group', [_c('draggable', {
6198
+ attrs: {
6199
+ "clone": _vm.onFieldCloned,
6200
+ "animation": 200,
6201
+ "group": {
6202
+ name: 'fields',
6203
+ pull: 'clone',
6204
+ put: false
6205
+ },
6206
+ "ghost-class": "rb-facet-field-moving"
6207
+ },
6208
+ on: {
6209
+ "end": function end($event) {
6210
+ return _vm.onFieldMoveEnd($event);
6211
+ }
6212
+ },
6213
+ model: {
6214
+ value: facet.fields,
6215
+ callback: function callback($$v) {
6216
+ _vm.$set(facet, "fields", $$v);
6217
+ },
6218
+ expression: "facet.fields"
6219
+ }
6220
+ }, _vm._l(facet.fields, function (field) {
6221
+ return _c('b-list-group-item', {
6222
+ key: field.name,
6223
+ staticClass: "cursor-pointer"
6224
+ }, [_c('rb-text', [_vm._v(_vm._s(field.labelRu))])], 1);
6225
+ }), 1)], 1) : _vm._e()], 2);
6226
+ }), 0)], 2);
6227
+ };
6228
+
6229
+ var __vue_staticRenderFns__$4 = [];
6230
+ /* style */
6231
+
6232
+ var __vue_inject_styles__$4 = undefined;
6233
+ /* scoped */
6234
+
6235
+ var __vue_scope_id__$4 = undefined;
6236
+ /* module identifier */
6237
+
6238
+ var __vue_module_identifier__$4 = "data-v-fa8cc52a";
6239
+ /* functional template */
6240
+
6241
+ var __vue_is_functional_template__$4 = false;
6242
+ /* style inject */
6243
+
6244
+ /* style inject SSR */
6245
+
6246
+ /* style inject shadow dom */
6247
+
6248
+ var __vue_component__$5 = /*#__PURE__*/normalizeComponent({
6249
+ render: __vue_render__$4,
6250
+ staticRenderFns: __vue_staticRenderFns__$4
6251
+ }, __vue_inject_styles__$4, __vue_script__$4, __vue_scope_id__$4, __vue_is_functional_template__$4, __vue_module_identifier__$4, false, undefined, undefined, undefined);
6252
+
6253
+ var DocTemplateFacetList = __vue_component__$5;const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate
6254
+
6255
+ let poolPtr = rnds8Pool.length;
6256
+ function rng() {
6257
+ if (poolPtr > rnds8Pool.length - 16) {
6258
+ crypto__default["default"].randomFillSync(rnds8Pool);
6259
+ poolPtr = 0;
6260
+ }
6261
+
6262
+ return rnds8Pool.slice(poolPtr, poolPtr += 16);
6263
+ }var REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function validate(uuid) {
6264
+ return typeof uuid === 'string' && REGEX.test(uuid);
6265
+ }/**
6266
+ * Convert array of 16 byte values to UUID string format of the form:
6267
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
6268
+ */
6269
+
6270
+ const byteToHex = [];
6271
+
6272
+ for (let i = 0; i < 256; ++i) {
6273
+ byteToHex.push((i + 0x100).toString(16).substr(1));
6274
+ }
6275
+
6276
+ function stringify(arr, offset = 0) {
6277
+ // Note: Be careful editing this code! It's been tuned for performance
6278
+ // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
6279
+ const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one
6280
+ // of the following:
6281
+ // - One or more input array values don't map to a hex octet (leading to
6282
+ // "undefined" in the uuid)
6283
+ // - Invalid input values for the RFC `version` or `variant` fields
6284
+
6285
+ if (!validate(uuid)) {
6286
+ throw TypeError('Stringified UUID is invalid');
6287
+ }
6288
+
6289
+ return uuid;
6290
+ }function v4(options, buf, offset) {
6291
+ options = options || {};
6292
+ const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
6293
+
6294
+ rnds[6] = rnds[6] & 0x0f | 0x40;
6295
+ rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
6296
+
6297
+ if (buf) {
6298
+ offset = offset || 0;
6299
+
6300
+ for (let i = 0; i < 16; ++i) {
6301
+ buf[offset + i] = rnds[i];
6302
+ }
6303
+
6304
+ return buf;
6305
+ }
6306
+
6307
+ return stringify(rnds);
6308
+ }//
6309
+ var script$3 = {
6310
+ name: 'FieldRuleFormModal',
6311
+ components: {
6312
+ DocForm: DocForm
6313
+ },
6314
+ props: {
6315
+ field: Object,
6316
+ rule: Object,
6317
+ formConfig: Object,
6318
+ mode: {
6319
+ type: String,
6320
+ default: 'ins'
6321
+ },
6322
+ onAfterOk: Function
6323
+ },
6324
+ data: function data() {
6325
+ return {
6326
+ id: 'rb-field-rule-form-modal',
6327
+ state: this.getDefaultState(),
6328
+ innerFormConfig: null,
6329
+ innerRule: null
6330
+ };
6331
+ },
6332
+ computed: {
6333
+ title: function title() {
6334
+ return this.mode === 'ins' ? 'Добавление правила' : 'Редактирование правила';
6335
+ },
6336
+ fields: function fields() {
6337
+ return UtFormConfig.getFields(this.formConfig);
6338
+ },
6339
+ rulePresets: function rulePresets() {
6340
+ return UtFormConstructor.getAvailableFieldRules(this.field);
6341
+ }
6342
+ },
6343
+ watch: {
6344
+ formConfig: function formConfig() {
6345
+ this.copyToInnerFormConfig();
6346
+ },
6347
+ rule: function rule() {
6348
+ if (this.rule) {
6349
+ this.innerRule = this.rule;
6350
+ } else {
6351
+ this.innerRule = this.getDefaultRule();
6352
+ }
6353
+ }
6354
+ },
6355
+ methods: {
6356
+ validateFields: function validateFields(fieldName) {
6357
+ var _this = this;
6358
+
6359
+ var fields = fieldName ? [fieldName] : ['name', 'event', 'script'];
6360
+ fields.forEach(function (field) {
6361
+ if (!_this.innerRule[field]) {
6362
+ _this.state[field] = false;
6363
+ _this.state["".concat(field, "_feedback")] = 'Заполните название';
6364
+ } else {
6365
+ _this.state[field] = true;
6366
+ _this.state["".concat(field, "_feedback")] = null;
6367
+ }
6368
+ });
6369
+ },
6370
+ copyToInnerFormConfig: function copyToInnerFormConfig() {
6371
+ this.innerFormConfig = JSON.parse(JSON.stringify(this.formConfig));
6372
+ },
6373
+ applyRuleToInnerFormConfig: function applyRuleToInnerFormConfig() {
6374
+ if (this.innerFormConfig) {
6375
+ var foundRule = UtFormConfig.findRule(this.innerRule.id, this.innerFormConfig);
6376
+
6377
+ if (!foundRule) {
6378
+ var foundField = UtFormConfig.findField(this.field.name, this.innerFormConfig);
6379
+
6380
+ if (foundField) {
6381
+ foundField.rules = foundField.rules ? foundField.rules : [];
6382
+ foundField.rules.push(this.rule);
6383
+ }
6384
+ } else {
6385
+ Object.assign(foundRule, this.innerRule);
6386
+ }
6387
+ }
6388
+ },
6389
+ onActivateTab: function onActivateTab(index) {
6390
+ if (index > 0) {
6391
+ this.copyToInnerFormConfig();
6392
+ this.applyRuleToInnerFormConfig();
6393
+ }
6394
+ },
6395
+ getDefaultState: function getDefaultState() {
6396
+ return {
6397
+ name: null,
6398
+ event: null,
6399
+ script: null
6400
+ };
6401
+ },
6402
+ getDefaultRule: function getDefaultRule() {
6403
+ return {
6404
+ id: v4(),
6405
+ name: null,
6406
+ event: null,
6407
+ script: null
6408
+ };
6409
+ },
6410
+ resetModal: function resetModal() {
6411
+ this.state = this.getDefaultState();
6412
+ this.innerRule = null;
6413
+ },
6414
+ addVariableToScript: function addVariableToScript(varName) {
6415
+ var r = this.innerRule;
6416
+ r.script = r.script ? r.script + varName : varName;
6417
+ },
6418
+ addSetVariableToScript: function addSetVariableToScript(field) {
6419
+ var r = this.innerRule;
6420
+ var setVariableScript = "doc['".concat(field.name, "'] = \u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435;");
6421
+ r.script = r.script ? r.script + setVariableScript : setVariableScript;
6422
+ },
6423
+ addCallInputFunction: function addCallInputFunction(field) {
6424
+ var r = this.innerRule;
6425
+ var setVariableScript = "form.$refs['".concat(field.name, "'].\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0444\u0443\u043D\u043A\u0446\u0438\u0438();");
6426
+ r.script = r.script ? r.script + setVariableScript : setVariableScript;
6427
+ },
6428
+ onRuleSelected: function onRuleSelected(ruleName) {
6429
+ var rule = this.rulePresets.find(function (rule) {
6430
+ return rule.name === ruleName;
6431
+ });
6432
+
6433
+ if (rule) {
6434
+ Object.assign(this.innerRule, rule);
6435
+ this.innerRule.script = this.innerRule.script.trim();
6436
+ }
6437
+ },
6438
+ onOk: function onOk() {
6439
+ var _this2 = this;
6440
+
6441
+ this.validateFields();
6442
+
6443
+ if (this.state.name && this.state.script) {
6444
+ if (this.onAfterOk) {
6445
+ this.onAfterOk(this.innerRule);
6446
+ }
6447
+
6448
+ this.$nextTick(function () {
6449
+ _this2.resetModal();
6450
+
6451
+ _this2.$bvModal.hide(_this2.id);
6452
+ });
6453
+ }
6454
+ }
6455
+ },
6456
+ created: function created() {
6457
+ this.copyToInnerFormConfig();
6458
+ }
6459
+ };/* script */
6460
+ var __vue_script__$3 = script$3;
6461
+ /* template */
6462
+
6463
+ var __vue_render__$3 = function __vue_render__() {
6464
+ var _vm = this;
6465
+
6466
+ var _h = _vm.$createElement;
6467
+
6468
+ var _c = _vm._self._c || _h;
6469
+
6470
+ return _c('b-modal', {
6471
+ attrs: {
6472
+ "id": _vm.id,
6473
+ "title": _vm.title,
6474
+ "modal-class": "rb-field-rule-form-modal",
6475
+ "size": "lg",
6476
+ "ok-title": "Сохранить правило",
6477
+ "cancel-variant": "outline-gray",
6478
+ "cancel-title": "Отмена"
6479
+ },
6480
+ on: {
6481
+ "ok": function ok($event) {
6482
+ $event.preventDefault();
6483
+ return _vm.onOk.apply(null, arguments);
6484
+ }
6485
+ }
6486
+ }, [_c('b-card', {
6487
+ attrs: {
6488
+ "no-body": ""
6489
+ }
6490
+ }, [_c('b-tabs', {
6491
+ attrs: {
6492
+ "card": ""
6493
+ },
6494
+ on: {
6495
+ "activate-tab": _vm.onActivateTab
6496
+ }
6497
+ }, [_c('b-tab', {
6498
+ attrs: {
6499
+ "title": "Правило",
6500
+ "active": ""
6501
+ }
6502
+ }, [_vm.innerRule ? _c('b-form', [_c('b-form-row', [_c('b-col', {
6503
+ attrs: {
6504
+ "log": "12"
6505
+ }
6506
+ }, [_vm.rulePresets.length > 0 ? _c('b-form-group', {
6507
+ attrs: {
6508
+ "label": "Выбрать"
6509
+ },
6510
+ scopedSlots: _vm._u([{
6511
+ key: "description",
6512
+ fn: function fn() {
6513
+ return [_vm._v("\n Выберите готовое правило из списка и если нужно, измените\n ")];
6514
+ },
6515
+ proxy: true
6516
+ }], null, false, 3419583775)
6517
+ }, [_vm._v(" "), _c('b-form-select', {
6518
+ on: {
6519
+ "input": function input($event) {
6520
+ return _vm.onRuleSelected($event);
6521
+ }
6522
+ }
6523
+ }, _vm._l(_vm.rulePresets, function (r) {
6524
+ return _c('b-form-select-option', {
6525
+ key: r.name,
6526
+ attrs: {
6527
+ "value": r.name
6528
+ }
6529
+ }, [_vm._v("\n " + _vm._s(r.name) + "\n ")]);
6530
+ }), 1)], 1) : _vm._e()], 1), _vm._v(" "), _c('b-col', {
6531
+ attrs: {
6532
+ "lg": "12"
6533
+ }
6534
+ }, [_c('b-form-group', {
6535
+ attrs: {
6536
+ "label": "Название"
6537
+ },
6538
+ scopedSlots: _vm._u([{
6539
+ key: "description",
6540
+ fn: function fn() {
6541
+ return [_vm._v("\n Задайте уникальное название, чтобы отличать правило в списке\n ")];
6542
+ },
6543
+ proxy: true
6544
+ }], null, false, 3665649506)
6545
+ }, [_vm._v(" "), _c('b-form-input', {
6546
+ attrs: {
6547
+ "state": _vm.state.name,
6548
+ "invalid-feedback": _vm.state.name_feedback
6549
+ },
6550
+ model: {
6551
+ value: _vm.innerRule.name,
6552
+ callback: function callback($$v) {
6553
+ _vm.$set(_vm.innerRule, "name", $$v);
6554
+ },
6555
+ expression: "innerRule.name"
6061
6556
  }
6062
- },
6063
- created: function created() {
6064
- this.handleFacetsProp();
6065
- }
6066
- };/* script */
6067
- var __vue_script__$3 = script$3;
6068
- /* template */
6069
-
6070
- var __vue_render__$3 = function __vue_render__() {
6071
- var _vm = this;
6072
-
6073
- var _h = _vm.$createElement;
6074
-
6075
- var _c = _vm._self._c || _h;
6076
-
6077
- return _c('div', {
6078
- staticClass: "rb-facets-sidebar"
6079
- }, [_vm._ssrNode("<h4>Компоненты</h4> "), _c('b-form', [_c('b-form-row', [_c('b-col', {
6557
+ })], 1)], 1), _vm._v(" "), _c('b-col', {
6080
6558
  attrs: {
6081
6559
  "lg": "12"
6082
6560
  }
6083
- }, [_c('b-form-group', [_c('b-form-input', {
6561
+ }, [_c('b-form-group', {
6084
6562
  attrs: {
6085
- "placeholder": "Название поля"
6563
+ "label": "Событие"
6564
+ },
6565
+ scopedSlots: _vm._u([{
6566
+ key: "description",
6567
+ fn: function fn() {
6568
+ return [_vm._v("\n При возникновении этого события будет выполняться правило\n ")];
6569
+ },
6570
+ proxy: true
6571
+ }], null, false, 1461632685)
6572
+ }, [_vm._v(" "), _c('b-form-select', {
6573
+ attrs: {
6574
+ "state": _vm.state.event,
6575
+ "invalid-feedback": _vm.state.event_feedback
6086
6576
  },
6087
6577
  model: {
6088
- value: _vm.facetSearchStr,
6578
+ value: _vm.innerRule.event,
6089
6579
  callback: function callback($$v) {
6090
- _vm.facetSearchStr = $$v;
6580
+ _vm.$set(_vm.innerRule, "event", $$v);
6091
6581
  },
6092
- expression: "facetSearchStr"
6582
+ expression: "innerRule.event"
6093
6583
  }
6094
- })], 1)], 1)], 1)], 1), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"rb-facet-list\">", "</div>", _vm._l(_vm.innerFacets, function (facet) {
6095
- return _vm._ssrNode("<div class=\"rb-facet\">", "</div>", [_vm._ssrNode("<h6 class=\"rb-facet-label d-flex\">", "</h6>", [_c('rb-text', {
6096
- staticClass: "flex-fill"
6097
- }, [_vm._v(_vm._s(facet.labelRu))]), _vm._ssrNode(" "), _c('rb-icon', {
6098
- staticClass: "cursor-pointer",
6099
- attrs: {
6100
- "icon": facet.expanded ? _vm.iconCollapseFacet : _vm.iconExpandFacet
6584
+ }, [_c('b-form-select-option', {
6585
+ attrs: {
6586
+ "value": 'input'
6587
+ }
6588
+ }, [_vm._v("\n Ввод значения\n ")]), _vm._v(" "), _c('b-form-select-option', {
6589
+ attrs: {
6590
+ "value": 'change'
6591
+ }
6592
+ }, [_vm._v("\n Изменение значения\n ")]), _vm._v(" "), _c('b-form-select-option', {
6593
+ attrs: {
6594
+ "value": 'click'
6595
+ }
6596
+ }, [_vm._v("\n Клик\n ")])], 1)], 1)], 1), _vm._v(" "), _c('b-col', {
6597
+ attrs: {
6598
+ "lg": "12"
6599
+ }
6600
+ }, [_c('b-form-group', {
6601
+ attrs: {
6602
+ "label": "Скрипт"
6603
+ },
6604
+ scopedSlots: _vm._u([{
6605
+ key: "description",
6606
+ fn: function fn() {
6607
+ return [_vm._v("\n Здесь указывается скрипт правила. Скрипт должен быть написан на языке\n javascript\n ")];
6101
6608
  },
6609
+ proxy: true
6610
+ }], null, false, 2031959747)
6611
+ }, [_vm._v(" "), _c('div', {
6612
+ staticClass: "rb-script-input"
6613
+ }, [_c('b-button-toolbar', [_c('b-dropdown', {
6614
+ staticClass: "mx-1",
6615
+ attrs: {
6616
+ "text": "Переменные",
6617
+ "variant": "outline-secondary",
6618
+ "size": "sm"
6619
+ }
6620
+ }, [_c('b-dropdown-item', {
6621
+ on: {
6622
+ "click": function click($event) {
6623
+ return _vm.addVariableToScript('doc');
6624
+ }
6625
+ }
6626
+ }, [_vm._v("\n Документ\n ")]), _vm._v(" "), _c('b-dropdown-item', {
6627
+ on: {
6628
+ "click": function click($event) {
6629
+ return _vm.addVariableToScript('form');
6630
+ }
6631
+ }
6632
+ }, [_vm._v("\n Форма\n ")]), _vm._v(" "), _c('b-dropdown-item', {
6633
+ on: {
6634
+ "click": function click($event) {
6635
+ return _vm.addVariableToScript('event');
6636
+ }
6637
+ }
6638
+ }, [_vm._v("\n Значение события\n ")])], 1), _vm._v(" "), _c('b-dropdown', {
6639
+ staticClass: "mx-1",
6640
+ attrs: {
6641
+ "text": "Задать значение",
6642
+ "variant": "outline-secondary",
6643
+ "size": "sm"
6644
+ }
6645
+ }, _vm._l(_vm.fields, function (f) {
6646
+ return _vm.fields ? _c('b-dropdown-item', {
6647
+ key: f.name,
6102
6648
  on: {
6103
6649
  "click": function click($event) {
6104
- facet.expanded = !facet.expanded;
6650
+ return _vm.addSetVariableToScript(f);
6105
6651
  }
6106
6652
  }
6107
- })], 2), _vm._ssrNode(" "), facet.expanded ? _c('b-list-group', [_c('draggable', {
6108
- attrs: {
6109
- "clone": _vm.onFieldCloned,
6110
- "animation": 200,
6111
- "group": {
6112
- name: 'fields',
6113
- pull: 'clone',
6114
- put: false
6115
- },
6116
- "ghost-class": "rb-facet-field-moving"
6117
- },
6653
+ }, [_vm._v("\n " + _vm._s(f.name) + "\n ")]) : _vm._e();
6654
+ }), 1), _vm._v(" "), _c('b-dropdown', {
6655
+ staticClass: "mx-1",
6656
+ attrs: {
6657
+ "text": "Вызвать функцию инпута",
6658
+ "variant": "outline-secondary",
6659
+ "size": "sm"
6660
+ }
6661
+ }, _vm._l(_vm.fields, function (f) {
6662
+ return _vm.fields ? _c('b-dropdown-item', {
6663
+ key: f.name,
6118
6664
  on: {
6119
- "end": function end($event) {
6120
- return _vm.onFieldMoveEnd($event);
6665
+ "click": function click($event) {
6666
+ return _vm.addCallInputFunction(f);
6121
6667
  }
6122
- },
6123
- model: {
6124
- value: facet.fields,
6125
- callback: function callback($$v) {
6126
- _vm.$set(facet, "fields", $$v);
6127
- },
6128
- expression: "facet.fields"
6129
6668
  }
6130
- }, _vm._l(facet.fields, function (field) {
6131
- return _c('b-list-group-item', {
6132
- key: field.name,
6133
- staticClass: "cursor-pointer"
6134
- }, [_c('rb-text', [_vm._v(_vm._s(field.labelRu))])], 1);
6135
- }), 1)], 1) : _vm._e()], 2);
6136
- }), 0)], 2);
6669
+ }, [_vm._v("\n " + _vm._s(f.name) + "\n ")]) : _vm._e();
6670
+ }), 1)], 1), _vm._v(" "), _c('b-form-textarea', {
6671
+ attrs: {
6672
+ "state": _vm.state.script,
6673
+ "invalid-feedback": _vm.state.script_feedback,
6674
+ "rows": "8"
6675
+ },
6676
+ model: {
6677
+ value: _vm.innerRule.script,
6678
+ callback: function callback($$v) {
6679
+ _vm.$set(_vm.innerRule, "script", $$v);
6680
+ },
6681
+ expression: "innerRule.script"
6682
+ }
6683
+ })], 1)])], 1)], 1)], 1) : _vm._e()], 1), _vm._v(" "), _vm.innerFormConfig ? _c('b-tab', {
6684
+ attrs: {
6685
+ "title": "Протестировать правило"
6686
+ }
6687
+ }, [_c('doc-form', {
6688
+ attrs: {
6689
+ "form-config": _vm.innerFormConfig
6690
+ }
6691
+ })], 1) : _vm._e()], 1)], 1)], 1);
6137
6692
  };
6138
6693
 
6139
6694
  var __vue_staticRenderFns__$3 = [];
@@ -6145,7 +6700,7 @@ var __vue_inject_styles__$3 = undefined;
6145
6700
  var __vue_scope_id__$3 = undefined;
6146
6701
  /* module identifier */
6147
6702
 
6148
- var __vue_module_identifier__$3 = "data-v-5594436b";
6703
+ var __vue_module_identifier__$3 = "data-v-1b91cb29";
6149
6704
  /* functional template */
6150
6705
 
6151
6706
  var __vue_is_functional_template__$3 = false;
@@ -6155,14 +6710,16 @@ var __vue_is_functional_template__$3 = false;
6155
6710
 
6156
6711
  /* style inject shadow dom */
6157
6712
 
6158
- var __vue_component__$5 = /*#__PURE__*/normalizeComponent({
6713
+ var __vue_component__$4 = /*#__PURE__*/normalizeComponent({
6159
6714
  render: __vue_render__$3,
6160
6715
  staticRenderFns: __vue_staticRenderFns__$3
6161
6716
  }, __vue_inject_styles__$3, __vue_script__$3, __vue_scope_id__$3, __vue_is_functional_template__$3, __vue_module_identifier__$3, false, undefined, undefined, undefined);
6162
6717
 
6163
- var DocTemplateFacetList = __vue_component__$5;//
6164
- var script$2 = {
6718
+ var FieldRuleFormModal = __vue_component__$4;var script$2 = {
6165
6719
  name: 'DocTemplateFieldSidebar',
6720
+ components: {
6721
+ FieldRuleFormModal: FieldRuleFormModal
6722
+ },
6166
6723
  props: {
6167
6724
  value: {
6168
6725
  type: Object,
@@ -6171,24 +6728,37 @@ var script$2 = {
6171
6728
  visible: {
6172
6729
  type: Boolean,
6173
6730
  default: null
6174
- }
6731
+ },
6732
+ formConfig: Object
6175
6733
  },
6176
6734
  data: function data() {
6177
6735
  return {
6178
6736
  innerVisible: null,
6179
6737
  field: null,
6180
- currentInputName: null
6738
+ currentInputName: null,
6739
+ modalId: 'rb-field-rule-form-modal',
6740
+ ruleModalCfg: {
6741
+ rule: {},
6742
+ mode: 'ins'
6743
+ },
6744
+ rulesHash: v4()
6181
6745
  };
6182
6746
  },
6183
6747
  computed: {
6184
6748
  inputOptions: function inputOptions() {
6185
- return this.field ? UtFormConfig.getInputTypes(this.field) : [];
6749
+ return this.field ? UtFormConstructor.getInputTypes(this.field) : [];
6186
6750
  },
6187
6751
  iconCloseSidebar: function iconCloseSidebar() {
6188
- return UtFormConfig.config.icons.iconCloseFieldSidebar;
6752
+ return UtFormConstructor.config.icons.iconCloseFieldSidebar;
6189
6753
  },
6190
6754
  iconOpenSidebar: function iconOpenSidebar() {
6191
- return UtFormConfig.config.icons.iconOpenFieldSidebar;
6755
+ return UtFormConstructor.config.icons.iconOpenFieldSidebar;
6756
+ },
6757
+ iconAdd: function iconAdd() {
6758
+ return UtFormConstructor.config.icons.iconAdd;
6759
+ },
6760
+ rules: function rules() {
6761
+ return UtFormConstructor.getAvailableFieldRules(this.field);
6192
6762
  }
6193
6763
  },
6194
6764
  watch: {
@@ -6207,7 +6777,7 @@ var script$2 = {
6207
6777
  this.$emit('change', this.field);
6208
6778
  },
6209
6779
  currentInputName: function currentInputName() {
6210
- this.field.input = UtFormConfig.getInputTypeByName(this.currentInputName, this.field);
6780
+ this.field.input = UtFormConstructor.getInputTypeByName(this.currentInputName, this.field);
6211
6781
  }
6212
6782
  },
6213
6783
  methods: {
@@ -6230,6 +6800,50 @@ var script$2 = {
6230
6800
  } else {
6231
6801
  return {};
6232
6802
  }
6803
+ },
6804
+ addRule: function addRule() {
6805
+ var _this = this;
6806
+
6807
+ this.ruleModalCfg = {
6808
+ mode: 'ins',
6809
+ rule: {
6810
+ name: null,
6811
+ script: null
6812
+ },
6813
+ onAfterOk: function onAfterOk(rule) {
6814
+ _this.field.rules = _this.field.rules ? _this.field.rules : [];
6815
+
6816
+ _this.field.rules.push(_objectSpread2({}, rule));
6817
+
6818
+ _this.rulesHash = v4();
6819
+ }
6820
+ };
6821
+ this.$bvModal.show(this.modalId);
6822
+ },
6823
+ editRule: function editRule(rule, event) {
6824
+ if (event.target.classList && event.target.classList.contains('rb-remove-rule')) {
6825
+ return;
6826
+ }
6827
+
6828
+ this.ruleModalCfg = {
6829
+ mode: 'upd',
6830
+ rule: _objectSpread2({}, rule),
6831
+ onAfterOk: function onAfterOk(modalRule) {
6832
+ Object.assign(rule, modalRule);
6833
+ }
6834
+ };
6835
+ this.$bvModal.show(this.modalId);
6836
+ },
6837
+ removeRule: function removeRule(rule) {
6838
+ var index = this.field.rules.findIndex(function (r) {
6839
+ return r.id === rule.id;
6840
+ });
6841
+
6842
+ if (index >= 0) {
6843
+ this.field.rules.splice(index, 1);
6844
+ }
6845
+
6846
+ this.rulesHash = v4();
6233
6847
  }
6234
6848
  },
6235
6849
  created: function created() {
@@ -6435,7 +7049,7 @@ var __vue_render__$2 = function __vue_render__() {
6435
7049
  staticClass: "rb-form-section"
6436
7050
  }, [_c('div', {
6437
7051
  staticClass: "rb-title"
6438
- }, [_vm._v("\n Значение по-умолчанию\n ")]), _vm._v(" "), _c('b-form-row', [_c('b-col', {
7052
+ }, [_vm._v("Значение по-умолчанию")]), _vm._v(" "), _c('b-form-row', [_c('b-col', {
6439
7053
  attrs: {
6440
7054
  "lg": "12"
6441
7055
  }
@@ -6453,7 +7067,55 @@ var __vue_render__$2 = function __vue_render__() {
6453
7067
  },
6454
7068
  expression: "field.defaultValue"
6455
7069
  }
6456
- }, 'component', _vm.field.input.propsData, false))], 1)], 1)], 1)], 1) : _vm._e()]) : _vm._e()], 1);
7070
+ }, 'component', _vm.field.input.propsData, false))], 1)], 1)], 1)], 1) : _vm._e(), _vm._v(" "), _c('div', {
7071
+ staticClass: "rb-form-section"
7072
+ }, [_c('div', {
7073
+ staticClass: "rb-title"
7074
+ }, [_vm._v("Правила")]), _vm._v(" "), _c('b-list-group', {
7075
+ attrs: {
7076
+ "data-hash": _vm.rulesHash
7077
+ }
7078
+ }, [_vm._l(_vm.field.rules, function (rule) {
7079
+ return _c('b-list-group-item', {
7080
+ key: rule.id,
7081
+ staticClass: "cursor-pointer d-flex justify-content-between align-items-center",
7082
+ attrs: {
7083
+ "data-hash": _vm.rulesHash
7084
+ },
7085
+ on: {
7086
+ "click": function click($event) {
7087
+ return _vm.editRule(rule, $event);
7088
+ }
7089
+ }
7090
+ }, [_c('rb-text', [_vm._v(_vm._s(rule.name))]), _vm._v(" "), _c('rb-icon', {
7091
+ staticClass: "rb-remove-rule",
7092
+ attrs: {
7093
+ "icon": "icon-close"
7094
+ },
7095
+ on: {
7096
+ "click": function click($event) {
7097
+ return _vm.removeRule(rule);
7098
+ }
7099
+ }
7100
+ })], 1);
7101
+ }), _vm._v(" "), _c('b-list-group-item', {
7102
+ staticClass: "cursor-pointer",
7103
+ on: {
7104
+ "click": _vm.addRule
7105
+ }
7106
+ }, [_c('rb-icon', {
7107
+ attrs: {
7108
+ "icon": _vm.iconAdd
7109
+ }
7110
+ }), _vm._v(" "), _c('rb-text', [_vm._v("Добавить правило ...")])], 1)], 2)], 1)]) : _vm._e(), _vm._v(" "), _c('field-rule-form-modal', {
7111
+ attrs: {
7112
+ "rule": _vm.ruleModalCfg.rule,
7113
+ "form-config": _vm.formConfig,
7114
+ "field": _vm.field,
7115
+ "mode": _vm.ruleModalCfg.mode,
7116
+ "on-after-ok": _vm.ruleModalCfg.onAfterOk
7117
+ }
7118
+ })], 1);
6457
7119
  };
6458
7120
 
6459
7121
  var __vue_staticRenderFns__$2 = [];
@@ -6465,7 +7127,7 @@ var __vue_inject_styles__$2 = undefined;
6465
7127
  var __vue_scope_id__$2 = undefined;
6466
7128
  /* module identifier */
6467
7129
 
6468
- var __vue_module_identifier__$2 = "data-v-3dfc4527";
7130
+ var __vue_module_identifier__$2 = "data-v-6fd56ef5";
6469
7131
  /* functional template */
6470
7132
 
6471
7133
  var __vue_is_functional_template__$2 = false;
@@ -6475,12 +7137,12 @@ var __vue_is_functional_template__$2 = false;
6475
7137
 
6476
7138
  /* style inject shadow dom */
6477
7139
 
6478
- var __vue_component__$4 = /*#__PURE__*/normalizeComponent({
7140
+ var __vue_component__$3 = /*#__PURE__*/normalizeComponent({
6479
7141
  render: __vue_render__$2,
6480
7142
  staticRenderFns: __vue_staticRenderFns__$2
6481
7143
  }, __vue_inject_styles__$2, __vue_script__$2, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, false, undefined, undefined, undefined);
6482
7144
 
6483
- var DocTemplateFieldSidebar = __vue_component__$4;var script$1 = {
7145
+ var DocTemplateFieldSidebar = __vue_component__$3;var script$1 = {
6484
7146
  name: 'DocTemplateConstructor',
6485
7147
  components: {
6486
7148
  DocTemplateFacetList: DocTemplateFacetList,
@@ -6520,20 +7182,24 @@ var DocTemplateFieldSidebar = __vue_component__$4;var script$1 = {
6520
7182
  },
6521
7183
  computed: {
6522
7184
  iconAdd: function iconAdd() {
6523
- return UtFormConfig.config.icons.iconAdd;
7185
+ return UtFormConstructor.config.icons.iconAdd;
6524
7186
  },
6525
7187
  iconEdit: function iconEdit() {
6526
- return UtFormConfig.config.icons.iconEdit;
7188
+ return UtFormConstructor.config.icons.iconEdit;
6527
7189
  },
6528
7190
  iconDelete: function iconDelete() {
6529
- return UtFormConfig.config.icons.iconDelete;
7191
+ return UtFormConstructor.config.icons.iconDelete;
6530
7192
  },
6531
7193
  iconDrag: function iconDrag() {
6532
- return UtFormConfig.config.icons.iconDrag;
7194
+ return UtFormConstructor.config.icons.iconDrag;
6533
7195
  }
6534
7196
  },
6535
7197
  methods: {
6536
- showProperties: function showProperties(field) {
7198
+ showProperties: function showProperties(field, event) {
7199
+ if (event.target.classList && event.target.classList.contains('rb-remove-field')) {
7200
+ return;
7201
+ }
7202
+
6537
7203
  this.sidebarVisible = true;
6538
7204
  this.sidebarField = field;
6539
7205
  },
@@ -6604,11 +7270,8 @@ var DocTemplateFieldSidebar = __vue_component__$4;var script$1 = {
6604
7270
  var index = newIndex != null ? newIndex : -1;
6605
7271
 
6606
7272
  if (index < 0) {
6607
- column.fields.every(function (f, i) {
6608
- if (field.name === f.name) {
6609
- index = i;
6610
- return false;
6611
- }
7273
+ index = column.fields.findIndex(function (f) {
7274
+ return field.name === f.name;
6612
7275
  });
6613
7276
  }
6614
7277
 
@@ -6675,7 +7338,7 @@ var __vue_render__$1 = function __vue_render__() {
6675
7338
  on: {
6676
7339
  "fieldMoveEnd": _vm.onFieldMoveEnd
6677
7340
  }
6678
- }), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"rb-form-constructor flex-fill\">", "</div>", [_vm._ssrNode("<div class=\"rb-constructor-toolbar d-flex flex-row\">", "</div>", [_vm._ssrNode("<h4>Верстка документа</h4> "), _vm._ssrNode("<div class=\"rb-layout-buttons\">", "</div>", [_c('b-button', {
7341
+ }), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"rb-form-constructor flex-fill\">", "</div>", [_vm._ssrNode("<div class=\"rb-constructor-toolbar d-flex flex-row\">", "</div>", [_vm._ssrNode("<h4>Добавить секцию: </h4> "), _vm._ssrNode("<div class=\"rb-layout-buttons\">", "</div>", [_c('b-button', {
6679
7342
  attrs: {
6680
7343
  "pill": "",
6681
7344
  "variant": "outline-gray"
@@ -6685,7 +7348,7 @@ var __vue_render__$1 = function __vue_render__() {
6685
7348
  return _vm.addSection(1);
6686
7349
  }
6687
7350
  }
6688
- }, [_c('rb-text', [_vm._v("1 колонка")]), _vm._v(" "), _c('rb-icon', {
7351
+ }, [_c('rb-text', [_vm._v("Секция с 1 колонкой")]), _vm._v(" "), _c('rb-icon', {
6689
7352
  attrs: {
6690
7353
  "icon": _vm.iconAdd
6691
7354
  }
@@ -6699,7 +7362,7 @@ var __vue_render__$1 = function __vue_render__() {
6699
7362
  return _vm.addSection(2);
6700
7363
  }
6701
7364
  }
6702
- }, [_c('rb-text', [_vm._v("2 колонки")]), _vm._v(" "), _c('rb-icon', {
7365
+ }, [_c('rb-text', [_vm._v("Секция с 2 колонками")]), _vm._v(" "), _c('rb-icon', {
6703
7366
  attrs: {
6704
7367
  "icon": _vm.iconAdd
6705
7368
  }
@@ -6713,7 +7376,7 @@ var __vue_render__$1 = function __vue_render__() {
6713
7376
  return _vm.addSection(3);
6714
7377
  }
6715
7378
  }
6716
- }, [_c('rb-text', [_vm._v("3 колонки")]), _vm._v(" "), _c('rb-icon', {
7379
+ }, [_c('rb-text', [_vm._v("Секция с 3 колонками")]), _vm._v(" "), _c('rb-icon', {
6717
7380
  attrs: {
6718
7381
  "icon": _vm.iconAdd
6719
7382
  }
@@ -6813,7 +7476,7 @@ var __vue_render__$1 = function __vue_render__() {
6813
7476
  staticClass: "cursor-pointer",
6814
7477
  on: {
6815
7478
  "click": function click($event) {
6816
- return _vm.showProperties(field);
7479
+ return _vm.showProperties(field, $event);
6817
7480
  }
6818
7481
  }
6819
7482
  }, [_c('b-col', {
@@ -6833,6 +7496,7 @@ var __vue_render__$1 = function __vue_render__() {
6833
7496
  "icon": _vm.iconDrag
6834
7497
  }
6835
7498
  }), _vm._v(" "), _c('rb-text', [_vm._v(_vm._s(field.labelRu))]), _vm._v(" "), _c('rb-icon', {
7499
+ staticClass: "rb-remove-field",
6836
7500
  attrs: {
6837
7501
  "icon": _vm.iconDelete
6838
7502
  },
@@ -6857,7 +7521,8 @@ var __vue_render__$1 = function __vue_render__() {
6857
7521
  }), 1)]);
6858
7522
  }), 1)], 1), _vm._ssrNode(" "), _c('doc-template-field-sidebar', {
6859
7523
  attrs: {
6860
- "visible": _vm.sidebarVisible
7524
+ "visible": _vm.sidebarVisible,
7525
+ "form-config": _vm.formConfig
6861
7526
  },
6862
7527
  on: {
6863
7528
  "hide": function hide($event) {
@@ -6889,7 +7554,7 @@ var __vue_inject_styles__$1 = undefined;
6889
7554
  var __vue_scope_id__$1 = undefined;
6890
7555
  /* module identifier */
6891
7556
 
6892
- var __vue_module_identifier__$1 = "data-v-36f384ca";
7557
+ var __vue_module_identifier__$1 = "data-v-ed93df10";
6893
7558
  /* functional template */
6894
7559
 
6895
7560
  var __vue_is_functional_template__$1 = false;
@@ -6899,61 +7564,62 @@ var __vue_is_functional_template__$1 = false;
6899
7564
 
6900
7565
  /* style inject shadow dom */
6901
7566
 
6902
- var __vue_component__$2 = /*#__PURE__*/normalizeComponent({
7567
+ var __vue_component__$1 = /*#__PURE__*/normalizeComponent({
6903
7568
  render: __vue_render__$1,
6904
7569
  staticRenderFns: __vue_staticRenderFns__$1
6905
7570
  }, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, undefined, undefined, undefined);
6906
7571
 
6907
- var __vue_component__$3 = __vue_component__$2;//
6908
- //
6909
- //
6910
- //
6911
- //
6912
- //
6913
- //
6914
- //
6915
- //
6916
- //
6917
- //
6918
- //
6919
- //
6920
- //
6921
- //
6922
- //
6923
- //
6924
- //
6925
- //
6926
- //
6927
- //
6928
- //
6929
- //
6930
- //
6931
- //
7572
+ var __vue_component__$2 = __vue_component__$1;//
6932
7573
  var script = {
6933
7574
  name: 'DocForm',
6934
7575
  props: {
6935
- formConfig: Object
7576
+ formConfig: Object,
7577
+ applyDefaultValues: {
7578
+ type: Boolean,
7579
+ default: true
7580
+ },
7581
+ doc: {
7582
+ type: Object,
7583
+ default: function _default() {
7584
+ return {};
7585
+ }
7586
+ },
7587
+ validationState: {
7588
+ type: Object,
7589
+ default: function _default() {
7590
+ return {};
7591
+ }
7592
+ }
6936
7593
  },
6937
- data: function data() {
6938
- return {
6939
- doc: {
6940
- type: Object,
6941
- default: function _default() {
6942
- return {};
6943
- }
7594
+ methods: {
7595
+ onEventFired: function onEventFired(eventName, event, field) {
7596
+ var _this = this;
7597
+
7598
+ if (field.rules) {
7599
+ field.rules.forEach(function (rule) {
7600
+ if (rule.event === eventName && rule.script) {
7601
+ var ruleContext = UtFormConstructor.getRuleContext();
7602
+ ruleContext.form = _this;
7603
+ ruleContext.event = event;
7604
+ ruleContext.eventName = eventName;
7605
+ UtFormConstructor.runRule(ruleContext, rule.script);
7606
+ }
7607
+ });
6944
7608
  }
6945
- };
7609
+ }
6946
7610
  },
6947
7611
  created: function created() {
6948
- var _this = this;
7612
+ var _this2 = this;
6949
7613
 
6950
- this.formConfig.sections.forEach(function (r) {
6951
- r.columns.forEach(function (c) {
6952
- c.fields.forEach(function (f) {
6953
- _this.$set(_this.doc, f.name, f.defaultValue == null ? null : f.defaultValue);
7614
+ if (this.applyDefaultValues) {
7615
+ this.formConfig.sections.forEach(function (r) {
7616
+ r.columns.forEach(function (c) {
7617
+ c.fields.forEach(function (f) {
7618
+ _this2.$set(_this2.doc, f.name, f.defaultValue == null ? null : f.defaultValue);
7619
+ });
6954
7620
  });
6955
7621
  });
6956
- });
7622
+ }
6957
7623
  }
6958
7624
  };/* script */
6959
7625
  var __vue_script__ = script;
@@ -6977,14 +7643,10 @@ var __vue_render__ = function __vue_render__() {
6977
7643
  }, _vm._l(section.columns, function (column) {
6978
7644
  return _c('div', {
6979
7645
  key: column.index,
6980
- staticClass: "rb-form-column",
6981
- class: {
6982
- 'rb-single-column': section.columnCount === 1
6983
- }
6984
- }, _vm._l(column.fields, function (field) {
6985
- return _c('b-form-row', {
6986
- key: field.name,
6987
- staticClass: "cursor-pointer"
7646
+ staticClass: "rb-form-column"
7647
+ }, [_vm._l(column.fields, function (field) {
7648
+ return [field.visible ? _c('b-form-row', {
7649
+ key: field.name
6988
7650
  }, [_c('b-col', {
6989
7651
  attrs: {
6990
7652
  "lg": "12"
@@ -6996,7 +7658,24 @@ var __vue_render__ = function __vue_render__() {
6996
7658
  "label": field.labelRu
6997
7659
  }
6998
7660
  }, [_c(field.input.type, _vm._b({
7661
+ ref: field.name,
7662
+ refInFor: true,
6999
7663
  tag: "component",
7664
+ attrs: {
7665
+ "disabled": !field.editable,
7666
+ "state": _vm.validationState[field.name]
7667
+ },
7668
+ on: {
7669
+ "input": function input($event) {
7670
+ return _vm.onEventFired('input', $event, field);
7671
+ },
7672
+ "change": function change($event) {
7673
+ return _vm.onEventFired('change', $event, field);
7674
+ },
7675
+ "click": function click($event) {
7676
+ return _vm.onEventFired('click', $event, field);
7677
+ }
7678
+ },
7000
7679
  model: {
7001
7680
  value: _vm.doc[field.name],
7002
7681
  callback: function callback($$v) {
@@ -7004,8 +7683,8 @@ var __vue_render__ = function __vue_render__() {
7004
7683
  },
7005
7684
  expression: "doc[field.name]"
7006
7685
  }
7007
- }, 'component', field.input.propsData, false))], 1)], 1)], 1);
7008
- }), 1);
7686
+ }, 'component', field.input.propsData, false))], 1)], 1)], 1) : _vm._e()];
7687
+ })], 2);
7009
7688
  }), 0)]);
7010
7689
  }), 0);
7011
7690
  };
@@ -7019,7 +7698,7 @@ var __vue_inject_styles__ = undefined;
7019
7698
  var __vue_scope_id__ = undefined;
7020
7699
  /* module identifier */
7021
7700
 
7022
- var __vue_module_identifier__ = "data-v-25014ba0";
7701
+ var __vue_module_identifier__ = "data-v-a98da412";
7023
7702
  /* functional template */
7024
7703
 
7025
7704
  var __vue_is_functional_template__ = false;
@@ -7034,7 +7713,7 @@ var __vue_component__ = /*#__PURE__*/normalizeComponent({
7034
7713
  staticRenderFns: __vue_staticRenderFns__
7035
7714
  }, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);
7036
7715
 
7037
- var __vue_component__$1 = __vue_component__;/* eslint-disable import/prefer-default-export */var components$1=/*#__PURE__*/Object.freeze({__proto__:null,UtFormConfig:UtFormConfig,DocTemplateSectionModal:DocTemplateSectionModal,DocTemplateFacetList:DocTemplateFacetList,DocTemplateFieldSidebar:DocTemplateFieldSidebar,DocTemplateConstructor:__vue_component__$3,DocForm:__vue_component__$1});var install = function installRbDocumentFormConstructor(Vue) {
7716
+ var DocForm = __vue_component__;/* eslint-disable import/prefer-default-export */var components$1=/*#__PURE__*/Object.freeze({__proto__:null,UtFormConfig:UtFormConfig,DocTemplateSectionModal:DocTemplateSectionModal,DocTemplateFacetList:DocTemplateFacetList,DocTemplateFieldSidebar:DocTemplateFieldSidebar,DocTemplateConstructor:__vue_component__$2,DocForm:DocForm});var install = function installRbDocumentFormConstructor(Vue) {
7038
7717
  Object.entries(components$1).forEach(function (_ref) {
7039
7718
  var _ref2 = _slicedToArray(_ref, 2),
7040
7719
  componentName = _ref2[0],
@@ -7043,7 +7722,7 @@ var __vue_component__$1 = __vue_component__;/* eslint-disable import/prefer-defa
7043
7722
  Vue.component(componentName, component);
7044
7723
  });
7045
7724
  }; // Create module definition for Vue.use()
7046
- var components=/*#__PURE__*/Object.freeze({__proto__:null,'default':install,UtFormConfig:UtFormConfig,DocTemplateSectionModal:DocTemplateSectionModal,DocTemplateFacetList:DocTemplateFacetList,DocTemplateFieldSidebar:DocTemplateFieldSidebar,DocTemplateConstructor:__vue_component__$3,DocForm:__vue_component__$1});// only expose one global var, with component exports exposed as properties of
7725
+ var components=/*#__PURE__*/Object.freeze({__proto__:null,'default':install,UtFormConfig:UtFormConfig,DocTemplateSectionModal:DocTemplateSectionModal,DocTemplateFacetList:DocTemplateFacetList,DocTemplateFieldSidebar:DocTemplateFieldSidebar,DocTemplateConstructor:__vue_component__$2,DocForm:DocForm});// only expose one global var, with component exports exposed as properties of
7047
7726
  // that global var (eg. plugin.component)
7048
7727
 
7049
7728
  Object.entries(components).forEach(function (_ref) {