tg-controls_cli 0.0.96 → 0.0.98

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
@@ -344,7 +344,7 @@ var buildURL = __webpack_require__("30b5");
344
344
  var InterceptorManager = __webpack_require__("f6b4");
345
345
  var dispatchRequest = __webpack_require__("5270");
346
346
  var mergeConfig = __webpack_require__("4a7b");
347
- var buildFullPath = __webpack_require__("83b9");
347
+ var buildFullPath = __webpack_require__("83b9e");
348
348
  var validator = __webpack_require__("848b");
349
349
 
350
350
  var validators = validator.validators;
@@ -1017,6 +1017,46 @@ function once(func) {
1017
1017
  module.exports = once;
1018
1018
 
1019
1019
 
1020
+ /***/ }),
1021
+
1022
+ /***/ "1e5a":
1023
+ /***/ (function(module, exports, __webpack_require__) {
1024
+
1025
+ "use strict";
1026
+
1027
+ var $ = __webpack_require__("23e7");
1028
+ var symmetricDifference = __webpack_require__("9961");
1029
+ var setMethodAcceptSetLike = __webpack_require__("dad2");
1030
+
1031
+ // `Set.prototype.symmetricDifference` method
1032
+ // https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
1033
+ $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {
1034
+ symmetricDifference: symmetricDifference
1035
+ });
1036
+
1037
+
1038
+ /***/ }),
1039
+
1040
+ /***/ "1e70":
1041
+ /***/ (function(module, exports, __webpack_require__) {
1042
+
1043
+ "use strict";
1044
+
1045
+ var $ = __webpack_require__("23e7");
1046
+ var difference = __webpack_require__("a5f7");
1047
+ var setMethodAcceptSetLike = __webpack_require__("dad2");
1048
+
1049
+ var INCORRECT = !setMethodAcceptSetLike('difference', function (result) {
1050
+ return result.size === 0;
1051
+ });
1052
+
1053
+ // `Set.prototype.difference` method
1054
+ // https://tc39.es/ecma262/#sec-set.prototype.difference
1055
+ $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
1056
+ difference: difference
1057
+ });
1058
+
1059
+
1020
1060
  /***/ }),
1021
1061
 
1022
1062
  /***/ "1fb5":
@@ -1662,6 +1702,25 @@ module.exports = JSON.parse("{\"code\":\"bg\",\"messages\":{\"alpha\":\"Поле
1662
1702
 
1663
1703
  module.exports = JSON.parse("{\"code\":\"pt_PT\",\"messages\":{\"alpha\":\"O campo {_field_} deve conter somente letras\",\"alpha_dash\":\"O campo {_field_} deve conter letras, números e traços\",\"alpha_num\":\"O campo {_field_} deve conter somente letras e números\",\"alpha_spaces\":\"O {_field_} só pode conter caracteres alfabéticos e espaços\",\"between\":\"O campo {_field_} deve estar entre {min} e {max}\",\"confirmed\":\"A confirmação do campo {_field_} deve ser igual\",\"digits\":\"O campo {_field_} deve ser numérico e ter {length} dígitos\",\"dimensions\":\"O campo {_field_} deve ter {width} pixels de largura por {height} pixels de altura\",\"email\":\"O campo {_field_} deve ser um email válido\",\"excluded\":\"O campo {_field_} deve ser um valor válido\",\"ext\":\"O campo {_field_} deve ser um ficheiro válido\",\"image\":\"O campo {_field_} deve ser uma imagem\",\"is\":\"O valor inserido no campo {_field_} não é válido\",\"oneOf\":\"O campo {_field_} deve ter um valor válido\",\"max\":\"O campo {_field_} não deve ter mais que {length} caracteres\",\"max_value\":\"O campo {_field_} precisa ser {max} ou menor\",\"mimes\":\"O campo {_field_} deve ser um tipo de ficheiro válido\",\"min\":\"O campo {_field_} deve conter pelo menos {length} caracteres\",\"min_value\":\"O campo {_field_} precisa ser {min} ou maior\",\"numeric\":\"O campo {_field_} deve conter apenas números\",\"regex\":\"O campo {_field_} possui um formato inválido\",\"required\":\"O campo {_field_} é obrigatório\",\"required_if\":\"O campo {_field_} é obrigatório\",\"size\":\"O campo {_field_} deve ser menor que {size}KB\",\"double\":\"O campo {_field_} deve conter um numero decimal válido\"}}");
1664
1704
 
1705
+ /***/ }),
1706
+
1707
+ /***/ "34e1":
1708
+ /***/ (function(module, exports, __webpack_require__) {
1709
+
1710
+ "use strict";
1711
+
1712
+ var call = __webpack_require__("c65b");
1713
+ var anObject = __webpack_require__("825a");
1714
+ var getIteratorDirect = __webpack_require__("46c4");
1715
+ var getIteratorMethod = __webpack_require__("35a1");
1716
+
1717
+ module.exports = function (obj, stringHandling) {
1718
+ if (!stringHandling || typeof obj !== 'string') anObject(obj);
1719
+ var method = getIteratorMethod(obj);
1720
+ return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj));
1721
+ };
1722
+
1723
+
1665
1724
  /***/ }),
1666
1725
 
1667
1726
  /***/ "3511":
@@ -1785,6 +1844,28 @@ exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties :
1785
1844
  };
1786
1845
 
1787
1846
 
1847
+ /***/ }),
1848
+
1849
+ /***/ "384f":
1850
+ /***/ (function(module, exports, __webpack_require__) {
1851
+
1852
+ "use strict";
1853
+
1854
+ var uncurryThis = __webpack_require__("e330");
1855
+ var iterateSimple = __webpack_require__("5388");
1856
+ var SetHelpers = __webpack_require__("cb27");
1857
+
1858
+ var Set = SetHelpers.Set;
1859
+ var SetPrototype = SetHelpers.proto;
1860
+ var forEach = uncurryThis(SetPrototype.forEach);
1861
+ var keys = uncurryThis(SetPrototype.keys);
1862
+ var next = keys(new Set()).next;
1863
+
1864
+ module.exports = function (set, fn, interruptible) {
1865
+ return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);
1866
+ };
1867
+
1868
+
1788
1869
  /***/ }),
1789
1870
 
1790
1871
  /***/ "38a9":
@@ -1868,6 +1949,33 @@ module.exports = (
1868
1949
  );
1869
1950
 
1870
1951
 
1952
+ /***/ }),
1953
+
1954
+ /***/ "395e":
1955
+ /***/ (function(module, exports, __webpack_require__) {
1956
+
1957
+ "use strict";
1958
+
1959
+ var aSet = __webpack_require__("dc19");
1960
+ var has = __webpack_require__("cb27").has;
1961
+ var size = __webpack_require__("8e16");
1962
+ var getSetRecord = __webpack_require__("7f65");
1963
+ var iterateSimple = __webpack_require__("5388");
1964
+ var iteratorClose = __webpack_require__("2a62");
1965
+
1966
+ // `Set.prototype.isSupersetOf` method
1967
+ // https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf
1968
+ module.exports = function isSupersetOf(other) {
1969
+ var O = aSet(this);
1970
+ var otherRec = getSetRecord(other);
1971
+ if (size(O) < otherRec.size) return false;
1972
+ var iterator = otherRec.getIterator();
1973
+ return iterateSimple(iterator, function (e) {
1974
+ if (!has(O, e)) return iteratorClose(iterator, 'normal', false);
1975
+ }) !== false;
1976
+ };
1977
+
1978
+
1871
1979
  /***/ }),
1872
1980
 
1873
1981
  /***/ "3a34":
@@ -23827,6 +23935,26 @@ module.exports = function dispatchRequest(config) {
23827
23935
 
23828
23936
  module.exports = JSON.parse("{\"code\":\"ne\",\"messages\":{\"alpha\":\"{_field_} फिल्डले वर्णमाला अक्षरहरू मात्र समावेश गर्न सक्छ।\",\"alpha_dash\":\"{_field_} फील्डलमा वर्ण-संख्या अक्षरहरू साथै ड्याश र अन्डरसेर्सहरू समावेश गर्न सक्छ।\",\"alpha_num\":\"{_field_} फील्डमा वर्ण-संख्या अक्षरहरू मात्र समावेश गर्न सक्छ।\",\"alpha_spaces\":\"{_field_} फिल्डमा वर्णमाला अक्षरहरू र स्पेसहरूमा मात्र समावेश गर्न सक्छ।\",\"between\":\"{_field_} फिल्ड {min} र {max} को बीच हुनुपर्दछ।\",\"confirmed\":\"{_field_} पुष्टिकरण मेल खाँदैन।\",\"digits\":\"{_field_} फिल्ड संख्यात्मक हुनुपर्छ र {length} अङ्क समावेश गर्दछ।\",\"dimensions\":\"{_field_} फिल्ड {width} पिक्सेलमा {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_} क्षेत्र वैध दशमलव हुनुपर्दछ\"}}");
23829
23937
 
23938
+ /***/ }),
23939
+
23940
+ /***/ "5388":
23941
+ /***/ (function(module, exports, __webpack_require__) {
23942
+
23943
+ "use strict";
23944
+
23945
+ var call = __webpack_require__("c65b");
23946
+
23947
+ module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {
23948
+ var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;
23949
+ var next = record.next;
23950
+ var step, result;
23951
+ while (!(step = call(next, iterator)).done) {
23952
+ result = fn(step.value);
23953
+ if (result !== undefined) return result;
23954
+ }
23955
+ };
23956
+
23957
+
23830
23958
  /***/ }),
23831
23959
 
23832
23960
  /***/ "55f0":
@@ -24181,6 +24309,41 @@ function _unsupportedIterableToArray(r, a) {
24181
24309
  }
24182
24310
  module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
24183
24311
 
24312
+ /***/ }),
24313
+
24314
+ /***/ "663a":
24315
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
24316
+
24317
+ "use strict";
24318
+ /* 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_c293aa98_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("fffa");
24319
+ /* 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_c293aa98_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_c293aa98_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
24320
+ /* unused harmony reexport * */
24321
+
24322
+
24323
+ /***/ }),
24324
+
24325
+ /***/ "68df":
24326
+ /***/ (function(module, exports, __webpack_require__) {
24327
+
24328
+ "use strict";
24329
+
24330
+ var aSet = __webpack_require__("dc19");
24331
+ var size = __webpack_require__("8e16");
24332
+ var iterate = __webpack_require__("384f");
24333
+ var getSetRecord = __webpack_require__("7f65");
24334
+
24335
+ // `Set.prototype.isSubsetOf` method
24336
+ // https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf
24337
+ module.exports = function isSubsetOf(other) {
24338
+ var O = aSet(this);
24339
+ var otherRec = getSetRecord(other);
24340
+ if (size(O) > otherRec.size) return false;
24341
+ return iterate(O, function (e) {
24342
+ if (!otherRec.includes(e)) return false;
24343
+ }, true) !== false;
24344
+ };
24345
+
24346
+
24184
24347
  /***/ }),
24185
24348
 
24186
24349
  /***/ "6964":
@@ -24393,6 +24556,24 @@ module.exports = function (object, key, method) {
24393
24556
  };
24394
24557
 
24395
24558
 
24559
+ /***/ }),
24560
+
24561
+ /***/ "72c3":
24562
+ /***/ (function(module, exports, __webpack_require__) {
24563
+
24564
+ "use strict";
24565
+
24566
+ var $ = __webpack_require__("23e7");
24567
+ var union = __webpack_require__("e9bc");
24568
+ var setMethodAcceptSetLike = __webpack_require__("dad2");
24569
+
24570
+ // `Set.prototype.union` method
24571
+ // https://tc39.es/ecma262/#sec-set.prototype.union
24572
+ $({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {
24573
+ union: union
24574
+ });
24575
+
24576
+
24396
24577
  /***/ }),
24397
24578
 
24398
24579
  /***/ "72f0":
@@ -24550,6 +24731,85 @@ AxiosError.from = function(error, code, config, request, response, customProps)
24550
24731
  module.exports = AxiosError;
24551
24732
 
24552
24733
 
24734
+ /***/ }),
24735
+
24736
+ /***/ "796d":
24737
+ /***/ (function(module, exports, __webpack_require__) {
24738
+
24739
+ "use strict";
24740
+
24741
+ var $ = __webpack_require__("23e7");
24742
+ var call = __webpack_require__("c65b");
24743
+ var aCallable = __webpack_require__("59ed");
24744
+ var anObject = __webpack_require__("825a");
24745
+ var getIteratorDirect = __webpack_require__("46c4");
24746
+ var getIteratorFlattenable = __webpack_require__("34e1");
24747
+ var createIteratorProxy = __webpack_require__("c5cc");
24748
+ var iteratorClose = __webpack_require__("2a62");
24749
+ var IS_PURE = __webpack_require__("c430");
24750
+
24751
+ var IteratorProxy = createIteratorProxy(function () {
24752
+ var iterator = this.iterator;
24753
+ var mapper = this.mapper;
24754
+ var result, inner;
24755
+
24756
+ while (true) {
24757
+ if (inner = this.inner) try {
24758
+ result = anObject(call(inner.next, inner.iterator));
24759
+ if (!result.done) return result.value;
24760
+ this.inner = null;
24761
+ } catch (error) { iteratorClose(iterator, 'throw', error); }
24762
+
24763
+ result = anObject(call(this.next, iterator));
24764
+
24765
+ if (this.done = !!result.done) return;
24766
+
24767
+ try {
24768
+ this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);
24769
+ } catch (error) { iteratorClose(iterator, 'throw', error); }
24770
+ }
24771
+ });
24772
+
24773
+ // `Iterator.prototype.flatMap` method
24774
+ // https://tc39.es/ecma262/#sec-iterator.prototype.flatmap
24775
+ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
24776
+ flatMap: function flatMap(mapper) {
24777
+ anObject(this);
24778
+ aCallable(mapper);
24779
+ return new IteratorProxy(getIteratorDirect(this), {
24780
+ mapper: mapper,
24781
+ inner: null
24782
+ });
24783
+ }
24784
+ });
24785
+
24786
+
24787
+ /***/ }),
24788
+
24789
+ /***/ "79a4":
24790
+ /***/ (function(module, exports, __webpack_require__) {
24791
+
24792
+ "use strict";
24793
+
24794
+ var $ = __webpack_require__("23e7");
24795
+ var fails = __webpack_require__("d039");
24796
+ var intersection = __webpack_require__("953b");
24797
+ var setMethodAcceptSetLike = __webpack_require__("dad2");
24798
+
24799
+ var INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {
24800
+ return result.size === 2 && result.has(1) && result.has(2);
24801
+ }) || fails(function () {
24802
+ // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing
24803
+ return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';
24804
+ });
24805
+
24806
+ // `Set.prototype.intersection` method
24807
+ // https://tc39.es/ecma262/#sec-set.prototype.intersection
24808
+ $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
24809
+ intersection: intersection
24810
+ });
24811
+
24812
+
24553
24813
  /***/ }),
24554
24814
 
24555
24815
  /***/ "7a70":
@@ -24757,6 +25017,54 @@ $({ target: 'Iterator', proto: true, real: true }, {
24757
25017
  });
24758
25018
 
24759
25019
 
25020
+ /***/ }),
25021
+
25022
+ /***/ "7f65":
25023
+ /***/ (function(module, exports, __webpack_require__) {
25024
+
25025
+ "use strict";
25026
+
25027
+ var aCallable = __webpack_require__("59ed");
25028
+ var anObject = __webpack_require__("825a");
25029
+ var call = __webpack_require__("c65b");
25030
+ var toIntegerOrInfinity = __webpack_require__("5926");
25031
+ var getIteratorDirect = __webpack_require__("46c4");
25032
+
25033
+ var INVALID_SIZE = 'Invalid size';
25034
+ var $RangeError = RangeError;
25035
+ var $TypeError = TypeError;
25036
+ var max = Math.max;
25037
+
25038
+ var SetRecord = function (set, intSize) {
25039
+ this.set = set;
25040
+ this.size = max(intSize, 0);
25041
+ this.has = aCallable(set.has);
25042
+ this.keys = aCallable(set.keys);
25043
+ };
25044
+
25045
+ SetRecord.prototype = {
25046
+ getIterator: function () {
25047
+ return getIteratorDirect(anObject(call(this.keys, this.set)));
25048
+ },
25049
+ includes: function (it) {
25050
+ return call(this.has, this.set, it);
25051
+ }
25052
+ };
25053
+
25054
+ // `GetSetRecord` abstract operation
25055
+ // https://tc39.es/proposal-set-methods/#sec-getsetrecord
25056
+ module.exports = function (obj) {
25057
+ anObject(obj);
25058
+ var numSize = +obj.size;
25059
+ // NOTE: If size is undefined, then numSize will be NaN
25060
+ // eslint-disable-next-line no-self-compare -- NaN check
25061
+ if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);
25062
+ var intSize = toIntegerOrInfinity(numSize);
25063
+ if (intSize < 0) throw new $RangeError(INVALID_SIZE);
25064
+ return new SetRecord(obj, intSize);
25065
+ };
25066
+
25067
+
24760
25068
  /***/ }),
24761
25069
 
24762
25070
  /***/ "825a":
@@ -24799,6 +25107,28 @@ module.exports = !fails(function () {
24799
25107
 
24800
25108
  "use strict";
24801
25109
 
25110
+ var SetHelpers = __webpack_require__("cb27");
25111
+ var iterate = __webpack_require__("384f");
25112
+
25113
+ var Set = SetHelpers.Set;
25114
+ var add = SetHelpers.add;
25115
+
25116
+ module.exports = function (set) {
25117
+ var result = new Set();
25118
+ iterate(set, function (it) {
25119
+ add(result, it);
25120
+ });
25121
+ return result;
25122
+ };
25123
+
25124
+
25125
+ /***/ }),
25126
+
25127
+ /***/ "83b9e":
25128
+ /***/ (function(module, exports, __webpack_require__) {
25129
+
25130
+ "use strict";
25131
+
24802
25132
 
24803
25133
  var isAbsoluteURL = __webpack_require__("d925");
24804
25134
  var combineURLs = __webpack_require__("e683");
@@ -24982,6 +25312,46 @@ if (!isCallable(store.inspectSource)) {
24982
25312
  module.exports = store.inspectSource;
24983
25313
 
24984
25314
 
25315
+ /***/ }),
25316
+
25317
+ /***/ "8958":
25318
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
25319
+
25320
+ "use strict";
25321
+ /* 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_688f213e_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("89e0");
25322
+ /* 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_688f213e_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_688f213e_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
25323
+ /* unused harmony reexport * */
25324
+
25325
+
25326
+ /***/ }),
25327
+
25328
+ /***/ "89e0":
25329
+ /***/ (function(module, exports, __webpack_require__) {
25330
+
25331
+ // extracted by mini-css-extract-plugin
25332
+
25333
+ /***/ }),
25334
+
25335
+ /***/ "8b00":
25336
+ /***/ (function(module, exports, __webpack_require__) {
25337
+
25338
+ "use strict";
25339
+
25340
+ var $ = __webpack_require__("23e7");
25341
+ var isSubsetOf = __webpack_require__("68df");
25342
+ var setMethodAcceptSetLike = __webpack_require__("dad2");
25343
+
25344
+ var INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {
25345
+ return result;
25346
+ });
25347
+
25348
+ // `Set.prototype.isSubsetOf` method
25349
+ // https://tc39.es/ecma262/#sec-set.prototype.issubsetof
25350
+ $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
25351
+ isSubsetOf: isSubsetOf
25352
+ });
25353
+
25354
+
24985
25355
  /***/ }),
24986
25356
 
24987
25357
  /***/ "8bbf":
@@ -25149,6 +25519,21 @@ CancelToken.source = function source() {
25149
25519
  module.exports = CancelToken;
25150
25520
 
25151
25521
 
25522
+ /***/ }),
25523
+
25524
+ /***/ "8e16":
25525
+ /***/ (function(module, exports, __webpack_require__) {
25526
+
25527
+ "use strict";
25528
+
25529
+ var uncurryThisAccessor = __webpack_require__("7282");
25530
+ var SetHelpers = __webpack_require__("cb27");
25531
+
25532
+ module.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {
25533
+ return set.size;
25534
+ };
25535
+
25536
+
25152
25537
  /***/ }),
25153
25538
 
25154
25539
  /***/ "8e5f":
@@ -25446,6 +25831,76 @@ function _defineProperty(e, r, t) {
25446
25831
  }
25447
25832
  module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
25448
25833
 
25834
+ /***/ }),
25835
+
25836
+ /***/ "953b":
25837
+ /***/ (function(module, exports, __webpack_require__) {
25838
+
25839
+ "use strict";
25840
+
25841
+ var aSet = __webpack_require__("dc19");
25842
+ var SetHelpers = __webpack_require__("cb27");
25843
+ var size = __webpack_require__("8e16");
25844
+ var getSetRecord = __webpack_require__("7f65");
25845
+ var iterateSet = __webpack_require__("384f");
25846
+ var iterateSimple = __webpack_require__("5388");
25847
+
25848
+ var Set = SetHelpers.Set;
25849
+ var add = SetHelpers.add;
25850
+ var has = SetHelpers.has;
25851
+
25852
+ // `Set.prototype.intersection` method
25853
+ // https://github.com/tc39/proposal-set-methods
25854
+ module.exports = function intersection(other) {
25855
+ var O = aSet(this);
25856
+ var otherRec = getSetRecord(other);
25857
+ var result = new Set();
25858
+
25859
+ if (size(O) > otherRec.size) {
25860
+ iterateSimple(otherRec.getIterator(), function (e) {
25861
+ if (has(O, e)) add(result, e);
25862
+ });
25863
+ } else {
25864
+ iterateSet(O, function (e) {
25865
+ if (otherRec.includes(e)) add(result, e);
25866
+ });
25867
+ }
25868
+
25869
+ return result;
25870
+ };
25871
+
25872
+
25873
+ /***/ }),
25874
+
25875
+ /***/ "9961":
25876
+ /***/ (function(module, exports, __webpack_require__) {
25877
+
25878
+ "use strict";
25879
+
25880
+ var aSet = __webpack_require__("dc19");
25881
+ var SetHelpers = __webpack_require__("cb27");
25882
+ var clone = __webpack_require__("83b9");
25883
+ var getSetRecord = __webpack_require__("7f65");
25884
+ var iterateSimple = __webpack_require__("5388");
25885
+
25886
+ var add = SetHelpers.add;
25887
+ var has = SetHelpers.has;
25888
+ var remove = SetHelpers.remove;
25889
+
25890
+ // `Set.prototype.symmetricDifference` method
25891
+ // https://github.com/tc39/proposal-set-methods
25892
+ module.exports = function symmetricDifference(other) {
25893
+ var O = aSet(this);
25894
+ var keysIter = getSetRecord(other).getIterator();
25895
+ var result = clone(O);
25896
+ iterateSimple(keysIter, function (e) {
25897
+ if (has(O, e)) remove(result, e);
25898
+ else add(result, e);
25899
+ });
25900
+ return result;
25901
+ };
25902
+
25903
+
25449
25904
  /***/ }),
25450
25905
 
25451
25906
  /***/ "9a1f":
@@ -25637,6 +26092,90 @@ function toPropertyKey(t) {
25637
26092
  }
25638
26093
  module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
25639
26094
 
26095
+ /***/ }),
26096
+
26097
+ /***/ "a4e7":
26098
+ /***/ (function(module, exports, __webpack_require__) {
26099
+
26100
+ "use strict";
26101
+
26102
+ var $ = __webpack_require__("23e7");
26103
+ var isSupersetOf = __webpack_require__("395e");
26104
+ var setMethodAcceptSetLike = __webpack_require__("dad2");
26105
+
26106
+ var INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {
26107
+ return !result;
26108
+ });
26109
+
26110
+ // `Set.prototype.isSupersetOf` method
26111
+ // https://tc39.es/ecma262/#sec-set.prototype.issupersetof
26112
+ $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
26113
+ isSupersetOf: isSupersetOf
26114
+ });
26115
+
26116
+
26117
+ /***/ }),
26118
+
26119
+ /***/ "a5f7":
26120
+ /***/ (function(module, exports, __webpack_require__) {
26121
+
26122
+ "use strict";
26123
+
26124
+ var aSet = __webpack_require__("dc19");
26125
+ var SetHelpers = __webpack_require__("cb27");
26126
+ var clone = __webpack_require__("83b9");
26127
+ var size = __webpack_require__("8e16");
26128
+ var getSetRecord = __webpack_require__("7f65");
26129
+ var iterateSet = __webpack_require__("384f");
26130
+ var iterateSimple = __webpack_require__("5388");
26131
+
26132
+ var has = SetHelpers.has;
26133
+ var remove = SetHelpers.remove;
26134
+
26135
+ // `Set.prototype.difference` method
26136
+ // https://github.com/tc39/proposal-set-methods
26137
+ module.exports = function difference(other) {
26138
+ var O = aSet(this);
26139
+ var otherRec = getSetRecord(other);
26140
+ var result = clone(O);
26141
+ if (size(O) <= otherRec.size) iterateSet(O, function (e) {
26142
+ if (otherRec.includes(e)) remove(result, e);
26143
+ });
26144
+ else iterateSimple(otherRec.getIterator(), function (e) {
26145
+ if (has(O, e)) remove(result, e);
26146
+ });
26147
+ return result;
26148
+ };
26149
+
26150
+
26151
+ /***/ }),
26152
+
26153
+ /***/ "a732":
26154
+ /***/ (function(module, exports, __webpack_require__) {
26155
+
26156
+ "use strict";
26157
+
26158
+ var $ = __webpack_require__("23e7");
26159
+ var iterate = __webpack_require__("2266");
26160
+ var aCallable = __webpack_require__("59ed");
26161
+ var anObject = __webpack_require__("825a");
26162
+ var getIteratorDirect = __webpack_require__("46c4");
26163
+
26164
+ // `Iterator.prototype.some` method
26165
+ // https://tc39.es/ecma262/#sec-iterator.prototype.some
26166
+ $({ target: 'Iterator', proto: true, real: true }, {
26167
+ some: function some(predicate) {
26168
+ anObject(this);
26169
+ aCallable(predicate);
26170
+ var record = getIteratorDirect(this);
26171
+ var counter = 0;
26172
+ return iterate(record, function (value, stop) {
26173
+ if (predicate(value, counter++)) return stop();
26174
+ }, { IS_RECORD: true, INTERRUPTED: true }).stopped;
26175
+ }
26176
+ });
26177
+
26178
+
25640
26179
  /***/ }),
25641
26180
 
25642
26181
  /***/ "ab36":
@@ -26058,6 +26597,36 @@ function toNumber(value) {
26058
26597
  module.exports = toNumber;
26059
26598
 
26060
26599
 
26600
+ /***/ }),
26601
+
26602
+ /***/ "b4bc":
26603
+ /***/ (function(module, exports, __webpack_require__) {
26604
+
26605
+ "use strict";
26606
+
26607
+ var aSet = __webpack_require__("dc19");
26608
+ var has = __webpack_require__("cb27").has;
26609
+ var size = __webpack_require__("8e16");
26610
+ var getSetRecord = __webpack_require__("7f65");
26611
+ var iterateSet = __webpack_require__("384f");
26612
+ var iterateSimple = __webpack_require__("5388");
26613
+ var iteratorClose = __webpack_require__("2a62");
26614
+
26615
+ // `Set.prototype.isDisjointFrom` method
26616
+ // https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom
26617
+ module.exports = function isDisjointFrom(other) {
26618
+ var O = aSet(this);
26619
+ var otherRec = getSetRecord(other);
26620
+ if (size(O) <= otherRec.size) return iterateSet(O, function (e) {
26621
+ if (otherRec.includes(e)) return false;
26622
+ }, true) !== false;
26623
+ var iterator = otherRec.getIterator();
26624
+ return iterateSimple(iterator, function (e) {
26625
+ if (has(O, e)) return iteratorClose(iterator, 'normal', false);
26626
+ }) !== false;
26627
+ };
26628
+
26629
+
26061
26630
  /***/ }),
26062
26631
 
26063
26632
  /***/ "b50d":
@@ -26070,7 +26639,7 @@ var utils = __webpack_require__("c532");
26070
26639
  var settle = __webpack_require__("467f");
26071
26640
  var cookies = __webpack_require__("7aac");
26072
26641
  var buildURL = __webpack_require__("30b5");
26073
- var buildFullPath = __webpack_require__("83b9");
26642
+ var buildFullPath = __webpack_require__("83b9e");
26074
26643
  var parseHeaders = __webpack_require__("c345");
26075
26644
  var isURLSameOrigin = __webpack_require__("3934");
26076
26645
  var transitionalDefaults = __webpack_require__("cafa");
@@ -29149,6 +29718,28 @@ function _arrayWithHoles(r) {
29149
29718
  }
29150
29719
  module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
29151
29720
 
29721
+ /***/ }),
29722
+
29723
+ /***/ "c1a1":
29724
+ /***/ (function(module, exports, __webpack_require__) {
29725
+
29726
+ "use strict";
29727
+
29728
+ var $ = __webpack_require__("23e7");
29729
+ var isDisjointFrom = __webpack_require__("b4bc");
29730
+ var setMethodAcceptSetLike = __webpack_require__("dad2");
29731
+
29732
+ var INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {
29733
+ return !result;
29734
+ });
29735
+
29736
+ // `Set.prototype.isDisjointFrom` method
29737
+ // https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom
29738
+ $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
29739
+ isDisjointFrom: isDisjointFrom
29740
+ });
29741
+
29742
+
29152
29743
  /***/ }),
29153
29744
 
29154
29745
  /***/ "c240":
@@ -33888,6 +34479,28 @@ module.exports = {
33888
34479
  };
33889
34480
 
33890
34481
 
34482
+ /***/ }),
34483
+
34484
+ /***/ "cb27":
34485
+ /***/ (function(module, exports, __webpack_require__) {
34486
+
34487
+ "use strict";
34488
+
34489
+ var uncurryThis = __webpack_require__("e330");
34490
+
34491
+ // eslint-disable-next-line es/no-set -- safe
34492
+ var SetPrototype = Set.prototype;
34493
+
34494
+ module.exports = {
34495
+ // eslint-disable-next-line es/no-set -- safe
34496
+ Set: Set,
34497
+ add: uncurryThis(SetPrototype.add),
34498
+ has: uncurryThis(SetPrototype.has),
34499
+ remove: uncurryThis(SetPrototype['delete']),
34500
+ proto: SetPrototype
34501
+ };
34502
+
34503
+
33891
34504
  /***/ }),
33892
34505
 
33893
34506
  /***/ "cb2d":
@@ -34244,6 +34857,34 @@ module.exports = JSON.parse("{\"code\":\"he\",\"messages\":{\"alpha\":\"השדה
34244
34857
  /* unused harmony reexport * */
34245
34858
 
34246
34859
 
34860
+ /***/ }),
34861
+
34862
+ /***/ "d866":
34863
+ /***/ (function(module, exports, __webpack_require__) {
34864
+
34865
+ "use strict";
34866
+
34867
+ var $ = __webpack_require__("23e7");
34868
+ var iterate = __webpack_require__("2266");
34869
+ var aCallable = __webpack_require__("59ed");
34870
+ var anObject = __webpack_require__("825a");
34871
+ var getIteratorDirect = __webpack_require__("46c4");
34872
+
34873
+ // `Iterator.prototype.every` method
34874
+ // https://tc39.es/ecma262/#sec-iterator.prototype.every
34875
+ $({ target: 'Iterator', proto: true, real: true }, {
34876
+ every: function every(predicate) {
34877
+ anObject(this);
34878
+ aCallable(predicate);
34879
+ var record = getIteratorDirect(this);
34880
+ var counter = 0;
34881
+ return !iterate(record, function (value, stop) {
34882
+ if (!predicate(value, counter++)) return stop();
34883
+ }, { IS_RECORD: true, INTERRUPTED: true }).stopped;
34884
+ }
34885
+ });
34886
+
34887
+
34247
34888
  /***/ }),
34248
34889
 
34249
34890
  /***/ "d925":
@@ -34354,6 +34995,88 @@ exportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {
34354
34995
  });
34355
34996
 
34356
34997
 
34998
+ /***/ }),
34999
+
35000
+ /***/ "dad2":
35001
+ /***/ (function(module, exports, __webpack_require__) {
35002
+
35003
+ "use strict";
35004
+
35005
+ var getBuiltIn = __webpack_require__("d066");
35006
+
35007
+ var createSetLike = function (size) {
35008
+ return {
35009
+ size: size,
35010
+ has: function () {
35011
+ return false;
35012
+ },
35013
+ keys: function () {
35014
+ return {
35015
+ next: function () {
35016
+ return { done: true };
35017
+ }
35018
+ };
35019
+ }
35020
+ };
35021
+ };
35022
+
35023
+ var createSetLikeWithInfinitySize = function (size) {
35024
+ return {
35025
+ size: size,
35026
+ has: function () {
35027
+ return true;
35028
+ },
35029
+ keys: function () {
35030
+ throw new Error('e');
35031
+ }
35032
+ };
35033
+ };
35034
+
35035
+ module.exports = function (name, callback) {
35036
+ var Set = getBuiltIn('Set');
35037
+ try {
35038
+ new Set()[name](createSetLike(0));
35039
+ try {
35040
+ // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it
35041
+ // https://github.com/tc39/proposal-set-methods/pull/88
35042
+ new Set()[name](createSetLike(-1));
35043
+ return false;
35044
+ } catch (error2) {
35045
+ if (!callback) return true;
35046
+ // early V8 implementation bug
35047
+ // https://issues.chromium.org/issues/351332634
35048
+ try {
35049
+ new Set()[name](createSetLikeWithInfinitySize(-Infinity));
35050
+ return false;
35051
+ } catch (error) {
35052
+ var set = new Set();
35053
+ set.add(1);
35054
+ set.add(2);
35055
+ return callback(set[name](createSetLikeWithInfinitySize(Infinity)));
35056
+ }
35057
+ }
35058
+ } catch (error) {
35059
+ return false;
35060
+ }
35061
+ };
35062
+
35063
+
35064
+ /***/ }),
35065
+
35066
+ /***/ "dc19":
35067
+ /***/ (function(module, exports, __webpack_require__) {
35068
+
35069
+ "use strict";
35070
+
35071
+ var has = __webpack_require__("cb27").has;
35072
+
35073
+ // Perform ? RequireInternalSlot(M, [[SetData]])
35074
+ module.exports = function (it) {
35075
+ has(it);
35076
+ return it;
35077
+ };
35078
+
35079
+
34357
35080
  /***/ }),
34358
35081
 
34359
35082
  /***/ "dc20":
@@ -35206,6 +35929,32 @@ module.exports = function (it) {
35206
35929
  };
35207
35930
 
35208
35931
 
35932
+ /***/ }),
35933
+
35934
+ /***/ "e9bc":
35935
+ /***/ (function(module, exports, __webpack_require__) {
35936
+
35937
+ "use strict";
35938
+
35939
+ var aSet = __webpack_require__("dc19");
35940
+ var add = __webpack_require__("cb27").add;
35941
+ var clone = __webpack_require__("83b9");
35942
+ var getSetRecord = __webpack_require__("7f65");
35943
+ var iterateSimple = __webpack_require__("5388");
35944
+
35945
+ // `Set.prototype.union` method
35946
+ // https://github.com/tc39/proposal-set-methods
35947
+ module.exports = function union(other) {
35948
+ var O = aSet(this);
35949
+ var keysIter = getSetRecord(other).getIterator();
35950
+ var result = clone(O);
35951
+ iterateSimple(keysIter, function (it) {
35952
+ add(result, it);
35953
+ });
35954
+ return result;
35955
+ };
35956
+
35957
+
35209
35958
  /***/ }),
35210
35959
 
35211
35960
  /***/ "e9cd":
@@ -35373,6 +36122,34 @@ module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
35373
36122
  };
35374
36123
 
35375
36124
 
36125
+ /***/ }),
36126
+
36127
+ /***/ "f665":
36128
+ /***/ (function(module, exports, __webpack_require__) {
36129
+
36130
+ "use strict";
36131
+
36132
+ var $ = __webpack_require__("23e7");
36133
+ var iterate = __webpack_require__("2266");
36134
+ var aCallable = __webpack_require__("59ed");
36135
+ var anObject = __webpack_require__("825a");
36136
+ var getIteratorDirect = __webpack_require__("46c4");
36137
+
36138
+ // `Iterator.prototype.find` method
36139
+ // https://tc39.es/ecma262/#sec-iterator.prototype.find
36140
+ $({ target: 'Iterator', proto: true, real: true }, {
36141
+ find: function find(predicate) {
36142
+ anObject(this);
36143
+ aCallable(predicate);
36144
+ var record = getIteratorDirect(this);
36145
+ var counter = 0;
36146
+ return iterate(record, function (value, stop) {
36147
+ if (predicate(value, counter++)) return stop(value);
36148
+ }, { IS_RECORD: true, INTERRUPTED: true }).result;
36149
+ }
36150
+ });
36151
+
36152
+
35376
36153
  /***/ }),
35377
36154
 
35378
36155
  /***/ "f694":
@@ -35541,7 +36318,7 @@ if (typeof window !== 'undefined') {
35541
36318
  // Indicate to webpack that this file can be concatenated
35542
36319
  /* harmony default export */ var setPublicPath = (null);
35543
36320
 
35544
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4289e630-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=03edafb0
36321
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4289e630-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=25cf8cc7
35545
36322
  var render = function render() {
35546
36323
  var _vm = this,
35547
36324
  _c = _vm._self._c;
@@ -35694,7 +36471,7 @@ var render = function render() {
35694
36471
  };
35695
36472
  var staticRenderFns = [];
35696
36473
 
35697
- // CONCATENATED MODULE: ./src/components/DynamicForm.vue?vue&type=template&id=03edafb0
36474
+ // CONCATENATED MODULE: ./src/components/DynamicForm.vue?vue&type=template&id=25cf8cc7
35698
36475
 
35699
36476
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
35700
36477
  var es_array_push = __webpack_require__("14d9");
@@ -41896,72 +42673,52 @@ var FileField_component = normalizeComponent(
41896
42673
  )
41897
42674
 
41898
42675
  /* harmony default export */ var FileField = (FileField_component.exports);
41899
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4289e630-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/TreeSelectField.vue?vue&type=template&id=4975b454
41900
- var TreeSelectFieldvue_type_template_id_4975b454_render = function render() {
42676
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4289e630-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/NormalFileField.vue?vue&type=template&id=53457fd3
42677
+ var NormalFileFieldvue_type_template_id_53457fd3_render = function render() {
41901
42678
  var _vm = this,
41902
42679
  _c = _vm._self._c;
41903
- return _c('Field', {
41904
- staticClass: "w-100",
42680
+ return _c('div', {
42681
+ staticClass: "col-12 p-0 fileFieldAttachment",
41905
42682
  attrs: {
41906
- "name": _vm.GetDisplayLabel(_vm.fieldInfo),
41907
- "rules": _vm.fieldInfo.validationRules
42683
+ "id": 'File_' + _vm.fieldInfo.name
42684
+ }
42685
+ }, [_c('div', {
42686
+ staticClass: "custom-file"
42687
+ }, [_c('input', {
42688
+ staticClass: "custom-file-input",
42689
+ attrs: {
42690
+ "type": "file",
42691
+ "id": 'NormalFile_' + _vm.fieldInfo.name,
42692
+ "disabled": _vm.fieldInfo.disabled,
42693
+ "multiple": _vm.canUploadMultipleFile(),
42694
+ "aria-describedby": 'NormalFile_' + _vm.fieldInfo.name
41908
42695
  },
41909
- scopedSlots: _vm._u([{
41910
- key: "default",
41911
- fn: function ({
41912
- errors
41913
- }) {
41914
- return [_c('div', {
41915
- staticClass: "w-100 d-flex dynamic-multiselect"
41916
- }, [_vm.options && _vm.options.length > 0 ? _c('tree-select', {
41917
- staticClass: "w-100 form-control border-0 p-0",
41918
- attrs: {
41919
- "multiple": false,
41920
- "options": _vm.options,
41921
- "placeholder": _vm.fieldInfo.placeholder
41922
- },
41923
- model: {
41924
- value: _vm.fieldInfo.value,
41925
- callback: function ($$v) {
41926
- _vm.$set(_vm.fieldInfo, "value", $$v);
41927
- },
41928
- expression: "fieldInfo.value"
41929
- }
41930
- }) : _vm._e(), _vm.showAddIcon() ? _c('div', {
41931
- staticClass: "ml-2 mt-1"
41932
- }, [_c('a', {
41933
- class: _vm.addButtonClass()
41934
- }, [_c('i', {
41935
- class: _vm.addIconClass(),
41936
- attrs: {
41937
- "alt": "+"
41938
- },
41939
- on: {
41940
- "click": function ($event) {
41941
- return _vm.onAddButtonClick($event);
41942
- }
41943
- }
41944
- })])]) : _vm._e(), errors[0] ? _c('span', {
41945
- staticClass: "invalid-feedback d-block"
41946
- }, [_vm._v(_vm._s(errors[0]))]) : _vm._e()], 1)];
42696
+ on: {
42697
+ "change": function ($event) {
42698
+ return _vm.onChange($event);
41947
42699
  }
41948
- }])
41949
- });
42700
+ }
42701
+ }), _c('label', {
42702
+ staticClass: "custom-file-label",
42703
+ attrs: {
42704
+ "for": 'NormalFile_' + _vm.fieldInfo.name
42705
+ }
42706
+ }, [_vm._v("Choose file")])]), _vm.errors.length > 0 ? _c('div', _vm._l(_vm.errors, function (error, index) {
42707
+ return _c('div', {
42708
+ key: index,
42709
+ staticClass: "file-upload__error"
42710
+ }, [_c('span', [_vm._v(_vm._s(error))])]);
42711
+ }), 0) : _vm._e()]);
41950
42712
  };
41951
- var TreeSelectFieldvue_type_template_id_4975b454_staticRenderFns = [];
41952
-
41953
- // CONCATENATED MODULE: ./src/components/TreeSelectField.vue?vue&type=template&id=4975b454
42713
+ var NormalFileFieldvue_type_template_id_53457fd3_staticRenderFns = [];
41954
42714
 
41955
- // EXTERNAL MODULE: ./node_modules/@riophae/vue-treeselect/dist/vue-treeselect.cjs.js
41956
- var vue_treeselect_cjs = __webpack_require__("ca17");
41957
- var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treeselect_cjs);
42715
+ // CONCATENATED MODULE: ./src/components/NormalFileField.vue?vue&type=template&id=53457fd3
41958
42716
 
41959
- // 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/TreeSelectField.vue?vue&type=script&lang=js
42717
+ // 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/NormalFileField.vue?vue&type=script&lang=js
41960
42718
 
41961
42719
 
41962
- /* harmony default export */ var TreeSelectFieldvue_type_script_lang_js = ({
42720
+ /* harmony default export */ var NormalFileFieldvue_type_script_lang_js = ({
41963
42721
  components: {
41964
- 'tree-select': vue_treeselect_cjs_default.a,
41965
42722
  Field: ValidationProvider
41966
42723
  },
41967
42724
  props: {
@@ -41974,172 +42731,3038 @@ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treesele
41974
42731
  required: true
41975
42732
  }
41976
42733
  },
41977
- data() {
42734
+ data: function () {
41978
42735
  return {
41979
- options: [],
41980
- scrollops: {
41981
- maxHeight: 200,
41982
- vuescroll: {
41983
- sizeStrategy: 'number'
41984
- }
41985
- }
42736
+ isDragging: false,
42737
+ maxSize: 0,
42738
+ accept: '',
42739
+ reject: '',
42740
+ errors: [],
42741
+ file: {
42742
+ name: "",
42743
+ size: 0,
42744
+ type: "",
42745
+ fileExtention: "",
42746
+ url: "",
42747
+ isImage: false,
42748
+ isUploaded: false
42749
+ },
42750
+ previewFiles: []
41986
42751
  };
41987
42752
  },
41988
- mounted() {
42753
+ mounted: function () {
41989
42754
  this.fieldInfo.validationRules = getValidationRules(this.fieldInfo.validationRules, this.lang);
41990
- if (this.fieldInfo.hasOwnProperty('config') && this.fieldInfo.config.hasOwnProperty('options')) {
41991
- if (typeof this.fieldInfo.config.OptionsForBind != 'undefined') {
41992
- this.options = this.fieldInfo.config.OptionsForBind;
41993
- } else {
41994
- this.options = this.fieldInfo.config.options;
41995
- }
42755
+ if (this.fieldInfo.placeholder) {
42756
+ this.fileName = this.fieldInfo.placeholder;
41996
42757
  }
41997
- if (!this.fieldInfo.hasOwnProperty('placeholder')) {
41998
- this.fieldInfo.placeholder = 'Select Location';
42758
+ if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.hasOwnProperty('maxSize')) {
42759
+ this.maxSize = this.fieldInfo.config.maxSize;
42760
+ }
42761
+ if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.hasOwnProperty('accept')) {
42762
+ this.accept = Array.prototype.map.call(this.fieldInfo.config.accept, function (item) {
42763
+ return item.fileType;
42764
+ }).join(",");
42765
+ }
42766
+ if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.hasOwnProperty('reject')) {
42767
+ this.reject = Array.prototype.map.call(this.fieldInfo.config.reject, function (item) {
42768
+ return item.fileType;
42769
+ }).join(",");
41999
42770
  }
42000
42771
  },
42001
42772
  methods: {
42002
- GetDisplayLabel(field) {
42003
- var labelName = '';
42004
- if (field.hasOwnProperty('label') && field.label) {
42005
- labelName = field.label;
42006
- } else if (field.hasOwnProperty('display_name') && field.display_name) {
42007
- labelName = field.display_name;
42008
- }
42009
- return labelName;
42773
+ openFilePopup() {
42774
+ document.querySelectorAll('#File_' + this.fieldInfo.name + ' [type="file"]')[0].click();
42010
42775
  },
42011
- showAddIcon: function () {
42012
- if (this.fieldInfo.config && this.fieldInfo.config.showAddIcon) {
42013
- return this.fieldInfo.config.showAddIcon;
42776
+ RemoveFile(event, index) {
42777
+ event.stopPropagation();
42778
+ const dt = new DataTransfer();
42779
+ const input = document.querySelectorAll('#File_' + this.fieldInfo.name + ' [type="file"]')[0];
42780
+ const {
42781
+ files
42782
+ } = input;
42783
+ this.previewFiles = [];
42784
+ for (let i = 0; i < files.length; i++) {
42785
+ const file = files[i];
42786
+ if (index !== i) {
42787
+ dt.items.add(file);
42788
+ var fileExtention = file.name.split(".").pop();
42789
+ var isImage = ["jpg", "jpeg", "png", "gif"].includes(fileExtention);
42790
+ let reader = new FileReader();
42791
+ reader.addEventListener("load", () => {
42792
+ // Set file data
42793
+ this.file = {
42794
+ name: file.name.split(".").shift(),
42795
+ size: Math.round(file.size / 1024 / 1024 * 100) / 100,
42796
+ type: file.type,
42797
+ fileExtention: fileExtention,
42798
+ isImage: isImage,
42799
+ url: reader.result,
42800
+ isUploaded: true
42801
+ };
42802
+ this.previewFiles.push(this.file);
42803
+ }, false);
42804
+ // Read uploaded file
42805
+ reader.readAsDataURL(file);
42806
+ }
42807
+ // here you exclude the file. thus removing it.
42808
+ }
42809
+ input.files = dt.files; // Assign the updates list
42810
+
42811
+ if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onRemoveFile) {
42812
+ this.fieldInfo.config.onRemoveFile(event, index, this.fieldInfo);
42014
42813
  }
42015
42814
  },
42016
- onAddButtonClick: function (e) {
42017
- if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onAddButtonClick) {
42018
- this.fieldInfo.config.onAddButtonClick(e, this.fieldInfo);
42815
+ onChange(e) {
42816
+ this.errors = [];
42817
+ // Check if file is selected
42818
+ if (e.target.files && e.target.files[0]) {
42819
+ // Check if file is valid
42820
+ for (let index = 0; index < e.target.files.length; index++) {
42821
+ const file = e.target.files[index];
42822
+ if (this.isFileValid(file)) {
42823
+ // Get uploaded file
42824
+ // Get file size
42825
+ var fileSize = Math.round(file.size / 1024 / 1024 * 100) / 100;
42826
+ // Get file extention
42827
+ var fileExtention = file.name.split(".").pop();
42828
+ // Get file name
42829
+ var fileName = file.name.split(".").shift();
42830
+ // Check if file is an image
42831
+ var isImage = ["jpg", "jpeg", "png", "gif"].includes(fileExtention);
42832
+ // Print to console
42833
+ console.log(fileSize, fileExtention, fileName, isImage);
42834
+ // Load the FileReader API
42835
+ let reader = new FileReader();
42836
+ reader.addEventListener("load", () => {
42837
+ // Set file data
42838
+ this.file = {
42839
+ name: fileName,
42840
+ size: fileSize,
42841
+ type: file.type,
42842
+ fileExtention: fileExtention,
42843
+ isImage: isImage,
42844
+ url: reader.result,
42845
+ isUploaded: true
42846
+ };
42847
+ if (this.canUploadMultipleFile() == false) {
42848
+ this.previewFiles = [];
42849
+ }
42850
+ this.previewFiles.push(this.file);
42851
+ }, false);
42852
+ // Read uploaded file
42853
+ reader.readAsDataURL(file);
42854
+ } else {
42855
+ console.log("Invalid file");
42856
+ }
42857
+ }
42858
+ var fileName = document.getElementById('NormalFile_' + this.fieldInfo.name).files[0].name;
42859
+ var nextSibling = e.target.nextElementSibling;
42860
+ nextSibling.innerText = fileName;
42861
+ if (this.errors.length == 0) {
42862
+ this.fieldInfo.value = e.target.files;
42863
+ if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onChange) {
42864
+ this.fieldInfo.config.onChange(e, this.fieldInfo);
42865
+ }
42866
+ }
42019
42867
  }
42020
42868
  },
42021
- addButtonClass: function () {
42022
- if (this.fieldInfo.config && this.fieldInfo.config.addIconBackground) {
42023
- return "round-icon-small theme-primary " + this.fieldInfo.config.addIconBackground;
42869
+ isFileSizeValid(fileSize) {
42870
+ if (fileSize <= this.maxSize) {
42871
+ console.log("File size is valid");
42024
42872
  } else {
42025
- return "round-icon-small btn-dark theme-primary";
42873
+ this.errors.push(`File size should be less than ${this.maxSize} MB`);
42026
42874
  }
42027
42875
  },
42028
- addIconClass: function () {
42029
- if (this.fieldInfo.config && this.fieldInfo.config.addIcon) {
42030
- return "fa text-white pt-7 font-18 " + this.fieldInfo.config.addIcon;
42876
+ isFileTypeValid(fileExtention) {
42877
+ if (this.reject != "" && this.reject.split(",").length > 0 && this.reject.split(",").includes(fileExtention)) {
42878
+ this.errors.push(`File type should not be ${this.reject}`);
42879
+ }
42880
+ if (this.accept != "" && this.accept.split(",").length > 0) {
42881
+ if (this.accept.split(",").includes(fileExtention)) {
42882
+ console.log("File type is valid");
42883
+ } else {
42884
+ this.errors.push(`File type should be ${this.accept}`);
42885
+ }
42886
+ }
42887
+ },
42888
+ isFileValid(file) {
42889
+ this.isFileSizeValid(Math.round(file.size / 1024 / 1024 * 100) / 100);
42890
+ this.isFileTypeValid(file.name.split(".").pop());
42891
+ if (this.errors.length === 0) {
42892
+ return true;
42031
42893
  } else {
42032
- return "fa fa-plus text-white pt-7 font-18";
42894
+ return false;
42033
42895
  }
42034
- }
42035
- }
42036
- });
42037
- // CONCATENATED MODULE: ./src/components/TreeSelectField.vue?vue&type=script&lang=js
42038
- /* harmony default export */ var components_TreeSelectFieldvue_type_script_lang_js = (TreeSelectFieldvue_type_script_lang_js);
42039
- // CONCATENATED MODULE: ./src/components/TreeSelectField.vue
42040
-
42041
-
42042
-
42043
-
42044
-
42045
- /* normalize component */
42046
-
42047
- var TreeSelectField_component = normalizeComponent(
42048
- components_TreeSelectFieldvue_type_script_lang_js,
42049
- TreeSelectFieldvue_type_template_id_4975b454_render,
42050
- TreeSelectFieldvue_type_template_id_4975b454_staticRenderFns,
42051
- false,
42052
- null,
42053
- null,
42054
- null
42055
-
42056
- )
42057
-
42058
- /* harmony default export */ var TreeSelectField = (TreeSelectField_component.exports);
42059
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4289e630-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/SlotField.vue?vue&type=template&id=552c7e65
42060
- var SlotFieldvue_type_template_id_552c7e65_render = function render() {
42061
- var _vm = this,
42062
- _c = _vm._self._c;
42063
- return _c('Field', {
42064
- staticClass: "w-100",
42065
- attrs: {
42066
- "name": _vm.GetDisplayLabel(_vm.fieldInfo),
42067
- "rules": _vm.fieldInfo.validationRules
42068
42896
  },
42069
- scopedSlots: _vm._u([{
42070
- key: "default",
42071
- fn: function ({
42072
- errors
42073
- }) {
42074
- return [_vm._t("tgslot", null, {
42075
- "data": {
42076
- fieldInfo: _vm.fieldInfo,
42077
- error: errors.length > 0 ? errors[0] : ''
42078
- }
42079
- })];
42897
+ canUploadMultipleFile() {
42898
+ if (this.fieldInfo.config && this.fieldInfo.config.hasOwnProperty('multiple')) {
42899
+ return this.fieldInfo.config.multiple;
42080
42900
  }
42081
- }], null, true)
42082
- });
42083
- };
42084
- var SlotFieldvue_type_template_id_552c7e65_staticRenderFns = [];
42085
-
42086
- // CONCATENATED MODULE: ./src/components/SlotField.vue?vue&type=template&id=552c7e65
42087
-
42088
- // 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/SlotField.vue?vue&type=script&lang=js
42089
-
42090
- /* harmony default export */ var SlotFieldvue_type_script_lang_js = ({
42091
- components: {
42092
- Field: ValidationProvider
42093
- },
42094
- props: {
42095
- lang: {
42096
- type: String,
42097
- default: 'en'
42901
+ return false;
42098
42902
  },
42099
- fieldInfo: {
42100
- type: Object,
42101
- required: true
42102
- }
42103
- },
42104
- methods: {
42105
- GetDisplayLabel: function (field) {
42106
- var labelName = '';
42107
- if (field.hasOwnProperty('label') && field.label) {
42108
- labelName = field.label;
42109
- } else if (field.hasOwnProperty('display_name') && field.display_name) {
42110
- labelName = field.display_name;
42903
+ getSelectedFile: function () {
42904
+ try {
42905
+ if (this.fieldInfo.config && this.fieldInfo.config.hasOwnProperty('showSelectedFiles')) {
42906
+ return this.fieldInfo.config.showSelectedFiles;
42907
+ }
42908
+ return [];
42909
+ } catch (ex) {
42910
+ console.log(ex);
42911
+ return [];
42111
42912
  }
42112
- return labelName;
42113
- }
42114
- },
42115
- mounted: function () {
42116
- this.fieldInfo.validationRules = getValidationRules(this.fieldInfo.validationRules, this.lang);
42117
- }
42118
- });
42119
- // CONCATENATED MODULE: ./src/components/SlotField.vue?vue&type=script&lang=js
42120
- /* harmony default export */ var components_SlotFieldvue_type_script_lang_js = (SlotFieldvue_type_script_lang_js);
42121
- // CONCATENATED MODULE: ./src/components/SlotField.vue
42122
-
42123
-
42124
-
42125
-
42126
-
42127
- /* normalize component */
42128
-
42129
- var SlotField_component = normalizeComponent(
42130
- components_SlotFieldvue_type_script_lang_js,
42131
- SlotFieldvue_type_template_id_552c7e65_render,
42132
- SlotFieldvue_type_template_id_552c7e65_staticRenderFns,
42133
- false,
42134
- null,
42135
- null,
42136
- null
42137
-
42138
- )
42139
-
42140
- /* harmony default export */ var SlotField = (SlotField_component.exports);
42141
- // 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
42142
-
42913
+ },
42914
+ isShowCrossOnSelectedFile: function () {
42915
+ try {
42916
+ if (this.fieldInfo.config && this.fieldInfo.config.hasOwnProperty('showCrossOnSelectedFiles')) {
42917
+ return this.fieldInfo.config.showCrossOnSelectedFiles;
42918
+ }
42919
+ return true;
42920
+ } catch (ex) {
42921
+ console.log(ex);
42922
+ return true;
42923
+ }
42924
+ },
42925
+ getFileName: function (name) {
42926
+ try {
42927
+ let arr = name.split(".");
42928
+ let path = arr[0].length > 4 ? arr[0].substring(0, 4) + "..." + arr[1] : arr[0] + "." + arr[1];
42929
+ return path;
42930
+ } catch (ex) {
42931
+ return name;
42932
+ }
42933
+ },
42934
+ getFileIcon: function (name) {
42935
+ let arr = name.split(".");
42936
+ let icon = "";
42937
+ switch (arr[1]) {
42938
+ case "jpg":
42939
+ case "png":
42940
+ case "jpeg":
42941
+ case "gif":
42942
+ icon = "fa-file-image-o";
42943
+ break;
42944
+ case "doc":
42945
+ case "docs":
42946
+ icon = "fa-file-word-o";
42947
+ break;
42948
+ case "pdf":
42949
+ icon = "fa-file-pdf-o";
42950
+ break;
42951
+ case "xlsx":
42952
+ case "xlsm":
42953
+ case "xlsb":
42954
+ case "xltx":
42955
+ case "xls":
42956
+ case "xlt":
42957
+ icon = "fa-file-excel-o";
42958
+ break;
42959
+ case "mp4":
42960
+ case "mov":
42961
+ case "wmv":
42962
+ case "flv":
42963
+ case "avi":
42964
+ case "webm":
42965
+ case "mkv":
42966
+ case "avchd":
42967
+ icon = "fa-file-video-o";
42968
+ break;
42969
+ case "pptx":
42970
+ icon = "fa-file-powerpoint-o";
42971
+ break;
42972
+ case "mp3":
42973
+ case "aac":
42974
+ case "wav":
42975
+ case "aiff":
42976
+ case "dsd":
42977
+ case "pcm":
42978
+ icon = "fa-file-audio-o";
42979
+ break;
42980
+ default:
42981
+ icon = "fa-file-o";
42982
+ }
42983
+ return icon;
42984
+ },
42985
+ onDelete: function (item) {
42986
+ try {
42987
+ if (this.fieldInfo.config && this.fieldInfo.config.hasOwnProperty('onDeleteSelectedFiles')) {
42988
+ this.fieldInfo.config.onDeleteSelectedFiles(item);
42989
+ }
42990
+ } catch (ex) {
42991
+ console.log(ex);
42992
+ }
42993
+ },
42994
+ onClickSelectedFile: function (item) {
42995
+ try {
42996
+ if (this.fieldInfo.config && this.fieldInfo.config.hasOwnProperty('onClickSelectedFiles')) {
42997
+ this.fieldInfo.config.onClickSelectedFiles(item);
42998
+ }
42999
+ } catch (ex) {
43000
+ console.log(ex);
43001
+ }
43002
+ },
43003
+ dragOver: function () {
43004
+ this.isDragging = true;
43005
+ },
43006
+ dragLeave: function () {
43007
+ this.isDragging = false;
43008
+ },
43009
+ handleDrop: function (event) {
43010
+ event.preventDefault();
43011
+ this.isDragging = false;
43012
+ const files = event.target.files || event.dataTransfer.files;
43013
+ if (files.length) {
43014
+ for (let index = 0; index < files.length; index++) {
43015
+ const file = files[index];
43016
+ if (this.isFileValid(file)) {
43017
+ // Get uploaded file
43018
+ // Get file size
43019
+ var fileSize = Math.round(file.size / 1024 / 1024 * 100) / 100;
43020
+ // Get file extention
43021
+ var fileExtention = file.name.split(".").pop();
43022
+ // Get file name
43023
+ var fileName = file.name.split(".").shift();
43024
+ // Check if file is an image
43025
+ var isImage = ["jpg", "jpeg", "png", "gif"].includes(fileExtention);
43026
+ // Print to console
43027
+ console.log(fileSize, fileExtention, fileName, isImage);
43028
+ // Load the FileReader API
43029
+ let reader = new FileReader();
43030
+ reader.addEventListener("load", () => {
43031
+ // Set file data
43032
+ this.file = {
43033
+ name: fileName,
43034
+ size: fileSize,
43035
+ type: file.type,
43036
+ fileExtention: fileExtention,
43037
+ isImage: isImage,
43038
+ url: reader.result,
43039
+ isUploaded: true
43040
+ };
43041
+ if (this.canUploadMultipleFile() == false) {
43042
+ this.previewFiles = [];
43043
+ }
43044
+ this.previewFiles.push(this.file);
43045
+ }, false);
43046
+ // Read uploaded file
43047
+ reader.readAsDataURL(file);
43048
+ } else {
43049
+ console.log("Invalid file");
43050
+ }
43051
+ }
43052
+ if (this.errors.length == 0) {
43053
+ this.fieldInfo.value = files;
43054
+ if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onChange) {
43055
+ this.fieldInfo.config.onChange(e, this.fieldInfo);
43056
+ }
43057
+ }
43058
+ }
43059
+ }
43060
+ }
43061
+ });
43062
+ // CONCATENATED MODULE: ./src/components/NormalFileField.vue?vue&type=script&lang=js
43063
+ /* harmony default export */ var components_NormalFileFieldvue_type_script_lang_js = (NormalFileFieldvue_type_script_lang_js);
43064
+ // CONCATENATED MODULE: ./src/components/NormalFileField.vue
43065
+
43066
+
43067
+
43068
+
43069
+
43070
+ /* normalize component */
43071
+
43072
+ var NormalFileField_component = normalizeComponent(
43073
+ components_NormalFileFieldvue_type_script_lang_js,
43074
+ NormalFileFieldvue_type_template_id_53457fd3_render,
43075
+ NormalFileFieldvue_type_template_id_53457fd3_staticRenderFns,
43076
+ false,
43077
+ null,
43078
+ null,
43079
+ null
43080
+
43081
+ )
43082
+
43083
+ /* harmony default export */ var NormalFileField = (NormalFileField_component.exports);
43084
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4289e630-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/TreeSelectField.vue?vue&type=template&id=4975b454
43085
+ var TreeSelectFieldvue_type_template_id_4975b454_render = function render() {
43086
+ var _vm = this,
43087
+ _c = _vm._self._c;
43088
+ return _c('Field', {
43089
+ staticClass: "w-100",
43090
+ attrs: {
43091
+ "name": _vm.GetDisplayLabel(_vm.fieldInfo),
43092
+ "rules": _vm.fieldInfo.validationRules
43093
+ },
43094
+ scopedSlots: _vm._u([{
43095
+ key: "default",
43096
+ fn: function ({
43097
+ errors
43098
+ }) {
43099
+ return [_c('div', {
43100
+ staticClass: "w-100 d-flex dynamic-multiselect"
43101
+ }, [_vm.options && _vm.options.length > 0 ? _c('tree-select', {
43102
+ staticClass: "w-100 form-control border-0 p-0",
43103
+ attrs: {
43104
+ "multiple": false,
43105
+ "options": _vm.options,
43106
+ "placeholder": _vm.fieldInfo.placeholder
43107
+ },
43108
+ model: {
43109
+ value: _vm.fieldInfo.value,
43110
+ callback: function ($$v) {
43111
+ _vm.$set(_vm.fieldInfo, "value", $$v);
43112
+ },
43113
+ expression: "fieldInfo.value"
43114
+ }
43115
+ }) : _vm._e(), _vm.showAddIcon() ? _c('div', {
43116
+ staticClass: "ml-2 mt-1"
43117
+ }, [_c('a', {
43118
+ class: _vm.addButtonClass()
43119
+ }, [_c('i', {
43120
+ class: _vm.addIconClass(),
43121
+ attrs: {
43122
+ "alt": "+"
43123
+ },
43124
+ on: {
43125
+ "click": function ($event) {
43126
+ return _vm.onAddButtonClick($event);
43127
+ }
43128
+ }
43129
+ })])]) : _vm._e(), errors[0] ? _c('span', {
43130
+ staticClass: "invalid-feedback d-block"
43131
+ }, [_vm._v(_vm._s(errors[0]))]) : _vm._e()], 1)];
43132
+ }
43133
+ }])
43134
+ });
43135
+ };
43136
+ var TreeSelectFieldvue_type_template_id_4975b454_staticRenderFns = [];
43137
+
43138
+ // CONCATENATED MODULE: ./src/components/TreeSelectField.vue?vue&type=template&id=4975b454
43139
+
43140
+ // EXTERNAL MODULE: ./node_modules/@riophae/vue-treeselect/dist/vue-treeselect.cjs.js
43141
+ var vue_treeselect_cjs = __webpack_require__("ca17");
43142
+ var vue_treeselect_cjs_default = /*#__PURE__*/__webpack_require__.n(vue_treeselect_cjs);
43143
+
43144
+ // 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/TreeSelectField.vue?vue&type=script&lang=js
43145
+
43146
+
43147
+ /* harmony default export */ var TreeSelectFieldvue_type_script_lang_js = ({
43148
+ components: {
43149
+ 'tree-select': vue_treeselect_cjs_default.a,
43150
+ Field: ValidationProvider
43151
+ },
43152
+ props: {
43153
+ lang: {
43154
+ type: String,
43155
+ default: 'en'
43156
+ },
43157
+ fieldInfo: {
43158
+ type: Object,
43159
+ required: true
43160
+ }
43161
+ },
43162
+ data() {
43163
+ return {
43164
+ options: [],
43165
+ scrollops: {
43166
+ maxHeight: 200,
43167
+ vuescroll: {
43168
+ sizeStrategy: 'number'
43169
+ }
43170
+ }
43171
+ };
43172
+ },
43173
+ mounted() {
43174
+ this.fieldInfo.validationRules = getValidationRules(this.fieldInfo.validationRules, this.lang);
43175
+ if (this.fieldInfo.hasOwnProperty('config') && this.fieldInfo.config.hasOwnProperty('options')) {
43176
+ if (typeof this.fieldInfo.config.OptionsForBind != 'undefined') {
43177
+ this.options = this.fieldInfo.config.OptionsForBind;
43178
+ } else {
43179
+ this.options = this.fieldInfo.config.options;
43180
+ }
43181
+ }
43182
+ if (!this.fieldInfo.hasOwnProperty('placeholder')) {
43183
+ this.fieldInfo.placeholder = 'Select Location';
43184
+ }
43185
+ },
43186
+ methods: {
43187
+ GetDisplayLabel(field) {
43188
+ var labelName = '';
43189
+ if (field.hasOwnProperty('label') && field.label) {
43190
+ labelName = field.label;
43191
+ } else if (field.hasOwnProperty('display_name') && field.display_name) {
43192
+ labelName = field.display_name;
43193
+ }
43194
+ return labelName;
43195
+ },
43196
+ showAddIcon: function () {
43197
+ if (this.fieldInfo.config && this.fieldInfo.config.showAddIcon) {
43198
+ return this.fieldInfo.config.showAddIcon;
43199
+ }
43200
+ },
43201
+ onAddButtonClick: function (e) {
43202
+ if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onAddButtonClick) {
43203
+ this.fieldInfo.config.onAddButtonClick(e, this.fieldInfo);
43204
+ }
43205
+ },
43206
+ addButtonClass: function () {
43207
+ if (this.fieldInfo.config && this.fieldInfo.config.addIconBackground) {
43208
+ return "round-icon-small theme-primary " + this.fieldInfo.config.addIconBackground;
43209
+ } else {
43210
+ return "round-icon-small btn-dark theme-primary";
43211
+ }
43212
+ },
43213
+ addIconClass: function () {
43214
+ if (this.fieldInfo.config && this.fieldInfo.config.addIcon) {
43215
+ return "fa text-white pt-7 font-18 " + this.fieldInfo.config.addIcon;
43216
+ } else {
43217
+ return "fa fa-plus text-white pt-7 font-18";
43218
+ }
43219
+ }
43220
+ }
43221
+ });
43222
+ // CONCATENATED MODULE: ./src/components/TreeSelectField.vue?vue&type=script&lang=js
43223
+ /* harmony default export */ var components_TreeSelectFieldvue_type_script_lang_js = (TreeSelectFieldvue_type_script_lang_js);
43224
+ // CONCATENATED MODULE: ./src/components/TreeSelectField.vue
43225
+
43226
+
43227
+
43228
+
43229
+
43230
+ /* normalize component */
43231
+
43232
+ var TreeSelectField_component = normalizeComponent(
43233
+ components_TreeSelectFieldvue_type_script_lang_js,
43234
+ TreeSelectFieldvue_type_template_id_4975b454_render,
43235
+ TreeSelectFieldvue_type_template_id_4975b454_staticRenderFns,
43236
+ false,
43237
+ null,
43238
+ null,
43239
+ null
43240
+
43241
+ )
43242
+
43243
+ /* harmony default export */ var TreeSelectField = (TreeSelectField_component.exports);
43244
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4289e630-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/SlotField.vue?vue&type=template&id=552c7e65
43245
+ var SlotFieldvue_type_template_id_552c7e65_render = function render() {
43246
+ var _vm = this,
43247
+ _c = _vm._self._c;
43248
+ return _c('Field', {
43249
+ staticClass: "w-100",
43250
+ attrs: {
43251
+ "name": _vm.GetDisplayLabel(_vm.fieldInfo),
43252
+ "rules": _vm.fieldInfo.validationRules
43253
+ },
43254
+ scopedSlots: _vm._u([{
43255
+ key: "default",
43256
+ fn: function ({
43257
+ errors
43258
+ }) {
43259
+ return [_vm._t("tgslot", null, {
43260
+ "data": {
43261
+ fieldInfo: _vm.fieldInfo,
43262
+ error: errors.length > 0 ? errors[0] : ''
43263
+ }
43264
+ })];
43265
+ }
43266
+ }], null, true)
43267
+ });
43268
+ };
43269
+ var SlotFieldvue_type_template_id_552c7e65_staticRenderFns = [];
43270
+
43271
+ // CONCATENATED MODULE: ./src/components/SlotField.vue?vue&type=template&id=552c7e65
43272
+
43273
+ // 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/SlotField.vue?vue&type=script&lang=js
43274
+
43275
+ /* harmony default export */ var SlotFieldvue_type_script_lang_js = ({
43276
+ components: {
43277
+ Field: ValidationProvider
43278
+ },
43279
+ props: {
43280
+ lang: {
43281
+ type: String,
43282
+ default: 'en'
43283
+ },
43284
+ fieldInfo: {
43285
+ type: Object,
43286
+ required: true
43287
+ }
43288
+ },
43289
+ methods: {
43290
+ GetDisplayLabel: function (field) {
43291
+ var labelName = '';
43292
+ if (field.hasOwnProperty('label') && field.label) {
43293
+ labelName = field.label;
43294
+ } else if (field.hasOwnProperty('display_name') && field.display_name) {
43295
+ labelName = field.display_name;
43296
+ }
43297
+ return labelName;
43298
+ }
43299
+ },
43300
+ mounted: function () {
43301
+ this.fieldInfo.validationRules = getValidationRules(this.fieldInfo.validationRules, this.lang);
43302
+ }
43303
+ });
43304
+ // CONCATENATED MODULE: ./src/components/SlotField.vue?vue&type=script&lang=js
43305
+ /* harmony default export */ var components_SlotFieldvue_type_script_lang_js = (SlotFieldvue_type_script_lang_js);
43306
+ // CONCATENATED MODULE: ./src/components/SlotField.vue
43307
+
43308
+
43309
+
43310
+
43311
+
43312
+ /* normalize component */
43313
+
43314
+ var SlotField_component = normalizeComponent(
43315
+ components_SlotFieldvue_type_script_lang_js,
43316
+ SlotFieldvue_type_template_id_552c7e65_render,
43317
+ SlotFieldvue_type_template_id_552c7e65_staticRenderFns,
43318
+ false,
43319
+ null,
43320
+ null,
43321
+ null
43322
+
43323
+ )
43324
+
43325
+ /* harmony default export */ var SlotField = (SlotField_component.exports);
43326
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4289e630-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=6f324aae
43327
+ var SearchableSelectFieldvue_type_template_id_6f324aae_render = function render() {
43328
+ var _vm = this,
43329
+ _c = _vm._self._c;
43330
+ return _c('Field', {
43331
+ staticClass: "w-100",
43332
+ attrs: {
43333
+ "name": _vm.GetDisplayLabel(_vm.fieldInfo),
43334
+ "rules": _vm.fieldInfo.validationRules
43335
+ },
43336
+ scopedSlots: _vm._u([{
43337
+ key: "default",
43338
+ fn: function ({
43339
+ errors
43340
+ }) {
43341
+ return [_c('div', {
43342
+ staticClass: "w-100"
43343
+ }, [_c('SearchableSelect', {
43344
+ attrs: {
43345
+ "items": _vm.fieldInfo.config.OptionsForBind,
43346
+ "max-visible-chips": 2,
43347
+ "action-buttons": _vm.computedActionButtons(_vm.fieldInfo),
43348
+ "item-fields": _vm.computedItemFields(_vm.fieldInfo),
43349
+ "group-fields": _vm.computedGroupFields(_vm.fieldInfo),
43350
+ "max-render-items": _vm.computedMaxRenderItems(_vm.fieldInfo),
43351
+ "lazy-load": true,
43352
+ "multiple": _vm.fieldInfo.config.isMultiple,
43353
+ "label": _vm.fieldInfo.label,
43354
+ "placeholder": _vm.fieldInfo.placeholder,
43355
+ "status-field-config": _vm.fieldInfo.config.statusFieldConfig,
43356
+ "min-search-length": _vm.fieldInfo.config.minSearchLength
43357
+ },
43358
+ on: {
43359
+ "change": function ($event) {
43360
+ return _vm.onSearchableChange($event, _vm.fieldInfo);
43361
+ }
43362
+ },
43363
+ model: {
43364
+ value: _vm.fieldInfo.value,
43365
+ callback: function ($$v) {
43366
+ _vm.$set(_vm.fieldInfo, "value", $$v);
43367
+ },
43368
+ expression: "fieldInfo.value"
43369
+ }
43370
+ })], 1), errors[0] ? _c('span', {
43371
+ staticClass: "invalid-feedback d-block"
43372
+ }, [_vm._v(_vm._s(errors[0]))]) : _vm._e()];
43373
+ }
43374
+ }])
43375
+ });
43376
+ };
43377
+ var SearchableSelectFieldvue_type_template_id_6f324aae_staticRenderFns = [];
43378
+
43379
+ // CONCATENATED MODULE: ./src/components/SearchableSelectField.vue?vue&type=template&id=6f324aae
43380
+
43381
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4289e630-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=688f213e&scoped=true
43382
+ var SearchableSelectvue_type_template_id_688f213e_scoped_true_render = function render() {
43383
+ var _vm = this,
43384
+ _c = _vm._self._c;
43385
+ return _c('div', {
43386
+ staticClass: "searchable-select"
43387
+ }, [_c('Autocomplete', {
43388
+ attrs: {
43389
+ "value": _vm.internalValue,
43390
+ "model-value": _vm.internalValue,
43391
+ "items": _vm.displayItems,
43392
+ "all-items": _vm.allItems,
43393
+ "loading": _vm.loading,
43394
+ "placeholder": _vm.placeholder,
43395
+ "label": _vm.label,
43396
+ "disabled": _vm.disabled,
43397
+ "clearable": _vm.clearable,
43398
+ "density": _vm.density,
43399
+ "variant": _vm.variant,
43400
+ "multiple": _vm.multiple,
43401
+ "item-title": _vm.itemTitle,
43402
+ "item-value": _vm.itemValue,
43403
+ "menu-props": _vm.menuProps,
43404
+ "no-data-text": _vm.noDataText,
43405
+ "hide-details": _vm.hideDetails,
43406
+ "error-messages": _vm.errorMessages,
43407
+ "rules": _vm.rules,
43408
+ "min-search-length": _vm.minSearchLength,
43409
+ "max-visible-chips": _vm.maxVisibleChips,
43410
+ "action-buttons": _vm.actionButtons,
43411
+ "item-fields": _vm.itemFields,
43412
+ "group-fields": _vm.groupFields,
43413
+ "max-render-items": _vm.maxRenderItems,
43414
+ "lazy-load": _vm.lazyLoad,
43415
+ "status-field-config": _vm.statusFieldConfig
43416
+ },
43417
+ on: {
43418
+ "input": _vm.onSelectionChange,
43419
+ "update:model-value": _vm.onSelectionChange,
43420
+ "update:search": _vm.onSearch,
43421
+ "focus": _vm.onFocus,
43422
+ "blur": _vm.onBlur,
43423
+ "search": _vm.onSearch
43424
+ }
43425
+ })], 1);
43426
+ };
43427
+ var SearchableSelectvue_type_template_id_688f213e_scoped_true_staticRenderFns = [];
43428
+
43429
+ // CONCATENATED MODULE: ./src/components/SearchableSelect.vue?vue&type=template&id=688f213e&scoped=true
43430
+
43431
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4289e630-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=c293aa98&scoped=true
43432
+ var Autocompletevue_type_template_id_c293aa98_scoped_true_render = function render() {
43433
+ var _vm = this,
43434
+ _c = _vm._self._c;
43435
+ return _c('div', {
43436
+ staticClass: "custom-autocomplete mt-0",
43437
+ class: {
43438
+ 'is-disabled': _vm.disabled,
43439
+ 'has-error': _vm.hasError
43440
+ }
43441
+ }, [!_vm.multiple ? _c('div', {
43442
+ staticClass: "autocomplete-wrapper"
43443
+ }, [_c('div', {
43444
+ staticClass: "input-group"
43445
+ }, [_c('input', {
43446
+ ref: "input",
43447
+ staticClass: "form-control",
43448
+ class: {
43449
+ 'is-invalid': _vm.hasError,
43450
+ 'form-control-sm': _vm.density === 'compact',
43451
+ 'form-control-lg': _vm.density === 'comfortable'
43452
+ },
43453
+ attrs: {
43454
+ "type": "text",
43455
+ "placeholder": _vm.placeholder,
43456
+ "disabled": _vm.disabled
43457
+ },
43458
+ domProps: {
43459
+ "value": _vm.displayText
43460
+ },
43461
+ on: {
43462
+ "input": _vm.onInput,
43463
+ "focus": _vm.onFocus,
43464
+ "blur": _vm.onBlur,
43465
+ "keydown": [function ($event) {
43466
+ if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) return null;
43467
+ $event.preventDefault();
43468
+ return _vm.handleEnter.apply(null, arguments);
43469
+ }, function ($event) {
43470
+ if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "arrow-down", undefined, $event.key, undefined)) return null;
43471
+ $event.preventDefault();
43472
+ return _vm.navigateDown.apply(null, arguments);
43473
+ }, function ($event) {
43474
+ if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "arrow-up", undefined, $event.key, undefined)) return null;
43475
+ $event.preventDefault();
43476
+ return _vm.navigateUp.apply(null, arguments);
43477
+ }, function ($event) {
43478
+ if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "escape", undefined, $event.key, undefined)) return null;
43479
+ return _vm.closeMenu.apply(null, arguments);
43480
+ }]
43481
+ }
43482
+ }), _c('div', {
43483
+ staticClass: "input-group-append"
43484
+ }, [_vm.clearable && _vm.selectedValue ? _c('button', {
43485
+ staticClass: "btn btn-outline-secondary",
43486
+ attrs: {
43487
+ "type": "button",
43488
+ "tabindex": "-1"
43489
+ },
43490
+ on: {
43491
+ "click": _vm.clearSelection
43492
+ }
43493
+ }, [_c('i', {
43494
+ staticClass: "fa fa-times"
43495
+ })]) : _vm._e(), _c('button', {
43496
+ staticClass: "btn btn-outline-secondary dropdown-toggle",
43497
+ class: {
43498
+ 'active': _vm.isMenuOpen
43499
+ },
43500
+ attrs: {
43501
+ "type": "button",
43502
+ "tabindex": "-1"
43503
+ },
43504
+ on: {
43505
+ "click": _vm.toggleMenu
43506
+ }
43507
+ }, [_c('i', {
43508
+ staticClass: "fa",
43509
+ class: _vm.loading ? 'fa-spinner fa-spin' : 'fa-chevron-down'
43510
+ })])])]), _vm.isMenuOpen ? _c('div', {
43511
+ ref: "menu",
43512
+ staticClass: "autocomplete-menu",
43513
+ style: {
43514
+ maxHeight: _vm.menuMaxHeight + 'px'
43515
+ },
43516
+ on: {
43517
+ "scroll": _vm.onMenuScroll
43518
+ }
43519
+ }, [_vm.loading && !_vm.hasItems ? _c('div', {
43520
+ staticClass: "autocomplete-loading"
43521
+ }, [_vm._m(0), _c('div', {
43522
+ staticClass: "mt-2 text-muted small"
43523
+ }, [_vm._v("Loading...")])]) : !_vm.loading && !_vm.hasItems && _vm.searchTerm.length >= _vm.minSearchLength ? _c('div', {
43524
+ staticClass: "autocomplete-no-data"
43525
+ }, [_c('i', {
43526
+ staticClass: "fa fa-search text-muted",
43527
+ staticStyle: {
43528
+ "font-size": "2rem"
43529
+ }
43530
+ }), _c('div', {
43531
+ staticClass: "mt-2 text-muted"
43532
+ }, [_vm._v(_vm._s(_vm.noDataText))]), _c('div', {
43533
+ staticClass: "text-muted small"
43534
+ }, [_vm._v("Try adjusting your search terms")])]) : _vm.hasGrouping ? _c('div', {
43535
+ staticClass: "autocomplete-grouped"
43536
+ }, _vm._l(_vm.paginatedGroupedItems, function (group, groupIndex) {
43537
+ return _c('div', {
43538
+ key: group.group || groupIndex,
43539
+ staticClass: "autocomplete-group"
43540
+ }, [_c('div', {
43541
+ staticClass: "autocomplete-group-header"
43542
+ }, [_vm.groupFields.length > 0 ? _c('div', {
43543
+ staticClass: "d-flex flex-column"
43544
+ }, [_c('div', {
43545
+ staticClass: "font-weight-bold font-14"
43546
+ }, [_vm._v(_vm._s(group.group))]), _vm.groupFields.length > 1 ? _c('div', {
43547
+ staticClass: "small text-muted mt-1"
43548
+ }, _vm._l(_vm.groupFields, function (field, idx) {
43549
+ return _c('span', {
43550
+ key: field
43551
+ }, [idx > 0 ? _c('span', [_vm._v(" • ")]) : _vm._e(), _vm.getGroupFieldValue(group, field) ? _c('span', [_vm._v(_vm._s(field) + ": " + _vm._s(_vm.getGroupFieldValue(group, field)))]) : _vm._e()]);
43552
+ }), 0) : _vm._e()]) : _c('div', [_vm._v(_vm._s(group.group))])]), _c('ul', {
43553
+ staticClass: "list-group list-group-flush"
43554
+ }, _vm._l(group.items, function (item, itemIndex) {
43555
+ return _c('li', {
43556
+ key: _vm.getItemValue(item),
43557
+ staticClass: "list-group-item autocomplete-item",
43558
+ class: {
43559
+ 'active': _vm.getFlatIndex(groupIndex, itemIndex) === _vm.highlightedIndex,
43560
+ 'selected': _vm.isSelected(item)
43561
+ },
43562
+ staticStyle: {
43563
+ "cursor": "pointer"
43564
+ },
43565
+ on: {
43566
+ "click": function ($event) {
43567
+ $event.preventDefault();
43568
+ return _vm.selectItem(item, $event);
43569
+ },
43570
+ "mouseenter": function ($event) {
43571
+ _vm.highlightedIndex = _vm.getFlatIndex(groupIndex, itemIndex);
43572
+ }
43573
+ }
43574
+ }, [_c('div', {
43575
+ staticClass: "d-flex align-items-center"
43576
+ }, [_vm.multiple ? _c('div', {
43577
+ staticClass: "autocomplete-checkbox-wrapper mr-2"
43578
+ }, [_c('input', {
43579
+ staticClass: "autocomplete-checkbox",
43580
+ attrs: {
43581
+ "type": "checkbox",
43582
+ "tabindex": "-1"
43583
+ },
43584
+ domProps: {
43585
+ "checked": _vm.isSelected(item)
43586
+ },
43587
+ on: {
43588
+ "click": function ($event) {
43589
+ $event.stopPropagation();
43590
+ $event.preventDefault();
43591
+ return _vm.selectItem(item, $event);
43592
+ }
43593
+ }
43594
+ }), _vm.isSelected(item) ? _c('i', {
43595
+ staticClass: "fa fa-check autocomplete-check-icon"
43596
+ }) : _vm._e()]) : _vm._e(), item.raw && item.raw.category ? _c('span', {
43597
+ staticClass: "badge badge-secondary mr-2",
43598
+ staticStyle: {
43599
+ "font-size": "0.75rem"
43600
+ }
43601
+ }, [_vm._v(" " + _vm._s(item.raw.category) + " ")]) : _vm._e(), _c('div', {
43602
+ staticClass: "flex-grow-1"
43603
+ }, [_vm.itemFields.length > 0 ? _c('div', {
43604
+ staticClass: "font-weight-400",
43605
+ class: {
43606
+ 'text-dark': _vm.isSelected(item)
43607
+ },
43608
+ domProps: {
43609
+ "innerHTML": _vm._s(_vm.formatItemFields(item))
43610
+ }
43611
+ }) : _c('div', {
43612
+ staticClass: "font-weight-400",
43613
+ class: {
43614
+ 'text-dark': _vm.isSelected(item)
43615
+ }
43616
+ }, [_vm._v(_vm._s(_vm.getItemText(item)))]), !_vm.itemFields.length && _vm.getItemDescription(item) ? _c('div', {
43617
+ staticClass: "text-muted small mt-1"
43618
+ }, [_vm._v(_vm._s(_vm.getItemDescription(item)))]) : _vm._e()]), _vm.isSelected(item) && !_vm.multiple ? _c('i', {
43619
+ staticClass: "fa fa-check text-success ml-2",
43620
+ staticStyle: {
43621
+ "font-size": "1.1rem"
43622
+ }
43623
+ }) : _vm._e()])]);
43624
+ }), 0)]);
43625
+ }), 0) : _c('ul', {
43626
+ staticClass: "list-group list-group-flush"
43627
+ }, _vm._l(_vm.paginatedDisplayItems, function (item, index) {
43628
+ return _c('li', {
43629
+ key: _vm.getItemValue(item),
43630
+ staticClass: "list-group-item autocomplete-item",
43631
+ class: {
43632
+ 'active': index === _vm.highlightedIndex,
43633
+ 'selected': _vm.isSelected(item)
43634
+ },
43635
+ staticStyle: {
43636
+ "cursor": "pointer"
43637
+ },
43638
+ on: {
43639
+ "click": function ($event) {
43640
+ $event.preventDefault();
43641
+ return _vm.selectItem(item, $event);
43642
+ },
43643
+ "mouseenter": function ($event) {
43644
+ _vm.highlightedIndex = index;
43645
+ }
43646
+ }
43647
+ }, [_c('div', {
43648
+ staticClass: "d-flex align-items-center"
43649
+ }, [_vm.multiple ? _c('input', {
43650
+ staticClass: "mr-2",
43651
+ attrs: {
43652
+ "type": "checkbox",
43653
+ "tabindex": "-1"
43654
+ },
43655
+ domProps: {
43656
+ "checked": _vm.isSelected(item)
43657
+ },
43658
+ on: {
43659
+ "click": function ($event) {
43660
+ $event.stopPropagation();
43661
+ $event.preventDefault();
43662
+ return _vm.selectItem(item);
43663
+ }
43664
+ }
43665
+ }) : _vm._e(), item.raw && item.raw.category ? _c('span', {
43666
+ staticClass: "badge badge-primary mr-2"
43667
+ }, [_vm._v(" " + _vm._s(item.raw.category) + " ")]) : _vm._e(), _c('div', {
43668
+ staticClass: "flex-grow-1"
43669
+ }, [_vm.itemFields.length > 0 ? _c('div', {
43670
+ staticClass: "font-weight-400",
43671
+ domProps: {
43672
+ "innerHTML": _vm._s(_vm.formatItemFields(item))
43673
+ }
43674
+ }) : _c('div', {
43675
+ staticClass: "font-weight-400"
43676
+ }, [_vm._v(_vm._s(_vm.getItemText(item)))]), !_vm.itemFields.length && _vm.getItemDescription(item) ? _c('div', {
43677
+ staticClass: "text-muted small mt-1"
43678
+ }, [_vm._v(_vm._s(_vm.getItemDescription(item)))]) : _vm._e()]), _vm.isSelected(item) && !_vm.multiple ? _c('i', {
43679
+ staticClass: "fa fa-check text-primary ml-2"
43680
+ }) : _vm._e()])]);
43681
+ }), 0)]) : _vm._e()]) : _c('div', {
43682
+ staticClass: "autocomplete-wrapper"
43683
+ }, [_c('div', {
43684
+ staticClass: "input-group"
43685
+ }, [_c('div', {
43686
+ staticClass: "form-control autocomplete-chips-container",
43687
+ class: {
43688
+ 'is-invalid': _vm.hasError,
43689
+ 'form-control-sm': _vm.density === 'compact',
43690
+ 'form-control-lg': _vm.density === 'comfortable'
43691
+ }
43692
+ }, [_c('div', {
43693
+ staticClass: "d-flex flex-wrap align-items-center"
43694
+ }, [_vm._l(_vm.visibleChips, function (selectedItem, index) {
43695
+ return [index < _vm.maxVisibleChipsCount ? _c('span', {
43696
+ key: _vm.getItemValue(selectedItem),
43697
+ staticClass: "badge badge-primary mr-1 mb-1 pl-2 autocomplete-chip",
43698
+ attrs: {
43699
+ "title": _vm.getChipText(selectedItem)
43700
+ }
43701
+ }, [_c('span', {
43702
+ staticClass: "autocomplete-chip-text",
43703
+ domProps: {
43704
+ "innerHTML": _vm._s(_vm.getChipText(selectedItem))
43705
+ }
43706
+ }), _c('button', {
43707
+ staticClass: "close ml-1 autocomplete-chip-close",
43708
+ attrs: {
43709
+ "type": "button",
43710
+ "tabindex": "-1",
43711
+ "aria-label": 'Remove ' + _vm.getChipText(selectedItem).replace(/<[^>]*>/g, '')
43712
+ },
43713
+ on: {
43714
+ "click": function ($event) {
43715
+ $event.stopPropagation();
43716
+ _vm.removeItem(_vm.getItemValue(selectedItem));
43717
+ }
43718
+ }
43719
+ }, [_c('span', {
43720
+ attrs: {
43721
+ "aria-hidden": "true"
43722
+ }
43723
+ }, [_vm._v("×")])])]) : _vm._e()];
43724
+ }), _vm.remainingChipsCount > 0 ? _c('span', {
43725
+ staticClass: "badge badge-secondary mr-1 mb-1 pl-2 autocomplete-chip autocomplete-chip-more",
43726
+ attrs: {
43727
+ "title": `${_vm.remainingChipsCount} more selected`
43728
+ }
43729
+ }, [_c('span', {
43730
+ staticClass: "autocomplete-chip-text"
43731
+ }, [_vm._v("+ " + _vm._s(_vm.remainingChipsCount) + " more")])]) : _vm._e(), _c('input', {
43732
+ ref: "input",
43733
+ staticClass: "autocomplete-input-inline",
43734
+ attrs: {
43735
+ "type": "text",
43736
+ "placeholder": _vm.selectedItems.length === 0 ? _vm.placeholder : '',
43737
+ "disabled": _vm.disabled
43738
+ },
43739
+ domProps: {
43740
+ "value": _vm.searchTerm
43741
+ },
43742
+ on: {
43743
+ "input": _vm.onInput,
43744
+ "focus": _vm.onFocus,
43745
+ "blur": _vm.onBlur,
43746
+ "keydown": [function ($event) {
43747
+ if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) return null;
43748
+ $event.preventDefault();
43749
+ return _vm.handleEnter.apply(null, arguments);
43750
+ }, function ($event) {
43751
+ if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "arrow-down", undefined, $event.key, undefined)) return null;
43752
+ $event.preventDefault();
43753
+ return _vm.navigateDown.apply(null, arguments);
43754
+ }, function ($event) {
43755
+ if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "arrow-up", undefined, $event.key, undefined)) return null;
43756
+ $event.preventDefault();
43757
+ return _vm.navigateUp.apply(null, arguments);
43758
+ }, function ($event) {
43759
+ if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "escape", undefined, $event.key, undefined)) return null;
43760
+ return _vm.closeMenu.apply(null, arguments);
43761
+ }, function ($event) {
43762
+ if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "backspace", undefined, $event.key, undefined)) return null;
43763
+ return _vm.handleBackspace.apply(null, arguments);
43764
+ }]
43765
+ }
43766
+ })], 2)]), _c('div', {
43767
+ staticClass: "input-group-append"
43768
+ }, [_vm.clearable && _vm.currentValue && (Array.isArray(_vm.currentValue) ? _vm.currentValue.length > 0 : true) ? _c('button', {
43769
+ staticClass: "btn btn-outline-secondary",
43770
+ attrs: {
43771
+ "type": "button",
43772
+ "tabindex": "-1"
43773
+ },
43774
+ on: {
43775
+ "click": _vm.clearSelection
43776
+ }
43777
+ }, [_c('i', {
43778
+ staticClass: "fa fa-times"
43779
+ })]) : _vm._e(), _c('button', {
43780
+ staticClass: "btn btn-outline-secondary dropdown-toggle",
43781
+ class: {
43782
+ 'active': _vm.isMenuOpen
43783
+ },
43784
+ attrs: {
43785
+ "type": "button",
43786
+ "tabindex": "-1"
43787
+ },
43788
+ on: {
43789
+ "click": _vm.toggleMenu
43790
+ }
43791
+ }, [_c('i', {
43792
+ staticClass: "fa",
43793
+ class: _vm.loading ? 'fa-spinner fa-spin' : 'fa-chevron-down'
43794
+ })])])]), _vm.isMenuOpen ? _c('div', {
43795
+ ref: "menu",
43796
+ staticClass: "autocomplete-menu",
43797
+ style: {
43798
+ maxHeight: _vm.menuMaxHeight + 'px'
43799
+ },
43800
+ on: {
43801
+ "scroll": _vm.onMenuScroll
43802
+ }
43803
+ }, [_vm.hasActionButtons ? _c('div', {
43804
+ staticClass: "autocomplete-actions p-2 border-bottom"
43805
+ }, [_c('div', {
43806
+ staticClass: "d-flex flex-wrap gap-1"
43807
+ }, [_vm.actionButtons.selectAll ? _c('button', {
43808
+ staticClass: "btn btn-sm btn-outline-primary",
43809
+ attrs: {
43810
+ "type": "button",
43811
+ "disabled": _vm.disabled || _vm.allSelected
43812
+ },
43813
+ on: {
43814
+ "click": function ($event) {
43815
+ $event.stopPropagation();
43816
+ $event.preventDefault();
43817
+ return _vm.selectAll($event);
43818
+ }
43819
+ }
43820
+ }, [_c('i', {
43821
+ staticClass: "fa fa-check-square mr-1"
43822
+ }), _vm._v(" Select All ")]) : _vm._e(), _vm.actionButtons.active ? _c('button', {
43823
+ staticClass: "btn btn-sm btn-outline-success",
43824
+ class: {
43825
+ 'active': _vm.filterStatus === 'active'
43826
+ },
43827
+ attrs: {
43828
+ "type": "button",
43829
+ "disabled": _vm.disabled
43830
+ },
43831
+ on: {
43832
+ "click": function ($event) {
43833
+ return _vm.filterByStatus('active');
43834
+ }
43835
+ }
43836
+ }, [_c('i', {
43837
+ staticClass: "fa fa-check-circle mr-1"
43838
+ }), _vm._v(" Active ")]) : _vm._e(), _vm.actionButtons.inactive ? _c('button', {
43839
+ staticClass: "btn btn-sm btn-outline-secondary",
43840
+ class: {
43841
+ 'active': _vm.filterStatus === 'inactive'
43842
+ },
43843
+ attrs: {
43844
+ "type": "button",
43845
+ "disabled": _vm.disabled
43846
+ },
43847
+ on: {
43848
+ "click": function ($event) {
43849
+ return _vm.filterByStatus('inactive');
43850
+ }
43851
+ }
43852
+ }, [_c('i', {
43853
+ staticClass: "fa fa-times-circle mr-1"
43854
+ }), _vm._v(" Inactive ")]) : _vm._e(), _vm.actionButtons.clear ? _c('button', {
43855
+ staticClass: "btn btn-sm btn-outline-danger",
43856
+ attrs: {
43857
+ "type": "button",
43858
+ "disabled": _vm.disabled || !_vm.hasSelectedItems
43859
+ },
43860
+ on: {
43861
+ "click": _vm.clearSelection
43862
+ }
43863
+ }, [_c('i', {
43864
+ staticClass: "fa fa-times mr-1"
43865
+ }), _vm._v(" Clear ")]) : _vm._e()])]) : _vm._e(), _vm.loading && !_vm.hasItems ? _c('div', {
43866
+ staticClass: "autocomplete-loading"
43867
+ }, [_vm._m(1), _c('div', {
43868
+ staticClass: "mt-2 text-muted small"
43869
+ }, [_vm._v("Loading...")])]) : !_vm.loading && !_vm.hasItems && _vm.searchTerm.length >= _vm.minSearchLength ? _c('div', {
43870
+ staticClass: "autocomplete-no-data"
43871
+ }, [_c('i', {
43872
+ staticClass: "fa fa-search text-muted",
43873
+ staticStyle: {
43874
+ "font-size": "2rem"
43875
+ }
43876
+ }), _c('div', {
43877
+ staticClass: "mt-2 text-muted"
43878
+ }, [_vm._v(_vm._s(_vm.noDataText))]), _c('div', {
43879
+ staticClass: "text-muted small"
43880
+ }, [_vm._v("Try adjusting your search terms")])]) : _vm.hasGrouping ? _c('div', {
43881
+ staticClass: "autocomplete-grouped"
43882
+ }, _vm._l(_vm.paginatedGroupedItems, function (group, groupIndex) {
43883
+ return _c('div', {
43884
+ key: group.group || groupIndex,
43885
+ staticClass: "autocomplete-group"
43886
+ }, [_c('div', {
43887
+ staticClass: "autocomplete-group-header"
43888
+ }, [_vm.groupFields.length > 0 ? _c('div', {
43889
+ staticClass: "d-flex flex-column"
43890
+ }, [_c('div', {
43891
+ staticClass: "font-weight-bold font-14"
43892
+ }, [_vm._v(_vm._s(group.group))]), _vm.groupFields.length > 1 ? _c('div', {
43893
+ staticClass: "small text-muted mt-1"
43894
+ }, _vm._l(_vm.groupFields, function (field, idx) {
43895
+ return _c('span', {
43896
+ key: field
43897
+ }, [idx > 0 ? _c('span', [_vm._v(" • ")]) : _vm._e(), _vm.getGroupFieldValue(group, field) ? _c('span', [_vm._v(_vm._s(field) + ": " + _vm._s(_vm.getGroupFieldValue(group, field)))]) : _vm._e()]);
43898
+ }), 0) : _vm._e()]) : _c('div', [_vm._v(_vm._s(group.group))])]), _c('ul', {
43899
+ staticClass: "list-group list-group-flush"
43900
+ }, _vm._l(group.items, function (item, itemIndex) {
43901
+ return _c('li', {
43902
+ key: _vm.getItemValue(item),
43903
+ staticClass: "list-group-item autocomplete-item",
43904
+ class: {
43905
+ 'active': _vm.getFlatIndex(groupIndex, itemIndex) === _vm.highlightedIndex,
43906
+ 'selected': _vm.isSelected(item)
43907
+ },
43908
+ staticStyle: {
43909
+ "cursor": "pointer"
43910
+ },
43911
+ on: {
43912
+ "click": function ($event) {
43913
+ $event.preventDefault();
43914
+ return _vm.selectItem(item, $event);
43915
+ },
43916
+ "mouseenter": function ($event) {
43917
+ _vm.highlightedIndex = _vm.getFlatIndex(groupIndex, itemIndex);
43918
+ }
43919
+ }
43920
+ }, [_c('div', {
43921
+ staticClass: "d-flex align-items-center"
43922
+ }, [_vm.multiple ? _c('div', {
43923
+ staticClass: "autocomplete-checkbox-wrapper mr-2"
43924
+ }, [_c('input', {
43925
+ staticClass: "autocomplete-checkbox",
43926
+ attrs: {
43927
+ "type": "checkbox",
43928
+ "tabindex": "-1"
43929
+ },
43930
+ domProps: {
43931
+ "checked": _vm.isSelected(item)
43932
+ },
43933
+ on: {
43934
+ "click": function ($event) {
43935
+ $event.stopPropagation();
43936
+ $event.preventDefault();
43937
+ return _vm.selectItem(item, $event);
43938
+ }
43939
+ }
43940
+ }), _vm.isSelected(item) ? _c('i', {
43941
+ staticClass: "fa fa-check autocomplete-check-icon"
43942
+ }) : _vm._e()]) : _vm._e(), item.raw && item.raw.category ? _c('span', {
43943
+ staticClass: "badge badge-secondary mr-2",
43944
+ staticStyle: {
43945
+ "font-size": "0.75rem"
43946
+ }
43947
+ }, [_vm._v(" " + _vm._s(item.raw.category) + " ")]) : _vm._e(), _c('div', {
43948
+ staticClass: "flex-grow-1"
43949
+ }, [_vm.itemFields.length > 0 ? _c('div', {
43950
+ staticClass: "font-weight-400",
43951
+ class: {
43952
+ 'text-dark': _vm.isSelected(item)
43953
+ },
43954
+ domProps: {
43955
+ "innerHTML": _vm._s(_vm.formatItemFields(item))
43956
+ }
43957
+ }) : _c('div', {
43958
+ staticClass: "font-weight-400",
43959
+ class: {
43960
+ 'text-dark': _vm.isSelected(item)
43961
+ }
43962
+ }, [_vm._v(_vm._s(_vm.getItemText(item)))]), !_vm.itemFields.length && _vm.getItemDescription(item) ? _c('div', {
43963
+ staticClass: "text-muted small mt-1"
43964
+ }, [_vm._v(_vm._s(_vm.getItemDescription(item)))]) : _vm._e()]), _vm.isSelected(item) && !_vm.multiple ? _c('i', {
43965
+ staticClass: "fa fa-check text-success ml-2",
43966
+ staticStyle: {
43967
+ "font-size": "1.1rem"
43968
+ }
43969
+ }) : _vm._e()])]);
43970
+ }), 0)]);
43971
+ }), 0) : _c('ul', {
43972
+ staticClass: "list-group list-group-flush"
43973
+ }, _vm._l(_vm.paginatedDisplayItems, function (item, index) {
43974
+ return _c('li', {
43975
+ key: _vm.getItemValue(item),
43976
+ staticClass: "list-group-item autocomplete-item",
43977
+ class: {
43978
+ 'active': index === _vm.highlightedIndex,
43979
+ 'selected': _vm.isSelected(item)
43980
+ },
43981
+ staticStyle: {
43982
+ "cursor": "pointer"
43983
+ },
43984
+ on: {
43985
+ "click": function ($event) {
43986
+ $event.preventDefault();
43987
+ return _vm.selectItem(item, $event);
43988
+ },
43989
+ "mouseenter": function ($event) {
43990
+ _vm.highlightedIndex = index;
43991
+ }
43992
+ }
43993
+ }, [_c('div', {
43994
+ staticClass: "d-flex align-items-center"
43995
+ }, [_vm.multiple ? _c('input', {
43996
+ staticClass: "mr-2",
43997
+ attrs: {
43998
+ "type": "checkbox",
43999
+ "tabindex": "-1"
44000
+ },
44001
+ domProps: {
44002
+ "checked": _vm.isSelected(item)
44003
+ },
44004
+ on: {
44005
+ "click": function ($event) {
44006
+ $event.stopPropagation();
44007
+ $event.preventDefault();
44008
+ return _vm.selectItem(item);
44009
+ }
44010
+ }
44011
+ }) : _vm._e(), item.raw && item.raw.category ? _c('span', {
44012
+ staticClass: "badge badge-primary mr-2"
44013
+ }, [_vm._v(" " + _vm._s(item.raw.category) + " ")]) : _vm._e(), _c('div', {
44014
+ staticClass: "flex-grow-1"
44015
+ }, [_vm.itemFields.length > 0 ? _c('div', {
44016
+ staticClass: "font-weight-400",
44017
+ domProps: {
44018
+ "innerHTML": _vm._s(_vm.formatItemFields(item))
44019
+ }
44020
+ }) : _c('div', {
44021
+ staticClass: "font-weight-400"
44022
+ }, [_vm._v(_vm._s(_vm.getItemText(item)))]), !_vm.itemFields.length && _vm.getItemDescription(item) ? _c('div', {
44023
+ staticClass: "text-muted small mt-1"
44024
+ }, [_vm._v(_vm._s(_vm.getItemDescription(item)))]) : _vm._e()]), _vm.isSelected(item) && !_vm.multiple ? _c('i', {
44025
+ staticClass: "fa fa-check text-primary ml-2"
44026
+ }) : _vm._e()])]);
44027
+ }), 0)]) : _vm._e()]), !_vm.hideDetails && _vm.hasError ? _c('div', {
44028
+ staticClass: "invalid-feedback d-block"
44029
+ }, _vm._l(_vm.errorMessagesArray, function (error, index) {
44030
+ return _c('div', {
44031
+ key: index
44032
+ }, [_vm._v(_vm._s(error))]);
44033
+ }), 0) : _vm._e()]);
44034
+ };
44035
+ var Autocompletevue_type_template_id_c293aa98_scoped_true_staticRenderFns = [function () {
44036
+ var _vm = this,
44037
+ _c = _vm._self._c;
44038
+ return _c('div', {
44039
+ staticClass: "spinner-border spinner-border-sm text-primary",
44040
+ attrs: {
44041
+ "role": "status"
44042
+ }
44043
+ }, [_c('span', {
44044
+ staticClass: "sr-only"
44045
+ }, [_vm._v("Loading...")])]);
44046
+ }, function () {
44047
+ var _vm = this,
44048
+ _c = _vm._self._c;
44049
+ return _c('div', {
44050
+ staticClass: "spinner-border spinner-border-sm text-primary",
44051
+ attrs: {
44052
+ "role": "status"
44053
+ }
44054
+ }, [_c('span', {
44055
+ staticClass: "sr-only"
44056
+ }, [_vm._v("Loading...")])]);
44057
+ }];
44058
+
44059
+ // CONCATENATED MODULE: ./src/components/Autocomplete.vue?vue&type=template&id=c293aa98&scoped=true
44060
+
44061
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.every.js
44062
+ var es_iterator_every = __webpack_require__("d866");
44063
+
44064
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.find.js
44065
+ var es_iterator_find = __webpack_require__("f665");
44066
+
44067
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.flat-map.js
44068
+ var es_iterator_flat_map = __webpack_require__("796d");
44069
+
44070
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.some.js
44071
+ var es_iterator_some = __webpack_require__("a732");
44072
+
44073
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.difference.v2.js
44074
+ var es_set_difference_v2 = __webpack_require__("1e70");
44075
+
44076
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.intersection.v2.js
44077
+ var es_set_intersection_v2 = __webpack_require__("79a4");
44078
+
44079
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js
44080
+ var es_set_is_disjoint_from_v2 = __webpack_require__("c1a1");
44081
+
44082
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-subset-of.v2.js
44083
+ var es_set_is_subset_of_v2 = __webpack_require__("8b00");
44084
+
44085
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-superset-of.v2.js
44086
+ var es_set_is_superset_of_v2 = __webpack_require__("a4e7");
44087
+
44088
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.symmetric-difference.v2.js
44089
+ var es_set_symmetric_difference_v2 = __webpack_require__("1e5a");
44090
+
44091
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.union.v2.js
44092
+ var es_set_union_v2 = __webpack_require__("72c3");
44093
+
44094
+ // 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/Autocomplete.vue?vue&type=script&lang=js
44095
+
44096
+
44097
+
44098
+
44099
+
44100
+
44101
+
44102
+
44103
+
44104
+
44105
+
44106
+
44107
+
44108
+
44109
+
44110
+
44111
+ /* harmony default export */ var Autocompletevue_type_script_lang_js = ({
44112
+ name: 'Autocomplete',
44113
+ // Vue 2 v-model uses value/input by default
44114
+ props: {
44115
+ value: {
44116
+ type: [String, Number, Array],
44117
+ default: null
44118
+ },
44119
+ // Also support modelValue for Vue 3 compatibility
44120
+ modelValue: {
44121
+ type: [String, Number, Array],
44122
+ default: null
44123
+ },
44124
+ items: {
44125
+ type: Array,
44126
+ default: () => []
44127
+ },
44128
+ // All items (unfiltered) - used for finding selected items
44129
+ allItems: {
44130
+ type: Array,
44131
+ default: null
44132
+ },
44133
+ loading: {
44134
+ type: Boolean,
44135
+ default: false
44136
+ },
44137
+ placeholder: {
44138
+ type: String,
44139
+ default: 'Search and select...'
44140
+ },
44141
+ label: {
44142
+ type: String,
44143
+ default: null
44144
+ },
44145
+ disabled: {
44146
+ type: Boolean,
44147
+ default: false
44148
+ },
44149
+ clearable: {
44150
+ type: Boolean,
44151
+ default: true
44152
+ },
44153
+ density: {
44154
+ type: String,
44155
+ default: 'default',
44156
+ validator: value => ['compact', 'comfortable', 'default'].includes(value)
44157
+ },
44158
+ variant: {
44159
+ type: String,
44160
+ default: 'outlined',
44161
+ validator: value => ['outlined', 'filled', 'underlined', 'solo', 'solo-inverted', 'solo-filled'].includes(value)
44162
+ },
44163
+ multiple: {
44164
+ type: Boolean,
44165
+ default: false
44166
+ },
44167
+ itemTitle: {
44168
+ type: String,
44169
+ default: 'title'
44170
+ },
44171
+ itemValue: {
44172
+ type: String,
44173
+ default: 'value'
44174
+ },
44175
+ noDataText: {
44176
+ type: String,
44177
+ default: 'No data available'
44178
+ },
44179
+ hideDetails: {
44180
+ type: Boolean,
44181
+ default: false
44182
+ },
44183
+ errorMessages: {
44184
+ type: [String, Array],
44185
+ default: null
44186
+ },
44187
+ rules: {
44188
+ type: Array,
44189
+ default: () => []
44190
+ },
44191
+ menuProps: {
44192
+ type: Object,
44193
+ default: () => ({
44194
+ maxHeight: 300
44195
+ })
44196
+ },
44197
+ minSearchLength: {
44198
+ type: Number,
44199
+ default: 0
44200
+ },
44201
+ // Maximum number of chips to display before showing "+ n more"
44202
+ maxVisibleChips: {
44203
+ type: Number,
44204
+ default: null // null means show all
44205
+ },
44206
+ // Action buttons configuration
44207
+ actionButtons: {
44208
+ type: Object,
44209
+ default: () => ({
44210
+ selectAll: false,
44211
+ active: false,
44212
+ inactive: false,
44213
+ clear: false
44214
+ })
44215
+ },
44216
+ // Item display fields - array of field names to display
44217
+ itemFields: {
44218
+ type: Array,
44219
+ default: () => [] // e.g., ['name', 'number', 'status']
44220
+ },
44221
+ // Group display fields - array of field names to display in group header
44222
+ groupFields: {
44223
+ type: Array,
44224
+ default: () => [] // e.g., ['accountName', 'accountNumber']
44225
+ },
44226
+ // Performance: Maximum items to render at once (virtualization)
44227
+ maxRenderItems: {
44228
+ type: Number,
44229
+ default: 100 // Render first 100 items, load more on scroll
44230
+ },
44231
+ // Performance: Enable lazy loading
44232
+ lazyLoad: {
44233
+ type: Boolean,
44234
+ default: false
44235
+ },
44236
+ // Status field configuration for dynamic color formatting
44237
+ statusFieldConfig: {
44238
+ type: Object,
44239
+ default: () => ({
44240
+ fieldName: 'status',
44241
+ // Field name to check for status
44242
+ activeValues: ['active', 'Active', 'true', '1'],
44243
+ // Values considered as active
44244
+ inactiveValues: ['inactive', 'Inactive', 'false', '0'],
44245
+ // Values considered as inactive
44246
+ activeColor: '#28a745',
44247
+ // Green color for active
44248
+ inactiveColor: '#dc3545' // Red color for inactive
44249
+ })
44250
+ }
44251
+ },
44252
+ data() {
44253
+ return {
44254
+ isMenuOpen: false,
44255
+ searchTerm: '',
44256
+ highlightedIndex: -1,
44257
+ renderedItemCount: this.maxRenderItems,
44258
+ filterStatus: null // 'active', 'inactive', or null for all
44259
+ };
44260
+ },
44261
+ computed: {
44262
+ // Get the current value (Vue 2 uses 'value', Vue 3 uses 'modelValue')
44263
+ currentValue() {
44264
+ return this.value !== null && this.value !== undefined ? this.value : this.modelValue;
44265
+ },
44266
+ // Selected value for single select mode
44267
+ selectedValue() {
44268
+ if (this.multiple) return null;
44269
+ return this.currentValue;
44270
+ },
44271
+ displayItems() {
44272
+ return this.items.map(item => ({
44273
+ ...item,
44274
+ title: this.getItemText(item),
44275
+ value: this.getItemValue(item)
44276
+ }));
44277
+ },
44278
+ groupedItems() {
44279
+ // Check if items are already grouped (array of groups) or flat with group property
44280
+ if (this.items.length > 0 && Array.isArray(this.items[0].items)) {
44281
+ // Items are already in grouped format: [{ group: 'Group1', items: [...] }, ...]
44282
+ // Preserve all group properties for groupFields display
44283
+ return this.items.map(group => ({
44284
+ ...group,
44285
+ raw: group,
44286
+ // Preserve original group data for groupFields
44287
+ group: group.group || group.groupName || ''
44288
+ }));
44289
+ }
44290
+
44291
+ // Group flat items by group property
44292
+ const groups = {};
44293
+ const groupMetadata = {}; // Store metadata for each group (for groupFields display)
44294
+
44295
+ this.displayItems.forEach(item => {
44296
+ const groupName = this.getItemGroup(item) || 'Other';
44297
+ if (!groups[groupName]) {
44298
+ groups[groupName] = [];
44299
+ // Store first item's group metadata for display
44300
+ if (item.raw) {
44301
+ groupMetadata[groupName] = {
44302
+ ...item.raw
44303
+ };
44304
+ } else {
44305
+ groupMetadata[groupName] = {
44306
+ ...item
44307
+ };
44308
+ }
44309
+ }
44310
+ groups[groupName].push(item);
44311
+ });
44312
+
44313
+ // Convert to array format with metadata
44314
+ return Object.keys(groups).map(groupName => ({
44315
+ group: groupName,
44316
+ items: groups[groupName],
44317
+ raw: groupMetadata[groupName] // Preserve group metadata for groupFields display
44318
+ }));
44319
+ },
44320
+ hasGrouping() {
44321
+ if (this.items.length === 0) return false;
44322
+ // Check if items are in grouped format
44323
+ if (Array.isArray(this.items[0].items)) return true;
44324
+ // Check if items have group property or groupFields is defined
44325
+ if (this.groupFields && this.groupFields.length > 0) {
44326
+ // If groupFields is defined, we should group by the first field
44327
+ return true;
44328
+ }
44329
+ // Check if items have explicit group property
44330
+ return this.displayItems.some(item => this.getItemGroup(item));
44331
+ },
44332
+ flatDisplayItems() {
44333
+ // Flatten grouped items for easier iteration
44334
+ if (this.hasGrouping) {
44335
+ return this.groupedItems.flatMap(group => group.items);
44336
+ }
44337
+ return this.displayItems;
44338
+ },
44339
+ hasItems() {
44340
+ return this.displayItems.length > 0;
44341
+ },
44342
+ menuMaxHeight() {
44343
+ return this.menuProps && this.menuProps.maxHeight || 300;
44344
+ },
44345
+ selectedItems() {
44346
+ if (!this.multiple) return [];
44347
+
44348
+ // Get selected values from currentValue (supports both value and modelValue props)
44349
+ const currentVal = this.currentValue;
44350
+ const selectedValues = Array.isArray(currentVal) ? currentVal : currentVal ? [currentVal] : [];
44351
+ if (selectedValues.length === 0) {
44352
+ return [];
44353
+ }
44354
+
44355
+ // Look through ALL items (unfiltered), not just displayItems (which might be filtered)
44356
+ let itemsToSearch = this.allItems && this.allItems.length > 0 ? this.allItems : this.items;
44357
+
44358
+ // Flatten grouped items if needed
44359
+ if (itemsToSearch.length > 0 && Array.isArray(itemsToSearch[0].items)) {
44360
+ // Items are in grouped format - flatten them
44361
+ itemsToSearch = itemsToSearch.flatMap(group => group.items || []);
44362
+ }
44363
+ const filtered = itemsToSearch.filter(item => {
44364
+ const itemValue = this.getItemValue(item);
44365
+ return selectedValues.some(sv => String(sv) === String(itemValue));
44366
+ });
44367
+ return filtered.map(item => ({
44368
+ ...item,
44369
+ title: this.getItemText(item),
44370
+ value: this.getItemValue(item)
44371
+ }));
44372
+ },
44373
+ displayText() {
44374
+ if (this.multiple) return '';
44375
+ const currentVal = this.currentValue;
44376
+ if (!currentVal) return this.searchTerm;
44377
+ const selected = this.displayItems.find(item => String(this.getItemValue(item)) === String(currentVal));
44378
+ return selected ? this.getItemText(selected) : this.searchTerm;
44379
+ },
44380
+ hasError() {
44381
+ return this.errorMessages && this.errorMessages.length > 0 || this.rules && this.rules.length > 0 && this.validateRules().length > 0;
44382
+ },
44383
+ errorMessagesArray() {
44384
+ if (this.errorMessages) {
44385
+ return Array.isArray(this.errorMessages) ? this.errorMessages : [this.errorMessages];
44386
+ }
44387
+ return this.validateRules();
44388
+ },
44389
+ // Chips display logic
44390
+ visibleChips() {
44391
+ return this.selectedItems;
44392
+ },
44393
+ maxVisibleChipsCount() {
44394
+ return this.maxVisibleChips !== null && this.maxVisibleChips !== undefined ? this.maxVisibleChips : this.selectedItems.length;
44395
+ },
44396
+ remainingChipsCount() {
44397
+ if (this.maxVisibleChips === null || this.maxVisibleChips === undefined) return 0;
44398
+ return Math.max(0, this.selectedItems.length - this.maxVisibleChips);
44399
+ },
44400
+ // Action buttons
44401
+ hasActionButtons() {
44402
+ return this.actionButtons && (this.actionButtons.selectAll || this.actionButtons.active || this.actionButtons.inactive || this.actionButtons.clear);
44403
+ },
44404
+ allSelected() {
44405
+ if (!this.multiple) return false;
44406
+ // Check if all filtered items are selected
44407
+ const filteredItems = this.filteredDisplayItems;
44408
+ const selectedValues = Array.isArray(this.currentValue) ? this.currentValue : [];
44409
+ return filteredItems.length > 0 && filteredItems.every(item => {
44410
+ const itemValue = this.getItemValue(item);
44411
+ return selectedValues.some(sv => String(sv) === String(itemValue));
44412
+ });
44413
+ },
44414
+ hasSelectedItems() {
44415
+ if (!this.multiple) return false;
44416
+ const selectedValues = Array.isArray(this.currentValue) ? this.currentValue : [];
44417
+ return selectedValues.length > 0;
44418
+ },
44419
+ // Performance: Filter and paginate items
44420
+ filteredDisplayItems() {
44421
+ let items = this.displayItems;
44422
+
44423
+ // Apply status filter if active
44424
+ if (this.filterStatus) {
44425
+ items = items.filter(item => {
44426
+ // Check status field (case-insensitive)
44427
+ const status = this.getItemFieldValue(item, 'status') || this.getItemFieldValue(item, 'Status') || this.getItemFieldValue(item, 'isActive');
44428
+ const statusStr = String(status).toLowerCase().trim();
44429
+ if (this.filterStatus === 'active') {
44430
+ return statusStr === 'active' || statusStr === 'true' || statusStr === '1';
44431
+ } else if (this.filterStatus === 'inactive') {
44432
+ return statusStr === 'inactive' || statusStr === 'false' || statusStr === '0';
44433
+ }
44434
+ return true;
44435
+ });
44436
+ }
44437
+ return items;
44438
+ },
44439
+ // Performance: Limit rendered items
44440
+ paginatedDisplayItems() {
44441
+ if (this.lazyLoad && this.filteredDisplayItems.length > this.renderedItemCount) {
44442
+ return this.filteredDisplayItems.slice(0, this.renderedItemCount);
44443
+ }
44444
+ return this.filteredDisplayItems;
44445
+ },
44446
+ // Update grouped items to use paginated/filtered items
44447
+ paginatedGroupedItems() {
44448
+ if (!this.hasGrouping) return [];
44449
+ let groups = this.groupedItems;
44450
+
44451
+ // Apply status filter if active
44452
+ if (this.filterStatus) {
44453
+ groups = groups.map(group => ({
44454
+ ...group,
44455
+ items: group.items.filter(item => {
44456
+ // Check status field (case-insensitive)
44457
+ const status = this.getItemFieldValue(item, 'status') || this.getItemFieldValue(item, 'Status') || this.getItemFieldValue(item, 'isActive');
44458
+ const statusStr = String(status).toLowerCase().trim();
44459
+ if (this.filterStatus === 'active') {
44460
+ return statusStr === 'active' || statusStr === 'true' || statusStr === '1';
44461
+ } else if (this.filterStatus === 'inactive') {
44462
+ return statusStr === 'inactive' || statusStr === 'false' || statusStr === '0';
44463
+ }
44464
+ return true;
44465
+ })
44466
+ })).filter(group => group.items.length > 0);
44467
+ }
44468
+
44469
+ // Apply pagination if lazy load is enabled
44470
+ if (this.lazyLoad) {
44471
+ let itemCount = 0;
44472
+ const result = [];
44473
+ for (const group of groups) {
44474
+ if (itemCount >= this.renderedItemCount) break;
44475
+ const remaining = this.renderedItemCount - itemCount;
44476
+ result.push({
44477
+ ...group,
44478
+ items: group.items.slice(0, remaining)
44479
+ });
44480
+ itemCount += group.items.length;
44481
+ }
44482
+ return result;
44483
+ }
44484
+ return groups;
44485
+ }
44486
+ },
44487
+ watch: {
44488
+ items() {
44489
+ // Reset highlight when items change
44490
+ this.highlightedIndex = -1;
44491
+ },
44492
+ hasGrouping() {
44493
+ // Reset highlight when grouping changes
44494
+ this.highlightedIndex = -1;
44495
+ },
44496
+ modelValue: {
44497
+ handler(newVal, oldVal) {
44498
+ // Reset search term when value changes externally
44499
+ if (this.multiple) {
44500
+ // For multiple, keep search term
44501
+ } else {
44502
+ // For single select, clear search term if value is cleared
44503
+ if (!newVal && this.searchTerm) {
44504
+ this.searchTerm = '';
44505
+ }
44506
+ }
44507
+ },
44508
+ immediate: true,
44509
+ deep: true
44510
+ },
44511
+ value: {
44512
+ handler(newVal, oldVal) {
44513
+ // Reset search term when value changes externally
44514
+ if (this.multiple) {
44515
+ // For multiple, keep search term
44516
+ } else {
44517
+ // For single select, clear search term if value is cleared
44518
+ if (!newVal && this.searchTerm) {
44519
+ this.searchTerm = '';
44520
+ }
44521
+ }
44522
+ },
44523
+ immediate: true,
44524
+ deep: true
44525
+ }
44526
+ },
44527
+ mounted() {
44528
+ // Close menu when clicking outside
44529
+ document.addEventListener('click', this.handleClickOutside);
44530
+ },
44531
+ beforeDestroy() {
44532
+ document.removeEventListener('click', this.handleClickOutside);
44533
+ },
44534
+ methods: {
44535
+ getItemText(item) {
44536
+ if (item.raw) {
44537
+ return item.raw.text || item.raw.title || item.raw[this.itemTitle] || '';
44538
+ }
44539
+ return item.text || item.title || item[this.itemTitle] || '';
44540
+ },
44541
+ getItemValue(item) {
44542
+ let value;
44543
+ if (item.raw) {
44544
+ value = item.raw.value !== undefined && item.raw.value !== null ? item.raw.value : item.raw[this.itemValue] !== undefined && item.raw[this.itemValue] !== null ? item.raw[this.itemValue] : null;
44545
+ } else {
44546
+ value = item.value !== undefined && item.value !== null ? item.value : item[this.itemValue] !== undefined && item[this.itemValue] !== null ? item[this.itemValue] : null;
44547
+ }
44548
+
44549
+ // Ensure we have a valid value - use index as fallback if needed
44550
+ if (value === null || value === undefined) {
44551
+ // Try to find the item's index in the items array
44552
+ const itemIndex = this.items.findIndex(i => i === item || item.raw && i === item.raw);
44553
+ if (itemIndex > -1) {
44554
+ value = `item-${itemIndex}`;
44555
+ } else {
44556
+ console.warn('Autocomplete: Item has no value and could not determine index', item);
44557
+ value = `item-${Date.now()}-${Math.random()}`;
44558
+ }
44559
+ }
44560
+ return value;
44561
+ },
44562
+ getItemDescription(item) {
44563
+ if (item.raw) {
44564
+ return item.raw.description || item.raw.subtitle || '';
44565
+ }
44566
+ return item.description || item.subtitle || '';
44567
+ },
44568
+ getItemGroup(item) {
44569
+ if (item.raw) {
44570
+ // Priority: groupFields > group/groupName
44571
+ // If groupFields is defined, use the first field as grouping field (highest priority)
44572
+ if (this.groupFields && this.groupFields.length > 0) {
44573
+ const groupValue = item.raw[this.groupFields[0]];
44574
+ if (groupValue !== undefined && groupValue !== null && groupValue !== '') {
44575
+ return String(groupValue);
44576
+ }
44577
+ }
44578
+ // Fallback to explicit group/groupName
44579
+ if (item.raw.group || item.raw.groupName) {
44580
+ return item.raw.group || item.raw.groupName;
44581
+ }
44582
+ return '';
44583
+ }
44584
+ // Priority: groupFields > group/groupName
44585
+ // If groupFields is defined, use the first field as grouping field (highest priority)
44586
+ if (this.groupFields && this.groupFields.length > 0) {
44587
+ const groupValue = item[this.groupFields[0]];
44588
+ if (groupValue !== undefined && groupValue !== null && groupValue !== '') {
44589
+ return String(groupValue);
44590
+ }
44591
+ }
44592
+ // Fallback to explicit group/groupName
44593
+ if (item.group || item.groupName) {
44594
+ return item.group || item.groupName;
44595
+ }
44596
+ return '';
44597
+ },
44598
+ getItemFieldValue(item, field) {
44599
+ if (item.raw) {
44600
+ return item.raw[field] || '';
44601
+ }
44602
+ return item[field] || '';
44603
+ },
44604
+ getGroupFieldValue(group, field) {
44605
+ if (group.raw) {
44606
+ return group.raw[field] || '';
44607
+ }
44608
+ return group[field] || '';
44609
+ },
44610
+ isSelected(item) {
44611
+ const value = this.getItemValue(item);
44612
+ const currentVal = this.currentValue;
44613
+ if (this.multiple) {
44614
+ const selectedValues = Array.isArray(currentVal) ? currentVal : currentVal ? [currentVal] : [];
44615
+ // Compare values with type coercion to handle string/number mismatches
44616
+ return selectedValues.some(sv => String(sv) === String(value));
44617
+ }
44618
+ return currentVal !== null && currentVal !== undefined && String(currentVal) === String(value);
44619
+ },
44620
+ onInput(event) {
44621
+ this.searchTerm = event.target.value;
44622
+ this.isMenuOpen = true;
44623
+ this.$emit('update:search', this.searchTerm);
44624
+ this.$emit('search', this.searchTerm);
44625
+ },
44626
+ onFocus() {
44627
+ this.isMenuOpen = true;
44628
+ this.$emit('focus');
44629
+ },
44630
+ onBlur() {
44631
+ // Delay to allow click events to fire
44632
+ setTimeout(() => {
44633
+ if (!this.multiple) {
44634
+ // Restore selected value text if no selection made
44635
+ if (this.selectedValue) {
44636
+ const selected = this.displayItems.find(item => this.getItemValue(item) === this.selectedValue);
44637
+ if (selected && this.searchTerm !== this.getItemText(selected)) {
44638
+ this.searchTerm = '';
44639
+ }
44640
+ }
44641
+ }
44642
+ this.$emit('blur');
44643
+ }, 200);
44644
+ },
44645
+ toggleMenu() {
44646
+ if (this.disabled) return;
44647
+ this.isMenuOpen = !this.isMenuOpen;
44648
+ if (this.isMenuOpen) {
44649
+ this.$nextTick(() => {
44650
+ var _this$$refs$input;
44651
+ (_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 || _this$$refs$input.focus();
44652
+ });
44653
+ }
44654
+ },
44655
+ closeMenu() {
44656
+ this.isMenuOpen = false;
44657
+ this.highlightedIndex = -1;
44658
+ },
44659
+ selectItem(item, event) {
44660
+ // Prevent event from bubbling and default behavior
44661
+ if (event) {
44662
+ event.preventDefault();
44663
+ event.stopPropagation();
44664
+ event.stopImmediatePropagation();
44665
+ }
44666
+
44667
+ // Debug logging
44668
+ console.log('selectItem called for single item:', item);
44669
+ console.log('Item value:', this.getItemValue(item));
44670
+ const value = this.getItemValue(item);
44671
+ const currentVal = this.currentValue;
44672
+ if (this.multiple) {
44673
+ // Ensure we start with an array
44674
+ const currentValues = Array.isArray(currentVal) ? [...currentVal] : currentVal ? [currentVal] : [];
44675
+ const selectedValues = [...currentValues];
44676
+
44677
+ // Find index with type coercion
44678
+ const index = selectedValues.findIndex(sv => String(sv) === String(value));
44679
+ console.log('Current selected values:', selectedValues);
44680
+ console.log('Item value to toggle:', value);
44681
+ console.log('Index found:', index);
44682
+ if (index > -1) {
44683
+ // Remove if already selected
44684
+ selectedValues.splice(index, 1);
44685
+ console.log('Removed item. New selection:', selectedValues);
44686
+ } else {
44687
+ // Add if not selected - ONLY this single item
44688
+ selectedValues.push(value);
44689
+ console.log('Added single item. New selection:', selectedValues);
44690
+ }
44691
+
44692
+ // Emit both events for Vue 2 and Vue 3 compatibility
44693
+ this.$emit('input', selectedValues);
44694
+ this.$emit('update:modelValue', selectedValues);
44695
+ this.$emit('change', selectedValues);
44696
+ } else {
44697
+ this.searchTerm = '';
44698
+ this.isMenuOpen = false;
44699
+ // Emit both events for Vue 2 and Vue 3 compatibility
44700
+ this.$emit('input', value);
44701
+ this.$emit('update:modelValue', value);
44702
+ this.$emit('change', value);
44703
+ }
44704
+ },
44705
+ removeItem(value) {
44706
+ if (this.multiple) {
44707
+ const currentVal = this.currentValue;
44708
+ const selectedValues = Array.isArray(currentVal) ? [...currentVal] : [];
44709
+ const index = selectedValues.findIndex(sv => String(sv) === String(value));
44710
+ if (index > -1) {
44711
+ selectedValues.splice(index, 1);
44712
+ // Emit both events for Vue 2 and Vue 3 compatibility
44713
+ this.$emit('input', selectedValues);
44714
+ this.$emit('update:modelValue', selectedValues);
44715
+ this.$emit('change', selectedValues);
44716
+ }
44717
+ }
44718
+ },
44719
+ clearSelection() {
44720
+ if (this.multiple) {
44721
+ // Emit both events for Vue 2 and Vue 3 compatibility
44722
+ this.$emit('input', []);
44723
+ this.$emit('update:modelValue', []);
44724
+ this.$emit('change', []);
44725
+ } else {
44726
+ this.searchTerm = '';
44727
+ // Emit both events for Vue 2 and Vue 3 compatibility
44728
+ this.$emit('input', null);
44729
+ this.$emit('update:modelValue', null);
44730
+ this.$emit('change', null);
44731
+ }
44732
+ this.isMenuOpen = false;
44733
+ },
44734
+ getFlatIndex(groupIndex, itemIndex) {
44735
+ // Calculate flat index from group and item indices
44736
+ let flatIndex = 0;
44737
+ for (let i = 0; i < groupIndex; i++) {
44738
+ flatIndex += this.groupedItems[i].items.length;
44739
+ }
44740
+ return flatIndex + itemIndex;
44741
+ },
44742
+ getItemFromFlatIndex(flatIndex) {
44743
+ // Get item from flat index when items are grouped
44744
+ if (!this.hasGrouping) {
44745
+ return this.displayItems[flatIndex];
44746
+ }
44747
+ let currentIndex = 0;
44748
+ for (const group of this.groupedItems) {
44749
+ if (flatIndex < currentIndex + group.items.length) {
44750
+ return group.items[flatIndex - currentIndex];
44751
+ }
44752
+ currentIndex += group.items.length;
44753
+ }
44754
+ return null;
44755
+ },
44756
+ handleEnter() {
44757
+ if (this.isMenuOpen && this.highlightedIndex >= 0) {
44758
+ const item = this.hasGrouping ? this.getItemFromFlatIndex(this.highlightedIndex) : this.displayItems[this.highlightedIndex];
44759
+ if (item) {
44760
+ this.selectItem(item, null);
44761
+ }
44762
+ } else if (this.isMenuOpen && this.flatDisplayItems.length === 1) {
44763
+ this.selectItem(this.flatDisplayItems[0], null);
44764
+ }
44765
+ },
44766
+ navigateDown() {
44767
+ if (!this.isMenuOpen) {
44768
+ this.isMenuOpen = true;
44769
+ return;
44770
+ }
44771
+ const maxIndex = this.flatDisplayItems.length - 1;
44772
+ if (this.highlightedIndex < maxIndex) {
44773
+ this.highlightedIndex++;
44774
+ this.scrollToHighlighted();
44775
+ }
44776
+ },
44777
+ navigateUp() {
44778
+ if (this.highlightedIndex > 0) {
44779
+ this.highlightedIndex--;
44780
+ this.scrollToHighlighted();
44781
+ }
44782
+ },
44783
+ scrollToHighlighted() {
44784
+ this.$nextTick(() => {
44785
+ if (this.$refs.menu) {
44786
+ const items = this.$refs.menu.querySelectorAll('.autocomplete-item');
44787
+ if (items[this.highlightedIndex]) {
44788
+ items[this.highlightedIndex].scrollIntoView({
44789
+ block: 'nearest',
44790
+ behavior: 'smooth'
44791
+ });
44792
+ }
44793
+ }
44794
+ });
44795
+ },
44796
+ handleBackspace() {
44797
+ if (this.multiple && this.searchTerm === '') {
44798
+ const currentVal = this.currentValue;
44799
+ const selectedValues = Array.isArray(currentVal) ? currentVal : [];
44800
+ if (selectedValues.length > 0) {
44801
+ this.removeItem(selectedValues[selectedValues.length - 1]);
44802
+ }
44803
+ }
44804
+ },
44805
+ handleClickOutside(event) {
44806
+ if (this.$el && !this.$el.contains(event.target)) {
44807
+ this.closeMenu();
44808
+ }
44809
+ },
44810
+ validateRules() {
44811
+ if (!this.rules || this.rules.length === 0) return [];
44812
+ const errors = [];
44813
+ const value = this.currentValue;
44814
+ this.rules.forEach(rule => {
44815
+ if (typeof rule === 'function') {
44816
+ const result = rule(value);
44817
+ if (result !== true && result !== undefined) {
44818
+ errors.push(result);
44819
+ }
44820
+ }
44821
+ });
44822
+ return errors;
44823
+ },
44824
+ // Action button methods
44825
+ selectAll(event) {
44826
+ // Prevent event from bubbling
44827
+ if (event) {
44828
+ event.preventDefault();
44829
+ event.stopPropagation();
44830
+ event.stopImmediatePropagation();
44831
+ }
44832
+ console.log('selectAll called - this should only be called from the Select All button');
44833
+ if (!this.multiple) return;
44834
+ // Select all items from the currently filtered/displayed items
44835
+ const allItems = this.filteredDisplayItems;
44836
+ const allValues = allItems.map(item => this.getItemValue(item));
44837
+ // Merge with existing selections to avoid deselecting items not in current filter
44838
+ const currentValues = Array.isArray(this.currentValue) ? this.currentValue : [];
44839
+ const mergedValues = [...new Set([...currentValues, ...allValues])];
44840
+ console.log('Select All - all values:', mergedValues);
44841
+ this.$emit('input', mergedValues);
44842
+ this.$emit('update:modelValue', mergedValues);
44843
+ this.$emit('change', mergedValues);
44844
+ },
44845
+ filterByStatus(status) {
44846
+ if (this.filterStatus === status) {
44847
+ // Toggle off if clicking the same filter
44848
+ this.filterStatus = null;
44849
+ } else {
44850
+ this.filterStatus = status;
44851
+ }
44852
+ // Reset pagination when filter changes
44853
+ this.renderedItemCount = this.maxRenderItems;
44854
+ // Reset highlight when filter changes
44855
+ this.highlightedIndex = -1;
44856
+ },
44857
+ formatItemFields(item) {
44858
+ if (!this.itemFields || this.itemFields.length === 0) return '';
44859
+ const formattedValues = this.itemFields.map((field, index) => {
44860
+ const value = this.getItemFieldValue(item, field);
44861
+ if (!value && value !== 0) return '';
44862
+
44863
+ // Check if this field is the status field and apply color formatting
44864
+ if (field.toLowerCase() === this.statusFieldConfig.fieldName.toLowerCase()) {
44865
+ const statusStr = String(value).toLowerCase().trim();
44866
+ const isActive = this.statusFieldConfig.activeValues.some(av => String(av).toLowerCase() === statusStr);
44867
+ const isInactive = this.statusFieldConfig.inactiveValues.some(iv => String(iv).toLowerCase() === statusStr);
44868
+ let color = '';
44869
+ if (isActive) {
44870
+ color = this.statusFieldConfig.activeColor;
44871
+ } else if (isInactive) {
44872
+ color = this.statusFieldConfig.inactiveColor;
44873
+ }
44874
+ if (color) {
44875
+ return `<span style="color: ${color};">${value}</span>`;
44876
+ }
44877
+ }
44878
+ return String(value);
44879
+ }).filter(v => v !== '');
44880
+ if (formattedValues.length === 0) return '';
44881
+
44882
+ // Format: {field1} - {field2} ({field3})
44883
+ // Example: customerName - customerNumber (Status)
44884
+ if (formattedValues.length === 1) {
44885
+ return formattedValues[0];
44886
+ } else if (formattedValues.length === 2) {
44887
+ // field1 - field2
44888
+ return `${formattedValues[0]} - ${formattedValues[1]}`;
44889
+ } else if (formattedValues.length >= 3) {
44890
+ // field1 - field2 (field3, field4, ...)
44891
+ const firstTwo = formattedValues.slice(0, 2).filter(v => v).join(' - ');
44892
+ const rest = formattedValues.slice(2).filter(v => v).join(', ');
44893
+ if (rest) {
44894
+ return `${firstTwo} (${rest})`;
44895
+ }
44896
+ return firstTwo;
44897
+ }
44898
+ return '';
44899
+ },
44900
+ getChipText(item) {
44901
+ // If itemFields is provided, use formatItemFields, otherwise use getItemText
44902
+ if (this.itemFields && this.itemFields.length > 0) {
44903
+ return this.formatItemFields(item) || this.getItemText(item);
44904
+ }
44905
+ return this.getItemText(item);
44906
+ },
44907
+ onMenuScroll(event) {
44908
+ if (!this.lazyLoad) return;
44909
+ const target = event.target;
44910
+ const scrollBottom = target.scrollHeight - target.scrollTop - target.clientHeight;
44911
+
44912
+ // Load more items when scrolled near bottom (within 50px)
44913
+ if (scrollBottom < 50 && this.renderedItemCount < this.filteredDisplayItems.length) {
44914
+ this.renderedItemCount = Math.min(this.renderedItemCount + this.maxRenderItems, this.filteredDisplayItems.length);
44915
+ }
44916
+ }
44917
+ }
44918
+ });
44919
+ // CONCATENATED MODULE: ./src/components/Autocomplete.vue?vue&type=script&lang=js
44920
+ /* harmony default export */ var components_Autocompletevue_type_script_lang_js = (Autocompletevue_type_script_lang_js);
44921
+ // EXTERNAL MODULE: ./src/components/Autocomplete.vue?vue&type=style&index=0&id=c293aa98&prod&scoped=true&lang=css
44922
+ var Autocompletevue_type_style_index_0_id_c293aa98_prod_scoped_true_lang_css = __webpack_require__("663a");
44923
+
44924
+ // CONCATENATED MODULE: ./src/components/Autocomplete.vue
44925
+
44926
+
44927
+
44928
+
44929
+
44930
+
44931
+ /* normalize component */
44932
+
44933
+ var Autocomplete_component = normalizeComponent(
44934
+ components_Autocompletevue_type_script_lang_js,
44935
+ Autocompletevue_type_template_id_c293aa98_scoped_true_render,
44936
+ Autocompletevue_type_template_id_c293aa98_scoped_true_staticRenderFns,
44937
+ false,
44938
+ null,
44939
+ "c293aa98",
44940
+ null
44941
+
44942
+ )
44943
+
44944
+ /* harmony default export */ var Autocomplete = (Autocomplete_component.exports);
44945
+ // 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/SearchableSelect.vue?vue&type=script&lang=js
44946
+
44947
+
44948
+
44949
+
44950
+
44951
+
44952
+ //import { lookupService } from '../../services/locateBillingService'
44953
+
44954
+ // Simple debounce function
44955
+ function SearchableSelectvue_type_script_lang_js_debounce(func, wait) {
44956
+ let timeout;
44957
+ return function executedFunction(...args) {
44958
+ const later = () => {
44959
+ clearTimeout(timeout);
44960
+ func(...args);
44961
+ };
44962
+ clearTimeout(timeout);
44963
+ timeout = setTimeout(later, wait);
44964
+ };
44965
+ }
44966
+ /* harmony default export */ var SearchableSelectvue_type_script_lang_js = ({
44967
+ name: 'SearchableSelect',
44968
+ components: {
44969
+ Autocomplete: Autocomplete
44970
+ },
44971
+ // Vue 2 v-model uses value/input by default - no model option needed
44972
+ props: {
44973
+ value: {
44974
+ type: [String, Number, Array],
44975
+ default: null
44976
+ },
44977
+ // Local items array - if provided, will use these instead of remote lookup
44978
+ items: {
44979
+ type: Array,
44980
+ default: () => null
44981
+ },
44982
+ // Remote lookup type - required only if items prop is not provided
44983
+ type: {
44984
+ type: String,
44985
+ required: false,
44986
+ default: null
44987
+ },
44988
+ category: {
44989
+ type: String,
44990
+ default: null
44991
+ },
44992
+ multiple: {
44993
+ type: Boolean,
44994
+ default: false
44995
+ },
44996
+ placeholder: {
44997
+ type: String,
44998
+ default: 'Search and select...'
44999
+ },
45000
+ label: {
45001
+ type: String,
45002
+ default: null
45003
+ },
45004
+ disabled: {
45005
+ type: Boolean,
45006
+ default: false
45007
+ },
45008
+ clearable: {
45009
+ type: Boolean,
45010
+ default: true
45011
+ },
45012
+ density: {
45013
+ type: String,
45014
+ default: 'default',
45015
+ validator: value => ['compact', 'comfortable', 'default'].includes(value)
45016
+ },
45017
+ variant: {
45018
+ type: String,
45019
+ default: 'outlined',
45020
+ validator: value => ['outlined', 'filled', 'underlined', 'solo', 'solo-inverted', 'solo-filled'].includes(value)
45021
+ },
45022
+ minSearchLength: {
45023
+ type: Number,
45024
+ default: 2
45025
+ },
45026
+ debounceMs: {
45027
+ type: Number,
45028
+ default: 300
45029
+ },
45030
+ pageSize: {
45031
+ type: Number,
45032
+ default: 50
45033
+ },
45034
+ maxItems: {
45035
+ type: Number,
45036
+ default: 1000
45037
+ },
45038
+ noDataText: {
45039
+ type: String,
45040
+ default: 'No data available'
45041
+ },
45042
+ hideDetails: {
45043
+ type: Boolean,
45044
+ default: false
45045
+ },
45046
+ errorMessages: {
45047
+ type: [String, Array],
45048
+ default: null
45049
+ },
45050
+ rules: {
45051
+ type: Array,
45052
+ default: () => []
45053
+ },
45054
+ filters: {
45055
+ type: Object,
45056
+ default: () => ({})
45057
+ },
45058
+ // Maximum number of chips to display before showing "+ n more"
45059
+ maxVisibleChips: {
45060
+ type: Number,
45061
+ default: null // null means show all
45062
+ },
45063
+ // Action buttons configuration
45064
+ actionButtons: {
45065
+ type: Object,
45066
+ default: () => ({
45067
+ selectAll: false,
45068
+ active: false,
45069
+ inactive: false,
45070
+ clear: false
45071
+ })
45072
+ },
45073
+ // Item display fields - array of field names to display
45074
+ itemFields: {
45075
+ type: Array,
45076
+ default: () => [] // e.g., ['name', 'number', 'status']
45077
+ },
45078
+ // Group display fields - array of field names to display in group header
45079
+ groupFields: {
45080
+ type: Array,
45081
+ default: () => [] // e.g., ['accountName', 'accountNumber']
45082
+ },
45083
+ // Performance: Maximum items to render at once (virtualization)
45084
+ maxRenderItems: {
45085
+ type: Number,
45086
+ default: 100 // Render first 100 items, load more on scroll
45087
+ },
45088
+ // Performance: Enable lazy loading
45089
+ lazyLoad: {
45090
+ type: Boolean,
45091
+ default: false
45092
+ },
45093
+ // Status field configuration for dynamic color formatting
45094
+ statusFieldConfig: {
45095
+ type: Object,
45096
+ default: () => ({
45097
+ fieldName: 'status',
45098
+ // Field name to check for status
45099
+ activeValues: ['active', 'Active', 'true', '1'],
45100
+ // Values considered as active
45101
+ inactiveValues: ['inactive', 'Inactive', 'false', '0'],
45102
+ // Values considered as inactive
45103
+ activeColor: '#28a745',
45104
+ // Green color for active
45105
+ inactiveColor: '#dc3545' // Red color for inactive
45106
+ })
45107
+ }
45108
+ },
45109
+ data() {
45110
+ return {
45111
+ remoteItems: [],
45112
+ // This will hold remote items from API
45113
+ loading: false,
45114
+ searchTerm: '',
45115
+ currentPage: 1,
45116
+ hasMore: false,
45117
+ totalItems: 0
45118
+ };
45119
+ },
45120
+ computed: {
45121
+ internalValue: {
45122
+ get() {
45123
+ // Use value prop (Vue 2 v-model default)
45124
+ const value = this.value !== null && this.value !== undefined ? this.value : this.multiple ? [] : null;
45125
+ return value;
45126
+ },
45127
+ set(value) {
45128
+ // Emit input event (Vue 2 v-model default)
45129
+ console.log('=== internalValue setter ===');
45130
+ console.log('Setting internalValue to:', value);
45131
+ console.log('Current value prop:', this.value);
45132
+ console.log('Emitting input event (Vue 2 v-model) with:', value);
45133
+ this.$emit('input', value);
45134
+ this.$emit('update:modelValue', value);
45135
+ this.$emit('change', value);
45136
+ }
45137
+ },
45138
+ useLocalItems() {
45139
+ // Use local items if provided, otherwise use remote lookup
45140
+ // In Vue 2, props are directly accessible via this.items
45141
+ return this.items !== null && this.items !== undefined && Array.isArray(this.items);
45142
+ },
45143
+ normalizedLocalItems() {
45144
+ // Normalize local items - handle both flat and pre-grouped formats
45145
+ if (!this.useLocalItems) return [];
45146
+
45147
+ // Check if items are in pre-grouped format: [{ group: 'Group1', items: [...] }, ...]
45148
+ if (this.items.length > 0 && this.items[0].items && Array.isArray(this.items[0].items)) {
45149
+ // Pre-grouped format - flatten it
45150
+ const flattened = [];
45151
+ this.items.forEach(group => {
45152
+ if (group.items && Array.isArray(group.items)) {
45153
+ group.items.forEach(item => {
45154
+ flattened.push({
45155
+ ...item,
45156
+ group: group.group || group.groupName || ''
45157
+ });
45158
+ });
45159
+ }
45160
+ });
45161
+ return flattened;
45162
+ }
45163
+
45164
+ // Flat format - return as is
45165
+ return this.items;
45166
+ },
45167
+ allItems() {
45168
+ // Return all items (not filtered) - used for finding selected items
45169
+ let sourceItems;
45170
+ if (this.useLocalItems) {
45171
+ sourceItems = this.normalizedLocalItems;
45172
+ } else {
45173
+ sourceItems = this.remoteItems;
45174
+ }
45175
+ return sourceItems.map((item, index) => {
45176
+ // Ensure value is always set - use index as fallback if no value/id
45177
+ const itemValue = item.value !== undefined && item.value !== null ? item.value : item.id !== undefined && item.id !== null ? item.id : `item-${index}`;
45178
+
45179
+ // Determine group value - Priority: groupFields > group/groupName
45180
+ let groupValue = '';
45181
+ if (this.groupFields && this.groupFields.length > 0) {
45182
+ // groupFields has highest priority
45183
+ groupValue = item[this.groupFields[0]] || '';
45184
+ }
45185
+ // Fallback to explicit group/groupName if groupFields didn't provide a value
45186
+ if (!groupValue) {
45187
+ groupValue = item.group || item.groupName || '';
45188
+ }
45189
+ return {
45190
+ raw: item,
45191
+ text: item.text || item.name || item.label || '',
45192
+ value: itemValue,
45193
+ description: item.description || item.subtitle || '',
45194
+ category: item.category || '',
45195
+ group: groupValue,
45196
+ title: item.text || item.name || item.label || '',
45197
+ subtitle: item.description || item.subtitle || ''
45198
+ };
45199
+ });
45200
+ },
45201
+ displayItems() {
45202
+ // Use local items or remote items (filtered for display)
45203
+ let sourceItems;
45204
+ if (this.useLocalItems) {
45205
+ // Filter local items based on search term
45206
+ sourceItems = this.filterLocalItems(this.searchTerm);
45207
+ } else {
45208
+ sourceItems = this.remoteItems;
45209
+ }
45210
+ return sourceItems.map((item, index) => {
45211
+ // Ensure value is always set - use index as fallback if no value/id
45212
+ const itemValue = item.value !== undefined && item.value !== null ? item.value : item.id !== undefined && item.id !== null ? item.id : `item-${index}`;
45213
+
45214
+ // Determine group value - Priority: groupFields > group/groupName
45215
+ let groupValue = '';
45216
+ if (this.groupFields && this.groupFields.length > 0) {
45217
+ // groupFields has highest priority
45218
+ groupValue = item[this.groupFields[0]] || '';
45219
+ }
45220
+ // Fallback to explicit group/groupName if groupFields didn't provide a value
45221
+ if (!groupValue) {
45222
+ groupValue = item.group || item.groupName || '';
45223
+ }
45224
+ return {
45225
+ raw: item,
45226
+ text: item.text || item.name || item.label || '',
45227
+ value: itemValue,
45228
+ description: item.description || item.subtitle || '',
45229
+ category: item.category || '',
45230
+ group: groupValue,
45231
+ title: item.text || item.name || item.label || '',
45232
+ subtitle: item.description || item.subtitle || ''
45233
+ };
45234
+ });
45235
+ },
45236
+ hasItems() {
45237
+ return this.displayItems.length > 0;
45238
+ },
45239
+ itemTitle() {
45240
+ return 'title';
45241
+ },
45242
+ itemValue() {
45243
+ return 'value';
45244
+ },
45245
+ menuProps() {
45246
+ return {
45247
+ maxHeight: 300,
45248
+ virtual: true,
45249
+ itemHeight: 48
45250
+ };
45251
+ }
45252
+ },
45253
+ methods: {
45254
+ filterLocalItems(search = '') {
45255
+ // Filter local items based on search term
45256
+ if (!this.useLocalItems) {
45257
+ return [];
45258
+ }
45259
+
45260
+ // Use normalized items (handles both flat and pre-grouped formats)
45261
+ const itemsToFilter = this.normalizedLocalItems;
45262
+ if (!search || search.trim() === '') {
45263
+ return itemsToFilter;
45264
+ }
45265
+ const searchLower = search.toLowerCase();
45266
+ return itemsToFilter.filter(item => {
45267
+ const text = (item.text || item.name || item.label || '').toLowerCase();
45268
+ const description = (item.description || item.subtitle || '').toLowerCase();
45269
+ return text.includes(searchLower) || description.includes(searchLower);
45270
+ });
45271
+ },
45272
+ async loadItems(search = '', page = 1, append = false) {
45273
+ // If using local items, filter them instead of making API call
45274
+ if (this.useLocalItems) {
45275
+ const filtered = this.filterLocalItems(search);
45276
+ // For local items, we don't modify the prop, just return filtered results
45277
+ // The displayItems computed will handle showing filtered items
45278
+ this.totalItems = filtered.length;
45279
+ this.hasMore = false;
45280
+ this.$emit('search', {
45281
+ search,
45282
+ results: filtered.length,
45283
+ total: filtered.length
45284
+ });
45285
+ return;
45286
+ }
45287
+
45288
+ // Remote lookup - validate type is provided
45289
+ if (!this.type) {
45290
+ console.warn('SearchableSelect: type prop is required when items prop is not provided');
45291
+ return;
45292
+ }
45293
+ if (this.loading) return;
45294
+ this.loading = true;
45295
+
45296
+ // try {
45297
+ // const response = await lookupService.getLookupItems({
45298
+ // type: this.type,
45299
+ // category: this.category,
45300
+ // search: search,
45301
+ // page: page,
45302
+ // limit: this.pageSize,
45303
+ // filters: this.filters
45304
+ // });
45305
+
45306
+ // // Handle response - adjust based on your actual API response structure
45307
+ // if (response && response.data) {
45308
+ // const responseData = response.data
45309
+ // // Check if response has result property (common pattern in this project)
45310
+ // const data = responseData.result || responseData.data || responseData
45311
+ // const newItems = data.items || data.DATA || data || []
45312
+
45313
+ // if (append) {
45314
+ // this.remoteItems = [...this.remoteItems, ...newItems]
45315
+ // } else {
45316
+ // this.remoteItems = newItems
45317
+ // }
45318
+
45319
+ // this.currentPage = data.page || page
45320
+ // this.hasMore = !!data.hasMore
45321
+ // this.totalItems = data.total || data.TOTAL || newItems.length
45322
+
45323
+ // this.$emit('search', { search, results: newItems.length, total: this.totalItems })
45324
+ // } else {
45325
+ // console.error('Lookup API error:', response)
45326
+ // this.remoteItems = []
45327
+ // }
45328
+ // } catch (error) {
45329
+ // console.error('Error loading lookup items:', error)
45330
+ // this.remoteItems = []
45331
+ // } finally {
45332
+ // this.loading = false
45333
+ // }
45334
+ },
45335
+ onSearch(search) {
45336
+ this.searchTerm = search;
45337
+ if (this.useLocalItems) {
45338
+ // For local items, filtering is handled by displayItems computed property
45339
+ const filtered = this.filterLocalItems(search);
45340
+ this.$emit('search', {
45341
+ search,
45342
+ results: filtered.length,
45343
+ total: filtered.length
45344
+ });
45345
+ } else {
45346
+ // For remote items, debounce the API call
45347
+ this.debouncedLoadItems(search, 1, false);
45348
+ }
45349
+ },
45350
+ onSelectionChange(value) {
45351
+ // Ensure value is an array for multiple mode
45352
+ const finalValue = this.multiple && !Array.isArray(value) ? [value] : value;
45353
+
45354
+ // Emit both events for Vue 2 and Vue 3 compatibility
45355
+ this.$emit('input', finalValue);
45356
+ this.$emit('update:modelValue', finalValue);
45357
+ this.$emit('change', finalValue);
45358
+ },
45359
+ onFocus() {
45360
+ this.$emit('focus');
45361
+ if (this.useLocalItems) {
45362
+ // For local items, displayItems will show all items when searchTerm is empty
45363
+ // No action needed
45364
+ } else {
45365
+ // For remote items, load if needed
45366
+ if (this.remoteItems.length === 0 && this.searchTerm.length < this.minSearchLength) {
45367
+ this.loadItems('', 1, false);
45368
+ }
45369
+ }
45370
+ },
45371
+ onBlur() {
45372
+ this.$emit('blur');
45373
+ },
45374
+ removeItem(value) {
45375
+ if (this.multiple) {
45376
+ const newValues = (this.modelValue || []).filter(v => v !== value);
45377
+ this.$emit('update:modelValue', newValues);
45378
+ }
45379
+ },
45380
+ loadMore() {
45381
+ if (this.hasMore && !this.loading) {
45382
+ this.loadItems(this.searchTerm, this.currentPage + 1, true);
45383
+ }
45384
+ },
45385
+ clear() {
45386
+ if (this.useLocalItems) {
45387
+ // For local items, just clear search term
45388
+ this.searchTerm = '';
45389
+ } else {
45390
+ this.remoteItems = [];
45391
+ this.searchTerm = '';
45392
+ this.currentPage = 1;
45393
+ this.hasMore = false;
45394
+ this.totalItems = 0;
45395
+ }
45396
+ },
45397
+ refresh() {
45398
+ this.loadItems(this.searchTerm, 1, false);
45399
+ }
45400
+ },
45401
+ watch: {
45402
+ items: {
45403
+ handler(newItems) {
45404
+ // When local items prop changes, update totalItems
45405
+ if (this.useLocalItems) {
45406
+ const filtered = this.filterLocalItems(this.searchTerm);
45407
+ this.totalItems = filtered.length;
45408
+ // Force reactivity update
45409
+ this.$forceUpdate();
45410
+ }
45411
+ },
45412
+ deep: true,
45413
+ immediate: true
45414
+ },
45415
+ type() {
45416
+ if (!this.useLocalItems) {
45417
+ this.remoteItems = [];
45418
+ this.searchTerm = '';
45419
+ this.currentPage = 1;
45420
+ this.hasMore = false;
45421
+ this.totalItems = 0;
45422
+ }
45423
+ },
45424
+ category() {
45425
+ if (!this.useLocalItems) {
45426
+ this.remoteItems = [];
45427
+ this.searchTerm = '';
45428
+ this.currentPage = 1;
45429
+ this.hasMore = false;
45430
+ this.totalItems = 0;
45431
+ }
45432
+ },
45433
+ filters: {
45434
+ handler() {
45435
+ if (!this.useLocalItems) {
45436
+ this.remoteItems = [];
45437
+ this.searchTerm = '';
45438
+ this.currentPage = 1;
45439
+ this.hasMore = false;
45440
+ this.totalItems = 0;
45441
+ }
45442
+ },
45443
+ deep: true
45444
+ },
45445
+ value: {
45446
+ handler: async function (newValue, oldValue) {
45447
+ console.log('=== SearchableSelect value watcher ===');
45448
+ console.log('New value:', newValue, 'type:', Array.isArray(newValue) ? 'array' : typeof newValue);
45449
+ console.log('Old value:', oldValue);
45450
+ console.log('=== End watcher ===');
45451
+
45452
+ // Only load remote items if not using local items
45453
+ if (!this.useLocalItems && newValue && this.remoteItems.length === 0 && !this.loading && this.type) {
45454
+ // try {
45455
+ // this.loading = true
45456
+ // const response = await lookupService.getLookupItems({
45457
+ // type: this.type,
45458
+ // category: this.category,
45459
+ // search: '',
45460
+ // page: 1,
45461
+ // limit: this.pageSize,
45462
+ // filters: this.filters
45463
+ // })
45464
+
45465
+ // // Handle response - adjust based on your actual API response structure
45466
+ // if (response && response.data) {
45467
+ // const responseData = response.data
45468
+ // const data = responseData.result || responseData.data || responseData
45469
+ // this.remoteItems = data.items || data.DATA || data || []
45470
+ // this.totalItems = data.total || data.TOTAL || this.remoteItems.length
45471
+ // this.hasMore = !!data.hasMore
45472
+ // }
45473
+ // } catch (error) {
45474
+ // console.error('Error loading initial items:', error)
45475
+ // } finally {
45476
+ // this.loading = false
45477
+ // }
45478
+ }
45479
+ },
45480
+ immediate: true
45481
+ }
45482
+ },
45483
+ created() {
45484
+ this.debouncedLoadItems = SearchableSelectvue_type_script_lang_js_debounce(this.loadItems, this.debounceMs);
45485
+ },
45486
+ mounted() {
45487
+ // Initialize items based on mode
45488
+ if (this.useLocalItems) {
45489
+ // For local items, displayItems computed will handle showing items
45490
+ const filtered = this.filterLocalItems(this.searchTerm);
45491
+ this.totalItems = filtered.length;
45492
+ } else if (this.minSearchLength === 0 && this.type) {
45493
+ // For remote items, load if minSearchLength is 0
45494
+ this.loadItems('', 1, false);
45495
+ }
45496
+ }
45497
+ });
45498
+ // CONCATENATED MODULE: ./src/components/SearchableSelect.vue?vue&type=script&lang=js
45499
+ /* harmony default export */ var components_SearchableSelectvue_type_script_lang_js = (SearchableSelectvue_type_script_lang_js);
45500
+ // EXTERNAL MODULE: ./src/components/SearchableSelect.vue?vue&type=style&index=0&id=688f213e&prod&scoped=true&lang=css
45501
+ var SearchableSelectvue_type_style_index_0_id_688f213e_prod_scoped_true_lang_css = __webpack_require__("8958");
45502
+
45503
+ // CONCATENATED MODULE: ./src/components/SearchableSelect.vue
45504
+
45505
+
45506
+
45507
+
45508
+
45509
+
45510
+ /* normalize component */
45511
+
45512
+ var SearchableSelect_component = normalizeComponent(
45513
+ components_SearchableSelectvue_type_script_lang_js,
45514
+ SearchableSelectvue_type_template_id_688f213e_scoped_true_render,
45515
+ SearchableSelectvue_type_template_id_688f213e_scoped_true_staticRenderFns,
45516
+ false,
45517
+ null,
45518
+ "688f213e",
45519
+ null
45520
+
45521
+ )
45522
+
45523
+ /* harmony default export */ var SearchableSelect = (SearchableSelect_component.exports);
45524
+ // 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/SearchableSelectField.vue?vue&type=script&lang=js
45525
+
45526
+
45527
+
45528
+
45529
+
45530
+
45531
+ /* harmony default export */ var SearchableSelectFieldvue_type_script_lang_js = ({
45532
+ components: {
45533
+ Field: ValidationProvider,
45534
+ SearchableSelect: SearchableSelect
45535
+ },
45536
+ props: {
45537
+ lang: {
45538
+ type: String,
45539
+ default: 'en'
45540
+ },
45541
+ fieldInfo: {
45542
+ type: Object,
45543
+ required: true
45544
+ }
45545
+ },
45546
+ watch: {
45547
+ fieldInfo: {
45548
+ handler: function () {
45549
+ this.GetSelectOptions();
45550
+ },
45551
+ deep: true
45552
+ }
45553
+ },
45554
+ data() {
45555
+ return {
45556
+ optionList: [],
45557
+ dependentOptions: []
45558
+ };
45559
+ },
45560
+ created: async function () {
45561
+ await this.GetSelectOptions();
45562
+ },
45563
+ mounted: function () {
45564
+ this.fieldInfo.validationRules = getValidationRules(this.fieldInfo.validationRules, this.lang);
45565
+ },
45566
+ methods: {
45567
+ GetDisplayLabel(field) {
45568
+ var labelName = '';
45569
+ if (field.hasOwnProperty('label') && field.label) {
45570
+ labelName = field.label;
45571
+ } else if (field.hasOwnProperty('display_name') && field.display_name) {
45572
+ labelName = field.display_name;
45573
+ }
45574
+ return labelName;
45575
+ },
45576
+ onChange(e) {
45577
+ if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onChange) {
45578
+ this.fieldInfo.config.onChange(e, this.fieldInfo);
45579
+ }
45580
+ this.$emit('UpdateKeyValue', 1);
45581
+ },
45582
+ showAddIcon: function () {
45583
+ if (this.fieldInfo.config && this.fieldInfo.config.showAddIcon) {
45584
+ return this.fieldInfo.config.showAddIcon;
45585
+ }
45586
+ },
45587
+ onAddButtonClick: function (e) {
45588
+ if (this.fieldInfo && this.fieldInfo.config && this.fieldInfo.config.onAddButtonClick) {
45589
+ this.fieldInfo.config.onAddButtonClick(e, this.fieldInfo);
45590
+ }
45591
+ },
45592
+ addButtonClass: function () {
45593
+ if (this.fieldInfo.config && this.fieldInfo.config.addIconBackground) {
45594
+ return "round-icon-small theme-primary " + this.fieldInfo.config.addIconBackground;
45595
+ } else {
45596
+ return "round-icon-small btn-dark theme-primary";
45597
+ }
45598
+ },
45599
+ addIconClass: function () {
45600
+ if (this.fieldInfo.config && this.fieldInfo.config.addIcon) {
45601
+ return "fa text-white pt-7 font-18 " + this.fieldInfo.config.addIcon;
45602
+ } else {
45603
+ return "fa fa-plus text-white pt-7 font-18";
45604
+ }
45605
+ },
45606
+ GetSelectOptions: async function () {
45607
+ var vm = this;
45608
+ if (vm.fieldInfo.hasOwnProperty('config') && vm.fieldInfo.config.hasOwnProperty('OptionsForBind') == false) {
45609
+ vm.fieldInfo.config.OptionsForBind = [];
45610
+ }
45611
+ if (vm.fieldInfo.hasOwnProperty('picklist_options') && vm.fieldInfo.picklist_options != 'Lookup') {
45612
+ vm.fieldInfo.config.OptionsForBind = vm.MakeArray(vm.fieldInfo.picklist_options);
45613
+ } else if (vm.fieldInfo.hasOwnProperty('select_options') && vm.fieldInfo.select_options.length > 0) {
45614
+ vm.fieldInfo.config.OptionsForBind = vm.MakeNormalArray(vm.fieldInfo.select_options);
45615
+ } else if (vm.fieldInfo.hasOwnProperty('config') && vm.fieldInfo.config.hasOwnProperty('OptionsForBind') && vm.fieldInfo.config.OptionsForBind.length > 0) {
45616
+ vm.fieldInfo.config.OptionsForBind = vm.fieldInfo.config.OptionsForBind;
45617
+ } else if (vm.fieldInfo.hasOwnProperty('config') && vm.fieldInfo.config.hasOwnProperty('option_request_url') && vm.fieldInfo.config.option_request_url.length > 0) {
45618
+ await axios_default.a.get(vm.fieldInfo.config.option_request_url, {
45619
+ headers: {
45620
+ "Authorization": `Bearer ${vm.fieldInfo.config.token}`
45621
+ }
45622
+ }).then(res => {
45623
+ console.log(res.data);
45624
+ if (res.data && res.data.hasOwnProperty('DATA')) {
45625
+ vm.fieldInfo.config.OptionsForBind = res.data.DATA;
45626
+ } else {
45627
+ vm.fieldInfo.config.OptionsForBind = res.data;
45628
+ }
45629
+ }).catch(error => {
45630
+ console.log('Error on binding slect option in tg-control- ' + error);
45631
+ });
45632
+ }
45633
+ this.$forceUpdate();
45634
+ },
45635
+ MakeNormalArray: function (value) {
45636
+ if (value) {
45637
+ try {
45638
+ return JSON.parse(value);
45639
+ } catch (ex) {
45640
+ return value;
45641
+ }
45642
+ } else {
45643
+ value = [];
45644
+ }
45645
+ },
45646
+ MakeArray: function (value, type) {
45647
+ var array = [];
45648
+ var arr = String(value).split(',');
45649
+ if (type == "radio" || type == "checkbox") {
45650
+ if (arr.length > 0) {
45651
+ for (let item of arr) {
45652
+ if (item.split("|").length > 1) {
45653
+ var person = {
45654
+ name: item.split("|")[0].trim(),
45655
+ value: item.split("|")[1].trim()
45656
+ };
45657
+ array.push(person);
45658
+ } else {
45659
+ var person = {
45660
+ name: item.trim(),
45661
+ value: item.trim()
45662
+ };
45663
+ array.push(person);
45664
+ }
45665
+ }
45666
+ }
45667
+ } else {
45668
+ if (arr.length > 0) {
45669
+ for (let item of arr) {
45670
+ var person = {
45671
+ name: item.trim(),
45672
+ value: item.trim()
45673
+ };
45674
+ array.push(person);
45675
+ }
45676
+ }
45677
+ }
45678
+ return array;
45679
+ },
45680
+ computedActionButtons(field) {
45681
+ if (field && field.hasOwnProperty("config") && field.config.hasOwnProperty("actionButtons")) {
45682
+ return field.config.actionButtons;
45683
+ } else {
45684
+ return {
45685
+ selectAll: false,
45686
+ active: false,
45687
+ inactive: false,
45688
+ clear: false
45689
+ };
45690
+ }
45691
+ },
45692
+ computedItemFields(field) {
45693
+ if (field && field.hasOwnProperty("config") && field.config.hasOwnProperty("itemFields")) {
45694
+ return field.config.itemFields;
45695
+ } else {
45696
+ return ['text'];
45697
+ }
45698
+ },
45699
+ computedGroupFields(field) {
45700
+ if (field && field.hasOwnProperty("config") && field.config.hasOwnProperty("groupFields")) {
45701
+ return field.config.groupFields;
45702
+ } else {
45703
+ return ['group'];
45704
+ }
45705
+ },
45706
+ computedMaxRenderItems(field) {
45707
+ if (field && field.hasOwnProperty("config") && field.config.hasOwnProperty("maxRenderItems")) {
45708
+ return field.config.maxRenderItems;
45709
+ } else {
45710
+ return 50;
45711
+ }
45712
+ },
45713
+ onSearchableChange: function (x, field, e) {
45714
+ if (field && field.hasOwnProperty("config") && field.config.hasOwnProperty("onChange")) {
45715
+ field.config.onChange(field, x);
45716
+ }
45717
+ },
45718
+ RenderOptions() {
45719
+ var options = [];
45720
+ var vm = this;
45721
+ if (this.optionList.length > 0) {
45722
+ if (Array.isArray(this.optionList)) {
45723
+ this.optionList.forEach((item, index) => {
45724
+ options.push({
45725
+ value: item.value,
45726
+ name: item.hasOwnProperty('text') ? item.text : item.name
45727
+ });
45728
+ });
45729
+ if (!vm.fieldInfo.hasOwnProperty('select_options')) {
45730
+ vm.fieldInfo.select_options = [];
45731
+ }
45732
+ vm.fieldInfo.select_options = options;
45733
+ } else console.log(' type of the optionList is not array - ' + typeof this.optionList);
45734
+ } else {
45735
+ console.log(' No select options found for the - ' + vm.fieldInfo.name);
45736
+ }
45737
+ }
45738
+ }
45739
+ });
45740
+ // CONCATENATED MODULE: ./src/components/SearchableSelectField.vue?vue&type=script&lang=js
45741
+ /* harmony default export */ var components_SearchableSelectFieldvue_type_script_lang_js = (SearchableSelectFieldvue_type_script_lang_js);
45742
+ // CONCATENATED MODULE: ./src/components/SearchableSelectField.vue
45743
+
45744
+
45745
+
45746
+
45747
+
45748
+ /* normalize component */
45749
+
45750
+ var SearchableSelectField_component = normalizeComponent(
45751
+ components_SearchableSelectFieldvue_type_script_lang_js,
45752
+ SearchableSelectFieldvue_type_template_id_6f324aae_render,
45753
+ SearchableSelectFieldvue_type_template_id_6f324aae_staticRenderFns,
45754
+ false,
45755
+ null,
45756
+ null,
45757
+ null
45758
+
45759
+ )
45760
+
45761
+ /* harmony default export */ var SearchableSelectField = (SearchableSelectField_component.exports);
45762
+ // 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
45763
+
45764
+
45765
+
42143
45766
 
42144
45767
 
42145
45768
 
@@ -42179,9 +45802,11 @@ var SlotField_component = normalizeComponent(
42179
45802
  TextAreaField: TextAreaField,
42180
45803
  ColorField: ColorField,
42181
45804
  FileField: FileField,
45805
+ NormalFileField: NormalFileField,
42182
45806
  TreeSelectField: TreeSelectField,
42183
45807
  SlotField: SlotField,
42184
- PasswordField: PasswordField
45808
+ PasswordField: PasswordField,
45809
+ SearchableSelectField: SearchableSelectField
42185
45810
  },
42186
45811
  data: function () {
42187
45812
  return {
@@ -42902,6 +46527,13 @@ function isSymbol(value) {
42902
46527
  module.exports = isSymbol;
42903
46528
 
42904
46529
 
46530
+ /***/ }),
46531
+
46532
+ /***/ "fffa":
46533
+ /***/ (function(module, exports, __webpack_require__) {
46534
+
46535
+ // extracted by mini-css-extract-plugin
46536
+
42905
46537
  /***/ })
42906
46538
 
42907
46539
  /******/ });