@sunny-base-web/ui 0.0.0 → 0.0.2

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 (45) hide show
  1. package/dist/common-522FAMM2-DO093Klw.mjs +49 -0
  2. package/dist/common-JM5PFMWD-B3hlNUYI.mjs +49 -0
  3. package/dist/composite/business-search/SunnyBusinessSearch.d.ts +29 -0
  4. package/dist/composite/business-search/SunnyBusinessSearch.d.ts.map +1 -0
  5. package/dist/composite/business-search/configs/index.d.ts +13 -0
  6. package/dist/composite/business-search/configs/index.d.ts.map +1 -0
  7. package/dist/composite/business-search/index.d.ts +6 -0
  8. package/dist/composite/business-search/index.d.ts.map +1 -0
  9. package/dist/composite/business-search/types.d.ts +135 -0
  10. package/dist/composite/business-search/types.d.ts.map +1 -0
  11. package/dist/composite/business-search/utils/mapper.d.ts +18 -0
  12. package/dist/composite/business-search/utils/mapper.d.ts.map +1 -0
  13. package/dist/composite/index.d.ts +2 -0
  14. package/dist/composite/index.d.ts.map +1 -0
  15. package/dist/data/query-grid/use-query-grid.d.ts +7 -2
  16. package/dist/data/query-grid/use-query-grid.d.ts.map +1 -1
  17. package/dist/data/upload/index.d.ts.map +1 -1
  18. package/dist/entry/form/SunnyForm.d.ts.map +1 -1
  19. package/dist/entry/form/components/form-actions.d.ts +4 -0
  20. package/dist/entry/form/components/form-actions.d.ts.map +1 -1
  21. package/dist/entry/form/config.d.ts.map +1 -1
  22. package/dist/entry/form/form-api.d.ts +6 -1
  23. package/dist/entry/form/form-api.d.ts.map +1 -1
  24. package/dist/entry/form/form-render/Form.d.ts.map +1 -1
  25. package/dist/entry/form/form-render/FormField.d.ts.map +1 -1
  26. package/dist/entry/form/types.d.ts +7 -0
  27. package/dist/entry/form/types.d.ts.map +1 -1
  28. package/dist/feedback/modal/Modal.d.ts +3 -0
  29. package/dist/feedback/modal/Modal.d.ts.map +1 -1
  30. package/dist/feedback/modal/types.d.ts +2 -0
  31. package/dist/feedback/modal/types.d.ts.map +1 -1
  32. package/dist/feedback/search-modal/SunnySearchModal.d.ts +89 -0
  33. package/dist/feedback/search-modal/SunnySearchModal.d.ts.map +1 -0
  34. package/dist/feedback/search-modal/index.d.ts +6 -0
  35. package/dist/feedback/search-modal/index.d.ts.map +1 -0
  36. package/dist/feedback/search-modal/types.d.ts +87 -0
  37. package/dist/feedback/search-modal/types.d.ts.map +1 -0
  38. package/dist/feedback/search-modal/use-sunny-search-modal.d.ts +37 -0
  39. package/dist/feedback/search-modal/use-sunny-search-modal.d.ts.map +1 -0
  40. package/dist/index.d.ts +3 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +7 -1
  43. package/dist/index.mjs +6810 -1852
  44. package/dist/ui.css +1 -1
  45. package/package.json +3 -2
@@ -0,0 +1,89 @@
1
+ import { nextTick } from 'vue';
2
+ import { SunnySearchModalProps } from './types';
3
+ declare const _default: import('vue').DefineComponent<SunnySearchModalProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
4
+ "update:modelValue": (values: Record<string, any>[]) => any;
5
+ cancel: () => any;
6
+ "update:visible": (visible: boolean) => any;
7
+ confirm: (values: Record<string, any>[]) => any;
8
+ }, string, import('vue').PublicProps, Readonly<SunnySearchModalProps> & Readonly<{
9
+ "onUpdate:modelValue"?: ((values: Record<string, any>[]) => any) | undefined;
10
+ onCancel?: (() => any) | undefined;
11
+ "onUpdate:visible"?: ((visible: boolean) => any) | undefined;
12
+ onConfirm?: ((values: Record<string, any>[]) => any) | undefined;
13
+ }>, {
14
+ title: string;
15
+ width: string | number;
16
+ helpMessage: string;
17
+ multiple: boolean;
18
+ fieldNames: {
19
+ label?: string;
20
+ value?: string;
21
+ desc?: string;
22
+ };
23
+ commonConfig: Record<string, any>;
24
+ rowKey: string;
25
+ contentHeight: string | number;
26
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
27
+ gridRef: ({
28
+ $: import('vue').ComponentInternalInstance;
29
+ $data: {};
30
+ $props: {
31
+ readonly size?: "medium" | "small" | "mini" | undefined;
32
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
33
+ $attrs: {
34
+ [x: string]: unknown;
35
+ };
36
+ $refs: {
37
+ [x: string]: unknown;
38
+ } & {
39
+ gridRef: (import('vxe-table').VxeGridMethods<any> & {
40
+ $props: import('vxe-table').VxeGridProps<any> & import('vxe-table').VxeGridEventProps<any>;
41
+ $slots: import('vxe-table').VxeGridSlots<any>;
42
+ }) | null;
43
+ };
44
+ $slots: Readonly<{
45
+ [name: string]: import('vue').Slot<any> | undefined;
46
+ }>;
47
+ $root: import('vue').ComponentPublicInstance | null;
48
+ $parent: import('vue').ComponentPublicInstance | null;
49
+ $host: Element | null;
50
+ $emit: (event: string, ...args: any[]) => void;
51
+ $el: any;
52
+ $options: import('vue').ComponentOptionsBase<Readonly<{
53
+ size?: "medium" | "small" | "mini";
54
+ }> & Readonly<{}>, {
55
+ getGrid: () => import('vxe-table').VxeGridInstance | undefined;
56
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
57
+ size: "medium" | "small" | "mini";
58
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
59
+ beforeCreate?: (() => void) | (() => void)[];
60
+ created?: (() => void) | (() => void)[];
61
+ beforeMount?: (() => void) | (() => void)[];
62
+ mounted?: (() => void) | (() => void)[];
63
+ beforeUpdate?: (() => void) | (() => void)[];
64
+ updated?: (() => void) | (() => void)[];
65
+ activated?: (() => void) | (() => void)[];
66
+ deactivated?: (() => void) | (() => void)[];
67
+ beforeDestroy?: (() => void) | (() => void)[];
68
+ beforeUnmount?: (() => void) | (() => void)[];
69
+ destroyed?: (() => void) | (() => void)[];
70
+ unmounted?: (() => void) | (() => void)[];
71
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
72
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
73
+ errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
74
+ };
75
+ $forceUpdate: () => void;
76
+ $nextTick: typeof nextTick;
77
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
78
+ } & Readonly<{
79
+ size: "medium" | "small" | "mini";
80
+ }> & Omit<Readonly<{
81
+ size?: "medium" | "small" | "mini";
82
+ }> & Readonly<{}>, "size" | "getGrid"> & import('vue').ShallowUnwrapRef<{
83
+ getGrid: () => import('vxe-table').VxeGridInstance | undefined;
84
+ }> & {} & import('vue').ComponentCustomProperties & {} & {
85
+ $slots: any;
86
+ }) | null;
87
+ }, any>;
88
+ export default _default;
89
+ //# sourceMappingURL=SunnySearchModal.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SunnySearchModal.vue.d.ts","sourceRoot":"","sources":["../../../src/feedback/search-modal/SunnySearchModal.vue"],"names":[],"mappings":"AAwRA,OAAO,EAAc,QAAQ,EAAY,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAyB,MAAM,SAAS,CAAC;;;;;;;;;;;;;;;;;aAF5E,CAnQS;aAmQT,CAnQ8B;YAmQ9B,CAnQkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAgrB1C,GAAG,8CAA8C,GAAG,yBACxD,GAAG,6DAAmC,GAAG;;;;;;;;;;;AAqF7C,wBASG"}
@@ -0,0 +1,6 @@
1
+ import { default as SunnySearchModal } from './SunnySearchModal';
2
+ export * from './types';
3
+ export * from './use-sunny-search-modal';
4
+ export { SunnySearchModal };
5
+ export default SunnySearchModal;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/feedback/search-modal/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,cAAc,SAAS,CAAC;AACxB,cAAc,0BAA0B,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { VxeGridPropTypes } from 'vxe-table';
2
+ import { FormSchema } from '../../entry/form/types';
3
+ export interface SunnySearchModalProps {
4
+ /**
5
+ * 弹窗显示状态 (v-model)
6
+ */
7
+ visible: boolean;
8
+ /**
9
+ * 搜索表单配置
10
+ */
11
+ formSchema: FormSchema[];
12
+ /**
13
+ * 表格列配置
14
+ */
15
+ tableColumns: VxeGridPropTypes.Columns;
16
+ /**
17
+ * 查询接口地址或函数
18
+ * 如果是 string,则发起 POST 请求
19
+ * 如果是 Function,则直接调用,需返回 Promise
20
+ */
21
+ searchApi: string | ((params: any) => Promise<any>);
22
+ /**
23
+ * 默认选中的数据 (回显)
24
+ * 数组中的对象至少包含 rowKey 指定的字段
25
+ */
26
+ modelValue?: Record<string, any>[];
27
+ /**
28
+ * 字段名映射配置
29
+ * 用于指定回显时显示的文本字段和值字段
30
+ * @default { label: 'label', value: 'value', desc: 'desc' }
31
+ */
32
+ fieldNames?: {
33
+ label?: string;
34
+ value?: string;
35
+ desc?: string;
36
+ };
37
+ /**
38
+ * 表单通用配置 (如 colProps, labelWidth 等)
39
+ * 用于控制内部搜索表单的布局和属性,与 SunnyForm 的 commonConfig 保持一致
40
+ * @default { colProps: { xs: 24, sm: 12, md: 8, lg: 8, xl: 8, xxl: 8 } }
41
+ */
42
+ commonConfig?: Record<string, any>;
43
+ /**
44
+ * 帮助提示文本
45
+ * 显示在标题栏问号图标的 Tooltip 中
46
+ * @default "支持跨页多选,翻页保留选中状态;双击表格行可快速确认。"
47
+ */
48
+ helpMessage?: string;
49
+ /**
50
+ * 弹窗标题
51
+ * @default "数据查询"
52
+ */
53
+ title?: string;
54
+ /**
55
+ * 单选/多选模式
56
+ * @default true (多选)
57
+ */
58
+ multiple?: boolean;
59
+ /**
60
+ * 数据主键字段名
61
+ * @default 'id'
62
+ */
63
+ rowKey?: string;
64
+ /**
65
+ * 弹窗宽度
66
+ * @default "800px"
67
+ */
68
+ width?: string | number;
69
+ /**
70
+ * 内容区域高度 (表格区域高度)
71
+ * @default 300
72
+ */
73
+ contentHeight?: string | number;
74
+ }
75
+ export interface SunnySearchModalEmits {
76
+ (e: 'update:visible', visible: boolean): void;
77
+ (e: 'update:modelValue', values: Record<string, any>[]): void;
78
+ /**
79
+ * 确认选择事件
80
+ */
81
+ (e: 'confirm', values: Record<string, any>[]): void;
82
+ /**
83
+ * 取消事件
84
+ */
85
+ (e: 'cancel'): void;
86
+ }
87
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/feedback/search-modal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB;;OAEG;IACH,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC;IACvC;;;;OAIG;IACH,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IACnC;;;;OAIG;IACH,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;IAC9D;;OAEG;IACH,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;IACpD;;OAEG;IACH,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACrB"}
@@ -0,0 +1,37 @@
1
+ import { SunnySearchModalProps, SunnySearchModalEmits } from './types';
2
+ export declare function useSunnySearchModal(props: SunnySearchModalProps, emit: SunnySearchModalEmits): {
3
+ loading: import('vue').Ref<boolean, boolean>;
4
+ searchParams: import('vue').Ref<Record<string, any>, Record<string, any>>;
5
+ selectedRows: import('vue').Ref<Record<string, any>[], Record<string, any>[]>;
6
+ pagination: import('vue').Ref<{
7
+ current: number;
8
+ pageSize: number;
9
+ total: number;
10
+ }, {
11
+ current: number;
12
+ pageSize: number;
13
+ total: number;
14
+ } | {
15
+ current: number;
16
+ pageSize: number;
17
+ total: number;
18
+ }>;
19
+ tableData: import('vue').Ref<any[], any[]>;
20
+ actualFieldNames: import('vue').ComputedRef<{
21
+ label: string;
22
+ value: string;
23
+ desc: string;
24
+ }>;
25
+ actualRowKey: import('vue').ComputedRef<string>;
26
+ handleSearch: () => Promise<void>;
27
+ handlePageChange: (current: number) => void;
28
+ handlePageSizeChange: (pageSize: number) => void;
29
+ handleCheckboxChange: (params: any) => void;
30
+ handleCheckboxAll: (params: any) => void;
31
+ handleRadioChange: (params: any) => void;
32
+ removeRow: (row: any) => void;
33
+ handleOk: () => void;
34
+ handleCancel: () => void;
35
+ toggleRowSelection: (row: any, checked: boolean) => void;
36
+ };
37
+ //# sourceMappingURL=use-sunny-search-modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sunny-search-modal.d.ts","sourceRoot":"","sources":["../../../src/feedback/search-modal/use-sunny-search-modal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAK5E,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;gCAmGQ,MAAM;qCAQD,MAAM;mCAwCR,GAAG;gCAKN,GAAG;gCAqBH,GAAG;qBAQd,GAAG;;;8BArDM,GAAG,WAAW,OAAO;EAwFvD"}
package/dist/index.d.ts CHANGED
@@ -8,10 +8,12 @@ import { default as SunnySearchInputTag } from './entry/search-input-tag';
8
8
  import { useSunnyForm, FormApi, SunnyForm, setupSunnyForm, z } from './entry/form';
9
9
  import { useSunnyEditGrid } from './data/edit-grid';
10
10
  import { useSunnyQueryGrid } from './data/query-grid';
11
+ import { SunnySearchModal } from './feedback/search-modal';
11
12
  import { patterns } from '@sunny-base-web/utils';
12
13
  export * from './navigation/nprogress';
13
- export { Modal, useSunnyModal, ModalTypes, SunnyIcon, SunnyScrollbar, SunnyUpload, SunnyBatchSelect, SunnySelect, SunnySearchInputTag, useSunnyForm, FormApi, SunnyForm, setupSunnyForm, useSunnyEditGrid, useSunnyQueryGrid, patterns, z };
14
+ export { Modal, useSunnyModal, ModalTypes, SunnyIcon, SunnyScrollbar, SunnyUpload, SunnyBatchSelect, SunnySelect, SunnySearchInputTag, useSunnyForm, FormApi, SunnyForm, setupSunnyForm, useSunnyEditGrid, useSunnyQueryGrid, SunnySearchModal, patterns, z };
14
15
  export * from './entry/select/types';
15
16
  export * from './entry/search-input-tag/types';
16
17
  export * from './entry/form/types';
18
+ export * from './composite/business-search';
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EACL,KAAK,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,OAAO,EACP,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,CAAC,EACF,CAAC;AAEF,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EACL,KAAK,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,OAAO,EACP,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,CAAC,EACF,CAAC;AAEF,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC"}