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.
@@ -369,13 +369,14 @@ const UtFormConstructor = {
369
369
  },
370
370
 
371
371
  runRule(context, script) {
372
- let appendScript = `
373
- var doc = this.form.doc;
374
- var form = this.form;
375
- var event = this.event;
376
- var eventName = this.eventName;
377
-
378
- `;
372
+ context = context ? context : {};
373
+ let appendScript = '';
374
+
375
+ for (let v in context) {
376
+ appendScript = appendScript + `var ${v} = this.${v};\n`;
377
+ }
378
+
379
+ appendScript = appendScript ? appendScript + '\n' : '';
379
380
 
380
381
  let func = function (script) {
381
382
  return eval(script);
@@ -6268,6 +6269,150 @@ function v4(options, buf, offset) {
6268
6269
 
6269
6270
  //
6270
6271
  var script$3 = {
6272
+ name: 'DocForm',
6273
+ props: {
6274
+ formConfig: Object,
6275
+ applyDefaultValues: {
6276
+ type: Boolean,
6277
+ default: true
6278
+ },
6279
+ doc: {
6280
+ type: Object,
6281
+ default: () => ({})
6282
+ },
6283
+ validationState: {
6284
+ type: Object,
6285
+ default: () => ({})
6286
+ }
6287
+ },
6288
+ methods: {
6289
+ onEventFired(eventName, event, field) {
6290
+ if (field.rules) {
6291
+ field.rules.forEach(rule => {
6292
+ if (rule.event === eventName && rule.script) {
6293
+ let ruleContext = UtFormConstructor.getRuleContext();
6294
+ ruleContext.form = this;
6295
+ ruleContext.doc = this.doc;
6296
+ ruleContext.event = event;
6297
+ ruleContext.eventName = eventName;
6298
+ UtFormConstructor.runRule(ruleContext, rule.script);
6299
+ }
6300
+ });
6301
+ }
6302
+ }
6303
+
6304
+ },
6305
+
6306
+ created() {
6307
+ if (this.applyDefaultValues) {
6308
+ this.formConfig.sections.forEach(r => {
6309
+ r.columns.forEach(c => {
6310
+ c.fields.forEach(f => {
6311
+ this.$set(this.doc, f.name, f.defaultValue == null ? null : f.defaultValue);
6312
+ });
6313
+ });
6314
+ });
6315
+ }
6316
+ }
6317
+
6318
+ };
6319
+
6320
+ /* script */
6321
+ const __vue_script__$3 = script$3;
6322
+ /* template */
6323
+
6324
+ var __vue_render__$3 = function () {
6325
+ var _vm = this;
6326
+
6327
+ var _h = _vm.$createElement;
6328
+
6329
+ var _c = _vm._self._c || _h;
6330
+
6331
+ return _c('b-form', {
6332
+ staticClass: "rb-doc-form"
6333
+ }, _vm._l(_vm.formConfig.sections, function (section) {
6334
+ return _c('div', {
6335
+ key: section.labelRu,
6336
+ staticClass: "rb-form-section"
6337
+ }, [_c('h4', [_vm._v(_vm._s(section.labelRu))]), _vm._v(" "), _c('div', {
6338
+ staticClass: "d-flex flex-row"
6339
+ }, _vm._l(section.columns, function (column) {
6340
+ return _c('div', {
6341
+ key: column.index,
6342
+ staticClass: "rb-form-column"
6343
+ }, [_vm._l(column.fields, function (field) {
6344
+ return [field.visible ? _c('b-form-row', {
6345
+ key: field.name
6346
+ }, [_c('b-col', {
6347
+ attrs: {
6348
+ "lg": "12"
6349
+ }
6350
+ }, [_c('b-form-group', {
6351
+ ref: "inputContainer",
6352
+ refInFor: true,
6353
+ attrs: {
6354
+ "label": field.labelRu
6355
+ }
6356
+ }, [_c(field.input.type, _vm._b({
6357
+ ref: field.name,
6358
+ refInFor: true,
6359
+ tag: "component",
6360
+ attrs: {
6361
+ "disabled": !field.editable,
6362
+ "state": _vm.validationState[field.name]
6363
+ },
6364
+ on: {
6365
+ "input": function ($event) {
6366
+ return _vm.onEventFired('input', $event, field);
6367
+ },
6368
+ "change": function ($event) {
6369
+ return _vm.onEventFired('change', $event, field);
6370
+ },
6371
+ "click": function ($event) {
6372
+ return _vm.onEventFired('click', $event, field);
6373
+ }
6374
+ },
6375
+ model: {
6376
+ value: _vm.doc[field.name],
6377
+ callback: function ($$v) {
6378
+ _vm.$set(_vm.doc, field.name, $$v);
6379
+ },
6380
+ expression: "doc[field.name]"
6381
+ }
6382
+ }, 'component', field.input.propsData, false))], 1)], 1)], 1) : _vm._e()];
6383
+ })], 2);
6384
+ }), 0)]);
6385
+ }), 0);
6386
+ };
6387
+
6388
+ var __vue_staticRenderFns__$3 = [];
6389
+ /* style */
6390
+
6391
+ const __vue_inject_styles__$3 = undefined;
6392
+ /* scoped */
6393
+
6394
+ const __vue_scope_id__$3 = undefined;
6395
+ /* module identifier */
6396
+
6397
+ const __vue_module_identifier__$3 = undefined;
6398
+ /* functional template */
6399
+
6400
+ const __vue_is_functional_template__$3 = false;
6401
+ /* style inject */
6402
+
6403
+ /* style inject SSR */
6404
+
6405
+ /* style inject shadow dom */
6406
+
6407
+ const __vue_component__$4 = /*#__PURE__*/normalizeComponent({
6408
+ render: __vue_render__$3,
6409
+ staticRenderFns: __vue_staticRenderFns__$3
6410
+ }, __vue_inject_styles__$3, __vue_script__$3, __vue_scope_id__$3, __vue_is_functional_template__$3, __vue_module_identifier__$3, false, undefined, undefined, undefined);
6411
+
6412
+ var DocForm = __vue_component__$4;
6413
+
6414
+ //
6415
+ var script$2 = {
6271
6416
  name: 'FieldRuleFormModal',
6272
6417
  components: {
6273
6418
  DocForm
@@ -6385,20 +6530,26 @@ var script$3 = {
6385
6530
  },
6386
6531
 
6387
6532
  addVariableToScript(varName) {
6388
- let r = this.innerRule;
6389
- r.script = r.script ? r.script + varName : varName;
6533
+ let caretPosition = this.$refs.scriptInput.selectionStart;
6534
+ this.insertTextToScript(varName, caretPosition);
6390
6535
  },
6391
6536
 
6392
6537
  addSetVariableToScript(field) {
6393
- let r = this.innerRule;
6394
- let setVariableScript = `doc['${field.name}'] = Значение;`;
6395
- r.script = r.script ? r.script + setVariableScript : setVariableScript;
6538
+ let caretPosition = this.$refs.scriptInput.selectionStart;
6539
+ this.insertTextToScript(`doc['${field.name}'] = Значение;`, caretPosition);
6396
6540
  },
6397
6541
 
6398
6542
  addCallInputFunction(field) {
6399
- let r = this.innerRule;
6400
- let setVariableScript = `form.$refs['${field.name}'].Название функции();`;
6401
- r.script = r.script ? r.script + setVariableScript : setVariableScript;
6543
+ let caretPosition = this.$refs.scriptInput.selectionStart;
6544
+ this.insertTextToScript(`form.$refs['${field.name}'][0].Название функции();`, caretPosition);
6545
+ },
6546
+
6547
+ insertTextToScript(text, position) {
6548
+ position = position != null ? position : this.script.length;
6549
+ this.innerRule.script = this.innerRule.script != null ? this.innerRule.script : '';
6550
+ let scriptSplit = this.innerRule.script.split('');
6551
+ scriptSplit.splice(position, 0, text);
6552
+ this.innerRule.script = scriptSplit.join('');
6402
6553
  },
6403
6554
 
6404
6555
  onRuleSelected(ruleName) {
@@ -6434,10 +6585,10 @@ var script$3 = {
6434
6585
  };
6435
6586
 
6436
6587
  /* script */
6437
- const __vue_script__$3 = script$3;
6588
+ const __vue_script__$2 = script$2;
6438
6589
  /* template */
6439
6590
 
6440
- var __vue_render__$3 = function () {
6591
+ var __vue_render__$2 = function () {
6441
6592
  var _vm = this;
6442
6593
 
6443
6594
  var _h = _vm.$createElement;
@@ -6503,7 +6654,7 @@ var __vue_render__$3 = function () {
6503
6654
  attrs: {
6504
6655
  "value": r.name
6505
6656
  }
6506
- }, [_vm._v("\n " + _vm._s(r.name) + "\n ")]);
6657
+ }, [_vm._v("\n " + _vm._s(r.labelRu) + " (" + _vm._s(r.name) + ")\n ")]);
6507
6658
  }), 1)], 1) : _vm._e()], 1), _vm._v(" "), _c('b-col', {
6508
6659
  attrs: {
6509
6660
  "lg": "12"
@@ -6627,7 +6778,7 @@ var __vue_render__$3 = function () {
6627
6778
  return _vm.addSetVariableToScript(f);
6628
6779
  }
6629
6780
  }
6630
- }, [_vm._v("\n " + _vm._s(f.name) + "\n ")]) : _vm._e();
6781
+ }, [_vm._v("\n " + _vm._s(f.labelRu) + " (" + _vm._s(f.name) + ")\n ")]) : _vm._e();
6631
6782
  }), 1), _vm._v(" "), _c('b-dropdown', {
6632
6783
  staticClass: "mx-1",
6633
6784
  attrs: {
@@ -6643,8 +6794,9 @@ var __vue_render__$3 = function () {
6643
6794
  return _vm.addCallInputFunction(f);
6644
6795
  }
6645
6796
  }
6646
- }, [_vm._v("\n " + _vm._s(f.name) + "\n ")]) : _vm._e();
6797
+ }, [_vm._v("\n " + _vm._s(f.labelRu) + " (" + _vm._s(f.name) + ")\n ")]) : _vm._e();
6647
6798
  }), 1)], 1), _vm._v(" "), _c('b-form-textarea', {
6799
+ ref: "scriptInput",
6648
6800
  attrs: {
6649
6801
  "state": _vm.state.script,
6650
6802
  "invalid-feedback": _vm.state.script_feedback,
@@ -6668,34 +6820,34 @@ var __vue_render__$3 = function () {
6668
6820
  })], 1) : _vm._e()], 1)], 1)], 1);
6669
6821
  };
6670
6822
 
6671
- var __vue_staticRenderFns__$3 = [];
6823
+ var __vue_staticRenderFns__$2 = [];
6672
6824
  /* style */
6673
6825
 
6674
- const __vue_inject_styles__$3 = undefined;
6826
+ const __vue_inject_styles__$2 = undefined;
6675
6827
  /* scoped */
6676
6828
 
6677
- const __vue_scope_id__$3 = undefined;
6829
+ const __vue_scope_id__$2 = undefined;
6678
6830
  /* module identifier */
6679
6831
 
6680
- const __vue_module_identifier__$3 = undefined;
6832
+ const __vue_module_identifier__$2 = undefined;
6681
6833
  /* functional template */
6682
6834
 
6683
- const __vue_is_functional_template__$3 = false;
6835
+ const __vue_is_functional_template__$2 = false;
6684
6836
  /* style inject */
6685
6837
 
6686
6838
  /* style inject SSR */
6687
6839
 
6688
6840
  /* style inject shadow dom */
6689
6841
 
6690
- const __vue_component__$4 = /*#__PURE__*/normalizeComponent({
6691
- render: __vue_render__$3,
6692
- staticRenderFns: __vue_staticRenderFns__$3
6693
- }, __vue_inject_styles__$3, __vue_script__$3, __vue_scope_id__$3, __vue_is_functional_template__$3, __vue_module_identifier__$3, false, undefined, undefined, undefined);
6842
+ const __vue_component__$3 = /*#__PURE__*/normalizeComponent({
6843
+ render: __vue_render__$2,
6844
+ staticRenderFns: __vue_staticRenderFns__$2
6845
+ }, __vue_inject_styles__$2, __vue_script__$2, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, false, undefined, undefined, undefined);
6694
6846
 
6695
- var FieldRuleFormModal = __vue_component__$4;
6847
+ var FieldRuleFormModal = __vue_component__$3;
6696
6848
 
6697
6849
  //
6698
- var script$2 = {
6850
+ var script$1 = {
6699
6851
  name: 'DocTemplateFieldSidebar',
6700
6852
  components: {
6701
6853
  FieldRuleFormModal
@@ -6852,10 +7004,10 @@ var script$2 = {
6852
7004
  };
6853
7005
 
6854
7006
  /* script */
6855
- const __vue_script__$2 = script$2;
7007
+ const __vue_script__$1 = script$1;
6856
7008
  /* template */
6857
7009
 
6858
- var __vue_render__$2 = function () {
7010
+ var __vue_render__$1 = function () {
6859
7011
  var _vm = this;
6860
7012
 
6861
7013
  var _h = _vm.$createElement;
@@ -7115,34 +7267,34 @@ var __vue_render__$2 = function () {
7115
7267
  })], 1);
7116
7268
  };
7117
7269
 
7118
- var __vue_staticRenderFns__$2 = [];
7270
+ var __vue_staticRenderFns__$1 = [];
7119
7271
  /* style */
7120
7272
 
7121
- const __vue_inject_styles__$2 = undefined;
7273
+ const __vue_inject_styles__$1 = undefined;
7122
7274
  /* scoped */
7123
7275
 
7124
- const __vue_scope_id__$2 = undefined;
7276
+ const __vue_scope_id__$1 = undefined;
7125
7277
  /* module identifier */
7126
7278
 
7127
- const __vue_module_identifier__$2 = undefined;
7279
+ const __vue_module_identifier__$1 = undefined;
7128
7280
  /* functional template */
7129
7281
 
7130
- const __vue_is_functional_template__$2 = false;
7282
+ const __vue_is_functional_template__$1 = false;
7131
7283
  /* style inject */
7132
7284
 
7133
7285
  /* style inject SSR */
7134
7286
 
7135
7287
  /* style inject shadow dom */
7136
7288
 
7137
- const __vue_component__$3 = /*#__PURE__*/normalizeComponent({
7138
- render: __vue_render__$2,
7139
- staticRenderFns: __vue_staticRenderFns__$2
7140
- }, __vue_inject_styles__$2, __vue_script__$2, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, false, undefined, undefined, undefined);
7289
+ const __vue_component__$2 = /*#__PURE__*/normalizeComponent({
7290
+ render: __vue_render__$1,
7291
+ staticRenderFns: __vue_staticRenderFns__$1
7292
+ }, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, undefined, undefined, undefined);
7141
7293
 
7142
- var DocTemplateFieldSidebar = __vue_component__$3;
7294
+ var DocTemplateFieldSidebar = __vue_component__$2;
7143
7295
 
7144
7296
  //
7145
- var script$1 = {
7297
+ var script = {
7146
7298
  name: 'DocTemplateConstructor',
7147
7299
  components: {
7148
7300
  DocTemplateFacetList,
@@ -7336,10 +7488,10 @@ var script$1 = {
7336
7488
  };
7337
7489
 
7338
7490
  /* script */
7339
- const __vue_script__$1 = script$1;
7491
+ const __vue_script__ = script;
7340
7492
  /* template */
7341
7493
 
7342
- var __vue_render__$1 = function () {
7494
+ var __vue_render__ = function () {
7343
7495
  var _vm = this;
7344
7496
 
7345
7497
  var _h = _vm.$createElement;
@@ -7570,149 +7722,6 @@ var __vue_render__$1 = function () {
7570
7722
  })], 1)], 1);
7571
7723
  };
7572
7724
 
7573
- var __vue_staticRenderFns__$1 = [];
7574
- /* style */
7575
-
7576
- const __vue_inject_styles__$1 = undefined;
7577
- /* scoped */
7578
-
7579
- const __vue_scope_id__$1 = undefined;
7580
- /* module identifier */
7581
-
7582
- const __vue_module_identifier__$1 = undefined;
7583
- /* functional template */
7584
-
7585
- const __vue_is_functional_template__$1 = false;
7586
- /* style inject */
7587
-
7588
- /* style inject SSR */
7589
-
7590
- /* style inject shadow dom */
7591
-
7592
- const __vue_component__$1 = /*#__PURE__*/normalizeComponent({
7593
- render: __vue_render__$1,
7594
- staticRenderFns: __vue_staticRenderFns__$1
7595
- }, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, undefined, undefined, undefined);
7596
-
7597
- var __vue_component__$2 = __vue_component__$1;
7598
-
7599
- //
7600
- var script = {
7601
- name: 'DocForm',
7602
- props: {
7603
- formConfig: Object,
7604
- applyDefaultValues: {
7605
- type: Boolean,
7606
- default: true
7607
- },
7608
- doc: {
7609
- type: Object,
7610
- default: () => ({})
7611
- },
7612
- validationState: {
7613
- type: Object,
7614
- default: () => ({})
7615
- }
7616
- },
7617
- methods: {
7618
- onEventFired(eventName, event, field) {
7619
- if (field.rules) {
7620
- field.rules.forEach(rule => {
7621
- if (rule.event === eventName && rule.script) {
7622
- let ruleContext = UtFormConstructor.getRuleContext();
7623
- ruleContext.form = this;
7624
- ruleContext.event = event;
7625
- ruleContext.eventName = eventName;
7626
- UtFormConstructor.runRule(ruleContext, rule.script);
7627
- }
7628
- });
7629
- }
7630
- }
7631
-
7632
- },
7633
-
7634
- created() {
7635
- if (this.applyDefaultValues) {
7636
- this.formConfig.sections.forEach(r => {
7637
- r.columns.forEach(c => {
7638
- c.fields.forEach(f => {
7639
- this.$set(this.doc, f.name, f.defaultValue == null ? null : f.defaultValue);
7640
- });
7641
- });
7642
- });
7643
- }
7644
- }
7645
-
7646
- };
7647
-
7648
- /* script */
7649
- const __vue_script__ = script;
7650
- /* template */
7651
-
7652
- var __vue_render__ = function () {
7653
- var _vm = this;
7654
-
7655
- var _h = _vm.$createElement;
7656
-
7657
- var _c = _vm._self._c || _h;
7658
-
7659
- return _c('b-form', {
7660
- staticClass: "rb-doc-form"
7661
- }, _vm._l(_vm.formConfig.sections, function (section) {
7662
- return _c('div', {
7663
- key: section.labelRu,
7664
- staticClass: "rb-form-section"
7665
- }, [_c('h4', [_vm._v(_vm._s(section.labelRu))]), _vm._v(" "), _c('div', {
7666
- staticClass: "d-flex flex-row"
7667
- }, _vm._l(section.columns, function (column) {
7668
- return _c('div', {
7669
- key: column.index,
7670
- staticClass: "rb-form-column"
7671
- }, [_vm._l(column.fields, function (field) {
7672
- return [field.visible ? _c('b-form-row', {
7673
- key: field.name
7674
- }, [_c('b-col', {
7675
- attrs: {
7676
- "lg": "12"
7677
- }
7678
- }, [_c('b-form-group', {
7679
- ref: "inputContainer",
7680
- refInFor: true,
7681
- attrs: {
7682
- "label": field.labelRu
7683
- }
7684
- }, [_c(field.input.type, _vm._b({
7685
- ref: field.name,
7686
- refInFor: true,
7687
- tag: "component",
7688
- attrs: {
7689
- "disabled": !field.editable,
7690
- "state": _vm.validationState[field.name]
7691
- },
7692
- on: {
7693
- "input": function ($event) {
7694
- return _vm.onEventFired('input', $event, field);
7695
- },
7696
- "change": function ($event) {
7697
- return _vm.onEventFired('change', $event, field);
7698
- },
7699
- "click": function ($event) {
7700
- return _vm.onEventFired('click', $event, field);
7701
- }
7702
- },
7703
- model: {
7704
- value: _vm.doc[field.name],
7705
- callback: function ($$v) {
7706
- _vm.$set(_vm.doc, field.name, $$v);
7707
- },
7708
- expression: "doc[field.name]"
7709
- }
7710
- }, 'component', field.input.propsData, false))], 1)], 1)], 1) : _vm._e()];
7711
- })], 2);
7712
- }), 0)]);
7713
- }), 0);
7714
- };
7715
-
7716
7725
  var __vue_staticRenderFns__ = [];
7717
7726
  /* style */
7718
7727
 
@@ -7737,7 +7746,7 @@ const __vue_component__ = /*#__PURE__*/normalizeComponent({
7737
7746
  staticRenderFns: __vue_staticRenderFns__
7738
7747
  }, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);
7739
7748
 
7740
- var DocForm = __vue_component__;
7749
+ var __vue_component__$1 = __vue_component__;
7741
7750
 
7742
7751
  /* eslint-disable import/prefer-default-export */
7743
7752
 
@@ -7748,7 +7757,8 @@ var components = /*#__PURE__*/Object.freeze({
7748
7757
  DocTemplateSectionModal: DocTemplateSectionModal,
7749
7758
  DocTemplateFacetList: DocTemplateFacetList,
7750
7759
  DocTemplateFieldSidebar: DocTemplateFieldSidebar,
7751
- DocTemplateConstructor: __vue_component__$2,
7760
+ DocTemplateConstructor: __vue_component__$1,
7761
+ FieldRuleFormModal: FieldRuleFormModal,
7752
7762
  DocForm: DocForm
7753
7763
  });
7754
7764
 
@@ -7761,4 +7771,4 @@ const install = function installRbDocumentFormConstructor(Vue) {
7761
7771
  });
7762
7772
  }; // Create module definition for Vue.use()
7763
7773
 
7764
- export { DocForm, __vue_component__$2 as DocTemplateConstructor, DocTemplateFacetList, DocTemplateFieldSidebar, DocTemplateSectionModal, UtFormConfig, UtFormConstructor, install as default };
7774
+ export { DocForm, __vue_component__$1 as DocTemplateConstructor, DocTemplateFacetList, DocTemplateFieldSidebar, DocTemplateSectionModal, FieldRuleFormModal, UtFormConfig, UtFormConstructor, install as default };