tg-controls_cli 0.1.17 → 0.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/myLib.umd.js CHANGED
@@ -224,17 +224,6 @@ function getRawTag(value) {
224
224
  module.exports = getRawTag;
225
225
 
226
226
 
227
- /***/ }),
228
-
229
- /***/ "02ac":
230
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
231
-
232
- "use strict";
233
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchableSelect_vue_vue_type_style_index_0_id_50fe2d92_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("adff");
234
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchableSelect_vue_vue_type_style_index_0_id_50fe2d92_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchableSelect_vue_vue_type_style_index_0_id_50fe2d92_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
235
- /* unused harmony reexport * */
236
-
237
-
238
227
  /***/ }),
239
228
 
240
229
  /***/ "0326":
@@ -264,13 +253,6 @@ module.exports = function (fn, that) {
264
253
  };
265
254
 
266
255
 
267
- /***/ }),
268
-
269
- /***/ "0411":
270
- /***/ (function(module, exports, __webpack_require__) {
271
-
272
- // extracted by mini-css-extract-plugin
273
-
274
256
  /***/ }),
275
257
 
276
258
  /***/ "04f8":
@@ -1978,6 +1960,13 @@ module.exports = function isCancel(value) {
1978
1960
  };
1979
1961
 
1980
1962
 
1963
+ /***/ }),
1964
+
1965
+ /***/ "302f":
1966
+ /***/ (function(module, exports, __webpack_require__) {
1967
+
1968
+ // extracted by mini-css-extract-plugin
1969
+
1981
1970
  /***/ }),
1982
1971
 
1983
1972
  /***/ "30b5":
@@ -2065,6 +2054,13 @@ module.exports = JSON.parse("{\"code\":\"bg\",\"messages\":{\"alpha\":\"Поле
2065
2054
 
2066
2055
  /***/ }),
2067
2056
 
2057
+ /***/ "31fc":
2058
+ /***/ (function(module, exports, __webpack_require__) {
2059
+
2060
+ // extracted by mini-css-extract-plugin
2061
+
2062
+ /***/ }),
2063
+
2068
2064
  /***/ "3207":
2069
2065
  /***/ (function(module) {
2070
2066
 
@@ -24652,17 +24648,6 @@ module.exports = function isAxiosError(payload) {
24652
24648
 
24653
24649
  module.exports = JSON.parse("{\"code\":\"zh_TW\",\"messages\":{\"alpha\":\"{_field_} 須以英文組成\",\"alpha_dash\":\"{_field_} 須以英數、斜線及底線組成\",\"alpha_num\":\"{_field_} 須以英數組成\",\"alpha_spaces\":\"{_field_} 須以英文及空格組成\",\"between\":\"{_field_} 須介於 {min} 至 {max}之間\",\"confirmed\":\" {_field_} 不一致\",\"digits\":\"{_field_} 須為 {length} 位數字\",\"dimensions\":\"{_field_} 圖片尺寸不正確。須為 {width} x {height} 像素\",\"email\":\"{_field_} 須為有效的電子信箱\",\"excluded\":\"{_field_} 的選項無效\",\"ext\":\"{_field_} 須為有效的檔案\",\"image\":\"{_field_} 須為圖片\",\"oneOf\":\"{_field_} 的選項無效\",\"integer\":\"{_field_} 須為整數\",\"length\":\"{_field_} 的長度須為 {length}\",\"max\":\"{_field_} 不能大於 {length} 個字元\",\"max_value\":\"{_field_} 不得大於 {max}\",\"mimes\":\"{_field_} 須為有效的檔案類型\",\"min\":\"{_field_} 不能小於 {length} 個字元\",\"min_value\":\"{_field_} 不得小於 {min}\",\"numeric\":\"{_field_} 須為數字\",\"regex\":\"{_field_} 的格式錯誤\",\"required\":\"{_field_} 為必填\",\"required_if\":\"{_field_} 為必填\",\"size\":\"{_field_} 的檔案須小於 {size}KB\",\"double\":\"{_field_}字段必須為有效的小數\"}}");
24654
24650
 
24655
- /***/ }),
24656
-
24657
- /***/ "6275":
24658
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
24659
-
24660
- "use strict";
24661
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Autocomplete_vue_vue_type_style_index_0_id_6cb7e2c2_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0411");
24662
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Autocomplete_vue_vue_type_style_index_0_id_6cb7e2c2_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Autocomplete_vue_vue_type_style_index_0_id_6cb7e2c2_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
24663
- /* unused harmony reexport * */
24664
-
24665
-
24666
24651
  /***/ }),
24667
24652
 
24668
24653
  /***/ "6374":
@@ -26687,6 +26672,17 @@ function toPropertyKey(t) {
26687
26672
  }
26688
26673
  module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
26689
26674
 
26675
+ /***/ }),
26676
+
26677
+ /***/ "a4a6":
26678
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
26679
+
26680
+ "use strict";
26681
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchableSelect_vue_vue_type_style_index_0_id_2ccba7c8_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("31fc");
26682
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchableSelect_vue_vue_type_style_index_0_id_2ccba7c8_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SearchableSelect_vue_vue_type_style_index_0_id_2ccba7c8_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
26683
+ /* unused harmony reexport * */
26684
+
26685
+
26690
26686
  /***/ }),
26691
26687
 
26692
26688
  /***/ "a4e7":
@@ -26872,13 +26868,6 @@ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
26872
26868
  });
26873
26869
 
26874
26870
 
26875
- /***/ }),
26876
-
26877
- /***/ "adff":
26878
- /***/ (function(module, exports, __webpack_require__) {
26879
-
26880
- // extracted by mini-css-extract-plugin
26881
-
26882
26871
  /***/ }),
26883
26872
 
26884
26873
  /***/ "ae93":
@@ -36261,6 +36250,17 @@ module.exports = function (target, name, descriptor) {
36261
36250
  /* unused harmony reexport * */
36262
36251
 
36263
36252
 
36253
+ /***/ }),
36254
+
36255
+ /***/ "f367":
36256
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
36257
+
36258
+ "use strict";
36259
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Autocomplete_vue_vue_type_style_index_0_id_562f416e_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("302f");
36260
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Autocomplete_vue_vue_type_style_index_0_id_562f416e_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Autocomplete_vue_vue_type_style_index_0_id_562f416e_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
36261
+ /* unused harmony reexport * */
36262
+
36263
+
36264
36264
  /***/ }),
36265
36265
 
36266
36266
  /***/ "f3f6":
@@ -42564,8 +42564,8 @@ var ColorField_component = normalizeComponent(
42564
42564
  )
42565
42565
 
42566
42566
  /* harmony default export */ var ColorField = (ColorField_component.exports);
42567
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"6e4a0282-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/FileField.vue?vue&type=template&id=a2ae54ee
42568
- var FileFieldvue_type_template_id_a2ae54ee_render = function render() {
42567
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"6e4a0282-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/FileField.vue?vue&type=template&id=067bb71d
42568
+ var FileFieldvue_type_template_id_067bb71d_render = function render() {
42569
42569
  var _vm = this,
42570
42570
  _c = _vm._self._c;
42571
42571
  return _c('div', {
@@ -42693,9 +42693,9 @@ var FileFieldvue_type_template_id_a2ae54ee_render = function render() {
42693
42693
  })])]);
42694
42694
  })], 2)])]);
42695
42695
  };
42696
- var FileFieldvue_type_template_id_a2ae54ee_staticRenderFns = [];
42696
+ var FileFieldvue_type_template_id_067bb71d_staticRenderFns = [];
42697
42697
 
42698
- // CONCATENATED MODULE: ./src/components/FileField.vue?vue&type=template&id=a2ae54ee
42698
+ // CONCATENATED MODULE: ./src/components/FileField.vue?vue&type=template&id=067bb71d
42699
42699
 
42700
42700
  // 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/FileField.vue?vue&type=script&lang=js
42701
42701
 
@@ -42757,93 +42757,189 @@ var FileFieldvue_type_template_id_a2ae54ee_staticRenderFns = [];
42757
42757
  openFilePopup() {
42758
42758
  document.querySelectorAll('#File_' + this.fieldInfo.name + ' [type="file"]')[0].click();
42759
42759
  },
42760
- RemoveFile(event, index) {
42760
+ // RemoveFile(event, index) {
42761
+ // event.stopPropagation();
42762
+ // const dt = new DataTransfer()
42763
+ // const input = document.querySelectorAll('#File_'+ this.fieldInfo.name +' [type="file"]')[0];
42764
+ // const { files } = input
42765
+ // this.previewFiles = [];
42766
+ // for (let i = 0; i < files.length; i++) {
42767
+ // let file = files[i]
42768
+ // if (index !== i) {
42769
+ // dt.items.add(file)
42770
+ // var fileExtention = file.name.split(".").pop()
42771
+ // var isImage = ["jpg", "jpeg", "png", "gif"].includes(fileExtention);
42772
+ // let reader = new FileReader();
42773
+ // reader.addEventListener(
42774
+ // "load",
42775
+ // () => {
42776
+ // // Set file data
42777
+ // let tempfile = {
42778
+ // name: file.name.split(".").shift(),
42779
+ // size: (Math.round((file.size / 1024 / 1024) * 100) / 100),
42780
+ // type: file.type,
42781
+ // fileExtention: fileExtention,
42782
+ // isImage: isImage,
42783
+ // url: reader.result,
42784
+ // isUploaded: true,
42785
+ // };
42786
+ // this.previewFiles.push(tempfile);
42787
+ // },
42788
+ // false
42789
+ // );
42790
+ // // Read uploaded file
42791
+ // reader.readAsDataURL(file);
42792
+ // }
42793
+ // // here you exclude the file. thus removing it.
42794
+ // }
42795
+ // input.files = dt.files // Assign the updates list
42796
+
42797
+ // if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onRemoveFile) {
42798
+ // this.fieldInfo.config.onRemoveFile(event, index, this.fieldInfo);
42799
+ // }
42800
+ // },
42801
+ // onChange(e) {
42802
+ // this.errors = [];
42803
+ // // Check if file is selected
42804
+ // if (e.target.files && e.target.files[0]) {
42805
+ // // Check if file is valid
42806
+ // for (let index = 0; index < e.target.files.length; index++) {
42807
+ // let file = e.target.files[index];
42808
+ // if (this.isFileValid(file)) {
42809
+ // // Get uploaded file
42810
+ // // Get file size
42811
+ // let fileSize = (Math.round((file.size / 1024 / 1024) * 100) / 100);
42812
+ // // Get file extention
42813
+ // let fileExtention = file.name.split(".").pop();
42814
+ // // Get file name
42815
+ // let fileName = file.name.split(".").shift();
42816
+ // // Check if file is an image
42817
+ // let isImage = ["jpg", "jpeg", "png", "gif"].includes(fileExtention);
42818
+ // // Print to console
42819
+ // console.log(fileSize, fileExtention, fileName, isImage);
42820
+ // // Load the FileReader API
42821
+ // let reader = new FileReader();
42822
+ // reader.addEventListener(
42823
+ // "load",
42824
+ // () => {
42825
+ // // Set file data
42826
+ // let tempfile = {
42827
+ // name: fileName,
42828
+ // size: fileSize,
42829
+ // type: file.type,
42830
+ // fileExtention: fileExtention,
42831
+ // isImage: isImage,
42832
+ // url: reader.result,
42833
+ // isUploaded: true,
42834
+ // };
42835
+ // if (this.canUploadMultipleFile() == false) {
42836
+ // this.previewFiles = [];
42837
+ // }
42838
+ // this.previewFiles.push(tempfile);
42839
+ // },
42840
+ // false
42841
+ // );
42842
+ // // Read uploaded file
42843
+ // reader.readAsDataURL(file);
42844
+ // //reader.removeEventListener("load");
42845
+ // } else {
42846
+ // console.log("Invalid file");
42847
+ // }
42848
+ // }
42849
+
42850
+ // if (this.errors.length == 0) {
42851
+ // this.fieldInfo.value = e.target.files;
42852
+ // if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onChange) {
42853
+ // this.fieldInfo.config.onChange(e, this.fieldInfo);
42854
+ // }
42855
+ // }
42856
+ // }
42857
+
42858
+ // },
42859
+ async RemoveFile(event, index) {
42761
42860
  event.stopPropagation();
42762
42861
  const dt = new DataTransfer();
42763
- const input = document.querySelectorAll('#File_' + this.fieldInfo.name + ' [type="file"]')[0];
42862
+ const input = document.querySelector(`#File_${this.fieldInfo.name} [type="file"]`);
42863
+ if (!input) return;
42764
42864
  const {
42765
42865
  files
42766
42866
  } = input;
42767
- this.previewFiles = [];
42867
+ const previewFiles = [];
42868
+ const filePromises = [];
42768
42869
  for (let i = 0; i < files.length; i++) {
42769
42870
  const file = files[i];
42770
42871
  if (index !== i) {
42771
42872
  dt.items.add(file);
42772
- var fileExtention = file.name.split(".").pop();
42773
- var isImage = ["jpg", "jpeg", "png", "gif"].includes(fileExtention);
42774
- let reader = new FileReader();
42775
- reader.addEventListener("load", () => {
42776
- // Set file data
42777
- this.file = {
42778
- name: file.name.split(".").shift(),
42779
- size: Math.round(file.size / 1024 / 1024 * 100) / 100,
42780
- type: file.type,
42781
- fileExtention: fileExtention,
42782
- isImage: isImage,
42783
- url: reader.result,
42784
- isUploaded: true
42873
+ filePromises.push(new Promise(resolve => {
42874
+ const fileExtention = file.name.split(".").pop().toLowerCase();
42875
+ const isImage = ["jpg", "jpeg", "png", "gif"].includes(fileExtention);
42876
+ const reader = new FileReader();
42877
+ reader.onload = () => {
42878
+ resolve({
42879
+ name: file.name.lastIndexOf(".") > -1 ? file.name.substring(0, file.name.lastIndexOf(".")) : file.name,
42880
+ size: Math.round(file.size / 1024 / 1024 * 100) / 100,
42881
+ type: file.type,
42882
+ fileExtention,
42883
+ isImage,
42884
+ url: reader.result,
42885
+ isUploaded: true
42886
+ });
42785
42887
  };
42786
- this.previewFiles.push(this.file);
42787
- }, false);
42788
- // Read uploaded file
42789
- reader.readAsDataURL(file);
42888
+ reader.readAsDataURL(file);
42889
+ }));
42790
42890
  }
42791
- // here you exclude the file. thus removing it.
42792
42891
  }
42793
- input.files = dt.files; // Assign the updates list
42794
-
42892
+ const processedFiles = await Promise.all(filePromises);
42893
+ previewFiles.push(...processedFiles);
42894
+ this.previewFiles = previewFiles;
42895
+ input.files = dt.files;
42896
+ this.fieldInfo.value = dt.files;
42795
42897
  if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onRemoveFile) {
42796
42898
  this.fieldInfo.config.onRemoveFile(event, index, this.fieldInfo);
42797
42899
  }
42798
42900
  },
42799
- onChange(e) {
42901
+ async onChange(e) {
42800
42902
  this.errors = [];
42801
- // Check if file is selected
42802
- if (e.target.files && e.target.files[0]) {
42803
- // Check if file is valid
42804
- for (let index = 0; index < e.target.files.length; index++) {
42805
- const file = e.target.files[index];
42806
- if (this.isFileValid(file)) {
42807
- // Get uploaded file
42808
- // Get file size
42809
- var fileSize = Math.round(file.size / 1024 / 1024 * 100) / 100;
42810
- // Get file extention
42811
- var fileExtention = file.name.split(".").pop();
42812
- // Get file name
42813
- var fileName = file.name.split(".").shift();
42814
- // Check if file is an image
42815
- var isImage = ["jpg", "jpeg", "png", "gif"].includes(fileExtention);
42816
- // Print to console
42817
- console.log(fileSize, fileExtention, fileName, isImage);
42818
- // Load the FileReader API
42819
- let reader = new FileReader();
42820
- reader.addEventListener("load", () => {
42821
- // Set file data
42822
- this.file = {
42903
+ if (!e.target.files || e.target.files.length === 0) {
42904
+ return;
42905
+ }
42906
+ const files = Array.from(e.target.files);
42907
+ const filePromises = [];
42908
+ for (const file of files) {
42909
+ if (this.isFileValid(file)) {
42910
+ const fileSize = Math.round(file.size / 1024 / 1024 * 100) / 100;
42911
+ const fileExtention = file.name.split(".").pop().toLowerCase();
42912
+ const fileName = file.name.lastIndexOf(".") > -1 ? file.name.substring(0, file.name.lastIndexOf(".")) : file.name;
42913
+ const isImage = ["jpg", "jpeg", "png", "gif"].includes(fileExtention);
42914
+ console.log(fileSize, fileExtention, fileName, isImage);
42915
+ filePromises.push(new Promise(resolve => {
42916
+ const reader = new FileReader();
42917
+ reader.onload = () => {
42918
+ resolve({
42823
42919
  name: fileName,
42824
42920
  size: fileSize,
42825
42921
  type: file.type,
42826
- fileExtention: fileExtention,
42827
- isImage: isImage,
42922
+ fileExtention,
42923
+ isImage,
42828
42924
  url: reader.result,
42829
42925
  isUploaded: true
42830
- };
42831
- if (this.canUploadMultipleFile() == false) {
42832
- this.previewFiles = [];
42833
- }
42834
- this.previewFiles.push(this.file);
42835
- }, false);
42836
- // Read uploaded file
42926
+ });
42927
+ };
42837
42928
  reader.readAsDataURL(file);
42838
- } else {
42839
- console.log("Invalid file");
42840
- }
42929
+ }));
42930
+ } else {
42931
+ console.log("Invalid file");
42841
42932
  }
42842
- if (this.errors.length == 0) {
42843
- this.fieldInfo.value = e.target.files;
42844
- if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onChange) {
42845
- this.fieldInfo.config.onChange(e, this.fieldInfo);
42846
- }
42933
+ }
42934
+ const processedFiles = await Promise.all(filePromises);
42935
+ if (this.canUploadMultipleFile() === false) {
42936
+ this.previewFiles = [];
42937
+ }
42938
+ this.previewFiles.push(...processedFiles);
42939
+ if (this.errors.length === 0) {
42940
+ this.fieldInfo.value = e.target.files;
42941
+ if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onChange) {
42942
+ this.fieldInfo.config.onChange(e, this.fieldInfo);
42847
42943
  }
42848
42944
  }
42849
42945
  },
@@ -42987,54 +43083,54 @@ var FileFieldvue_type_template_id_a2ae54ee_staticRenderFns = [];
42987
43083
  dragLeave: function () {
42988
43084
  this.isDragging = false;
42989
43085
  },
42990
- handleDrop: function (event) {
43086
+ async handleDrop(event) {
42991
43087
  event.preventDefault();
42992
43088
  this.isDragging = false;
42993
43089
  const files = event.target.files || event.dataTransfer.files;
42994
- if (files.length) {
42995
- for (let index = 0; index < files.length; index++) {
42996
- const file = files[index];
42997
- if (this.isFileValid(file)) {
42998
- // Get uploaded file
42999
- // Get file size
43000
- var fileSize = Math.round(file.size / 1024 / 1024 * 100) / 100;
43001
- // Get file extention
43002
- var fileExtention = file.name.split(".").pop();
43003
- // Get file name
43004
- var fileName = file.name.split(".").shift();
43005
- // Check if file is an image
43006
- var isImage = ["jpg", "jpeg", "png", "gif"].includes(fileExtention);
43007
- // Print to console
43008
- console.log(fileSize, fileExtention, fileName, isImage);
43009
- // Load the FileReader API
43010
- let reader = new FileReader();
43011
- reader.addEventListener("load", () => {
43012
- // Set file data
43013
- this.file = {
43090
+ if (!files || files.length === 0) {
43091
+ return;
43092
+ }
43093
+ const filePromises = [];
43094
+ for (const file of Array.from(files)) {
43095
+ if (this.isFileValid(file)) {
43096
+ const fileSize = Math.round(file.size / 1024 / 1024 * 100) / 100;
43097
+ const fileExtention = file.name.split(".").pop().toLowerCase();
43098
+ const fileName = file.name.lastIndexOf(".") > -1 ? file.name.substring(0, file.name.lastIndexOf(".")) : file.name;
43099
+ const isImage = ["jpg", "jpeg", "png", "gif"].includes(fileExtention);
43100
+ console.log(fileSize, fileExtention, fileName, isImage);
43101
+ filePromises.push(new Promise(resolve => {
43102
+ const reader = new FileReader();
43103
+ reader.onload = () => {
43104
+ resolve({
43014
43105
  name: fileName,
43015
43106
  size: fileSize,
43016
43107
  type: file.type,
43017
- fileExtention: fileExtention,
43018
- isImage: isImage,
43108
+ fileExtention,
43109
+ isImage,
43019
43110
  url: reader.result,
43020
43111
  isUploaded: true
43021
- };
43022
- if (this.canUploadMultipleFile() == false) {
43023
- this.previewFiles = [];
43024
- }
43025
- this.previewFiles.push(this.file);
43026
- }, false);
43027
- // Read uploaded file
43112
+ });
43113
+ };
43028
43114
  reader.readAsDataURL(file);
43029
- } else {
43030
- console.log("Invalid file");
43031
- }
43115
+ }));
43116
+ } else {
43117
+ console.log("Invalid file");
43032
43118
  }
43033
- if (this.errors.length == 0) {
43034
- this.fieldInfo.value = files;
43035
- if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onChange) {
43036
- this.fieldInfo.config.onChange(event, this.fieldInfo);
43037
- }
43119
+ }
43120
+ const processedFiles = await Promise.all(filePromises);
43121
+ if (this.canUploadMultipleFile() === false) {
43122
+ this.previewFiles = [];
43123
+ }
43124
+ this.previewFiles.push(...processedFiles);
43125
+
43126
+ // if (processedFiles.length > 0) {
43127
+ // this.file = processedFiles[processedFiles.length - 1];
43128
+ // }
43129
+
43130
+ if (this.errors.length === 0) {
43131
+ this.fieldInfo.value = files;
43132
+ if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onChange) {
43133
+ this.fieldInfo.config.onChange(event, this.fieldInfo);
43038
43134
  }
43039
43135
  }
43040
43136
  }
@@ -43052,8 +43148,8 @@ var FileFieldvue_type_template_id_a2ae54ee_staticRenderFns = [];
43052
43148
 
43053
43149
  var FileField_component = normalizeComponent(
43054
43150
  components_FileFieldvue_type_script_lang_js,
43055
- FileFieldvue_type_template_id_a2ae54ee_render,
43056
- FileFieldvue_type_template_id_a2ae54ee_staticRenderFns,
43151
+ FileFieldvue_type_template_id_067bb71d_render,
43152
+ FileFieldvue_type_template_id_067bb71d_staticRenderFns,
43057
43153
  false,
43058
43154
  null,
43059
43155
  null,
@@ -43759,8 +43855,8 @@ var SlotField_component = normalizeComponent(
43759
43855
  )
43760
43856
 
43761
43857
  /* harmony default export */ var SlotField = (SlotField_component.exports);
43762
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"6e4a0282-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/SearchableSelectField.vue?vue&type=template&id=22749d06
43763
- var SearchableSelectFieldvue_type_template_id_22749d06_render = function render() {
43858
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"6e4a0282-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/SearchableSelectField.vue?vue&type=template&id=4daf05b6
43859
+ var SearchableSelectFieldvue_type_template_id_4daf05b6_render = function render() {
43764
43860
  var _vm = this,
43765
43861
  _c = _vm._self._c;
43766
43862
  return _c('Field', {
@@ -43799,6 +43895,12 @@ var SearchableSelectFieldvue_type_template_id_22749d06_render = function render(
43799
43895
  },
43800
43896
  "change": function ($event) {
43801
43897
  return _vm.onSearchableChange($event, _vm.fieldInfo, 'change');
43898
+ },
43899
+ "input": function ($event) {
43900
+ return _vm.onSearchableChange($event, _vm.fieldInfo, 'input');
43901
+ },
43902
+ "search": function ($event) {
43903
+ return _vm.onSearch($event, _vm.fieldInfo, 'search');
43802
43904
  }
43803
43905
  },
43804
43906
  model: {
@@ -43815,12 +43917,12 @@ var SearchableSelectFieldvue_type_template_id_22749d06_render = function render(
43815
43917
  }])
43816
43918
  });
43817
43919
  };
43818
- var SearchableSelectFieldvue_type_template_id_22749d06_staticRenderFns = [];
43920
+ var SearchableSelectFieldvue_type_template_id_4daf05b6_staticRenderFns = [];
43819
43921
 
43820
- // CONCATENATED MODULE: ./src/components/SearchableSelectField.vue?vue&type=template&id=22749d06
43922
+ // CONCATENATED MODULE: ./src/components/SearchableSelectField.vue?vue&type=template&id=4daf05b6
43821
43923
 
43822
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"6e4a0282-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/SearchableSelect.vue?vue&type=template&id=50fe2d92&scoped=true
43823
- var SearchableSelectvue_type_template_id_50fe2d92_scoped_true_render = function render() {
43924
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"6e4a0282-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/SearchableSelect.vue?vue&type=template&id=2ccba7c8&scoped=true
43925
+ var SearchableSelectvue_type_template_id_2ccba7c8_scoped_true_render = function render() {
43824
43926
  var _vm = this,
43825
43927
  _c = _vm._self._c;
43826
43928
  return _c('div', {
@@ -43866,12 +43968,12 @@ var SearchableSelectvue_type_template_id_50fe2d92_scoped_true_render = function
43866
43968
  }
43867
43969
  })], 1);
43868
43970
  };
43869
- var SearchableSelectvue_type_template_id_50fe2d92_scoped_true_staticRenderFns = [];
43971
+ var SearchableSelectvue_type_template_id_2ccba7c8_scoped_true_staticRenderFns = [];
43870
43972
 
43871
- // CONCATENATED MODULE: ./src/components/SearchableSelect.vue?vue&type=template&id=50fe2d92&scoped=true
43973
+ // CONCATENATED MODULE: ./src/components/SearchableSelect.vue?vue&type=template&id=2ccba7c8&scoped=true
43872
43974
 
43873
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"6e4a0282-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/Autocomplete.vue?vue&type=template&id=6cb7e2c2&scoped=true
43874
- var Autocompletevue_type_template_id_6cb7e2c2_scoped_true_render = function render() {
43975
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"6e4a0282-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/Autocomplete.vue?vue&type=template&id=562f416e&scoped=true
43976
+ var Autocompletevue_type_template_id_562f416e_scoped_true_render = function render() {
43875
43977
  var _vm = this,
43876
43978
  _c = _vm._self._c;
43877
43979
  return _c('div', {
@@ -44000,7 +44102,7 @@ var Autocompletevue_type_template_id_6cb7e2c2_scoped_true_render = function rend
44000
44102
  staticClass: "list-group list-group-flush"
44001
44103
  }, _vm._l(group.items, function (item, itemIndex) {
44002
44104
  return _c('li', {
44003
- key: _vm.getItemValue(item),
44105
+ key: _vm.itemRowKey(item, null, groupIndex, itemIndex),
44004
44106
  staticClass: "list-group-item autocomplete-item",
44005
44107
  class: {
44006
44108
  'active': _vm.getFlatIndex(groupIndex, itemIndex) === _vm.highlightedIndex,
@@ -44082,7 +44184,7 @@ var Autocompletevue_type_template_id_6cb7e2c2_scoped_true_render = function rend
44082
44184
  }
44083
44185
  }) : _vm._e(), _vm._l(_vm.paginatedDisplayItems, function (item, index) {
44084
44186
  return _c('li', {
44085
- key: _vm.getItemValue(item),
44187
+ key: _vm.itemRowKey(item, index),
44086
44188
  staticClass: "list-group-item autocomplete-item",
44087
44189
  class: {
44088
44190
  'active': _vm.windowStart + index === _vm.highlightedIndex,
@@ -44153,7 +44255,7 @@ var Autocompletevue_type_template_id_6cb7e2c2_scoped_true_render = function rend
44153
44255
  staticClass: "d-flex flex-wrap align-items-center"
44154
44256
  }, [_vm._l(_vm.visibleChips, function (selectedItem, index) {
44155
44257
  return [index < _vm.maxVisibleChipsCount ? _c('span', {
44156
- key: _vm.getItemValue(selectedItem),
44258
+ key: 'chip-' + index + '-' + _vm.getItemValue(selectedItem),
44157
44259
  staticClass: "badge badge-primary mr-1 mb-1 pl-2 autocomplete-chip",
44158
44260
  attrs: {
44159
44261
  "title": _vm.getChipText(selectedItem)
@@ -44193,7 +44295,7 @@ var Autocompletevue_type_template_id_6cb7e2c2_scoped_true_render = function rend
44193
44295
  staticClass: "autocomplete-input-inline",
44194
44296
  attrs: {
44195
44297
  "type": "text",
44196
- "placeholder": _vm.selectedItems.length === 0 ? _vm.placeholder : '',
44298
+ "placeholder": _vm.selectedCount === 0 ? _vm.placeholder : '',
44197
44299
  "disabled": _vm.disabled
44198
44300
  },
44199
44301
  domProps: {
@@ -44364,7 +44466,7 @@ var Autocompletevue_type_template_id_6cb7e2c2_scoped_true_render = function rend
44364
44466
  staticClass: "list-group list-group-flush"
44365
44467
  }, _vm._l(group.items, function (item, itemIndex) {
44366
44468
  return _c('li', {
44367
- key: _vm.getItemValue(item),
44469
+ key: _vm.itemRowKey(item, null, groupIndex, itemIndex),
44368
44470
  staticClass: "list-group-item autocomplete-item",
44369
44471
  class: {
44370
44472
  'active': _vm.getFlatIndex(groupIndex, itemIndex) === _vm.highlightedIndex,
@@ -44446,7 +44548,7 @@ var Autocompletevue_type_template_id_6cb7e2c2_scoped_true_render = function rend
44446
44548
  }
44447
44549
  }) : _vm._e(), _vm._l(_vm.paginatedDisplayItems, function (item, index) {
44448
44550
  return _c('li', {
44449
- key: _vm.getItemValue(item),
44551
+ key: _vm.itemRowKey(item, index),
44450
44552
  staticClass: "list-group-item autocomplete-item",
44451
44553
  class: {
44452
44554
  'active': _vm.windowStart + index === _vm.highlightedIndex,
@@ -44510,7 +44612,7 @@ var Autocompletevue_type_template_id_6cb7e2c2_scoped_true_render = function rend
44510
44612
  }, [_vm._v(_vm._s(error))]);
44511
44613
  }), 0) : _vm._e()]);
44512
44614
  };
44513
- var Autocompletevue_type_template_id_6cb7e2c2_scoped_true_staticRenderFns = [function () {
44615
+ var Autocompletevue_type_template_id_562f416e_scoped_true_staticRenderFns = [function () {
44514
44616
  var _vm = this,
44515
44617
  _c = _vm._self._c;
44516
44618
  return _c('div', {
@@ -44534,7 +44636,7 @@ var Autocompletevue_type_template_id_6cb7e2c2_scoped_true_staticRenderFns = [fun
44534
44636
  }, [_vm._v("Loading...")])]);
44535
44637
  }];
44536
44638
 
44537
- // CONCATENATED MODULE: ./src/components/Autocomplete.vue?vue&type=template&id=6cb7e2c2&scoped=true
44639
+ // CONCATENATED MODULE: ./src/components/Autocomplete.vue?vue&type=template&id=562f416e&scoped=true
44538
44640
 
44539
44641
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.reduce.js
44540
44642
  var es_array_reduce = __webpack_require__("13d5");
@@ -44844,33 +44946,20 @@ var es_set_union_v2 = __webpack_require__("72c3");
44844
44946
  menuMaxHeight() {
44845
44947
  return this.menuProps && this.menuProps.maxHeight || 300;
44846
44948
  },
44847
- selectedItems() {
44848
- if (!this.multiple) return [];
44849
-
44850
- // Get selected values from currentValue (supports both value and modelValue props)
44949
+ /** O(1) membership checks when thousands of contracts are selected */
44950
+ selectedValueSet() {
44851
44951
  const currentVal = this.currentValue;
44852
- const selectedValues = Array.isArray(currentVal) ? currentVal : currentVal ? [currentVal] : [];
44853
- if (selectedValues.length === 0) {
44854
- return [];
44952
+ if (this.multiple) {
44953
+ const selectedValues = Array.isArray(currentVal) ? currentVal : currentVal ? [currentVal] : [];
44954
+ return new Set(selectedValues.map(sv => String(sv)));
44855
44955
  }
44856
-
44857
- // Look through ALL items (unfiltered), not just displayItems (which might be filtered)
44858
- let itemsToSearch = this.allItems && this.allItems.length > 0 ? this.allItems : this.items;
44859
-
44860
- // Flatten grouped items if needed
44861
- if (itemsToSearch.length > 0 && Array.isArray(itemsToSearch[0].items)) {
44862
- // Items are in grouped format - flatten them
44863
- itemsToSearch = itemsToSearch.flatMap(group => group.items || []);
44956
+ if (currentVal !== null && currentVal !== undefined && currentVal !== '') {
44957
+ return new Set([String(currentVal)]);
44864
44958
  }
44865
- const filtered = itemsToSearch.filter(item => {
44866
- const itemValue = this.getItemValue(item);
44867
- return selectedValues.some(sv => String(sv) === String(itemValue));
44868
- });
44869
- return filtered.map(item => ({
44870
- ...item,
44871
- title: this.getItemText(item),
44872
- value: this.getItemValue(item)
44873
- }));
44959
+ return new Set();
44960
+ },
44961
+ selectedCount() {
44962
+ return this.selectedValueSet.size;
44874
44963
  },
44875
44964
  displayText() {
44876
44965
  if (this.multiple) return '';
@@ -44888,42 +44977,46 @@ var es_set_union_v2 = __webpack_require__("72c3");
44888
44977
  }
44889
44978
  return this.validateRules();
44890
44979
  },
44891
- // Chips display logic
44980
+ // Chips display logic — resolve only the few chips shown, not every selected id
44892
44981
  visibleChips() {
44893
- return this.selectedItems;
44982
+ if (!this.multiple || this.selectedCount === 0) return [];
44983
+ const limit = this.maxVisibleChipsCount;
44984
+ if (limit <= 0) return [];
44985
+ const set = this.selectedValueSet;
44986
+ let itemsToSearch = this.allItems && this.allItems.length > 0 ? this.allItems : this.items;
44987
+ if (itemsToSearch.length > 0 && Array.isArray(itemsToSearch[0].items)) {
44988
+ itemsToSearch = itemsToSearch.flatMap(group => group.items || []);
44989
+ }
44990
+ const chips = [];
44991
+ for (let i = 0; i < itemsToSearch.length && chips.length < limit; i++) {
44992
+ const item = itemsToSearch[i];
44993
+ const itemValue = String(this.getItemValue(item));
44994
+ if (!set.has(itemValue)) continue;
44995
+ chips.push({
44996
+ ...item,
44997
+ title: this.getItemText(item),
44998
+ value: this.getItemValue(item)
44999
+ });
45000
+ }
45001
+ return chips;
44894
45002
  },
44895
45003
  maxVisibleChipsCount() {
44896
- return this.maxVisibleChips !== null && this.maxVisibleChips !== undefined ? this.maxVisibleChips : this.selectedItems.length;
45004
+ return this.maxVisibleChips !== null && this.maxVisibleChips !== undefined ? this.maxVisibleChips : this.selectedCount;
44897
45005
  },
44898
45006
  remainingChipsCount() {
44899
45007
  if (this.maxVisibleChips === null || this.maxVisibleChips === undefined) return 0;
44900
- return Math.max(0, this.selectedItems.length - this.maxVisibleChips);
45008
+ return Math.max(0, this.selectedCount - this.maxVisibleChips);
44901
45009
  },
44902
45010
  // Action buttons
44903
45011
  hasActionButtons() {
44904
45012
  return this.actionButtons && (this.actionButtons.selectAll || this.actionButtons.active || this.actionButtons.inactive || this.actionButtons.clear);
44905
45013
  },
44906
- // O(1) Set of stringified selected values — used by isSelected to avoid O(n) .some() per item
44907
- selectedValueSet() {
44908
- const currentVal = this.currentValue;
44909
- if (this.multiple) {
44910
- const selectedValues = Array.isArray(currentVal) ? currentVal : currentVal ? [currentVal] : [];
44911
- return new Set(selectedValues.map(sv => String(sv)));
44912
- }
44913
- if (currentVal !== null && currentVal !== undefined) {
44914
- return new Set([String(currentVal)]);
44915
- }
44916
- return new Set();
44917
- },
44918
45014
  allSelected() {
44919
45015
  if (!this.multiple) return false;
44920
- // Check if all filtered items are selected
44921
45016
  const filteredItems = this.filteredDisplayItems;
44922
- const selectedValues = Array.isArray(this.currentValue) ? this.currentValue : [];
44923
- return filteredItems.length > 0 && filteredItems.every(item => {
44924
- const itemValue = this.getItemValue(item);
44925
- return selectedValues.some(sv => String(sv) === String(itemValue));
44926
- });
45017
+ if (filteredItems.length === 0) return false;
45018
+ const set = this.selectedValueSet;
45019
+ return filteredItems.every(item => set.has(String(this.getItemValue(item))));
44927
45020
  },
44928
45021
  hasSelectedItems() {
44929
45022
  if (!this.multiple) return false;
@@ -45084,7 +45177,7 @@ var es_set_union_v2 = __webpack_require__("72c3");
45084
45177
  methods: {
45085
45178
  getItemText(item) {
45086
45179
  if (item.raw) {
45087
- return item.raw.text || item.raw.title || item.raw[this.itemTitle] || '';
45180
+ return item.raw.text || item.raw.name || item.raw.title || item.raw[this.itemTitle] || '';
45088
45181
  }
45089
45182
  return item.text || item.title || item[this.itemTitle] || '';
45090
45183
  },
@@ -45156,6 +45249,17 @@ var es_set_union_v2 = __webpack_require__("72c3");
45156
45249
  }
45157
45250
  return group[field] || '';
45158
45251
  },
45252
+ /** Stable unique key for v-for rows (API may return duplicate value ids) */
45253
+ itemRowKey(item, index, groupIndex, itemIndex) {
45254
+ const value = this.getItemValue(item);
45255
+ const base = value != null && value !== '' ? String(value) : 'item';
45256
+ if (groupIndex != null && itemIndex != null) {
45257
+ return `g${groupIndex}-i${itemIndex}-${base}`;
45258
+ }
45259
+ const offset = this.windowStart != null ? this.windowStart : 0;
45260
+ const idx = index != null ? index : 0;
45261
+ return `r${offset + idx}-${base}`;
45262
+ },
45159
45263
  isSelected(item) {
45160
45264
  const value = this.getItemValue(item);
45161
45265
  return this.selectedValueSet.has(String(value));
@@ -45265,9 +45369,9 @@ var es_set_union_v2 = __webpack_require__("72c3");
45265
45369
  if (index > -1) {
45266
45370
  selectedValues.splice(index, 1);
45267
45371
  // Emit both events for Vue 2 and Vue 3 compatibility
45268
- this.$emit('input', selectedValues);
45372
+ this.$emit('input', selectedValues, 'remove');
45269
45373
  this.$emit('update:modelValue', selectedValues);
45270
- this.$emit('change', selectedValues);
45374
+ this.$emit('change', selectedValues, 'remove');
45271
45375
  }
45272
45376
  }
45273
45377
  },
@@ -45383,22 +45487,36 @@ var es_set_union_v2 = __webpack_require__("72c3");
45383
45487
  },
45384
45488
  // Action button methods
45385
45489
  selectAll(event) {
45386
- // Prevent event from bubbling
45387
45490
  if (event) {
45388
45491
  event.preventDefault();
45389
45492
  event.stopPropagation();
45390
45493
  event.stopImmediatePropagation();
45391
45494
  }
45392
45495
  if (!this.multiple) return;
45393
- // Select all items from the currently filtered/displayed items
45394
- const allItems = this.filteredDisplayItems;
45395
- const allValues = allItems.map(item => this.getItemValue(item));
45396
- // Merge with existing selections to avoid deselecting items not in current filter
45397
- const currentValues = Array.isArray(this.currentValue) ? this.currentValue : [];
45398
- const mergedValues = [...new Set([...currentValues, ...allValues])];
45399
- this.$emit('input', mergedValues);
45400
- this.$emit('update:modelValue', mergedValues);
45401
- this.$emit('change', mergedValues);
45496
+ const mergedSet = new Set(this.selectedValueSet);
45497
+ for (const item of this.filteredDisplayItems) {
45498
+ mergedSet.add(String(this.getItemValue(item)));
45499
+ }
45500
+ const mergedValues = Array.from(mergedSet, key => {
45501
+ const n = Number(key);
45502
+ return !isNaN(n) && String(n) === key ? n : key;
45503
+ });
45504
+
45505
+ // Defer the large v-model update so the click handler can finish and the UI stays responsive
45506
+ const emitSelection = () => {
45507
+ this.$emit('input', mergedValues);
45508
+ this.$emit('update:modelValue', mergedValues);
45509
+ this.$emit('change', mergedValues);
45510
+ };
45511
+ if (mergedValues.length > 200) {
45512
+ if (typeof window !== 'undefined' && typeof window.requestAnimationFrame === 'function') {
45513
+ window.requestAnimationFrame(emitSelection);
45514
+ } else {
45515
+ this.$nextTick(emitSelection);
45516
+ }
45517
+ } else {
45518
+ emitSelection();
45519
+ }
45402
45520
  },
45403
45521
  filterByStatus(status) {
45404
45522
  if (this.filterStatus === status) {
@@ -45498,8 +45616,8 @@ var es_set_union_v2 = __webpack_require__("72c3");
45498
45616
  });
45499
45617
  // CONCATENATED MODULE: ./src/components/Autocomplete.vue?vue&type=script&lang=js
45500
45618
  /* harmony default export */ var components_Autocompletevue_type_script_lang_js = (Autocompletevue_type_script_lang_js);
45501
- // EXTERNAL MODULE: ./src/components/Autocomplete.vue?vue&type=style&index=0&id=6cb7e2c2&prod&scoped=true&lang=css
45502
- var Autocompletevue_type_style_index_0_id_6cb7e2c2_prod_scoped_true_lang_css = __webpack_require__("6275");
45619
+ // EXTERNAL MODULE: ./src/components/Autocomplete.vue?vue&type=style&index=0&id=562f416e&prod&scoped=true&lang=css
45620
+ var Autocompletevue_type_style_index_0_id_562f416e_prod_scoped_true_lang_css = __webpack_require__("f367");
45503
45621
 
45504
45622
  // CONCATENATED MODULE: ./src/components/Autocomplete.vue
45505
45623
 
@@ -45512,11 +45630,11 @@ var Autocompletevue_type_style_index_0_id_6cb7e2c2_prod_scoped_true_lang_css = _
45512
45630
 
45513
45631
  var Autocomplete_component = normalizeComponent(
45514
45632
  components_Autocompletevue_type_script_lang_js,
45515
- Autocompletevue_type_template_id_6cb7e2c2_scoped_true_render,
45516
- Autocompletevue_type_template_id_6cb7e2c2_scoped_true_staticRenderFns,
45633
+ Autocompletevue_type_template_id_562f416e_scoped_true_render,
45634
+ Autocompletevue_type_template_id_562f416e_scoped_true_staticRenderFns,
45517
45635
  false,
45518
45636
  null,
45519
- "6cb7e2c2",
45637
+ "562f416e",
45520
45638
  null
45521
45639
 
45522
45640
  )
@@ -45711,10 +45829,6 @@ function SearchableSelectvue_type_script_lang_js_debounce(func, wait) {
45711
45829
  },
45712
45830
  set(value) {
45713
45831
  // Emit input event (Vue 2 v-model default)
45714
- console.log('=== internalValue setter ===');
45715
- console.log('Setting internalValue to:', value);
45716
- console.log('Current value prop:', this.value);
45717
- console.log('Emitting input event (Vue 2 v-model) with:', value);
45718
45832
  this.$emit('input', value);
45719
45833
  this.$emit('update:modelValue', value);
45720
45834
  if (!this.multiple) {
@@ -45933,14 +46047,14 @@ function SearchableSelectvue_type_script_lang_js_debounce(func, wait) {
45933
46047
  this.debouncedLoadItems(search, 1, false);
45934
46048
  }
45935
46049
  },
45936
- onSelectionChange(value) {
46050
+ onSelectionChange(value, secondValue) {
45937
46051
  // Ensure value is an array for multiple mode
45938
46052
  const finalValue = this.multiple && !Array.isArray(value) ? [value] : value;
45939
46053
 
45940
46054
  // Emit both events for Vue 2 and Vue 3 compatibility
45941
46055
  this.$emit('input', finalValue);
45942
46056
  this.$emit('update:modelValue', finalValue);
45943
- if (!this.multiple) {
46057
+ if (!this.multiple || secondValue == "remove") {
45944
46058
  this.$emit('change', finalValue);
45945
46059
  }
45946
46060
  },
@@ -46033,11 +46147,6 @@ function SearchableSelectvue_type_script_lang_js_debounce(func, wait) {
46033
46147
  },
46034
46148
  value: {
46035
46149
  handler: async function (newValue, oldValue) {
46036
- console.log('=== SearchableSelect value watcher ===');
46037
- console.log('New value:', newValue, 'type:', Array.isArray(newValue) ? 'array' : typeof newValue);
46038
- console.log('Old value:', oldValue);
46039
- console.log('=== End watcher ===');
46040
-
46041
46150
  // Only load remote items if not using local items
46042
46151
  if (!this.useLocalItems && newValue && this.remoteItems.length === 0 && !this.loading && this.type) {
46043
46152
  // try {
@@ -46092,8 +46201,8 @@ function SearchableSelectvue_type_script_lang_js_debounce(func, wait) {
46092
46201
  });
46093
46202
  // CONCATENATED MODULE: ./src/components/SearchableSelect.vue?vue&type=script&lang=js
46094
46203
  /* harmony default export */ var components_SearchableSelectvue_type_script_lang_js = (SearchableSelectvue_type_script_lang_js);
46095
- // EXTERNAL MODULE: ./src/components/SearchableSelect.vue?vue&type=style&index=0&id=50fe2d92&prod&scoped=true&lang=css
46096
- var SearchableSelectvue_type_style_index_0_id_50fe2d92_prod_scoped_true_lang_css = __webpack_require__("02ac");
46204
+ // EXTERNAL MODULE: ./src/components/SearchableSelect.vue?vue&type=style&index=0&id=2ccba7c8&prod&scoped=true&lang=css
46205
+ var SearchableSelectvue_type_style_index_0_id_2ccba7c8_prod_scoped_true_lang_css = __webpack_require__("a4a6");
46097
46206
 
46098
46207
  // CONCATENATED MODULE: ./src/components/SearchableSelect.vue
46099
46208
 
@@ -46106,11 +46215,11 @@ var SearchableSelectvue_type_style_index_0_id_50fe2d92_prod_scoped_true_lang_css
46106
46215
 
46107
46216
  var SearchableSelect_component = normalizeComponent(
46108
46217
  components_SearchableSelectvue_type_script_lang_js,
46109
- SearchableSelectvue_type_template_id_50fe2d92_scoped_true_render,
46110
- SearchableSelectvue_type_template_id_50fe2d92_scoped_true_staticRenderFns,
46218
+ SearchableSelectvue_type_template_id_2ccba7c8_scoped_true_render,
46219
+ SearchableSelectvue_type_template_id_2ccba7c8_scoped_true_staticRenderFns,
46111
46220
  false,
46112
46221
  null,
46113
- "50fe2d92",
46222
+ "2ccba7c8",
46114
46223
  null
46115
46224
 
46116
46225
  )
@@ -46141,11 +46250,12 @@ var SearchableSelect_component = normalizeComponent(
46141
46250
  },
46142
46251
  watch: {
46143
46252
  fieldInfo: {
46144
- handler: function () {
46253
+ handler: async function () {
46254
+ console.log("fieldInfo - searchable select - watch");
46145
46255
  const newKey = this._getOptionsSourceKey();
46146
46256
  if (newKey !== this._optionsSourceKey) {
46147
46257
  this._optionsSourceKey = newKey;
46148
- this.GetSelectOptions();
46258
+ await this.GetSelectOptions();
46149
46259
  }
46150
46260
  },
46151
46261
  deep: true
@@ -46212,20 +46322,25 @@ var SearchableSelect_component = normalizeComponent(
46212
46322
  const selectKey = f.select_options ? typeof f.select_options === 'string' ? f.select_options.length : Array.isArray(f.select_options) ? f.select_options.length : 0 : 0;
46213
46323
  const urlKey = f.config && f.config.option_request_url || '';
46214
46324
  const bindKey = f.config && f.config.OptionsForBind ? f.config.OptionsForBind.length : 0;
46215
- return `${picklistKey}|${selectKey}|${urlKey}|${bindKey}`;
46325
+ const optionsKey = f.config && f.config.options ? f.config.options.length : 0;
46326
+ return `${picklistKey}|${selectKey}|${urlKey}|${bindKey}|${optionsKey}`;
46216
46327
  },
46217
46328
  GetSelectOptions: async function () {
46218
46329
  this._optionsSourceKey = this._getOptionsSourceKey();
46219
46330
  var vm = this;
46220
46331
  if (vm.fieldInfo.hasOwnProperty('config') && vm.fieldInfo.config.hasOwnProperty('OptionsForBind') == false) {
46221
- vm.fieldInfo.config.OptionsForBind = [];
46332
+ vm.$set(vm.fieldInfo.config, 'OptionsForBind', []);
46222
46333
  }
46223
46334
  if (vm.fieldInfo.hasOwnProperty('picklist_options') && vm.fieldInfo.picklist_options != 'Lookup') {
46224
- vm.fieldInfo.config.OptionsForBind = vm.MakeArray(vm.fieldInfo.picklist_options);
46335
+ vm.$set(vm.fieldInfo.config, 'OptionsForBind', vm.MakeArray(vm.fieldInfo.picklist_options));
46225
46336
  } else if (vm.fieldInfo.hasOwnProperty('select_options') && vm.fieldInfo.select_options.length > 0) {
46226
- vm.fieldInfo.config.OptionsForBind = vm.MakeNormalArray(vm.fieldInfo.select_options);
46337
+ vm.$set(vm.fieldInfo.config, 'OptionsForBind', vm.MakeNormalArray(vm.fieldInfo.select_options));
46338
+ } else if (vm.fieldInfo.hasOwnProperty('options') && vm.fieldInfo.options.length > 0) {
46339
+ vm.$set(vm.fieldInfo.config, 'OptionsForBind', vm.MakeNormalArray(vm.fieldInfo.options));
46227
46340
  } else if (vm.fieldInfo.hasOwnProperty('config') && vm.fieldInfo.config.hasOwnProperty('OptionsForBind') && vm.fieldInfo.config.OptionsForBind.length > 0) {
46228
- vm.fieldInfo.config.OptionsForBind = vm.fieldInfo.config.OptionsForBind;
46341
+ // already set, nothing to do
46342
+ } else if (vm.fieldInfo.hasOwnProperty('config') && Array.isArray(vm.fieldInfo.config.options) && vm.fieldInfo.config.options.length > 0) {
46343
+ vm.fieldInfo.config.OptionsForBind = vm.fieldInfo.config.options;
46229
46344
  } else if (vm.fieldInfo.hasOwnProperty('config') && vm.fieldInfo.config.hasOwnProperty('option_request_url') && vm.fieldInfo.config.option_request_url.length > 0) {
46230
46345
  await axios_default.a.get(vm.fieldInfo.config.option_request_url, {
46231
46346
  headers: {
@@ -46234,9 +46349,9 @@ var SearchableSelect_component = normalizeComponent(
46234
46349
  }).then(res => {
46235
46350
  console.log(res.data);
46236
46351
  if (res.data && res.data.hasOwnProperty('DATA')) {
46237
- vm.fieldInfo.config.OptionsForBind = res.data.DATA;
46352
+ vm.$set(vm.fieldInfo.config, 'OptionsForBind', res.data.DATA);
46238
46353
  } else {
46239
- vm.fieldInfo.config.OptionsForBind = res.data;
46354
+ vm.$set(vm.fieldInfo.config, 'OptionsForBind', res.data);
46240
46355
  }
46241
46356
  }).catch(error => {
46242
46357
  console.log('Error on binding slect option in tg-control- ' + error);
@@ -46322,12 +46437,25 @@ var SearchableSelect_component = normalizeComponent(
46322
46437
  }
46323
46438
  },
46324
46439
  onSearchableChange: function (x, field, e) {
46440
+ let isOnChangeOnCheckbox = false;
46441
+ if (field && field.hasOwnProperty("config") && field.config.hasOwnProperty("isOnChangeOnCheckbox")) {
46442
+ isOnChangeOnCheckbox = field.config.isOnChangeOnCheckbox;
46443
+ }
46325
46444
  if (field && field.hasOwnProperty("config") && field.config.hasOwnProperty("onChange")) {
46326
46445
  if (typeof field.config.onChange == "function") {
46327
- field.config.onChange(field, x);
46446
+ if (isOnChangeOnCheckbox && e == "input" && e == "input") {
46447
+ field.config.onChange(field, x, e);
46448
+ } else if (e != "input") {
46449
+ field.config.onChange(field, x, e);
46450
+ }
46328
46451
  }
46329
46452
  }
46330
46453
  },
46454
+ onSearch: function (e, field, y) {
46455
+ if (field && field.hasOwnProperty("config") && field.config.hasOwnProperty("onSearchChange")) {
46456
+ field.config.onSearchChange(field, e.search);
46457
+ }
46458
+ },
46331
46459
  RenderOptions() {
46332
46460
  var options = [];
46333
46461
  var vm = this;
@@ -46362,8 +46490,8 @@ var SearchableSelect_component = normalizeComponent(
46362
46490
 
46363
46491
  var SearchableSelectField_component = normalizeComponent(
46364
46492
  components_SearchableSelectFieldvue_type_script_lang_js,
46365
- SearchableSelectFieldvue_type_template_id_22749d06_render,
46366
- SearchableSelectFieldvue_type_template_id_22749d06_staticRenderFns,
46493
+ SearchableSelectFieldvue_type_template_id_4daf05b6_render,
46494
+ SearchableSelectFieldvue_type_template_id_4daf05b6_staticRenderFns,
46367
46495
  false,
46368
46496
  null,
46369
46497
  null,