tg-controls_cli 0.1.15 → 0.1.16

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.
@@ -35625,6 +35625,9 @@ __webpack_require__.d(__webpack_exports__, "CustomSelectField", function() { ret
35625
35625
  __webpack_require__.d(__webpack_exports__, "MultiSelectField", function() { return /* reexport */ MultiSelectField; });
35626
35626
  __webpack_require__.d(__webpack_exports__, "TextAreaField", function() { return /* reexport */ TextAreaField; });
35627
35627
  __webpack_require__.d(__webpack_exports__, "TreeSelectField", function() { return /* reexport */ TreeSelectField; });
35628
+ __webpack_require__.d(__webpack_exports__, "registerPreventReclickDirective", function() { return /* reexport */ registerPreventReclickDirective; });
35629
+ __webpack_require__.d(__webpack_exports__, "preventReclickDirective", function() { return /* reexport */ preventReclickDirective; });
35630
+ __webpack_require__.d(__webpack_exports__, "DEFAULT_PREVENT_RECLICK_MS", function() { return /* reexport */ DEFAULT_PREVENT_RECLICK_MS; });
35628
35631
 
35629
35632
  // NAMESPACE OBJECT: ./node_modules/vee-validate/dist/rules.js
35630
35633
  var rules_namespaceObject = {};
@@ -35674,7 +35677,7 @@ if (typeof window !== 'undefined') {
35674
35677
  // Indicate to webpack that this file can be concatenated
35675
35678
  /* harmony default export */ var setPublicPath = (null);
35676
35679
 
35677
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"54387704-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/DynamicForm.vue?vue&type=template&id=e35d8ea0
35680
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"54387704-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/DynamicForm.vue?vue&type=template&id=004c7652
35678
35681
  var render = function render() {
35679
35682
  var _vm = this,
35680
35683
  _c = _vm._self._c;
@@ -35799,14 +35802,26 @@ var render = function render() {
35799
35802
  }, [_vm.renderButtons(_vm.buttons).length == 0 ? _c('div', {
35800
35803
  class: _vm.buttonClasses
35801
35804
  }, [_c('button', {
35805
+ directives: [{
35806
+ name: "prevent-reclick",
35807
+ rawName: "v-prevent-reclick",
35808
+ value: _vm.effectivePreventReclickMs,
35809
+ expression: "effectivePreventReclickMs"
35810
+ }],
35802
35811
  staticClass: "btn btn-success",
35803
35812
  attrs: {
35804
35813
  "type": "submit"
35805
35814
  }
35806
- }, [_vm._v("Submit")])]) : _vm._e(), _vm.renderButtons(_vm.buttons).length >= 0 ? _c('div', {
35815
+ }, [_vm._v("Submit")])]) : _vm._e(), _vm.renderButtons(_vm.buttons).length > 0 ? _c('div', {
35807
35816
  class: _vm.buttonClasses
35808
35817
  }, [_vm._l(_vm.buttons, function (button, index) {
35809
35818
  return [button.type && button.type.toLowerCase() == 'submit' && (button.hasOwnProperty('isVisible') == false || button.hasOwnProperty('isVisible') && button.isVisible == true) ? _c('button', {
35819
+ directives: [{
35820
+ name: "prevent-reclick",
35821
+ rawName: "v-prevent-reclick",
35822
+ value: _vm.effectivePreventReclickMs,
35823
+ expression: "effectivePreventReclickMs"
35824
+ }],
35810
35825
  class: button.class,
35811
35826
  style: index > 0 ? 'margin-left:5px;' : '',
35812
35827
  attrs: {
@@ -35843,14 +35858,26 @@ var render = function render() {
35843
35858
  }, [_vm.renderButtons(_vm.buttons).length == 0 ? _c('div', {
35844
35859
  staticClass: "col-lg-6 col-md-6 text-right"
35845
35860
  }, [_c('button', {
35861
+ directives: [{
35862
+ name: "prevent-reclick",
35863
+ rawName: "v-prevent-reclick",
35864
+ value: _vm.effectivePreventReclickMs,
35865
+ expression: "effectivePreventReclickMs"
35866
+ }],
35846
35867
  staticClass: "btn btn-success",
35847
35868
  attrs: {
35848
35869
  "type": "submit"
35849
35870
  }
35850
- }, [_vm._v("Submit")])]) : _vm._e(), _vm.renderButtons(_vm.buttons).length >= 0 ? _c('div', {
35871
+ }, [_vm._v("Submit")])]) : _vm._e(), _vm.renderButtons(_vm.buttons).length > 0 ? _c('div', {
35851
35872
  staticClass: "col-lg-6 col-md-6 text-right"
35852
35873
  }, [_vm._l(_vm.buttons, function (button, index) {
35853
35874
  return [button.type && button.type.toLowerCase() == 'submit' && (button.hasOwnProperty('isVisible') == false || button.hasOwnProperty('isVisible') && button.isVisible == true) ? _c('button', {
35875
+ directives: [{
35876
+ name: "prevent-reclick",
35877
+ rawName: "v-prevent-reclick",
35878
+ value: _vm.effectivePreventReclickMs,
35879
+ expression: "effectivePreventReclickMs"
35880
+ }],
35854
35881
  class: button.class,
35855
35882
  style: index > 0 ? 'margin-left:5px;' : '',
35856
35883
  attrs: {
@@ -35890,7 +35917,7 @@ var render = function render() {
35890
35917
  };
35891
35918
  var staticRenderFns = [];
35892
35919
 
35893
- // CONCATENATED MODULE: ./src/components/DynamicForm.vue?vue&type=template&id=e35d8ea0
35920
+ // CONCATENATED MODULE: ./src/components/DynamicForm.vue?vue&type=template&id=004c7652
35894
35921
 
35895
35922
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
35896
35923
  var es_array_push = __webpack_require__("14d9");
@@ -45949,6 +45976,68 @@ var NumericRangeField_component = normalizeComponent(
45949
45976
  )
45950
45977
 
45951
45978
  /* harmony default export */ var NumericRangeField = (NumericRangeField_component.exports);
45979
+ // CONCATENATED MODULE: ./src/directives/preventReclick.js
45980
+ /**
45981
+ * Block repeat clicks within a cooldown (capture phase, runs before @click).
45982
+ *
45983
+ * Host app optional global default:
45984
+ * Vue.config.preventReclickDefaultMs = 2000;
45985
+ *
45986
+ * Usage:
45987
+ * <button v-prevent-reclick @click="save">Save</button>
45988
+ * <button v-prevent-reclick="500" @click="save">Save</button> // 500 ms
45989
+ * v-prevent-reclick="0" disables the guard on that element.
45990
+ */
45991
+
45992
+ var DEFAULT_PREVENT_RECLICK_MS = 2000;
45993
+ function getDefaultCooldownMs() {
45994
+ var cfg = external_commonjs_vue_commonjs2_vue_root_Vue_default.a.config && external_commonjs_vue_commonjs2_vue_root_Vue_default.a.config.preventReclickDefaultMs;
45995
+ if (typeof cfg === 'number' && cfg >= 0) {
45996
+ return cfg;
45997
+ }
45998
+ return DEFAULT_PREVENT_RECLICK_MS;
45999
+ }
46000
+ function resolveCooldown(binding) {
46001
+ if (typeof binding.value === 'number' && binding.value >= 0) {
46002
+ return binding.value;
46003
+ }
46004
+ return getDefaultCooldownMs();
46005
+ }
46006
+ var preventReclickDirective = {
46007
+ bind: function (el, binding) {
46008
+ el.__preventReclickCooldown = resolveCooldown(binding);
46009
+ var lastClickTime = 0;
46010
+ var handler = function (e) {
46011
+ var cooldownMs = el.__preventReclickCooldown;
46012
+ if (cooldownMs === 0) {
46013
+ return;
46014
+ }
46015
+ var now = Date.now();
46016
+ if (now - lastClickTime < cooldownMs) {
46017
+ e.preventDefault();
46018
+ e.stopImmediatePropagation();
46019
+ e.stopPropagation();
46020
+ return false;
46021
+ }
46022
+ lastClickTime = now;
46023
+ };
46024
+ el.addEventListener('click', handler, true);
46025
+ el.__preventReclickHandler = handler;
46026
+ },
46027
+ update: function (el, binding) {
46028
+ el.__preventReclickCooldown = resolveCooldown(binding);
46029
+ },
46030
+ unbind: function (el) {
46031
+ if (el.__preventReclickHandler) {
46032
+ el.removeEventListener('click', el.__preventReclickHandler, true);
46033
+ delete el.__preventReclickHandler;
46034
+ delete el.__preventReclickCooldown;
46035
+ }
46036
+ }
46037
+ };
46038
+ function registerPreventReclickDirective(VueConstructor) {
46039
+ VueConstructor.directive('prevent-reclick', preventReclickDirective);
46040
+ }
45952
46041
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/DynamicForm.vue?vue&type=script&lang=js
45953
46042
 
45954
46043
 
@@ -45972,12 +46061,17 @@ var NumericRangeField_component = normalizeComponent(
45972
46061
 
45973
46062
 
45974
46063
 
46064
+
46065
+
45975
46066
 
45976
46067
 
45977
46068
 
45978
46069
  //import { getFormValidationRules } from "./validationMessages.vue"
45979
46070
  /* harmony default export */ var DynamicFormvue_type_script_lang_js = ({
45980
46071
  name: 'DynamicForm',
46072
+ directives: {
46073
+ preventReclick: preventReclickDirective
46074
+ },
45981
46075
  components: {
45982
46076
  ValidationObserver: ValidationObserver,
45983
46077
  NumericField: NumericField,
@@ -46006,7 +46100,8 @@ var NumericRangeField_component = normalizeComponent(
46006
46100
  //ValidationRules: null,
46007
46101
  clickedButton: null,
46008
46102
  keyForComponentUpdate: 0,
46009
- buttonClasses: "col-lg-6 col-md-6 p-0 pt-4"
46103
+ buttonClasses: "col-lg-6 col-md-6 p-0 pt-4",
46104
+ lastOnSubmitAt: 0
46010
46105
  };
46011
46106
  },
46012
46107
  props: {
@@ -46030,6 +46125,23 @@ var NumericRangeField_component = normalizeComponent(
46030
46125
  inlinebuttons: {
46031
46126
  type: Boolean,
46032
46127
  default: false
46128
+ },
46129
+ /** Submit cooldown (ms). Omit = use Vue.config.preventReclickDefaultMs or 2000. 0 = off. */
46130
+ preventReclickMs: {
46131
+ type: Number,
46132
+ required: false
46133
+ }
46134
+ },
46135
+ computed: {
46136
+ effectivePreventReclickMs: function () {
46137
+ if (typeof this.preventReclickMs === 'number' && this.preventReclickMs >= 0) {
46138
+ return this.preventReclickMs;
46139
+ }
46140
+ var cfg = external_commonjs_vue_commonjs2_vue_root_Vue_default.a.config && external_commonjs_vue_commonjs2_vue_root_Vue_default.a.config.preventReclickDefaultMs;
46141
+ if (typeof cfg === 'number' && cfg >= 0) {
46142
+ return cfg;
46143
+ }
46144
+ return DEFAULT_PREVENT_RECLICK_MS;
46033
46145
  }
46034
46146
  },
46035
46147
  watch: {
@@ -46467,14 +46579,14 @@ var NumericRangeField_component = normalizeComponent(
46467
46579
  return returnVal;
46468
46580
  },
46469
46581
  renderButtons: function (buttons) {
46470
- if (buttons) {
46471
- var arrayConstructor = [].constructor;
46472
- if (buttons.constructor === arrayConstructor) {
46473
- return buttons;
46474
- } else {
46475
- return [];
46476
- }
46582
+ if (buttons === false || buttons == null || buttons === undefined) {
46583
+ return [];
46584
+ }
46585
+ var arrayConstructor = [].constructor;
46586
+ if (buttons.constructor === arrayConstructor) {
46587
+ return buttons;
46477
46588
  }
46589
+ return [];
46478
46590
  },
46479
46591
  GetGroupName: function (group_display_name, display_name) {
46480
46592
  if (group_display_name) {
@@ -46507,15 +46619,21 @@ var NumericRangeField_component = normalizeComponent(
46507
46619
  return returnValue;
46508
46620
  },
46509
46621
  onSubmit: function () {
46622
+ var ms = this.effectivePreventReclickMs;
46623
+ if (ms > 0) {
46624
+ var now = Date.now();
46625
+ if (now - this.lastOnSubmitAt < ms) {
46626
+ return;
46627
+ }
46628
+ this.lastOnSubmitAt = now;
46629
+ }
46510
46630
  var formfields = {};
46511
46631
  this.schema.forEach(formSchema => {
46512
46632
  formSchema.Data.forEach(field => {
46513
46633
  formfields[field.name] = field.value;
46514
46634
  });
46515
46635
  });
46516
- console.log(formfields);
46517
46636
  this.$emit("OnSubmit", formfields, this.clickedButton);
46518
- console.log(1001);
46519
46637
  },
46520
46638
  // invalidSubmit: function(e,x,y){
46521
46639
  // this.$emit("OnInvalidSubmit", e, this.clickedButton);
@@ -46524,7 +46642,7 @@ var NumericRangeField_component = normalizeComponent(
46524
46642
  let btnName = "";
46525
46643
  btnName = btn.name ? btn.name : btn.text;
46526
46644
  this.clickedButton = btnName;
46527
- if (btn.hasOwnProperty('onClick')) {
46645
+ if (typeof btn.onClick === 'function') {
46528
46646
  btn.onClick(btn);
46529
46647
  }
46530
46648
  },
@@ -46619,8 +46737,10 @@ var DynamicForm_component = normalizeComponent(
46619
46737
 
46620
46738
 
46621
46739
 
46740
+
46622
46741
  /* harmony default export */ var src_0 = ({
46623
46742
  install(Vue, options = {}) {
46743
+ registerPreventReclickDirective(Vue);
46624
46744
  Vue.component('DynamicForm', DynamicForm);
46625
46745
  Vue.component('NumericField', NumericField);
46626
46746
  Vue.component('SelectField', SelectField);