rb-document-form-constructor 0.1.7 → 0.2.1

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.
@@ -469,7 +469,14 @@ var UtFormConstructor = {
469
469
  return this.config.ruleContext;
470
470
  },
471
471
  runRule: function runRule(context, script) {
472
- 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 ";
472
+ context = context ? context : {};
473
+ var appendScript = '';
474
+
475
+ for (var v in context) {
476
+ appendScript = appendScript + "var ".concat(v, " = this.").concat(v, ";\n");
477
+ }
478
+
479
+ appendScript = appendScript ? appendScript + '\n' : '';
473
480
 
474
481
  var func = function func(script) {
475
482
  return eval(script);
@@ -6307,6 +6314,151 @@ function stringify(arr, offset = 0) {
6307
6314
  return stringify(rnds);
6308
6315
  }//
6309
6316
  var script$3 = {
6317
+ name: 'DocForm',
6318
+ props: {
6319
+ formConfig: Object,
6320
+ applyDefaultValues: {
6321
+ type: Boolean,
6322
+ default: true
6323
+ },
6324
+ doc: {
6325
+ type: Object,
6326
+ default: function _default() {
6327
+ return {};
6328
+ }
6329
+ },
6330
+ validationState: {
6331
+ type: Object,
6332
+ default: function _default() {
6333
+ return {};
6334
+ }
6335
+ }
6336
+ },
6337
+ methods: {
6338
+ onEventFired: function onEventFired(eventName, event, field) {
6339
+ var _this = this;
6340
+
6341
+ if (field.rules) {
6342
+ field.rules.forEach(function (rule) {
6343
+ if (rule.event === eventName && rule.script) {
6344
+ var ruleContext = UtFormConstructor.getRuleContext();
6345
+ ruleContext.form = _this;
6346
+ ruleContext.doc = _this.doc;
6347
+ ruleContext.event = event;
6348
+ ruleContext.eventName = eventName;
6349
+ UtFormConstructor.runRule(ruleContext, rule.script);
6350
+ }
6351
+ });
6352
+ }
6353
+ }
6354
+ },
6355
+ created: function created() {
6356
+ var _this2 = this;
6357
+
6358
+ if (this.applyDefaultValues) {
6359
+ this.formConfig.sections.forEach(function (r) {
6360
+ r.columns.forEach(function (c) {
6361
+ c.fields.forEach(function (f) {
6362
+ _this2.$set(_this2.doc, f.name, f.defaultValue == null ? null : f.defaultValue);
6363
+ });
6364
+ });
6365
+ });
6366
+ }
6367
+ }
6368
+ };/* script */
6369
+ var __vue_script__$3 = script$3;
6370
+ /* template */
6371
+
6372
+ var __vue_render__$3 = function __vue_render__() {
6373
+ var _vm = this;
6374
+
6375
+ var _h = _vm.$createElement;
6376
+
6377
+ var _c = _vm._self._c || _h;
6378
+
6379
+ return _c('b-form', {
6380
+ staticClass: "rb-doc-form"
6381
+ }, _vm._l(_vm.formConfig.sections, function (section) {
6382
+ return _c('div', {
6383
+ key: section.labelRu,
6384
+ staticClass: "rb-form-section"
6385
+ }, [_c('h4', [_vm._v(_vm._s(section.labelRu))]), _vm._v(" "), _c('div', {
6386
+ staticClass: "d-flex flex-row"
6387
+ }, _vm._l(section.columns, function (column) {
6388
+ return _c('div', {
6389
+ key: column.index,
6390
+ staticClass: "rb-form-column"
6391
+ }, [_vm._l(column.fields, function (field) {
6392
+ return [field.visible ? _c('b-form-row', {
6393
+ key: field.name
6394
+ }, [_c('b-col', {
6395
+ attrs: {
6396
+ "lg": "12"
6397
+ }
6398
+ }, [_c('b-form-group', {
6399
+ ref: "inputContainer",
6400
+ refInFor: true,
6401
+ attrs: {
6402
+ "label": field.labelRu
6403
+ }
6404
+ }, [_c(field.input.type, _vm._b({
6405
+ ref: field.name,
6406
+ refInFor: true,
6407
+ tag: "component",
6408
+ attrs: {
6409
+ "disabled": !field.editable,
6410
+ "state": _vm.validationState[field.name]
6411
+ },
6412
+ on: {
6413
+ "input": function input($event) {
6414
+ return _vm.onEventFired('input', $event, field);
6415
+ },
6416
+ "change": function change($event) {
6417
+ return _vm.onEventFired('change', $event, field);
6418
+ },
6419
+ "click": function click($event) {
6420
+ return _vm.onEventFired('click', $event, field);
6421
+ }
6422
+ },
6423
+ model: {
6424
+ value: _vm.doc[field.name],
6425
+ callback: function callback($$v) {
6426
+ _vm.$set(_vm.doc, field.name, $$v);
6427
+ },
6428
+ expression: "doc[field.name]"
6429
+ }
6430
+ }, 'component', field.input.propsData, false))], 1)], 1)], 1) : _vm._e()];
6431
+ })], 2);
6432
+ }), 0)]);
6433
+ }), 0);
6434
+ };
6435
+
6436
+ var __vue_staticRenderFns__$3 = [];
6437
+ /* style */
6438
+
6439
+ var __vue_inject_styles__$3 = undefined;
6440
+ /* scoped */
6441
+
6442
+ var __vue_scope_id__$3 = undefined;
6443
+ /* module identifier */
6444
+
6445
+ var __vue_module_identifier__$3 = "data-v-c3fb224c";
6446
+ /* functional template */
6447
+
6448
+ var __vue_is_functional_template__$3 = false;
6449
+ /* style inject */
6450
+
6451
+ /* style inject SSR */
6452
+
6453
+ /* style inject shadow dom */
6454
+
6455
+ var __vue_component__$4 = /*#__PURE__*/normalizeComponent({
6456
+ render: __vue_render__$3,
6457
+ staticRenderFns: __vue_staticRenderFns__$3
6458
+ }, __vue_inject_styles__$3, __vue_script__$3, __vue_scope_id__$3, __vue_is_functional_template__$3, __vue_module_identifier__$3, false, undefined, undefined, undefined);
6459
+
6460
+ var DocForm = __vue_component__$4;//
6461
+ var script$2 = {
6310
6462
  name: 'FieldRuleFormModal',
6311
6463
  components: {
6312
6464
  DocForm: DocForm
@@ -6412,18 +6564,23 @@ var script$3 = {
6412
6564
  this.innerRule = null;
6413
6565
  },
6414
6566
  addVariableToScript: function addVariableToScript(varName) {
6415
- var r = this.innerRule;
6416
- r.script = r.script ? r.script + varName : varName;
6567
+ var caretPosition = this.$refs.scriptInput.selectionStart;
6568
+ this.insertTextToScript(varName, caretPosition);
6417
6569
  },
6418
6570
  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;
6571
+ var caretPosition = this.$refs.scriptInput.selectionStart;
6572
+ this.insertTextToScript("doc['".concat(field.name, "'] = \u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435;"), caretPosition);
6422
6573
  },
6423
6574
  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;
6575
+ var caretPosition = this.$refs.scriptInput.selectionStart;
6576
+ this.insertTextToScript("form.$refs['".concat(field.name, "'][0].\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0444\u0443\u043D\u043A\u0446\u0438\u0438();"), caretPosition);
6577
+ },
6578
+ insertTextToScript: function insertTextToScript(text, position) {
6579
+ position = position != null ? position : this.script.length;
6580
+ this.innerRule.script = this.innerRule.script != null ? this.innerRule.script : '';
6581
+ var scriptSplit = this.innerRule.script.split('');
6582
+ scriptSplit.splice(position, 0, text);
6583
+ this.innerRule.script = scriptSplit.join('');
6427
6584
  },
6428
6585
  onRuleSelected: function onRuleSelected(ruleName) {
6429
6586
  var rule = this.rulePresets.find(function (rule) {
@@ -6457,10 +6614,10 @@ var script$3 = {
6457
6614
  this.copyToInnerFormConfig();
6458
6615
  }
6459
6616
  };/* script */
6460
- var __vue_script__$3 = script$3;
6617
+ var __vue_script__$2 = script$2;
6461
6618
  /* template */
6462
6619
 
6463
- var __vue_render__$3 = function __vue_render__() {
6620
+ var __vue_render__$2 = function __vue_render__() {
6464
6621
  var _vm = this;
6465
6622
 
6466
6623
  var _h = _vm.$createElement;
@@ -6526,7 +6683,7 @@ var __vue_render__$3 = function __vue_render__() {
6526
6683
  attrs: {
6527
6684
  "value": r.name
6528
6685
  }
6529
- }, [_vm._v("\n " + _vm._s(r.name) + "\n ")]);
6686
+ }, [_vm._v("\n " + _vm._s(r.labelRu) + " (" + _vm._s(r.name) + ")\n ")]);
6530
6687
  }), 1)], 1) : _vm._e()], 1), _vm._v(" "), _c('b-col', {
6531
6688
  attrs: {
6532
6689
  "lg": "12"
@@ -6650,7 +6807,7 @@ var __vue_render__$3 = function __vue_render__() {
6650
6807
  return _vm.addSetVariableToScript(f);
6651
6808
  }
6652
6809
  }
6653
- }, [_vm._v("\n " + _vm._s(f.name) + "\n ")]) : _vm._e();
6810
+ }, [_vm._v("\n " + _vm._s(f.labelRu) + " (" + _vm._s(f.name) + ")\n ")]) : _vm._e();
6654
6811
  }), 1), _vm._v(" "), _c('b-dropdown', {
6655
6812
  staticClass: "mx-1",
6656
6813
  attrs: {
@@ -6666,8 +6823,9 @@ var __vue_render__$3 = function __vue_render__() {
6666
6823
  return _vm.addCallInputFunction(f);
6667
6824
  }
6668
6825
  }
6669
- }, [_vm._v("\n " + _vm._s(f.name) + "\n ")]) : _vm._e();
6826
+ }, [_vm._v("\n " + _vm._s(f.labelRu) + " (" + _vm._s(f.name) + ")\n ")]) : _vm._e();
6670
6827
  }), 1)], 1), _vm._v(" "), _c('b-form-textarea', {
6828
+ ref: "scriptInput",
6671
6829
  attrs: {
6672
6830
  "state": _vm.state.script,
6673
6831
  "invalid-feedback": _vm.state.script_feedback,
@@ -6691,31 +6849,31 @@ var __vue_render__$3 = function __vue_render__() {
6691
6849
  })], 1) : _vm._e()], 1)], 1)], 1);
6692
6850
  };
6693
6851
 
6694
- var __vue_staticRenderFns__$3 = [];
6852
+ var __vue_staticRenderFns__$2 = [];
6695
6853
  /* style */
6696
6854
 
6697
- var __vue_inject_styles__$3 = undefined;
6855
+ var __vue_inject_styles__$2 = undefined;
6698
6856
  /* scoped */
6699
6857
 
6700
- var __vue_scope_id__$3 = undefined;
6858
+ var __vue_scope_id__$2 = undefined;
6701
6859
  /* module identifier */
6702
6860
 
6703
- var __vue_module_identifier__$3 = "data-v-1b91cb29";
6861
+ var __vue_module_identifier__$2 = "data-v-3e86235a";
6704
6862
  /* functional template */
6705
6863
 
6706
- var __vue_is_functional_template__$3 = false;
6864
+ var __vue_is_functional_template__$2 = false;
6707
6865
  /* style inject */
6708
6866
 
6709
6867
  /* style inject SSR */
6710
6868
 
6711
6869
  /* style inject shadow dom */
6712
6870
 
6713
- var __vue_component__$4 = /*#__PURE__*/normalizeComponent({
6714
- render: __vue_render__$3,
6715
- staticRenderFns: __vue_staticRenderFns__$3
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);
6871
+ var __vue_component__$3 = /*#__PURE__*/normalizeComponent({
6872
+ render: __vue_render__$2,
6873
+ staticRenderFns: __vue_staticRenderFns__$2
6874
+ }, __vue_inject_styles__$2, __vue_script__$2, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, false, undefined, undefined, undefined);
6717
6875
 
6718
- var FieldRuleFormModal = __vue_component__$4;var script$2 = {
6876
+ var FieldRuleFormModal = __vue_component__$3;var script$1 = {
6719
6877
  name: 'DocTemplateFieldSidebar',
6720
6878
  components: {
6721
6879
  FieldRuleFormModal: FieldRuleFormModal
@@ -6855,10 +7013,10 @@ var FieldRuleFormModal = __vue_component__$4;var script$2 = {
6855
7013
  }
6856
7014
  }
6857
7015
  };/* script */
6858
- var __vue_script__$2 = script$2;
7016
+ var __vue_script__$1 = script$1;
6859
7017
  /* template */
6860
7018
 
6861
- var __vue_render__$2 = function __vue_render__() {
7019
+ var __vue_render__$1 = function __vue_render__() {
6862
7020
  var _vm = this;
6863
7021
 
6864
7022
  var _h = _vm.$createElement;
@@ -7118,31 +7276,31 @@ var __vue_render__$2 = function __vue_render__() {
7118
7276
  })], 1);
7119
7277
  };
7120
7278
 
7121
- var __vue_staticRenderFns__$2 = [];
7279
+ var __vue_staticRenderFns__$1 = [];
7122
7280
  /* style */
7123
7281
 
7124
- var __vue_inject_styles__$2 = undefined;
7282
+ var __vue_inject_styles__$1 = undefined;
7125
7283
  /* scoped */
7126
7284
 
7127
- var __vue_scope_id__$2 = undefined;
7285
+ var __vue_scope_id__$1 = undefined;
7128
7286
  /* module identifier */
7129
7287
 
7130
- var __vue_module_identifier__$2 = "data-v-6fd56ef5";
7288
+ var __vue_module_identifier__$1 = "data-v-6fd56ef5";
7131
7289
  /* functional template */
7132
7290
 
7133
- var __vue_is_functional_template__$2 = false;
7291
+ var __vue_is_functional_template__$1 = false;
7134
7292
  /* style inject */
7135
7293
 
7136
7294
  /* style inject SSR */
7137
7295
 
7138
7296
  /* style inject shadow dom */
7139
7297
 
7140
- var __vue_component__$3 = /*#__PURE__*/normalizeComponent({
7141
- render: __vue_render__$2,
7142
- staticRenderFns: __vue_staticRenderFns__$2
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);
7298
+ var __vue_component__$2 = /*#__PURE__*/normalizeComponent({
7299
+ render: __vue_render__$1,
7300
+ staticRenderFns: __vue_staticRenderFns__$1
7301
+ }, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, undefined, undefined, undefined);
7144
7302
 
7145
- var DocTemplateFieldSidebar = __vue_component__$3;var script$1 = {
7303
+ var DocTemplateFieldSidebar = __vue_component__$2;var script = {
7146
7304
  name: 'DocTemplateConstructor',
7147
7305
  components: {
7148
7306
  DocTemplateFacetList: DocTemplateFacetList,
@@ -7319,10 +7477,10 @@ var DocTemplateFieldSidebar = __vue_component__$3;var script$1 = {
7319
7477
  }
7320
7478
  }
7321
7479
  };/* script */
7322
- var __vue_script__$1 = script$1;
7480
+ var __vue_script__ = script;
7323
7481
  /* template */
7324
7482
 
7325
- var __vue_render__$1 = function __vue_render__() {
7483
+ var __vue_render__ = function __vue_render__() {
7326
7484
  var _vm = this;
7327
7485
 
7328
7486
  var _h = _vm.$createElement;
@@ -7545,150 +7703,6 @@ var __vue_render__$1 = function __vue_render__() {
7545
7703
  })], 2)], 2);
7546
7704
  };
7547
7705
 
7548
- var __vue_staticRenderFns__$1 = [];
7549
- /* style */
7550
-
7551
- var __vue_inject_styles__$1 = undefined;
7552
- /* scoped */
7553
-
7554
- var __vue_scope_id__$1 = undefined;
7555
- /* module identifier */
7556
-
7557
- var __vue_module_identifier__$1 = "data-v-ed93df10";
7558
- /* functional template */
7559
-
7560
- var __vue_is_functional_template__$1 = false;
7561
- /* style inject */
7562
-
7563
- /* style inject SSR */
7564
-
7565
- /* style inject shadow dom */
7566
-
7567
- var __vue_component__$1 = /*#__PURE__*/normalizeComponent({
7568
- render: __vue_render__$1,
7569
- staticRenderFns: __vue_staticRenderFns__$1
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);
7571
-
7572
- var __vue_component__$2 = __vue_component__$1;//
7573
- var script = {
7574
- name: 'DocForm',
7575
- props: {
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
- }
7593
- },
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
- });
7608
- }
7609
- }
7610
- },
7611
- created: function created() {
7612
- var _this2 = this;
7613
-
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
- });
7620
- });
7621
- });
7622
- }
7623
- }
7624
- };/* script */
7625
- var __vue_script__ = script;
7626
- /* template */
7627
-
7628
- var __vue_render__ = function __vue_render__() {
7629
- var _vm = this;
7630
-
7631
- var _h = _vm.$createElement;
7632
-
7633
- var _c = _vm._self._c || _h;
7634
-
7635
- return _c('b-form', {
7636
- staticClass: "rb-doc-form"
7637
- }, _vm._l(_vm.formConfig.sections, function (section) {
7638
- return _c('div', {
7639
- key: section.labelRu,
7640
- staticClass: "rb-form-section"
7641
- }, [_c('h4', [_vm._v(_vm._s(section.labelRu))]), _vm._v(" "), _c('div', {
7642
- staticClass: "d-flex flex-row"
7643
- }, _vm._l(section.columns, function (column) {
7644
- return _c('div', {
7645
- key: column.index,
7646
- staticClass: "rb-form-column"
7647
- }, [_vm._l(column.fields, function (field) {
7648
- return [field.visible ? _c('b-form-row', {
7649
- key: field.name
7650
- }, [_c('b-col', {
7651
- attrs: {
7652
- "lg": "12"
7653
- }
7654
- }, [_c('b-form-group', {
7655
- ref: "inputContainer",
7656
- refInFor: true,
7657
- attrs: {
7658
- "label": field.labelRu
7659
- }
7660
- }, [_c(field.input.type, _vm._b({
7661
- ref: field.name,
7662
- refInFor: true,
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
- },
7679
- model: {
7680
- value: _vm.doc[field.name],
7681
- callback: function callback($$v) {
7682
- _vm.$set(_vm.doc, field.name, $$v);
7683
- },
7684
- expression: "doc[field.name]"
7685
- }
7686
- }, 'component', field.input.propsData, false))], 1)], 1)], 1) : _vm._e()];
7687
- })], 2);
7688
- }), 0)]);
7689
- }), 0);
7690
- };
7691
-
7692
7706
  var __vue_staticRenderFns__ = [];
7693
7707
  /* style */
7694
7708
 
@@ -7698,7 +7712,7 @@ var __vue_inject_styles__ = undefined;
7698
7712
  var __vue_scope_id__ = undefined;
7699
7713
  /* module identifier */
7700
7714
 
7701
- var __vue_module_identifier__ = "data-v-a98da412";
7715
+ var __vue_module_identifier__ = "data-v-ed93df10";
7702
7716
  /* functional template */
7703
7717
 
7704
7718
  var __vue_is_functional_template__ = false;
@@ -7713,7 +7727,7 @@ var __vue_component__ = /*#__PURE__*/normalizeComponent({
7713
7727
  staticRenderFns: __vue_staticRenderFns__
7714
7728
  }, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);
7715
7729
 
7716
- var DocForm = __vue_component__;/* eslint-disable import/prefer-default-export */var components$1=/*#__PURE__*/Object.freeze({__proto__:null,UtFormConfig:UtFormConfig,UtFormConstructor:UtFormConstructor,DocTemplateSectionModal:DocTemplateSectionModal,DocTemplateFacetList:DocTemplateFacetList,DocTemplateFieldSidebar:DocTemplateFieldSidebar,DocTemplateConstructor:__vue_component__$2,DocForm:DocForm});var install = function installRbDocumentFormConstructor(Vue) {
7730
+ var __vue_component__$1 = __vue_component__;/* eslint-disable import/prefer-default-export */var components$1=/*#__PURE__*/Object.freeze({__proto__:null,UtFormConfig:UtFormConfig,UtFormConstructor:UtFormConstructor,DocTemplateSectionModal:DocTemplateSectionModal,DocTemplateFacetList:DocTemplateFacetList,DocTemplateFieldSidebar:DocTemplateFieldSidebar,DocTemplateConstructor:__vue_component__$1,FieldRuleFormModal:FieldRuleFormModal,DocForm:DocForm});var install = function installRbDocumentFormConstructor(Vue) {
7717
7731
  Object.entries(components$1).forEach(function (_ref) {
7718
7732
  var _ref2 = _slicedToArray(_ref, 2),
7719
7733
  componentName = _ref2[0],
@@ -7722,7 +7736,7 @@ var DocForm = __vue_component__;/* eslint-disable import/prefer-default-export *
7722
7736
  Vue.component(componentName, component);
7723
7737
  });
7724
7738
  }; // Create module definition for Vue.use()
7725
- var components=/*#__PURE__*/Object.freeze({__proto__:null,'default':install,UtFormConfig:UtFormConfig,UtFormConstructor:UtFormConstructor,DocTemplateSectionModal:DocTemplateSectionModal,DocTemplateFacetList:DocTemplateFacetList,DocTemplateFieldSidebar:DocTemplateFieldSidebar,DocTemplateConstructor:__vue_component__$2,DocForm:DocForm});// only expose one global var, with component exports exposed as properties of
7739
+ var components=/*#__PURE__*/Object.freeze({__proto__:null,'default':install,UtFormConfig:UtFormConfig,UtFormConstructor:UtFormConstructor,DocTemplateSectionModal:DocTemplateSectionModal,DocTemplateFacetList:DocTemplateFacetList,DocTemplateFieldSidebar:DocTemplateFieldSidebar,DocTemplateConstructor:__vue_component__$1,FieldRuleFormModal:FieldRuleFormModal,DocForm:DocForm});// only expose one global var, with component exports exposed as properties of
7726
7740
  // that global var (eg. plugin.component)
7727
7741
 
7728
7742
  Object.entries(components).forEach(function (_ref) {
@@ -98,10 +98,13 @@
98
98
  }
99
99
  }
100
100
 
101
- .rb-form-column:not(.rb-single-column) {
101
+ .rb-form-column {
102
102
  padding: 10px;
103
- margin: 0 10px;
104
103
  border: 2px dashed $rb-doc-template-constructor-form-column-border-color;
105
104
  }
105
+
106
+ .rb-form-column:not(.rb-single-column) {
107
+ margin: 0 10px;
108
+ }
106
109
  }
107
110
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rb-document-form-constructor",
3
- "version": "0.1.7",
3
+ "version": "0.2.1",
4
4
  "description": "",
5
5
  "main": "dist/rb-document-form-constructor.ssr.js",
6
6
  "browser": "dist/rb-document-form-constructor.esm.js",
@@ -47,6 +47,7 @@
47
47
  if (rule.event === eventName && rule.script) {
48
48
  let ruleContext = UtFormConstructor.getRuleContext();
49
49
  ruleContext.form = this;
50
+ ruleContext.doc = this.doc;
50
51
  ruleContext.event = event;
51
52
  ruleContext.eventName = eventName;
52
53
  UtFormConstructor.runRule(ruleContext, rule.script);
@@ -20,7 +20,7 @@
20
20
  <b-form-select @input="onRuleSelected($event)">
21
21
  <b-form-select-option v-for="r in rulePresets" :key="r.name"
22
22
  :value="r.name">
23
- {{r.name}}
23
+ {{r.labelRu}} ({{r.name}})
24
24
  </b-form-select-option>
25
25
  </b-form-select>
26
26
  </b-form-group>
@@ -80,14 +80,14 @@
80
80
  size="sm" class="mx-1">
81
81
  <b-dropdown-item v-for="f in fields" :key="f.name"
82
82
  v-if="fields" @click="addSetVariableToScript(f)">
83
- {{f.name}}
83
+ {{f.labelRu}} ({{f.name}})
84
84
  </b-dropdown-item>
85
85
  </b-dropdown>
86
86
  <b-dropdown text="Вызвать функцию инпута" variant="outline-secondary"
87
87
  size="sm" class="mx-1">
88
88
  <b-dropdown-item v-for="f in fields" :key="f.name"
89
89
  v-if="fields" @click="addCallInputFunction(f)">
90
- {{f.name}}
90
+ {{f.labelRu}} ({{f.name}})
91
91
  </b-dropdown-item>
92
92
  </b-dropdown>
93
93
  </b-button-toolbar>
@@ -95,6 +95,7 @@
95
95
  :state="state.script"
96
96
  :invalid-feedback="state.script_feedback"
97
97
  rows="8"
98
+ ref="scriptInput"
98
99
  ></b-form-textarea>
99
100
  </div>
100
101
  </b-form-group>
@@ -112,10 +113,10 @@
112
113
  </template>
113
114
 
114
115
  <script>
115
- import {DocForm} from "./index";
116
116
  import {UtFormConfig} from "../utils/UtFormConfig";
117
117
  import {v4 as uuidv4} from 'uuid';
118
118
  import {UtFormConstructor} from "../utils/UtFormConstructor";
119
+ import DocForm from "./DocForm";
119
120
 
120
121
  export default {
121
122
  name: 'FieldRuleFormModal',
@@ -219,18 +220,23 @@
219
220
  this.innerRule = null;
220
221
  },
221
222
  addVariableToScript(varName) {
222
- let r = this.innerRule;
223
- r.script = r.script ? r.script + varName : varName;
223
+ let caretPosition = this.$refs.scriptInput.selectionStart;
224
+ this.insertTextToScript(varName, caretPosition);
224
225
  },
225
226
  addSetVariableToScript(field) {
226
- let r = this.innerRule;
227
- let setVariableScript = `doc['${field.name}'] = Значение;`;
228
- r.script = r.script? r.script + setVariableScript: setVariableScript;
227
+ let caretPosition = this.$refs.scriptInput.selectionStart;
228
+ this.insertTextToScript(`doc['${field.name}'] = Значение;`, caretPosition);
229
229
  },
230
230
  addCallInputFunction(field) {
231
- let r = this.innerRule;
232
- let setVariableScript = `form.$refs['${field.name}'].Название функции();`;
233
- r.script = r.script? r.script + setVariableScript: setVariableScript;
231
+ let caretPosition = this.$refs.scriptInput.selectionStart;
232
+ this.insertTextToScript(`form.$refs['${field.name}'][0].Название функции();`, caretPosition);
233
+ },
234
+ insertTextToScript(text, position) {
235
+ position = position != null? position: this.script.length;
236
+ this.innerRule.script = this.innerRule.script != null? this.innerRule.script: '';
237
+ let scriptSplit = this.innerRule.script.split('');
238
+ scriptSplit.splice(position, 0, text);
239
+ this.innerRule.script = scriptSplit.join('');
234
240
  },
235
241
  onRuleSelected(ruleName) {
236
242
  let rule = this.rulePresets.find(rule => rule.name === ruleName);