@quidgest/ui 0.14.18 → 0.14.20

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 (120) hide show
  1. package/dist/manifest/components.json +3 -0
  2. package/dist/ui.css +76 -26
  3. package/dist/ui.esm.js +5925 -5571
  4. package/dist/ui.js +16 -16
  5. package/dist/ui.min.css +1 -1
  6. package/dist/ui.min.js +691 -666
  7. package/dist/ui.scss +80 -27
  8. package/esm/components/QBadge/QBadge.d.ts +1 -1
  9. package/esm/components/QBadge/QBadge.d.ts.map +1 -1
  10. package/esm/components/QBadge/QBadge.vue.js +42 -48
  11. package/esm/components/QBadge/index.d.ts +3 -3
  12. package/esm/components/QCombobox/QCombobox.d.ts +26 -0
  13. package/esm/components/QCombobox/QCombobox.d.ts.map +1 -1
  14. package/esm/components/QCombobox/QCombobox.vue.js +1 -0
  15. package/esm/components/QCombobox/index.d.ts +46 -3
  16. package/esm/components/QCombobox/index.d.ts.map +1 -1
  17. package/esm/components/QDateTimePicker/QDateTimePicker.d.ts.map +1 -1
  18. package/esm/components/QDateTimePicker/QDateTimePicker.vue.js +12 -10
  19. package/esm/components/QDateTimePicker/index.d.ts +6 -0
  20. package/esm/components/QDateTimePicker/index.d.ts.map +1 -1
  21. package/esm/components/QDialog/QDialog.d.ts +1 -1
  22. package/esm/components/QDialog/index.d.ts +3 -3
  23. package/esm/components/QDropdownMenu/QDropdownMenuContent.d.ts +2 -0
  24. package/esm/components/QDropdownMenu/QDropdownMenuContent.d.ts.map +1 -1
  25. package/esm/components/QDropdownMenu/QDropdownMenuContent.vue.js +13 -13
  26. package/esm/components/QField/QField.d.ts.map +1 -1
  27. package/esm/components/QField/QField.vue.js +47 -39
  28. package/esm/components/QField/types.d.ts +6 -10
  29. package/esm/components/QField/types.d.ts.map +1 -1
  30. package/esm/components/QFileUpload/QFileUpload.d.ts.map +1 -1
  31. package/esm/components/QFileUpload/QFileUpload.vue.js +15 -13
  32. package/esm/components/QFileUpload/index.d.ts +6 -0
  33. package/esm/components/QFileUpload/index.d.ts.map +1 -1
  34. package/esm/components/QIcon/QIcon.d.ts.map +1 -1
  35. package/esm/components/QIcon/QIcon.vue.js +25 -17
  36. package/esm/components/QIcon/QIconFont.d.ts.map +1 -1
  37. package/esm/components/QIcon/QIconFont.vue.js +9 -13
  38. package/esm/components/QIcon/QIconImg.d.ts.map +1 -1
  39. package/esm/components/QIcon/QIconImg.vue.js +11 -15
  40. package/esm/components/QIcon/QIconSvg.d.ts.map +1 -1
  41. package/esm/components/QIcon/QIconSvg.vue.js +15 -19
  42. package/esm/components/QIcon/types.d.ts +8 -4
  43. package/esm/components/QIcon/types.d.ts.map +1 -1
  44. package/esm/components/QInputGroup/QInputGroup.d.ts +2 -0
  45. package/esm/components/QInputGroup/QInputGroup.d.ts.map +1 -1
  46. package/esm/components/QInputGroup/QInputGroup.vue.js +40 -32
  47. package/esm/components/QInputGroup/index.d.ts +2 -0
  48. package/esm/components/QInputGroup/index.d.ts.map +1 -1
  49. package/esm/components/QLabel/QLabel.d.ts +20 -0
  50. package/esm/components/QLabel/QLabel.d.ts.map +1 -0
  51. package/esm/components/QLabel/QLabel.vue.js +27 -0
  52. package/esm/components/QLabel/QLabel.vue2.js +4 -0
  53. package/esm/components/QLabel/index.d.ts +22 -0
  54. package/esm/components/QLabel/index.d.ts.map +1 -0
  55. package/esm/components/QLabel/index.js +6 -0
  56. package/esm/components/QLabel/types.d.ts +12 -0
  57. package/esm/components/QLabel/types.d.ts.map +1 -0
  58. package/esm/components/QList/QList.d.ts +2 -0
  59. package/esm/components/QList/QList.d.ts.map +1 -1
  60. package/esm/components/QList/QList.vue.js +22 -21
  61. package/esm/components/QList/QListItem.d.ts.map +1 -1
  62. package/esm/components/QList/QListItem.vue.js +22 -18
  63. package/esm/components/QList/index.d.ts +1 -0
  64. package/esm/components/QList/index.d.ts.map +1 -1
  65. package/esm/components/QList/types.d.ts +4 -0
  66. package/esm/components/QList/types.d.ts.map +1 -1
  67. package/esm/components/QMeter/QMeter.d.ts +14 -0
  68. package/esm/components/QMeter/QMeter.d.ts.map +1 -0
  69. package/esm/components/QMeter/QMeter.vue.js +60 -0
  70. package/esm/components/QMeter/QMeter.vue2.js +4 -0
  71. package/esm/components/QMeter/index.d.ts +29 -0
  72. package/esm/components/QMeter/index.d.ts.map +1 -0
  73. package/esm/components/QMeter/index.js +6 -0
  74. package/esm/components/QMeter/types.d.ts +20 -0
  75. package/esm/components/QMeter/types.d.ts.map +1 -0
  76. package/esm/components/QOverlay/index.d.ts +2 -0
  77. package/esm/components/QOverlay/index.d.ts.map +1 -1
  78. package/esm/components/QPasswordField/QPasswordField.d.ts +413 -0
  79. package/esm/components/QPasswordField/QPasswordField.d.ts.map +1 -0
  80. package/esm/components/QPasswordField/QPasswordField.vue.js +162 -0
  81. package/esm/components/QPasswordField/QPasswordField.vue2.js +4 -0
  82. package/esm/components/QPasswordField/QPasswordFieldMessages.d.ts +4 -0
  83. package/esm/components/QPasswordField/QPasswordFieldMessages.d.ts.map +1 -0
  84. package/esm/components/QPasswordField/QPasswordFieldMessages.vue.js +28 -0
  85. package/esm/components/QPasswordField/QPasswordFieldMessages.vue2.js +4 -0
  86. package/esm/components/QPasswordField/QPasswordFieldMeterOverlay.d.ts +12 -0
  87. package/esm/components/QPasswordField/QPasswordFieldMeterOverlay.d.ts.map +1 -0
  88. package/esm/components/QPasswordField/QPasswordFieldMeterOverlay.vue.js +97 -0
  89. package/esm/components/QPasswordField/QPasswordFieldMeterOverlay.vue2.js +4 -0
  90. package/esm/components/QPasswordField/constants.d.ts +9 -0
  91. package/esm/components/QPasswordField/constants.d.ts.map +1 -0
  92. package/esm/components/QPasswordField/constants.js +11 -0
  93. package/esm/components/QPasswordField/index.d.ts +264 -0
  94. package/esm/components/QPasswordField/index.d.ts.map +1 -0
  95. package/esm/components/QPasswordField/index.js +6 -0
  96. package/esm/components/QPasswordField/types.d.ts +100 -0
  97. package/esm/components/QPasswordField/types.d.ts.map +1 -0
  98. package/esm/components/QSelect/QSelect.d.ts +4 -0
  99. package/esm/components/QSelect/QSelect.d.ts.map +1 -1
  100. package/esm/components/QSelect/QSelect.vue.js +31 -29
  101. package/esm/components/QSelect/index.d.ts +8 -0
  102. package/esm/components/QSelect/index.d.ts.map +1 -1
  103. package/esm/components/QTextArea/QTextArea.vue.js +10 -9
  104. package/esm/components/QTextArea/index.d.ts +6 -0
  105. package/esm/components/QTextArea/index.d.ts.map +1 -1
  106. package/esm/components/QTextField/QTextField.d.ts +2 -0
  107. package/esm/components/QTextField/QTextField.d.ts.map +1 -1
  108. package/esm/components/QTextField/QTextField.vue.js +8 -6
  109. package/esm/components/QTextField/index.d.ts +9 -0
  110. package/esm/components/QTextField/index.d.ts.map +1 -1
  111. package/esm/components/index.d.ts +3 -0
  112. package/esm/components/index.d.ts.map +1 -1
  113. package/esm/components/index.js +51 -45
  114. package/esm/composables/useColorStyle/index.d.ts +11 -0
  115. package/esm/composables/useColorStyle/index.d.ts.map +1 -0
  116. package/esm/composables/useColorStyle/index.js +33 -0
  117. package/esm/composables/useColorStyle/types.d.ts +36 -0
  118. package/esm/composables/useColorStyle/types.d.ts.map +1 -0
  119. package/esm/index.d.ts +3 -0
  120. package/package.json +1 -1
@@ -0,0 +1,4 @@
1
+ import f from "./QPasswordField.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,4 @@
1
+ import { QPasswordFieldMessagesProps } from './types';
2
+ declare const _default: import('vue').DefineComponent<QPasswordFieldMessagesProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<QPasswordFieldMessagesProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLUListElement>;
3
+ export default _default;
4
+ //# sourceMappingURL=QPasswordFieldMessages.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QPasswordFieldMessages.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QPasswordField/QPasswordFieldMessages.vue"],"names":[],"mappings":"AASA;AAmBC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;;AAgD3D,wBAOG"}
@@ -0,0 +1,28 @@
1
+ import { defineComponent as o, createElementBlock as e, openBlock as s, Fragment as a, renderList as l, toDisplayString as c } from "vue";
2
+ const p = { class: "q-password-field__messages" }, d = /* @__PURE__ */ o({
3
+ __name: "QPasswordFieldMessages",
4
+ props: {
5
+ messages: {}
6
+ },
7
+ setup(r) {
8
+ const n = r;
9
+ return (i, _) => (s(), e("ul", p, [
10
+ (s(!0), e(
11
+ a,
12
+ null,
13
+ l(n.messages, (t) => (s(), e(
14
+ "li",
15
+ { key: t },
16
+ c(t),
17
+ 1
18
+ /* TEXT */
19
+ ))),
20
+ 128
21
+ /* KEYED_FRAGMENT */
22
+ ))
23
+ ]));
24
+ }
25
+ });
26
+ export {
27
+ d as default
28
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./QPasswordFieldMessages.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,12 @@
1
+ import { QPasswordFieldMeterOverlay } from './types';
2
+ type __VLS_Props = QPasswordFieldMeterOverlay;
3
+ type __VLS_PublicProps = {
4
+ modelValue?: boolean;
5
+ } & __VLS_Props;
6
+ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
+ "update:modelValue": (value: boolean) => any;
8
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
9
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
12
+ //# sourceMappingURL=QPasswordFieldMeterOverlay.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QPasswordFieldMeterOverlay.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QPasswordField/QPasswordFieldMeterOverlay.vue"],"names":[],"mappings":"AA0BA;AAgFC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAKzD,KAAK,WAAW,GAAG,0BAA0B,CAAC;AAqC/C,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,WAAW,CAAC;;;;;;AAmGhB,wBAOG"}
@@ -0,0 +1,97 @@
1
+ import { defineComponent as p, mergeModels as u, useModel as f, computed as h, createBlock as d, openBlock as r, unref as i, withCtx as v, createElementVNode as m, createElementBlock as y, createCommentVNode as c, createVNode as g, toDisplayString as B } from "vue";
2
+ import { QMeter as _ } from "../QMeter/index.js";
3
+ import { QOverlay as V } from "../QOverlay/index.js";
4
+ import k from "./QPasswordFieldMessages.vue.js";
5
+ const w = { class: "q-password-field__meter" }, M = {
6
+ key: 0,
7
+ class: "q-password-field__meter-score"
8
+ }, N = /* @__PURE__ */ p({
9
+ inheritAttrs: !1,
10
+ __name: "QPasswordFieldMeterOverlay",
11
+ props: /* @__PURE__ */ u({
12
+ id: {},
13
+ class: {},
14
+ anchor: {},
15
+ appearance: {},
16
+ arrow: { type: Boolean },
17
+ attach: {},
18
+ inline: { type: Boolean },
19
+ backdropBlur: { type: Boolean },
20
+ backdropClass: {},
21
+ delay: {},
22
+ nonModal: { type: Boolean },
23
+ scrollLock: { type: Boolean },
24
+ offset: {},
25
+ crossOffset: {},
26
+ persistent: { type: Boolean },
27
+ placement: {},
28
+ spy: { type: Boolean },
29
+ transition: {},
30
+ trigger: {},
31
+ width: {},
32
+ messages: {},
33
+ score: {},
34
+ levels: {}
35
+ }, {
36
+ modelValue: { type: Boolean },
37
+ modelModifiers: {}
38
+ }),
39
+ emits: ["update:modelValue"],
40
+ setup(a) {
41
+ const o = a, n = f(a, "modelValue"), s = h(() => {
42
+ if (!o.levels.length) {
43
+ console.warn("Levels array is empty.");
44
+ return;
45
+ }
46
+ const t = [...o.levels].sort(
47
+ (l, e) => (l.threshold ?? 1 / 0) - (e.threshold ?? 1 / 0)
48
+ );
49
+ for (const l of t) {
50
+ const e = l.threshold ?? 1 / 0;
51
+ if (o.score < e)
52
+ return l;
53
+ }
54
+ return o.levels[o.levels.length - 1];
55
+ });
56
+ return (t, l) => (r(), d(i(V), {
57
+ modelValue: n.value,
58
+ "onUpdate:modelValue": l[0] || (l[0] = (e) => n.value = e),
59
+ trigger: "manual",
60
+ anchor: o.anchor,
61
+ width: "anchor",
62
+ "non-modal": "",
63
+ placement: "bottom"
64
+ }, {
65
+ default: v(() => {
66
+ var e;
67
+ return [
68
+ m("div", w, [
69
+ s.value ? (r(), y("div", M, [
70
+ g(i(_), {
71
+ "model-value": o.score,
72
+ max: 1,
73
+ color: s.value.color
74
+ }, null, 8, ["model-value", "color"]),
75
+ m(
76
+ "span",
77
+ null,
78
+ B(s.value.label),
79
+ 1
80
+ /* TEXT */
81
+ )
82
+ ])) : c("v-if", !0),
83
+ (e = t.messages) != null && e.length ? (r(), d(k, {
84
+ key: 1,
85
+ messages: t.messages
86
+ }, null, 8, ["messages"])) : c("v-if", !0)
87
+ ])
88
+ ];
89
+ }),
90
+ _: 1
91
+ /* STABLE */
92
+ }, 8, ["modelValue", "anchor"]));
93
+ }
94
+ });
95
+ export {
96
+ N as default
97
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./QPasswordFieldMeterOverlay.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,9 @@
1
+ export declare const DEFAULT_ICONS: {
2
+ show: {
3
+ icon: string;
4
+ };
5
+ hide: {
6
+ icon: string;
7
+ };
8
+ };
9
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/components/QPasswordField/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;;;;;;CAOM,CAAA"}
@@ -0,0 +1,11 @@
1
+ const e = {
2
+ show: {
3
+ icon: "eye"
4
+ },
5
+ hide: {
6
+ icon: "eye-off"
7
+ }
8
+ };
9
+ export {
10
+ e as DEFAULT_ICONS
11
+ };
@@ -0,0 +1,264 @@
1
+ import { QPasswordFieldProps } from './types';
2
+ declare const QPasswordField: {
3
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
4
+ modelValue?: string;
5
+ masked?: boolean;
6
+ } & Omit<import('..').QTextFieldProps, "type" | "texts" | "clearable"> & {
7
+ toggle?: boolean;
8
+ meter?: boolean;
9
+ meterLevels?: import('./types').PasswordStrengthLevel[];
10
+ rules?: import('./types').QPasswordFieldRule[];
11
+ icons?: import('./types').QPasswordFieldIcons;
12
+ }> & Readonly<{
13
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
14
+ "onUpdate:masked"?: ((value: boolean) => any) | undefined;
15
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
16
+ "update:modelValue": (value: string) => any;
17
+ "update:masked": (value: boolean) => any;
18
+ }, import('vue').PublicProps, {
19
+ size: import('..').QFieldSize;
20
+ icons: import('./types').QPasswordFieldIcons;
21
+ }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
22
+ fieldRef: ({
23
+ $: import('vue').ComponentInternalInstance;
24
+ $data: {};
25
+ $props: {
26
+ readonly modelValue?: string | undefined;
27
+ readonly id?: string | undefined;
28
+ readonly class?: string | unknown[] | undefined;
29
+ readonly label?: string | undefined;
30
+ readonly for?: string | undefined;
31
+ readonly size?: import('..').QFieldSize | undefined;
32
+ readonly readonly?: boolean | undefined;
33
+ readonly disabled?: boolean | undefined;
34
+ readonly required?: boolean | undefined;
35
+ readonly invalid?: boolean | undefined;
36
+ readonly placeholder?: string | undefined;
37
+ readonly clearable?: boolean | undefined;
38
+ readonly type?: string | undefined;
39
+ readonly texts?: typeof import('../QTextField/types').DEFAULT_TEXTS | undefined;
40
+ readonly "onUpdate:modelValue"?: ((value: string) => any) | undefined;
41
+ readonly "onClick:clear"?: ((event: Event) => any) | undefined;
42
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
43
+ $attrs: {
44
+ [x: string]: unknown;
45
+ };
46
+ $refs: {
47
+ [x: string]: unknown;
48
+ } & {
49
+ fieldRef: ({
50
+ $: import('vue').ComponentInternalInstance;
51
+ $data: {};
52
+ $props: {
53
+ readonly id?: string | undefined;
54
+ readonly class?: string | unknown[] | undefined;
55
+ readonly label?: string | undefined;
56
+ readonly for?: string | undefined;
57
+ readonly size?: import('..').QFieldSize | undefined;
58
+ readonly readonly?: boolean | undefined;
59
+ readonly disabled?: boolean | undefined;
60
+ readonly required?: boolean | undefined;
61
+ readonly invalid?: boolean | undefined;
62
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
63
+ $attrs: {
64
+ [x: string]: unknown;
65
+ };
66
+ $refs: {
67
+ [x: string]: unknown;
68
+ } & {
69
+ fieldRef: HTMLDivElement;
70
+ };
71
+ $slots: Readonly<{
72
+ [name: string]: import('vue').Slot<any> | undefined;
73
+ }>;
74
+ $root: import('vue').ComponentPublicInstance | null;
75
+ $parent: import('vue').ComponentPublicInstance | null;
76
+ $host: Element | null;
77
+ $emit: (event: string, ...args: any[]) => void;
78
+ $el: any;
79
+ $options: import('vue').ComponentOptionsBase<Readonly<import('..').QFieldProps> & Readonly<{}>, {
80
+ fieldRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
81
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
82
+ size: import('..').QFieldSize;
83
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
84
+ beforeCreate?: (() => void) | (() => void)[];
85
+ created?: (() => void) | (() => void)[];
86
+ beforeMount?: (() => void) | (() => void)[];
87
+ mounted?: (() => void) | (() => void)[];
88
+ beforeUpdate?: (() => void) | (() => void)[];
89
+ updated?: (() => void) | (() => void)[];
90
+ activated?: (() => void) | (() => void)[];
91
+ deactivated?: (() => void) | (() => void)[];
92
+ beforeDestroy?: (() => void) | (() => void)[];
93
+ beforeUnmount?: (() => void) | (() => void)[];
94
+ destroyed?: (() => void) | (() => void)[];
95
+ unmounted?: (() => void) | (() => void)[];
96
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
97
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
98
+ errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
99
+ };
100
+ $forceUpdate: () => void;
101
+ $nextTick: typeof import('vue').nextTick;
102
+ $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;
103
+ } & Readonly<{
104
+ size: import('..').QFieldSize;
105
+ }> & Omit<Readonly<import('..').QFieldProps> & Readonly<{}>, "size" | "fieldRef"> & import('vue').ShallowUnwrapRef<{
106
+ fieldRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
107
+ }> & {} & import('vue').ComponentCustomProperties & {} & {
108
+ $slots: {
109
+ 'label.prepend'?(_: {}): any;
110
+ 'label.append'?(_: {}): any;
111
+ control?(_: {}): any;
112
+ prepend?(_: {}): any;
113
+ default?(_: {}): any;
114
+ append?(_: {}): any;
115
+ extras?(_: {}): any;
116
+ };
117
+ }) | null;
118
+ inputRef: HTMLInputElement;
119
+ };
120
+ $slots: Readonly<{
121
+ [name: string]: import('vue').Slot<any> | undefined;
122
+ }>;
123
+ $root: import('vue').ComponentPublicInstance | null;
124
+ $parent: import('vue').ComponentPublicInstance | null;
125
+ $host: Element | null;
126
+ $emit: ((event: "update:modelValue", value: string) => void) & ((event: "click:clear", event: Event) => void);
127
+ $el: any;
128
+ $options: import('vue').ComponentOptionsBase<Readonly<{
129
+ modelValue?: string;
130
+ } & import('../../types/component').QBaseComponentProps & {
131
+ label?: string;
132
+ for?: string;
133
+ } & {
134
+ size?: import('..').QFieldSize;
135
+ readonly?: boolean;
136
+ disabled?: boolean;
137
+ required?: boolean;
138
+ invalid?: boolean;
139
+ } & {
140
+ placeholder?: string;
141
+ clearable?: boolean;
142
+ type?: string;
143
+ texts?: typeof import('../QTextField/types').DEFAULT_TEXTS;
144
+ }> & Readonly<{
145
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
146
+ "onClick:clear"?: ((event: Event) => any) | undefined;
147
+ }>, {
148
+ fieldRef: import('vue').ComputedRef<HTMLElement | null | undefined>;
149
+ inputRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
150
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
151
+ "update:modelValue": (value: string) => any;
152
+ } & {
153
+ "click:clear": (event: Event) => any;
154
+ }, string, {
155
+ type: string;
156
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
157
+ beforeCreate?: (() => void) | (() => void)[];
158
+ created?: (() => void) | (() => void)[];
159
+ beforeMount?: (() => void) | (() => void)[];
160
+ mounted?: (() => void) | (() => void)[];
161
+ beforeUpdate?: (() => void) | (() => void)[];
162
+ updated?: (() => void) | (() => void)[];
163
+ activated?: (() => void) | (() => void)[];
164
+ deactivated?: (() => void) | (() => void)[];
165
+ beforeDestroy?: (() => void) | (() => void)[];
166
+ beforeUnmount?: (() => void) | (() => void)[];
167
+ destroyed?: (() => void) | (() => void)[];
168
+ unmounted?: (() => void) | (() => void)[];
169
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
170
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
171
+ errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
172
+ };
173
+ $forceUpdate: () => void;
174
+ $nextTick: typeof import('vue').nextTick;
175
+ $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;
176
+ } & Readonly<{
177
+ type: string;
178
+ }> & Omit<Readonly<{
179
+ modelValue?: string;
180
+ } & import('../../types/component').QBaseComponentProps & {
181
+ label?: string;
182
+ for?: string;
183
+ } & {
184
+ size?: import('..').QFieldSize;
185
+ readonly?: boolean;
186
+ disabled?: boolean;
187
+ required?: boolean;
188
+ invalid?: boolean;
189
+ } & {
190
+ placeholder?: string;
191
+ clearable?: boolean;
192
+ type?: string;
193
+ texts?: typeof import('../QTextField/types').DEFAULT_TEXTS;
194
+ }> & Readonly<{
195
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
196
+ "onClick:clear"?: ((event: Event) => any) | undefined;
197
+ }>, "type" | "fieldRef" | "inputRef"> & import('vue').ShallowUnwrapRef<{
198
+ fieldRef: import('vue').ComputedRef<HTMLElement | null | undefined>;
199
+ inputRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
200
+ }> & {} & import('vue').ComponentCustomProperties & {} & {
201
+ $slots: {
202
+ 'label.prepend'?(_: {}): any;
203
+ 'label.append'?(_: {}): any;
204
+ prepend?(_: {}): any;
205
+ append?(_: {}): any;
206
+ extras?(_: {}): any;
207
+ };
208
+ }) | null;
209
+ }, any, import('vue').ComponentProvideOptions, {
210
+ P: {};
211
+ B: {};
212
+ D: {};
213
+ C: {};
214
+ M: {};
215
+ Defaults: {};
216
+ }, Readonly<{
217
+ modelValue?: string;
218
+ masked?: boolean;
219
+ } & Omit<import('..').QTextFieldProps, "type" | "texts" | "clearable"> & {
220
+ toggle?: boolean;
221
+ meter?: boolean;
222
+ meterLevels?: import('./types').PasswordStrengthLevel[];
223
+ rules?: import('./types').QPasswordFieldRule[];
224
+ icons?: import('./types').QPasswordFieldIcons;
225
+ }> & Readonly<{
226
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
227
+ "onUpdate:masked"?: ((value: boolean) => any) | undefined;
228
+ }>, {}, {}, {}, {}, {
229
+ size: import('..').QFieldSize;
230
+ icons: import('./types').QPasswordFieldIcons;
231
+ }>;
232
+ __isFragment?: never;
233
+ __isTeleport?: never;
234
+ __isSuspense?: never;
235
+ } & import('vue').ComponentOptionsBase<Readonly<{
236
+ modelValue?: string;
237
+ masked?: boolean;
238
+ } & Omit<import('..').QTextFieldProps, "type" | "texts" | "clearable"> & {
239
+ toggle?: boolean;
240
+ meter?: boolean;
241
+ meterLevels?: import('./types').PasswordStrengthLevel[];
242
+ rules?: import('./types').QPasswordFieldRule[];
243
+ icons?: import('./types').QPasswordFieldIcons;
244
+ }> & Readonly<{
245
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
246
+ "onUpdate:masked"?: ((value: boolean) => any) | undefined;
247
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
248
+ "update:modelValue": (value: string) => any;
249
+ "update:masked": (value: boolean) => any;
250
+ }, string, {
251
+ size: import('..').QFieldSize;
252
+ icons: import('./types').QPasswordFieldIcons;
253
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
254
+ $slots: {
255
+ 'label.prepend'?(_: {}): any;
256
+ 'label.append'?(_: {}): any;
257
+ prepend?(_: {}): any;
258
+ append?(_: {}): any;
259
+ extras?(_: {}): any;
260
+ };
261
+ });
262
+ export { QPasswordField };
263
+ export type { QPasswordFieldProps };
264
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/QPasswordField/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAKlD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAO+mzB,GAAG,8CAA8C,GAAG,yBAAyB,GAAG,6DAAmC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAAtH,GAAG,8CAA8C,GAAG,yBAAyB,GAAG,6DAAmC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAPlszB,CAAA;AAGvD,OAAO,EAAE,cAAc,EAAE,CAAA;AAGzB,YAAY,EAAE,mBAAmB,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import o from "./QPasswordField.vue.js";
2
+ import { setupPropsProxy as r } from "../../utils/setupPropsProxy.js";
3
+ const p = r(o);
4
+ export {
5
+ p as QPasswordField
6
+ };
@@ -0,0 +1,100 @@
1
+ import { DEFAULT_ICONS } from './constants';
2
+ import { QOverlayProps } from '../QOverlay';
3
+ import { QTextFieldProps } from '../QTextField';
4
+ /**
5
+ * Represents a password strength level.
6
+ */
7
+ export type PasswordStrengthLevel = {
8
+ /**
9
+ * The label describing this strength level (e.g., "Weak", "Strong").
10
+ */
11
+ label: string;
12
+ /**
13
+ * The maximum threshold value below which this strength level applies.
14
+ */
15
+ threshold?: number;
16
+ /**
17
+ * Optional color associated with this strength level (e.g., for UI representation).
18
+ */
19
+ color?: string;
20
+ };
21
+ /**
22
+ * Represents the strength of a password.
23
+ */
24
+ export type PasswordStrengthEvalResult = {
25
+ /**
26
+ * The overall score of the password strength.
27
+ */
28
+ score: number;
29
+ /**
30
+ * An array of messages providing feedback on the password strength.
31
+ */
32
+ messages: string[];
33
+ };
34
+ /**
35
+ * Represents the icons used in the QPasswordField component.
36
+ */
37
+ export type QPasswordFieldIcons = typeof DEFAULT_ICONS;
38
+ /**
39
+ * Represents a rule for validating a password field.
40
+ */
41
+ export type QPasswordFieldRule = {
42
+ /**
43
+ * A regular expression or a function to test the password.
44
+ */
45
+ test: RegExp | ((password: string) => boolean | string);
46
+ /**
47
+ * The weight of the rule.
48
+ */
49
+ weight: number;
50
+ };
51
+ /**
52
+ * Props for the QPasswordField component.
53
+ * Extends {@link QTextFieldProps} excluding 'type', 'clearable', and 'texts'.
54
+ */
55
+ export type QPasswordFieldProps = Omit<QTextFieldProps, 'type' | 'clearable' | 'texts'> & {
56
+ /**
57
+ * Whether to provide a toggle to show the password as plain text.
58
+ */
59
+ toggle?: boolean;
60
+ /**
61
+ * Flag to enable the password strength meter.
62
+ */
63
+ meter?: boolean;
64
+ /**
65
+ * Configuration for the password strength meter.
66
+ */
67
+ meterLevels?: PasswordStrengthLevel[];
68
+ /**
69
+ * Array of password validation rules to be applied.
70
+ */
71
+ rules?: QPasswordFieldRule[];
72
+ /**
73
+ * Custom icon configurations.
74
+ */
75
+ icons?: QPasswordFieldIcons;
76
+ };
77
+ /**
78
+ * Props for the QPasswordFieldMessagesProps component.
79
+ */
80
+ export type QPasswordFieldMessagesProps = {
81
+ /**
82
+ * The validation messages to display.
83
+ */
84
+ messages: string[];
85
+ };
86
+ /**
87
+ * Props for the QPasswordFieldMeterOverlay component.
88
+ * Extends {@link QOverlayProps} and {@link QPasswordFieldMessagesProps}.
89
+ */
90
+ export type QPasswordFieldMeterOverlay = QOverlayProps & Partial<QPasswordFieldMessagesProps> & {
91
+ /**
92
+ * The current score.
93
+ */
94
+ score: number;
95
+ /**
96
+ * Configuration for the strength meter.
97
+ */
98
+ levels: PasswordStrengthLevel[];
99
+ };
100
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/QPasswordField/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACxC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,aAAa,CAAA;AAEtD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC,CAAA;IAEvD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,GAAG;IACzF;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAA;IAErC;;OAEG;IACH,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAA;CAC3B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACzC;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG,aAAa,GACrD,OAAO,CAAC,2BAA2B,CAAC,GAAG;IACtC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,MAAM,EAAE,qBAAqB,EAAE,CAAA;CAC/B,CAAA"}
@@ -30,6 +30,7 @@ declare function __VLS_template(): {
30
30
  readonly readonly?: boolean | undefined;
31
31
  readonly disabled?: boolean | undefined;
32
32
  readonly required?: boolean | undefined;
33
+ readonly invalid?: boolean | undefined;
33
34
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
34
35
  $attrs: {
35
36
  [x: string]: unknown;
@@ -117,6 +118,7 @@ declare function __VLS_template(): {
117
118
  readonly value: Primitive;
118
119
  readonly label: string;
119
120
  readonly icon?: import('../QIcon').Icon | undefined;
121
+ readonly selectable?: boolean | undefined;
120
122
  readonly selected?: boolean | undefined;
121
123
  readonly highlighted?: boolean | undefined;
122
124
  readonly disabled?: boolean | undefined;
@@ -300,6 +302,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
300
302
  readonly readonly?: boolean | undefined;
301
303
  readonly disabled?: boolean | undefined;
302
304
  readonly required?: boolean | undefined;
305
+ readonly invalid?: boolean | undefined;
303
306
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
304
307
  $attrs: {
305
308
  [x: string]: unknown;
@@ -387,6 +390,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
387
390
  readonly value: Primitive;
388
391
  readonly label: string;
389
392
  readonly icon?: import('../QIcon').Icon | undefined;
393
+ readonly selectable?: boolean | undefined;
390
394
  readonly selected?: boolean | undefined;
391
395
  readonly highlighted?: boolean | undefined;
392
396
  readonly disabled?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"QSelect.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QSelect/QSelect.vue"],"names":[],"mappings":"AAuHA;AAkUC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAatD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAG3C,OAAO,EAAY,QAAQ,EAAc,MAAM,KAAK,CAAA;AAEpD,KAAK,WAAW,GAAG,YAAY,CAAC;AA8LjC,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,SAAS,CAAC;CACtB,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WAwTT,OAAO,IAA6B;;yBAnBpB,GAAG;wBACJ,GAAG;wBACH,GAAG;gCACK,GAAG;;;YACb,GAAG;+BACM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAoEG,GAAE,8CAGf,GAAG,yBAAyB,GAAG,6DAC/B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAJU,GAAE,8CAGf,GAAG,yBAAyB,GAAG,6DAC/B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAJU,GAAE,8CAGf,GAAG,yBAAyB,GAAG,6DAC/B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EArD/B;AAkCD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAcqB,GAAE,8CAGf,GAAG,yBAAyB,GAAG,6DAC/B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CAJU,GAAE,8CAGf,GAAG,yBAAyB,GAAG,6DAC/B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAJU,GAAE,8CAGf,GAAG,yBAAyB,GAAG,6DAC/B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAT9B,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"QSelect.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QSelect/QSelect.vue"],"names":[],"mappings":"AAwHA;AAmUC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAatD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAG3C,OAAO,EAAY,QAAQ,EAAc,MAAM,KAAK,CAAA;AAEpD,KAAK,WAAW,GAAG,YAAY,CAAC;AA8LjC,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,SAAS,CAAC;CACtB,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WA0TT,OAAO,IAA6B;;yBAnBpB,GAAG;wBACJ,GAAG;wBACH,GAAG;gCACK,GAAG;;;YACb,GAAG;+BACM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAmE/B,GAAG,8CACJ,GAAG,yBAAyB,GAAG,6DAG1B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAJP,GAAG,8CACJ,GAAG,yBAAyB,GAAG,6DAG1B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAJP,GAAG,8CACJ,GAAG,yBAAyB,GAAG,6DAG1B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EApDd;AAkCD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAab,GAAG,8CACJ,GAAG,yBAAyB,GAAG,6DAG1B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CAJP,GAAG,8CACJ,GAAG,yBAAyB,GAAG,6DAG1B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAJP,GAAG,8CACJ,GAAG,yBAAyB,GAAG,6DAG1B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OARb,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}