vxe-pc-ui 4.20.16 → 4.20.17

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.
Files changed (165) hide show
  1. package/dist/all.esm.js +201 -33
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/icon/style.css +1 -1
  5. package/es/language/ar-EG.js +4 -0
  6. package/es/language/de-DE.js +4 -0
  7. package/es/language/en-US.js +4 -0
  8. package/es/language/es-ES.js +4 -0
  9. package/es/language/fr-FR.js +7 -3
  10. package/es/language/hu-HU.js +4 -0
  11. package/es/language/hy-AM.js +4 -0
  12. package/es/language/id-ID.js +4 -0
  13. package/es/language/it-IT.js +4 -0
  14. package/es/language/ja-JP.js +4 -0
  15. package/es/language/ko-KR.js +4 -0
  16. package/es/language/ms-MY.js +4 -0
  17. package/es/language/nb-NO.js +4 -0
  18. package/es/language/pt-BR.js +4 -0
  19. package/es/language/ru-RU.js +4 -0
  20. package/es/language/th-TH.js +4 -0
  21. package/es/language/ug-CN.js +4 -0
  22. package/es/language/uk-UA.js +4 -0
  23. package/es/language/uz-UZ.js +4 -0
  24. package/es/language/vi-VN.js +4 -0
  25. package/es/language/zh-CHT.js +4 -0
  26. package/es/language/zh-CN.js +4 -0
  27. package/es/select/src/select.js +13 -2
  28. package/es/style.css +1 -1
  29. package/es/style.min.css +1 -1
  30. package/es/table-select/src/table-select.js +174 -29
  31. package/es/table-select/style.css +43 -16
  32. package/es/table-select/style.min.css +1 -1
  33. package/es/tree-select/src/tree-select.js +1 -1
  34. package/es/ui/index.js +9 -1
  35. package/es/ui/src/log.js +1 -1
  36. package/es/vxe-table-select/style.css +43 -16
  37. package/es/vxe-table-select/style.min.css +1 -1
  38. package/lib/icon/style/style.css +1 -1
  39. package/lib/icon/style/style.min.css +1 -1
  40. package/lib/index.umd.js +220 -43
  41. package/lib/index.umd.min.js +1 -1
  42. package/lib/language/ar-EG.js +4 -0
  43. package/lib/language/ar-EG.min.js +1 -1
  44. package/lib/language/ar-EG.umd.js +4 -0
  45. package/lib/language/de-DE.js +4 -0
  46. package/lib/language/de-DE.min.js +1 -1
  47. package/lib/language/de-DE.umd.js +4 -0
  48. package/lib/language/en-US.js +4 -0
  49. package/lib/language/en-US.min.js +1 -1
  50. package/lib/language/en-US.umd.js +4 -0
  51. package/lib/language/es-ES.js +4 -0
  52. package/lib/language/es-ES.min.js +1 -1
  53. package/lib/language/es-ES.umd.js +4 -0
  54. package/lib/language/fr-FR.js +4 -0
  55. package/lib/language/fr-FR.min.js +1 -1
  56. package/lib/language/fr-FR.umd.js +4 -0
  57. package/lib/language/hu-HU.js +4 -0
  58. package/lib/language/hu-HU.min.js +1 -1
  59. package/lib/language/hu-HU.umd.js +4 -0
  60. package/lib/language/hy-AM.js +4 -0
  61. package/lib/language/hy-AM.min.js +1 -1
  62. package/lib/language/hy-AM.umd.js +4 -0
  63. package/lib/language/id-ID.js +4 -0
  64. package/lib/language/id-ID.min.js +1 -1
  65. package/lib/language/id-ID.umd.js +4 -0
  66. package/lib/language/it-IT.js +4 -0
  67. package/lib/language/it-IT.min.js +1 -1
  68. package/lib/language/it-IT.umd.js +4 -0
  69. package/lib/language/ja-JP.js +4 -0
  70. package/lib/language/ja-JP.min.js +1 -1
  71. package/lib/language/ja-JP.umd.js +4 -0
  72. package/lib/language/ko-KR.js +4 -0
  73. package/lib/language/ko-KR.min.js +1 -1
  74. package/lib/language/ko-KR.umd.js +4 -0
  75. package/lib/language/ms-MY.js +4 -0
  76. package/lib/language/ms-MY.min.js +1 -1
  77. package/lib/language/ms-MY.umd.js +4 -0
  78. package/lib/language/nb-NO.js +4 -0
  79. package/lib/language/nb-NO.min.js +1 -1
  80. package/lib/language/nb-NO.umd.js +4 -0
  81. package/lib/language/pt-BR.js +4 -0
  82. package/lib/language/pt-BR.min.js +1 -1
  83. package/lib/language/pt-BR.umd.js +4 -0
  84. package/lib/language/ru-RU.js +4 -0
  85. package/lib/language/ru-RU.min.js +1 -1
  86. package/lib/language/ru-RU.umd.js +4 -0
  87. package/lib/language/th-TH.js +4 -0
  88. package/lib/language/th-TH.min.js +1 -1
  89. package/lib/language/th-TH.umd.js +4 -0
  90. package/lib/language/ug-CN.js +4 -0
  91. package/lib/language/ug-CN.min.js +1 -1
  92. package/lib/language/ug-CN.umd.js +4 -0
  93. package/lib/language/uk-UA.js +4 -0
  94. package/lib/language/uk-UA.min.js +1 -1
  95. package/lib/language/uk-UA.umd.js +4 -0
  96. package/lib/language/uz-UZ.js +4 -0
  97. package/lib/language/uz-UZ.min.js +1 -1
  98. package/lib/language/uz-UZ.umd.js +4 -0
  99. package/lib/language/vi-VN.js +4 -0
  100. package/lib/language/vi-VN.min.js +1 -1
  101. package/lib/language/vi-VN.umd.js +4 -0
  102. package/lib/language/zh-CHT.js +4 -0
  103. package/lib/language/zh-CHT.min.js +1 -1
  104. package/lib/language/zh-CHT.umd.js +4 -0
  105. package/lib/language/zh-CN.js +4 -0
  106. package/lib/language/zh-CN.min.js +1 -1
  107. package/lib/language/zh-CN.umd.js +4 -0
  108. package/lib/select/src/select.js +11 -8
  109. package/lib/select/src/select.min.js +1 -1
  110. package/lib/style.css +1 -1
  111. package/lib/style.min.css +1 -1
  112. package/lib/table-select/src/table-select.js +193 -32
  113. package/lib/table-select/src/table-select.min.js +1 -1
  114. package/lib/table-select/style/style.css +43 -16
  115. package/lib/table-select/style/style.min.css +1 -1
  116. package/lib/tree-select/src/tree-select.js +1 -1
  117. package/lib/tree-select/src/tree-select.min.js +1 -1
  118. package/lib/ui/index.js +9 -1
  119. package/lib/ui/index.min.js +1 -1
  120. package/lib/ui/src/log.js +1 -1
  121. package/lib/ui/src/log.min.js +1 -1
  122. package/lib/vxe-table-select/style/style.css +43 -16
  123. package/lib/vxe-table-select/style/style.min.css +1 -1
  124. package/package.json +1 -1
  125. package/packages/language/ar-EG.ts +4 -0
  126. package/packages/language/de-DE.ts +4 -0
  127. package/packages/language/en-US.ts +4 -0
  128. package/packages/language/es-ES.ts +4 -0
  129. package/packages/language/fr-FR.ts +907 -903
  130. package/packages/language/hu-HU.ts +4 -0
  131. package/packages/language/hy-AM.ts +4 -0
  132. package/packages/language/id-ID.ts +4 -0
  133. package/packages/language/it-IT.ts +4 -0
  134. package/packages/language/ja-JP.ts +4 -0
  135. package/packages/language/ko-KR.ts +4 -0
  136. package/packages/language/ms-MY.ts +4 -0
  137. package/packages/language/nb-NO.ts +4 -0
  138. package/packages/language/pt-BR.ts +4 -0
  139. package/packages/language/ru-RU.ts +4 -0
  140. package/packages/language/th-TH.ts +4 -0
  141. package/packages/language/ug-CN.ts +4 -0
  142. package/packages/language/uk-UA.ts +4 -0
  143. package/packages/language/uz-UZ.ts +4 -0
  144. package/packages/language/vi-VN.ts +4 -0
  145. package/packages/language/zh-CHT.ts +4 -0
  146. package/packages/language/zh-CN.ts +4 -0
  147. package/packages/select/src/select.ts +13 -2
  148. package/packages/table-select/src/table-select.ts +185 -30
  149. package/packages/tree-select/src/tree-select.ts +1 -1
  150. package/packages/ui/index.ts +8 -0
  151. package/styles/components/table-select.scss +39 -13
  152. package/types/components/select.d.ts +12 -2
  153. package/types/components/table-select.d.ts +53 -3
  154. /package/es/icon/{iconfont.1792671792434.ttf → iconfont.1792723048769.ttf} +0 -0
  155. /package/es/icon/{iconfont.1792671792434.woff → iconfont.1792723048769.woff} +0 -0
  156. /package/es/icon/{iconfont.1792671792434.woff2 → iconfont.1792723048769.woff2} +0 -0
  157. /package/es/{iconfont.1792671792434.ttf → iconfont.1792723048769.ttf} +0 -0
  158. /package/es/{iconfont.1792671792434.woff → iconfont.1792723048769.woff} +0 -0
  159. /package/es/{iconfont.1792671792434.woff2 → iconfont.1792723048769.woff2} +0 -0
  160. /package/lib/icon/style/{iconfont.1792671792434.ttf → iconfont.1792723048769.ttf} +0 -0
  161. /package/lib/icon/style/{iconfont.1792671792434.woff → iconfont.1792723048769.woff} +0 -0
  162. /package/lib/icon/style/{iconfont.1792671792434.woff2 → iconfont.1792723048769.woff2} +0 -0
  163. /package/lib/{iconfont.1792671792434.ttf → iconfont.1792723048769.ttf} +0 -0
  164. /package/lib/{iconfont.1792671792434.woff → iconfont.1792723048769.woff} +0 -0
  165. /package/lib/{iconfont.1792671792434.woff2 → iconfont.1792723048769.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -5334,7 +5334,7 @@ function checkDynamic() {
5334
5334
  const {
5335
5335
  log: log_log
5336
5336
  } = VxeUI;
5337
- const uiVersion = `ui v${"4.20.16"}`;
5337
+ const uiVersion = `ui v${"4.20.17"}`;
5338
5338
  function createComponentLog(name) {
5339
5339
  const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
5340
5340
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
@@ -5352,7 +5352,7 @@ const errLog = log_log.create('error', uiVersion);
5352
5352
 
5353
5353
 
5354
5354
 
5355
- const ui_version = "4.20.16";
5355
+ const ui_version = "4.20.17";
5356
5356
  VxeUI.uiVersion = ui_version;
5357
5357
  VxeUI.dynamicApp = dynamicApp;
5358
5358
  function config(options) {
@@ -5758,6 +5758,10 @@ setConfig({
5758
5758
  switch: {},
5759
5759
  tabPane: {},
5760
5760
  tableSelect: {
5761
+ remoteConfig: {
5762
+ enabled: true,
5763
+ autoLoad: true
5764
+ },
5761
5765
  gridConfig: {
5762
5766
  showOverflow: true,
5763
5767
  showHeaderOverflow: true,
@@ -5837,6 +5841,10 @@ setConfig({
5837
5841
  gt: 0,
5838
5842
  oSize: 2
5839
5843
  },
5844
+ remoteConfig: {
5845
+ enabled: true,
5846
+ autoLoad: true
5847
+ },
5840
5848
  treeConfig: {
5841
5849
  maxHeight: 300,
5842
5850
  radioConfig: {},
@@ -6215,10 +6223,14 @@ setIcon({
6215
6223
  allExpand: '全部展开',
6216
6224
  clearExpand: '全部收起',
6217
6225
  total: '已选 {0} 项',
6226
+ filterCount: '共找到 {0} 条记录',
6218
6227
  close: '关闭',
6219
6228
  search: '搜索',
6220
6229
  emptyText: '暂无数据'
6221
6230
  },
6231
+ tableSelect: {
6232
+ filterCount: '共找到 {0} 条记录'
6233
+ },
6222
6234
  pager: {
6223
6235
  goto: '前往',
6224
6236
  gotoTitle: '页数',
@@ -42901,15 +42913,18 @@ function select_createInternalData() {
42901
42913
  avList = fullData.filter(isOptionVisible);
42902
42914
  } else {
42903
42915
  if (filterable && frMethod) {
42904
- avList = fullData.filter(option => isOptionVisible(option) && frMethod({
42905
- $select: $xeSelect,
42906
- group: null,
42907
- option,
42908
- searchValue,
42909
- value: modelValue
42910
- }));
42916
+ avList = searchValue ? fullData.filter(option => {
42917
+ return isOptionVisible(option) && frMethod({
42918
+ $select: $xeSelect,
42919
+ group: null,
42920
+ option,
42921
+ filterValue: searchValue,
42922
+ searchValue: searchValue,
42923
+ value: modelValue
42924
+ });
42925
+ }) : fullData;
42911
42926
  } else if (filterable) {
42912
- avList = fullData.filter(option => isOptionVisible(option) && (!searchStr || `${option[labelField] || option[valueField]}`.toLowerCase().indexOf(searchStr) > -1));
42927
+ avList = searchStr ? fullData.filter(option => isOptionVisible(option) && `${option[labelField] || option[valueField]}`.toLowerCase().indexOf(searchStr) > -1) : fullData;
42913
42928
  } else {
42914
42929
  avList = fullData.filter(isOptionVisible);
42915
42930
  }
@@ -50692,6 +50707,7 @@ const TabPane = VxeTabPane;
50692
50707
 
50693
50708
 
50694
50709
 
50710
+
50695
50711
  const {
50696
50712
  getConfig: table_select_getConfig,
50697
50713
  getIcon: table_select_getIcon,
@@ -50710,8 +50726,10 @@ function getRowUniqueId() {
50710
50726
  function table_select_createReactData() {
50711
50727
  return {
50712
50728
  initialized: false,
50729
+ searchValue: '',
50730
+ searchLoading: false,
50731
+ tableData: [],
50713
50732
  tableColumns: [],
50714
- fullOptionList: [],
50715
50733
  panelIndex: 0,
50716
50734
  panelStyle: {},
50717
50735
  panelPlacement: null,
@@ -50725,7 +50743,9 @@ function table_select_createInternalData() {
50725
50743
  return {
50726
50744
  // hpTimeout: undefined,
50727
50745
  // vpTimeout: undefined,
50728
- fullRowMaps: {}
50746
+ fullData: [],
50747
+ afterVisibleList: [],
50748
+ fullValMaps: {}
50729
50749
  };
50730
50750
  }
50731
50751
  /* harmony default export */ var table_select = (defineVxeComponent({
@@ -50757,6 +50777,13 @@ function table_select_createInternalData() {
50757
50777
  options: Array,
50758
50778
  optionProps: Object,
50759
50779
  lazyOptions: Array,
50780
+ filterable: {
50781
+ type: Boolean,
50782
+ default: () => table_select_getConfig().tableSelect.filterable
50783
+ },
50784
+ filterConfig: Object,
50785
+ remote: Boolean,
50786
+ remoteConfig: Object,
50760
50787
  /**
50761
50788
  * 已废弃,请使用 popupConfig.zIndex
50762
50789
  * @deprecated
@@ -50793,6 +50820,7 @@ function table_select_createInternalData() {
50793
50820
  const refInput = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
50794
50821
  const refGridWrapper = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
50795
50822
  const refOptionPanel = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
50823
+ const refInpSearch = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
50796
50824
  const refGrid = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
50797
50825
  const reactData = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.reactive)(table_select_createReactData());
50798
50826
  const internalData = table_select_createInternalData();
@@ -50887,6 +50915,12 @@ function table_select_createInternalData() {
50887
50915
  data: undefined
50888
50916
  });
50889
50917
  });
50918
+ const computeRemoteOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
50919
+ return Object.assign({}, table_select_getConfig().tableSelect.remoteConfig, props.remoteConfig);
50920
+ });
50921
+ const computeFilterOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
50922
+ return Object.assign({}, table_select_getConfig().tableSelect.filterConfig, props.filterConfig);
50923
+ });
50890
50924
  const computeSelectGridOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
50891
50925
  const gridOpts = computeGridOpts.value;
50892
50926
  const checkboxOpts = computeCheckboxOpts.value;
@@ -50904,10 +50938,10 @@ function table_select_createInternalData() {
50904
50938
  Object.assign(newProxyConfig.ajax, {
50905
50939
  query(params, ...args) {
50906
50940
  return Promise.resolve(ajaxMethods(params, ...args)).then(rest => {
50907
- let tableData = [];
50941
+ let currData = [];
50908
50942
  if (pagerConfig) {
50909
50943
  const resultProp = resConfigs.result;
50910
- tableData = (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(resultProp) ? resultProp({
50944
+ currData = (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(resultProp) ? resultProp({
50911
50945
  data: rest,
50912
50946
  $table: null,
50913
50947
  $grid: null,
@@ -50915,14 +50949,14 @@ function table_select_createInternalData() {
50915
50949
  }) : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(rest, resultProp || 'result')) || [];
50916
50950
  } else {
50917
50951
  const listProp = resConfigs.list;
50918
- tableData = (listProp ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(listProp) ? listProp({
50952
+ currData = (listProp ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(listProp) ? listProp({
50919
50953
  data: rest,
50920
50954
  $table: null,
50921
50955
  $grid: null,
50922
50956
  $gantt: null
50923
50957
  }) : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(rest, listProp) : rest) || [];
50924
50958
  }
50925
- cacheDataMap(tableData || []);
50959
+ cacheDataMap(currData || []);
50926
50960
  return rest;
50927
50961
  });
50928
50962
  }
@@ -50944,18 +50978,16 @@ function table_select_createInternalData() {
50944
50978
  lazyOptions
50945
50979
  } = props;
50946
50980
  const {
50947
- fullOptionList
50948
- } = reactData;
50949
- const {
50950
- fullRowMaps
50981
+ fullValMaps,
50982
+ fullData
50951
50983
  } = internalData;
50952
50984
  const valueField = computeValueField.value;
50953
50985
  const labelField = computeLabelField.value;
50954
- if (!fullOptionList) {
50986
+ if (!fullData) {
50955
50987
  return '';
50956
50988
  }
50957
50989
  return (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(modelValue) ? modelValue : [modelValue]).map(val => {
50958
- const cacheItem = fullRowMaps[val];
50990
+ const cacheItem = fullValMaps[val];
50959
50991
  if (cacheItem) {
50960
50992
  return cacheItem.item[labelField];
50961
50993
  }
@@ -51018,7 +51050,7 @@ function table_select_createInternalData() {
51018
51050
  };
51019
51051
  const getRowsByValue = modelValue => {
51020
51052
  const {
51021
- fullRowMaps
51053
+ fullValMaps
51022
51054
  } = internalData;
51023
51055
  const checkboxOpts = computeCheckboxOpts.value;
51024
51056
  const rowKeyField = computeRowKeyField.value;
@@ -51028,7 +51060,7 @@ function table_select_createInternalData() {
51028
51060
  const vals = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(modelValue) ? [] : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(modelValue) ? modelValue : [modelValue];
51029
51061
  if (checkboxOpts.reserve) {
51030
51062
  vals.forEach(val => {
51031
- const cacheItem = fullRowMaps[val];
51063
+ const cacheItem = fullValMaps[val];
51032
51064
  rows.push(cacheItem ? cacheItem.item : {
51033
51065
  [rowKeyField]: val,
51034
51066
  [valueField]: val,
@@ -51037,7 +51069,7 @@ function table_select_createInternalData() {
51037
51069
  });
51038
51070
  } else {
51039
51071
  vals.forEach(val => {
51040
- const cacheItem = fullRowMaps[val];
51072
+ const cacheItem = fullValMaps[val];
51041
51073
  if (cacheItem) {
51042
51074
  rows.push(cacheItem.item);
51043
51075
  }
@@ -51063,7 +51095,11 @@ function table_select_createInternalData() {
51063
51095
  }
51064
51096
  });
51065
51097
  };
51066
- const loadTableColumn = columns => {
51098
+ const loadData = data => {
51099
+ cacheDataMap(data);
51100
+ handleData();
51101
+ };
51102
+ const loadColumn = columns => {
51067
51103
  if (!columns || !columns.length) {
51068
51104
  return;
51069
51105
  }
@@ -51112,7 +51148,7 @@ function table_select_createInternalData() {
51112
51148
  const rowMaps = {};
51113
51149
  const keyMaps = {};
51114
51150
  if (treeConfig) {
51115
- // x
51151
+ // 暂不支持
51116
51152
  } else {
51117
51153
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(dataList || options || [], (item, index, items) => {
51118
51154
  let rowid = getRowid(item);
@@ -51130,16 +51166,62 @@ function table_select_createInternalData() {
51130
51166
  rowMaps[value] = {
51131
51167
  item,
51132
51168
  index,
51169
+ _index: index,
51133
51170
  items,
51134
51171
  parent: null,
51135
51172
  nodes: []
51136
51173
  };
51137
51174
  });
51138
51175
  }
51139
- reactData.fullOptionList = dataList || options || [];
51140
- internalData.fullRowMaps = pagerConfig ? Object.assign({}, internalData.fullRowMaps, rowMaps) : rowMaps;
51176
+ internalData.fullData = dataList || options || [];
51177
+ internalData.fullValMaps = pagerConfig ? Object.assign({}, internalData.fullValMaps, rowMaps) : rowMaps;
51178
+ handleOptList();
51141
51179
  updateModel(props.modelValue);
51142
51180
  };
51181
+ const handleOptList = () => {
51182
+ const {
51183
+ remote,
51184
+ modelValue,
51185
+ filterable
51186
+ } = props;
51187
+ const {
51188
+ searchValue
51189
+ } = reactData;
51190
+ const {
51191
+ fullData,
51192
+ fullValMaps
51193
+ } = internalData;
51194
+ const valueField = computeValueField.value;
51195
+ const labelField = computeLabelField.value;
51196
+ const filterOpts = computeFilterOpts.value;
51197
+ const frMethod = filterOpts.filterMethod;
51198
+ const searchStr = `${searchValue || ''}`.toLowerCase();
51199
+ let avList = [];
51200
+ if (remote) {
51201
+ avList = fullData;
51202
+ } else {
51203
+ if (filterable && frMethod) {
51204
+ avList = searchStr ? fullData.filter(row => frMethod({
51205
+ $tableSelect: $xeTableSelect,
51206
+ row,
51207
+ filterValue: searchValue,
51208
+ value: modelValue
51209
+ })) : fullData;
51210
+ } else if (filterable) {
51211
+ avList = searchStr ? fullData.filter(row => `${row[labelField] || row[valueField]}`.toLowerCase().indexOf(searchStr) > -1) : fullData;
51212
+ } else {
51213
+ avList = fullData;
51214
+ }
51215
+ }
51216
+ avList.forEach((item, index) => {
51217
+ const cacheItem = fullValMaps[item[valueField]];
51218
+ if (cacheItem) {
51219
+ cacheItem._index = index;
51220
+ }
51221
+ });
51222
+ internalData.afterVisibleList = avList;
51223
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
51224
+ };
51143
51225
  const updateZindex = () => {
51144
51226
  const popupOpts = computePopupOpts.value;
51145
51227
  const customZIndex = popupOpts.zIndex || props.zIndex;
@@ -51178,9 +51260,15 @@ function table_select_createInternalData() {
51178
51260
  };
51179
51261
  const showOptionPanel = () => {
51180
51262
  const {
51181
- loading
51263
+ loading,
51264
+ remote,
51265
+ filterable
51182
51266
  } = props;
51267
+ const {
51268
+ fullData
51269
+ } = internalData;
51183
51270
  const isDisabled = computeIsDisabled.value;
51271
+ const remoteOpts = computeRemoteOpts.value;
51184
51272
  if (!loading && !isDisabled) {
51185
51273
  if (internalData.vpTimeout) {
51186
51274
  clearTimeout(internalData.vpTimeout);
@@ -51191,12 +51279,18 @@ function table_select_createInternalData() {
51191
51279
  if (!reactData.initialized) {
51192
51280
  reactData.initialized = true;
51193
51281
  }
51282
+ if (filterable) {
51283
+ if (remote && remoteOpts.enabled && remoteOpts.autoLoad && !fullData.length) {
51284
+ handleSearchEvent();
51285
+ }
51286
+ }
51194
51287
  reactData.isActivated = true;
51195
51288
  reactData.isAniVisible = true;
51196
51289
  internalData.vpTimeout = setTimeout(() => {
51197
51290
  reactData.visiblePanel = true;
51198
51291
  updateModel(props.modelValue);
51199
51292
  internalData.vpTimeout = undefined;
51293
+ handleFocusSearch();
51200
51294
  updatePlacement();
51201
51295
  }, 10);
51202
51296
  updateZindex();
@@ -51204,7 +51298,16 @@ function table_select_createInternalData() {
51204
51298
  }
51205
51299
  };
51206
51300
  const hideOptionPanel = () => {
51301
+ const {
51302
+ filterable
51303
+ } = props;
51304
+ const filterOpts = computeFilterOpts.value;
51207
51305
  reactData.visiblePanel = false;
51306
+ if (filterable) {
51307
+ if (filterOpts.clearOnClose) {
51308
+ reactData.searchValue = '';
51309
+ }
51310
+ }
51208
51311
  if (internalData.vpTimeout) {
51209
51312
  clearTimeout(internalData.vpTimeout);
51210
51313
  }
@@ -51216,6 +51319,46 @@ function table_select_createInternalData() {
51216
51319
  internalData.hpTimeout = undefined;
51217
51320
  }, 350);
51218
51321
  };
51322
+ const handleData = () => {
51323
+ const {
51324
+ afterVisibleList
51325
+ } = internalData;
51326
+ reactData.tableData = afterVisibleList;
51327
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
51328
+ };
51329
+ const modelSearchEvent = value => {
51330
+ reactData.searchValue = value;
51331
+ };
51332
+ const focusSearchEvent = () => {
51333
+ reactData.isActivated = true;
51334
+ };
51335
+ const handleSearchEvent = () => {
51336
+ const {
51337
+ modelValue,
51338
+ remote
51339
+ } = props;
51340
+ const {
51341
+ searchValue
51342
+ } = reactData;
51343
+ const remoteOpts = computeRemoteOpts.value;
51344
+ const queryMethod = remoteOpts.queryMethod;
51345
+ if (remote && queryMethod && remoteOpts.enabled) {
51346
+ reactData.searchLoading = true;
51347
+ Promise.resolve(queryMethod({
51348
+ $tableSelect: $xeTableSelect,
51349
+ searchValue,
51350
+ value: modelValue
51351
+ })).then(() => (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)()).catch(() => (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)()).finally(() => {
51352
+ reactData.searchLoading = false;
51353
+ });
51354
+ } else {
51355
+ handleOptList();
51356
+ handleData();
51357
+ }
51358
+ };
51359
+ const triggerSearchEvent = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().debounce(handleSearchEvent, 350, {
51360
+ trailing: true
51361
+ });
51219
51362
  const changeEvent = (evnt, selectValue, row) => {
51220
51363
  emitModel(selectValue);
51221
51364
  if (selectValue !== props.modelValue) {
@@ -51293,6 +51436,16 @@ function table_select_createInternalData() {
51293
51436
  updatePlacement();
51294
51437
  }
51295
51438
  };
51439
+ const handleFocusSearch = () => {
51440
+ if (props.filterable) {
51441
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
51442
+ const inpSearch = refInpSearch.value;
51443
+ if (inpSearch) {
51444
+ inpSearch.focus();
51445
+ }
51446
+ });
51447
+ }
51448
+ };
51296
51449
  const focusEvent = evnt => {
51297
51450
  const isDisabled = computeIsDisabled.value;
51298
51451
  if (!isDisabled) {
@@ -51365,15 +51518,19 @@ function table_select_createInternalData() {
51365
51518
  const renderVN = () => {
51366
51519
  const {
51367
51520
  className,
51368
- options,
51369
- loading
51521
+ loading,
51522
+ filterable,
51523
+ remote
51370
51524
  } = props;
51371
51525
  const {
51372
51526
  initialized,
51373
51527
  isActivated,
51374
51528
  isAniVisible,
51375
51529
  visiblePanel,
51376
- tableColumns
51530
+ tableColumns,
51531
+ searchValue,
51532
+ tableData,
51533
+ searchLoading
51377
51534
  } = reactData;
51378
51535
  const vSize = computeSize.value;
51379
51536
  const isDisabled = computeIsDisabled.value;
@@ -51383,6 +51540,7 @@ function table_select_createInternalData() {
51383
51540
  const popupOpts = computePopupOpts.value;
51384
51541
  const selectGridOpts = computeSelectGridOpts.value;
51385
51542
  const rowOpts = computeRowOpts.value;
51543
+ const filterOpts = computeFilterOpts.value;
51386
51544
  const popupWrapperStyle = computePopupWrapperStyle.value;
51387
51545
  const {
51388
51546
  appendTo
@@ -51405,6 +51563,7 @@ function table_select_createInternalData() {
51405
51563
  $tableSelect: $xeTableSelect
51406
51564
  }) : className : '', {
51407
51565
  [`size--${vSize}`]: vSize,
51566
+ 'is--filterable': filterable,
51408
51567
  'is--visible': visiblePanel,
51409
51568
  'is--disabled': isDisabled,
51410
51569
  'is--loading': loading,
@@ -51444,7 +51603,22 @@ function table_select_createInternalData() {
51444
51603
  style: reactData.panelStyle
51445
51604
  }, initialized ? [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
51446
51605
  class: 'vxe-table-select--panel-wrapper'
51447
- }, [headerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
51606
+ }, [filterable ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
51607
+ class: 'vxe-table-select--panel-search'
51608
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(input, {
51609
+ ref: refInpSearch,
51610
+ class: 'vxe-table-select-search--input',
51611
+ modelValue: searchValue,
51612
+ clearable: true,
51613
+ disabled: false,
51614
+ readonly: false,
51615
+ placeholder: table_select_getI18n('vxe.treeSelect.search'),
51616
+ prefixIcon: table_select_getIcon().INPUT_SEARCH,
51617
+ 'onUpdate:modelValue': modelSearchEvent,
51618
+ onFocus: focusSearchEvent,
51619
+ onChange: triggerSearchEvent,
51620
+ onSearch: triggerSearchEvent
51621
+ })]) : table_select_renderEmptyElement($xeTableSelect), headerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
51448
51622
  class: 'vxe-table-select--panel-header'
51449
51623
  }, headerSlot({})) : table_select_renderEmptyElement($xeTableSelect), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
51450
51624
  class: 'vxe-table-select--panel-body'
@@ -51457,8 +51631,9 @@ function table_select_createInternalData() {
51457
51631
  ...gridEvents,
51458
51632
  class: 'vxe-table-select--grid',
51459
51633
  ref: refGrid,
51634
+ loading: remote && searchLoading,
51460
51635
  rowConfig: rowOpts,
51461
- data: options,
51636
+ data: tableData,
51462
51637
  columns: tableColumns.length ? tableColumns : selectGridOpts.columns,
51463
51638
  height: '100%',
51464
51639
  autoResize: true,
@@ -51469,21 +51644,23 @@ function table_select_createInternalData() {
51469
51644
  header: undefined,
51470
51645
  footer: undefined,
51471
51646
  prefixSlot: undefined
51472
- })) : table_select_renderEmptyElement($xeTableSelect)])]), footerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
51647
+ })) : table_select_renderEmptyElement($xeTableSelect)])]), footerSlot || filterable && searchValue && !remote && filterOpts.showResultCount ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
51473
51648
  class: 'vxe-table-select--panel-footer'
51474
- }, footerSlot({})) : table_select_renderEmptyElement($xeTableSelect)])] : [])])]);
51649
+ }, footerSlot ? footerSlot({}) : [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
51650
+ class: 'vxe-table-select--search-count'
51651
+ }, searchLoading ? '' : table_select_getI18n('vxe.tableSelect.filterCount', [tableData.length]))]) : table_select_renderEmptyElement($xeTableSelect)])] : [])])]);
51475
51652
  };
51476
- (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.options, () => {
51477
- cacheDataMap();
51653
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.options, val => {
51654
+ loadData(val || []);
51478
51655
  });
51479
51656
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.columns, val => {
51480
- loadTableColumn(val);
51657
+ loadColumn(val);
51481
51658
  });
51482
51659
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.modelValue, val => {
51483
51660
  updateModel(val);
51484
51661
  });
51485
- loadTableColumn(props.columns);
51486
- cacheDataMap();
51662
+ loadColumn(props.columns);
51663
+ loadData(props.options || []);
51487
51664
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onMounted)(() => {
51488
51665
  const {
51489
51666
  gridConfig
@@ -58474,7 +58651,7 @@ function tree_select_createInternalData() {
58474
58651
  default: () => getConfig().treeSelect.size || getConfig().size
58475
58652
  },
58476
58653
  remote: Boolean,
58477
- remoteConfig: Function,
58654
+ remoteConfig: Object,
58478
58655
  showRadio: {
58479
58656
  type: Boolean,
58480
58657
  default: () => getConfig().treeSelect.showRadio