@quidgest/ui 0.15.2 → 0.15.4

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 (123) hide show
  1. package/dist/manifest/components.json +4 -0
  2. package/dist/ui.css +111 -6
  3. package/dist/ui.esm.js +6988 -5987
  4. package/dist/ui.js +33 -26
  5. package/dist/ui.min.css +1 -1
  6. package/dist/ui.min.js +1141 -990
  7. package/dist/ui.scss +119 -9
  8. package/esm/components/QCombobox/QCombobox.d.ts +18 -14
  9. package/esm/components/QCombobox/QCombobox.d.ts.map +1 -1
  10. package/esm/components/QCombobox/QCombobox.vue.js +1 -1
  11. package/esm/components/QCombobox/index.d.ts +29 -17
  12. package/esm/components/QCombobox/index.d.ts.map +1 -1
  13. package/esm/components/QDateTimePicker/QDateTimePicker.vue.js +1 -1
  14. package/esm/components/QDateTimePicker/index.d.ts +3 -0
  15. package/esm/components/QDateTimePicker/index.d.ts.map +1 -1
  16. package/esm/components/QDialog/QDialog.d.ts +2 -2
  17. package/esm/components/QDialog/QDialog.d.ts.map +1 -1
  18. package/esm/components/QDialog/QDialog.vue.js +51 -50
  19. package/esm/components/QDismissibleLayer/QDismissibleLayer.d.ts +35 -0
  20. package/esm/components/QDismissibleLayer/QDismissibleLayer.d.ts.map +1 -0
  21. package/esm/components/QDismissibleLayer/QDismissibleLayer.vue.js +50 -0
  22. package/esm/components/QDismissibleLayer/QDismissibleLayer.vue2.js +4 -0
  23. package/esm/components/QDismissibleLayer/index.d.ts +53 -0
  24. package/esm/components/QDismissibleLayer/index.d.ts.map +1 -0
  25. package/esm/components/QDismissibleLayer/index.js +6 -0
  26. package/esm/components/QDismissibleLayer/types.d.ts +25 -0
  27. package/esm/components/QDismissibleLayer/types.d.ts.map +1 -0
  28. package/esm/components/QDropdownMenu/QDropdownMenu.d.ts +0 -4
  29. package/esm/components/QDropdownMenu/QDropdownMenu.d.ts.map +1 -1
  30. package/esm/components/QDropdownMenu/QDropdownMenu.vue.js +10 -15
  31. package/esm/components/QDropdownMenu/QDropdownMenuContent.d.ts +10 -15
  32. package/esm/components/QDropdownMenu/QDropdownMenuContent.d.ts.map +1 -1
  33. package/esm/components/QDropdownMenu/QDropdownMenuContent.vue.js +72 -117
  34. package/esm/components/QDropdownMenu/index.d.ts +0 -3
  35. package/esm/components/QDropdownMenu/index.d.ts.map +1 -1
  36. package/esm/components/QField/QField.d.ts.map +1 -1
  37. package/esm/components/QField/QField.vue.js +11 -10
  38. package/esm/components/QFileUpload/QFileUpload.vue.js +1 -1
  39. package/esm/components/QFileUpload/index.d.ts +3 -0
  40. package/esm/components/QFileUpload/index.d.ts.map +1 -1
  41. package/esm/components/QFocusTrap/QFocusTrap.d.ts +28 -0
  42. package/esm/components/QFocusTrap/QFocusTrap.d.ts.map +1 -0
  43. package/esm/components/QFocusTrap/QFocusTrap.vue.js +32 -0
  44. package/esm/components/QFocusTrap/QFocusTrap.vue2.js +4 -0
  45. package/esm/components/QFocusTrap/index.d.ts +38 -0
  46. package/esm/components/QFocusTrap/index.d.ts.map +1 -0
  47. package/esm/components/QFocusTrap/index.js +6 -0
  48. package/esm/components/QFocusTrap/types.d.ts +6 -0
  49. package/esm/components/QFocusTrap/types.d.ts.map +1 -0
  50. package/esm/components/QInputGroup/QInputGroup.vue.js +1 -1
  51. package/esm/components/QLabel/QLabel.d.ts +1 -0
  52. package/esm/components/QLabel/QLabel.d.ts.map +1 -1
  53. package/esm/components/QLabel/QLabel.vue.js +28 -13
  54. package/esm/components/QLabel/index.d.ts +1 -0
  55. package/esm/components/QLabel/index.d.ts.map +1 -1
  56. package/esm/components/QLabel/types.d.ts +5 -0
  57. package/esm/components/QLabel/types.d.ts.map +1 -1
  58. package/esm/components/QList/QList.d.ts +0 -9
  59. package/esm/components/QList/QList.d.ts.map +1 -1
  60. package/esm/components/QList/QList.vue.js +97 -82
  61. package/esm/components/QList/index.d.ts +0 -3
  62. package/esm/components/QList/index.d.ts.map +1 -1
  63. package/esm/components/QMeter/QMeter.vue.js +14 -13
  64. package/esm/components/QMeter/index.d.ts +2 -0
  65. package/esm/components/QMeter/index.d.ts.map +1 -1
  66. package/esm/components/QOverlay/QOverlay.d.ts +2 -0
  67. package/esm/components/QOverlay/QOverlay.d.ts.map +1 -1
  68. package/esm/components/QOverlay/QOverlay.vue.js +197 -148
  69. package/esm/components/QOverlay/index.d.ts +4 -0
  70. package/esm/components/QOverlay/index.d.ts.map +1 -1
  71. package/esm/components/QOverlay/types.d.ts +6 -1
  72. package/esm/components/QOverlay/types.d.ts.map +1 -1
  73. package/esm/components/QPasswordField/QPasswordField.d.ts +8 -4
  74. package/esm/components/QPasswordField/QPasswordField.d.ts.map +1 -1
  75. package/esm/components/QPasswordField/QPasswordField.vue.js +1 -1
  76. package/esm/components/QPasswordField/QPasswordFieldMeterOverlay.vue.js +6 -5
  77. package/esm/components/QPasswordField/index.d.ts +4 -2
  78. package/esm/components/QPasswordField/index.d.ts.map +1 -1
  79. package/esm/components/QPropertyList/QPropertyList.vue.js +23 -23
  80. package/esm/components/QPropertyList/QPropertyListRow.d.ts +6 -2
  81. package/esm/components/QPropertyList/QPropertyListRow.d.ts.map +1 -1
  82. package/esm/components/QPropertyList/QPropertyListRow.vue.js +20 -20
  83. package/esm/components/QPropertyList/index.d.ts +9 -2
  84. package/esm/components/QPropertyList/index.d.ts.map +1 -1
  85. package/esm/components/QRadioGroup/QRadioButton.d.ts +24 -0
  86. package/esm/components/QRadioGroup/QRadioButton.d.ts.map +1 -0
  87. package/esm/components/QRadioGroup/QRadioButton.vue.js +78 -0
  88. package/esm/components/QRadioGroup/QRadioButton.vue2.js +4 -0
  89. package/esm/components/QRadioGroup/QRadioGroup.d.ts +32 -0
  90. package/esm/components/QRadioGroup/QRadioGroup.d.ts.map +1 -0
  91. package/esm/components/QRadioGroup/QRadioGroup.vue.js +79 -0
  92. package/esm/components/QRadioGroup/QRadioGroup.vue2.js +4 -0
  93. package/esm/components/QRadioGroup/index.d.ts +108 -0
  94. package/esm/components/QRadioGroup/index.d.ts.map +1 -0
  95. package/esm/components/QRadioGroup/index.js +8 -0
  96. package/esm/components/QRadioGroup/types.d.ts +65 -0
  97. package/esm/components/QRadioGroup/types.d.ts.map +1 -0
  98. package/esm/components/QSelect/QSelect.d.ts +4 -8
  99. package/esm/components/QSelect/QSelect.d.ts.map +1 -1
  100. package/esm/components/QSelect/QSelect.vue.js +107 -126
  101. package/esm/components/QSelect/index.d.ts +5 -4
  102. package/esm/components/QSelect/index.d.ts.map +1 -1
  103. package/esm/components/QTextArea/QTextArea.vue.js +1 -1
  104. package/esm/components/QTextArea/index.d.ts +3 -0
  105. package/esm/components/QTextArea/index.d.ts.map +1 -1
  106. package/esm/components/QTextField/QTextField.d.ts +2 -2
  107. package/esm/components/QTextField/QTextField.vue.js +1 -1
  108. package/esm/components/QTextField/index.d.ts +4 -1
  109. package/esm/components/QTextField/index.d.ts.map +1 -1
  110. package/esm/components/index.d.ts +3 -0
  111. package/esm/components/index.d.ts.map +1 -1
  112. package/esm/components/index.js +67 -60
  113. package/esm/composables/group.d.ts.map +1 -1
  114. package/esm/composables/group.js +1 -1
  115. package/esm/index.d.ts +4 -0
  116. package/esm/utils/merge.d.ts.map +1 -1
  117. package/esm/utils/merge.js +12 -16
  118. package/esm/vendors/@vueuse/core/index.js +173 -67
  119. package/esm/vendors/@vueuse/integrations/useFocusTrap/component.js +24 -0
  120. package/esm/vendors/@vueuse/shared/index.js +36 -15
  121. package/esm/vendors/focus-trap/dist/focus-trap.esm.js +473 -0
  122. package/esm/vendors/tabbable/dist/index.esm.js +202 -0
  123. package/package.json +3 -1
@@ -1,4 +1,4 @@
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 c, createElementBlock as y, createCommentVNode as m, createVNode as g, toDisplayString as B } from "vue";
1
+ import { defineComponent as p, mergeModels as u, useModel as f, computed as h, createBlock as d, openBlock as r, unref as c, withCtx as v, createElementVNode as i, createElementBlock as y, createCommentVNode as m, createVNode as g, toDisplayString as B } from "vue";
2
2
  import { QMeter as _ } from "../QMeter/index.js";
3
3
  import { QOverlay as k } from "../QOverlay/index.js";
4
4
  import V from "./QPasswordFieldMessages.vue.js";
@@ -30,6 +30,7 @@ const w = { class: "q-password-field__meter" }, C = {
30
30
  trigger: {},
31
31
  closeOnContentClick: { type: Boolean },
32
32
  width: {},
33
+ focusTrap: { type: Boolean },
33
34
  messages: {},
34
35
  score: {},
35
36
  levels: {}
@@ -54,7 +55,7 @@ const w = { class: "q-password-field__meter" }, C = {
54
55
  }
55
56
  return o.levels[o.levels.length - 1];
56
57
  });
57
- return (t, l) => (r(), d(i(k), {
58
+ return (t, l) => (r(), d(c(k), {
58
59
  modelValue: n.value,
59
60
  "onUpdate:modelValue": l[0] || (l[0] = (e) => n.value = e),
60
61
  trigger: "manual",
@@ -66,14 +67,14 @@ const w = { class: "q-password-field__meter" }, C = {
66
67
  default: v(() => {
67
68
  var e;
68
69
  return [
69
- c("div", w, [
70
+ i("div", w, [
70
71
  s.value ? (r(), y("div", C, [
71
- g(i(_), {
72
+ g(c(_), {
72
73
  "model-value": o.score,
73
74
  max: 1,
74
75
  color: s.value.color
75
76
  }, null, 8, ["model-value", "color"]),
76
- c(
77
+ i(
77
78
  "span",
78
79
  null,
79
80
  B(s.value.label),
@@ -28,10 +28,10 @@ declare const QPasswordField: {
28
28
  readonly class?: string | unknown[] | undefined;
29
29
  readonly label?: string | undefined;
30
30
  readonly for?: string | undefined;
31
+ readonly required?: boolean | undefined;
31
32
  readonly size?: import('..').QFieldSize | undefined;
32
33
  readonly readonly?: boolean | undefined;
33
34
  readonly disabled?: boolean | undefined;
34
- readonly required?: boolean | undefined;
35
35
  readonly invalid?: boolean | undefined;
36
36
  readonly placeholder?: string | undefined;
37
37
  readonly clearable?: boolean | undefined;
@@ -54,10 +54,10 @@ declare const QPasswordField: {
54
54
  readonly class?: string | unknown[] | undefined;
55
55
  readonly label?: string | undefined;
56
56
  readonly for?: string | undefined;
57
+ readonly required?: boolean | undefined;
57
58
  readonly size?: import('..').QFieldSize | undefined;
58
59
  readonly readonly?: boolean | undefined;
59
60
  readonly disabled?: boolean | undefined;
60
- readonly required?: boolean | undefined;
61
61
  readonly invalid?: boolean | undefined;
62
62
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
63
63
  $attrs: {
@@ -130,6 +130,7 @@ declare const QPasswordField: {
130
130
  } & import('../../types/component').QBaseComponentProps & {
131
131
  label?: string;
132
132
  for?: string;
133
+ required?: boolean;
133
134
  } & {
134
135
  size?: import('..').QFieldSize;
135
136
  readonly?: boolean;
@@ -180,6 +181,7 @@ declare const QPasswordField: {
180
181
  } & import('../../types/component').QBaseComponentProps & {
181
182
  label?: string;
182
183
  for?: string;
184
+ required?: boolean;
183
185
  } & {
184
186
  size?: import('..').QFieldSize;
185
187
  readonly?: boolean;
@@ -1 +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"}
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"}
@@ -1,7 +1,7 @@
1
- import { defineComponent as A, ref as c, computed as g, watch as G, nextTick as Q, createElementBlock as d, openBlock as i, normalizeClass as _, createElementVNode as a, createBlock as p, createCommentVNode as f, Fragment as y, renderList as k, unref as m, withCtx as h, renderSlot as b } from "vue";
2
- import { QPropertyListGroup as S, QPropertyListRow as U, QPropertyListPanel as N } from "./index.js";
3
- import { DEFAULT_TEXTS as O, DEFAULT_ICONS as $ } from "./types.js";
4
- const D = ["id"], W = { class: "q-property-list__table" }, j = /* @__PURE__ */ A({
1
+ import { defineComponent as G, ref as c, computed as g, watch as Q, nextTick as S, createElementBlock as d, openBlock as i, normalizeClass as h, createElementVNode as a, createBlock as p, createCommentVNode as f, Fragment as y, renderList as _, unref as m, withCtx as k, renderSlot as C } from "vue";
2
+ import { QPropertyListGroup as N, QPropertyListRow as O, QPropertyListPanel as V } from "./index.js";
3
+ import { DEFAULT_TEXTS as $, DEFAULT_ICONS as D } from "./types.js";
4
+ const U = ["id"], W = { class: "q-property-list__table" }, j = /* @__PURE__ */ G({
5
5
  __name: "QPropertyList",
6
6
  props: {
7
7
  id: {},
@@ -13,12 +13,12 @@ const D = ["id"], W = { class: "q-property-list__table" }, j = /* @__PURE__ */ A
13
13
  block: { type: Boolean },
14
14
  noPanel: { type: Boolean },
15
15
  noToggle: { type: Boolean },
16
- icons: { default: () => $ },
17
- texts: { default: () => O }
16
+ icons: { default: () => D },
17
+ texts: { default: () => $ }
18
18
  },
19
19
  emits: ["field-change", "select-field"],
20
- setup(x, { emit: C }) {
21
- const t = x, v = C, u = c(t.groups.map((e) => e.id)), s = c(void 0), r = c(null), F = g(() => t.groups.length ? t.groups.filter(
20
+ setup(F, { emit: b }) {
21
+ const t = F, v = b, u = c(t.groups.map((e) => e.id)), s = c(void 0), r = c(null), x = g(() => t.groups.length ? t.groups.filter(
22
22
  (e) => t.fields.some((o) => o.group === e.id)
23
23
  ) : [{ id: "", title: "" }]), w = g(() => [
24
24
  "q-property-list",
@@ -60,11 +60,11 @@ const D = ["id"], W = { class: "q-property-list__table" }, j = /* @__PURE__ */ A
60
60
  function R(e, o) {
61
61
  t.readonly || (e.props.readonly ?? !1) || v("field-change", e, o);
62
62
  }
63
- return G(
63
+ return Q(
64
64
  () => t.block,
65
65
  async (e) => {
66
66
  var o;
67
- await Q(), e ? (o = r.value) == null || o.removeAttribute("style") : P();
67
+ await S(), e ? (o = r.value) == null || o.removeAttribute("style") : P();
68
68
  },
69
69
  { immediate: !0 }
70
70
  ), (e, o) => (i(), d("div", {
@@ -72,7 +72,7 @@ const D = ["id"], W = { class: "q-property-list__table" }, j = /* @__PURE__ */ A
72
72
  ref_key: "componentRoot",
73
73
  ref: r,
74
74
  tabindex: "0",
75
- class: _(w.value),
75
+ class: h(w.value),
76
76
  onFocusout: q
77
77
  }, [
78
78
  a("table", W, [
@@ -91,13 +91,13 @@ const D = ["id"], W = { class: "q-property-list__table" }, j = /* @__PURE__ */ A
91
91
  (i(!0), d(
92
92
  y,
93
93
  null,
94
- k(F.value, (n) => (i(), d(
94
+ _(x.value, (n) => (i(), d(
95
95
  y,
96
96
  {
97
97
  key: n.id
98
98
  },
99
99
  [
100
- n.title ? (i(), p(m(S), {
100
+ n.title ? (i(), p(m(N), {
101
101
  key: 0,
102
102
  "data-key": n.id,
103
103
  title: n.title,
@@ -108,21 +108,21 @@ const D = ["id"], W = { class: "q-property-list__table" }, j = /* @__PURE__ */ A
108
108
  (i(!0), d(
109
109
  y,
110
110
  null,
111
- k(B(n.id), (l) => (i(), p(m(U), {
111
+ _(B(n.id), (l) => (i(), p(m(O), {
112
112
  key: l.id,
113
- class: _(T(l)),
113
+ class: h(T(l)),
114
114
  field: l,
115
115
  "model-value": l.props.modelValue,
116
116
  readonly: t.readonly,
117
117
  onFocus: E,
118
- "onUpdate:modelValue": (V) => R(l, V)
118
+ onFieldChange: (A) => R(l, A)
119
119
  }, {
120
- default: h(() => [
121
- b(e.$slots, l.id, { field: l })
120
+ default: k(() => [
121
+ C(e.$slots, l.id, { field: l })
122
122
  ]),
123
123
  _: 2
124
124
  /* DYNAMIC */
125
- }, 1032, ["class", "field", "model-value", "readonly", "onUpdate:modelValue"]))),
125
+ }, 1032, ["class", "field", "model-value", "readonly", "onFieldChange"]))),
126
126
  128
127
127
  /* KEYED_FRAGMENT */
128
128
  ))
@@ -135,13 +135,13 @@ const D = ["id"], W = { class: "q-property-list__table" }, j = /* @__PURE__ */ A
135
135
  ))
136
136
  ])
137
137
  ]),
138
- t.noPanel ? f("v-if", !0) : (i(), p(m(N), {
138
+ t.noPanel ? f("v-if", !0) : (i(), p(m(V), {
139
139
  key: 0,
140
140
  field: s.value,
141
141
  texts: t.texts
142
142
  }, {
143
- default: h(() => [
144
- s.value ? b(e.$slots, "panel", {
143
+ default: k(() => [
144
+ s.value ? C(e.$slots, "panel", {
145
145
  key: 0,
146
146
  field: s.value
147
147
  }) : f("v-if", !0)
@@ -149,7 +149,7 @@ const D = ["id"], W = { class: "q-property-list__table" }, j = /* @__PURE__ */ A
149
149
  _: 3
150
150
  /* FORWARDED */
151
151
  }, 8, ["field", "texts"]))
152
- ], 42, D));
152
+ ], 42, U));
153
153
  }
154
154
  });
155
155
  export {
@@ -3,7 +3,8 @@ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>
3
3
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
4
4
  readonly "onUpdate:modelValue"?: ((value: T) => any) | undefined;
5
5
  readonly onFocus?: ((field: QPropertyListField) => any) | undefined;
6
- } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onFocus" | "onUpdate:modelValue"> & ({
6
+ readonly "onField-change"?: ((value: unknown) => any) | undefined;
7
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onFocus" | "onUpdate:modelValue" | "onField-change"> & ({
7
8
  modelValue?: T;
8
9
  } & import('../../types/component').QBaseComponentProps & {
9
10
  field: QPropertyListField;
@@ -14,7 +15,10 @@ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>
14
15
  slots: {
15
16
  default?(_: {}): any;
16
17
  };
17
- emit: ((e: "focus", field: QPropertyListField) => void) & ((evt: "update:modelValue", value: T) => void);
18
+ emit: {
19
+ (e: "focus", field: QPropertyListField): void;
20
+ (e: "field-change", value: unknown): void;
21
+ } & ((evt: "update:modelValue", value: T) => void);
18
22
  }>) => import('vue').VNode & {
19
23
  __ctx?: Awaited<typeof __VLS_setup>;
20
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"QPropertyListRow.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QPropertyList/QPropertyListRow.vue"],"names":[],"mappings":"AA4BA;AAqFC,OAAO,KAAK,EAAE,kBAAkB,EAAyB,MAAM,SAAS,CAAA;yBAKvD,CAAC,eACL,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WAoJ1D,mBAAmB,CAAC;;;;qBAzFf,CAAC;;;;oBAyFgF,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;yBAlCkB,GAAG;;UAoCzB,KAlJD,OAAO,SAAS,kBAAkB,KAAG,IAAI,kDAkJJ;OAG/B,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE;AA9JxE,wBA8J2E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"QPropertyListRow.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QPropertyList/QPropertyListRow.vue"],"names":[],"mappings":"AA4BA;AAuFC,OAAO,KAAK,EAAE,kBAAkB,EAAyB,MAAM,SAAS,CAAA;yBAKvD,CAAC,eACL,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WAsJ1D,mBAAmB,CAAC;;;;;qBAzFf,CAAC;;;;oBAyFgF,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;yBAlCkB,GAAG;;UAoCzB;YApJD,OAAO,SAAS,kBAAkB,GAAG,IAAI;YACzC,cAAc,SAAS,OAAO,GAAG,IAAI;sDAmJA;OAG/B,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE;AAhKxE,wBAgK2E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -1,10 +1,10 @@
1
- import { defineComponent as g, mergeModels as d, useModel as k, computed as o, createElementBlock as p, openBlock as r, normalizeClass as c, createElementVNode as n, withModifiers as u, toDisplayString as B, renderSlot as M, createCommentVNode as b, createBlock as h, resolveDynamicComponent as w, mergeProps as P } from "vue";
1
+ import { defineComponent as V, mergeModels as p, useModel as k, computed as o, createElementBlock as c, openBlock as r, normalizeClass as u, createElementVNode as n, withModifiers as m, toDisplayString as h, renderSlot as B, createCommentVNode as M, createBlock as b, resolveDynamicComponent as P, mergeProps as w } from "vue";
2
2
  const D = ["id", "data-group"], E = {
3
3
  key: 0,
4
4
  class: "q-property-list-field__container"
5
- }, N = /* @__PURE__ */ g({
5
+ }, N = /* @__PURE__ */ V({
6
6
  __name: "QPropertyListRow",
7
- props: /* @__PURE__ */ d({
7
+ props: /* @__PURE__ */ p({
8
8
  id: {},
9
9
  class: {},
10
10
  field: {},
@@ -13,9 +13,9 @@ const D = ["id", "data-group"], E = {
13
13
  modelValue: {},
14
14
  modelModifiers: {}
15
15
  }),
16
- emits: /* @__PURE__ */ d(["focus"], ["update:modelValue"]),
17
- setup(a, { emit: m }) {
18
- const e = a, f = m, t = k(a, "modelValue"), _ = o(() => ["q-property-list__row", e.class]), y = o(() => {
16
+ emits: /* @__PURE__ */ p(["focus", "field-change"], ["update:modelValue"]),
17
+ setup(i, { emit: f }) {
18
+ const e = i, a = f, t = k(i, "modelValue"), _ = o(() => ["q-property-list__row", e.class]), y = o(() => {
19
19
  var l;
20
20
  return [
21
21
  "q-property-list__cell",
@@ -24,33 +24,33 @@ const D = ["id", "data-group"], E = {
24
24
  "q-property-list__cell--required": (l = e.field.props) == null ? void 0 : l.required
25
25
  }
26
26
  ];
27
- }), v = o(() => e.readonly || (e.field.props.readonly ?? !1)), V = o(() => ({
27
+ }), v = o(() => e.readonly || (e.field.props.readonly ?? !1)), g = o(() => ({
28
28
  ...e.field.props,
29
29
  readonly: v.value
30
30
  }));
31
31
  function s() {
32
- f("focus", e.field);
32
+ a("focus", e.field);
33
33
  }
34
34
  function q(l) {
35
- t.value = l;
35
+ t.value = l, a("field-change", l);
36
36
  }
37
- return (l, i) => (r(), p("tr", {
37
+ return (l, d) => (r(), c("tr", {
38
38
  id: e.id,
39
- class: c(_.value),
39
+ class: u(_.value),
40
40
  "data-group": e.field.group,
41
41
  onFocusin: s
42
42
  }, [
43
43
  n(
44
44
  "td",
45
45
  {
46
- class: c(y.value),
47
- onClick: u(s, ["prevent", "stop"])
46
+ class: u(y.value),
47
+ onClick: m(s, ["prevent", "stop"])
48
48
  },
49
49
  [
50
50
  n(
51
51
  "div",
52
52
  null,
53
- B(e.field.label),
53
+ h(e.field.label),
54
54
  1
55
55
  /* TEXT */
56
56
  )
@@ -60,18 +60,18 @@ const D = ["id", "data-group"], E = {
60
60
  ),
61
61
  n("td", {
62
62
  class: "q-property-list__cell",
63
- onClick: u(s, ["prevent", "stop"])
63
+ onClick: m(s, ["prevent", "stop"])
64
64
  }, [
65
- M(l.$slots, "default", {}, () => [
66
- e.field.component ? (r(), p("div", E, [
67
- (r(), h(w(e.field.component), P(V.value, {
65
+ B(l.$slots, "default", {}, () => [
66
+ e.field.component ? (r(), c("div", E, [
67
+ (r(), b(P(e.field.component), w(g.value, {
68
68
  modelValue: t.value,
69
69
  "onUpdate:modelValue": [
70
- i[0] || (i[0] = (C) => t.value = C),
70
+ d[0] || (d[0] = (C) => t.value = C),
71
71
  q
72
72
  ]
73
73
  }), null, 16, ["modelValue"]))
74
- ])) : b("v-if", !0)
74
+ ])) : M("v-if", !0)
75
75
  ])
76
76
  ])
77
77
  ], 42, D));
@@ -67,11 +67,15 @@ declare const QPropertyListRow: <T>(__VLS_props: NonNullable<Awaited<typeof __VL
67
67
  default?(_: {}): any;
68
68
  };
69
69
  attrs: any;
70
- emit: ((e: "focus", field: import('./types').QPropertyListField) => void) & ((evt: "update:modelValue", value: T) => void);
70
+ emit: {
71
+ (e: "focus", field: import('./types').QPropertyListField): void;
72
+ (e: "field-change", value: unknown): void;
73
+ } & ((evt: "update:modelValue", value: T) => void);
71
74
  }, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
72
75
  props: {
73
76
  readonly onFocus?: ((field: import('./types').QPropertyListField) => any) | undefined;
74
77
  readonly "onUpdate:modelValue"?: ((value: T) => any) | undefined;
78
+ readonly "onField-change"?: ((value: unknown) => any) | undefined;
75
79
  modelValue?: T | undefined;
76
80
  id?: string | undefined;
77
81
  class?: string | unknown[] | undefined;
@@ -83,7 +87,10 @@ declare const QPropertyListRow: <T>(__VLS_props: NonNullable<Awaited<typeof __VL
83
87
  slots: {
84
88
  default?(_: {}): any;
85
89
  };
86
- emit: ((e: "focus", field: import('./types').QPropertyListField) => void) & ((evt: "update:modelValue", value: T) => void);
90
+ emit: {
91
+ (e: "focus", field: import('./types').QPropertyListField): void;
92
+ (e: "field-change", value: unknown): void;
93
+ } & ((evt: "update:modelValue", value: T) => void);
87
94
  }>) => import('vue').VNode & {
88
95
  __ctx?: Awaited<typeof __VLS_setup>;
89
96
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/QPropertyList/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,MAAM,SAAS,CAAA;AAKhB,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAkC,CAAA;AACrD,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;2BAc2iN,KAAK;;;;;;cAA4J,KAAK;SAAiB,CAAC;CAd9rN,CAAA;AAC3D,QAAA,MAAM,kBAAkB;;;;;;6FAAuC,CAAA;AAC/D,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;EAAuC,CAAA;AAG/D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAA;AAGlF,YAAY,EACX,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/QPropertyList/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,MAAM,SAAS,CAAA;AAKhB,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAkC,CAAA;AACrD,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;2BAcisN,KAAK;;;;;;;;;cAA4J,KAAK;SAAiB,CAAC;CAdp1N,CAAA;AAC3D,QAAA,MAAM,kBAAkB;;;;;;6FAAuC,CAAA;AAC/D,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;EAAuC,CAAA;AAG/D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAA;AAGlF,YAAY,EACX,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { QRadioButtonProps } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: {
5
+ default?(_: {}): any;
6
+ default?(_: {}): any;
7
+ };
8
+ refs: {};
9
+ rootEl: any;
10
+ };
11
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
12
+ declare const __VLS_component: import('vue').DefineComponent<QRadioButtonProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<QRadioButtonProps> & Readonly<{}>, {
13
+ size: import('./types').QRadioButtonSize;
14
+ color: string;
15
+ labelPlacement: import('./types').QRadioButtonLabelPlacement;
16
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
17
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
18
+ export default _default;
19
+ type __VLS_WithTemplateSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
24
+ //# sourceMappingURL=QRadioButton.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QRadioButton.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QRadioGroup/QRadioButton.vue"],"names":[],"mappings":"AA2BA;AA0FC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAmDjD,iBAAS,cAAc;WAiET,OAAO,IAA6B;;yBAZrB,GAAG;yBACH,GAAG;;;;EAgB/B;AAcD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;6EAOnB,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"}
@@ -0,0 +1,78 @@
1
+ import { defineComponent as m, computed as r, createBlock as b, openBlock as f, unref as o, normalizeClass as v, createSlots as y, withCtx as d, createElementVNode as g, renderSlot as i, createCommentVNode as q, mergeProps as B } from "vue";
2
+ import { QLabel as h } from "../QLabel/index.js";
3
+ import { useGroupItem as C } from "../../composables/group.js";
4
+ import { useId as k } from "../../composables/uid.js";
5
+ const z = ["id", "checked", "name", "value", "disabled"], w = /* @__PURE__ */ m({
6
+ inheritAttrs: !1,
7
+ __name: "QRadioButton",
8
+ props: {
9
+ id: {},
10
+ class: {},
11
+ label: {},
12
+ for: {},
13
+ required: { type: Boolean },
14
+ labelPlacement: { default: "end" },
15
+ disabled: { type: Boolean },
16
+ readonly: { type: Boolean },
17
+ color: { default: "primary" },
18
+ value: {},
19
+ size: { default: "regular" },
20
+ invalid: { type: Boolean },
21
+ name: {}
22
+ },
23
+ setup(s) {
24
+ const e = s, n = k(e.id), t = C(e.value);
25
+ if (!t)
26
+ throw new Error("QRadioButton must be used inside a QRadioGroup");
27
+ const u = r(() => e.labelPlacement === "start" ? "append" : "prepend"), p = r(() => {
28
+ const a = e.size !== "regular" ? `q-radio-button--${e.size}` : void 0, l = e.color !== "primary" ? `q-radio-button--${e.color}` : void 0;
29
+ return [
30
+ "q-radio-button",
31
+ a,
32
+ l,
33
+ {
34
+ "q-radio-button--readonly": e.readonly,
35
+ "q-radio-button--disabled": e.disabled,
36
+ "q-radio-button--invalid": e.invalid
37
+ },
38
+ e.class
39
+ ];
40
+ });
41
+ return (a, l) => (f(), b(o(h), {
42
+ for: o(n),
43
+ class: v(p.value),
44
+ label: e.label
45
+ }, y({
46
+ [u.value]: d(() => [
47
+ g("input", B({
48
+ id: o(n),
49
+ checked: o(t).isActive.value,
50
+ tabindex: "0",
51
+ type: "radio",
52
+ "aria-hidden": "true",
53
+ class: "q-radio-button__input",
54
+ name: e.name,
55
+ value: a.value,
56
+ disabled: e.readonly || e.disabled
57
+ }, a.$attrs, {
58
+ onChange: l[0] || (l[0] = //@ts-ignore
59
+ (...c) => o(t).toggle && o(t).toggle(...c))
60
+ }), null, 16, z),
61
+ e.labelPlacement === "end" ? i(a.$slots, "default", { key: 0 }) : q("v-if", !0)
62
+ ]),
63
+ _: 2
64
+ /* DYNAMIC */
65
+ }, [
66
+ e.labelPlacement === "start" ? {
67
+ name: "prepend",
68
+ fn: d(() => [
69
+ i(a.$slots, "default")
70
+ ]),
71
+ key: "0"
72
+ } : void 0
73
+ ]), 1032, ["for", "class", "label"]));
74
+ }
75
+ });
76
+ export {
77
+ w as default
78
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./QRadioButton.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,32 @@
1
+ import { Primitive } from '../../types/primitive';
2
+ import { QRadioGroupProps } from './types';
3
+ type __VLS_Props = QRadioGroupProps;
4
+ type __VLS_PublicProps = {
5
+ modelValue?: Primitive;
6
+ } & __VLS_Props;
7
+ declare function __VLS_template(): {
8
+ attrs: Partial<{}>;
9
+ slots: {
10
+ default?(_: {}): any;
11
+ extras?(_: {}): any;
12
+ };
13
+ refs: {};
14
+ rootEl: any;
15
+ };
16
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
17
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
18
+ "update:modelValue": (value: Primitive) => any;
19
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
20
+ "onUpdate:modelValue"?: ((value: Primitive) => any) | undefined;
21
+ }>, {
22
+ size: import('./types').QRadioButtonSize;
23
+ orientation: import('./types').QRadioButtonOrientation;
24
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
25
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
26
+ export default _default;
27
+ type __VLS_WithTemplateSlots<T, S> = T & {
28
+ new (): {
29
+ $slots: S;
30
+ };
31
+ };
32
+ //# sourceMappingURL=QRadioGroup.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QRadioGroup.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QRadioGroup/QRadioGroup.vue"],"names":[],"mappings":"AAsBA;AA8FC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK/C,KAAK,WAAW,GAAG,gBAAgB,CAAC;AAoDrC,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,SAAS,CAAC;CACtB,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WAqDT,OAAO,IAA6B;;yBAZrB,GAAG;wBACJ,GAAG;;;;EAgB9B;AAaD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;6EAQnB,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"}
@@ -0,0 +1,79 @@
1
+ import { defineComponent as b, mergeModels as y, useModel as g, watch as B, computed as d, toRef as r, createElementBlock as n, openBlock as a, normalizeClass as q, createBlock as _, createCommentVNode as u, createElementVNode as h, unref as l, mergeProps as z, renderSlot as m } from "vue";
2
+ import { QLabel as k } from "../QLabel/index.js";
3
+ import { provideDefaults as V } from "../../composables/defaults.js";
4
+ import { useGroup as $ } from "../../composables/group.js";
5
+ import { useId as c } from "../../composables/uid.js";
6
+ const C = ["id"], M = {
7
+ key: 1,
8
+ class: "q-field__extras"
9
+ }, w = /* @__PURE__ */ b({
10
+ inheritAttrs: !1,
11
+ __name: "QRadioGroup",
12
+ props: /* @__PURE__ */ y({
13
+ id: {},
14
+ class: {},
15
+ label: {},
16
+ for: {},
17
+ required: { type: Boolean },
18
+ orientation: { default: "vertical" },
19
+ disabled: { type: Boolean },
20
+ readonly: { type: Boolean },
21
+ size: { default: "regular" },
22
+ invalid: { type: Boolean },
23
+ name: {}
24
+ }, {
25
+ modelValue: { type: [String, Number, Boolean, Symbol] },
26
+ modelModifiers: {}
27
+ }),
28
+ emits: ["update:modelValue"],
29
+ setup(t) {
30
+ const e = t, i = g(t, "modelValue"), { active: p } = $({ active: i });
31
+ B(p, (o) => {
32
+ i.value = o;
33
+ });
34
+ const s = c(e.id), f = d(() => c(e.name)), v = d(() => [
35
+ "q-radio-group",
36
+ {
37
+ "q-radio-group--horizontal": e.orientation === "horizontal"
38
+ },
39
+ e.class
40
+ ]);
41
+ return V({
42
+ QRadioButton: {
43
+ size: r(e, "size"),
44
+ disabled: r(e, "disabled"),
45
+ readonly: r(e, "readonly"),
46
+ invalid: r(e, "invalid"),
47
+ name: f
48
+ }
49
+ }), (o, N) => (a(), n(
50
+ "div",
51
+ {
52
+ class: q(v.value)
53
+ },
54
+ [
55
+ e.label ? (a(), _(l(k), {
56
+ key: 0,
57
+ for: l(s),
58
+ label: e.label,
59
+ required: e.required
60
+ }, null, 8, ["for", "label", "required"])) : u("v-if", !0),
61
+ h("div", z({
62
+ id: l(s),
63
+ class: "q-radio-group__group",
64
+ role: "radiogroup"
65
+ }, o.$attrs), [
66
+ m(o.$slots, "default")
67
+ ], 16, C),
68
+ o.$slots.extras ? (a(), n("div", M, [
69
+ m(o.$slots, "extras")
70
+ ])) : u("v-if", !0)
71
+ ],
72
+ 2
73
+ /* CLASS */
74
+ ));
75
+ }
76
+ });
77
+ export {
78
+ w as default
79
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./QRadioGroup.vue.js";
2
+ export {
3
+ f as default
4
+ };