giime 0.3.14 → 0.3.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/index.css +47 -4
  2. package/es/components/src/base/select/Select.vue.d.ts +1 -0
  3. package/es/components/src/base/select/Select.vue.mjs +2 -1
  4. package/es/components/src/base/select/Select.vue.mjs.map +1 -1
  5. package/es/components/src/base/select/Select.vue2.mjs +32 -8
  6. package/es/components/src/base/select/Select.vue2.mjs.map +1 -1
  7. package/es/components/src/base/select/Select.vue3.mjs +4 -0
  8. package/es/components/src/base/select/Select.vue3.mjs.map +1 -0
  9. package/es/components/src/base/select/index.d.ts +1 -0
  10. package/es/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue.d.ts +9 -0
  11. package/es/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue2.mjs +2 -1
  12. package/es/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue2.mjs.map +1 -1
  13. package/es/components/src/composite/searchForm/searchFormItems/select/index.d.ts +9 -0
  14. package/es/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.d.ts +4 -0
  15. package/es/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.mjs +4 -0
  16. package/es/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.mjs.map +1 -1
  17. package/es/components/src/composite/selectOptions/SelectOptions.vue.d.ts +15 -2
  18. package/es/components/src/composite/selectOptions/SelectOptions.vue2.mjs +58 -7
  19. package/es/components/src/composite/selectOptions/SelectOptions.vue2.mjs.map +1 -1
  20. package/es/components/src/composite/selectOptions/index.d.ts +415 -105
  21. package/es/giime/version.d.ts +1 -1
  22. package/es/giime/version.mjs +1 -1
  23. package/es/giime/version.mjs.map +1 -1
  24. package/es/hooks/base/useDownload/index.d.ts +1 -1
  25. package/es/hooks/base/useDownload/index.mjs +7 -7
  26. package/es/hooks/base/useDownload/index.mjs.map +1 -1
  27. package/es/hooks/base/useIDBKeyval/index.d.ts +4 -0
  28. package/es/hooks/base/useIDBKeyval/index.mjs.map +1 -1
  29. package/es/index.css +47 -4
  30. package/lib/components/src/base/select/Select.vue.d.ts +1 -0
  31. package/lib/components/src/base/select/Select.vue.js +2 -1
  32. package/lib/components/src/base/select/Select.vue.js.map +1 -1
  33. package/lib/components/src/base/select/Select.vue2.js +31 -7
  34. package/lib/components/src/base/select/Select.vue2.js.map +1 -1
  35. package/lib/components/src/base/select/Select.vue3.js +8 -0
  36. package/lib/components/src/base/select/Select.vue3.js.map +1 -0
  37. package/lib/components/src/base/select/index.d.ts +1 -0
  38. package/lib/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue.d.ts +9 -0
  39. package/lib/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue2.js +2 -1
  40. package/lib/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue2.js.map +1 -1
  41. package/lib/components/src/composite/searchForm/searchFormItems/select/index.d.ts +9 -0
  42. package/lib/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.d.ts +4 -0
  43. package/lib/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.js +4 -0
  44. package/lib/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.js.map +1 -1
  45. package/lib/components/src/composite/selectOptions/SelectOptions.vue.d.ts +15 -2
  46. package/lib/components/src/composite/selectOptions/SelectOptions.vue2.js +57 -6
  47. package/lib/components/src/composite/selectOptions/SelectOptions.vue2.js.map +1 -1
  48. package/lib/components/src/composite/selectOptions/index.d.ts +415 -105
  49. package/lib/giime/version.d.ts +1 -1
  50. package/lib/giime/version.js +1 -1
  51. package/lib/giime/version.js.map +1 -1
  52. package/lib/hooks/base/useDownload/index.d.ts +1 -1
  53. package/lib/hooks/base/useDownload/index.js +7 -7
  54. package/lib/hooks/base/useDownload/index.js.map +1 -1
  55. package/lib/hooks/base/useIDBKeyval/index.d.ts +4 -0
  56. package/lib/hooks/base/useIDBKeyval/index.js.map +1 -1
  57. package/lib/index.css +47 -4
  58. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../packages/hooks/base/useDownload/index.ts"],"sourcesContent":["import { h, ref } from 'vue';\r\nimport FileSaver from 'file-saver';\r\n\r\nimport GmNotification from '@giime/components/src/plugins/notification';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport JSZip from 'jszip';\r\nimport { GmMessage } from '@giime/components/src/plugins/message';\r\nimport type { AxiosResponse } from 'axios';\r\n\r\nexport interface DownloadOptions {\r\n filename?: string;\r\n}\r\nexport interface DateownloadZipItem {\r\n url: string;\r\n filename?: string;\r\n}\r\n\r\nexport const useDownload = () => {\r\n const getUrlFilename = (url: string) => {\r\n const filename = url.split('/').pop()?.split('?')[0] || 'file';\r\n return filename;\r\n };\r\n /**\r\n * 通过url下载\r\n * @param url\r\n * @param options\r\n */\r\n const downloadByUrl = async (url: string, options?: DownloadOptions) => {\r\n const filename = options?.filename || getUrlFilename(url);\r\n const curId = uuidv4();\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', { className: curId }, [`当前下载进度 0%`]),\r\n duration: 0,\r\n });\r\n await createDownload({\r\n url,\r\n filename,\r\n uuid: curId,\r\n });\r\n modalInfo.close();\r\n };\r\n /**\r\n * 通过接口响应结果下载\r\n * @param res\r\n * @param options\r\n */\r\n const downloadByRes = async (res: AxiosResponse<any, any>, options?: DownloadOptions) => {\r\n let contentDispositionName = (res?.headers?.['content-disposition'] || res?.headers?.['Content-Disposition'])?.split('filename=')[1];\r\n try {\r\n contentDispositionName = decodeURIComponent(contentDispositionName);\r\n } catch {}\r\n const filename = options?.filename || contentDispositionName || 'file';\r\n const resBlob = await res.data;\r\n const curId = uuidv4();\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', { className: curId }, [`当前下载进度 0%`]),\r\n duration: 0,\r\n });\r\n // 设置type类型\r\n const blob = new Blob([resBlob]);\r\n const fileUrl = window.URL.createObjectURL(blob);\r\n await createDownload({\r\n url: fileUrl,\r\n filename,\r\n uuid: curId,\r\n });\r\n modalInfo.close();\r\n };\r\n /**\r\n * 下载多文件 转为zip\r\n * @param fileList\r\n * @param filename\r\n */\r\n const downloadToZip = async (fileList: DateownloadZipItem[], filename: string) => {\r\n try {\r\n const currentContentClass = `message${Date.now()}`;\r\n const downloadCount = ref(0);\r\n const len = fileList.length;\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', [h('div', { className: currentContentClass }, [`总下载文件数:${len},已下载文件数:${downloadCount.value}`])]),\r\n duration: 0,\r\n });\r\n // h('div', { className: currentClass }, [`当前下载进度 ${progress.value}%`]),\r\n const zipInstance = new JSZip();\r\n for (let i = 0; i < len; i++) {\r\n const currentItem = fileList[i];\r\n // const fileBlob = await\r\n const downblobOptions = {\r\n url: currentItem.url,\r\n filename: currentItem.filename ?? getUrlFilename(currentItem.url),\r\n isZip: true,\r\n };\r\n createDownload(downblobOptions).then(res => {\r\n zipInstance.file(downblobOptions.filename, res);\r\n downloadCount.value++;\r\n editElementContent(currentContentClass, `总下载文件数:${len},已下载文件数:${downloadCount.value}`);\r\n if (downloadCount.value == len) {\r\n editElementContent(currentContentClass, `正在合并...`);\r\n\r\n zipInstance\r\n .generateAsync({ type: 'blob' })\r\n .then(res => {\r\n modalInfo.close();\r\n\r\n const fileUrl = window.URL.createObjectURL(res);\r\n // FileSaver.saveAs(res, filename);\r\n downloadByUrl(fileUrl, { filename });\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n });\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n const createDownload = (options: { url: string; filename: string; uuid?: string; isZip?: boolean }) => {\r\n return new Promise<Blob>((resolve, reject) => {\r\n // 创建一个新的 XMLHttpRequest 对象\r\n const xhr = new XMLHttpRequest();\r\n // 初始化一个GET请求\r\n xhr.open('GET', options.url, true);\r\n xhr.responseType = 'blob'; // 设置响应类型为blob,以便处理二进制文件\r\n\r\n // 监听 progress 事件\r\n xhr.onprogress = function (event) {\r\n if (event.lengthComputable) {\r\n const percentComplete = Math.floor((event.loaded / event.total) * 100);\r\n if (options.uuid) {\r\n editElementContent(options.uuid, `当前下载进度 ${percentComplete}%`);\r\n }\r\n }\r\n };\r\n\r\n // 监听 load 事件,表示下载完成\r\n xhr.onload = function (e) {\r\n const eventTarget = e.target as XMLHttpRequest;\r\n if ([200, 304].includes(eventTarget.status)) {\r\n const blob = eventTarget.response;\r\n // const url = window.URL.createObjectURL(blob);\r\n if (!options.isZip) {\r\n FileSaver.saveAs(blob, options.filename);\r\n GmNotification({\r\n type: 'success',\r\n title: '温馨提示',\r\n message: '下载完成',\r\n duration: 3000,\r\n });\r\n }\r\n\r\n resolve(blob);\r\n }\r\n };\r\n\r\n // 监听 error 事件\r\n xhr.onerror = function (e) {\r\n GmMessage.error('下载异常,请重试');\r\n reject(e);\r\n };\r\n\r\n // 发送请求\r\n xhr.send();\r\n });\r\n };\r\n return { downloadByUrl, downloadByRes, downloadToZip };\r\n};\r\n\r\n// 动态更新 notify 中的message 信息\r\nconst editElementContent = (className: string, content: string) => {\r\n // eslint-disable-next-line unicorn/prefer-query-selector\r\n const currentEle = document.getElementsByClassName(className)[0];\r\n if (currentEle) {\r\n currentEle.innerHTML = content;\r\n }\r\n};\r\n"],"names":["uuidv4","res"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/hooks/base/useDownload/index.ts"],"sourcesContent":["import { h, ref } from 'vue';\r\nimport FileSaver from 'file-saver';\r\n\r\nimport GmNotification from '@giime/components/src/plugins/notification';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport JSZip from 'jszip';\r\nimport { GmMessage } from '@giime/components/src/plugins/message';\r\nimport type { AxiosResponse } from 'axios';\r\n\r\nexport interface DownloadOptions {\r\n filename?: string;\r\n}\r\nexport interface DateownloadZipItem {\r\n url: string;\r\n filename?: string;\r\n}\r\n\r\nexport const useDownload = () => {\r\n const getUrlFilename = (url: string) => {\r\n const filename = url.split('/').pop()?.split('?')[0] || 'file';\r\n return filename;\r\n };\r\n /**\r\n * 通过url下载\r\n * @param url\r\n * @param options\r\n */\r\n const downloadByUrl = async (url: string, options?: DownloadOptions) => {\r\n const filename = options?.filename || getUrlFilename(url);\r\n const curId = uuidv4();\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', { className: curId }, [`当前下载进度 0%`]),\r\n duration: 0,\r\n });\r\n await createDownload({\r\n url,\r\n filename,\r\n uuid: curId,\r\n });\r\n modalInfo.close();\r\n };\r\n /**\r\n * 通过接口响应结果下载\r\n * @param res\r\n * @param options\r\n */\r\n const downloadByRes = async (res: AxiosResponse<any, any>, options?: DownloadOptions) => {\r\n let contentDispositionName = (res?.headers?.['content-disposition'] || res?.headers?.['Content-Disposition'])?.split('filename=')[1];\r\n try {\r\n contentDispositionName = decodeURIComponent(contentDispositionName);\r\n } catch {}\r\n const filename = options?.filename || contentDispositionName || 'file';\r\n const resBlob = await res.data;\r\n const curId = uuidv4();\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', { className: curId }, [`当前下载进度 0%`]),\r\n duration: 0,\r\n });\r\n // 设置type类型\r\n const blob = new Blob([resBlob]);\r\n const fileUrl = window.URL.createObjectURL(blob);\r\n await createDownload({\r\n url: fileUrl,\r\n filename,\r\n uuid: curId,\r\n });\r\n modalInfo.close();\r\n };\r\n /**\r\n * 下载多文件 转为zip\r\n * @param fileList\r\n * @param filename\r\n */\r\n const downloadToZip = async (fileList: DateownloadZipItem[], filename: string) => {\r\n return new Promise((resolve, reject) => {\r\n const currentContentClass = `message${Date.now()}`;\r\n const downloadCount = ref(0);\r\n const len = fileList.length;\r\n const modalInfo = GmNotification({\r\n title: '下载中',\r\n message: h('div', [h('div', { className: currentContentClass }, [`总下载文件数:${len},已下载文件数:${downloadCount.value}`])]),\r\n duration: 0,\r\n });\r\n // h('div', { className: currentClass }, [`当前下载进度 ${progress.value}%`]),\r\n const zipInstance = new JSZip();\r\n for (let i = 0; i < len; i++) {\r\n const currentItem = fileList[i];\r\n // const fileBlob = await\r\n const downblobOptions = {\r\n url: currentItem.url,\r\n filename: currentItem.filename ?? getUrlFilename(currentItem.url),\r\n isZip: true,\r\n };\r\n createDownload(downblobOptions).then(res => {\r\n zipInstance.file(downblobOptions.filename, res);\r\n downloadCount.value++;\r\n editElementContent(currentContentClass, `总下载文件数:${len},已下载文件数:${downloadCount.value}`);\r\n if (downloadCount.value == len) {\r\n editElementContent(currentContentClass, `正在合并...`);\r\n zipInstance\r\n .generateAsync({ type: 'blob' })\r\n .then(async res => {\r\n modalInfo.close();\r\n\r\n const fileUrl = window.URL.createObjectURL(res);\r\n // FileSaver.saveAs(res, filename);\r\n await downloadByUrl(fileUrl, { filename });\r\n resolve(true);\r\n })\r\n .catch(error => {\r\n console.error('error', error);\r\n reject(error);\r\n });\r\n }\r\n });\r\n }\r\n });\r\n };\r\n const createDownload = (options: { url: string; filename: string; uuid?: string; isZip?: boolean }) => {\r\n return new Promise<Blob>((resolve, reject) => {\r\n // 创建一个新的 XMLHttpRequest 对象\r\n const xhr = new XMLHttpRequest();\r\n // 初始化一个GET请求\r\n xhr.open('GET', options.url, true);\r\n xhr.responseType = 'blob'; // 设置响应类型为blob,以便处理二进制文件\r\n\r\n // 监听 progress 事件\r\n xhr.onprogress = function (event) {\r\n if (event.lengthComputable) {\r\n const percentComplete = Math.floor((event.loaded / event.total) * 100);\r\n if (options.uuid) {\r\n editElementContent(options.uuid, `当前下载进度 ${percentComplete}%`);\r\n }\r\n }\r\n };\r\n\r\n // 监听 load 事件,表示下载完成\r\n xhr.onload = function (e) {\r\n const eventTarget = e.target as XMLHttpRequest;\r\n if ([200, 304].includes(eventTarget.status)) {\r\n const blob = eventTarget.response;\r\n // const url = window.URL.createObjectURL(blob);\r\n if (!options.isZip) {\r\n FileSaver.saveAs(blob, options.filename);\r\n GmNotification({\r\n type: 'success',\r\n title: '温馨提示',\r\n message: '下载完成',\r\n duration: 3000,\r\n });\r\n }\r\n\r\n resolve(blob);\r\n }\r\n };\r\n\r\n // 监听 error 事件\r\n xhr.onerror = function (e) {\r\n GmMessage.error('下载异常,请重试');\r\n reject(e);\r\n };\r\n\r\n // 发送请求\r\n xhr.send();\r\n });\r\n };\r\n return { downloadByUrl, downloadByRes, downloadToZip };\r\n};\r\n\r\n// 动态更新 notify 中的message 信息\r\nconst editElementContent = (className: string, content: string) => {\r\n // eslint-disable-next-line unicorn/prefer-query-selector\r\n const currentEle = document.getElementsByClassName(className)[0];\r\n if (currentEle) {\r\n currentEle.innerHTML = content;\r\n }\r\n};\r\n"],"names":["uuidv4","res"],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  /// <reference types="@vueuse/shared" />
2
2
  import { type MaybeRefOrGetter } from '@vueuse/core';
3
3
  import type { UseIDBOptions } from '@vueuse/integrations/useIDBKeyval';
4
+ /**
5
+ * indexedDB 的封装
6
+ * 与 @vueuse/integrations/useIDBKeyval 的区别是,这个hook提供等待indexedDB 初始化完成的方法 initIndexedDBComplete
7
+ */
4
8
  export declare const useIDBKeyval: <T>(key: IDBValidKey, initialValue: MaybeRefOrGetter<T>, options?: UseIDBOptions) => {
5
9
  data: import("@vueuse/shared").RemovableRef<T>;
6
10
  isFinished: import("vue").Ref<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../packages/hooks/base/useIDBKeyval/index.ts"],"sourcesContent":["import { watch } from 'vue';\r\nimport { useIDBKeyval as _useIDBKeyval } from '@vueuse/integrations/useIDBKeyval';\r\nimport { type MaybeRefOrGetter, createEventHook } from '@vueuse/core';\r\nimport type { UseIDBOptions } from '@vueuse/integrations/useIDBKeyval';\r\n\r\nexport const useIDBKeyval = <T>(key: IDBValidKey, initialValue: MaybeRefOrGetter<T>, options?: UseIDBOptions) => {\r\n const { data, isFinished, set } = _useIDBKeyval(key, initialValue, options);\r\n const IDBInitResult = createEventHook();\r\n /**当indexedDB 初始化完成 */\r\n const initIndexedDBComplete = async () => {\r\n if (isFinished.value) {\r\n return;\r\n }\r\n return new Promise<undefined>(resolve => {\r\n IDBInitResult.on(resolve);\r\n });\r\n };\r\n watch(isFinished, newValue => {\r\n if (newValue) {\r\n IDBInitResult.trigger();\r\n }\r\n });\r\n return {\r\n data,\r\n isFinished,\r\n set,\r\n initIndexedDBComplete,\r\n };\r\n};\r\n"],"names":["_useIDBKeyval"],"mappings":";;;;AAKO,MAAM,YAAe,GAAA,CAAI,GAAkB,EAAA,YAAA,EAAmC,OAA4B,KAAA;AAC/G,EAAM,MAAA,EAAE,MAAM,UAAY,EAAA,GAAA,KAAQA,cAAc,CAAA,GAAA,EAAK,cAAc,OAAO,CAAA,CAAA;AAC1E,EAAA,MAAM,gBAAgB,eAAgB,EAAA,CAAA;AAEtC,EAAA,MAAM,wBAAwB,YAAY;AACxC,IAAA,IAAI,WAAW,KAAO,EAAA;AACpB,MAAA,OAAA;AAAA,KACF;AACA,IAAO,OAAA,IAAI,QAAmB,CAAW,OAAA,KAAA;AACvC,MAAA,aAAA,CAAc,GAAG,OAAO,CAAA,CAAA;AAAA,KACzB,CAAA,CAAA;AAAA,GACH,CAAA;AACA,EAAA,KAAA,CAAM,YAAY,CAAY,QAAA,KAAA;AAC5B,IAAA,IAAI,QAAU,EAAA;AACZ,MAAA,aAAA,CAAc,OAAQ,EAAA,CAAA;AAAA,KACxB;AAAA,GACD,CAAA,CAAA;AACD,EAAO,OAAA;AAAA,IACL,IAAA;AAAA,IACA,UAAA;AAAA,IACA,GAAA;AAAA,IACA,qBAAA;AAAA,GACF,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/hooks/base/useIDBKeyval/index.ts"],"sourcesContent":["import { watch } from 'vue';\r\nimport { useIDBKeyval as _useIDBKeyval } from '@vueuse/integrations/useIDBKeyval';\r\nimport { type MaybeRefOrGetter, createEventHook } from '@vueuse/core';\r\nimport type { UseIDBOptions } from '@vueuse/integrations/useIDBKeyval';\r\n\r\n/**\r\n * indexedDB 的封装\r\n * 与 @vueuse/integrations/useIDBKeyval 的区别是,这个hook提供等待indexedDB 初始化完成的方法 initIndexedDBComplete\r\n */\r\nexport const useIDBKeyval = <T>(key: IDBValidKey, initialValue: MaybeRefOrGetter<T>, options?: UseIDBOptions) => {\r\n const { data, isFinished, set } = _useIDBKeyval(key, initialValue, options);\r\n const IDBInitResult = createEventHook();\r\n /**当indexedDB 初始化完成 */\r\n const initIndexedDBComplete = async () => {\r\n if (isFinished.value) {\r\n return;\r\n }\r\n return new Promise<undefined>(resolve => {\r\n IDBInitResult.on(resolve);\r\n });\r\n };\r\n watch(isFinished, newValue => {\r\n if (newValue) {\r\n IDBInitResult.trigger();\r\n }\r\n });\r\n return {\r\n data,\r\n isFinished,\r\n set,\r\n initIndexedDBComplete,\r\n };\r\n};\r\n"],"names":["_useIDBKeyval"],"mappings":";;;;AASO,MAAM,YAAe,GAAA,CAAI,GAAkB,EAAA,YAAA,EAAmC,OAA4B,KAAA;AAC/G,EAAM,MAAA,EAAE,MAAM,UAAY,EAAA,GAAA,KAAQA,cAAc,CAAA,GAAA,EAAK,cAAc,OAAO,CAAA,CAAA;AAC1E,EAAA,MAAM,gBAAgB,eAAgB,EAAA,CAAA;AAEtC,EAAA,MAAM,wBAAwB,YAAY;AACxC,IAAA,IAAI,WAAW,KAAO,EAAA;AACpB,MAAA,OAAA;AAAA,KACF;AACA,IAAO,OAAA,IAAI,QAAmB,CAAW,OAAA,KAAA;AACvC,MAAA,aAAA,CAAc,GAAG,OAAO,CAAA,CAAA;AAAA,KACzB,CAAA,CAAA;AAAA,GACH,CAAA;AACA,EAAA,KAAA,CAAM,YAAY,CAAY,QAAA,KAAA;AAC5B,IAAA,IAAI,QAAU,EAAA;AACZ,MAAA,aAAA,CAAc,OAAQ,EAAA,CAAA;AAAA,KACxB;AAAA,GACD,CAAA,CAAA;AACD,EAAO,OAAA;AAAA,IACL,IAAA;AAAA,IACA,UAAA;AAAA,IACA,GAAA;AAAA,IACA,qBAAA;AAAA,GACF,CAAA;AACF;;;;"}
package/es/index.css CHANGED
@@ -569,6 +569,9 @@ video {
569
569
  .gm-inline-block {
570
570
  display: inline-block;
571
571
  }
572
+ .gm-inline {
573
+ display: inline;
574
+ }
572
575
  .gm-flex {
573
576
  display: flex;
574
577
  }
@@ -587,6 +590,9 @@ video {
587
590
  .gm-h-1 {
588
591
  height: 0.25rem;
589
592
  }
593
+ .gm-h-\[30px\] {
594
+ height: 30px;
595
+ }
590
596
  .gm-h-\[36px\] {
591
597
  height: 36px;
592
598
  }
@@ -602,6 +608,9 @@ video {
602
608
  .gm-w-\[120px\] {
603
609
  width: 120px;
604
610
  }
611
+ .gm-w-\[30px\] {
612
+ width: 30px;
613
+ }
605
614
  .gm-w-full {
606
615
  width: 100%;
607
616
  }
@@ -671,6 +680,9 @@ video {
671
680
  --tw-bg-opacity: 1;
672
681
  background-color: rgb(236 254 255 / var(--tw-bg-opacity));
673
682
  }
683
+ .gm-stroke-2 {
684
+ stroke-width: 2;
685
+ }
674
686
  .gm-p-4 {
675
687
  padding: 1rem;
676
688
  }
@@ -755,10 +767,6 @@ video {
755
767
  margin: 0;
756
768
  }
757
769
 
758
- [data-v-ec3af0bb] .gmSearchForm .el-form-item {
759
- margin-right: 0;
760
- margin-bottom: 4px;
761
- }
762
770
  .gm-flex-center[data-v-2a79bac9] {
763
771
  align-items: center;
764
772
  }
@@ -766,6 +774,37 @@ video {
766
774
  .gm-flex-justify-between[data-v-2a79bac9] {
767
775
  justify-content: space-between;
768
776
  }
777
+ .circular[data-v-b391445c] {
778
+ animation: loading-rotate-b391445c 2s linear infinite;
779
+ }
780
+
781
+ .path[data-v-b391445c] {
782
+ animation: loading-dash-b391445c 1.5s ease-in-out infinite;
783
+ stroke-dasharray: 90, 150;
784
+ stroke-dashoffset: 0;
785
+ stroke: var(--el-color-primary);
786
+ stroke-linecap: round;
787
+ }
788
+
789
+ @keyframes loading-rotate-b391445c {
790
+ to {
791
+ transform: rotate(360deg);
792
+ }
793
+ }
794
+ @keyframes loading-dash-b391445c {
795
+ 0% {
796
+ stroke-dasharray: 1, 200;
797
+ stroke-dashoffset: 0;
798
+ }
799
+ 50% {
800
+ stroke-dasharray: 90, 150;
801
+ stroke-dashoffset: -40px;
802
+ }
803
+ 100% {
804
+ stroke-dasharray: 90, 150;
805
+ stroke-dashoffset: -120px;
806
+ }
807
+ }
769
808
  .gm-number-interval-single[data-v-47a13fd0] {
770
809
  border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
771
810
  box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
@@ -807,6 +846,10 @@ video {
807
846
  [data-v-72a53f6c] .gmTableNoBorder .el-table__border-left-patch {
808
847
  height: 0;
809
848
  }
849
+ [data-v-ec3af0bb] .gmSearchForm .el-form-item {
850
+ margin-right: 0;
851
+ margin-bottom: 4px;
852
+ }
810
853
 
811
854
  .pagination-container[data-v-19230954] {
812
855
  background: #fff;
@@ -206,6 +206,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
206
206
  empty?(_: {}): any;
207
207
  tag?(_: {}): any;
208
208
  loading?(_: {}): any;
209
+ label?(_: any): any;
209
210
  }>;
210
211
  export default _default;
211
212
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -3,9 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var Select_vue_vue_type_script_setup_true_lang = require('./Select.vue2.js');
6
+ require('./Select.vue3.js');
6
7
  var _pluginVue_exportHelper = require('../../../../_virtual/_plugin-vue_export-helper.js');
7
8
 
8
- var Select = /* @__PURE__ */ _pluginVue_exportHelper.default(Select_vue_vue_type_script_setup_true_lang.default, [["__file", "Select.vue"]]);
9
+ var Select = /* @__PURE__ */ _pluginVue_exportHelper.default(Select_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-b391445c"], ["__file", "Select.vue"]]);
9
10
 
10
11
  exports.default = Select;
11
12
  //# sourceMappingURL=Select.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"Select.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -41,51 +41,75 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
41
41
  vue.unref(slots).default ? {
42
42
  name: "default",
43
43
  fn: vue.withCtx(() => [
44
- vue.renderSlot(_ctx.$slots, "default")
44
+ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
45
45
  ]),
46
46
  key: "0"
47
47
  } : void 0,
48
48
  vue.unref(slots).header ? {
49
49
  name: "header",
50
50
  fn: vue.withCtx(() => [
51
- vue.renderSlot(_ctx.$slots, "header")
51
+ vue.renderSlot(_ctx.$slots, "header", {}, void 0, true)
52
52
  ]),
53
53
  key: "1"
54
54
  } : void 0,
55
55
  vue.unref(slots).footer ? {
56
56
  name: "footer",
57
57
  fn: vue.withCtx(() => [
58
- vue.renderSlot(_ctx.$slots, "footer")
58
+ vue.renderSlot(_ctx.$slots, "footer", {}, void 0, true)
59
59
  ]),
60
60
  key: "2"
61
61
  } : void 0,
62
62
  vue.unref(slots).prefix ? {
63
63
  name: "prefix",
64
64
  fn: vue.withCtx(() => [
65
- vue.renderSlot(_ctx.$slots, "prefix")
65
+ vue.renderSlot(_ctx.$slots, "prefix", {}, void 0, true)
66
66
  ]),
67
67
  key: "3"
68
68
  } : void 0,
69
69
  vue.unref(slots).empty ? {
70
70
  name: "empty",
71
71
  fn: vue.withCtx(() => [
72
- vue.renderSlot(_ctx.$slots, "empty")
72
+ vue.renderSlot(_ctx.$slots, "empty", {}, void 0, true)
73
73
  ]),
74
74
  key: "4"
75
75
  } : void 0,
76
76
  vue.unref(slots).tag ? {
77
77
  name: "tag",
78
78
  fn: vue.withCtx(() => [
79
- vue.renderSlot(_ctx.$slots, "tag")
79
+ vue.renderSlot(_ctx.$slots, "tag", {}, void 0, true)
80
80
  ]),
81
81
  key: "5"
82
82
  } : void 0,
83
83
  vue.unref(slots).loading ? {
84
84
  name: "loading",
85
85
  fn: vue.withCtx(() => [
86
- vue.renderSlot(_ctx.$slots, "loading")
86
+ vue.renderSlot(_ctx.$slots, "loading", {}, void 0, true)
87
87
  ]),
88
88
  key: "6"
89
+ } : {
90
+ name: "loading",
91
+ fn: vue.withCtx(() => [
92
+ (vue.openBlock(), vue.createElementBlock("svg", {
93
+ class: "circular gm-inline gm-h-[30px] gm-w-[30px]",
94
+ viewBox: "0 0 50 50"
95
+ }, [
96
+ vue.createElementVNode("circle", {
97
+ class: "path gm-stroke-2",
98
+ cx: "25",
99
+ cy: "25",
100
+ r: "20",
101
+ fill: "none"
102
+ })
103
+ ]))
104
+ ]),
105
+ key: "7"
106
+ },
107
+ vue.unref(slots).label ? {
108
+ name: "label",
109
+ fn: vue.withCtx((slotValue) => [
110
+ vue.renderSlot(_ctx.$slots, "label", vue.normalizeProps(vue.guardReactiveProps(slotValue)), void 0, true)
111
+ ]),
112
+ key: "8"
89
113
  } : void 0
90
114
  ]),
91
115
  1040
@@ -1 +1 @@
1
- {"version":3,"file":"Select.vue2.js","sources":["../../../../../../../packages/components/src/base/select/Select.vue"],"sourcesContent":["<template>\r\n <el-select ref=\"elRef\" v-bind=\"props\" v-on=\"elEvents\">\r\n <template v-if=\"slots.default\" #default>\r\n <slot name=\"default\" />\r\n </template>\r\n <template v-if=\"slots.header\" #header>\r\n <slot name=\"header\" />\r\n </template>\r\n <template v-if=\"slots.footer\" #footer>\r\n <slot name=\"footer\" />\r\n </template>\r\n <template v-if=\"slots.prefix\" #prefix>\r\n <slot name=\"prefix\" />\r\n </template>\r\n <template v-if=\"slots.empty\" #empty>\r\n <slot name=\"empty\" />\r\n </template>\r\n <template v-if=\"slots.tag\" #tag>\r\n <slot name=\"tag\" />\r\n </template>\r\n <template v-if=\"slots.loading\" #loading>\r\n <slot name=\"loading\" />\r\n </template>\r\n </el-select>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { ref, useSlots } from 'vue';\r\nimport { getGmEvent, getGmExports } from '@giime/utils';\r\nimport { elSelectEmits, selectEmits, selectProps } from './select';\r\n\r\ndefineOptions({\r\n name: 'GmSelect',\r\n});\r\nconst slots = useSlots();\r\nconst props = defineProps(selectProps);\r\nconst emit = defineEmits(selectEmits);\r\n// 重发el的事件\r\nconst elEvents = getGmEvent(elSelectEmits, emit);\r\n\r\nconst elRef = ref();\r\nconst exposeNames = ['focus', 'blur'] as const;\r\nconst { exposeFns } = getGmExports(elRef, exposeNames);\r\n\r\ndefineExpose({\r\n ...exposeFns,\r\n});\r\n</script>\r\n"],"names":["useSlots","getGmEvent","elSelectEmits","ref","getGmExports"],"mappings":";;;;;;;;;;;;;;;;;;AAiCA,IAAA,MAAM,QAAQA,YAAS,EAAA,CAAA;AACvB,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,MAAA,QAAA,GAAWC,gBAAW,CAAAC,oBAAA,EAAe,IAAI,CAAA,CAAA;AAE/C,IAAA,MAAM,QAAQC,OAAI,EAAA,CAAA;AAClB,IAAM,MAAA,WAAA,GAAc,CAAC,OAAA,EAAS,MAAM,CAAA,CAAA;AACpC,IAAA,MAAM,EAAE,SAAA,EAAc,GAAAC,sBAAA,CAAa,OAAO,WAAW,CAAA,CAAA;AAErD,IAAa,QAAA,CAAA;AAAA,MACX,GAAG,SAAA;AAAA,KACJ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Select.vue2.js","sources":["../../../../../../../packages/components/src/base/select/Select.vue"],"sourcesContent":["<template>\r\n <el-select ref=\"elRef\" v-bind=\"props\" v-on=\"elEvents\">\r\n <template v-if=\"slots.default\" #default>\r\n <slot name=\"default\" />\r\n </template>\r\n <template v-if=\"slots.header\" #header>\r\n <slot name=\"header\" />\r\n </template>\r\n <template v-if=\"slots.footer\" #footer>\r\n <slot name=\"footer\" />\r\n </template>\r\n <template v-if=\"slots.prefix\" #prefix>\r\n <slot name=\"prefix\" />\r\n </template>\r\n <template v-if=\"slots.empty\" #empty>\r\n <slot name=\"empty\" />\r\n </template>\r\n <template v-if=\"slots.tag\" #tag>\r\n <slot name=\"tag\" />\r\n </template>\r\n <template v-if=\"slots.loading\" #loading>\r\n <slot name=\"loading\" />\r\n </template>\r\n <template v-else #loading>\r\n <svg class=\"circular gm-inline gm-h-[30px] gm-w-[30px]\" viewBox=\"0 0 50 50\">\r\n <circle class=\"path gm-stroke-2\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" />\r\n </svg>\r\n </template>\r\n <template v-if=\"slots.label\" #label=\"slotValue\">\r\n <slot name=\"label\" v-bind=\"slotValue\" />\r\n </template>\r\n </el-select>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { ref, useSlots } from 'vue';\r\nimport { getGmEvent, getGmExports } from '@giime/utils';\r\nimport { elSelectEmits, selectEmits, selectProps } from './select';\r\n\r\ndefineOptions({\r\n name: 'GmSelect',\r\n});\r\nconst slots = useSlots();\r\nconst props = defineProps(selectProps);\r\nconst emit = defineEmits(selectEmits);\r\n// 重发el的事件\r\nconst elEvents = getGmEvent(elSelectEmits, emit);\r\n\r\nconst elRef = ref();\r\nconst exposeNames = ['focus', 'blur'] as const;\r\nconst { exposeFns } = getGmExports(elRef, exposeNames);\r\n\r\ndefineExpose({\r\n ...exposeFns,\r\n});\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.circular {\r\n animation: loading-rotate 2s linear infinite;\r\n}\r\n.path {\r\n animation: loading-dash 1.5s ease-in-out infinite;\r\n stroke-dasharray: 90, 150;\r\n stroke-dashoffset: 0;\r\n stroke: var(--el-color-primary);\r\n stroke-linecap: round;\r\n}\r\n@keyframes loading-rotate {\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n@keyframes loading-dash {\r\n 0% {\r\n stroke-dasharray: 1, 200;\r\n stroke-dashoffset: 0;\r\n }\r\n 50% {\r\n stroke-dasharray: 90, 150;\r\n stroke-dashoffset: -40px;\r\n }\r\n 100% {\r\n stroke-dasharray: 90, 150;\r\n stroke-dashoffset: -120px;\r\n }\r\n}\r\n</style>\r\n"],"names":["useSlots","getGmEvent","elSelectEmits","ref","getGmExports"],"mappings":";;;;;;;;;;;;;;;;;;AAyCA,IAAA,MAAM,QAAQA,YAAS,EAAA,CAAA;AACvB,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,MAAA,QAAA,GAAWC,gBAAW,CAAAC,oBAAA,EAAe,IAAI,CAAA,CAAA;AAE/C,IAAA,MAAM,QAAQC,OAAI,EAAA,CAAA;AAClB,IAAM,MAAA,WAAA,GAAc,CAAC,OAAA,EAAS,MAAM,CAAA,CAAA;AACpC,IAAA,MAAM,EAAE,SAAA,EAAc,GAAAC,sBAAA,CAAa,OAAO,WAAW,CAAA,CAAA;AAErD,IAAa,QAAA,CAAA;AAAA,MACX,GAAG,SAAA;AAAA,KACJ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var undefined$1 = undefined;
6
+
7
+ exports.default = undefined$1;
8
+ //# sourceMappingURL=Select.vue3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -468,6 +468,7 @@ export declare const GmSelect: import("../../../../utils").SFCWithInstall<{
468
468
  empty?(_: {}): any;
469
469
  tag?(_: {}): any;
470
470
  loading?(_: {}): any;
471
+ label?(_: any): any;
471
472
  };
472
473
  })> & Record<string, any>;
473
474
  export type SelectInstance = InstanceType<typeof Select>;
@@ -8,6 +8,10 @@ declare const _default: import("vue").DefineComponent<{
8
8
  type: StringConstructor;
9
9
  required: true;
10
10
  };
11
+ loading: {
12
+ type: BooleanConstructor;
13
+ default: boolean;
14
+ };
11
15
  multiple: {
12
16
  type: BooleanConstructor;
13
17
  default: boolean;
@@ -45,6 +49,10 @@ declare const _default: import("vue").DefineComponent<{
45
49
  type: StringConstructor;
46
50
  required: true;
47
51
  };
52
+ loading: {
53
+ type: BooleanConstructor;
54
+ default: boolean;
55
+ };
48
56
  multiple: {
49
57
  type: BooleanConstructor;
50
58
  default: boolean;
@@ -75,6 +83,7 @@ declare const _default: import("vue").DefineComponent<{
75
83
  }, {
76
84
  options: import("../../..").SelectOptionsOptionType[];
77
85
  disabled: boolean;
86
+ loading: boolean;
78
87
  label: string;
79
88
  multiple: boolean;
80
89
  optionLabel: string;
@@ -41,11 +41,12 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
41
41
  disabled: _ctx.disabled,
42
42
  options: _ctx.options,
43
43
  labelKey: _ctx.labelKey,
44
+ loading: _ctx.loading,
44
45
  optionLabel: _ctx.optionLabel,
45
46
  optionValue: _ctx.optionValue,
46
47
  class: "gm-w-full",
47
48
  onChange: _cache[1] || (_cache[1] = ($event) => emit("change", $event))
48
- }, null, 8, ["modelValue", "placeholder", "multiple", "disabled", "options", "labelKey", "optionLabel", "optionValue"])
49
+ }, null, 8, ["modelValue", "placeholder", "multiple", "disabled", "options", "labelKey", "loading", "optionLabel", "optionValue"])
49
50
  ]),
50
51
  _: 1
51
52
  /* STABLE */
@@ -1 +1 @@
1
- {"version":3,"file":"SearchFormSelect.vue2.js","sources":["../../../../../../../../../packages/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue"],"sourcesContent":["<template>\r\n <gm-form-item :prop=\"prop\" class=\"\">\r\n <gm-select-options\r\n v-model=\"modelValue\"\r\n :placeholder=\"label\"\r\n :multiple=\"multiple\"\r\n filterable\r\n clearable\r\n collapse-tags\r\n collapse-tags-tooltip\r\n :disabled=\"disabled\"\r\n :options=\"options\"\r\n :labelKey=\"labelKey\"\r\n :optionLabel=\"optionLabel\"\r\n :optionValue=\"optionValue\"\r\n class=\"gm-w-full\"\r\n @change=\"emit('change', $event)\"\r\n />\r\n </gm-form-item>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { useWatchModelChange } from '../../composables/useWatchModelChange';\r\nimport { SearchFormSelectName, searchFormSelectEmits, searchFormSelectProps } from './searchFormSelect';\r\nimport type { SelectProps } from '@giime/components/src/base/select';\r\n\r\ndefineOptions({\r\n name: SearchFormSelectName,\r\n});\r\nconst props = defineProps(searchFormSelectProps);\r\nconst modelValue = defineModel<SelectProps['modelValue'] | undefined>();\r\n\r\nconst emit = defineEmits(searchFormSelectEmits);\r\nuseWatchModelChange(modelValue, { prop: props.prop });\r\n</script>\r\n"],"names":["_useModel","useWatchModelChange"],"mappings":";;;;;;;;;;;;;;;;;;;AA4BA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAM,MAAA,UAAA,GAAaA,YAAmD,CAAA,OAAA,EAAA,YAAA,CAAA,CAAA;AAEtE,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AACb,IAAAC,uCAAA,CAAoB,UAAY,EAAA,EAAE,IAAM,EAAA,KAAA,CAAM,MAAM,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SearchFormSelect.vue2.js","sources":["../../../../../../../../../packages/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue"],"sourcesContent":["<template>\r\n <gm-form-item :prop=\"prop\" class=\"\">\r\n <gm-select-options\r\n v-model=\"modelValue\"\r\n :placeholder=\"label\"\r\n :multiple=\"multiple\"\r\n filterable\r\n clearable\r\n collapse-tags\r\n collapse-tags-tooltip\r\n :disabled=\"disabled\"\r\n :options=\"options\"\r\n :labelKey=\"labelKey\"\r\n :loading=\"loading\"\r\n :optionLabel=\"optionLabel\"\r\n :optionValue=\"optionValue\"\r\n class=\"gm-w-full\"\r\n @change=\"emit('change', $event)\"\r\n />\r\n </gm-form-item>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { useWatchModelChange } from '../../composables/useWatchModelChange';\r\nimport { SearchFormSelectName, searchFormSelectEmits, searchFormSelectProps } from './searchFormSelect';\r\nimport type { SelectProps } from '@giime/components/src/base/select';\r\n\r\ndefineOptions({\r\n name: SearchFormSelectName,\r\n});\r\nconst props = defineProps(searchFormSelectProps);\r\nconst modelValue = defineModel<SelectProps['modelValue'] | undefined>();\r\n\r\nconst emit = defineEmits(searchFormSelectEmits);\r\nuseWatchModelChange(modelValue, { prop: props.prop });\r\n</script>\r\n"],"names":["_useModel","useWatchModelChange"],"mappings":";;;;;;;;;;;;;;;;;;;AA6BA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAM,MAAA,UAAA,GAAaA,YAAmD,CAAA,OAAA,EAAA,YAAA,CAAA,CAAA;AAEtE,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AACb,IAAAC,uCAAA,CAAoB,UAAY,EAAA,EAAE,IAAM,EAAA,KAAA,CAAM,MAAM,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,6 +9,10 @@ export declare const GmSearchFormSelect: import("../../../../../../utils").SFCWi
9
9
  type: StringConstructor;
10
10
  required: true;
11
11
  };
12
+ loading: {
13
+ type: BooleanConstructor;
14
+ default: boolean;
15
+ };
12
16
  multiple: {
13
17
  type: BooleanConstructor;
14
18
  default: boolean;
@@ -46,6 +50,10 @@ export declare const GmSearchFormSelect: import("../../../../../../utils").SFCWi
46
50
  type: StringConstructor;
47
51
  required: true;
48
52
  };
53
+ loading: {
54
+ type: BooleanConstructor;
55
+ default: boolean;
56
+ };
49
57
  multiple: {
50
58
  type: BooleanConstructor;
51
59
  default: boolean;
@@ -76,6 +84,7 @@ export declare const GmSearchFormSelect: import("../../../../../../utils").SFCWi
76
84
  }, {
77
85
  options: import("../../../index.js").SelectOptionsOptionType[];
78
86
  disabled: boolean;
87
+ loading: boolean;
79
88
  label: string;
80
89
  multiple: boolean;
81
90
  optionLabel: string;
@@ -12,6 +12,10 @@ export declare const searchFormSelectProps: {
12
12
  type: StringConstructor;
13
13
  required: true;
14
14
  };
15
+ loading: {
16
+ type: BooleanConstructor;
17
+ default: boolean;
18
+ };
15
19
  multiple: {
16
20
  type: BooleanConstructor;
17
21
  default: boolean;
@@ -13,6 +13,10 @@ const searchFormSelectProps = {
13
13
  type: String,
14
14
  required: true
15
15
  },
16
+ loading: {
17
+ type: Boolean,
18
+ default: false
19
+ },
16
20
  multiple: {
17
21
  type: Boolean,
18
22
  default: false
@@ -1 +1 @@
1
- {"version":3,"file":"searchFormSelect.js","sources":["../../../../../../../../../packages/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.ts"],"sourcesContent":["import { selectOptionsProps } from '@giime/components/src/composite/selectOptions/selectOptions';\r\nimport { searchFormCommonProps } from '../common';\r\nimport type { OptionProps } from '@giime/components/src/base';\r\n// import type { PropType } from 'vue';\r\nexport interface SearchFormSelectPropsOption {\r\n label: OptionProps['label'];\r\n value: OptionProps['value'];\r\n}\r\nexport const searchFormSelectProps = {\r\n ...searchFormCommonProps,\r\n label: {\r\n type: String,\r\n default: '',\r\n },\r\n prop: {\r\n type: String,\r\n required: true as const,\r\n },\r\n multiple: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n options: selectOptionsProps.options,\r\n optionLabel: selectOptionsProps.optionLabel,\r\n // 自定义指定option中的value字段\r\n optionValue: selectOptionsProps.optionValue,\r\n labelKey: selectOptionsProps.labelKey,\r\n};\r\n\r\nexport const searchFormSelectEmits = {\r\n change: (...value: any[]) => !!value,\r\n};\r\nexport const SearchFormSelectName = 'GmSearchFormSelect';\r\n"],"names":["searchFormCommonProps","selectOptionsProps"],"mappings":";;;;;AAQO,MAAM,qBAAwB,GAAA;AAAA,EACnC,GAAGA,4BAAA;AAAA,EACH,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,SAASC,gCAAmB,CAAA,OAAA;AAAA,EAC5B,aAAaA,gCAAmB,CAAA,WAAA;AAAA;AAAA,EAEhC,aAAaA,gCAAmB,CAAA,WAAA;AAAA,EAChC,UAAUA,gCAAmB,CAAA,QAAA;AAC/B,EAAA;AAEO,MAAM,qBAAwB,GAAA;AAAA,EACnC,MAAQ,EAAA,CAAA,GAAI,KAAiB,KAAA,CAAC,CAAC,KAAA;AACjC,EAAA;AACO,MAAM,oBAAuB,GAAA;;;;;;"}
1
+ {"version":3,"file":"searchFormSelect.js","sources":["../../../../../../../../../packages/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.ts"],"sourcesContent":["import { selectOptionsProps } from '@giime/components/src/composite/selectOptions/selectOptions';\r\nimport { searchFormCommonProps } from '../common';\r\nimport type { OptionProps } from '@giime/components/src/base';\r\n// import type { PropType } from 'vue';\r\nexport interface SearchFormSelectPropsOption {\r\n label: OptionProps['label'];\r\n value: OptionProps['value'];\r\n}\r\nexport const searchFormSelectProps = {\r\n ...searchFormCommonProps,\r\n label: {\r\n type: String,\r\n default: '',\r\n },\r\n prop: {\r\n type: String,\r\n required: true as const,\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n multiple: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n options: selectOptionsProps.options,\r\n optionLabel: selectOptionsProps.optionLabel,\r\n // 自定义指定option中的value字段\r\n optionValue: selectOptionsProps.optionValue,\r\n labelKey: selectOptionsProps.labelKey,\r\n};\r\n\r\nexport const searchFormSelectEmits = {\r\n change: (...value: any[]) => !!value,\r\n};\r\nexport const SearchFormSelectName = 'GmSearchFormSelect';\r\n"],"names":["searchFormCommonProps","selectOptionsProps"],"mappings":";;;;;AAQO,MAAM,qBAAwB,GAAA;AAAA,EACnC,GAAGA,4BAAA;AAAA,EACH,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,SAASC,gCAAmB,CAAA,OAAA;AAAA,EAC5B,aAAaA,gCAAmB,CAAA,WAAA;AAAA;AAAA,EAEhC,aAAaA,gCAAmB,CAAA,WAAA;AAAA,EAChC,UAAUA,gCAAmB,CAAA,QAAA;AAC/B,EAAA;AAEO,MAAM,qBAAwB,GAAA;AAAA,EACnC,MAAQ,EAAA,CAAA,GAAI,KAAiB,KAAA,CAAC,CAAC,KAAA;AACjC,EAAA;AACO,MAAM,oBAAuB,GAAA;;;;;;"}
@@ -1,4 +1,4 @@
1
- declare const _default: import("vue").DefineComponent<{
1
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
2
2
  clearable: {
3
3
  type: BooleanConstructor;
4
4
  default: boolean;
@@ -237,5 +237,18 @@ declare const _default: import("vue").DefineComponent<{
237
237
  optionLabel: string;
238
238
  optionValue: string;
239
239
  labelKey: string | boolean;
240
- }, {}>;
240
+ }, {}>, {
241
+ header?(_: {}): any;
242
+ footer?(_: {}): any;
243
+ prefix?(_: {}): any;
244
+ empty?(_: {}): any;
245
+ tag?(_: {}): any;
246
+ loading?(_: {}): any;
247
+ label?(_: any): any;
248
+ }>;
241
249
  export default _default;
250
+ type __VLS_WithTemplateSlots<T, S> = T & {
251
+ new (): {
252
+ $slots: S;
253
+ };
254
+ };
@@ -19,6 +19,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
19
19
  const props = __props;
20
20
  const emit = __emit;
21
21
  const events = event.getGmEvent(selectOptions.selectOptionsEmits, emit);
22
+ const slots = vue.useSlots();
22
23
  const labelOptions = vue.computed(() => {
23
24
  return props.options.map((it, i) => {
24
25
  const res = {
@@ -41,7 +42,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
41
42
  return vue.openBlock(), vue.createBlock(
42
43
  _component_gm_select,
43
44
  vue.mergeProps(props, vue.toHandlers(vue.unref(events))),
44
- {
45
+ vue.createSlots({
45
46
  default: vue.withCtx(() => [
46
47
  (vue.openBlock(true), vue.createElementBlock(
47
48
  vue.Fragment,
@@ -57,11 +58,61 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
57
58
  /* KEYED_FRAGMENT */
58
59
  ))
59
60
  ]),
60
- _: 1
61
- /* STABLE */
62
- },
63
- 16
64
- /* FULL_PROPS */
61
+ _: 2
62
+ /* DYNAMIC */
63
+ }, [
64
+ vue.unref(slots).header ? {
65
+ name: "header",
66
+ fn: vue.withCtx(() => [
67
+ vue.renderSlot(_ctx.$slots, "header")
68
+ ]),
69
+ key: "0"
70
+ } : void 0,
71
+ vue.unref(slots).footer ? {
72
+ name: "footer",
73
+ fn: vue.withCtx(() => [
74
+ vue.renderSlot(_ctx.$slots, "footer")
75
+ ]),
76
+ key: "1"
77
+ } : void 0,
78
+ vue.unref(slots).prefix ? {
79
+ name: "prefix",
80
+ fn: vue.withCtx(() => [
81
+ vue.renderSlot(_ctx.$slots, "prefix")
82
+ ]),
83
+ key: "2"
84
+ } : void 0,
85
+ vue.unref(slots).empty ? {
86
+ name: "empty",
87
+ fn: vue.withCtx(() => [
88
+ vue.renderSlot(_ctx.$slots, "empty")
89
+ ]),
90
+ key: "3"
91
+ } : void 0,
92
+ vue.unref(slots).tag ? {
93
+ name: "tag",
94
+ fn: vue.withCtx(() => [
95
+ vue.renderSlot(_ctx.$slots, "tag")
96
+ ]),
97
+ key: "4"
98
+ } : void 0,
99
+ vue.unref(slots).loading ? {
100
+ name: "loading",
101
+ fn: vue.withCtx(() => [
102
+ vue.renderSlot(_ctx.$slots, "loading")
103
+ ]),
104
+ key: "5"
105
+ } : void 0,
106
+ vue.unref(slots).label ? {
107
+ name: "label",
108
+ fn: vue.withCtx((slotValue) => [
109
+ vue.renderSlot(_ctx.$slots, "label", vue.normalizeProps(vue.guardReactiveProps(slotValue)))
110
+ ]),
111
+ key: "6"
112
+ } : void 0
113
+ ]),
114
+ 1040
115
+ /* FULL_PROPS, DYNAMIC_SLOTS */
65
116
  );
66
117
  };
67
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SelectOptions.vue2.js","sources":["../../../../../../../packages/components/src/composite/selectOptions/SelectOptions.vue"],"sourcesContent":["<template>\r\n <gm-select v-bind=\"props\" v-on=\"events\">\r\n <gm-option v-for=\"(item, index) in labelOptions\" :key=\"index\" :label=\"item.label\" :value=\"item.value\" />\r\n </gm-select>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { computed } from 'vue';\r\nimport { getGmEvent } from '@giime/utils';\r\nimport { isString } from '@giime/utils/src/is';\r\nimport { selectOptionsEmits, selectOptionsProps } from './selectOptions';\r\ndefineOptions({\r\n name: 'GmSelectOptions',\r\n});\r\nconst props = defineProps(selectOptionsProps);\r\nconst emit = defineEmits(selectOptionsEmits);\r\nconst events = getGmEvent(selectOptionsEmits, emit);\r\n\r\nconst labelOptions = computed(() => {\r\n return props.options.map((it, i) => {\r\n const res = {\r\n label: it[props.optionLabel],\r\n value: it[props.optionValue],\r\n };\r\n if (props.labelKey === true) {\r\n res.label = `${it.id}. ${res.label}`;\r\n } else if (props.labelKey === 'index') {\r\n res.label = `${i + 1}. ${res.label}`;\r\n } else if (isString(props.labelKey) && Object.prototype.hasOwnProperty.call(it, props.labelKey)) {\r\n res.label = `${it[props.labelKey]}. ${res.label}`;\r\n }\r\n return res;\r\n });\r\n});\r\n</script>\r\n"],"names":["getGmEvent","selectOptionsEmits","computed","isString"],"mappings":";;;;;;;;;;;;;;;;;;AAaA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AACb,IAAM,MAAA,MAAA,GAASA,gBAAW,CAAAC,gCAAA,EAAoB,IAAI,CAAA,CAAA;AAElD,IAAM,MAAA,YAAA,GAAeC,aAAS,MAAM;AAClC,MAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,IAAI,CAAM,KAAA;AAClC,QAAA,MAAM,GAAM,GAAA;AAAA,UACV,KAAA,EAAO,EAAG,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,UAC3B,KAAA,EAAO,EAAG,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,SAC7B,CAAA;AACA,QAAI,IAAA,KAAA,CAAM,aAAa,IAAM,EAAA;AAC3B,UAAA,GAAA,CAAI,QAAQ,CAAG,EAAA,EAAA,CAAG,EAAE,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACpC,MAAA,IAAW,KAAM,CAAA,QAAA,KAAa,OAAS,EAAA;AACrC,UAAA,GAAA,CAAI,QAAQ,CAAG,EAAA,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACzB,MAAA,IAAAC,WAAA,CAAS,KAAM,CAAA,QAAQ,CAAK,IAAA,MAAA,CAAO,SAAU,CAAA,cAAA,CAAe,IAAK,CAAA,EAAA,EAAI,KAAM,CAAA,QAAQ,CAAG,EAAA;AAC/F,UAAI,GAAA,CAAA,KAAA,GAAQ,GAAG,EAAG,CAAA,KAAA,CAAM,QAAQ,CAAC,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACjD;AACA,QAAO,OAAA,GAAA,CAAA;AAAA,OACR,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SelectOptions.vue2.js","sources":["../../../../../../../packages/components/src/composite/selectOptions/SelectOptions.vue"],"sourcesContent":["<template>\r\n <gm-select v-bind=\"props\" v-on=\"events\">\r\n <gm-option v-for=\"(item, index) in labelOptions\" :key=\"index\" :label=\"item.label\" :value=\"item.value\" />\r\n <template v-if=\"slots.header\" #header>\r\n <slot name=\"header\" />\r\n </template>\r\n <template v-if=\"slots.footer\" #footer>\r\n <slot name=\"footer\" />\r\n </template>\r\n <template v-if=\"slots.prefix\" #prefix>\r\n <slot name=\"prefix\" />\r\n </template>\r\n <template v-if=\"slots.empty\" #empty>\r\n <slot name=\"empty\" />\r\n </template>\r\n <template v-if=\"slots.tag\" #tag>\r\n <slot name=\"tag\" />\r\n </template>\r\n <template v-if=\"slots.loading\" #loading>\r\n <slot name=\"loading\" />\r\n </template>\r\n <template v-if=\"slots.label\" #label=\"slotValue\">\r\n <slot name=\"label\" v-bind=\"slotValue\" />\r\n </template>\r\n </gm-select>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { computed, useSlots } from 'vue';\r\nimport { getGmEvent } from '@giime/utils';\r\nimport { isString } from '@giime/utils/src/is';\r\nimport { selectOptionsEmits, selectOptionsProps } from './selectOptions';\r\ndefineOptions({\r\n name: 'GmSelectOptions',\r\n});\r\nconst props = defineProps(selectOptionsProps);\r\nconst emit = defineEmits(selectOptionsEmits);\r\nconst events = getGmEvent(selectOptionsEmits, emit);\r\nconst slots = useSlots();\r\n\r\nconst labelOptions = computed(() => {\r\n return props.options.map((it, i) => {\r\n const res = {\r\n label: it[props.optionLabel],\r\n value: it[props.optionValue],\r\n };\r\n if (props.labelKey === true) {\r\n res.label = `${it.id}. ${res.label}`;\r\n } else if (props.labelKey === 'index') {\r\n res.label = `${i + 1}. ${res.label}`;\r\n } else if (isString(props.labelKey) && Object.prototype.hasOwnProperty.call(it, props.labelKey)) {\r\n res.label = `${it[props.labelKey]}. ${res.label}`;\r\n }\r\n return res;\r\n });\r\n});\r\n</script>\r\n"],"names":["getGmEvent","selectOptionsEmits","useSlots","computed","isString"],"mappings":";;;;;;;;;;;;;;;;;;AAkCA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AACb,IAAM,MAAA,MAAA,GAASA,gBAAW,CAAAC,gCAAA,EAAoB,IAAI,CAAA,CAAA;AAClD,IAAA,MAAM,QAAQC,YAAS,EAAA,CAAA;AAEvB,IAAM,MAAA,YAAA,GAAeC,aAAS,MAAM;AAClC,MAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,IAAI,CAAM,KAAA;AAClC,QAAA,MAAM,GAAM,GAAA;AAAA,UACV,KAAA,EAAO,EAAG,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,UAC3B,KAAA,EAAO,EAAG,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,SAC7B,CAAA;AACA,QAAI,IAAA,KAAA,CAAM,aAAa,IAAM,EAAA;AAC3B,UAAA,GAAA,CAAI,QAAQ,CAAG,EAAA,EAAA,CAAG,EAAE,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACpC,MAAA,IAAW,KAAM,CAAA,QAAA,KAAa,OAAS,EAAA;AACrC,UAAA,GAAA,CAAI,QAAQ,CAAG,EAAA,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACzB,MAAA,IAAAC,WAAA,CAAS,KAAM,CAAA,QAAQ,CAAK,IAAA,MAAA,CAAO,SAAU,CAAA,cAAA,CAAe,IAAK,CAAA,EAAA,EAAI,KAAM,CAAA,QAAQ,CAAG,EAAA;AAC/F,UAAI,GAAA,CAAA,KAAA,GAAQ,GAAG,EAAG,CAAA,KAAA,CAAM,QAAQ,CAAC,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACjD;AACA,QAAO,OAAA,GAAA,CAAA;AAAA,OACR,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}