giime 0.9.0-beta.2 → 0.9.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 (126) hide show
  1. package/dist/index.css +96 -92
  2. package/es/components/src/base/alert/Alert.vue.d.ts +1 -1
  3. package/es/components/src/base/alert/index.d.ts +3 -3
  4. package/es/components/src/base/cascader/Cascader.vue.d.ts +1 -1
  5. package/es/components/src/base/cascader/index.d.ts +3 -3
  6. package/es/components/src/base/col/Col.vue.d.ts +1 -1
  7. package/es/components/src/base/col/index.d.ts +3 -3
  8. package/es/components/src/base/dropdown/Dropdown.vue.d.ts +1 -1
  9. package/es/components/src/base/dropdown/index.d.ts +3 -3
  10. package/es/components/src/base/image/Image.vue.d.ts +3 -3
  11. package/es/components/src/base/image/image.d.ts +1 -1
  12. package/es/components/src/base/image/index.d.ts +7 -7
  13. package/es/components/src/base/popconfirm/Popconfirm.vue.d.ts +1 -1
  14. package/es/components/src/base/popconfirm/index.d.ts +3 -3
  15. package/es/components/src/base/popover/Popover.vue.d.ts +1 -1
  16. package/es/components/src/base/popover/index.d.ts +3 -3
  17. package/es/components/src/base/radioGroup/RadioGroup.vue.d.ts +1 -1
  18. package/es/components/src/base/radioGroup/index.d.ts +3 -3
  19. package/es/components/src/base/select/Select.vue.d.ts +1 -1
  20. package/es/components/src/base/select/index.d.ts +3 -3
  21. package/es/components/src/base/selectV2/SelectV2.vue.d.ts +1 -1
  22. package/es/components/src/base/selectV2/index.d.ts +3 -3
  23. package/es/components/src/base/space/Space.vue.d.ts +1 -1
  24. package/es/components/src/base/space/index.d.ts +3 -3
  25. package/es/components/src/base/table/Table.vue.d.ts +4 -4
  26. package/es/components/src/base/table/index.d.ts +8 -8
  27. package/es/components/src/base/table/table.d.ts +2 -2
  28. package/es/components/src/base/tableColumn/TableColumn.vue.d.ts +3 -3
  29. package/es/components/src/base/tableColumn/index.d.ts +7 -7
  30. package/es/components/src/base/tableColumn/tableColumn.d.ts +1 -1
  31. package/es/components/src/base/tag/Tag.vue.d.ts +1 -1
  32. package/es/components/src/base/tag/index.d.ts +3 -3
  33. package/es/components/src/base/timeSelect/TimeSelect.vue.d.ts +1 -1
  34. package/es/components/src/base/timeSelect/index.d.ts +3 -3
  35. package/es/components/src/base/tooltip/Tooltip.vue.d.ts +1 -1
  36. package/es/components/src/base/tooltip/index.d.ts +3 -3
  37. package/es/components/src/base/treeSelect/TreeSelect.vue.d.ts +1 -1
  38. package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs +55 -5
  39. package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs.map +1 -1
  40. package/es/components/src/composite/selectOptions/SelectOptions.vue.d.ts +1 -1
  41. package/es/components/src/composite/selectOptions/index.d.ts +3 -3
  42. package/es/components/src/composite/tableCustom/TableColumnVNodeRenderer.d.ts +35 -0
  43. package/es/components/src/composite/tableCustom/TableColumnVNodeRenderer.mjs +102 -0
  44. package/es/components/src/composite/tableCustom/TableColumnVNodeRenderer.mjs.map +1 -0
  45. package/es/components/src/composite/tableCustom/TableCustom.vue.d.ts +5 -5
  46. package/es/components/src/composite/tableCustom/TableCustom.vue.mjs +1 -1
  47. package/es/components/src/composite/tableCustom/TableCustom.vue2.mjs +5 -7
  48. package/es/components/src/composite/tableCustom/TableCustom.vue2.mjs.map +1 -1
  49. package/es/components/src/composite/tableCustom/index.d.ts +11 -11
  50. package/es/components/src/composite/tableCustom/tableCustom.d.ts +2 -2
  51. package/es/components/src/composite/tablePro/TablePro.vue.d.ts +5 -5
  52. package/es/components/src/composite/tablePro/index.d.ts +11 -11
  53. package/es/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue.d.ts +3 -3
  54. package/es/components/src/composite/tablePro/tableColumnPro/index.d.ts +7 -7
  55. package/es/components/src/composite/tablePro/tableColumnPro/tableColumnPro.d.ts +1 -1
  56. package/es/components/src/composite/tablePro/tablePro.d.ts +2 -2
  57. package/es/giime/version.d.ts +1 -1
  58. package/es/giime/version.mjs +1 -1
  59. package/es/giime/version.mjs.map +1 -1
  60. package/es/hooks/store/useLogin/index.d.ts +20 -2
  61. package/es/hooks/store/useLogin/index.mjs +29 -3
  62. package/es/hooks/store/useLogin/index.mjs.map +1 -1
  63. package/es/index.css +96 -92
  64. package/lib/components/src/base/alert/Alert.vue.d.ts +1 -1
  65. package/lib/components/src/base/alert/index.d.ts +3 -3
  66. package/lib/components/src/base/cascader/Cascader.vue.d.ts +1 -1
  67. package/lib/components/src/base/cascader/index.d.ts +3 -3
  68. package/lib/components/src/base/col/Col.vue.d.ts +1 -1
  69. package/lib/components/src/base/col/index.d.ts +3 -3
  70. package/lib/components/src/base/dropdown/Dropdown.vue.d.ts +1 -1
  71. package/lib/components/src/base/dropdown/index.d.ts +3 -3
  72. package/lib/components/src/base/image/Image.vue.d.ts +3 -3
  73. package/lib/components/src/base/image/image.d.ts +1 -1
  74. package/lib/components/src/base/image/index.d.ts +7 -7
  75. package/lib/components/src/base/popconfirm/Popconfirm.vue.d.ts +1 -1
  76. package/lib/components/src/base/popconfirm/index.d.ts +3 -3
  77. package/lib/components/src/base/popover/Popover.vue.d.ts +1 -1
  78. package/lib/components/src/base/popover/index.d.ts +3 -3
  79. package/lib/components/src/base/radioGroup/RadioGroup.vue.d.ts +1 -1
  80. package/lib/components/src/base/radioGroup/index.d.ts +3 -3
  81. package/lib/components/src/base/select/Select.vue.d.ts +1 -1
  82. package/lib/components/src/base/select/index.d.ts +3 -3
  83. package/lib/components/src/base/selectV2/SelectV2.vue.d.ts +1 -1
  84. package/lib/components/src/base/selectV2/index.d.ts +3 -3
  85. package/lib/components/src/base/space/Space.vue.d.ts +1 -1
  86. package/lib/components/src/base/space/index.d.ts +3 -3
  87. package/lib/components/src/base/table/Table.vue.d.ts +4 -4
  88. package/lib/components/src/base/table/index.d.ts +8 -8
  89. package/lib/components/src/base/table/table.d.ts +2 -2
  90. package/lib/components/src/base/tableColumn/TableColumn.vue.d.ts +3 -3
  91. package/lib/components/src/base/tableColumn/index.d.ts +7 -7
  92. package/lib/components/src/base/tableColumn/tableColumn.d.ts +1 -1
  93. package/lib/components/src/base/tag/Tag.vue.d.ts +1 -1
  94. package/lib/components/src/base/tag/index.d.ts +3 -3
  95. package/lib/components/src/base/timeSelect/TimeSelect.vue.d.ts +1 -1
  96. package/lib/components/src/base/timeSelect/index.d.ts +3 -3
  97. package/lib/components/src/base/tooltip/Tooltip.vue.d.ts +1 -1
  98. package/lib/components/src/base/tooltip/index.d.ts +3 -3
  99. package/lib/components/src/base/treeSelect/TreeSelect.vue.d.ts +1 -1
  100. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js +53 -3
  101. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js.map +1 -1
  102. package/lib/components/src/composite/selectOptions/SelectOptions.vue.d.ts +1 -1
  103. package/lib/components/src/composite/selectOptions/index.d.ts +3 -3
  104. package/lib/components/src/composite/tableCustom/TableColumnVNodeRenderer.d.ts +35 -0
  105. package/lib/components/src/composite/tableCustom/TableColumnVNodeRenderer.js +106 -0
  106. package/lib/components/src/composite/tableCustom/TableColumnVNodeRenderer.js.map +1 -0
  107. package/lib/components/src/composite/tableCustom/TableCustom.vue.d.ts +5 -5
  108. package/lib/components/src/composite/tableCustom/TableCustom.vue.js +1 -1
  109. package/lib/components/src/composite/tableCustom/TableCustom.vue2.js +5 -7
  110. package/lib/components/src/composite/tableCustom/TableCustom.vue2.js.map +1 -1
  111. package/lib/components/src/composite/tableCustom/index.d.ts +11 -11
  112. package/lib/components/src/composite/tableCustom/tableCustom.d.ts +2 -2
  113. package/lib/components/src/composite/tablePro/TablePro.vue.d.ts +5 -5
  114. package/lib/components/src/composite/tablePro/index.d.ts +11 -11
  115. package/lib/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue.d.ts +3 -3
  116. package/lib/components/src/composite/tablePro/tableColumnPro/index.d.ts +7 -7
  117. package/lib/components/src/composite/tablePro/tableColumnPro/tableColumnPro.d.ts +1 -1
  118. package/lib/components/src/composite/tablePro/tablePro.d.ts +2 -2
  119. package/lib/giime/version.d.ts +1 -1
  120. package/lib/giime/version.js +1 -1
  121. package/lib/giime/version.js.map +1 -1
  122. package/lib/hooks/store/useLogin/index.d.ts +20 -2
  123. package/lib/hooks/store/useLogin/index.js +28 -2
  124. package/lib/hooks/store/useLogin/index.js.map +1 -1
  125. package/lib/index.css +96 -92
  126. package/package.json +1 -1
@@ -100,7 +100,7 @@ export declare const GmTablePro: import("../../../../utils").SFCWithInstall<{
100
100
  defaultExpandAll: BooleanConstructor;
101
101
  defaultSort: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults.js").Sort | undefined>;
102
102
  tooltipEffect: StringConstructor;
103
- tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
103
+ tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
104
104
  spanMethod: import("vue").PropType<((data: {
105
105
  row: any;
106
106
  rowIndex: number;
@@ -141,7 +141,7 @@ export declare const GmTablePro: import("../../../../utils").SFCWithInstall<{
141
141
  default: string;
142
142
  };
143
143
  flexible: BooleanConstructor;
144
- showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
144
+ showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
145
145
  tooltipFormatter: import("vue").PropType<import("element-plus/es/components/table/src/util.js").TableOverflowTooltipFormatter<any> | undefined>;
146
146
  appendFilterPanelTo: StringConstructor;
147
147
  scrollbarTabindex: {
@@ -222,10 +222,10 @@ export declare const GmTablePro: import("../../../../utils").SFCWithInstall<{
222
222
  offset?: number | undefined;
223
223
  placement?: import("element-plus/es/utils/index.js").EpPropMergeType<StringConstructor, import("element-plus").Placement, unknown> | undefined;
224
224
  appendTo?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>) | ((new (...args: any[]) => string | HTMLElement) | (() => import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>))[], unknown, unknown> | undefined;
225
+ effect?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect) | ((new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect))[], unknown, unknown> | undefined;
225
226
  transition?: string | undefined;
226
227
  showAfter?: number | undefined;
227
228
  hideAfter?: number | undefined;
228
- effect?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect) | ((new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect))[], unknown, unknown> | undefined;
229
229
  popperClass?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | {
230
230
  [x: string]: boolean;
231
231
  } | (string | {
@@ -473,7 +473,7 @@ export declare const GmTablePro: import("../../../../utils").SFCWithInstall<{
473
473
  defaultExpandAll: BooleanConstructor;
474
474
  defaultSort: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults.js").Sort | undefined>;
475
475
  tooltipEffect: StringConstructor;
476
- tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
476
+ tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
477
477
  spanMethod: import("vue").PropType<((data: {
478
478
  row: any;
479
479
  rowIndex: number;
@@ -514,7 +514,7 @@ export declare const GmTablePro: import("../../../../utils").SFCWithInstall<{
514
514
  default: string;
515
515
  };
516
516
  flexible: BooleanConstructor;
517
- showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
517
+ showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
518
518
  tooltipFormatter: import("vue").PropType<import("element-plus/es/components/table/src/util.js").TableOverflowTooltipFormatter<any> | undefined>;
519
519
  appendFilterPanelTo: StringConstructor;
520
520
  scrollbarTabindex: {
@@ -690,7 +690,7 @@ export declare const GmTablePro: import("../../../../utils").SFCWithInstall<{
690
690
  defaultExpandAll: BooleanConstructor;
691
691
  defaultSort: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults.js").Sort | undefined>;
692
692
  tooltipEffect: StringConstructor;
693
- tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
693
+ tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
694
694
  spanMethod: import("vue").PropType<((data: {
695
695
  row: any;
696
696
  rowIndex: number;
@@ -731,7 +731,7 @@ export declare const GmTablePro: import("../../../../utils").SFCWithInstall<{
731
731
  default: string;
732
732
  };
733
733
  flexible: BooleanConstructor;
734
- showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
734
+ showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
735
735
  tooltipFormatter: import("vue").PropType<import("element-plus/es/components/table/src/util.js").TableOverflowTooltipFormatter<any> | undefined>;
736
736
  appendFilterPanelTo: StringConstructor;
737
737
  scrollbarTabindex: {
@@ -812,10 +812,10 @@ export declare const GmTablePro: import("../../../../utils").SFCWithInstall<{
812
812
  offset?: number | undefined;
813
813
  placement?: import("element-plus/es/utils/index.js").EpPropMergeType<StringConstructor, import("element-plus").Placement, unknown> | undefined;
814
814
  appendTo?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>) | ((new (...args: any[]) => string | HTMLElement) | (() => import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>))[], unknown, unknown> | undefined;
815
+ effect?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect) | ((new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect))[], unknown, unknown> | undefined;
815
816
  transition?: string | undefined;
816
817
  showAfter?: number | undefined;
817
818
  hideAfter?: number | undefined;
818
- effect?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect) | ((new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect))[], unknown, unknown> | undefined;
819
819
  popperClass?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | {
820
820
  [x: string]: boolean;
821
821
  } | (string | {
@@ -1080,7 +1080,7 @@ export declare const GmTablePro: import("../../../../utils").SFCWithInstall<{
1080
1080
  defaultExpandAll: BooleanConstructor;
1081
1081
  defaultSort: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults.js").Sort | undefined>;
1082
1082
  tooltipEffect: StringConstructor;
1083
- tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
1083
+ tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
1084
1084
  spanMethod: import("vue").PropType<((data: {
1085
1085
  row: any;
1086
1086
  rowIndex: number;
@@ -1121,7 +1121,7 @@ export declare const GmTablePro: import("../../../../utils").SFCWithInstall<{
1121
1121
  default: string;
1122
1122
  };
1123
1123
  flexible: BooleanConstructor;
1124
- showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
1124
+ showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
1125
1125
  tooltipFormatter: import("vue").PropType<import("element-plus/es/components/table/src/util.js").TableOverflowTooltipFormatter<any> | undefined>;
1126
1126
  appendFilterPanelTo: StringConstructor;
1127
1127
  scrollbarTabindex: {
@@ -1202,10 +1202,10 @@ export declare const GmTablePro: import("../../../../utils").SFCWithInstall<{
1202
1202
  offset?: number | undefined;
1203
1203
  placement?: import("element-plus/es/utils/index.js").EpPropMergeType<StringConstructor, import("element-plus").Placement, unknown> | undefined;
1204
1204
  appendTo?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>) | ((new (...args: any[]) => string | HTMLElement) | (() => import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>))[], unknown, unknown> | undefined;
1205
+ effect?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect) | ((new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect))[], unknown, unknown> | undefined;
1205
1206
  transition?: string | undefined;
1206
1207
  showAfter?: number | undefined;
1207
1208
  hideAfter?: number | undefined;
1208
- effect?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect) | ((new (...args: any[]) => string) | (() => import("element-plus/es/components/popper/index.js").PopperEffect))[], unknown, unknown> | undefined;
1209
1209
  popperClass?: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => string | {
1210
1210
  [x: string]: boolean;
1211
1211
  } | (string | {
@@ -64,7 +64,7 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
64
64
  align: StringConstructor;
65
65
  headerAlign: StringConstructor;
66
66
  showOverflowTooltip: {
67
- type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
67
+ type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
68
68
  default: undefined;
69
69
  };
70
70
  tooltipFormatter: import("vue").PropType<import("element-plus/es/components/table/src/util").TableOverflowTooltipFormatter<any> | undefined>;
@@ -143,7 +143,7 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
143
143
  align: StringConstructor;
144
144
  headerAlign: StringConstructor;
145
145
  showOverflowTooltip: {
146
- type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
146
+ type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
147
147
  default: undefined;
148
148
  };
149
149
  tooltipFormatter: import("vue").PropType<import("element-plus/es/components/table/src/util").TableOverflowTooltipFormatter<any> | undefined>;
@@ -168,7 +168,7 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
168
168
  minWidth: string | number;
169
169
  width: string | number;
170
170
  resizable: boolean;
171
- showOverflowTooltip: boolean | Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined;
171
+ showOverflowTooltip: boolean | Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined;
172
172
  sortable: string | boolean;
173
173
  reserveSelection: boolean;
174
174
  filterMultiple: boolean;
@@ -60,7 +60,7 @@ export declare const GmTableColumnPro: import("../../../../../utils").SFCWithIns
60
60
  align: StringConstructor;
61
61
  headerAlign: StringConstructor;
62
62
  showOverflowTooltip: {
63
- type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
63
+ type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
64
64
  default: undefined;
65
65
  };
66
66
  tooltipFormatter: import("vue").PropType<import("element-plus/es/components/table/src/util.js").TableOverflowTooltipFormatter<any> | undefined>;
@@ -139,7 +139,7 @@ export declare const GmTableColumnPro: import("../../../../../utils").SFCWithIns
139
139
  align: StringConstructor;
140
140
  headerAlign: StringConstructor;
141
141
  showOverflowTooltip: {
142
- type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
142
+ type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
143
143
  default: undefined;
144
144
  };
145
145
  tooltipFormatter: import("vue").PropType<import("element-plus/es/components/table/src/util.js").TableOverflowTooltipFormatter<any> | undefined>;
@@ -164,7 +164,7 @@ export declare const GmTableColumnPro: import("../../../../../utils").SFCWithIns
164
164
  minWidth: string | number;
165
165
  width: string | number;
166
166
  resizable: boolean;
167
- showOverflowTooltip: boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined;
167
+ showOverflowTooltip: boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined;
168
168
  sortable: string | boolean;
169
169
  reserveSelection: boolean;
170
170
  filterMultiple: boolean;
@@ -238,7 +238,7 @@ export declare const GmTableColumnPro: import("../../../../../utils").SFCWithIns
238
238
  align: StringConstructor;
239
239
  headerAlign: StringConstructor;
240
240
  showOverflowTooltip: {
241
- type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
241
+ type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
242
242
  default: undefined;
243
243
  };
244
244
  tooltipFormatter: import("vue").PropType<import("element-plus/es/components/table/src/util.js").TableOverflowTooltipFormatter<any> | undefined>;
@@ -263,7 +263,7 @@ export declare const GmTableColumnPro: import("../../../../../utils").SFCWithIns
263
263
  minWidth: string | number;
264
264
  width: string | number;
265
265
  resizable: boolean;
266
- showOverflowTooltip: boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined;
266
+ showOverflowTooltip: boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined;
267
267
  sortable: string | boolean;
268
268
  reserveSelection: boolean;
269
269
  filterMultiple: boolean;
@@ -334,7 +334,7 @@ export declare const GmTableColumnPro: import("../../../../../utils").SFCWithIns
334
334
  align: StringConstructor;
335
335
  headerAlign: StringConstructor;
336
336
  showOverflowTooltip: {
337
- type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
337
+ type: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
338
338
  default: undefined;
339
339
  };
340
340
  tooltipFormatter: import("vue").PropType<import("element-plus/es/components/table/src/util.js").TableOverflowTooltipFormatter<any> | undefined>;
@@ -359,7 +359,7 @@ export declare const GmTableColumnPro: import("../../../../../utils").SFCWithIns
359
359
  minWidth: string | number;
360
360
  width: string | number;
361
361
  resizable: boolean;
362
- showOverflowTooltip: boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined;
362
+ showOverflowTooltip: boolean | Partial<Pick<import("element-plus/es/components/tooltip/index.js").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined;
363
363
  sortable: string | boolean;
364
364
  reserveSelection: boolean;
365
365
  filterMultiple: boolean;
@@ -68,7 +68,7 @@ export declare const tableColumnProProps: {
68
68
  align: StringConstructor;
69
69
  headerAlign: StringConstructor;
70
70
  showOverflowTooltip: {
71
- type: PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
71
+ type: PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
72
72
  default: undefined;
73
73
  };
74
74
  tooltipFormatter: PropType<import("element-plus/es/components/table/src/util").TableOverflowTooltipFormatter<any> | undefined>;
@@ -98,7 +98,7 @@ export declare const tableProProps: {
98
98
  defaultExpandAll: BooleanConstructor;
99
99
  defaultSort: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").Sort | undefined>;
100
100
  tooltipEffect: StringConstructor;
101
- tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
101
+ tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
102
102
  spanMethod: import("vue").PropType<((data: {
103
103
  row: any;
104
104
  rowIndex: number;
@@ -139,7 +139,7 @@ export declare const tableProProps: {
139
139
  default: string;
140
140
  };
141
141
  flexible: BooleanConstructor;
142
- showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "transition" | "showAfter" | "hideAfter" | "effect" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
142
+ showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus/es/components/tooltip").ElTooltipProps, "offset" | "placement" | "appendTo" | "effect" | "transition" | "showAfter" | "hideAfter" | "popperClass" | "popperOptions" | "showArrow" | "enterable">> | undefined>;
143
143
  tooltipFormatter: import("vue").PropType<import("element-plus/es/components/table/src/util").TableOverflowTooltipFormatter<any> | undefined>;
144
144
  appendFilterPanelTo: StringConstructor;
145
145
  scrollbarTabindex: {
@@ -1 +1 @@
1
- export declare const version = "0.9.0-beta.2";
1
+ export declare const version = "0.9.1";
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const version = "0.9.0-beta.1";
3
+ const version = "0.9.1";
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.9.0-beta.1';\n"],"names":[],"mappings":";;AAAO,MAAM,OAAA,GAAU;;;;"}
1
+ {"version":3,"file":"version.js","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.9.1';\n"],"names":[],"mappings":";;AAAO,MAAM,OAAA,GAAU;;;;"}
@@ -18,6 +18,12 @@ export declare const useLoginStore: import("pinia").StoreDefinition<"gmLoginStor
18
18
  onLoginResultPromise: () => Promise<unknown>;
19
19
  /**监听登录弹窗关闭 promise版 */
20
20
  onCloseLoginResultPromise: () => Promise<undefined>;
21
+ /** 是否被阻止登录(30秒内触发超过5次) */
22
+ isLoginBlocked: import("vue").ComputedRef<boolean>;
23
+ /** 记录登录弹窗触发时间 */
24
+ recordLoginTrigger: () => void;
25
+ /** 重置登录阻止状态 */
26
+ resetLoginBlock: () => void;
21
27
  }, "showLogin" | "userToken" | "userId">, Pick<{
22
28
  /**是否显示登录弹窗 */
23
29
  showLogin: import("vue").Ref<boolean>;
@@ -30,7 +36,13 @@ export declare const useLoginStore: import("pinia").StoreDefinition<"gmLoginStor
30
36
  onLoginResultPromise: () => Promise<unknown>;
31
37
  /**监听登录弹窗关闭 promise版 */
32
38
  onCloseLoginResultPromise: () => Promise<undefined>;
33
- }, never>, Pick<{
39
+ /** 是否被阻止登录(30秒内触发超过5次) */
40
+ isLoginBlocked: import("vue").ComputedRef<boolean>;
41
+ /** 记录登录弹窗触发时间 */
42
+ recordLoginTrigger: () => void;
43
+ /** 重置登录阻止状态 */
44
+ resetLoginBlock: () => void;
45
+ }, "isLoginBlocked">, Pick<{
34
46
  /**是否显示登录弹窗 */
35
47
  showLogin: import("vue").Ref<boolean>;
36
48
  userToken: import("@vueuse/shared").RemovableRef<string | undefined>;
@@ -42,4 +54,10 @@ export declare const useLoginStore: import("pinia").StoreDefinition<"gmLoginStor
42
54
  onLoginResultPromise: () => Promise<unknown>;
43
55
  /**监听登录弹窗关闭 promise版 */
44
56
  onCloseLoginResultPromise: () => Promise<undefined>;
45
- }, "triggerLoginResult" | "onLoginResult" | "onLoginResultPromise" | "onCloseLoginResultPromise">>;
57
+ /** 是否被阻止登录(30秒内触发超过5次) */
58
+ isLoginBlocked: import("vue").ComputedRef<boolean>;
59
+ /** 记录登录弹窗触发时间 */
60
+ recordLoginTrigger: () => void;
61
+ /** 重置登录阻止状态 */
62
+ resetLoginBlock: () => void;
63
+ }, "triggerLoginResult" | "onLoginResult" | "onLoginResultPromise" | "onCloseLoginResultPromise" | "recordLoginTrigger" | "resetLoginBlock">>;
@@ -4,11 +4,27 @@ var vue = require('vue');
4
4
  var pinia = require('pinia');
5
5
  var core = require('@vueuse/core');
6
6
 
7
+ const LOGIN_WINDOW_MS = 30 * 1e3;
8
+ const LOGIN_MAX_TRIGGERS = 5;
7
9
  const useLoginStore = pinia.defineStore("gmLoginStore", () => {
8
10
  const showLogin = vue.ref(false);
9
11
  const userToken = core.useSessionStorage("gmUserToken", void 0);
10
12
  const userId = core.useSessionStorage("gmUserId", void 0);
11
13
  const loginResult = core.createEventHook();
14
+ const loginTriggerTimestamps = vue.ref([]);
15
+ const isLoginBlocked = vue.computed(() => {
16
+ const now = Date.now();
17
+ const recentCount = loginTriggerTimestamps.value.filter((t) => now - t < LOGIN_WINDOW_MS).length;
18
+ return recentCount >= LOGIN_MAX_TRIGGERS;
19
+ });
20
+ const recordLoginTrigger = () => {
21
+ const now = Date.now();
22
+ loginTriggerTimestamps.value = loginTriggerTimestamps.value.filter((t) => now - t < LOGIN_WINDOW_MS);
23
+ loginTriggerTimestamps.value.push(now);
24
+ };
25
+ const resetLoginBlock = () => {
26
+ loginTriggerTimestamps.value = [];
27
+ };
12
28
  const triggerLoginResult = loginResult.trigger;
13
29
  const onLoginResultPromise = () => new Promise((resolve) => {
14
30
  loginResult.on(resolve);
@@ -18,7 +34,10 @@ const useLoginStore = pinia.defineStore("gmLoginStore", () => {
18
34
  const onCloseLoginResultPromise = () => new Promise((resolve) => {
19
35
  closeLoginResult.on(resolve);
20
36
  });
21
- vue.watch(showLogin, (newValue) => {
37
+ vue.watch(showLogin, (newValue, oldValue) => {
38
+ if (newValue && !oldValue) {
39
+ recordLoginTrigger();
40
+ }
22
41
  if (!newValue) {
23
42
  triggerCloseLoginResult();
24
43
  }
@@ -34,7 +53,14 @@ const useLoginStore = pinia.defineStore("gmLoginStore", () => {
34
53
  /** 监听登录成功 promise版 */
35
54
  onLoginResultPromise,
36
55
  /**监听登录弹窗关闭 promise版 */
37
- onCloseLoginResultPromise
56
+ onCloseLoginResultPromise,
57
+ // 401循环保护相关
58
+ /** 是否被阻止登录(30秒内触发超过5次) */
59
+ isLoginBlocked,
60
+ /** 记录登录弹窗触发时间 */
61
+ recordLoginTrigger,
62
+ /** 重置登录阻止状态 */
63
+ resetLoginBlock
38
64
  };
39
65
  });
40
66
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../packages/hooks/store/useLogin/index.ts"],"sourcesContent":["import { ref, watch } from 'vue';\nimport { defineStore } from 'pinia';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars // 下面行不能删除,否则会报错\nimport { type EventHookOn, type EventHookTrigger, createEventHook, useSessionStorage } from '@vueuse/core';\n/**监听登录成功响应的数据 */\nexport interface LoggedResultData {\n token: string;\n userId: string;\n}\n/**登录store */\nexport const useLoginStore = defineStore('gmLoginStore', () => {\n const showLogin = ref(false);\n const userToken = useSessionStorage<string | undefined>('gmUserToken', undefined);\n const userId = useSessionStorage<string | undefined>('gmUserId', undefined);\n const loginResult = createEventHook();\n const triggerLoginResult = loginResult.trigger;\n /**监听登录成功 promise版 */\n const onLoginResultPromise = () =>\n new Promise(resolve => {\n loginResult.on(resolve);\n });\n /**关闭登录弹窗事件 */\n const closeLoginResult = createEventHook();\n const triggerCloseLoginResult = closeLoginResult.trigger;\n /**监听登录弹窗关闭 promise版 */\n const onCloseLoginResultPromise = () =>\n new Promise<undefined>(resolve => {\n closeLoginResult.on(resolve);\n });\n watch(showLogin, newValue => {\n if (!newValue) {\n triggerCloseLoginResult();\n }\n });\n return {\n /**是否显示登录弹窗 */\n showLogin,\n userToken,\n userId,\n triggerLoginResult,\n /** 监听登录成功*/\n onLoginResult: loginResult.on,\n /** 监听登录成功 promise版 */\n onLoginResultPromise,\n /**监听登录弹窗关闭 promise版 */\n onCloseLoginResultPromise,\n };\n});\n"],"names":["defineStore","ref","useSessionStorage","createEventHook","watch"],"mappings":";;;;;;AAUO,MAAM,aAAA,GAAgBA,iBAAA,CAAY,cAAA,EAAgB,MAAM;AAC7D,EAAA,MAAM,SAAA,GAAYC,QAAI,KAAK,CAAA;AAC3B,EAAA,MAAM,SAAA,GAAYC,sBAAA,CAAsC,aAAA,EAAe,KAAA,CAAS,CAAA;AAChF,EAAA,MAAM,MAAA,GAASA,sBAAA,CAAsC,UAAA,EAAY,KAAA,CAAS,CAAA;AAC1E,EAAA,MAAM,cAAcC,oBAAA,EAAgB;AACpC,EAAA,MAAM,qBAAqB,WAAA,CAAY,OAAA;AAEvC,EAAA,MAAM,oBAAA,GAAuB,MAC3B,IAAI,OAAA,CAAQ,CAAA,OAAA,KAAW;AACrB,IAAA,WAAA,CAAY,GAAG,OAAO,CAAA;AAAA,EACxB,CAAC,CAAA;AAEH,EAAA,MAAM,mBAAmBA,oBAAA,EAAgB;AACzC,EAAA,MAAM,0BAA0B,gBAAA,CAAiB,OAAA;AAEjD,EAAA,MAAM,yBAAA,GAA4B,MAChC,IAAI,OAAA,CAAmB,CAAA,OAAA,KAAW;AAChC,IAAA,gBAAA,CAAiB,GAAG,OAAO,CAAA;AAAA,EAC7B,CAAC,CAAA;AACH,EAAAC,SAAA,CAAM,WAAW,CAAA,QAAA,KAAY;AAC3B,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,uBAAA,EAAwB;AAAA,IAC1B;AAAA,EACF,CAAC,CAAA;AACD,EAAA,OAAO;AAAA;AAAA,IAEL,SAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,kBAAA;AAAA;AAAA,IAEA,eAAe,WAAA,CAAY,EAAA;AAAA;AAAA,IAE3B,oBAAA;AAAA;AAAA,IAEA;AAAA,GACF;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../packages/hooks/store/useLogin/index.ts"],"sourcesContent":["import { computed, ref, watch } from 'vue';\nimport { defineStore } from 'pinia';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars // 下面行不能删除,否则会报错\nimport { type EventHookOn, type EventHookTrigger, createEventHook, useSessionStorage } from '@vueuse/core';\n/**监听登录成功响应的数据 */\nexport interface LoggedResultData {\n token: string;\n userId: string;\n}\n\n/** 401循环保护配置 */\nconst LOGIN_WINDOW_MS = 30 * 1000; // 30秒时间窗口\nconst LOGIN_MAX_TRIGGERS = 5; // 最大触发次数\n/**登录store */\nexport const useLoginStore = defineStore('gmLoginStore', () => {\n const showLogin = ref(false);\n const userToken = useSessionStorage<string | undefined>('gmUserToken', undefined);\n const userId = useSessionStorage<string | undefined>('gmUserId', undefined);\n const loginResult = createEventHook();\n\n // ========== 401循环保护机制 ==========\n /** 记录登录弹窗触发的时间戳 */\n const loginTriggerTimestamps = ref<number[]>([]);\n\n /** 检查是否被阻止(30秒内触发超过5次) */\n const isLoginBlocked = computed(() => {\n const now = Date.now();\n const recentCount = loginTriggerTimestamps.value.filter(t => now - t < LOGIN_WINDOW_MS).length;\n return recentCount >= LOGIN_MAX_TRIGGERS;\n });\n\n /** 记录登录弹窗触发时间 */\n const recordLoginTrigger = () => {\n const now = Date.now();\n // 清理过期的时间戳\n loginTriggerTimestamps.value = loginTriggerTimestamps.value.filter(t => now - t < LOGIN_WINDOW_MS);\n // 添加当前时间戳\n loginTriggerTimestamps.value.push(now);\n };\n\n /** 重置登录阻止状态(清空时间戳) */\n const resetLoginBlock = () => {\n loginTriggerTimestamps.value = [];\n };\n // ========== 401循环保护机制 END ==========\n const triggerLoginResult = loginResult.trigger;\n /**监听登录成功 promise版 */\n const onLoginResultPromise = () =>\n new Promise(resolve => {\n loginResult.on(resolve);\n });\n /**关闭登录弹窗事件 */\n const closeLoginResult = createEventHook();\n const triggerCloseLoginResult = closeLoginResult.trigger;\n /**监听登录弹窗关闭 promise版 */\n const onCloseLoginResultPromise = () =>\n new Promise<undefined>(resolve => {\n closeLoginResult.on(resolve);\n });\n watch(showLogin, (newValue, oldValue) => {\n // 弹窗打开时记录触发时间(用于401循环保护)\n if (newValue && !oldValue) {\n recordLoginTrigger();\n }\n // 弹窗关闭时触发关闭事件\n if (!newValue) {\n triggerCloseLoginResult();\n }\n });\n return {\n /**是否显示登录弹窗 */\n showLogin,\n userToken,\n userId,\n triggerLoginResult,\n /** 监听登录成功*/\n onLoginResult: loginResult.on,\n /** 监听登录成功 promise版 */\n onLoginResultPromise,\n /**监听登录弹窗关闭 promise版 */\n onCloseLoginResultPromise,\n // 401循环保护相关\n /** 是否被阻止登录(30秒内触发超过5次) */\n isLoginBlocked,\n /** 记录登录弹窗触发时间 */\n recordLoginTrigger,\n /** 重置登录阻止状态 */\n resetLoginBlock,\n };\n});\n"],"names":["defineStore","ref","useSessionStorage","createEventHook","computed","watch"],"mappings":";;;;;;AAWA,MAAM,kBAAkB,EAAA,GAAK,GAAA;AAC7B,MAAM,kBAAA,GAAqB,CAAA;AAEpB,MAAM,aAAA,GAAgBA,iBAAA,CAAY,cAAA,EAAgB,MAAM;AAC7D,EAAA,MAAM,SAAA,GAAYC,QAAI,KAAK,CAAA;AAC3B,EAAA,MAAM,SAAA,GAAYC,sBAAA,CAAsC,aAAA,EAAe,KAAA,CAAS,CAAA;AAChF,EAAA,MAAM,MAAA,GAASA,sBAAA,CAAsC,UAAA,EAAY,KAAA,CAAS,CAAA;AAC1E,EAAA,MAAM,cAAcC,oBAAA,EAAgB;AAIpC,EAAA,MAAM,sBAAA,GAAyBF,OAAA,CAAc,EAAE,CAAA;AAG/C,EAAA,MAAM,cAAA,GAAiBG,aAAS,MAAM;AACpC,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,IAAA,MAAM,WAAA,GAAc,uBAAuB,KAAA,CAAM,MAAA,CAAO,OAAK,GAAA,GAAM,CAAA,GAAI,eAAe,CAAA,CAAE,MAAA;AACxF,IAAA,OAAO,WAAA,IAAe,kBAAA;AAAA,EACxB,CAAC,CAAA;AAGD,EAAA,MAAM,qBAAqB,MAAM;AAC/B,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AAErB,IAAA,sBAAA,CAAuB,QAAQ,sBAAA,CAAuB,KAAA,CAAM,OAAO,CAAA,CAAA,KAAK,GAAA,GAAM,IAAI,eAAe,CAAA;AAEjG,IAAA,sBAAA,CAAuB,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA,EACvC,CAAA;AAGA,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,sBAAA,CAAuB,QAAQ,EAAC;AAAA,EAClC,CAAA;AAEA,EAAA,MAAM,qBAAqB,WAAA,CAAY,OAAA;AAEvC,EAAA,MAAM,oBAAA,GAAuB,MAC3B,IAAI,OAAA,CAAQ,CAAA,OAAA,KAAW;AACrB,IAAA,WAAA,CAAY,GAAG,OAAO,CAAA;AAAA,EACxB,CAAC,CAAA;AAEH,EAAA,MAAM,mBAAmBD,oBAAA,EAAgB;AACzC,EAAA,MAAM,0BAA0B,gBAAA,CAAiB,OAAA;AAEjD,EAAA,MAAM,yBAAA,GAA4B,MAChC,IAAI,OAAA,CAAmB,CAAA,OAAA,KAAW;AAChC,IAAA,gBAAA,CAAiB,GAAG,OAAO,CAAA;AAAA,EAC7B,CAAC,CAAA;AACH,EAAAE,SAAA,CAAM,SAAA,EAAW,CAAC,QAAA,EAAU,QAAA,KAAa;AAEvC,IAAA,IAAI,QAAA,IAAY,CAAC,QAAA,EAAU;AACzB,MAAA,kBAAA,EAAmB;AAAA,IACrB;AAEA,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,uBAAA,EAAwB;AAAA,IAC1B;AAAA,EACF,CAAC,CAAA;AACD,EAAA,OAAO;AAAA;AAAA,IAEL,SAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,kBAAA;AAAA;AAAA,IAEA,eAAe,WAAA,CAAY,EAAA;AAAA;AAAA,IAE3B,oBAAA;AAAA;AAAA,IAEA,yBAAA;AAAA;AAAA;AAAA,IAGA,cAAA;AAAA;AAAA,IAEA,kBAAA;AAAA;AAAA,IAEA;AAAA,GACF;AACF,CAAC;;;;"}