giime 0.3.14 → 0.3.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/index.css +47 -4
  2. package/es/components/src/base/select/Select.vue.d.ts +1 -0
  3. package/es/components/src/base/select/Select.vue.mjs +2 -1
  4. package/es/components/src/base/select/Select.vue.mjs.map +1 -1
  5. package/es/components/src/base/select/Select.vue2.mjs +32 -8
  6. package/es/components/src/base/select/Select.vue2.mjs.map +1 -1
  7. package/es/components/src/base/select/Select.vue3.mjs +4 -0
  8. package/es/components/src/base/select/Select.vue3.mjs.map +1 -0
  9. package/es/components/src/base/select/index.d.ts +1 -0
  10. package/es/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue.d.ts +9 -0
  11. package/es/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue2.mjs +2 -1
  12. package/es/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue2.mjs.map +1 -1
  13. package/es/components/src/composite/searchForm/searchFormItems/select/index.d.ts +9 -0
  14. package/es/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.d.ts +4 -0
  15. package/es/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.mjs +4 -0
  16. package/es/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.mjs.map +1 -1
  17. package/es/components/src/composite/selectOptions/SelectOptions.vue.d.ts +15 -2
  18. package/es/components/src/composite/selectOptions/SelectOptions.vue2.mjs +58 -7
  19. package/es/components/src/composite/selectOptions/SelectOptions.vue2.mjs.map +1 -1
  20. package/es/components/src/composite/selectOptions/index.d.ts +415 -105
  21. package/es/giime/version.d.ts +1 -1
  22. package/es/giime/version.mjs +1 -1
  23. package/es/giime/version.mjs.map +1 -1
  24. package/es/hooks/base/useDownload/index.d.ts +1 -1
  25. package/es/hooks/base/useDownload/index.mjs +7 -7
  26. package/es/hooks/base/useDownload/index.mjs.map +1 -1
  27. package/es/hooks/base/useIDBKeyval/index.d.ts +4 -0
  28. package/es/hooks/base/useIDBKeyval/index.mjs.map +1 -1
  29. package/es/index.css +47 -4
  30. package/lib/components/src/base/select/Select.vue.d.ts +1 -0
  31. package/lib/components/src/base/select/Select.vue.js +2 -1
  32. package/lib/components/src/base/select/Select.vue.js.map +1 -1
  33. package/lib/components/src/base/select/Select.vue2.js +31 -7
  34. package/lib/components/src/base/select/Select.vue2.js.map +1 -1
  35. package/lib/components/src/base/select/Select.vue3.js +8 -0
  36. package/lib/components/src/base/select/Select.vue3.js.map +1 -0
  37. package/lib/components/src/base/select/index.d.ts +1 -0
  38. package/lib/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue.d.ts +9 -0
  39. package/lib/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue2.js +2 -1
  40. package/lib/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue2.js.map +1 -1
  41. package/lib/components/src/composite/searchForm/searchFormItems/select/index.d.ts +9 -0
  42. package/lib/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.d.ts +4 -0
  43. package/lib/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.js +4 -0
  44. package/lib/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.js.map +1 -1
  45. package/lib/components/src/composite/selectOptions/SelectOptions.vue.d.ts +15 -2
  46. package/lib/components/src/composite/selectOptions/SelectOptions.vue2.js +57 -6
  47. package/lib/components/src/composite/selectOptions/SelectOptions.vue2.js.map +1 -1
  48. package/lib/components/src/composite/selectOptions/index.d.ts +415 -105
  49. package/lib/giime/version.d.ts +1 -1
  50. package/lib/giime/version.js +1 -1
  51. package/lib/giime/version.js.map +1 -1
  52. package/lib/hooks/base/useDownload/index.d.ts +1 -1
  53. package/lib/hooks/base/useDownload/index.js +7 -7
  54. package/lib/hooks/base/useDownload/index.js.map +1 -1
  55. package/lib/hooks/base/useIDBKeyval/index.d.ts +4 -0
  56. package/lib/hooks/base/useIDBKeyval/index.js.map +1 -1
  57. package/lib/index.css +47 -4
  58. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -569,6 +569,9 @@ video {
569
569
  .gm-inline-block {
570
570
  display: inline-block;
571
571
  }
572
+ .gm-inline {
573
+ display: inline;
574
+ }
572
575
  .gm-flex {
573
576
  display: flex;
574
577
  }
@@ -587,6 +590,9 @@ video {
587
590
  .gm-h-1 {
588
591
  height: 0.25rem;
589
592
  }
593
+ .gm-h-\[30px\] {
594
+ height: 30px;
595
+ }
590
596
  .gm-h-\[36px\] {
591
597
  height: 36px;
592
598
  }
@@ -602,6 +608,9 @@ video {
602
608
  .gm-w-\[120px\] {
603
609
  width: 120px;
604
610
  }
611
+ .gm-w-\[30px\] {
612
+ width: 30px;
613
+ }
605
614
  .gm-w-full {
606
615
  width: 100%;
607
616
  }
@@ -671,6 +680,9 @@ video {
671
680
  --tw-bg-opacity: 1;
672
681
  background-color: rgb(236 254 255 / var(--tw-bg-opacity));
673
682
  }
683
+ .gm-stroke-2 {
684
+ stroke-width: 2;
685
+ }
674
686
  .gm-p-4 {
675
687
  padding: 1rem;
676
688
  }
@@ -755,10 +767,6 @@ video {
755
767
  margin: 0;
756
768
  }
757
769
 
758
- [data-v-ec3af0bb] .gmSearchForm .el-form-item {
759
- margin-right: 0;
760
- margin-bottom: 4px;
761
- }
762
770
  .gm-flex-center[data-v-2a79bac9] {
763
771
  align-items: center;
764
772
  }
@@ -766,6 +774,37 @@ video {
766
774
  .gm-flex-justify-between[data-v-2a79bac9] {
767
775
  justify-content: space-between;
768
776
  }
777
+ .circular[data-v-b391445c] {
778
+ animation: loading-rotate-b391445c 2s linear infinite;
779
+ }
780
+
781
+ .path[data-v-b391445c] {
782
+ animation: loading-dash-b391445c 1.5s ease-in-out infinite;
783
+ stroke-dasharray: 90, 150;
784
+ stroke-dashoffset: 0;
785
+ stroke: var(--el-color-primary);
786
+ stroke-linecap: round;
787
+ }
788
+
789
+ @keyframes loading-rotate-b391445c {
790
+ to {
791
+ transform: rotate(360deg);
792
+ }
793
+ }
794
+ @keyframes loading-dash-b391445c {
795
+ 0% {
796
+ stroke-dasharray: 1, 200;
797
+ stroke-dashoffset: 0;
798
+ }
799
+ 50% {
800
+ stroke-dasharray: 90, 150;
801
+ stroke-dashoffset: -40px;
802
+ }
803
+ 100% {
804
+ stroke-dasharray: 90, 150;
805
+ stroke-dashoffset: -120px;
806
+ }
807
+ }
769
808
  .gm-number-interval-single[data-v-47a13fd0] {
770
809
  border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
771
810
  box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
@@ -807,6 +846,10 @@ video {
807
846
  [data-v-72a53f6c] .gmTableNoBorder .el-table__border-left-patch {
808
847
  height: 0;
809
848
  }
849
+ [data-v-ec3af0bb] .gmSearchForm .el-form-item {
850
+ margin-right: 0;
851
+ margin-bottom: 4px;
852
+ }
810
853
 
811
854
  .pagination-container[data-v-19230954] {
812
855
  background: #fff;
@@ -206,6 +206,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
206
206
  empty?(_: {}): any;
207
207
  tag?(_: {}): any;
208
208
  loading?(_: {}): any;
209
+ label?(_: any): any;
209
210
  }>;
210
211
  export default _default;
211
212
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -1,7 +1,8 @@
1
1
  import _sfc_main from './Select.vue2.mjs';
2
+ import './Select.vue3.mjs';
2
3
  import _export_sfc from '../../../../_virtual/_plugin-vue_export-helper.mjs';
3
4
 
4
- var Select = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "Select.vue"]]);
5
+ var Select = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b391445c"], ["__file", "Select.vue"]]);
5
6
 
6
7
  export { Select as default };
7
8
  //# sourceMappingURL=Select.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"Select.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, useSlots, ref, resolveComponent, openBlock, createBlock, mergeProps, toHandlers, unref, createSlots, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, useSlots, ref, resolveComponent, openBlock, createBlock, mergeProps, toHandlers, unref, createSlots, withCtx, renderSlot, createElementBlock, createElementVNode, normalizeProps, guardReactiveProps } from 'vue';
2
2
  import '../../../../utils/index.mjs';
3
3
  import { selectProps, selectEmits, elSelectEmits } from './select.mjs';
4
4
  import { getGmEvent } from '../../../../utils/src/elementPlus/event.mjs';
@@ -37,51 +37,75 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
37
37
  unref(slots).default ? {
38
38
  name: "default",
39
39
  fn: withCtx(() => [
40
- renderSlot(_ctx.$slots, "default")
40
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
41
41
  ]),
42
42
  key: "0"
43
43
  } : void 0,
44
44
  unref(slots).header ? {
45
45
  name: "header",
46
46
  fn: withCtx(() => [
47
- renderSlot(_ctx.$slots, "header")
47
+ renderSlot(_ctx.$slots, "header", {}, void 0, true)
48
48
  ]),
49
49
  key: "1"
50
50
  } : void 0,
51
51
  unref(slots).footer ? {
52
52
  name: "footer",
53
53
  fn: withCtx(() => [
54
- renderSlot(_ctx.$slots, "footer")
54
+ renderSlot(_ctx.$slots, "footer", {}, void 0, true)
55
55
  ]),
56
56
  key: "2"
57
57
  } : void 0,
58
58
  unref(slots).prefix ? {
59
59
  name: "prefix",
60
60
  fn: withCtx(() => [
61
- renderSlot(_ctx.$slots, "prefix")
61
+ renderSlot(_ctx.$slots, "prefix", {}, void 0, true)
62
62
  ]),
63
63
  key: "3"
64
64
  } : void 0,
65
65
  unref(slots).empty ? {
66
66
  name: "empty",
67
67
  fn: withCtx(() => [
68
- renderSlot(_ctx.$slots, "empty")
68
+ renderSlot(_ctx.$slots, "empty", {}, void 0, true)
69
69
  ]),
70
70
  key: "4"
71
71
  } : void 0,
72
72
  unref(slots).tag ? {
73
73
  name: "tag",
74
74
  fn: withCtx(() => [
75
- renderSlot(_ctx.$slots, "tag")
75
+ renderSlot(_ctx.$slots, "tag", {}, void 0, true)
76
76
  ]),
77
77
  key: "5"
78
78
  } : void 0,
79
79
  unref(slots).loading ? {
80
80
  name: "loading",
81
81
  fn: withCtx(() => [
82
- renderSlot(_ctx.$slots, "loading")
82
+ renderSlot(_ctx.$slots, "loading", {}, void 0, true)
83
83
  ]),
84
84
  key: "6"
85
+ } : {
86
+ name: "loading",
87
+ fn: withCtx(() => [
88
+ (openBlock(), createElementBlock("svg", {
89
+ class: "circular gm-inline gm-h-[30px] gm-w-[30px]",
90
+ viewBox: "0 0 50 50"
91
+ }, [
92
+ createElementVNode("circle", {
93
+ class: "path gm-stroke-2",
94
+ cx: "25",
95
+ cy: "25",
96
+ r: "20",
97
+ fill: "none"
98
+ })
99
+ ]))
100
+ ]),
101
+ key: "7"
102
+ },
103
+ unref(slots).label ? {
104
+ name: "label",
105
+ fn: withCtx((slotValue) => [
106
+ renderSlot(_ctx.$slots, "label", normalizeProps(guardReactiveProps(slotValue)), void 0, true)
107
+ ]),
108
+ key: "8"
85
109
  } : void 0
86
110
  ]),
87
111
  1040
@@ -1 +1 @@
1
- {"version":3,"file":"Select.vue2.mjs","sources":["../../../../../../../packages/components/src/base/select/Select.vue"],"sourcesContent":["<template>\r\n <el-select ref=\"elRef\" v-bind=\"props\" v-on=\"elEvents\">\r\n <template v-if=\"slots.default\" #default>\r\n <slot name=\"default\" />\r\n </template>\r\n <template v-if=\"slots.header\" #header>\r\n <slot name=\"header\" />\r\n </template>\r\n <template v-if=\"slots.footer\" #footer>\r\n <slot name=\"footer\" />\r\n </template>\r\n <template v-if=\"slots.prefix\" #prefix>\r\n <slot name=\"prefix\" />\r\n </template>\r\n <template v-if=\"slots.empty\" #empty>\r\n <slot name=\"empty\" />\r\n </template>\r\n <template v-if=\"slots.tag\" #tag>\r\n <slot name=\"tag\" />\r\n </template>\r\n <template v-if=\"slots.loading\" #loading>\r\n <slot name=\"loading\" />\r\n </template>\r\n </el-select>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { ref, useSlots } from 'vue';\r\nimport { getGmEvent, getGmExports } from '@giime/utils';\r\nimport { elSelectEmits, selectEmits, selectProps } from './select';\r\n\r\ndefineOptions({\r\n name: 'GmSelect',\r\n});\r\nconst slots = useSlots();\r\nconst props = defineProps(selectProps);\r\nconst emit = defineEmits(selectEmits);\r\n// 重发el的事件\r\nconst elEvents = getGmEvent(elSelectEmits, emit);\r\n\r\nconst elRef = ref();\r\nconst exposeNames = ['focus', 'blur'] as const;\r\nconst { exposeFns } = getGmExports(elRef, exposeNames);\r\n\r\ndefineExpose({\r\n ...exposeFns,\r\n});\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAiCA,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AACvB,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,MAAA,QAAA,GAAW,UAAW,CAAA,aAAA,EAAe,IAAI,CAAA,CAAA;AAE/C,IAAA,MAAM,QAAQ,GAAI,EAAA,CAAA;AAClB,IAAM,MAAA,WAAA,GAAc,CAAC,OAAA,EAAS,MAAM,CAAA,CAAA;AACpC,IAAA,MAAM,EAAE,SAAA,EAAc,GAAA,YAAA,CAAa,OAAO,WAAW,CAAA,CAAA;AAErD,IAAa,QAAA,CAAA;AAAA,MACX,GAAG,SAAA;AAAA,KACJ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Select.vue2.mjs","sources":["../../../../../../../packages/components/src/base/select/Select.vue"],"sourcesContent":["<template>\r\n <el-select ref=\"elRef\" v-bind=\"props\" v-on=\"elEvents\">\r\n <template v-if=\"slots.default\" #default>\r\n <slot name=\"default\" />\r\n </template>\r\n <template v-if=\"slots.header\" #header>\r\n <slot name=\"header\" />\r\n </template>\r\n <template v-if=\"slots.footer\" #footer>\r\n <slot name=\"footer\" />\r\n </template>\r\n <template v-if=\"slots.prefix\" #prefix>\r\n <slot name=\"prefix\" />\r\n </template>\r\n <template v-if=\"slots.empty\" #empty>\r\n <slot name=\"empty\" />\r\n </template>\r\n <template v-if=\"slots.tag\" #tag>\r\n <slot name=\"tag\" />\r\n </template>\r\n <template v-if=\"slots.loading\" #loading>\r\n <slot name=\"loading\" />\r\n </template>\r\n <template v-else #loading>\r\n <svg class=\"circular gm-inline gm-h-[30px] gm-w-[30px]\" viewBox=\"0 0 50 50\">\r\n <circle class=\"path gm-stroke-2\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" />\r\n </svg>\r\n </template>\r\n <template v-if=\"slots.label\" #label=\"slotValue\">\r\n <slot name=\"label\" v-bind=\"slotValue\" />\r\n </template>\r\n </el-select>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { ref, useSlots } from 'vue';\r\nimport { getGmEvent, getGmExports } from '@giime/utils';\r\nimport { elSelectEmits, selectEmits, selectProps } from './select';\r\n\r\ndefineOptions({\r\n name: 'GmSelect',\r\n});\r\nconst slots = useSlots();\r\nconst props = defineProps(selectProps);\r\nconst emit = defineEmits(selectEmits);\r\n// 重发el的事件\r\nconst elEvents = getGmEvent(elSelectEmits, emit);\r\n\r\nconst elRef = ref();\r\nconst exposeNames = ['focus', 'blur'] as const;\r\nconst { exposeFns } = getGmExports(elRef, exposeNames);\r\n\r\ndefineExpose({\r\n ...exposeFns,\r\n});\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.circular {\r\n animation: loading-rotate 2s linear infinite;\r\n}\r\n.path {\r\n animation: loading-dash 1.5s ease-in-out infinite;\r\n stroke-dasharray: 90, 150;\r\n stroke-dashoffset: 0;\r\n stroke: var(--el-color-primary);\r\n stroke-linecap: round;\r\n}\r\n@keyframes loading-rotate {\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n@keyframes loading-dash {\r\n 0% {\r\n stroke-dasharray: 1, 200;\r\n stroke-dashoffset: 0;\r\n }\r\n 50% {\r\n stroke-dasharray: 90, 150;\r\n stroke-dashoffset: -40px;\r\n }\r\n 100% {\r\n stroke-dasharray: 90, 150;\r\n stroke-dashoffset: -120px;\r\n }\r\n}\r\n</style>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAyCA,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AACvB,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,MAAA,QAAA,GAAW,UAAW,CAAA,aAAA,EAAe,IAAI,CAAA,CAAA;AAE/C,IAAA,MAAM,QAAQ,GAAI,EAAA,CAAA;AAClB,IAAM,MAAA,WAAA,GAAc,CAAC,OAAA,EAAS,MAAM,CAAA,CAAA;AACpC,IAAA,MAAM,EAAE,SAAA,EAAc,GAAA,YAAA,CAAa,OAAO,WAAW,CAAA,CAAA;AAErD,IAAa,QAAA,CAAA;AAAA,MACX,GAAG,SAAA;AAAA,KACJ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,4 @@
1
+ var undefined$1 = undefined;
2
+
3
+ export { undefined$1 as default };
4
+ //# sourceMappingURL=Select.vue3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.vue3.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -468,6 +468,7 @@ export declare const GmSelect: import("../../../../utils").SFCWithInstall<{
468
468
  empty?(_: {}): any;
469
469
  tag?(_: {}): any;
470
470
  loading?(_: {}): any;
471
+ label?(_: any): any;
471
472
  };
472
473
  })> & Record<string, any>;
473
474
  export type SelectInstance = InstanceType<typeof Select>;
@@ -8,6 +8,10 @@ declare const _default: import("vue").DefineComponent<{
8
8
  type: StringConstructor;
9
9
  required: true;
10
10
  };
11
+ loading: {
12
+ type: BooleanConstructor;
13
+ default: boolean;
14
+ };
11
15
  multiple: {
12
16
  type: BooleanConstructor;
13
17
  default: boolean;
@@ -45,6 +49,10 @@ declare const _default: import("vue").DefineComponent<{
45
49
  type: StringConstructor;
46
50
  required: true;
47
51
  };
52
+ loading: {
53
+ type: BooleanConstructor;
54
+ default: boolean;
55
+ };
48
56
  multiple: {
49
57
  type: BooleanConstructor;
50
58
  default: boolean;
@@ -75,6 +83,7 @@ declare const _default: import("vue").DefineComponent<{
75
83
  }, {
76
84
  options: import("../../..").SelectOptionsOptionType[];
77
85
  disabled: boolean;
86
+ loading: boolean;
78
87
  label: string;
79
88
  multiple: boolean;
80
89
  optionLabel: string;
@@ -37,11 +37,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
37
37
  disabled: _ctx.disabled,
38
38
  options: _ctx.options,
39
39
  labelKey: _ctx.labelKey,
40
+ loading: _ctx.loading,
40
41
  optionLabel: _ctx.optionLabel,
41
42
  optionValue: _ctx.optionValue,
42
43
  class: "gm-w-full",
43
44
  onChange: _cache[1] || (_cache[1] = ($event) => emit("change", $event))
44
- }, null, 8, ["modelValue", "placeholder", "multiple", "disabled", "options", "labelKey", "optionLabel", "optionValue"])
45
+ }, null, 8, ["modelValue", "placeholder", "multiple", "disabled", "options", "labelKey", "loading", "optionLabel", "optionValue"])
45
46
  ]),
46
47
  _: 1
47
48
  /* STABLE */
@@ -1 +1 @@
1
- {"version":3,"file":"SearchFormSelect.vue2.mjs","sources":["../../../../../../../../../packages/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue"],"sourcesContent":["<template>\r\n <gm-form-item :prop=\"prop\" class=\"\">\r\n <gm-select-options\r\n v-model=\"modelValue\"\r\n :placeholder=\"label\"\r\n :multiple=\"multiple\"\r\n filterable\r\n clearable\r\n collapse-tags\r\n collapse-tags-tooltip\r\n :disabled=\"disabled\"\r\n :options=\"options\"\r\n :labelKey=\"labelKey\"\r\n :optionLabel=\"optionLabel\"\r\n :optionValue=\"optionValue\"\r\n class=\"gm-w-full\"\r\n @change=\"emit('change', $event)\"\r\n />\r\n </gm-form-item>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { useWatchModelChange } from '../../composables/useWatchModelChange';\r\nimport { SearchFormSelectName, searchFormSelectEmits, searchFormSelectProps } from './searchFormSelect';\r\nimport type { SelectProps } from '@giime/components/src/base/select';\r\n\r\ndefineOptions({\r\n name: SearchFormSelectName,\r\n});\r\nconst props = defineProps(searchFormSelectProps);\r\nconst modelValue = defineModel<SelectProps['modelValue'] | undefined>();\r\n\r\nconst emit = defineEmits(searchFormSelectEmits);\r\nuseWatchModelChange(modelValue, { prop: props.prop });\r\n</script>\r\n"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;AA4BA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAM,MAAA,UAAA,GAAaA,QAAmD,CAAA,OAAA,EAAA,YAAA,CAAA,CAAA;AAEtE,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AACb,IAAA,mBAAA,CAAoB,UAAY,EAAA,EAAE,IAAM,EAAA,KAAA,CAAM,MAAM,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SearchFormSelect.vue2.mjs","sources":["../../../../../../../../../packages/components/src/composite/searchForm/searchFormItems/select/SearchFormSelect.vue"],"sourcesContent":["<template>\r\n <gm-form-item :prop=\"prop\" class=\"\">\r\n <gm-select-options\r\n v-model=\"modelValue\"\r\n :placeholder=\"label\"\r\n :multiple=\"multiple\"\r\n filterable\r\n clearable\r\n collapse-tags\r\n collapse-tags-tooltip\r\n :disabled=\"disabled\"\r\n :options=\"options\"\r\n :labelKey=\"labelKey\"\r\n :loading=\"loading\"\r\n :optionLabel=\"optionLabel\"\r\n :optionValue=\"optionValue\"\r\n class=\"gm-w-full\"\r\n @change=\"emit('change', $event)\"\r\n />\r\n </gm-form-item>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { useWatchModelChange } from '../../composables/useWatchModelChange';\r\nimport { SearchFormSelectName, searchFormSelectEmits, searchFormSelectProps } from './searchFormSelect';\r\nimport type { SelectProps } from '@giime/components/src/base/select';\r\n\r\ndefineOptions({\r\n name: SearchFormSelectName,\r\n});\r\nconst props = defineProps(searchFormSelectProps);\r\nconst modelValue = defineModel<SelectProps['modelValue'] | undefined>();\r\n\r\nconst emit = defineEmits(searchFormSelectEmits);\r\nuseWatchModelChange(modelValue, { prop: props.prop });\r\n</script>\r\n"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;AA6BA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAM,MAAA,UAAA,GAAaA,QAAmD,CAAA,OAAA,EAAA,YAAA,CAAA,CAAA;AAEtE,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AACb,IAAA,mBAAA,CAAoB,UAAY,EAAA,EAAE,IAAM,EAAA,KAAA,CAAM,MAAM,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,6 +9,10 @@ export declare const GmSearchFormSelect: import("../../../../../../utils").SFCWi
9
9
  type: StringConstructor;
10
10
  required: true;
11
11
  };
12
+ loading: {
13
+ type: BooleanConstructor;
14
+ default: boolean;
15
+ };
12
16
  multiple: {
13
17
  type: BooleanConstructor;
14
18
  default: boolean;
@@ -46,6 +50,10 @@ export declare const GmSearchFormSelect: import("../../../../../../utils").SFCWi
46
50
  type: StringConstructor;
47
51
  required: true;
48
52
  };
53
+ loading: {
54
+ type: BooleanConstructor;
55
+ default: boolean;
56
+ };
49
57
  multiple: {
50
58
  type: BooleanConstructor;
51
59
  default: boolean;
@@ -76,6 +84,7 @@ export declare const GmSearchFormSelect: import("../../../../../../utils").SFCWi
76
84
  }, {
77
85
  options: import("../../../index.js").SelectOptionsOptionType[];
78
86
  disabled: boolean;
87
+ loading: boolean;
79
88
  label: string;
80
89
  multiple: boolean;
81
90
  optionLabel: string;
@@ -12,6 +12,10 @@ export declare const searchFormSelectProps: {
12
12
  type: StringConstructor;
13
13
  required: true;
14
14
  };
15
+ loading: {
16
+ type: BooleanConstructor;
17
+ default: boolean;
18
+ };
15
19
  multiple: {
16
20
  type: BooleanConstructor;
17
21
  default: boolean;
@@ -11,6 +11,10 @@ const searchFormSelectProps = {
11
11
  type: String,
12
12
  required: true
13
13
  },
14
+ loading: {
15
+ type: Boolean,
16
+ default: false
17
+ },
14
18
  multiple: {
15
19
  type: Boolean,
16
20
  default: false
@@ -1 +1 @@
1
- {"version":3,"file":"searchFormSelect.mjs","sources":["../../../../../../../../../packages/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.ts"],"sourcesContent":["import { selectOptionsProps } from '@giime/components/src/composite/selectOptions/selectOptions';\r\nimport { searchFormCommonProps } from '../common';\r\nimport type { OptionProps } from '@giime/components/src/base';\r\n// import type { PropType } from 'vue';\r\nexport interface SearchFormSelectPropsOption {\r\n label: OptionProps['label'];\r\n value: OptionProps['value'];\r\n}\r\nexport const searchFormSelectProps = {\r\n ...searchFormCommonProps,\r\n label: {\r\n type: String,\r\n default: '',\r\n },\r\n prop: {\r\n type: String,\r\n required: true as const,\r\n },\r\n multiple: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n options: selectOptionsProps.options,\r\n optionLabel: selectOptionsProps.optionLabel,\r\n // 自定义指定option中的value字段\r\n optionValue: selectOptionsProps.optionValue,\r\n labelKey: selectOptionsProps.labelKey,\r\n};\r\n\r\nexport const searchFormSelectEmits = {\r\n change: (...value: any[]) => !!value,\r\n};\r\nexport const SearchFormSelectName = 'GmSearchFormSelect';\r\n"],"names":[],"mappings":";;;AAQO,MAAM,qBAAwB,GAAA;AAAA,EACnC,GAAG,qBAAA;AAAA,EACH,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,SAAS,kBAAmB,CAAA,OAAA;AAAA,EAC5B,aAAa,kBAAmB,CAAA,WAAA;AAAA;AAAA,EAEhC,aAAa,kBAAmB,CAAA,WAAA;AAAA,EAChC,UAAU,kBAAmB,CAAA,QAAA;AAC/B,EAAA;AAEO,MAAM,qBAAwB,GAAA;AAAA,EACnC,MAAQ,EAAA,CAAA,GAAI,KAAiB,KAAA,CAAC,CAAC,KAAA;AACjC,EAAA;AACO,MAAM,oBAAuB,GAAA;;;;"}
1
+ {"version":3,"file":"searchFormSelect.mjs","sources":["../../../../../../../../../packages/components/src/composite/searchForm/searchFormItems/select/searchFormSelect.ts"],"sourcesContent":["import { selectOptionsProps } from '@giime/components/src/composite/selectOptions/selectOptions';\r\nimport { searchFormCommonProps } from '../common';\r\nimport type { OptionProps } from '@giime/components/src/base';\r\n// import type { PropType } from 'vue';\r\nexport interface SearchFormSelectPropsOption {\r\n label: OptionProps['label'];\r\n value: OptionProps['value'];\r\n}\r\nexport const searchFormSelectProps = {\r\n ...searchFormCommonProps,\r\n label: {\r\n type: String,\r\n default: '',\r\n },\r\n prop: {\r\n type: String,\r\n required: true as const,\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n multiple: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n options: selectOptionsProps.options,\r\n optionLabel: selectOptionsProps.optionLabel,\r\n // 自定义指定option中的value字段\r\n optionValue: selectOptionsProps.optionValue,\r\n labelKey: selectOptionsProps.labelKey,\r\n};\r\n\r\nexport const searchFormSelectEmits = {\r\n change: (...value: any[]) => !!value,\r\n};\r\nexport const SearchFormSelectName = 'GmSearchFormSelect';\r\n"],"names":[],"mappings":";;;AAQO,MAAM,qBAAwB,GAAA;AAAA,EACnC,GAAG,qBAAA;AAAA,EACH,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,SAAS,kBAAmB,CAAA,OAAA;AAAA,EAC5B,aAAa,kBAAmB,CAAA,WAAA;AAAA;AAAA,EAEhC,aAAa,kBAAmB,CAAA,WAAA;AAAA,EAChC,UAAU,kBAAmB,CAAA,QAAA;AAC/B,EAAA;AAEO,MAAM,qBAAwB,GAAA;AAAA,EACnC,MAAQ,EAAA,CAAA,GAAI,KAAiB,KAAA,CAAC,CAAC,KAAA;AACjC,EAAA;AACO,MAAM,oBAAuB,GAAA;;;;"}
@@ -1,4 +1,4 @@
1
- declare const _default: import("vue").DefineComponent<{
1
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
2
2
  clearable: {
3
3
  type: BooleanConstructor;
4
4
  default: boolean;
@@ -237,5 +237,18 @@ declare const _default: import("vue").DefineComponent<{
237
237
  optionLabel: string;
238
238
  optionValue: string;
239
239
  labelKey: string | boolean;
240
- }, {}>;
240
+ }, {}>, {
241
+ header?(_: {}): any;
242
+ footer?(_: {}): any;
243
+ prefix?(_: {}): any;
244
+ empty?(_: {}): any;
245
+ tag?(_: {}): any;
246
+ loading?(_: {}): any;
247
+ label?(_: any): any;
248
+ }>;
241
249
  export default _default;
250
+ type __VLS_WithTemplateSlots<T, S> = T & {
251
+ new (): {
252
+ $slots: S;
253
+ };
254
+ };
@@ -1,4 +1,4 @@
1
- import { defineComponent, computed, resolveComponent, openBlock, createBlock, mergeProps, toHandlers, unref, withCtx, createElementBlock, Fragment, renderList } from 'vue';
1
+ import { defineComponent, useSlots, computed, resolveComponent, openBlock, createBlock, mergeProps, toHandlers, unref, createSlots, withCtx, createElementBlock, Fragment, renderList, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
2
2
  import '../../../../utils/index.mjs';
3
3
  import { isString } from '../../../../utils/src/is.mjs';
4
4
  import { selectOptionsProps, selectOptionsEmits } from './selectOptions.mjs';
@@ -15,6 +15,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
15
15
  const props = __props;
16
16
  const emit = __emit;
17
17
  const events = getGmEvent(selectOptionsEmits, emit);
18
+ const slots = useSlots();
18
19
  const labelOptions = computed(() => {
19
20
  return props.options.map((it, i) => {
20
21
  const res = {
@@ -37,7 +38,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
37
38
  return openBlock(), createBlock(
38
39
  _component_gm_select,
39
40
  mergeProps(props, toHandlers(unref(events))),
40
- {
41
+ createSlots({
41
42
  default: withCtx(() => [
42
43
  (openBlock(true), createElementBlock(
43
44
  Fragment,
@@ -53,11 +54,61 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
53
54
  /* KEYED_FRAGMENT */
54
55
  ))
55
56
  ]),
56
- _: 1
57
- /* STABLE */
58
- },
59
- 16
60
- /* FULL_PROPS */
57
+ _: 2
58
+ /* DYNAMIC */
59
+ }, [
60
+ unref(slots).header ? {
61
+ name: "header",
62
+ fn: withCtx(() => [
63
+ renderSlot(_ctx.$slots, "header")
64
+ ]),
65
+ key: "0"
66
+ } : void 0,
67
+ unref(slots).footer ? {
68
+ name: "footer",
69
+ fn: withCtx(() => [
70
+ renderSlot(_ctx.$slots, "footer")
71
+ ]),
72
+ key: "1"
73
+ } : void 0,
74
+ unref(slots).prefix ? {
75
+ name: "prefix",
76
+ fn: withCtx(() => [
77
+ renderSlot(_ctx.$slots, "prefix")
78
+ ]),
79
+ key: "2"
80
+ } : void 0,
81
+ unref(slots).empty ? {
82
+ name: "empty",
83
+ fn: withCtx(() => [
84
+ renderSlot(_ctx.$slots, "empty")
85
+ ]),
86
+ key: "3"
87
+ } : void 0,
88
+ unref(slots).tag ? {
89
+ name: "tag",
90
+ fn: withCtx(() => [
91
+ renderSlot(_ctx.$slots, "tag")
92
+ ]),
93
+ key: "4"
94
+ } : void 0,
95
+ unref(slots).loading ? {
96
+ name: "loading",
97
+ fn: withCtx(() => [
98
+ renderSlot(_ctx.$slots, "loading")
99
+ ]),
100
+ key: "5"
101
+ } : void 0,
102
+ unref(slots).label ? {
103
+ name: "label",
104
+ fn: withCtx((slotValue) => [
105
+ renderSlot(_ctx.$slots, "label", normalizeProps(guardReactiveProps(slotValue)))
106
+ ]),
107
+ key: "6"
108
+ } : void 0
109
+ ]),
110
+ 1040
111
+ /* FULL_PROPS, DYNAMIC_SLOTS */
61
112
  );
62
113
  };
63
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SelectOptions.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/selectOptions/SelectOptions.vue"],"sourcesContent":["<template>\r\n <gm-select v-bind=\"props\" v-on=\"events\">\r\n <gm-option v-for=\"(item, index) in labelOptions\" :key=\"index\" :label=\"item.label\" :value=\"item.value\" />\r\n </gm-select>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { computed } from 'vue';\r\nimport { getGmEvent } from '@giime/utils';\r\nimport { isString } from '@giime/utils/src/is';\r\nimport { selectOptionsEmits, selectOptionsProps } from './selectOptions';\r\ndefineOptions({\r\n name: 'GmSelectOptions',\r\n});\r\nconst props = defineProps(selectOptionsProps);\r\nconst emit = defineEmits(selectOptionsEmits);\r\nconst events = getGmEvent(selectOptionsEmits, emit);\r\n\r\nconst labelOptions = computed(() => {\r\n return props.options.map((it, i) => {\r\n const res = {\r\n label: it[props.optionLabel],\r\n value: it[props.optionValue],\r\n };\r\n if (props.labelKey === true) {\r\n res.label = `${it.id}. ${res.label}`;\r\n } else if (props.labelKey === 'index') {\r\n res.label = `${i + 1}. ${res.label}`;\r\n } else if (isString(props.labelKey) && Object.prototype.hasOwnProperty.call(it, props.labelKey)) {\r\n res.label = `${it[props.labelKey]}. ${res.label}`;\r\n }\r\n return res;\r\n });\r\n});\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAaA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AACb,IAAM,MAAA,MAAA,GAAS,UAAW,CAAA,kBAAA,EAAoB,IAAI,CAAA,CAAA;AAElD,IAAM,MAAA,YAAA,GAAe,SAAS,MAAM;AAClC,MAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,IAAI,CAAM,KAAA;AAClC,QAAA,MAAM,GAAM,GAAA;AAAA,UACV,KAAA,EAAO,EAAG,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,UAC3B,KAAA,EAAO,EAAG,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,SAC7B,CAAA;AACA,QAAI,IAAA,KAAA,CAAM,aAAa,IAAM,EAAA;AAC3B,UAAA,GAAA,CAAI,QAAQ,CAAG,EAAA,EAAA,CAAG,EAAE,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACpC,MAAA,IAAW,KAAM,CAAA,QAAA,KAAa,OAAS,EAAA;AACrC,UAAA,GAAA,CAAI,QAAQ,CAAG,EAAA,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACzB,MAAA,IAAA,QAAA,CAAS,KAAM,CAAA,QAAQ,CAAK,IAAA,MAAA,CAAO,SAAU,CAAA,cAAA,CAAe,IAAK,CAAA,EAAA,EAAI,KAAM,CAAA,QAAQ,CAAG,EAAA;AAC/F,UAAI,GAAA,CAAA,KAAA,GAAQ,GAAG,EAAG,CAAA,KAAA,CAAM,QAAQ,CAAC,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACjD;AACA,QAAO,OAAA,GAAA,CAAA;AAAA,OACR,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SelectOptions.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/selectOptions/SelectOptions.vue"],"sourcesContent":["<template>\r\n <gm-select v-bind=\"props\" v-on=\"events\">\r\n <gm-option v-for=\"(item, index) in labelOptions\" :key=\"index\" :label=\"item.label\" :value=\"item.value\" />\r\n <template v-if=\"slots.header\" #header>\r\n <slot name=\"header\" />\r\n </template>\r\n <template v-if=\"slots.footer\" #footer>\r\n <slot name=\"footer\" />\r\n </template>\r\n <template v-if=\"slots.prefix\" #prefix>\r\n <slot name=\"prefix\" />\r\n </template>\r\n <template v-if=\"slots.empty\" #empty>\r\n <slot name=\"empty\" />\r\n </template>\r\n <template v-if=\"slots.tag\" #tag>\r\n <slot name=\"tag\" />\r\n </template>\r\n <template v-if=\"slots.loading\" #loading>\r\n <slot name=\"loading\" />\r\n </template>\r\n <template v-if=\"slots.label\" #label=\"slotValue\">\r\n <slot name=\"label\" v-bind=\"slotValue\" />\r\n </template>\r\n </gm-select>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { computed, useSlots } from 'vue';\r\nimport { getGmEvent } from '@giime/utils';\r\nimport { isString } from '@giime/utils/src/is';\r\nimport { selectOptionsEmits, selectOptionsProps } from './selectOptions';\r\ndefineOptions({\r\n name: 'GmSelectOptions',\r\n});\r\nconst props = defineProps(selectOptionsProps);\r\nconst emit = defineEmits(selectOptionsEmits);\r\nconst events = getGmEvent(selectOptionsEmits, emit);\r\nconst slots = useSlots();\r\n\r\nconst labelOptions = computed(() => {\r\n return props.options.map((it, i) => {\r\n const res = {\r\n label: it[props.optionLabel],\r\n value: it[props.optionValue],\r\n };\r\n if (props.labelKey === true) {\r\n res.label = `${it.id}. ${res.label}`;\r\n } else if (props.labelKey === 'index') {\r\n res.label = `${i + 1}. ${res.label}`;\r\n } else if (isString(props.labelKey) && Object.prototype.hasOwnProperty.call(it, props.labelKey)) {\r\n res.label = `${it[props.labelKey]}. ${res.label}`;\r\n }\r\n return res;\r\n });\r\n});\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAkCA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AACb,IAAM,MAAA,MAAA,GAAS,UAAW,CAAA,kBAAA,EAAoB,IAAI,CAAA,CAAA;AAClD,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEvB,IAAM,MAAA,YAAA,GAAe,SAAS,MAAM;AAClC,MAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,IAAI,CAAM,KAAA;AAClC,QAAA,MAAM,GAAM,GAAA;AAAA,UACV,KAAA,EAAO,EAAG,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,UAC3B,KAAA,EAAO,EAAG,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,SAC7B,CAAA;AACA,QAAI,IAAA,KAAA,CAAM,aAAa,IAAM,EAAA;AAC3B,UAAA,GAAA,CAAI,QAAQ,CAAG,EAAA,EAAA,CAAG,EAAE,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACpC,MAAA,IAAW,KAAM,CAAA,QAAA,KAAa,OAAS,EAAA;AACrC,UAAA,GAAA,CAAI,QAAQ,CAAG,EAAA,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACzB,MAAA,IAAA,QAAA,CAAS,KAAM,CAAA,QAAQ,CAAK,IAAA,MAAA,CAAO,SAAU,CAAA,cAAA,CAAe,IAAK,CAAA,EAAA,EAAI,KAAM,CAAA,QAAQ,CAAG,EAAA;AAC/F,UAAI,GAAA,CAAA,KAAA,GAAQ,GAAG,EAAG,CAAA,KAAA,CAAM,QAAQ,CAAC,CAAA,EAAA,EAAK,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,SACjD;AACA,QAAO,OAAA,GAAA,CAAA;AAAA,OACR,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}