giime 0.9.6 → 0.9.8-beta.1

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 (38) hide show
  1. package/dist/index.css +133 -132
  2. package/es/components/src/base/button/Button.vue.d.ts +9 -0
  3. package/es/components/src/base/button/Button.vue2.mjs +19 -1
  4. package/es/components/src/base/button/Button.vue2.mjs.map +1 -1
  5. package/es/components/src/base/button/button.d.ts +9 -0
  6. package/es/components/src/base/button/button.mjs +9 -0
  7. package/es/components/src/base/button/button.mjs.map +1 -1
  8. package/es/components/src/base/button/index.d.ts +19 -0
  9. package/es/giime/version.d.ts +1 -1
  10. package/es/giime/version.mjs +1 -1
  11. package/es/giime/version.mjs.map +1 -1
  12. package/es/hooks/store/common/useLangList/index.mjs +1 -1
  13. package/es/hooks/store/common/useLangList/index.mjs.map +1 -1
  14. package/es/index.css +133 -132
  15. package/es/utils/src/clarity/index.d.ts +4 -0
  16. package/es/utils/src/clarity/index.mjs +13 -6
  17. package/es/utils/src/clarity/index.mjs.map +1 -1
  18. package/es/utils/src/vue/router.mjs +5 -2
  19. package/es/utils/src/vue/router.mjs.map +1 -1
  20. package/lib/components/src/base/button/Button.vue.d.ts +9 -0
  21. package/lib/components/src/base/button/Button.vue2.js +19 -1
  22. package/lib/components/src/base/button/Button.vue2.js.map +1 -1
  23. package/lib/components/src/base/button/button.d.ts +9 -0
  24. package/lib/components/src/base/button/button.js +9 -0
  25. package/lib/components/src/base/button/button.js.map +1 -1
  26. package/lib/components/src/base/button/index.d.ts +19 -0
  27. package/lib/giime/version.d.ts +1 -1
  28. package/lib/giime/version.js +1 -1
  29. package/lib/giime/version.js.map +1 -1
  30. package/lib/hooks/store/common/useLangList/index.js +1 -1
  31. package/lib/hooks/store/common/useLangList/index.js.map +1 -1
  32. package/lib/index.css +133 -132
  33. package/lib/utils/src/clarity/index.d.ts +4 -0
  34. package/lib/utils/src/clarity/index.js +13 -6
  35. package/lib/utils/src/clarity/index.js.map +1 -1
  36. package/lib/utils/src/vue/router.js +5 -2
  37. package/lib/utils/src/vue/router.js.map +1 -1
  38. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -894,6 +894,42 @@ video {
894
894
  .gm-flex-justify-between[data-v-c17deec9] {
895
895
  justify-content: space-between;
896
896
  }
897
+ .circular[data-v-d7b04fae] {
898
+ animation: loading-rotate-d7b04fae 2s linear infinite;
899
+ }
900
+
901
+ .path[data-v-d7b04fae] {
902
+ animation: loading-dash-d7b04fae 1.5s ease-in-out infinite;
903
+ stroke-dasharray: 90, 150;
904
+ stroke-dashoffset: 0;
905
+ stroke: var(--el-color-primary);
906
+ stroke-linecap: round;
907
+ }
908
+
909
+ @keyframes loading-rotate-d7b04fae {
910
+ to {
911
+ transform: rotate(360deg);
912
+ }
913
+ }
914
+ @keyframes loading-dash-d7b04fae {
915
+ 0% {
916
+ stroke-dasharray: 1, 200;
917
+ stroke-dashoffset: 0;
918
+ }
919
+ 50% {
920
+ stroke-dasharray: 90, 150;
921
+ stroke-dashoffset: -40px;
922
+ }
923
+ 100% {
924
+ stroke-dasharray: 90, 150;
925
+ stroke-dashoffset: -120px;
926
+ }
927
+ }
928
+
929
+ .gm-range-number .el-form-item[data-v-1ae16d96] {
930
+ margin: 0;
931
+ }
932
+
897
933
  .gm-upload-pro-preview-dialog[data-v-80b383d8] [data-v-80b383d8] .el-dialog__body {
898
934
  padding: 0;
899
935
  }
@@ -940,29 +976,6 @@ video {
940
976
  .gm-upload-pro-file-disabled .el-upload-list__item-status-label {
941
977
  display: none;
942
978
  }
943
- [data-v-050a4f74] .gmTableNoBorder .el-table__body .el-table__cell {
944
- border-right: none;
945
- }
946
-
947
- [data-v-050a4f74] .gmTableNoBorder .el-table__inner-wrapper:before {
948
- height: 0;
949
- }
950
-
951
- [data-v-050a4f74] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
952
- height: 0;
953
- }
954
-
955
- [data-v-050a4f74] .gmTableNoBorder.el-table--border:after {
956
- height: 0;
957
- }
958
-
959
- [data-v-050a4f74] .gmTableNoBorder.el-table--border:before {
960
- height: 0;
961
- }
962
-
963
- [data-v-050a4f74] .gmTableNoBorder .el-table__border-left-patch {
964
- height: 0;
965
- }
966
979
  .gm-number-interval-single[data-v-4e6f4d6f] {
967
980
  border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
968
981
  box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
@@ -985,226 +998,214 @@ video {
985
998
  margin-right: 0;
986
999
  margin-bottom: 4px;
987
1000
  }
988
- [data-v-3f2c8504] .gmTableNoBorder .el-table__body .el-table__cell {
1001
+ [data-v-050a4f74] .gmTableNoBorder .el-table__body .el-table__cell {
989
1002
  border-right: none;
990
1003
  }
991
1004
 
992
- [data-v-3f2c8504] .gmTableNoBorder .el-table__inner-wrapper:before {
1005
+ [data-v-050a4f74] .gmTableNoBorder .el-table__inner-wrapper:before {
993
1006
  height: 0;
994
1007
  }
995
1008
 
996
- [data-v-3f2c8504] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1009
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
997
1010
  height: 0;
998
1011
  }
999
1012
 
1000
- [data-v-3f2c8504] .gmTableNoBorder.el-table--border:after {
1013
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border:after {
1001
1014
  height: 0;
1002
1015
  }
1003
1016
 
1004
- [data-v-3f2c8504] .gmTableNoBorder.el-table--border:before {
1017
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border:before {
1005
1018
  height: 0;
1006
1019
  }
1007
1020
 
1008
- [data-v-3f2c8504] .gmTableNoBorder .el-table__border-left-patch {
1021
+ [data-v-050a4f74] .gmTableNoBorder .el-table__border-left-patch {
1009
1022
  height: 0;
1010
1023
  }
1011
- .gm-upload-file {
1012
- line-height: normal;
1013
- }
1014
- .gm-upload-file li > .el-checkbox {
1015
- position: absolute;
1016
- left: 10px;
1017
- top: 0;
1018
- z-index: 9;
1019
- }
1020
- .gm-upload-file .el-upload-list--picture-card {
1021
- gap: 10px;
1022
- }
1023
- .gm-upload-file .el-upload-list__item {
1024
- margin: 0;
1025
- border: none;
1026
- }
1027
- .gm-upload-file .el-upload-list__item-file-name {
1028
- line-height: normal;
1029
- }
1030
- .gm-upload-file .el-upload-dragger {
1031
- padding: 0;
1032
- border: none;
1033
- width: 100%;
1034
- height: 100%;
1035
- display: flex;
1036
- }
1037
- .gm-upload-file .el-upload--picture-card {
1038
- border: none;
1039
- }
1040
1024
 
1041
- .gm-upload-file-disabled .el-upload--picture-card {
1042
- display: none;
1025
+ .pagination-container[data-v-47d35e7b] {
1026
+ background: #fff;
1027
+ padding-top: 12px;
1043
1028
  }
1044
- .gm-upload-file-disabled .el-upload-list__item-status-label {
1029
+ .pagination-container.hidden[data-v-47d35e7b] {
1045
1030
  display: none;
1046
1031
  }
1047
- .gm-upload-preview-dialog[data-v-c615121c] [data-v-c615121c] .el-dialog__body {
1048
- padding: 0;
1049
- }
1050
-
1051
- .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload-list__item, .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload--picture-card {
1052
- width: auto;
1053
- height: auto;
1054
- }
1055
1032
 
1056
- .gm-range-number .el-form-item[data-v-1ae16d96] {
1057
- margin: 0;
1058
- }
1059
-
1060
- .circular[data-v-d7b04fae] {
1061
- animation: loading-rotate-d7b04fae 2s linear infinite;
1062
- }
1063
-
1064
- .path[data-v-d7b04fae] {
1065
- animation: loading-dash-d7b04fae 1.5s ease-in-out infinite;
1066
- stroke-dasharray: 90, 150;
1067
- stroke-dashoffset: 0;
1068
- stroke: var(--el-color-primary);
1069
- stroke-linecap: round;
1070
- }
1071
-
1072
- @keyframes loading-rotate-d7b04fae {
1073
- to {
1074
- transform: rotate(360deg);
1075
- }
1076
- }
1077
- @keyframes loading-dash-d7b04fae {
1078
- 0% {
1079
- stroke-dasharray: 1, 200;
1080
- stroke-dashoffset: 0;
1081
- }
1082
- 50% {
1083
- stroke-dasharray: 90, 150;
1084
- stroke-dashoffset: -40px;
1085
- }
1086
- 100% {
1087
- stroke-dasharray: 90, 150;
1088
- stroke-dashoffset: -120px;
1089
- }
1090
- }
1091
1033
  @charset "UTF-8";
1092
- .table-custom-header-drawer .el-drawer__header {
1034
+ .custom-operate-drawer .el-drawer__header {
1093
1035
  padding: 10px 15px;
1094
1036
  margin: 0;
1095
1037
  border-bottom: 1px solid #ebeef5;
1096
1038
  }
1097
- .table-custom-header-drawer .el-drawer__title {
1039
+ .custom-operate-drawer .el-drawer__title {
1098
1040
  font-size: 14px;
1099
1041
  color: #333;
1100
1042
  }
1101
- .table-custom-header-drawer .el-drawer__body {
1043
+ .custom-operate-drawer .el-drawer__body {
1102
1044
  padding: 15px;
1103
1045
  }
1104
- .table-custom-header-drawer .el-drawer__footer {
1046
+ .custom-operate-drawer .el-drawer__footer {
1105
1047
  padding: 10px 15px;
1106
1048
  border-top: 1px solid #ebeef5;
1107
1049
  }
1108
- .table-custom-header-drawer .el-checkbox {
1050
+ .custom-operate-drawer .el-checkbox {
1109
1051
  display: flex;
1110
1052
  align-items: center;
1111
1053
  }
1112
- .table-custom-header-drawer .el-input__inner {
1054
+ .custom-operate-drawer .el-input__inner {
1113
1055
  text-align: center;
1114
1056
  }
1115
- .table-custom-header-drawer .el-input__suffix {
1057
+ .custom-operate-drawer .el-input__suffix {
1116
1058
  position: absolute;
1117
1059
  right: 10px;
1118
1060
  }
1119
- .table-custom-header-drawer .custom-content li {
1061
+ .custom-operate-drawer .custom-content li {
1120
1062
  display: flex;
1121
1063
  align-items: center;
1122
1064
  justify-content: center;
1123
1065
  height: 44px;
1124
1066
  }
1125
- .table-custom-header-drawer .custom-group {
1067
+ .custom-operate-drawer .custom-group {
1126
1068
  max-height: calc(100vh - 226px);
1127
1069
  overflow-y: auto;
1128
1070
  }
1129
- .table-custom-header-drawer .custom-group::-webkit-scrollbar {
1071
+ .custom-operate-drawer .custom-group::-webkit-scrollbar {
1130
1072
  /*滚动条整体样式*/
1131
1073
  width: 4px;
1132
1074
  /*高宽分别对应横竖滚动条的尺寸*/
1133
1075
  height: 1px;
1134
1076
  }
1135
- .table-custom-header-drawer .custom-group::-webkit-scrollbar-thumb {
1077
+ .custom-operate-drawer .custom-group::-webkit-scrollbar-thumb {
1136
1078
  /*滚动条里面小方块*/
1137
1079
  border-radius: 10px;
1138
1080
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1);
1139
1081
  background: #999;
1140
1082
  }
1141
- .table-custom-header-drawer .custom-group::-webkit-scrollbar-track {
1083
+ .custom-operate-drawer .custom-group::-webkit-scrollbar-track {
1142
1084
  /*滚动条里面轨道*/
1143
1085
  box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);
1144
1086
  border-radius: 10px;
1145
1087
  background: #eee;
1146
1088
  }
1089
+ [data-v-3f2c8504] .gmTableNoBorder .el-table__body .el-table__cell {
1090
+ border-right: none;
1091
+ }
1092
+
1093
+ [data-v-3f2c8504] .gmTableNoBorder .el-table__inner-wrapper:before {
1094
+ height: 0;
1095
+ }
1096
+
1097
+ [data-v-3f2c8504] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1098
+ height: 0;
1099
+ }
1100
+
1101
+ [data-v-3f2c8504] .gmTableNoBorder.el-table--border:after {
1102
+ height: 0;
1103
+ }
1104
+
1105
+ [data-v-3f2c8504] .gmTableNoBorder.el-table--border:before {
1106
+ height: 0;
1107
+ }
1108
+
1109
+ [data-v-3f2c8504] .gmTableNoBorder .el-table__border-left-patch {
1110
+ height: 0;
1111
+ }
1147
1112
  @charset "UTF-8";
1148
- .custom-operate-drawer .el-drawer__header {
1113
+ .table-custom-header-drawer .el-drawer__header {
1149
1114
  padding: 10px 15px;
1150
1115
  margin: 0;
1151
1116
  border-bottom: 1px solid #ebeef5;
1152
1117
  }
1153
- .custom-operate-drawer .el-drawer__title {
1118
+ .table-custom-header-drawer .el-drawer__title {
1154
1119
  font-size: 14px;
1155
1120
  color: #333;
1156
1121
  }
1157
- .custom-operate-drawer .el-drawer__body {
1122
+ .table-custom-header-drawer .el-drawer__body {
1158
1123
  padding: 15px;
1159
1124
  }
1160
- .custom-operate-drawer .el-drawer__footer {
1125
+ .table-custom-header-drawer .el-drawer__footer {
1161
1126
  padding: 10px 15px;
1162
1127
  border-top: 1px solid #ebeef5;
1163
1128
  }
1164
- .custom-operate-drawer .el-checkbox {
1129
+ .table-custom-header-drawer .el-checkbox {
1165
1130
  display: flex;
1166
1131
  align-items: center;
1167
1132
  }
1168
- .custom-operate-drawer .el-input__inner {
1133
+ .table-custom-header-drawer .el-input__inner {
1169
1134
  text-align: center;
1170
1135
  }
1171
- .custom-operate-drawer .el-input__suffix {
1136
+ .table-custom-header-drawer .el-input__suffix {
1172
1137
  position: absolute;
1173
1138
  right: 10px;
1174
1139
  }
1175
- .custom-operate-drawer .custom-content li {
1140
+ .table-custom-header-drawer .custom-content li {
1176
1141
  display: flex;
1177
1142
  align-items: center;
1178
1143
  justify-content: center;
1179
1144
  height: 44px;
1180
1145
  }
1181
- .custom-operate-drawer .custom-group {
1146
+ .table-custom-header-drawer .custom-group {
1182
1147
  max-height: calc(100vh - 226px);
1183
1148
  overflow-y: auto;
1184
1149
  }
1185
- .custom-operate-drawer .custom-group::-webkit-scrollbar {
1150
+ .table-custom-header-drawer .custom-group::-webkit-scrollbar {
1186
1151
  /*滚动条整体样式*/
1187
1152
  width: 4px;
1188
1153
  /*高宽分别对应横竖滚动条的尺寸*/
1189
1154
  height: 1px;
1190
1155
  }
1191
- .custom-operate-drawer .custom-group::-webkit-scrollbar-thumb {
1156
+ .table-custom-header-drawer .custom-group::-webkit-scrollbar-thumb {
1192
1157
  /*滚动条里面小方块*/
1193
1158
  border-radius: 10px;
1194
1159
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1);
1195
1160
  background: #999;
1196
1161
  }
1197
- .custom-operate-drawer .custom-group::-webkit-scrollbar-track {
1162
+ .table-custom-header-drawer .custom-group::-webkit-scrollbar-track {
1198
1163
  /*滚动条里面轨道*/
1199
1164
  box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);
1200
1165
  border-radius: 10px;
1201
1166
  background: #eee;
1202
1167
  }
1168
+ .gm-upload-preview-dialog[data-v-c615121c] [data-v-c615121c] .el-dialog__body {
1169
+ padding: 0;
1170
+ }
1203
1171
 
1204
- .pagination-container[data-v-47d35e7b] {
1205
- background: #fff;
1206
- padding-top: 12px;
1172
+ .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload-list__item, .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload--picture-card {
1173
+ width: auto;
1174
+ height: auto;
1207
1175
  }
1208
- .pagination-container.hidden[data-v-47d35e7b] {
1176
+ .gm-upload-file {
1177
+ line-height: normal;
1178
+ }
1179
+ .gm-upload-file li > .el-checkbox {
1180
+ position: absolute;
1181
+ left: 10px;
1182
+ top: 0;
1183
+ z-index: 9;
1184
+ }
1185
+ .gm-upload-file .el-upload-list--picture-card {
1186
+ gap: 10px;
1187
+ }
1188
+ .gm-upload-file .el-upload-list__item {
1189
+ margin: 0;
1190
+ border: none;
1191
+ }
1192
+ .gm-upload-file .el-upload-list__item-file-name {
1193
+ line-height: normal;
1194
+ }
1195
+ .gm-upload-file .el-upload-dragger {
1196
+ padding: 0;
1197
+ border: none;
1198
+ width: 100%;
1199
+ height: 100%;
1200
+ display: flex;
1201
+ }
1202
+ .gm-upload-file .el-upload--picture-card {
1203
+ border: none;
1204
+ }
1205
+
1206
+ .gm-upload-file-disabled .el-upload--picture-card {
1209
1207
  display: none;
1210
1208
  }
1209
+ .gm-upload-file-disabled .el-upload-list__item-status-label {
1210
+ display: none;
1211
+ }
@@ -12,6 +12,10 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
12
12
  type: BooleanConstructor;
13
13
  default: undefined;
14
14
  };
15
+ eventName: {
16
+ type: StringConstructor;
17
+ default: undefined;
18
+ };
15
19
  size: {
16
20
  readonly type: import("vue").PropType<"" | "small" | "default" | "large">;
17
21
  readonly required: false;
@@ -102,6 +106,10 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
102
106
  type: BooleanConstructor;
103
107
  default: undefined;
104
108
  };
109
+ eventName: {
110
+ type: StringConstructor;
111
+ default: undefined;
112
+ };
105
113
  size: {
106
114
  readonly type: import("vue").PropType<"" | "small" | "default" | "large">;
107
115
  readonly required: false;
@@ -196,6 +204,7 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
196
204
  disabled: boolean;
197
205
  autofocus: boolean;
198
206
  loading: boolean;
207
+ eventName: string;
199
208
  nativeType: "button" | "reset" | "submit";
200
209
  loadingIcon: string | import("vue").Component;
201
210
  bg: boolean;
@@ -1,7 +1,9 @@
1
1
  import { defineComponent, useSlots, useAttrs, computed, ref, resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, unref, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
2
+ import { useRoute } from 'vue-router';
2
3
  import { omit } from 'lodash-es';
3
4
  import { buttonProps } from './button.mjs';
4
5
  import { isBoolean } from '../../../../utils/src/is.mjs';
6
+ import { Clarity } from '../../../../utils/src/clarity/index.mjs';
5
7
 
6
8
  var _sfc_main = /* @__PURE__ */ defineComponent({
7
9
  ...{
@@ -14,6 +16,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
14
16
  const slots = useSlots();
15
17
  const attrs = useAttrs();
16
18
  const props = __props;
19
+ const route = useRoute();
17
20
  const bindAttrs = computed(() => {
18
21
  return { ...omit(attrs, "onClick"), ...props };
19
22
  });
@@ -25,10 +28,25 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
25
28
  }
26
29
  return isLoading.value;
27
30
  });
31
+ const sendClarityEvent = () => {
32
+ if (!Clarity.isAvailable()) {
33
+ return;
34
+ }
35
+ const buttonText = elRef.value?.$el?.innerText?.trim() || "";
36
+ const actionName = props.eventName || buttonText;
37
+ if (!actionName) {
38
+ return;
39
+ }
40
+ const routeIdentifier = route.meta?.title || route.name || route.path;
41
+ const clarityEventName = `${routeIdentifier} - ${actionName}`;
42
+ Clarity.event(clarityEventName);
43
+ };
28
44
  const handleClick = async (evt) => {
29
45
  try {
30
46
  isLoading.value = true;
31
- return await attrs.onClick?.(evt);
47
+ const result = await attrs.onClick?.(evt);
48
+ sendClarityEvent();
49
+ return result;
32
50
  } finally {
33
51
  isLoading.value = false;
34
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Button.vue2.mjs","sources":["../../../../../../../packages/components/src/base/button/Button.vue"],"sourcesContent":["<template>\n <el-button ref=\"elRef\" v-bind=\"bindAttrs\" :type=\"disabled ? 'info' : type\" :loading=\"realLoading\" @click=\"handleClick\">\n <template v-if=\"slots.loading\" #loading=\"slotValue\">\n <slot name=\"loading\" v-bind=\"slotValue\" />\n </template>\n <template v-if=\"slots.default\" #default>\n <slot />\n </template>\n <template v-if=\"slots.icon\" #icon=\"slotValue\">\n <slot name=\"icon\" v-bind=\"slotValue\" />\n </template>\n </el-button>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, ref, useAttrs, useSlots } from 'vue';\nimport { omit } from 'lodash-es';\nimport { buttonProps } from './button';\nimport type { ButtonInstance } from 'element-plus';\nimport { isBoolean } from '@giime/utils/src/is';\n\ndefineOptions({\n name: 'GmButton',\n inheritAttrs: false,\n});\nconst slots = useSlots();\nconst attrs = useAttrs() as {\n onClick: (evt: MouseEvent) => Promise<any> | any;\n};\nconst props = defineProps(buttonProps);\n\nconst bindAttrs = computed(() => {\n return { ...omit(attrs, 'onClick'), ...props };\n});\n// const emit = defineEmits(buttonEmits);\n// 重发el的事件\n// const elEvents = getGmEvent(elButtonEmits, emit);\n\nconst elRef = ref<ButtonInstance>();\nconst isLoading = ref(false);\nconst realLoading = computed(() => {\n // 优先使用用户传进来的loading\n if (isBoolean(props.loading)) {\n return props.loading;\n }\n return isLoading.value;\n});\nconst handleClick = async (evt: MouseEvent) => {\n try {\n isLoading.value = true;\n return await attrs.onClick?.(evt);\n } finally {\n isLoading.value = false;\n }\n};\ndefineExpose({\n elRef,\n});\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAwBA,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,QAAQ,QAAA,EAAS;AAGvB,IAAA,MAAM,KAAA,GAAQ,OAAA;AAEd,IAAA,MAAM,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,OAAO,EAAE,GAAG,IAAA,CAAK,OAAO,SAAS,CAAA,EAAG,GAAG,KAAA,EAAM;AAAA,IAC/C,CAAC,CAAA;AAKD,IAAA,MAAM,QAAQ,GAAA,EAAoB;AAClC,IAAA,MAAM,SAAA,GAAY,IAAI,KAAK,CAAA;AAC3B,IAAA,MAAM,WAAA,GAAc,SAAS,MAAM;AAEjC,MAAA,IAAI,SAAA,CAAU,KAAA,CAAM,OAAO,CAAA,EAAG;AAC5B,QAAA,OAAO,KAAA,CAAM,OAAA;AAAA,MACf;AACA,MAAA,OAAO,SAAA,CAAU,KAAA;AAAA,IACnB,CAAC,CAAA;AACD,IAAA,MAAM,WAAA,GAAc,OAAO,GAAA,KAAoB;AAC7C,MAAA,IAAI;AACF,QAAA,SAAA,CAAU,KAAA,GAAQ,IAAA;AAClB,QAAA,OAAO,MAAM,KAAA,CAAM,OAAA,GAAU,GAAG,CAAA;AAAA,MAClC,CAAA,SAAE;AACA,QAAA,SAAA,CAAU,KAAA,GAAQ,KAAA;AAAA,MACpB;AAAA,IACF,CAAA;AACA,IAAA,QAAA,CAAa;AAAA,MACX;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Button.vue2.mjs","sources":["../../../../../../../packages/components/src/base/button/Button.vue"],"sourcesContent":["<template>\n <el-button ref=\"elRef\" v-bind=\"bindAttrs\" :type=\"disabled ? 'info' : type\" :loading=\"realLoading\" @click=\"handleClick\">\n <template v-if=\"slots.loading\" #loading=\"slotValue\">\n <slot name=\"loading\" v-bind=\"slotValue\" />\n </template>\n <template v-if=\"slots.default\" #default>\n <slot />\n </template>\n <template v-if=\"slots.icon\" #icon=\"slotValue\">\n <slot name=\"icon\" v-bind=\"slotValue\" />\n </template>\n </el-button>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, ref, useAttrs, useSlots } from 'vue';\nimport { useRoute } from 'vue-router';\nimport { omit } from 'lodash-es';\nimport { buttonProps } from './button';\nimport type { ButtonInstance } from 'element-plus';\nimport { isBoolean } from '@giime/utils/src/is';\nimport { Clarity } from '@giime/utils/src/clarity';\n\ndefineOptions({\n name: 'GmButton',\n inheritAttrs: false,\n});\nconst slots = useSlots();\nconst attrs = useAttrs() as {\n onClick: (evt: MouseEvent) => Promise<any> | any;\n};\nconst props = defineProps(buttonProps);\nconst route = useRoute();\n\nconst bindAttrs = computed(() => {\n return { ...omit(attrs, 'onClick'), ...props };\n});\n// const emit = defineEmits(buttonEmits);\n// 重发el的事件\n// const elEvents = getGmEvent(elButtonEmits, emit);\n\nconst elRef = ref<ButtonInstance>();\nconst isLoading = ref(false);\nconst realLoading = computed(() => {\n // 优先使用用户传进来的loading\n if (isBoolean(props.loading)) {\n return props.loading;\n }\n return isLoading.value;\n});\n\n/**\n * 发送 Clarity 点击事件\n * 事件名格式:{路由title|name|path} - {eventName|button文字}\n */\nconst sendClarityEvent = () => {\n // 如果 Clarity 未初始化,直接返回\n if (!Clarity.isAvailable()) {\n return;\n }\n\n // 获取按钮文字内容\n const buttonText = elRef.value?.$el?.innerText?.trim() || '';\n // 优先使用 eventName,否则使用按钮文字\n const actionName = props.eventName || buttonText;\n\n // 如果没有 eventName 且没有按钮文字,则不发送事件\n if (!actionName) {\n return;\n }\n\n // 获取路由标识:优先 meta.title,其次 name,最后 path\n const routeIdentifier = (route.meta?.title as string) || (route.name as string) || route.path;\n const clarityEventName = `${routeIdentifier} - ${actionName}`;\n Clarity.event(clarityEventName);\n};\n\nconst handleClick = async (evt: MouseEvent) => {\n try {\n isLoading.value = true;\n const result = await attrs.onClick?.(evt);\n // 点击成功后发送 Clarity 事件\n sendClarityEvent();\n return result;\n } finally {\n isLoading.value = false;\n }\n};\ndefineExpose({\n elRef,\n});\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AA0BA,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,QAAQ,QAAA,EAAS;AAGvB,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,MAAM,QAAQ,QAAA,EAAS;AAEvB,IAAA,MAAM,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,OAAO,EAAE,GAAG,IAAA,CAAK,OAAO,SAAS,CAAA,EAAG,GAAG,KAAA,EAAM;AAAA,IAC/C,CAAC,CAAA;AAKD,IAAA,MAAM,QAAQ,GAAA,EAAoB;AAClC,IAAA,MAAM,SAAA,GAAY,IAAI,KAAK,CAAA;AAC3B,IAAA,MAAM,WAAA,GAAc,SAAS,MAAM;AAEjC,MAAA,IAAI,SAAA,CAAU,KAAA,CAAM,OAAO,CAAA,EAAG;AAC5B,QAAA,OAAO,KAAA,CAAM,OAAA;AAAA,MACf;AACA,MAAA,OAAO,SAAA,CAAU,KAAA;AAAA,IACnB,CAAC,CAAA;AAMD,IAAA,MAAM,mBAAmB,MAAM;AAE7B,MAAA,IAAI,CAAC,OAAA,CAAQ,WAAA,EAAY,EAAG;AAC1B,QAAA;AAAA,MACF;AAGA,MAAA,MAAM,aAAa,KAAA,CAAM,KAAA,EAAO,GAAA,EAAK,SAAA,EAAW,MAAK,IAAK,EAAA;AAE1D,MAAA,MAAM,UAAA,GAAa,MAAM,SAAA,IAAa,UAAA;AAGtC,MAAA,IAAI,CAAC,UAAA,EAAY;AACf,QAAA;AAAA,MACF;AAGA,MAAA,MAAM,kBAAmB,KAAA,CAAM,IAAA,EAAM,KAAA,IAAqB,KAAA,CAAM,QAAmB,KAAA,CAAM,IAAA;AACzF,MAAA,MAAM,gBAAA,GAAmB,CAAA,EAAG,eAAe,CAAA,GAAA,EAAM,UAAU,CAAA,CAAA;AAC3D,MAAA,OAAA,CAAQ,MAAM,gBAAgB,CAAA;AAAA,IAChC,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,OAAO,GAAA,KAAoB;AAC7C,MAAA,IAAI;AACF,QAAA,SAAA,CAAU,KAAA,GAAQ,IAAA;AAClB,QAAA,MAAM,MAAA,GAAS,MAAM,KAAA,CAAM,OAAA,GAAU,GAAG,CAAA;AAExC,QAAA,gBAAA,EAAiB;AACjB,QAAA,OAAO,MAAA;AAAA,MACT,CAAA,SAAE;AACA,QAAA,SAAA,CAAU,KAAA,GAAQ,KAAA;AAAA,MACpB;AAAA,IACF,CAAA;AACA,IAAA,QAAA,CAAa;AAAA,MACX;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,6 +3,15 @@ export declare const buttonProps: {
3
3
  type: BooleanConstructor;
4
4
  default: undefined;
5
5
  };
6
+ /**
7
+ * Clarity 事件名称
8
+ * 点击成功时发送 Clarity 事件,事件名格式:{路由title|name|path} - {eventName|button文字}
9
+ * 如果没有 eventName 且 button 没有文字内容,则不发送事件
10
+ */
11
+ eventName: {
12
+ type: StringConstructor;
13
+ default: undefined;
14
+ };
6
15
  size: {
7
16
  readonly type: import("vue").PropType<"" | "small" | "default" | "large">;
8
17
  readonly required: false;
@@ -6,6 +6,15 @@ const buttonProps = {
6
6
  type: Boolean,
7
7
  default: void 0
8
8
  // 默认undefined,表示不使用loading
9
+ },
10
+ /**
11
+ * Clarity 事件名称
12
+ * 点击成功时发送 Clarity 事件,事件名格式:{路由title|name|path} - {eventName|button文字}
13
+ * 如果没有 eventName 且 button 没有文字内容,则不发送事件
14
+ */
15
+ eventName: {
16
+ type: String,
17
+ default: void 0
9
18
  }
10
19
  };
11
20
  const buttonEmits = {
@@ -1 +1 @@
1
- {"version":3,"file":"button.mjs","sources":["../../../../../../../packages/components/src/base/button/button.ts"],"sourcesContent":["import {\n buttonEmits as elButtonEmits,\n buttonNativeTypes as elButtonNativeTypes,\n buttonProps as elButtonProps,\n buttonTypes as elButtonTypes,\n} from 'element-plus';\n// import type { ExtractPropTypes } from 'vue';\n\nexport const buttonProps = {\n ...elButtonProps,\n loading: {\n type: Boolean,\n default: undefined, // 默认undefined,表示不使用loading\n },\n};\n\nexport const buttonEmits = {\n ...elButtonEmits,\n // 自定义事件\n // submit: (value: any) => !!value,\n};\n\nexport const buttonTypes = [...elButtonTypes];\n\nexport const buttonNativeTypes = [...elButtonNativeTypes];\n"],"names":["elButtonProps","elButtonEmits","elButtonTypes","elButtonNativeTypes"],"mappings":";;AAQO,MAAM,WAAA,GAAc;AAAA,EACzB,GAAGA,aAAA;AAAA,EACH,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS,KAAA;AAAA;AAAA;AAEb;AAEO,MAAM,WAAA,GAAc;AAAA,EACzB,GAAGC;AAAA;AAAA;AAGL;AAEO,MAAM,WAAA,GAAc,CAAC,GAAGC,aAAa;AAErC,MAAM,iBAAA,GAAoB,CAAC,GAAGC,mBAAmB;;;;"}
1
+ {"version":3,"file":"button.mjs","sources":["../../../../../../../packages/components/src/base/button/button.ts"],"sourcesContent":["import {\n buttonEmits as elButtonEmits,\n buttonNativeTypes as elButtonNativeTypes,\n buttonProps as elButtonProps,\n buttonTypes as elButtonTypes,\n} from 'element-plus';\n// import type { ExtractPropTypes } from 'vue';\n\nexport const buttonProps = {\n ...elButtonProps,\n loading: {\n type: Boolean,\n default: undefined, // 默认undefined,表示不使用loading\n },\n /**\n * Clarity 事件名称\n * 点击成功时发送 Clarity 事件,事件名格式:{路由title|name|path} - {eventName|button文字}\n * 如果没有 eventName 且 button 没有文字内容,则不发送事件\n */\n eventName: {\n type: String,\n default: undefined,\n },\n};\n\nexport const buttonEmits = {\n ...elButtonEmits,\n // 自定义事件\n // submit: (value: any) => !!value,\n};\n\nexport const buttonTypes = [...elButtonTypes];\n\nexport const buttonNativeTypes = [...elButtonNativeTypes];\n"],"names":["elButtonProps","elButtonEmits","elButtonTypes","elButtonNativeTypes"],"mappings":";;AAQO,MAAM,WAAA,GAAc;AAAA,EACzB,GAAGA,aAAA;AAAA,EACH,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS,KAAA;AAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,KAAA;AAAA;AAEb;AAEO,MAAM,WAAA,GAAc;AAAA,EACzB,GAAGC;AAAA;AAAA;AAGL;AAEO,MAAM,WAAA,GAAc,CAAC,GAAGC,aAAa;AAErC,MAAM,iBAAA,GAAoB,CAAC,GAAGC,mBAAmB;;;;"}
@@ -5,6 +5,10 @@ export declare const GmButton: import("../../../../utils").SFCWithInstall<{
5
5
  type: BooleanConstructor;
6
6
  default: undefined;
7
7
  };
8
+ eventName: {
9
+ type: StringConstructor;
10
+ default: undefined;
11
+ };
8
12
  size: {
9
13
  readonly type: import("vue").PropType<"" | "small" | "default" | "large">;
10
14
  readonly required: false;
@@ -95,6 +99,10 @@ export declare const GmButton: import("../../../../utils").SFCWithInstall<{
95
99
  type: BooleanConstructor;
96
100
  default: undefined;
97
101
  };
102
+ eventName: {
103
+ type: StringConstructor;
104
+ default: undefined;
105
+ };
98
106
  size: {
99
107
  readonly type: import("vue").PropType<"" | "small" | "default" | "large">;
100
108
  readonly required: false;
@@ -189,6 +197,7 @@ export declare const GmButton: import("../../../../utils").SFCWithInstall<{
189
197
  disabled: boolean;
190
198
  autofocus: boolean;
191
199
  loading: boolean;
200
+ eventName: string;
192
201
  nativeType: "button" | "reset" | "submit";
193
202
  loadingIcon: string | import("vue").Component;
194
203
  bg: boolean;
@@ -206,6 +215,10 @@ export declare const GmButton: import("../../../../utils").SFCWithInstall<{
206
215
  type: BooleanConstructor;
207
216
  default: undefined;
208
217
  };
218
+ eventName: {
219
+ type: StringConstructor;
220
+ default: undefined;
221
+ };
209
222
  size: {
210
223
  readonly type: import("vue").PropType<"" | "small" | "default" | "large">;
211
224
  readonly required: false;
@@ -302,6 +315,7 @@ export declare const GmButton: import("../../../../utils").SFCWithInstall<{
302
315
  disabled: boolean;
303
316
  autofocus: boolean;
304
317
  loading: boolean;
318
+ eventName: string;
305
319
  nativeType: "button" | "reset" | "submit";
306
320
  loadingIcon: string | import("vue").Component;
307
321
  bg: boolean;
@@ -316,6 +330,10 @@ export declare const GmButton: import("../../../../utils").SFCWithInstall<{
316
330
  type: BooleanConstructor;
317
331
  default: undefined;
318
332
  };
333
+ eventName: {
334
+ type: StringConstructor;
335
+ default: undefined;
336
+ };
319
337
  size: {
320
338
  readonly type: import("vue").PropType<"" | "small" | "default" | "large">;
321
339
  readonly required: false;
@@ -412,6 +430,7 @@ export declare const GmButton: import("../../../../utils").SFCWithInstall<{
412
430
  disabled: boolean;
413
431
  autofocus: boolean;
414
432
  loading: boolean;
433
+ eventName: string;
415
434
  nativeType: "button" | "reset" | "submit";
416
435
  loadingIcon: string | import("vue").Component;
417
436
  bg: boolean;
@@ -1 +1 @@
1
- export declare const version = "0.9.6";
1
+ export declare const version = "0.9.8-beta.1";
@@ -1,4 +1,4 @@
1
- const version = "0.9.6-beta.1";
1
+ const version = "0.9.8-beta.1";
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.9.6-beta.1';\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.9.8-beta.1';\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
@@ -17,7 +17,7 @@ const useLangListStore = defineStore("gmLangList", () => {
17
17
  if (data.code !== 200) {
18
18
  return;
19
19
  }
20
- langList.value = data.data;
20
+ langList.value = data.data.map((item) => item.id === 10 ? { ...item, name: "\u5370\u5C3C\u8BED" } : item);
21
21
  };
22
22
  tryOnMounted(() => {
23
23
  getLangList();
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../../packages/hooks/store/common/useLangList/index.ts"],"sourcesContent":["import { ref } from 'vue';\nimport { defineStore } from 'pinia';\nimport { tryOnMounted, useSessionStorage } from '@vueuse/core';\nimport { useLoading } from '@giime/hooks/base/useLoading/index';\nimport { postBasicV1LanguageListAll } from '@giime/api/guardBasic/controller';\nimport type { LanguageOpenVo } from '@giime/api/guardBasic/interface';\n\n/**语种列表 */\nexport const useLangListStore = defineStore('gmLangList', () => {\n // const langList = ref<GetV1BasicGetLangListResultData[]>([]);\n const langList = useSessionStorage<LanguageOpenVo[]>('gmLangList', [], { listenToStorageChanges: false });\n\n const { isLoading, exec: getLangListExec, getDataFinally } = useLoading(postBasicV1LanguageListAll);\n const isFinished = ref(false);\n\n const getLangList = async () => {\n if (langList.value.length !== 0 || isLoading.value) {\n return;\n }\n const { data } = await getLangListExec();\n if (data.code !== 200) {\n return;\n }\n langList.value = data.data;\n };\n tryOnMounted(() => {\n getLangList();\n });\n return {\n langList,\n isLoading,\n isFinished,\n getLangList,\n getDataFinally,\n };\n});\n"],"names":[],"mappings":";;;;;;;AAQO,MAAM,gBAAA,GAAmB,WAAA,CAAY,YAAA,EAAc,MAAM;AAE9D,EAAA,MAAM,QAAA,GAAW,kBAAoC,YAAA,EAAc,IAAI,EAAE,sBAAA,EAAwB,OAAO,CAAA;AAExG,EAAA,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,iBAAiB,cAAA,EAAe,GAAI,WAAW,0BAA0B,CAAA;AAClG,EAAA,MAAM,UAAA,GAAa,IAAI,KAAK,CAAA;AAE5B,EAAA,MAAM,cAAc,YAAY;AAC9B,IAAA,IAAI,QAAA,CAAS,KAAA,CAAM,MAAA,KAAW,CAAA,IAAK,UAAU,KAAA,EAAO;AAClD,MAAA;AAAA,IACF;AACA,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,eAAA,EAAgB;AACvC,IAAA,IAAI,IAAA,CAAK,SAAS,GAAA,EAAK;AACrB,MAAA;AAAA,IACF;AACA,IAAA,QAAA,CAAS,QAAQ,IAAA,CAAK,IAAA;AAAA,EACxB,CAAA;AACA,EAAA,YAAA,CAAa,MAAM;AACjB,IAAA,WAAA,EAAY;AAAA,EACd,CAAC,CAAA;AACD,EAAA,OAAO;AAAA,IACL,QAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../../packages/hooks/store/common/useLangList/index.ts"],"sourcesContent":["import { ref } from 'vue';\nimport { defineStore } from 'pinia';\nimport { tryOnMounted, useSessionStorage } from '@vueuse/core';\nimport { useLoading } from '@giime/hooks/base/useLoading/index';\nimport { postBasicV1LanguageListAll } from '@giime/api/guardBasic/controller';\nimport type { LanguageOpenVo } from '@giime/api/guardBasic/interface';\n\n/**语种列表 */\nexport const useLangListStore = defineStore('gmLangList', () => {\n // const langList = ref<GetV1BasicGetLangListResultData[]>([]);\n const langList = useSessionStorage<LanguageOpenVo[]>('gmLangList', [], { listenToStorageChanges: false });\n\n const { isLoading, exec: getLangListExec, getDataFinally } = useLoading(postBasicV1LanguageListAll);\n const isFinished = ref(false);\n\n const getLangList = async () => {\n if (langList.value.length !== 0 || isLoading.value) {\n return;\n }\n const { data } = await getLangListExec();\n if (data.code !== 200) {\n return;\n }\n langList.value = data.data.map(item => (item.id === 10 ? { ...item, name: '印尼语' } : item));\n };\n tryOnMounted(() => {\n getLangList();\n });\n return {\n langList,\n isLoading,\n isFinished,\n getLangList,\n getDataFinally,\n };\n});\n"],"names":[],"mappings":";;;;;;;AAQO,MAAM,gBAAA,GAAmB,WAAA,CAAY,YAAA,EAAc,MAAM;AAE9D,EAAA,MAAM,QAAA,GAAW,kBAAoC,YAAA,EAAc,IAAI,EAAE,sBAAA,EAAwB,OAAO,CAAA;AAExG,EAAA,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,iBAAiB,cAAA,EAAe,GAAI,WAAW,0BAA0B,CAAA;AAClG,EAAA,MAAM,UAAA,GAAa,IAAI,KAAK,CAAA;AAE5B,EAAA,MAAM,cAAc,YAAY;AAC9B,IAAA,IAAI,QAAA,CAAS,KAAA,CAAM,MAAA,KAAW,CAAA,IAAK,UAAU,KAAA,EAAO;AAClD,MAAA;AAAA,IACF;AACA,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,eAAA,EAAgB;AACvC,IAAA,IAAI,IAAA,CAAK,SAAS,GAAA,EAAK;AACrB,MAAA;AAAA,IACF;AACA,IAAA,QAAA,CAAS,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,UAAS,IAAA,CAAK,EAAA,KAAO,EAAA,GAAK,EAAE,GAAG,IAAA,EAAM,IAAA,EAAM,oBAAA,KAAU,IAAK,CAAA;AAAA,EAC3F,CAAA;AACA,EAAA,YAAA,CAAa,MAAM;AACjB,IAAA,WAAA,EAAY;AAAA,EACd,CAAC,CAAA;AACD,EAAA,OAAO;AAAA,IACL,QAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF,CAAC;;;;"}