giime 0.0.16 → 0.0.18

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.
@@ -1,7 +1,8 @@
1
- import { createElementVNode, defineComponent, mergeModels, useModel, ref, computed, watch, onMounted, resolveComponent, openBlock, createBlock, withCtx, createVNode, createTextVNode, toDisplayString, unref } from 'vue';
1
+ import { createElementVNode, defineComponent, mergeModels, useModel, ref, computed, watch, onMounted, resolveComponent, openBlock, createBlock, withCtx, createVNode, createTextVNode, unref, toDisplayString } from 'vue';
2
2
  import '../../../../../hooks/index.mjs';
3
3
  import { cloneDeep } from 'lodash-es';
4
4
  import { useCloned } from '@vueuse/core';
5
+ import { InfoFilled } from '@element-plus/icons-vue';
5
6
  import { operateButtonFormProps } from './operateButtonForm.mjs';
6
7
  import { useCustomSettingsStore } from '../../../../../hooks/store/useCustomSettings/index.mjs';
7
8
 
@@ -133,7 +134,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
133
134
  isInited
134
135
  });
135
136
  return (_ctx, _cache) => {
136
- const _component_i_ep_info_filled = resolveComponent("i-ep-info-filled");
137
137
  const _component_gm_icon = resolveComponent("gm-icon");
138
138
  const _component_gm_checkbox = resolveComponent("gm-checkbox");
139
139
  const _component_gm_table_column = resolveComponent("gm-table-column");
@@ -210,7 +210,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
210
210
  createElementVNode("div", _hoisted_2, [
211
211
  createVNode(_component_gm_icon, null, {
212
212
  default: withCtx(() => [
213
- createVNode(_component_i_ep_info_filled)
213
+ createVNode(unref(InfoFilled))
214
214
  ]),
215
215
  _: 1
216
216
  /* STABLE */
@@ -1 +1 @@
1
- {"version":3,"file":"OperateButtonForm.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义按钮\" direction=\"rtl\" size=\"500px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-leading-[40px] gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center\">\r\n <gm-icon><i-ep-info-filled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n <b class=\"gm-ml-3 gm-text-orange-400\">点击按钮可修改当前按钮颜色!</b>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedCustomBtnList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: OperateButtonProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"按钮\">\r\n <template #default=\"{ row, $index }: { row: OperateButtonProps; $index: number }\">\r\n <gm-popover v-model:visible=\"popoverVisibles[$index]\" placement=\"bottom\" :width=\"330\" trigger=\"click\">\r\n <template #reference>\r\n <gm-button :type=\"row.type || 'primary'\" link size=\"small\">\r\n {{ row.label }}\r\n </gm-button>\r\n </template>\r\n <div class=\"p-1\">\r\n <div class=\"text-[14px] gm-mb-2\">点击下列色块可修改按钮颜色</div>\r\n <gm-button type=\"primary\" size=\"small\" @click=\"setBtnType(row, $index, 'primary')\"> 蓝色 </gm-button>\r\n <gm-button type=\"success\" size=\"small\" @click=\"setBtnType(row, $index, 'success')\"> 绿色 </gm-button>\r\n <gm-button type=\"info\" size=\"small\" @click=\"setBtnType(row, $index, 'info')\"> 灰色 </gm-button>\r\n <gm-button type=\"warning\" size=\"small\" @click=\"setBtnType(row, $index, 'warning')\"> 橙色 </gm-button>\r\n <gm-button type=\"danger\" size=\"small\" @click=\"setBtnType(row, $index, 'danger')\"> 红色 </gm-button>\r\n </div>\r\n </gm-popover>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onSubmit\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { type CheckboxValueType } from 'element-plus';\r\nimport { operateButtonFormProps } from './operateButtonForm';\r\nimport type { OperateButtonProps } from '../operateButton';\r\n\r\ndefineOptions({\r\n name: 'GmOperateButtonForm',\r\n});\r\n/**\r\n * 抽屉显示\r\n */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n/**\r\n * 自定义按钮 props列表\r\n */\r\nconst customBtnPropsList = defineModel<OperateButtonProps[]>('customBtnPropsList', {\r\n required: true,\r\n});\r\n\r\nconst props = defineProps(operateButtonFormProps);\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedCustomBtnList } = useCloned(customBtnPropsList);\r\n\r\nconst defaultPropsList = computed(() => cloneDeep(props.customDefaultPropsList));\r\n// 按钮弹出框显示隐藏\r\nconst popoverVisibles = ref<boolean[]>(defaultPropsList.value.map(() => false));\r\n// 根据props列表 初始化popo显示隐藏\r\nwatch(defaultPropsList, () => {\r\n popoverVisibles.value = defaultPropsList.value.map(() => false);\r\n});\r\n\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedCustomBtnList.value = cloneDeep(customBtnPropsList.value);\r\n }\r\n});\r\n\r\nconst customSettingsValue = computed<OperateButtonProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\nconst updateOperate = () => {\r\n customBtnPropsList.value = clonedCustomBtnList.value;\r\n};\r\n\r\nconst initOperate = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedCustomBtnList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateOperate();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedCustomBtnList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedCustomBtnList.value.every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedCustomBtnList.value.some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedCustomBtnList.value.forEach(v => {\r\n v.isShow = Boolean(val);\r\n });\r\n};\r\n\r\n// 设置按钮颜色\r\nconst setBtnType = (item: OperateButtonProps, index: number, type: OperateButtonProps['type']) => {\r\n item.type = type;\r\n popoverVisibles.value[index] = false;\r\n};\r\n\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst onSubmit = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedCustomBtnList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n isShowDrawer.value = false;\r\n updateOperate();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\n// 重置\r\nconst onReset = () => {\r\n clonedCustomBtnList.value = cloneDeep(props.customDefaultPropsList);\r\n};\r\n\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n initOperate();\r\n});\r\ndefineExpose({\r\n isInited,\r\n});\r\n</script>\r\n"],"names":["_useModel"],"mappings":"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"}
1
+ {"version":3,"file":"OperateButtonForm.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义按钮\" direction=\"rtl\" size=\"500px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-leading-[40px] gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n <b class=\"gm-ml-3 gm-text-orange-400\">点击按钮可修改当前按钮颜色!</b>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedCustomBtnList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: OperateButtonProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"按钮\">\r\n <template #default=\"{ row, $index }: { row: OperateButtonProps; $index: number }\">\r\n <gm-popover v-model:visible=\"popoverVisibles[$index]\" placement=\"bottom\" :width=\"330\" trigger=\"click\">\r\n <template #reference>\r\n <gm-button :type=\"row.type || 'primary'\" link size=\"small\">\r\n {{ row.label }}\r\n </gm-button>\r\n </template>\r\n <div class=\"p-1\">\r\n <div class=\"text-[14px] gm-mb-2\">点击下列色块可修改按钮颜色</div>\r\n <gm-button type=\"primary\" size=\"small\" @click=\"setBtnType(row, $index, 'primary')\"> 蓝色 </gm-button>\r\n <gm-button type=\"success\" size=\"small\" @click=\"setBtnType(row, $index, 'success')\"> 绿色 </gm-button>\r\n <gm-button type=\"info\" size=\"small\" @click=\"setBtnType(row, $index, 'info')\"> 灰色 </gm-button>\r\n <gm-button type=\"warning\" size=\"small\" @click=\"setBtnType(row, $index, 'warning')\"> 橙色 </gm-button>\r\n <gm-button type=\"danger\" size=\"small\" @click=\"setBtnType(row, $index, 'danger')\"> 红色 </gm-button>\r\n </div>\r\n </gm-popover>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onSubmit\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { type CheckboxValueType } from 'element-plus';\r\nimport { InfoFilled } from '@element-plus/icons-vue';\r\nimport { operateButtonFormProps } from './operateButtonForm';\r\nimport type { OperateButtonProps } from '../operateButton';\r\n\r\ndefineOptions({\r\n name: 'GmOperateButtonForm',\r\n});\r\n/**\r\n * 抽屉显示\r\n */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n/**\r\n * 自定义按钮 props列表\r\n */\r\nconst customBtnPropsList = defineModel<OperateButtonProps[]>('customBtnPropsList', {\r\n required: true,\r\n});\r\n\r\nconst props = defineProps(operateButtonFormProps);\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedCustomBtnList } = useCloned(customBtnPropsList);\r\n\r\nconst defaultPropsList = computed(() => cloneDeep(props.customDefaultPropsList));\r\n// 按钮弹出框显示隐藏\r\nconst popoverVisibles = ref<boolean[]>(defaultPropsList.value.map(() => false));\r\n// 根据props列表 初始化popo显示隐藏\r\nwatch(defaultPropsList, () => {\r\n popoverVisibles.value = defaultPropsList.value.map(() => false);\r\n});\r\n\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedCustomBtnList.value = cloneDeep(customBtnPropsList.value);\r\n }\r\n});\r\n\r\nconst customSettingsValue = computed<OperateButtonProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\nconst updateOperate = () => {\r\n customBtnPropsList.value = clonedCustomBtnList.value;\r\n};\r\n\r\nconst initOperate = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedCustomBtnList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateOperate();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedCustomBtnList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedCustomBtnList.value.every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedCustomBtnList.value.some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedCustomBtnList.value.forEach(v => {\r\n v.isShow = Boolean(val);\r\n });\r\n};\r\n\r\n// 设置按钮颜色\r\nconst setBtnType = (item: OperateButtonProps, index: number, type: OperateButtonProps['type']) => {\r\n item.type = type;\r\n popoverVisibles.value[index] = false;\r\n};\r\n\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst onSubmit = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedCustomBtnList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n isShowDrawer.value = false;\r\n updateOperate();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\n// 重置\r\nconst onReset = () => {\r\n clonedCustomBtnList.value = cloneDeep(props.customDefaultPropsList);\r\n};\r\n\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n initOperate();\r\n});\r\ndefineExpose({\r\n isInited,\r\n});\r\n</script>\r\n"],"names":["_useModel"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { defineComponent, mergeModels, useModel, ref, computed, watch, onMounted, resolveComponent, openBlock, createBlock, withCtx, createElementVNode, createVNode, createTextVNode, toDisplayString, unref } from 'vue';
1
+ import { defineComponent, mergeModels, useModel, ref, computed, watch, onMounted, resolveComponent, openBlock, createBlock, withCtx, createElementVNode, createVNode, createTextVNode, unref, toDisplayString } from 'vue';
2
2
  import { useCloned } from '@vueuse/core';
3
3
  import '../../../../../hooks/index.mjs';
4
4
  import { cloneDeep } from 'lodash-es';
5
+ import { InfoFilled } from '@element-plus/icons-vue';
5
6
  import { tableHeaderFormProps } from './tableHeaderForm.mjs';
6
7
  import { useCustomSettingsStore } from '../../../../../hooks/store/useCustomSettings/index.mjs';
7
8
 
@@ -112,7 +113,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
112
113
  submitSettings
113
114
  });
114
115
  return (_ctx, _cache) => {
115
- const _component_i_ep_info_filled = resolveComponent("i-ep-info-filled");
116
116
  const _component_gm_icon = resolveComponent("gm-icon");
117
117
  const _component_gm_checkbox = resolveComponent("gm-checkbox");
118
118
  const _component_gm_table_column = resolveComponent("gm-table-column");
@@ -189,7 +189,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
189
189
  createElementVNode("div", _hoisted_2, [
190
190
  createVNode(_component_gm_icon, null, {
191
191
  default: withCtx(() => [
192
- createVNode(_component_i_ep_info_filled)
192
+ createVNode(unref(InfoFilled))
193
193
  ]),
194
194
  _: 1
195
195
  /* STABLE */
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeaderForm.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><i-ep-info-filled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\nconst props = defineProps(tableHeaderFormProps);\r\n\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n});\r\n</script>\r\n"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAGd,IAAM,MAAA,YAAA,GAAeA,QAAqB,CAAA,OAAA,EAAA,cAEzC,CAAA,CAAA;AAGD,IAAM,MAAA,YAAA,GAAeA,QAAmC,CAAA,OAAA,EAAA,cAEvD,CAAA,CAAA;AACD,IAAA,MAAM,sBAAsB,sBAAuB,EAAA,CAAA;AAKnD,IAAM,MAAA,QAAA,GAAW,IAAI,KAAK,CAAA,CAAA;AAE1B,IAAA,MAAM,EAAE,MAAA,EAAQ,kBAAmB,EAAA,GAAI,UAAU,YAAY,CAAA,CAAA;AAC7D,IAAA,MAAM,mBAAmB,QAAS,CAAA,MAAM,SAAU,CAAA,KAAA,CAAM,mBAAmB,CAAC,CAAA,CAAA;AAE5E,IAAA,KAAA,CAAM,cAAc,CAAY,QAAA,KAAA;AAC9B,MAAA,IAAI,QAAU,EAAA;AACZ,QAAmB,kBAAA,CAAA,KAAA,GAAQ,SAAU,CAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,OACzD;AAAA,KACD,CAAA,CAAA;AACD,IAAA,MAAM,mBAAsB,GAAA,QAAA,CAAgC,MAAM,mBAAA,CAAoB,cAAe,CAAA,KAAA,CAAM,OAAO,CAAA,GAAI,KAAM,CAAA,IAAI,CAAK,IAAA,EAAE,CAAA,CAAA;AACvI,IAAA,MAAM,EAAE,MAAA,EAAQ,WAAY,EAAA,GAAI,UAAU,mBAAmB,CAAA,CAAA;AAG7D,IAAA,MAAM,gBAAgB,MAAM;AAC1B,MAAA,YAAA,CAAa,QAAQ,kBAAmB,CAAA,KAAA,CAAA;AAAA,KAC1C,CAAA;AAEA,IAAA,MAAM,cAAc,YAAY;AAC9B,MAAA,MAAM,mBAAoB,CAAA,iBAAA,CAAkB,EAAE,QAAA,EAAU,MAAM,OAAS,EAAA,IAAA,EAAM,KAAM,CAAA,IAAA,EAAQ,EAAA,EAAE,YAAc,EAAA,IAAI,CAAA,CAAA;AAC/G,MAAA,kBAAA,CAAmB,KAAQ,GAAA,gBAAA,CAAiB,KAAM,CAAA,GAAA,CAAI,CAAM,EAAA,KAAA;AAC1D,QAAM,MAAA,QAAA,GAAW,YAAY,KAAM,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,IAAA,KAAS,GAAG,IAAI,CAAA,CAAA;AAC/D,QAAA,IAAI,QAAU,EAAA;AACZ,UAAA,EAAA,CAAG,SAAS,QAAS,CAAA,MAAA,CAAA;AACrB,UAAA,EAAA,CAAG,QAAQ,QAAS,CAAA,KAAA,CAAA;AAAA,SAEtB;AACA,QAAO,OAAA,EAAA,CAAA;AAAA,OACR,CAAA,CAAA;AAED,MAAc,aAAA,EAAA,CAAA;AACd,MAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,KACnB,CAAA;AAGA,IAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAA,OAAO,mBAAmB,KAAM,CAAA,MAAA,CAAO,CAAK,CAAA,KAAA,CAAA,CAAE,MAAM,CAAE,CAAA,MAAA,CAAA;AAAA,KACvD,CAAA,CAAA;AAED,IAAA,MAAM,UAAa,GAAA,QAAA,CAAS,MAAM,kBAAA,CAAmB,MAAM,MAAO,CAAA,CAAA,EAAA,KAAM,EAAG,CAAA,IAAA,KAAS,MAAM,CAAE,CAAA,KAAA,CAAM,CAAK,CAAA,KAAA,CAAA,CAAE,MAAM,CAAC,CAAA,CAAA;AAEhH,IAAA,MAAM,kBAAkB,QAAS,CAAA,MAAM,CAAC,UAAW,CAAA,KAAA,IAAS,mBAAmB,KAAM,CAAA,MAAA,CAAO,CAAM,EAAA,KAAA,EAAA,CAAG,SAAS,MAAM,CAAA,CAAE,KAAK,CAAK,CAAA,KAAA,CAAA,CAAE,MAAM,CAAC,CAAA,CAAA;AAEzI,IAAM,MAAA,oBAAA,GAAuB,CAAC,GAA2B,KAAA;AACvD,MAAmB,kBAAA,CAAA,KAAA,CAAM,QAAQ,CAAK,CAAA,KAAA;AACpC,QAAI,IAAA,CAAA,CAAE,SAAS,MAAQ,EAAA;AACrB,UAAE,CAAA,CAAA,MAAA,GAAS,QAAQ,GAAG,CAAA,CAAA;AAAA,SACxB;AAAA,OACD,CAAA,CAAA;AAAA,KACH,CAAA;AACA,IAAM,MAAA,aAAA,GAAgB,IAAI,KAAK,CAAA,CAAA;AAE/B,IAAA,MAAM,iBAAiB,YAAY;AACjC,MAAI,IAAA;AACF,QAAA,aAAA,CAAc,KAAQ,GAAA,IAAA,CAAA;AACtB,QAAA,MAAM,EAAE,IAAA,EAAS,GAAA,MAAM,oBAAoB,iBAAkB,CAAA;AAAA,UAC3D,UAAU,KAAM,CAAA,OAAA;AAAA,UAChB,KAAO,EAAA,IAAA,CAAK,SAAU,CAAA,kBAAA,CAAmB,KAAK,CAAA;AAAA,UAC9C,MAAM,KAAM,CAAA,IAAA;AAAA,SACb,CAAA,CAAA;AACD,QAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AACtB,QAAI,IAAA,IAAA,CAAK,SAAS,CAAG,EAAA;AACnB,UAAA,OAAA;AAAA,SACF;AAEA,QAAc,aAAA,EAAA,CAAA;AAAA,eACP,CAAG,EAAA;AACV,QAAA,OAAA,CAAQ,MAAM,CAAC,CAAA,CAAA;AACf,QAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AAAA,OACxB;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,eAAe,YAAY;AAC/B,MAAI,IAAA;AACF,QAAA,aAAA,CAAc,KAAQ,GAAA,IAAA,CAAA;AACtB,QAAA,MAAM,oBAAoB,iBAAkB,CAAA;AAAA,UAC1C,UAAU,KAAM,CAAA,OAAA;AAAA,UAChB,MAAM,KAAM,CAAA,IAAA;AAAA,SACb,CAAA,CAAA;AACD,QAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AAAA,eACf,CAAG,EAAA;AACV,QAAA,OAAA,CAAQ,MAAM,CAAC,CAAA,CAAA;AACf,QAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AAAA,OACxB;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,UAAU,MAAM;AACpB,MAAmB,kBAAA,CAAA,KAAA,GAAQ,SAAU,CAAA,KAAA,CAAM,mBAAmB,CAAA,CAAA;AAAA,KAChE,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAY,WAAA,EAAA,CAAA;AAAA,KACb,CAAA,CAAA;AACD,IAAa,QAAA,CAAA;AAAA,MACX,QAAA;AAAA,MACA,cAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TableHeaderForm.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { InfoFilled } from '@element-plus/icons-vue';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\nconst props = defineProps(tableHeaderFormProps);\r\n\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n});\r\n</script>\r\n"],"names":["_useModel"],"mappings":"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"}
@@ -1,5 +1,33 @@
1
- import useClipboard from 'vue-clipboard3';
1
+ import Clipboard from 'clipboard';
2
2
 
3
+ const useClipboard = (opts) => {
4
+ const appendToBody = opts?.appendToBody === void 0 ? true : opts.appendToBody;
5
+ return {
6
+ toClipboard(text, container) {
7
+ return new Promise((resolve, reject) => {
8
+ const fakeEl = document.createElement("button");
9
+ const clipboard = new Clipboard(fakeEl, {
10
+ text: () => text,
11
+ action: () => "copy",
12
+ container: container !== void 0 ? container : document.body
13
+ });
14
+ clipboard.on("success", (e) => {
15
+ clipboard.destroy();
16
+ resolve(e);
17
+ });
18
+ clipboard.on("error", (e) => {
19
+ clipboard.destroy();
20
+ reject(e);
21
+ });
22
+ if (appendToBody)
23
+ document.body.appendChild(fakeEl);
24
+ fakeEl.click();
25
+ if (appendToBody)
26
+ document.body.removeChild(fakeEl);
27
+ });
28
+ }
29
+ };
30
+ };
3
31
  const handleCopy = async (str) => {
4
32
  const { toClipboard } = useClipboard();
5
33
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"method.mjs","sources":["../../../../../../../packages/components/src/plugins/copy/method.ts"],"sourcesContent":["import useClipboard from 'vue-clipboard3';\r\nexport const handleCopy = async (str: string) => {\r\n const { toClipboard } = useClipboard();\r\n // const { copy } = useClipboard({ legacy: true });\r\n try {\r\n await toClipboard(str);\r\n GmMessage.success('复制成功');\r\n } catch (error) {\r\n console.error(error);\r\n GmMessage.error('复制失败');\r\n }\r\n};\r\n"],"names":[],"mappings":";;AACa,MAAA,UAAA,GAAa,OAAO,GAAgB,KAAA;AAC/C,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,YAAa,EAAA,CAAA;AAErC,EAAI,IAAA;AACF,IAAA,MAAM,YAAY,GAAG,CAAA,CAAA;AACrB,IAAA,SAAA,CAAU,QAAQ,0BAAM,CAAA,CAAA;AAAA,WACjB,KAAO,EAAA;AACd,IAAA,OAAA,CAAQ,MAAM,KAAK,CAAA,CAAA;AACnB,IAAA,SAAA,CAAU,MAAM,0BAAM,CAAA,CAAA;AAAA,GACxB;AACF;;;;"}
1
+ {"version":3,"file":"method.mjs","sources":["../../../../../../../packages/components/src/plugins/copy/method.ts"],"sourcesContent":["import Clipboard from 'clipboard';\r\n\r\ninterface UseClipboardOptions {\r\n /** Fixes IE by appending element to body */\r\n appendToBody: boolean;\r\n}\r\n\r\nconst useClipboard = (opts?: UseClipboardOptions) => {\r\n // default appendToBody true\r\n const appendToBody = opts?.appendToBody === undefined ? true : opts.appendToBody;\r\n return {\r\n toClipboard(text: string, container?: HTMLElement) {\r\n return new Promise((resolve, reject) => {\r\n // make fake element\r\n const fakeEl = document.createElement('button');\r\n // setup a new Clipboard.js\r\n const clipboard = new Clipboard(fakeEl, {\r\n text: () => text,\r\n action: () => 'copy',\r\n container: container !== undefined ? container : document.body,\r\n });\r\n clipboard.on('success', e => {\r\n clipboard.destroy();\r\n resolve(e);\r\n });\r\n clipboard.on('error', e => {\r\n clipboard.destroy();\r\n reject(e);\r\n });\r\n // appendToBody fixes IE\r\n if (appendToBody) document.body.appendChild(fakeEl);\r\n // simulate click\r\n fakeEl.click();\r\n // remove from body if appended\r\n if (appendToBody) document.body.removeChild(fakeEl);\r\n });\r\n },\r\n };\r\n};\r\n\r\nexport const handleCopy = async (str: string) => {\r\n const { toClipboard } = useClipboard();\r\n // const { copy } = useClipboard({ legacy: true });\r\n try {\r\n await toClipboard(str);\r\n GmMessage.success('复制成功');\r\n } catch (error) {\r\n console.error(error);\r\n GmMessage.error('复制失败');\r\n }\r\n};\r\n"],"names":[],"mappings":";;AAOA,MAAM,YAAA,GAAe,CAAC,IAA+B,KAAA;AAEnD,EAAA,MAAM,YAAe,GAAA,IAAA,EAAM,YAAiB,KAAA,KAAA,CAAA,GAAY,OAAO,IAAK,CAAA,YAAA,CAAA;AACpE,EAAO,OAAA;AAAA,IACL,WAAA,CAAY,MAAc,SAAyB,EAAA;AACjD,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AAEtC,QAAM,MAAA,MAAA,GAAS,QAAS,CAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;AAE9C,QAAM,MAAA,SAAA,GAAY,IAAI,SAAA,CAAU,MAAQ,EAAA;AAAA,UACtC,MAAM,MAAM,IAAA;AAAA,UACZ,QAAQ,MAAM,MAAA;AAAA,UACd,SAAW,EAAA,SAAA,KAAc,KAAY,CAAA,GAAA,SAAA,GAAY,QAAS,CAAA,IAAA;AAAA,SAC3D,CAAA,CAAA;AACD,QAAU,SAAA,CAAA,EAAA,CAAG,WAAW,CAAK,CAAA,KAAA;AAC3B,UAAA,SAAA,CAAU,OAAQ,EAAA,CAAA;AAClB,UAAA,OAAA,CAAQ,CAAC,CAAA,CAAA;AAAA,SACV,CAAA,CAAA;AACD,QAAU,SAAA,CAAA,EAAA,CAAG,SAAS,CAAK,CAAA,KAAA;AACzB,UAAA,SAAA,CAAU,OAAQ,EAAA,CAAA;AAClB,UAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAAA,SACT,CAAA,CAAA;AAED,QAAI,IAAA,YAAA;AAAc,UAAS,QAAA,CAAA,IAAA,CAAK,YAAY,MAAM,CAAA,CAAA;AAElD,QAAA,MAAA,CAAO,KAAM,EAAA,CAAA;AAEb,QAAI,IAAA,YAAA;AAAc,UAAS,QAAA,CAAA,IAAA,CAAK,YAAY,MAAM,CAAA,CAAA;AAAA,OACnD,CAAA,CAAA;AAAA,KACH;AAAA,GACF,CAAA;AACF,CAAA,CAAA;AAEa,MAAA,UAAA,GAAa,OAAO,GAAgB,KAAA;AAC/C,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,YAAa,EAAA,CAAA;AAErC,EAAI,IAAA;AACF,IAAA,MAAM,YAAY,GAAG,CAAA,CAAA;AACrB,IAAA,SAAA,CAAU,QAAQ,0BAAM,CAAA,CAAA;AAAA,WACjB,KAAO,EAAA;AACd,IAAA,OAAA,CAAQ,MAAM,KAAK,CAAA,CAAA;AACnB,IAAA,SAAA,CAAU,MAAM,0BAAM,CAAA,CAAA;AAAA,GACxB;AACF;;;;"}
@@ -1 +1 @@
1
- export declare const version = "0.0.16";
1
+ export declare const version = "0.0.18";
@@ -1,4 +1,4 @@
1
- const version = "0.0.15";
1
+ const version = "0.0.17";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.0.15';\n"],"names":[],"mappings":"AAAO,MAAM,OAAU,GAAA;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.0.17';\n"],"names":[],"mappings":"AAAO,MAAM,OAAU,GAAA;;;;"}
@@ -6,6 +6,7 @@ var vue = require('vue');
6
6
  require('../../../../../hooks/index.js');
7
7
  var lodashEs = require('lodash-es');
8
8
  var core = require('@vueuse/core');
9
+ var iconsVue = require('@element-plus/icons-vue');
9
10
  var operateButtonForm = require('./operateButtonForm.js');
10
11
  var index = require('../../../../../hooks/store/useCustomSettings/index.js');
11
12
 
@@ -137,7 +138,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
137
138
  isInited
138
139
  });
139
140
  return (_ctx, _cache) => {
140
- const _component_i_ep_info_filled = vue.resolveComponent("i-ep-info-filled");
141
141
  const _component_gm_icon = vue.resolveComponent("gm-icon");
142
142
  const _component_gm_checkbox = vue.resolveComponent("gm-checkbox");
143
143
  const _component_gm_table_column = vue.resolveComponent("gm-table-column");
@@ -214,7 +214,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
214
214
  vue.createElementVNode("div", _hoisted_2, [
215
215
  vue.createVNode(_component_gm_icon, null, {
216
216
  default: vue.withCtx(() => [
217
- vue.createVNode(_component_i_ep_info_filled)
217
+ vue.createVNode(vue.unref(iconsVue.InfoFilled))
218
218
  ]),
219
219
  _: 1
220
220
  /* STABLE */
@@ -1 +1 @@
1
- {"version":3,"file":"OperateButtonForm.vue2.js","sources":["../../../../../../../../packages/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义按钮\" direction=\"rtl\" size=\"500px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-leading-[40px] gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center\">\r\n <gm-icon><i-ep-info-filled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n <b class=\"gm-ml-3 gm-text-orange-400\">点击按钮可修改当前按钮颜色!</b>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedCustomBtnList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: OperateButtonProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"按钮\">\r\n <template #default=\"{ row, $index }: { row: OperateButtonProps; $index: number }\">\r\n <gm-popover v-model:visible=\"popoverVisibles[$index]\" placement=\"bottom\" :width=\"330\" trigger=\"click\">\r\n <template #reference>\r\n <gm-button :type=\"row.type || 'primary'\" link size=\"small\">\r\n {{ row.label }}\r\n </gm-button>\r\n </template>\r\n <div class=\"p-1\">\r\n <div class=\"text-[14px] gm-mb-2\">点击下列色块可修改按钮颜色</div>\r\n <gm-button type=\"primary\" size=\"small\" @click=\"setBtnType(row, $index, 'primary')\"> 蓝色 </gm-button>\r\n <gm-button type=\"success\" size=\"small\" @click=\"setBtnType(row, $index, 'success')\"> 绿色 </gm-button>\r\n <gm-button type=\"info\" size=\"small\" @click=\"setBtnType(row, $index, 'info')\"> 灰色 </gm-button>\r\n <gm-button type=\"warning\" size=\"small\" @click=\"setBtnType(row, $index, 'warning')\"> 橙色 </gm-button>\r\n <gm-button type=\"danger\" size=\"small\" @click=\"setBtnType(row, $index, 'danger')\"> 红色 </gm-button>\r\n </div>\r\n </gm-popover>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onSubmit\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { type CheckboxValueType } from 'element-plus';\r\nimport { operateButtonFormProps } from './operateButtonForm';\r\nimport type { OperateButtonProps } from '../operateButton';\r\n\r\ndefineOptions({\r\n name: 'GmOperateButtonForm',\r\n});\r\n/**\r\n * 抽屉显示\r\n */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n/**\r\n * 自定义按钮 props列表\r\n */\r\nconst customBtnPropsList = defineModel<OperateButtonProps[]>('customBtnPropsList', {\r\n required: true,\r\n});\r\n\r\nconst props = defineProps(operateButtonFormProps);\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedCustomBtnList } = useCloned(customBtnPropsList);\r\n\r\nconst defaultPropsList = computed(() => cloneDeep(props.customDefaultPropsList));\r\n// 按钮弹出框显示隐藏\r\nconst popoverVisibles = ref<boolean[]>(defaultPropsList.value.map(() => false));\r\n// 根据props列表 初始化popo显示隐藏\r\nwatch(defaultPropsList, () => {\r\n popoverVisibles.value = defaultPropsList.value.map(() => false);\r\n});\r\n\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedCustomBtnList.value = cloneDeep(customBtnPropsList.value);\r\n }\r\n});\r\n\r\nconst customSettingsValue = computed<OperateButtonProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\nconst updateOperate = () => {\r\n customBtnPropsList.value = clonedCustomBtnList.value;\r\n};\r\n\r\nconst initOperate = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedCustomBtnList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateOperate();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedCustomBtnList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedCustomBtnList.value.every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedCustomBtnList.value.some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedCustomBtnList.value.forEach(v => {\r\n v.isShow = Boolean(val);\r\n });\r\n};\r\n\r\n// 设置按钮颜色\r\nconst setBtnType = (item: OperateButtonProps, index: number, type: OperateButtonProps['type']) => {\r\n item.type = type;\r\n popoverVisibles.value[index] = false;\r\n};\r\n\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst onSubmit = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedCustomBtnList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n isShowDrawer.value = false;\r\n updateOperate();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\n// 重置\r\nconst onReset = () => {\r\n clonedCustomBtnList.value = cloneDeep(props.customDefaultPropsList);\r\n};\r\n\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n initOperate();\r\n});\r\ndefineExpose({\r\n isInited,\r\n});\r\n</script>\r\n"],"names":["_useModel","useCustomSettingsStore","ref","useCloned","computed","cloneDeep","watch","onMounted"],"mappings":"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"}
1
+ {"version":3,"file":"OperateButtonForm.vue2.js","sources":["../../../../../../../../packages/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义按钮\" direction=\"rtl\" size=\"500px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-leading-[40px] gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n <b class=\"gm-ml-3 gm-text-orange-400\">点击按钮可修改当前按钮颜色!</b>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedCustomBtnList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: OperateButtonProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"按钮\">\r\n <template #default=\"{ row, $index }: { row: OperateButtonProps; $index: number }\">\r\n <gm-popover v-model:visible=\"popoverVisibles[$index]\" placement=\"bottom\" :width=\"330\" trigger=\"click\">\r\n <template #reference>\r\n <gm-button :type=\"row.type || 'primary'\" link size=\"small\">\r\n {{ row.label }}\r\n </gm-button>\r\n </template>\r\n <div class=\"p-1\">\r\n <div class=\"text-[14px] gm-mb-2\">点击下列色块可修改按钮颜色</div>\r\n <gm-button type=\"primary\" size=\"small\" @click=\"setBtnType(row, $index, 'primary')\"> 蓝色 </gm-button>\r\n <gm-button type=\"success\" size=\"small\" @click=\"setBtnType(row, $index, 'success')\"> 绿色 </gm-button>\r\n <gm-button type=\"info\" size=\"small\" @click=\"setBtnType(row, $index, 'info')\"> 灰色 </gm-button>\r\n <gm-button type=\"warning\" size=\"small\" @click=\"setBtnType(row, $index, 'warning')\"> 橙色 </gm-button>\r\n <gm-button type=\"danger\" size=\"small\" @click=\"setBtnType(row, $index, 'danger')\"> 红色 </gm-button>\r\n </div>\r\n </gm-popover>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onSubmit\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { type CheckboxValueType } from 'element-plus';\r\nimport { InfoFilled } from '@element-plus/icons-vue';\r\nimport { operateButtonFormProps } from './operateButtonForm';\r\nimport type { OperateButtonProps } from '../operateButton';\r\n\r\ndefineOptions({\r\n name: 'GmOperateButtonForm',\r\n});\r\n/**\r\n * 抽屉显示\r\n */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n/**\r\n * 自定义按钮 props列表\r\n */\r\nconst customBtnPropsList = defineModel<OperateButtonProps[]>('customBtnPropsList', {\r\n required: true,\r\n});\r\n\r\nconst props = defineProps(operateButtonFormProps);\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedCustomBtnList } = useCloned(customBtnPropsList);\r\n\r\nconst defaultPropsList = computed(() => cloneDeep(props.customDefaultPropsList));\r\n// 按钮弹出框显示隐藏\r\nconst popoverVisibles = ref<boolean[]>(defaultPropsList.value.map(() => false));\r\n// 根据props列表 初始化popo显示隐藏\r\nwatch(defaultPropsList, () => {\r\n popoverVisibles.value = defaultPropsList.value.map(() => false);\r\n});\r\n\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedCustomBtnList.value = cloneDeep(customBtnPropsList.value);\r\n }\r\n});\r\n\r\nconst customSettingsValue = computed<OperateButtonProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\nconst updateOperate = () => {\r\n customBtnPropsList.value = clonedCustomBtnList.value;\r\n};\r\n\r\nconst initOperate = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedCustomBtnList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateOperate();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedCustomBtnList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedCustomBtnList.value.every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedCustomBtnList.value.some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedCustomBtnList.value.forEach(v => {\r\n v.isShow = Boolean(val);\r\n });\r\n};\r\n\r\n// 设置按钮颜色\r\nconst setBtnType = (item: OperateButtonProps, index: number, type: OperateButtonProps['type']) => {\r\n item.type = type;\r\n popoverVisibles.value[index] = false;\r\n};\r\n\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst onSubmit = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedCustomBtnList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n isShowDrawer.value = false;\r\n updateOperate();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\n// 重置\r\nconst onReset = () => {\r\n clonedCustomBtnList.value = cloneDeep(props.customDefaultPropsList);\r\n};\r\n\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n initOperate();\r\n});\r\ndefineExpose({\r\n isInited,\r\n});\r\n</script>\r\n"],"names":["_useModel","useCustomSettingsStore","ref","useCloned","computed","cloneDeep","watch","onMounted"],"mappings":"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"}
@@ -6,6 +6,7 @@ var vue = require('vue');
6
6
  var core = require('@vueuse/core');
7
7
  require('../../../../../hooks/index.js');
8
8
  var lodashEs = require('lodash-es');
9
+ var iconsVue = require('@element-plus/icons-vue');
9
10
  var tableHeaderForm = require('./tableHeaderForm.js');
10
11
  var index = require('../../../../../hooks/store/useCustomSettings/index.js');
11
12
 
@@ -116,7 +117,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
116
117
  submitSettings
117
118
  });
118
119
  return (_ctx, _cache) => {
119
- const _component_i_ep_info_filled = vue.resolveComponent("i-ep-info-filled");
120
120
  const _component_gm_icon = vue.resolveComponent("gm-icon");
121
121
  const _component_gm_checkbox = vue.resolveComponent("gm-checkbox");
122
122
  const _component_gm_table_column = vue.resolveComponent("gm-table-column");
@@ -193,7 +193,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
193
193
  vue.createElementVNode("div", _hoisted_2, [
194
194
  vue.createVNode(_component_gm_icon, null, {
195
195
  default: vue.withCtx(() => [
196
- vue.createVNode(_component_i_ep_info_filled)
196
+ vue.createVNode(vue.unref(iconsVue.InfoFilled))
197
197
  ]),
198
198
  _: 1
199
199
  /* STABLE */
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeaderForm.vue2.js","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><i-ep-info-filled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\nconst props = defineProps(tableHeaderFormProps);\r\n\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n});\r\n</script>\r\n"],"names":["_useModel","useCustomSettingsStore","ref","useCloned","computed","cloneDeep","watch","onMounted"],"mappings":"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"}
1
+ {"version":3,"file":"TableHeaderForm.vue2.js","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { InfoFilled } from '@element-plus/icons-vue';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\nconst props = defineProps(tableHeaderFormProps);\r\n\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n});\r\n</script>\r\n"],"names":["_useModel","useCustomSettingsStore","ref","useCloned","computed","cloneDeep","watch","onMounted"],"mappings":"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"}
@@ -1,7 +1,35 @@
1
1
  'use strict';
2
2
 
3
- var useClipboard = require('vue-clipboard3');
3
+ var Clipboard = require('clipboard');
4
4
 
5
+ const useClipboard = (opts) => {
6
+ const appendToBody = opts?.appendToBody === void 0 ? true : opts.appendToBody;
7
+ return {
8
+ toClipboard(text, container) {
9
+ return new Promise((resolve, reject) => {
10
+ const fakeEl = document.createElement("button");
11
+ const clipboard = new Clipboard(fakeEl, {
12
+ text: () => text,
13
+ action: () => "copy",
14
+ container: container !== void 0 ? container : document.body
15
+ });
16
+ clipboard.on("success", (e) => {
17
+ clipboard.destroy();
18
+ resolve(e);
19
+ });
20
+ clipboard.on("error", (e) => {
21
+ clipboard.destroy();
22
+ reject(e);
23
+ });
24
+ if (appendToBody)
25
+ document.body.appendChild(fakeEl);
26
+ fakeEl.click();
27
+ if (appendToBody)
28
+ document.body.removeChild(fakeEl);
29
+ });
30
+ }
31
+ };
32
+ };
5
33
  const handleCopy = async (str) => {
6
34
  const { toClipboard } = useClipboard();
7
35
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"method.js","sources":["../../../../../../../packages/components/src/plugins/copy/method.ts"],"sourcesContent":["import useClipboard from 'vue-clipboard3';\r\nexport const handleCopy = async (str: string) => {\r\n const { toClipboard } = useClipboard();\r\n // const { copy } = useClipboard({ legacy: true });\r\n try {\r\n await toClipboard(str);\r\n GmMessage.success('复制成功');\r\n } catch (error) {\r\n console.error(error);\r\n GmMessage.error('复制失败');\r\n }\r\n};\r\n"],"names":[],"mappings":";;;;AACa,MAAA,UAAA,GAAa,OAAO,GAAgB,KAAA;AAC/C,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,YAAa,EAAA,CAAA;AAErC,EAAI,IAAA;AACF,IAAA,MAAM,YAAY,GAAG,CAAA,CAAA;AACrB,IAAA,SAAA,CAAU,QAAQ,0BAAM,CAAA,CAAA;AAAA,WACjB,KAAO,EAAA;AACd,IAAA,OAAA,CAAQ,MAAM,KAAK,CAAA,CAAA;AACnB,IAAA,SAAA,CAAU,MAAM,0BAAM,CAAA,CAAA;AAAA,GACxB;AACF;;;;"}
1
+ {"version":3,"file":"method.js","sources":["../../../../../../../packages/components/src/plugins/copy/method.ts"],"sourcesContent":["import Clipboard from 'clipboard';\r\n\r\ninterface UseClipboardOptions {\r\n /** Fixes IE by appending element to body */\r\n appendToBody: boolean;\r\n}\r\n\r\nconst useClipboard = (opts?: UseClipboardOptions) => {\r\n // default appendToBody true\r\n const appendToBody = opts?.appendToBody === undefined ? true : opts.appendToBody;\r\n return {\r\n toClipboard(text: string, container?: HTMLElement) {\r\n return new Promise((resolve, reject) => {\r\n // make fake element\r\n const fakeEl = document.createElement('button');\r\n // setup a new Clipboard.js\r\n const clipboard = new Clipboard(fakeEl, {\r\n text: () => text,\r\n action: () => 'copy',\r\n container: container !== undefined ? container : document.body,\r\n });\r\n clipboard.on('success', e => {\r\n clipboard.destroy();\r\n resolve(e);\r\n });\r\n clipboard.on('error', e => {\r\n clipboard.destroy();\r\n reject(e);\r\n });\r\n // appendToBody fixes IE\r\n if (appendToBody) document.body.appendChild(fakeEl);\r\n // simulate click\r\n fakeEl.click();\r\n // remove from body if appended\r\n if (appendToBody) document.body.removeChild(fakeEl);\r\n });\r\n },\r\n };\r\n};\r\n\r\nexport const handleCopy = async (str: string) => {\r\n const { toClipboard } = useClipboard();\r\n // const { copy } = useClipboard({ legacy: true });\r\n try {\r\n await toClipboard(str);\r\n GmMessage.success('复制成功');\r\n } catch (error) {\r\n console.error(error);\r\n GmMessage.error('复制失败');\r\n }\r\n};\r\n"],"names":[],"mappings":";;;;AAOA,MAAM,YAAA,GAAe,CAAC,IAA+B,KAAA;AAEnD,EAAA,MAAM,YAAe,GAAA,IAAA,EAAM,YAAiB,KAAA,KAAA,CAAA,GAAY,OAAO,IAAK,CAAA,YAAA,CAAA;AACpE,EAAO,OAAA;AAAA,IACL,WAAA,CAAY,MAAc,SAAyB,EAAA;AACjD,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AAEtC,QAAM,MAAA,MAAA,GAAS,QAAS,CAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;AAE9C,QAAM,MAAA,SAAA,GAAY,IAAI,SAAA,CAAU,MAAQ,EAAA;AAAA,UACtC,MAAM,MAAM,IAAA;AAAA,UACZ,QAAQ,MAAM,MAAA;AAAA,UACd,SAAW,EAAA,SAAA,KAAc,KAAY,CAAA,GAAA,SAAA,GAAY,QAAS,CAAA,IAAA;AAAA,SAC3D,CAAA,CAAA;AACD,QAAU,SAAA,CAAA,EAAA,CAAG,WAAW,CAAK,CAAA,KAAA;AAC3B,UAAA,SAAA,CAAU,OAAQ,EAAA,CAAA;AAClB,UAAA,OAAA,CAAQ,CAAC,CAAA,CAAA;AAAA,SACV,CAAA,CAAA;AACD,QAAU,SAAA,CAAA,EAAA,CAAG,SAAS,CAAK,CAAA,KAAA;AACzB,UAAA,SAAA,CAAU,OAAQ,EAAA,CAAA;AAClB,UAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAAA,SACT,CAAA,CAAA;AAED,QAAI,IAAA,YAAA;AAAc,UAAS,QAAA,CAAA,IAAA,CAAK,YAAY,MAAM,CAAA,CAAA;AAElD,QAAA,MAAA,CAAO,KAAM,EAAA,CAAA;AAEb,QAAI,IAAA,YAAA;AAAc,UAAS,QAAA,CAAA,IAAA,CAAK,YAAY,MAAM,CAAA,CAAA;AAAA,OACnD,CAAA,CAAA;AAAA,KACH;AAAA,GACF,CAAA;AACF,CAAA,CAAA;AAEa,MAAA,UAAA,GAAa,OAAO,GAAgB,KAAA;AAC/C,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,YAAa,EAAA,CAAA;AAErC,EAAI,IAAA;AACF,IAAA,MAAM,YAAY,GAAG,CAAA,CAAA;AACrB,IAAA,SAAA,CAAU,QAAQ,0BAAM,CAAA,CAAA;AAAA,WACjB,KAAO,EAAA;AACd,IAAA,OAAA,CAAQ,MAAM,KAAK,CAAA,CAAA;AACnB,IAAA,SAAA,CAAU,MAAM,0BAAM,CAAA,CAAA;AAAA,GACxB;AACF;;;;"}
@@ -1 +1 @@
1
- export declare const version = "0.0.16";
1
+ export declare const version = "0.0.18";
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const version = "0.0.15";
3
+ const version = "0.0.17";
4
4
 
5
5
  exports.version = version;
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.0.15';\n"],"names":[],"mappings":";;AAAO,MAAM,OAAU,GAAA;;;;"}
1
+ {"version":3,"file":"version.js","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.0.17';\n"],"names":[],"mappings":";;AAAO,MAAM,OAAU,GAAA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "giime",
3
- "version": "0.0.16",
3
+ "version": "0.0.18",
4
4
  "description": "A Component Library for Vue 3",
5
5
  "keywords": [
6
6
  "giime",
@@ -60,7 +60,7 @@
60
60
  "dependencies": {
61
61
  "lodash-es": "^4.17.21",
62
62
  "idb-keyval": "^6.2.1",
63
- "vue-clipboard3": "^2.0.0",
63
+ "clipboard": "^2.0.11",
64
64
  "@types/lodash": "^4.17.0",
65
65
  "@types/lodash-es": "^4.17.12"
66
66
  },