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.js","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","GmNotification","h","ref","res","GmMessage"],"mappings":";;;;;;;;;AAiBO,MAAM,cAAc,MAAM;AAC/B,EAAM,MAAA,cAAA,GAAiB,CAAC,GAAgB,KAAA;AACtC,IAAM,MAAA,QAAA,GAAW,GAAI,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,GAAI,EAAA,EAAG,KAAM,CAAA,GAAG,CAAE,CAAA,CAAC,CAAK,IAAA,MAAA,CAAA;AACxD,IAAO,OAAA,QAAA,CAAA;AAAA,GACT,CAAA;AAMA,EAAM,MAAA,aAAA,GAAgB,OAAO,GAAA,EAAa,OAA8B,KAAA;AACtE,IAAA,MAAM,QAAW,GAAA,OAAA,EAAS,QAAY,IAAA,cAAA,CAAe,GAAG,CAAA,CAAA;AACxD,IAAA,MAAM,QAAQA,OAAO,EAAA,CAAA;AACrB,IAAA,MAAM,YAAYC,oBAAe,CAAA;AAAA,MAC/B,KAAO,EAAA,oBAAA;AAAA,MACP,OAAA,EAASC,MAAE,KAAO,EAAA,EAAE,WAAW,KAAM,EAAA,EAAG,CAAC,CAAA,uCAAA,CAAW,CAAC,CAAA;AAAA,MACrD,QAAU,EAAA,CAAA;AAAA,KACX,CAAA,CAAA;AACD,IAAA,MAAM,cAAe,CAAA;AAAA,MACnB,GAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAM,EAAA,KAAA;AAAA,KACP,CAAA,CAAA;AACD,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAAA,GAClB,CAAA;AAMA,EAAM,MAAA,aAAA,GAAgB,OAAO,GAAA,EAA8B,OAA8B,KAAA;AACvF,IAAA,IAAI,sBAA0B,GAAA,CAAA,GAAA,EAAK,OAAU,GAAA,qBAAqB,CAAK,IAAA,GAAA,EAAK,OAAU,GAAA,qBAAqB,CAAI,GAAA,KAAA,CAAM,WAAW,CAAA,CAAE,CAAC,CAAA,CAAA;AACnI,IAAI,IAAA;AACF,MAAA,sBAAA,GAAyB,mBAAmB,sBAAsB,CAAA,CAAA;AAAA,KAC5D,CAAA,MAAA;AAAA,KAAC;AACT,IAAM,MAAA,QAAA,GAAW,OAAS,EAAA,QAAA,IAAY,sBAA0B,IAAA,MAAA,CAAA;AAChE,IAAM,MAAA,OAAA,GAAU,MAAM,GAAI,CAAA,IAAA,CAAA;AAC1B,IAAA,MAAM,QAAQF,OAAO,EAAA,CAAA;AACrB,IAAA,MAAM,YAAYC,oBAAe,CAAA;AAAA,MAC/B,KAAO,EAAA,oBAAA;AAAA,MACP,OAAA,EAASC,MAAE,KAAO,EAAA,EAAE,WAAW,KAAM,EAAA,EAAG,CAAC,CAAA,uCAAA,CAAW,CAAC,CAAA;AAAA,MACrD,QAAU,EAAA,CAAA;AAAA,KACX,CAAA,CAAA;AAED,IAAA,MAAM,IAAO,GAAA,IAAI,IAAK,CAAA,CAAC,OAAO,CAAC,CAAA,CAAA;AAC/B,IAAA,MAAM,OAAU,GAAA,MAAA,CAAO,GAAI,CAAA,eAAA,CAAgB,IAAI,CAAA,CAAA;AAC/C,IAAA,MAAM,cAAe,CAAA;AAAA,MACnB,GAAK,EAAA,OAAA;AAAA,MACL,QAAA;AAAA,MACA,IAAM,EAAA,KAAA;AAAA,KACP,CAAA,CAAA;AACD,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAAA,GAClB,CAAA;AAMA,EAAM,MAAA,aAAA,GAAgB,OAAO,QAAA,EAAgC,QAAqB,KAAA;AAChF,IAAI,IAAA;AACF,MAAA,MAAM,mBAAsB,GAAA,CAAA,OAAA,EAAU,IAAK,CAAA,GAAA,EAAK,CAAA,CAAA,CAAA;AAChD,MAAM,MAAA,aAAA,GAAgBC,QAAI,CAAC,CAAA,CAAA;AAC3B,MAAA,MAAM,MAAM,QAAS,CAAA,MAAA,CAAA;AACrB,MAAA,MAAM,YAAYF,oBAAe,CAAA;AAAA,QAC/B,KAAO,EAAA,oBAAA;AAAA,QACP,SAASC,KAAE,CAAA,KAAA,EAAO,CAACA,KAAE,CAAA,KAAA,EAAO,EAAE,SAAW,EAAA,mBAAA,IAAuB,CAAC,CAAA,0CAAA,EAAU,GAAG,CAAW,gDAAA,EAAA,aAAA,CAAc,KAAK,CAAE,CAAA,CAAC,CAAC,CAAC,CAAA;AAAA,QACjH,QAAU,EAAA,CAAA;AAAA,OACX,CAAA,CAAA;AAED,MAAM,MAAA,WAAA,GAAc,IAAI,KAAM,EAAA,CAAA;AAC9B,MAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,GAAA,EAAK,CAAK,EAAA,EAAA;AAC5B,QAAM,MAAA,WAAA,GAAc,SAAS,CAAC,CAAA,CAAA;AAE9B,QAAA,MAAM,eAAkB,GAAA;AAAA,UACtB,KAAK,WAAY,CAAA,GAAA;AAAA,UACjB,QAAU,EAAA,WAAA,CAAY,QAAY,IAAA,cAAA,CAAe,YAAY,GAAG,CAAA;AAAA,UAChE,KAAO,EAAA,IAAA;AAAA,SACT,CAAA;AACA,QAAe,cAAA,CAAA,eAAe,CAAE,CAAA,IAAA,CAAK,CAAO,GAAA,KAAA;AAC1C,UAAY,WAAA,CAAA,IAAA,CAAK,eAAgB,CAAA,QAAA,EAAU,GAAG,CAAA,CAAA;AAC9C,UAAc,aAAA,CAAA,KAAA,EAAA,CAAA;AACd,UAAA,kBAAA,CAAmB,qBAAqB,CAAU,0CAAA,EAAA,GAAG,CAAW,gDAAA,EAAA,aAAA,CAAc,KAAK,CAAE,CAAA,CAAA,CAAA;AACrF,UAAI,IAAA,aAAA,CAAc,SAAS,GAAK,EAAA;AAC9B,YAAA,kBAAA,CAAmB,qBAAqB,CAAS,2BAAA,CAAA,CAAA,CAAA;AAEjD,YACG,WAAA,CAAA,aAAA,CAAc,EAAE,IAAM,EAAA,MAAA,EAAQ,CAC9B,CAAA,IAAA,CAAK,CAAAE,IAAO,KAAA;AACX,cAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAEhB,cAAA,MAAM,OAAU,GAAA,MAAA,CAAO,GAAI,CAAA,eAAA,CAAgBA,IAAG,CAAA,CAAA;AAE9C,cAAc,aAAA,CAAA,OAAA,EAAS,EAAE,QAAA,EAAU,CAAA,CAAA;AAAA,aACpC,CACA,CAAA,KAAA,CAAM,CAAS,KAAA,KAAA;AACd,cAAA,OAAA,CAAQ,MAAM,KAAK,CAAA,CAAA;AAAA,aACpB,CAAA,CAAA;AAAA,WACL;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,aACO,KAAO,EAAA;AACd,MAAA,OAAA,CAAQ,MAAM,KAAK,CAAA,CAAA;AAAA,KACrB;AAAA,GACF,CAAA;AACA,EAAM,MAAA,cAAA,GAAiB,CAAC,OAA+E,KAAA;AACrG,IAAA,OAAO,IAAI,OAAA,CAAc,CAAC,OAAA,EAAS,MAAW,KAAA;AAE5C,MAAM,MAAA,GAAA,GAAM,IAAI,cAAe,EAAA,CAAA;AAE/B,MAAA,GAAA,CAAI,IAAK,CAAA,KAAA,EAAO,OAAQ,CAAA,GAAA,EAAK,IAAI,CAAA,CAAA;AACjC,MAAA,GAAA,CAAI,YAAe,GAAA,MAAA,CAAA;AAGnB,MAAI,GAAA,CAAA,UAAA,GAAa,SAAU,KAAO,EAAA;AAChC,QAAA,IAAI,MAAM,gBAAkB,EAAA;AAC1B,UAAA,MAAM,kBAAkB,IAAK,CAAA,KAAA,CAAO,MAAM,MAAS,GAAA,KAAA,CAAM,QAAS,GAAG,CAAA,CAAA;AACrE,UAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,YAAA,kBAAA,CAAmB,OAAQ,CAAA,IAAA,EAAM,CAAU,qCAAA,EAAA,eAAe,CAAG,CAAA,CAAA,CAAA,CAAA;AAAA,WAC/D;AAAA,SACF;AAAA,OACF,CAAA;AAGA,MAAI,GAAA,CAAA,MAAA,GAAS,SAAU,CAAG,EAAA;AACxB,QAAA,MAAM,cAAc,CAAE,CAAA,MAAA,CAAA;AACtB,QAAA,IAAI,CAAC,GAAK,EAAA,GAAG,EAAE,QAAS,CAAA,WAAA,CAAY,MAAM,CAAG,EAAA;AAC3C,UAAA,MAAM,OAAO,WAAY,CAAA,QAAA,CAAA;AAEzB,UAAI,IAAA,CAAC,QAAQ,KAAO,EAAA;AAClB,YAAU,SAAA,CAAA,MAAA,CAAO,IAAM,EAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;AACvC,YAAeH,oBAAA,CAAA;AAAA,cACb,IAAM,EAAA,SAAA;AAAA,cACN,KAAO,EAAA,0BAAA;AAAA,cACP,OAAS,EAAA,0BAAA;AAAA,cACT,QAAU,EAAA,GAAA;AAAA,aACX,CAAA,CAAA;AAAA,WACH;AAEA,UAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,SACd;AAAA,OACF,CAAA;AAGA,MAAI,GAAA,CAAA,OAAA,GAAU,SAAU,CAAG,EAAA;AACzB,QAAAI,iBAAA,CAAU,MAAM,kDAAU,CAAA,CAAA;AAC1B,QAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAAA,OACV,CAAA;AAGA,MAAA,GAAA,CAAI,IAAK,EAAA,CAAA;AAAA,KACV,CAAA,CAAA;AAAA,GACH,CAAA;AACA,EAAO,OAAA,EAAE,aAAe,EAAA,aAAA,EAAe,aAAc,EAAA,CAAA;AACvD,EAAA;AAGA,MAAM,kBAAA,GAAqB,CAAC,SAAA,EAAmB,OAAoB,KAAA;AAEjE,EAAA,MAAM,UAAa,GAAA,QAAA,CAAS,sBAAuB,CAAA,SAAS,EAAE,CAAC,CAAA,CAAA;AAC/D,EAAA,IAAI,UAAY,EAAA;AACd,IAAA,UAAA,CAAW,SAAY,GAAA,OAAA,CAAA;AAAA,GACzB;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","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","GmNotification","h","ref","res","GmMessage"],"mappings":";;;;;;;;;AAiBO,MAAM,cAAc,MAAM;AAC/B,EAAM,MAAA,cAAA,GAAiB,CAAC,GAAgB,KAAA;AACtC,IAAM,MAAA,QAAA,GAAW,GAAI,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,GAAI,EAAA,EAAG,KAAM,CAAA,GAAG,CAAE,CAAA,CAAC,CAAK,IAAA,MAAA,CAAA;AACxD,IAAO,OAAA,QAAA,CAAA;AAAA,GACT,CAAA;AAMA,EAAM,MAAA,aAAA,GAAgB,OAAO,GAAA,EAAa,OAA8B,KAAA;AACtE,IAAA,MAAM,QAAW,GAAA,OAAA,EAAS,QAAY,IAAA,cAAA,CAAe,GAAG,CAAA,CAAA;AACxD,IAAA,MAAM,QAAQA,OAAO,EAAA,CAAA;AACrB,IAAA,MAAM,YAAYC,oBAAe,CAAA;AAAA,MAC/B,KAAO,EAAA,oBAAA;AAAA,MACP,OAAA,EAASC,MAAE,KAAO,EAAA,EAAE,WAAW,KAAM,EAAA,EAAG,CAAC,CAAA,uCAAA,CAAW,CAAC,CAAA;AAAA,MACrD,QAAU,EAAA,CAAA;AAAA,KACX,CAAA,CAAA;AACD,IAAA,MAAM,cAAe,CAAA;AAAA,MACnB,GAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAM,EAAA,KAAA;AAAA,KACP,CAAA,CAAA;AACD,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAAA,GAClB,CAAA;AAMA,EAAM,MAAA,aAAA,GAAgB,OAAO,GAAA,EAA8B,OAA8B,KAAA;AACvF,IAAA,IAAI,sBAA0B,GAAA,CAAA,GAAA,EAAK,OAAU,GAAA,qBAAqB,CAAK,IAAA,GAAA,EAAK,OAAU,GAAA,qBAAqB,CAAI,GAAA,KAAA,CAAM,WAAW,CAAA,CAAE,CAAC,CAAA,CAAA;AACnI,IAAI,IAAA;AACF,MAAA,sBAAA,GAAyB,mBAAmB,sBAAsB,CAAA,CAAA;AAAA,KAC5D,CAAA,MAAA;AAAA,KAAC;AACT,IAAM,MAAA,QAAA,GAAW,OAAS,EAAA,QAAA,IAAY,sBAA0B,IAAA,MAAA,CAAA;AAChE,IAAM,MAAA,OAAA,GAAU,MAAM,GAAI,CAAA,IAAA,CAAA;AAC1B,IAAA,MAAM,QAAQF,OAAO,EAAA,CAAA;AACrB,IAAA,MAAM,YAAYC,oBAAe,CAAA;AAAA,MAC/B,KAAO,EAAA,oBAAA;AAAA,MACP,OAAA,EAASC,MAAE,KAAO,EAAA,EAAE,WAAW,KAAM,EAAA,EAAG,CAAC,CAAA,uCAAA,CAAW,CAAC,CAAA;AAAA,MACrD,QAAU,EAAA,CAAA;AAAA,KACX,CAAA,CAAA;AAED,IAAA,MAAM,IAAO,GAAA,IAAI,IAAK,CAAA,CAAC,OAAO,CAAC,CAAA,CAAA;AAC/B,IAAA,MAAM,OAAU,GAAA,MAAA,CAAO,GAAI,CAAA,eAAA,CAAgB,IAAI,CAAA,CAAA;AAC/C,IAAA,MAAM,cAAe,CAAA;AAAA,MACnB,GAAK,EAAA,OAAA;AAAA,MACL,QAAA;AAAA,MACA,IAAM,EAAA,KAAA;AAAA,KACP,CAAA,CAAA;AACD,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAAA,GAClB,CAAA;AAMA,EAAM,MAAA,aAAA,GAAgB,OAAO,QAAA,EAAgC,QAAqB,KAAA;AAChF,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACtC,MAAA,MAAM,mBAAsB,GAAA,CAAA,OAAA,EAAU,IAAK,CAAA,GAAA,EAAK,CAAA,CAAA,CAAA;AAChD,MAAM,MAAA,aAAA,GAAgBC,QAAI,CAAC,CAAA,CAAA;AAC3B,MAAA,MAAM,MAAM,QAAS,CAAA,MAAA,CAAA;AACrB,MAAA,MAAM,YAAYF,oBAAe,CAAA;AAAA,QAC/B,KAAO,EAAA,oBAAA;AAAA,QACP,SAASC,KAAE,CAAA,KAAA,EAAO,CAACA,KAAE,CAAA,KAAA,EAAO,EAAE,SAAW,EAAA,mBAAA,IAAuB,CAAC,CAAA,0CAAA,EAAU,GAAG,CAAW,gDAAA,EAAA,aAAA,CAAc,KAAK,CAAE,CAAA,CAAC,CAAC,CAAC,CAAA;AAAA,QACjH,QAAU,EAAA,CAAA;AAAA,OACX,CAAA,CAAA;AAED,MAAM,MAAA,WAAA,GAAc,IAAI,KAAM,EAAA,CAAA;AAC9B,MAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,GAAA,EAAK,CAAK,EAAA,EAAA;AAC5B,QAAM,MAAA,WAAA,GAAc,SAAS,CAAC,CAAA,CAAA;AAE9B,QAAA,MAAM,eAAkB,GAAA;AAAA,UACtB,KAAK,WAAY,CAAA,GAAA;AAAA,UACjB,QAAU,EAAA,WAAA,CAAY,QAAY,IAAA,cAAA,CAAe,YAAY,GAAG,CAAA;AAAA,UAChE,KAAO,EAAA,IAAA;AAAA,SACT,CAAA;AACA,QAAe,cAAA,CAAA,eAAe,CAAE,CAAA,IAAA,CAAK,CAAO,GAAA,KAAA;AAC1C,UAAY,WAAA,CAAA,IAAA,CAAK,eAAgB,CAAA,QAAA,EAAU,GAAG,CAAA,CAAA;AAC9C,UAAc,aAAA,CAAA,KAAA,EAAA,CAAA;AACd,UAAA,kBAAA,CAAmB,qBAAqB,CAAU,0CAAA,EAAA,GAAG,CAAW,gDAAA,EAAA,aAAA,CAAc,KAAK,CAAE,CAAA,CAAA,CAAA;AACrF,UAAI,IAAA,aAAA,CAAc,SAAS,GAAK,EAAA;AAC9B,YAAA,kBAAA,CAAmB,qBAAqB,CAAS,2BAAA,CAAA,CAAA,CAAA;AACjD,YACG,WAAA,CAAA,aAAA,CAAc,EAAE,IAAM,EAAA,MAAA,EAAQ,CAC9B,CAAA,IAAA,CAAK,OAAME,IAAO,KAAA;AACjB,cAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAEhB,cAAA,MAAM,OAAU,GAAA,MAAA,CAAO,GAAI,CAAA,eAAA,CAAgBA,IAAG,CAAA,CAAA;AAE9C,cAAA,MAAM,aAAc,CAAA,OAAA,EAAS,EAAE,QAAA,EAAU,CAAA,CAAA;AACzC,cAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,aACb,CACA,CAAA,KAAA,CAAM,CAAS,KAAA,KAAA;AACd,cAAQ,OAAA,CAAA,KAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AAC5B,cAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,aACb,CAAA,CAAA;AAAA,WACL;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,KACD,CAAA,CAAA;AAAA,GACH,CAAA;AACA,EAAM,MAAA,cAAA,GAAiB,CAAC,OAA+E,KAAA;AACrG,IAAA,OAAO,IAAI,OAAA,CAAc,CAAC,OAAA,EAAS,MAAW,KAAA;AAE5C,MAAM,MAAA,GAAA,GAAM,IAAI,cAAe,EAAA,CAAA;AAE/B,MAAA,GAAA,CAAI,IAAK,CAAA,KAAA,EAAO,OAAQ,CAAA,GAAA,EAAK,IAAI,CAAA,CAAA;AACjC,MAAA,GAAA,CAAI,YAAe,GAAA,MAAA,CAAA;AAGnB,MAAI,GAAA,CAAA,UAAA,GAAa,SAAU,KAAO,EAAA;AAChC,QAAA,IAAI,MAAM,gBAAkB,EAAA;AAC1B,UAAA,MAAM,kBAAkB,IAAK,CAAA,KAAA,CAAO,MAAM,MAAS,GAAA,KAAA,CAAM,QAAS,GAAG,CAAA,CAAA;AACrE,UAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,YAAA,kBAAA,CAAmB,OAAQ,CAAA,IAAA,EAAM,CAAU,qCAAA,EAAA,eAAe,CAAG,CAAA,CAAA,CAAA,CAAA;AAAA,WAC/D;AAAA,SACF;AAAA,OACF,CAAA;AAGA,MAAI,GAAA,CAAA,MAAA,GAAS,SAAU,CAAG,EAAA;AACxB,QAAA,MAAM,cAAc,CAAE,CAAA,MAAA,CAAA;AACtB,QAAA,IAAI,CAAC,GAAK,EAAA,GAAG,EAAE,QAAS,CAAA,WAAA,CAAY,MAAM,CAAG,EAAA;AAC3C,UAAA,MAAM,OAAO,WAAY,CAAA,QAAA,CAAA;AAEzB,UAAI,IAAA,CAAC,QAAQ,KAAO,EAAA;AAClB,YAAU,SAAA,CAAA,MAAA,CAAO,IAAM,EAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;AACvC,YAAeH,oBAAA,CAAA;AAAA,cACb,IAAM,EAAA,SAAA;AAAA,cACN,KAAO,EAAA,0BAAA;AAAA,cACP,OAAS,EAAA,0BAAA;AAAA,cACT,QAAU,EAAA,GAAA;AAAA,aACX,CAAA,CAAA;AAAA,WACH;AAEA,UAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,SACd;AAAA,OACF,CAAA;AAGA,MAAI,GAAA,CAAA,OAAA,GAAU,SAAU,CAAG,EAAA;AACzB,QAAAI,iBAAA,CAAU,MAAM,kDAAU,CAAA,CAAA;AAC1B,QAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAAA,OACV,CAAA;AAGA,MAAA,GAAA,CAAI,IAAK,EAAA,CAAA;AAAA,KACV,CAAA,CAAA;AAAA,GACH,CAAA;AACA,EAAO,OAAA,EAAE,aAAe,EAAA,aAAA,EAAe,aAAc,EAAA,CAAA;AACvD,EAAA;AAGA,MAAM,kBAAA,GAAqB,CAAC,SAAA,EAAmB,OAAoB,KAAA;AAEjE,EAAA,MAAM,UAAa,GAAA,QAAA,CAAS,sBAAuB,CAAA,SAAS,EAAE,CAAC,CAAA,CAAA;AAC/D,EAAA,IAAI,UAAY,EAAA;AACd,IAAA,UAAA,CAAW,SAAY,GAAA,OAAA,CAAA;AAAA,GACzB;AACF,CAAA;;;;"}
@@ -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.js","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","createEventHook","watch"],"mappings":";;;;;;AAKO,MAAM,YAAe,GAAA,CAAI,GAAkB,EAAA,YAAA,EAAmC,OAA4B,KAAA;AAC/G,EAAM,MAAA,EAAE,MAAM,UAAY,EAAA,GAAA,KAAQA,2BAAc,CAAA,GAAA,EAAK,cAAc,OAAO,CAAA,CAAA;AAC1E,EAAA,MAAM,gBAAgBC,oBAAgB,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,EAAAC,SAAA,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.js","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","createEventHook","watch"],"mappings":";;;;;;AASO,MAAM,YAAe,GAAA,CAAI,GAAkB,EAAA,YAAA,EAAmC,OAA4B,KAAA;AAC/G,EAAM,MAAA,EAAE,MAAM,UAAY,EAAA,GAAA,KAAQA,2BAAc,CAAA,GAAA,EAAK,cAAc,OAAO,CAAA,CAAA;AAC1E,EAAA,MAAM,gBAAgBC,oBAAgB,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,EAAAC,SAAA,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/lib/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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "giime",
3
- "version": "0.3.14",
3
+ "version": "0.3.16",
4
4
  "description": "A Component Library for Vue 3",
5
5
  "keywords": [
6
6
  "giime",