@simsustech/quasar-components 0.11.26 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/LocaleSelect-BqkjbcKS.js +460 -0
  3. package/dist/QSubmitButton-Chc7dndx.js +101 -0
  4. package/dist/authentication.js +1935 -2031
  5. package/dist/form.js +1093 -1118
  6. package/dist/general.js +319 -361
  7. package/dist/md3.js +406 -395
  8. package/dist/nl-DIfqXZG_.js +354 -0
  9. package/dist/nl-DWmQiCdO.js +12 -0
  10. package/dist/nl-DbV07Lx7.js +106 -0
  11. package/dist/nl-ZpgX9FUw.js +4 -0
  12. package/dist/quasar-components.css +5 -4
  13. package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
  14. package/dist/types/{ui → src/ui}/authentication/LoginForm.vue.d.ts +5 -0
  15. package/dist/types/{ui/form/LocaleSelect.vue.d.ts → src/ui/form/CountrySelect.vue.d.ts} +8 -5
  16. package/dist/types/src/ui/form/LocaleSelect.vue.d.ts +28 -0
  17. package/dist/types/{ui → src/ui}/form/index.d.ts +2 -1
  18. package/dist/types/src/ui/form/lang/index.d.ts +817 -0
  19. package/dist/types/{ui → src/ui}/general/QLanguageSelect.vue.d.ts +4 -4
  20. package/dist/virtualModules.js +62 -2
  21. package/dist/vite-plugin.js +50 -101
  22. package/package.json +34 -34
  23. package/src/ui/authentication/LoginForm.vue +9 -4
  24. package/src/ui/form/CountrySelect.vue +83 -0
  25. package/src/ui/form/LocaleSelect.vue +27 -8
  26. package/src/ui/form/index.ts +9 -1
  27. package/src/ui/form/lang/en-US.ts +112 -356
  28. package/src/ui/form/lang/index.ts +173 -377
  29. package/src/ui/form/lang/nl.ts +108 -352
  30. package/src/ui/general/QLanguageSelect.vue +20 -16
  31. package/tsconfig.json +1 -0
  32. package/tsconfig.node.json +2 -1
  33. package/tsconfig.types.json +2 -1
  34. package/dist/LocaleSelect.vue_vue_type_script_setup_true_lang-DFwcmPnu.js +0 -584
  35. package/dist/QSubmitButton.vue_vue_type_script_setup_true_lang-D-I0Gws4.js +0 -109
  36. package/dist/nl-BJwNz421.js +0 -453
  37. package/dist/nl-CneFq5NZ.js +0 -112
  38. package/dist/nl-NLgZUAKl.js +0 -6
  39. package/dist/nl-X50pmfG-.js +0 -12
  40. package/dist/types/ui/form/lang/index.d.ts +0 -1353
  41. package/eslint.config.js +0 -29
  42. package/dist/types/{ui → src/ui}/authentication/AccountsTable.vue.d.ts +0 -0
  43. package/dist/types/{ui → src/ui}/authentication/ConsentList.vue.d.ts +0 -0
  44. package/dist/types/{ui → src/ui}/authentication/EmailChangeForm.vue.d.ts +0 -0
  45. package/dist/types/{ui → src/ui}/authentication/EmailChangeStepper.vue.d.ts +0 -0
  46. package/dist/types/{ui → src/ui}/authentication/LoginButton.vue.d.ts +0 -0
  47. package/dist/types/{ui → src/ui}/authentication/LogoutButton.vue.d.ts +0 -0
  48. package/dist/types/{ui → src/ui}/authentication/LogoutForm.vue.d.ts +0 -0
  49. package/dist/types/{ui → src/ui}/authentication/OtpInput.vue.d.ts +0 -0
  50. package/dist/types/{ui → src/ui}/authentication/PasswordChangeForm.vue.d.ts +0 -0
  51. package/dist/types/{ui → src/ui}/authentication/PasswordChangeStepper.vue.d.ts +0 -0
  52. package/dist/types/{ui → src/ui}/authentication/RegisterForm.vue.d.ts +0 -0
  53. package/dist/types/{ui → src/ui}/authentication/RequestOtpForm.vue.d.ts +0 -0
  54. package/dist/types/{ui → src/ui}/authentication/UserMenuButton.vue.d.ts +0 -0
  55. package/dist/types/{ui → src/ui}/authentication/VerificationSlider.vue.d.ts +0 -0
  56. package/dist/types/{ui → src/ui}/authentication/index.d.ts +0 -0
  57. package/dist/types/{ui → src/ui}/authentication/lang/en-US.d.ts +0 -0
  58. package/dist/types/{ui → src/ui}/authentication/lang/index.d.ts +0 -0
  59. package/dist/types/{ui → src/ui}/authentication/lang/nl.d.ts +0 -0
  60. package/dist/types/{ui → src/ui}/flags/index.d.ts +0 -0
  61. package/dist/types/{ui → src/ui}/flags/lang/en-US.d.ts +0 -0
  62. package/dist/types/{ui → src/ui}/flags/lang/index.d.ts +0 -0
  63. package/dist/types/{ui → src/ui}/flags/lang/nl.d.ts +0 -0
  64. package/dist/types/{ui → src/ui}/form/BooleanItem.vue.d.ts +0 -0
  65. package/dist/types/{ui → src/ui}/form/BooleanSelect.vue.d.ts +0 -0
  66. package/dist/types/{ui → src/ui}/form/CronScheduleInput.vue.d.ts +0 -0
  67. package/dist/types/{ui → src/ui}/form/CurrencySelect.vue.d.ts +0 -0
  68. package/dist/types/{ui → src/ui}/form/DateInput.vue.d.ts +1 -1
  69. package/dist/types/{ui → src/ui}/form/DatePicker.vue.d.ts +0 -0
  70. package/dist/types/{ui → src/ui}/form/EmailInput.vue.d.ts +0 -0
  71. package/dist/types/{ui → src/ui}/form/FilteredModelSelect.vue.d.ts +0 -0
  72. package/dist/types/{ui → src/ui}/form/FormInput.vue.d.ts +0 -0
  73. package/dist/types/{ui → src/ui}/form/FormItem.vue.d.ts +0 -0
  74. package/dist/types/{ui → src/ui}/form/GenderItem.vue.d.ts +0 -0
  75. package/dist/types/{ui → src/ui}/form/GenderSelect.vue.d.ts +0 -0
  76. package/dist/types/{ui → src/ui}/form/PostalCodeInput.vue.d.ts +0 -0
  77. package/dist/types/{ui → src/ui}/form/TelephoneNumberInput.vue.d.ts +0 -0
  78. package/dist/types/{ui → src/ui}/form/lang/en-US.d.ts +0 -0
  79. package/dist/types/{ui → src/ui}/form/lang/nl.d.ts +0 -0
  80. package/dist/types/{ui → src/ui}/general/QDrawerList.vue.d.ts +0 -0
  81. package/dist/types/{ui → src/ui}/general/QStyledCard.vue.d.ts +0 -0
  82. package/dist/types/{ui → src/ui}/general/QStyledLayout.vue.d.ts +0 -0
  83. package/dist/types/{ui → src/ui}/general/QSubmitButton.vue.d.ts +1 -1
  84. package/dist/types/{ui → src/ui}/general/ResourcePage.vue.d.ts +1 -1
  85. /package/dist/types/{ui → src/ui}/general/ResponsiveDialog.vue.d.ts +0 -0
  86. /package/dist/types/{ui → src/ui}/general/index.d.ts +0 -0
  87. /package/dist/types/{ui → src/ui}/general/lang/en-US.d.ts +0 -0
  88. /package/dist/types/{ui → src/ui}/general/lang/index.d.ts +0 -0
  89. /package/dist/types/{ui → src/ui}/general/lang/nl.d.ts +0 -0
  90. /package/dist/types/{ui → src/ui}/icons/index.d.ts +0 -0
  91. /package/dist/types/{ui → src/ui}/icons/labels.d.ts +0 -0
  92. /package/dist/types/{ui → src/ui}/md3/Md3Layout.vue.d.ts +0 -0
  93. /package/dist/types/{ui → src/ui}/md3/NavigationRailFabs.vue.d.ts +0 -0
  94. /package/dist/types/{ui → src/ui}/md3/index.d.ts +0 -0
  95. /package/dist/types/{ui → src/ui}/md3/lang/en-US.d.ts +0 -0
  96. /package/dist/types/{ui → src/ui}/md3/lang/index.d.ts +0 -0
  97. /package/dist/types/{ui → src/ui}/md3/lang/nl.d.ts +0 -0
  98. /package/dist/types/{virtualModules.d.ts → src/virtualModules.d.ts} +0 -0
  99. /package/dist/types/{vite-plugin.d.ts → src/vite-plugin.d.ts} +0 -0
package/dist/form.js CHANGED
@@ -1,1134 +1,1109 @@
1
- import { defineComponent, useAttrs, withAsyncContext, watch, ref, openBlock, createBlock, unref, mergeProps, normalizeProps, guardReactiveProps, withCtx, createVNode, createTextVNode, toDisplayString, toRefs, computed, useSlots, renderSlot, createCommentVNode, createSlots, renderList, resolveDirective, createElementVNode, withDirectives, createElementBlock, Fragment, resolveDynamicComponent } from "vue";
2
- import { useQuasar, QSelect, QItem, QItemSection, QItemLabel, QInput, QField, QIcon, QTooltip, QPopupProxy, QDate, QBtn, QEditor } from "quasar";
3
- import { l as loadLang, u as useLang } from "./LocaleSelect.vue_vue_type_script_setup_true_lang-DFwcmPnu.js";
4
- import { _ } from "./LocaleSelect.vue_vue_type_script_setup_true_lang-DFwcmPnu.js";
5
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
6
- __name: "GenderSelect",
7
- props: {
8
- modelValue: {},
9
- disableOther: { type: Boolean },
10
- required: { type: Boolean }
11
- },
12
- emits: ["update:modelValue"],
13
- async setup(__props) {
14
- let __temp, __restore;
15
- const props = __props;
16
- const attrs = useAttrs();
17
- const lang = useLang();
18
- const $q = useQuasar();
19
- if (lang.value.isoName !== $q.lang.isoName) [__temp, __restore] = withAsyncContext(() => loadLang($q.lang.isoName)), await __temp, __restore();
20
- watch($q.lang, () => {
21
- loadLang($q.lang.isoName);
22
- });
23
- const genderOptions = ref([
24
- {
25
- label: lang.value.gender.male,
26
- value: "male"
27
- },
28
- {
29
- label: lang.value.gender.female,
30
- value: "female"
31
- }
32
- ]);
33
- if (!props.disableOther) {
34
- genderOptions.value.push({
35
- label: lang.value.gender.other,
36
- value: "other"
37
- });
38
- }
39
- const validations = ref([]);
40
- if (props.required)
41
- validations.value.push(
42
- (val) => !!val || lang.value.validations.fieldRequired
43
- );
44
- return (_ctx, _cache) => {
45
- return openBlock(), createBlock(unref(QSelect), mergeProps(unref(attrs), {
46
- rules: validations.value,
47
- "model-value": __props.modelValue,
48
- options: genderOptions.value,
49
- label: `${unref(lang).gender.gender}${__props.required ? "*" : ""}`,
50
- "emit-value": "",
51
- "map-options": "",
52
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
53
- }), null, 16, ["rules", "model-value", "options", "label"]);
54
- };
55
- }
1
+ import { n as loadLang, r as useLang, t as LocaleSelect_default } from "./LocaleSelect-BqkjbcKS.js";
2
+ import { QBtn, QDate, QEditor, QField, QIcon, QInput, QItem, QItemLabel, QItemSection, QPopupProxy, QSelect, QTooltip, useQuasar } from "quasar";
3
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeProps, normalizeProps, openBlock, ref, renderList, renderSlot, resolveDirective, resolveDynamicComponent, toDisplayString, toRefs, unref, useAttrs, useSlots, watch, withAsyncContext, withCtx, withDirectives } from "vue";
4
+ //#endregion
5
+ //#region src/ui/form/GenderSelect.vue
6
+ var GenderSelect_default = /* @__PURE__ */ defineComponent({
7
+ __name: "GenderSelect",
8
+ props: {
9
+ modelValue: {},
10
+ disableOther: { type: Boolean },
11
+ required: { type: Boolean }
12
+ },
13
+ emits: ["update:modelValue"],
14
+ async setup(__props) {
15
+ let __temp, __restore;
16
+ const props = __props;
17
+ const attrs = useAttrs();
18
+ const lang = useLang();
19
+ const $q = useQuasar();
20
+ if (lang.value.isoName !== $q.lang.isoName) [__temp, __restore] = withAsyncContext(() => loadLang($q.lang.isoName)), await __temp, __restore();
21
+ watch($q.lang, () => {
22
+ loadLang($q.lang.isoName);
23
+ });
24
+ const genderOptions = ref([{
25
+ label: lang.value.gender.male,
26
+ value: "male"
27
+ }, {
28
+ label: lang.value.gender.female,
29
+ value: "female"
30
+ }]);
31
+ if (!props.disableOther) genderOptions.value.push({
32
+ label: lang.value.gender.other,
33
+ value: "other"
34
+ });
35
+ const validations = ref([]);
36
+ if (props.required) validations.value.push((val) => !!val || lang.value.validations.fieldRequired);
37
+ return (_ctx, _cache) => {
38
+ return openBlock(), createBlock(unref(QSelect), mergeProps(unref(attrs), {
39
+ rules: validations.value,
40
+ "model-value": __props.modelValue,
41
+ options: genderOptions.value,
42
+ label: `${unref(lang).gender.gender}${__props.required ? "*" : ""}`,
43
+ "emit-value": "",
44
+ "map-options": "",
45
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
46
+ }), null, 16, [
47
+ "rules",
48
+ "model-value",
49
+ "options",
50
+ "label"
51
+ ]);
52
+ };
53
+ }
56
54
  });
57
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
58
- __name: "GenderItem",
59
- props: {
60
- modelValue: {}
61
- },
62
- setup(__props) {
63
- const attrs = useAttrs();
64
- const lang = useLang();
65
- const $q = useQuasar();
66
- if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName);
67
- watch($q.lang, () => {
68
- loadLang($q.lang.isoName);
69
- });
70
- return (_ctx, _cache) => {
71
- return openBlock(), createBlock(unref(QItem), normalizeProps(guardReactiveProps(unref(attrs))), {
72
- default: withCtx(() => [
73
- createVNode(unref(QItemSection), null, {
74
- default: withCtx(() => [
75
- createVNode(unref(QItemLabel), { overline: "" }, {
76
- default: withCtx(() => [
77
- createTextVNode(toDisplayString(unref(lang).gender.gender), 1)
78
- ]),
79
- _: 1
80
- }),
81
- createVNode(unref(QItemLabel), null, {
82
- default: withCtx(() => [
83
- createTextVNode(toDisplayString(__props.modelValue ? unref(lang).gender[__props.modelValue] : ""), 1)
84
- ]),
85
- _: 1
86
- })
87
- ]),
88
- _: 1
89
- })
90
- ]),
91
- _: 1
92
- }, 16);
93
- };
94
- }
55
+ //#endregion
56
+ //#region src/ui/form/GenderItem.vue
57
+ var GenderItem_default = /* @__PURE__ */ defineComponent({
58
+ __name: "GenderItem",
59
+ props: { modelValue: {} },
60
+ setup(__props) {
61
+ const attrs = useAttrs();
62
+ const lang = useLang();
63
+ const $q = useQuasar();
64
+ if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName);
65
+ watch($q.lang, () => {
66
+ loadLang($q.lang.isoName);
67
+ });
68
+ return (_ctx, _cache) => {
69
+ return openBlock(), createBlock(unref(QItem), normalizeProps(guardReactiveProps(unref(attrs))), {
70
+ default: withCtx(() => [createVNode(unref(QItemSection), null, {
71
+ default: withCtx(() => [createVNode(unref(QItemLabel), { overline: "" }, {
72
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(lang).gender.gender), 1)]),
73
+ _: 1
74
+ }), createVNode(unref(QItemLabel), null, {
75
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.modelValue ? unref(lang).gender[__props.modelValue] : ""), 1)]),
76
+ _: 1
77
+ })]),
78
+ _: 1
79
+ })]),
80
+ _: 1
81
+ }, 16);
82
+ };
83
+ }
95
84
  });
96
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
97
- __name: "PostalCodeInput",
98
- props: {
99
- modelValue: {},
100
- country: {},
101
- required: { type: Boolean }
102
- },
103
- emits: ["update:modelValue"],
104
- setup(__props) {
105
- const props = __props;
106
- const lang = useLang();
107
- const attrs = useAttrs();
108
- const { country } = toRefs(props);
109
- const masks = ref({
110
- NL: "#### AA"
111
- });
112
- const validations = ref({
113
- NL: [
114
- (val) => !val || // Do not check an empty string
115
- /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i.test(val) || lang.value.postalCode.validations.invalidPostalCode
116
- ]
117
- });
118
- const computedMask = computed(() => {
119
- if (country.value && masks.value[country.value])
120
- return masks.value[country.value];
121
- return void 0;
122
- });
123
- const computedValidations = computed(() => {
124
- const val = [];
125
- if (country.value && validations.value[country.value])
126
- val.push(...validations.value[country.value]);
127
- if (props.required)
128
- val.push((val2) => !!val2 || lang.value.validations.fieldRequired);
129
- return val;
130
- });
131
- return (_ctx, _cache) => {
132
- return openBlock(), createBlock(unref(QInput), mergeProps(unref(attrs), {
133
- mask: computedMask.value,
134
- rules: computedValidations.value,
135
- "model-value": __props.modelValue,
136
- label: `${unref(lang).postalCode.postalCode}${__props.required ? "*" : ""}`,
137
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
138
- }), null, 16, ["mask", "rules", "model-value", "label"]);
139
- };
140
- }
85
+ //#endregion
86
+ //#region src/ui/form/PostalCodeInput.vue
87
+ var PostalCodeInput_default = /* @__PURE__ */ defineComponent({
88
+ __name: "PostalCodeInput",
89
+ props: {
90
+ modelValue: {},
91
+ country: {},
92
+ required: { type: Boolean }
93
+ },
94
+ emits: ["update:modelValue"],
95
+ setup(__props) {
96
+ const props = __props;
97
+ const lang = useLang();
98
+ const attrs = useAttrs();
99
+ const { country } = toRefs(props);
100
+ const masks = ref({ NL: "#### AA" });
101
+ const validations = ref({ NL: [(val) => !val || /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i.test(val) || lang.value.postalCode.validations.invalidPostalCode] });
102
+ const computedMask = computed(() => {
103
+ if (country.value && masks.value[country.value]) return masks.value[country.value];
104
+ });
105
+ const computedValidations = computed(() => {
106
+ const val = [];
107
+ if (country.value && validations.value[country.value]) val.push(...validations.value[country.value]);
108
+ if (props.required) val.push((val) => !!val || lang.value.validations.fieldRequired);
109
+ return val;
110
+ });
111
+ return (_ctx, _cache) => {
112
+ return openBlock(), createBlock(unref(QInput), mergeProps(unref(attrs), {
113
+ mask: computedMask.value,
114
+ rules: computedValidations.value,
115
+ "model-value": __props.modelValue,
116
+ label: `${unref(lang).postalCode.postalCode}${__props.required ? "*" : ""}`,
117
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
118
+ }), null, 16, [
119
+ "mask",
120
+ "rules",
121
+ "model-value",
122
+ "label"
123
+ ]);
124
+ };
125
+ }
141
126
  });
142
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
143
- __name: "FormItem",
144
- props: {
145
- modelValue: {},
146
- label: {},
147
- field: {}
148
- },
149
- setup(__props) {
150
- const attrs = useAttrs();
151
- const slots = useSlots();
152
- const lang = useLang();
153
- const $q = useQuasar();
154
- if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName);
155
- watch($q.lang, () => {
156
- loadLang($q.lang.isoName);
157
- });
158
- return (_ctx, _cache) => {
159
- return openBlock(), createBlock(unref(QItem), normalizeProps(guardReactiveProps(unref(attrs))), {
160
- default: withCtx(() => [
161
- unref(slots).avatar ? (openBlock(), createBlock(unref(QItemSection), {
162
- key: 0,
163
- avatar: ""
164
- }, {
165
- default: withCtx(() => [
166
- renderSlot(_ctx.$slots, "avatar")
167
- ]),
168
- _: 3
169
- })) : createCommentVNode("", true),
170
- createVNode(unref(QItemSection), null, {
171
- default: withCtx(() => [
172
- createVNode(unref(QItemLabel), { overline: "" }, {
173
- default: withCtx(() => [
174
- createTextVNode(toDisplayString(__props.label ? __props.label : __props.field ? unref(lang).fields[__props.field] : ""), 1)
175
- ]),
176
- _: 1
177
- }),
178
- createVNode(unref(QItemLabel), { class: "break-all" }, {
179
- default: withCtx(() => [
180
- createTextVNode(toDisplayString(__props.modelValue || "-"), 1)
181
- ]),
182
- _: 1
183
- })
184
- ]),
185
- _: 1
186
- }),
187
- unref(slots).side ? (openBlock(), createBlock(unref(QItemSection), {
188
- key: 1,
189
- side: ""
190
- }, {
191
- default: withCtx(() => [
192
- renderSlot(_ctx.$slots, "side")
193
- ]),
194
- _: 3
195
- })) : createCommentVNode("", true)
196
- ]),
197
- _: 3
198
- }, 16);
199
- };
200
- }
127
+ //#endregion
128
+ //#region src/ui/form/FormItem.vue
129
+ var FormItem_default = /* @__PURE__ */ defineComponent({
130
+ __name: "FormItem",
131
+ props: {
132
+ modelValue: {},
133
+ label: {},
134
+ field: {}
135
+ },
136
+ setup(__props) {
137
+ const attrs = useAttrs();
138
+ const slots = useSlots();
139
+ const lang = useLang();
140
+ const $q = useQuasar();
141
+ if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName);
142
+ watch($q.lang, () => {
143
+ loadLang($q.lang.isoName);
144
+ });
145
+ return (_ctx, _cache) => {
146
+ return openBlock(), createBlock(unref(QItem), normalizeProps(guardReactiveProps(unref(attrs))), {
147
+ default: withCtx(() => [
148
+ unref(slots).avatar ? (openBlock(), createBlock(unref(QItemSection), {
149
+ key: 0,
150
+ avatar: ""
151
+ }, {
152
+ default: withCtx(() => [renderSlot(_ctx.$slots, "avatar")]),
153
+ _: 3
154
+ })) : createCommentVNode("", true),
155
+ createVNode(unref(QItemSection), null, {
156
+ default: withCtx(() => [createVNode(unref(QItemLabel), { overline: "" }, {
157
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.label ? __props.label : __props.field ? unref(lang).fields[__props.field] : ""), 1)]),
158
+ _: 1
159
+ }), createVNode(unref(QItemLabel), { class: "break-all" }, {
160
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.modelValue || "-"), 1)]),
161
+ _: 1
162
+ })]),
163
+ _: 1
164
+ }),
165
+ unref(slots).side ? (openBlock(), createBlock(unref(QItemSection), {
166
+ key: 1,
167
+ side: ""
168
+ }, {
169
+ default: withCtx(() => [renderSlot(_ctx.$slots, "side")]),
170
+ _: 3
171
+ })) : createCommentVNode("", true)
172
+ ]),
173
+ _: 3
174
+ }, 16);
175
+ };
176
+ }
201
177
  });
202
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
203
- __name: "FormInput",
204
- props: {
205
- modelValue: {},
206
- field: {},
207
- label: {},
208
- required: { type: Boolean }
209
- },
210
- setup(__props) {
211
- const props = __props;
212
- const attrs = useAttrs();
213
- const lang = useLang();
214
- const $q = useQuasar();
215
- if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName);
216
- watch($q.lang, () => {
217
- loadLang($q.lang.isoName);
218
- });
219
- const validations = ref([]);
220
- if (props.required)
221
- validations.value.push(
222
- (val) => !!val || lang.value.validations.fieldRequired
223
- );
224
- return (_ctx, _cache) => {
225
- return openBlock(), createBlock(unref(QInput), mergeProps(unref(attrs), {
226
- rules: validations.value,
227
- "model-value": __props.modelValue,
228
- label: `${__props.field ? unref(lang).fields[__props.field] : __props.label ? __props.label : ""}${__props.required ? "*" : ""}`,
229
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
230
- }), createSlots({ _: 2 }, [
231
- renderList(_ctx.$slots, (_2, slot) => {
232
- return {
233
- name: slot,
234
- fn: withCtx((scope) => [
235
- renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope || {})))
236
- ])
237
- };
238
- })
239
- ]), 1040, ["rules", "model-value", "label"]);
240
- };
241
- }
178
+ //#endregion
179
+ //#region src/ui/form/FormInput.vue
180
+ var FormInput_default = /* @__PURE__ */ defineComponent({
181
+ __name: "FormInput",
182
+ props: {
183
+ modelValue: {},
184
+ field: {},
185
+ label: {},
186
+ required: { type: Boolean }
187
+ },
188
+ setup(__props) {
189
+ const props = __props;
190
+ const attrs = useAttrs();
191
+ const lang = useLang();
192
+ const $q = useQuasar();
193
+ if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName);
194
+ watch($q.lang, () => {
195
+ loadLang($q.lang.isoName);
196
+ });
197
+ const validations = ref([]);
198
+ if (props.required) validations.value.push((val) => !!val || lang.value.validations.fieldRequired);
199
+ return (_ctx, _cache) => {
200
+ return openBlock(), createBlock(unref(QInput), mergeProps(unref(attrs), {
201
+ rules: validations.value,
202
+ "model-value": __props.modelValue,
203
+ label: `${__props.field ? unref(lang).fields[__props.field] : __props.label ? __props.label : ""}${__props.required ? "*" : ""}`,
204
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
205
+ }), createSlots({ _: 2 }, [renderList(_ctx.$slots, (_, slot) => {
206
+ return {
207
+ name: slot,
208
+ fn: withCtx((scope) => [renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope || {})))])
209
+ };
210
+ })]), 1040, [
211
+ "rules",
212
+ "model-value",
213
+ "label"
214
+ ]);
215
+ };
216
+ }
242
217
  });
243
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
244
- __name: "TelephoneNumberInput",
245
- props: {
246
- modelValue: {},
247
- required: { type: Boolean }
248
- },
249
- emits: ["update:modelValue"],
250
- setup(__props) {
251
- const props = __props;
252
- const lang = useLang();
253
- const attrs = useAttrs();
254
- const validations = ref([]);
255
- if (props.required)
256
- validations.value.push(
257
- (val) => !!val || lang.value.validations.fieldRequired
258
- );
259
- return (_ctx, _cache) => {
260
- return openBlock(), createBlock(unref(QInput), mergeProps(unref(attrs), {
261
- rules: validations.value,
262
- "model-value": __props.modelValue,
263
- label: `${unref(lang).fields.telephoneNumber}${__props.required ? "*" : ""}`,
264
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
265
- }), null, 16, ["rules", "model-value", "label"]);
266
- };
267
- }
218
+ //#endregion
219
+ //#region src/ui/form/TelephoneNumberInput.vue
220
+ var TelephoneNumberInput_default = /* @__PURE__ */ defineComponent({
221
+ __name: "TelephoneNumberInput",
222
+ props: {
223
+ modelValue: {},
224
+ required: { type: Boolean }
225
+ },
226
+ emits: ["update:modelValue"],
227
+ setup(__props) {
228
+ /**
229
+ * To do: add mask and country prefix
230
+ */
231
+ const props = __props;
232
+ const lang = useLang();
233
+ const attrs = useAttrs();
234
+ const validations = ref([]);
235
+ if (props.required) validations.value.push((val) => !!val || lang.value.validations.fieldRequired);
236
+ return (_ctx, _cache) => {
237
+ return openBlock(), createBlock(unref(QInput), mergeProps(unref(attrs), {
238
+ rules: validations.value,
239
+ "model-value": __props.modelValue,
240
+ label: `${unref(lang).fields.telephoneNumber}${__props.required ? "*" : ""}`,
241
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
242
+ }), null, 16, [
243
+ "rules",
244
+ "model-value",
245
+ "label"
246
+ ]);
247
+ };
248
+ }
268
249
  });
269
- const _hoisted_1$1 = { class: "row" };
270
- const _hoisted_2$1 = {
271
- key: 0,
272
- style: { "margin-top": "1em", "width": "1ch" }
250
+ //#endregion
251
+ //#region src/ui/form/DateInput.vue?vue&type=script&setup=true&lang.ts
252
+ var _hoisted_1$2 = { class: "row" };
253
+ var _hoisted_2$1 = {
254
+ key: 0,
255
+ style: {
256
+ "margin-top": "1em",
257
+ "width": "1ch"
258
+ }
273
259
  };
274
- const _hoisted_3 = { class: "row items-center justify-end" };
275
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
276
- __name: "DateInput",
277
- props: {
278
- modelValue: {},
279
- format: { default: "YYYY-MM-DD" },
280
- locale: { default: "en-US" },
281
- label: { default: "" },
282
- required: { type: Boolean },
283
- clearable: { type: Boolean },
284
- date: { default: () => ({}) },
285
- icons: { default: () => ({
286
- event: "event",
287
- clear: "clear"
288
- }) }
289
- },
290
- emits: ["update:modelValue"],
291
- setup(__props, { emit: __emit }) {
292
- const props = __props;
293
- const emit = __emit;
294
- const lang = useLang();
295
- const { modelValue, format, locale } = toRefs(props);
296
- const year = ref();
297
- const month = ref();
298
- const day = ref();
299
- const setYear = (val) => {
300
- const nr = Number(val);
301
- if (nr && nr > 1e3 && nr < 1e4) year.value = nr;
302
- else year.value = void 0;
303
- };
304
- const setMonth = (val) => {
305
- const nr = Number(val);
306
- if (nr && nr > 0 && nr < 13) month.value = nr;
307
- else month.value = void 0;
308
- };
309
- const setDay = (val) => {
310
- const nr = Number(val);
311
- if (nr && nr > 0 && nr < 32) day.value = nr;
312
- else day.value = void 0;
313
- };
314
- const setInternalDate = (dateString, separator = "-") => {
315
- if (dateString) {
316
- const [yearPart, monthPart, dayPart] = dateString.split(separator);
317
- if (yearPart && monthPart && dayPart) {
318
- year.value = Number(yearPart);
319
- month.value = Number(monthPart);
320
- day.value = Number(dayPart);
321
- }
322
- }
323
- };
324
- const setDate = (value) => {
325
- setInternalDate(value, "/");
326
- };
327
- watch([year, month, day], () => {
328
- const date = `${year.value}-${String(month.value).padStart(2, "0")}-${String(day.value).padStart(2, "0")}`;
329
- if (year.value && month.value && day.value && !isNaN(Date.parse(date))) {
330
- emit("update:modelValue", date);
331
- } else if (modelValue.value !== null) {
332
- emit("update:modelValue", null);
333
- }
334
- });
335
- const formattedDate = computed(() => {
336
- if (modelValue.value)
337
- return new Date(Date.parse(modelValue.value)).toLocaleDateString(
338
- locale.value,
339
- {
340
- weekday: "long",
341
- year: "numeric",
342
- month: "short",
343
- day: "numeric"
344
- }
345
- );
346
- return "";
347
- });
348
- watch(modelValue, (newVal) => {
349
- if (newVal) setInternalDate(newVal);
350
- else if (newVal === null) {
351
- year.value = void 0;
352
- month.value = void 0;
353
- day.value = void 0;
354
- }
355
- });
356
- setInternalDate(modelValue.value);
357
- const goToNextElement = (e) => {
358
- if (["Minus", "Slash"].includes(e.code)) {
359
- e.preventDefault();
360
- const next = e.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.nextElementSibling;
361
- if (next) {
362
- next.focus();
363
- }
364
- }
365
- };
366
- const dateProps = computed(() => ({
367
- YYYY: {
368
- modelValue: year.value,
369
- placeholder: lang.value.datePicker.YYYY,
370
- style: {
371
- "max-width": format.value === "YYYY-MM-DD" ? "8ch" : "7ch",
372
- "margin-top": "-1.7em",
373
- "margin-bottom": "-0.5em",
374
- background: "transparent",
375
- border: 0
376
- },
377
- // suffix: format.value === 'YYYY-MM-DD' ? '-' : undefined,
378
- class: format.value !== "YYYY-MM-DD" ? "q-mb-none q-ml-none" : void 0,
379
- inputClass: "text-center",
380
- "onUpdate:modelValue": setYear,
381
- onKeydown: goToNextElement
382
- },
383
- MM: {
384
- modelValue: month.value ? String(month.value).padStart(2, "0") : "",
385
- placeholder: lang.value.datePicker.MM,
386
- style: {
387
- "max-width": "7ch",
388
- "margin-top": "-1.7em",
389
- "margin-bottom": "-0.5em",
390
- background: "transparent",
391
- border: 0
392
- },
393
- // suffix: '-',
394
- class: "q-ml-none",
395
- inputClass: "text-center",
396
- "onUpdate:modelValue": setMonth,
397
- onKeydown: goToNextElement
398
- },
399
- DD: {
400
- modelValue: day.value ? String(day.value).padStart(2, "0") : "",
401
- placeholder: lang.value.datePicker.DD,
402
- style: {
403
- "max-width": format.value === "DD-MM-YYYY" ? "7ch" : "4ch",
404
- "margin-top": "-1.7em",
405
- "margin-bottom": "-0.5em",
406
- background: "transparent",
407
- border: 0
408
- },
409
- // suffix: format.value === 'DD-MM-YYYY' ? '-' : undefined,
410
- class: format.value === "YYYY-MM-DD" ? "q-ml-none" : void 0,
411
- inputClass: "text-center",
412
- "onUpdate:modelValue": setDay,
413
- onKeydown: goToNextElement
414
- }
415
- }));
416
- const validations = ref([
417
- (v) => {
418
- if (v !== null)
419
- return /^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/.test(v);
420
- return true;
421
- }
422
- ]);
423
- if (props.required)
424
- validations.value.push(
425
- (val) => !!val || lang.value.validations.fieldRequired
426
- );
427
- return (_ctx, _cache) => {
428
- const _component_q_icon = QIcon;
429
- const _component_q_tooltip = QTooltip;
430
- const _component_q_btn = QBtn;
431
- const _component_q_popup_proxy = QPopupProxy;
432
- const _component_q_field = QField;
433
- const _directive_close_popup = resolveDirective("close-popup");
434
- return openBlock(), createBlock(_component_q_field, {
435
- "model-value": unref(modelValue),
436
- "bottom-slots": "",
437
- rules: validations.value,
438
- label: `${__props.label}${__props.required ? "*" : ""}`,
439
- "stack-label": "",
440
- "lazy-rules": ""
441
- }, createSlots({
442
- control: withCtx(() => [
443
- createElementVNode("div", _hoisted_1$1, [
444
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(format).split("-"), (part, index) => {
445
- return openBlock(), createBlock(resolveDynamicComponent(unref(QInput)), mergeProps({
446
- key: part,
447
- class: "col-auto",
448
- borderless: "",
449
- filled: false,
450
- outlined: false,
451
- standout: false,
452
- rounded: false
453
- }, { ref_for: true }, dateProps.value[part], {
454
- inputmode: "numeric",
455
- dense: ""
456
- }), {
457
- after: withCtx(() => [
458
- index < 2 ? (openBlock(), createElementBlock("a", _hoisted_2$1, "-")) : createCommentVNode("", true)
459
- ]),
460
- _: 2
461
- }, 1040);
462
- }), 128))
463
- ])
464
- ]),
465
- append: withCtx(() => [
466
- __props.clearable ? (openBlock(), createBlock(_component_q_icon, {
467
- key: 0,
468
- name: __props.icons.clear,
469
- class: "cursor-pointer",
470
- onClick: _cache[0] || (_cache[0] = ($event) => emit("update:modelValue", null))
471
- }, null, 8, ["name"])) : createCommentVNode("", true),
472
- createVNode(_component_q_icon, {
473
- name: __props.icons.event,
474
- class: "cursor-pointer"
475
- }, {
476
- default: withCtx(() => [
477
- formattedDate.value ? (openBlock(), createBlock(_component_q_tooltip, { key: 0 }, {
478
- default: withCtx(() => [
479
- createTextVNode(toDisplayString(formattedDate.value), 1)
480
- ]),
481
- _: 1
482
- })) : createCommentVNode("", true),
483
- createVNode(_component_q_popup_proxy, {
484
- cover: "",
485
- "transition-show": "scale",
486
- "transition-hide": "scale"
487
- }, {
488
- default: withCtx(() => [
489
- createVNode(unref(QDate), mergeProps(__props.date, {
490
- "model-value": unref(modelValue)?.replaceAll("-", "/"),
491
- "onUpdate:modelValue": setDate
492
- }), {
493
- default: withCtx(() => [
494
- createElementVNode("div", _hoisted_3, [
495
- withDirectives(createVNode(_component_q_btn, {
496
- label: unref(lang).buttons.close,
497
- color: "primary",
498
- flat: ""
499
- }, null, 8, ["label"]), [
500
- [_directive_close_popup]
501
- ])
502
- ])
503
- ]),
504
- _: 1
505
- }, 16, ["model-value"])
506
- ]),
507
- _: 1
508
- })
509
- ]),
510
- _: 1
511
- }, 8, ["name"])
512
- ]),
513
- _: 2
514
- }, [
515
- renderList(_ctx.$slots, (_2, slot) => {
516
- return {
517
- name: slot,
518
- fn: withCtx((scope) => [
519
- renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope || {})))
520
- ])
521
- };
522
- })
523
- ]), 1032, ["model-value", "rules", "label"]);
524
- };
525
- }
260
+ var _hoisted_3 = { class: "row items-center justify-end" };
261
+ //#endregion
262
+ //#region src/ui/form/DateInput.vue
263
+ var DateInput_default = /* @__PURE__ */ defineComponent({
264
+ __name: "DateInput",
265
+ props: {
266
+ modelValue: {},
267
+ format: { default: "YYYY-MM-DD" },
268
+ locale: { default: "en-US" },
269
+ label: { default: "" },
270
+ required: { type: Boolean },
271
+ clearable: { type: Boolean },
272
+ date: { default: () => ({}) },
273
+ icons: { default: () => ({
274
+ event: "event",
275
+ clear: "clear"
276
+ }) }
277
+ },
278
+ emits: ["update:modelValue"],
279
+ setup(__props, { emit: __emit }) {
280
+ const props = __props;
281
+ const emit = __emit;
282
+ const lang = useLang();
283
+ const { modelValue, format, locale } = toRefs(props);
284
+ const year = ref();
285
+ const month = ref();
286
+ const day = ref();
287
+ const setYear = (val) => {
288
+ const nr = Number(val);
289
+ if (nr && nr > 1e3 && nr < 1e4) year.value = nr;
290
+ else year.value = void 0;
291
+ };
292
+ const setMonth = (val) => {
293
+ const nr = Number(val);
294
+ if (nr && nr > 0 && nr < 13) month.value = nr;
295
+ else month.value = void 0;
296
+ };
297
+ const setDay = (val) => {
298
+ const nr = Number(val);
299
+ if (nr && nr > 0 && nr < 32) day.value = nr;
300
+ else day.value = void 0;
301
+ };
302
+ const setInternalDate = (dateString, separator = "-") => {
303
+ if (dateString) {
304
+ const [yearPart, monthPart, dayPart] = dateString.split(separator);
305
+ if (yearPart && monthPart && dayPart) {
306
+ year.value = Number(yearPart);
307
+ month.value = Number(monthPart);
308
+ day.value = Number(dayPart);
309
+ }
310
+ }
311
+ };
312
+ const setDate = (value) => {
313
+ setInternalDate(value, "/");
314
+ };
315
+ watch([
316
+ year,
317
+ month,
318
+ day
319
+ ], () => {
320
+ const date = `${year.value}-${String(month.value).padStart(2, "0")}-${String(day.value).padStart(2, "0")}`;
321
+ if (year.value && month.value && day.value && !isNaN(Date.parse(date))) emit("update:modelValue", date);
322
+ else if (modelValue.value !== null) emit("update:modelValue", null);
323
+ });
324
+ const formattedDate = computed(() => {
325
+ if (modelValue.value) return new Date(Date.parse(modelValue.value)).toLocaleDateString(locale.value, {
326
+ weekday: "long",
327
+ year: "numeric",
328
+ month: "short",
329
+ day: "numeric"
330
+ });
331
+ return "";
332
+ });
333
+ watch(modelValue, (newVal) => {
334
+ if (newVal) setInternalDate(newVal);
335
+ else if (newVal === null) {
336
+ year.value = void 0;
337
+ month.value = void 0;
338
+ day.value = void 0;
339
+ }
340
+ });
341
+ setInternalDate(modelValue.value);
342
+ const goToNextElement = (e) => {
343
+ if (["Minus", "Slash"].includes(e.code)) {
344
+ e.preventDefault();
345
+ const next = e.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.nextElementSibling;
346
+ if (next) next.focus();
347
+ }
348
+ };
349
+ const dateProps = computed(() => ({
350
+ YYYY: {
351
+ modelValue: year.value,
352
+ placeholder: lang.value.datePicker.YYYY,
353
+ style: {
354
+ "max-width": format.value === "YYYY-MM-DD" ? "8ch" : "7ch",
355
+ "margin-top": "-1.7em",
356
+ "margin-bottom": "-0.5em",
357
+ background: "transparent",
358
+ border: 0
359
+ },
360
+ class: format.value !== "YYYY-MM-DD" ? "q-mb-none q-ml-none" : void 0,
361
+ inputClass: "text-center",
362
+ "onUpdate:modelValue": setYear,
363
+ onKeydown: goToNextElement
364
+ },
365
+ MM: {
366
+ modelValue: month.value ? String(month.value).padStart(2, "0") : "",
367
+ placeholder: lang.value.datePicker.MM,
368
+ style: {
369
+ "max-width": "7ch",
370
+ "margin-top": "-1.7em",
371
+ "margin-bottom": "-0.5em",
372
+ background: "transparent",
373
+ border: 0
374
+ },
375
+ class: "q-ml-none",
376
+ inputClass: "text-center",
377
+ "onUpdate:modelValue": setMonth,
378
+ onKeydown: goToNextElement
379
+ },
380
+ DD: {
381
+ modelValue: day.value ? String(day.value).padStart(2, "0") : "",
382
+ placeholder: lang.value.datePicker.DD,
383
+ style: {
384
+ "max-width": format.value === "DD-MM-YYYY" ? "7ch" : "4ch",
385
+ "margin-top": "-1.7em",
386
+ "margin-bottom": "-0.5em",
387
+ background: "transparent",
388
+ border: 0
389
+ },
390
+ class: format.value === "YYYY-MM-DD" ? "q-ml-none" : void 0,
391
+ inputClass: "text-center",
392
+ "onUpdate:modelValue": setDay,
393
+ onKeydown: goToNextElement
394
+ }
395
+ }));
396
+ const validations = ref([(v) => {
397
+ if (v !== null) return /^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/.test(v);
398
+ return true;
399
+ }]);
400
+ if (props.required) validations.value.push((val) => !!val || lang.value.validations.fieldRequired);
401
+ return (_ctx, _cache) => {
402
+ const _component_q_icon = QIcon;
403
+ const _component_q_tooltip = QTooltip;
404
+ const _component_q_btn = QBtn;
405
+ const _component_q_popup_proxy = QPopupProxy;
406
+ const _component_q_field = QField;
407
+ const _directive_close_popup = resolveDirective("close-popup");
408
+ return openBlock(), createBlock(_component_q_field, {
409
+ "model-value": unref(modelValue),
410
+ "bottom-slots": "",
411
+ rules: validations.value,
412
+ label: `${__props.label}${__props.required ? "*" : ""}`,
413
+ "stack-label": "",
414
+ "lazy-rules": ""
415
+ }, createSlots({
416
+ control: withCtx(() => [createElementVNode("div", _hoisted_1$2, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(format).split("-"), (part, index) => {
417
+ return openBlock(), createBlock(resolveDynamicComponent(unref(QInput)), mergeProps({
418
+ key: part,
419
+ class: "col-auto",
420
+ borderless: "",
421
+ filled: false,
422
+ outlined: false,
423
+ standout: false,
424
+ rounded: false
425
+ }, { ref_for: true }, dateProps.value[part], {
426
+ inputmode: "numeric",
427
+ dense: ""
428
+ }), {
429
+ after: withCtx(() => [index < 2 ? (openBlock(), createElementBlock("a", _hoisted_2$1, "-")) : createCommentVNode("", true)]),
430
+ _: 2
431
+ }, 1040);
432
+ }), 128))])]),
433
+ append: withCtx(() => [__props.clearable ? (openBlock(), createBlock(_component_q_icon, {
434
+ key: 0,
435
+ name: __props.icons.clear,
436
+ class: "cursor-pointer",
437
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("update:modelValue", null))
438
+ }, null, 8, ["name"])) : createCommentVNode("", true), createVNode(_component_q_icon, {
439
+ name: __props.icons.event,
440
+ class: "cursor-pointer"
441
+ }, {
442
+ default: withCtx(() => [formattedDate.value ? (openBlock(), createBlock(_component_q_tooltip, { key: 0 }, {
443
+ default: withCtx(() => [createTextVNode(toDisplayString(formattedDate.value), 1)]),
444
+ _: 1
445
+ })) : createCommentVNode("", true), createVNode(_component_q_popup_proxy, {
446
+ cover: "",
447
+ "transition-show": "scale",
448
+ "transition-hide": "scale"
449
+ }, {
450
+ default: withCtx(() => [createVNode(unref(QDate), mergeProps(__props.date, {
451
+ "model-value": unref(modelValue)?.replaceAll("-", "/"),
452
+ "onUpdate:modelValue": setDate
453
+ }), {
454
+ default: withCtx(() => [createElementVNode("div", _hoisted_3, [withDirectives(createVNode(_component_q_btn, {
455
+ label: unref(lang).buttons.close,
456
+ color: "primary",
457
+ flat: ""
458
+ }, null, 8, ["label"]), [[_directive_close_popup]])])]),
459
+ _: 1
460
+ }, 16, ["model-value"])]),
461
+ _: 1
462
+ })]),
463
+ _: 1
464
+ }, 8, ["name"])]),
465
+ _: 2
466
+ }, [renderList(_ctx.$slots, (_, slot) => {
467
+ return {
468
+ name: slot,
469
+ fn: withCtx((scope) => [renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope || {})))])
470
+ };
471
+ })]), 1032, [
472
+ "model-value",
473
+ "rules",
474
+ "label"
475
+ ]);
476
+ };
477
+ }
526
478
  });
527
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
528
- __name: "BooleanSelect",
529
- props: {
530
- modelValue: { type: [Boolean, null] },
531
- label: {},
532
- required: { type: Boolean }
533
- },
534
- emits: ["update:modelValue"],
535
- setup(__props) {
536
- const props = __props;
537
- const attrs = useAttrs();
538
- const lang = useLang();
539
- const $q = useQuasar();
540
- if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName);
541
- watch($q.lang, () => {
542
- loadLang($q.lang.isoName);
543
- });
544
- const booleanOptions = ref([
545
- {
546
- label: lang.value.yes,
547
- value: true
548
- },
549
- {
550
- label: lang.value.no,
551
- value: false
552
- }
553
- ]);
554
- const validations = ref([]);
555
- if (props.required)
556
- validations.value.push(
557
- (val) => val !== null || lang.value.validations.fieldRequired
558
- );
559
- return (_ctx, _cache) => {
560
- return openBlock(), createBlock(unref(QSelect), mergeProps(unref(attrs), {
561
- rules: validations.value,
562
- "model-value": __props.modelValue,
563
- options: booleanOptions.value,
564
- label: `${__props.label}${__props.required ? "*" : ""}`,
565
- "emit-value": "",
566
- "map-options": "",
567
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
568
- }), null, 16, ["rules", "model-value", "options", "label"]);
569
- };
570
- }
479
+ //#endregion
480
+ //#region src/ui/form/BooleanSelect.vue
481
+ var BooleanSelect_default = /* @__PURE__ */ defineComponent({
482
+ __name: "BooleanSelect",
483
+ props: {
484
+ modelValue: { type: [Boolean, null] },
485
+ label: {},
486
+ required: { type: Boolean }
487
+ },
488
+ emits: ["update:modelValue"],
489
+ setup(__props) {
490
+ const props = __props;
491
+ const attrs = useAttrs();
492
+ const lang = useLang();
493
+ const $q = useQuasar();
494
+ if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName);
495
+ watch($q.lang, () => {
496
+ loadLang($q.lang.isoName);
497
+ });
498
+ const booleanOptions = ref([{
499
+ label: lang.value.yes,
500
+ value: true
501
+ }, {
502
+ label: lang.value.no,
503
+ value: false
504
+ }]);
505
+ const validations = ref([]);
506
+ if (props.required) validations.value.push((val) => val !== null || lang.value.validations.fieldRequired);
507
+ return (_ctx, _cache) => {
508
+ return openBlock(), createBlock(unref(QSelect), mergeProps(unref(attrs), {
509
+ rules: validations.value,
510
+ "model-value": __props.modelValue,
511
+ options: booleanOptions.value,
512
+ label: `${__props.label}${__props.required ? "*" : ""}`,
513
+ "emit-value": "",
514
+ "map-options": "",
515
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
516
+ }), null, 16, [
517
+ "rules",
518
+ "model-value",
519
+ "options",
520
+ "label"
521
+ ]);
522
+ };
523
+ }
571
524
  });
572
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
573
- __name: "BooleanItem",
574
- props: {
575
- modelValue: { type: [Boolean, null] },
576
- label: {}
577
- },
578
- setup(__props) {
579
- const attrs = useAttrs();
580
- const lang = useLang();
581
- const $q = useQuasar();
582
- if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName);
583
- watch($q.lang, () => {
584
- loadLang($q.lang.isoName);
585
- });
586
- return (_ctx, _cache) => {
587
- return openBlock(), createBlock(unref(QItem), normalizeProps(guardReactiveProps(unref(attrs))), {
588
- default: withCtx(() => [
589
- createVNode(unref(QItemSection), null, {
590
- default: withCtx(() => [
591
- createVNode(unref(QItemLabel), { overline: "" }, {
592
- default: withCtx(() => [
593
- createTextVNode(toDisplayString(__props.label), 1)
594
- ]),
595
- _: 1
596
- }),
597
- createVNode(unref(QItemLabel), null, {
598
- default: withCtx(() => [
599
- createTextVNode(toDisplayString(__props.modelValue === null ? "-" : __props.modelValue ? unref(lang).yes : unref(lang).no), 1)
600
- ]),
601
- _: 1
602
- })
603
- ]),
604
- _: 1
605
- })
606
- ]),
607
- _: 1
608
- }, 16);
609
- };
610
- }
525
+ //#endregion
526
+ //#region src/ui/form/BooleanItem.vue
527
+ var BooleanItem_default = /* @__PURE__ */ defineComponent({
528
+ __name: "BooleanItem",
529
+ props: {
530
+ modelValue: { type: [Boolean, null] },
531
+ label: {}
532
+ },
533
+ setup(__props) {
534
+ const attrs = useAttrs();
535
+ const lang = useLang();
536
+ const $q = useQuasar();
537
+ if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName);
538
+ watch($q.lang, () => {
539
+ loadLang($q.lang.isoName);
540
+ });
541
+ return (_ctx, _cache) => {
542
+ return openBlock(), createBlock(unref(QItem), normalizeProps(guardReactiveProps(unref(attrs))), {
543
+ default: withCtx(() => [createVNode(unref(QItemSection), null, {
544
+ default: withCtx(() => [createVNode(unref(QItemLabel), { overline: "" }, {
545
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.label), 1)]),
546
+ _: 1
547
+ }), createVNode(unref(QItemLabel), null, {
548
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.modelValue === null ? "-" : __props.modelValue ? unref(lang).yes : unref(lang).no), 1)]),
549
+ _: 1
550
+ })]),
551
+ _: 1
552
+ })]),
553
+ _: 1
554
+ }, 16);
555
+ };
556
+ }
611
557
  });
612
- const __default__ = {
613
- name: "EmailInput"
614
- };
615
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
616
- ...__default__,
617
- props: {
618
- subject: {},
619
- body: {}
620
- },
621
- emits: ["update:subject", "update:body"],
622
- setup(__props, { expose: __expose, emit: __emit }) {
623
- const emit = __emit;
624
- const lang = useLang();
625
- const variables = ref({
626
- // header: lang.value.some.nested.prop
627
- });
628
- const functions = ref({
629
- // submit
630
- });
631
- __expose({
632
- variables,
633
- functions
634
- });
635
- return (_ctx, _cache) => {
636
- return openBlock(), createElementBlock(Fragment, null, [
637
- createVNode(unref(QInput), {
638
- outlined: "",
639
- placeholder: unref(lang).email.subject,
640
- "model-value": __props.subject,
641
- type: "text",
642
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("update:subject", $event))
643
- }, null, 8, ["placeholder", "model-value"]),
644
- createVNode(unref(QEditor), {
645
- "model-value": __props.body,
646
- toolbar: [
647
- ["left", "center", "right", "justify"],
648
- ["bold", "italic", "underline", "strike"],
649
- ["undo", "redo"],
650
- ["link"]
651
- ],
652
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => emit("update:body", $event))
653
- }, null, 8, ["model-value"])
654
- ], 64);
655
- };
656
- }
558
+ //#endregion
559
+ //#region src/ui/form/EmailInput.vue
560
+ var EmailInput_default = /* @__PURE__ */ defineComponent({
561
+ name: "EmailInput",
562
+ props: {
563
+ subject: {},
564
+ body: {}
565
+ },
566
+ emits: ["update:subject", "update:body"],
567
+ setup(__props, { expose: __expose, emit: __emit }) {
568
+ const emit = __emit;
569
+ const lang = useLang();
570
+ __expose({
571
+ variables: ref({}),
572
+ functions: ref({})
573
+ });
574
+ return (_ctx, _cache) => {
575
+ return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(QInput), {
576
+ outlined: "",
577
+ placeholder: unref(lang).email.subject,
578
+ "model-value": __props.subject,
579
+ type: "text",
580
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("update:subject", $event))
581
+ }, null, 8, ["placeholder", "model-value"]), createVNode(unref(QEditor), {
582
+ "model-value": __props.body,
583
+ toolbar: [
584
+ [
585
+ "left",
586
+ "center",
587
+ "right",
588
+ "justify"
589
+ ],
590
+ [
591
+ "bold",
592
+ "italic",
593
+ "underline",
594
+ "strike"
595
+ ],
596
+ ["undo", "redo"],
597
+ ["link"]
598
+ ],
599
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => emit("update:body", $event))
600
+ }, null, 8, ["model-value"])], 64);
601
+ };
602
+ }
657
603
  });
658
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
659
- __name: "DatePicker",
660
- props: {
661
- modelValue: {},
662
- periods: {},
663
- range: { type: Boolean },
664
- options: { type: Function }
665
- },
666
- emits: ["update:modelValue"],
667
- setup(__props, { emit: __emit }) {
668
- const props = __props;
669
- const attrs = useAttrs();
670
- const emit = __emit;
671
- const $q = useQuasar();
672
- const lang = useLang();
673
- const { periods, range, options: parentOptions } = toRefs(props);
674
- const update = (val) => {
675
- if (val && typeof val !== "string") {
676
- const parsedFrom = val.from.replaceAll("/", "-");
677
- const parsedTo = val.to.replaceAll("/", "-");
678
- const unavailablePeriods = periods?.value?.filter(
679
- (period) => period.type === "unavailable"
680
- );
681
- if (unavailablePeriods) {
682
- for (const period of unavailablePeriods) {
683
- if (parsedFrom <= period.startDate && parsedTo >= period.endDate) {
684
- return $q.notify({
685
- message: lang.value.datePicker.validations.unavailableRange,
686
- color: "red"
687
- });
688
- }
689
- }
690
- }
691
- }
692
- emit("update:modelValue", val);
693
- };
694
- const dateOptions = function(date) {
695
- let parentResult = true;
696
- if (parentOptions?.value) parentResult = parentOptions.value(date);
697
- const parsedDate = date.replaceAll("/", "-");
698
- const unavailablePeriods = periods?.value?.filter(
699
- (period) => period.type === "unavailable"
700
- );
701
- if (unavailablePeriods) {
702
- for (const period of unavailablePeriods) {
703
- if (parsedDate >= period.startDate && parsedDate <= period.endDate) {
704
- return false;
705
- }
706
- }
707
- }
708
- return parentResult;
709
- };
710
- return (_ctx, _cache) => {
711
- const _component_q_date = QDate;
712
- return openBlock(), createBlock(_component_q_date, mergeProps(unref(attrs), {
713
- "model-value": __props.modelValue,
714
- "onUpdate:modelValue": update,
715
- options: dateOptions,
716
- range: unref(range)
717
- }), null, 16, ["model-value", "range"]);
718
- };
719
- }
604
+ //#endregion
605
+ //#region src/ui/form/DatePicker.vue
606
+ var DatePicker_default = /* @__PURE__ */ defineComponent({
607
+ __name: "DatePicker",
608
+ props: {
609
+ modelValue: {},
610
+ periods: {},
611
+ range: { type: Boolean },
612
+ options: { type: Function }
613
+ },
614
+ emits: ["update:modelValue"],
615
+ setup(__props, { emit: __emit }) {
616
+ const props = __props;
617
+ const attrs = useAttrs();
618
+ const emit = __emit;
619
+ const $q = useQuasar();
620
+ const lang = useLang();
621
+ const { periods, range, options: parentOptions } = toRefs(props);
622
+ const update = (val) => {
623
+ if (val && typeof val !== "string") {
624
+ const parsedFrom = val.from.replaceAll("/", "-");
625
+ const parsedTo = val.to.replaceAll("/", "-");
626
+ const unavailablePeriods = periods?.value?.filter((period) => period.type === "unavailable");
627
+ if (unavailablePeriods) {
628
+ for (const period of unavailablePeriods) if (parsedFrom <= period.startDate && parsedTo >= period.endDate) return $q.notify({
629
+ message: lang.value.datePicker.validations.unavailableRange,
630
+ color: "red"
631
+ });
632
+ }
633
+ }
634
+ emit("update:modelValue", val);
635
+ };
636
+ const dateOptions = function(date) {
637
+ let parentResult = true;
638
+ if (parentOptions?.value) parentResult = parentOptions.value(date);
639
+ const parsedDate = date.replaceAll("/", "-");
640
+ const unavailablePeriods = periods?.value?.filter((period) => period.type === "unavailable");
641
+ if (unavailablePeriods) {
642
+ for (const period of unavailablePeriods) if (parsedDate >= period.startDate && parsedDate <= period.endDate) return false;
643
+ }
644
+ return parentResult;
645
+ };
646
+ return (_ctx, _cache) => {
647
+ const _component_q_date = QDate;
648
+ return openBlock(), createBlock(_component_q_date, mergeProps(unref(attrs), {
649
+ "model-value": __props.modelValue,
650
+ "onUpdate:modelValue": update,
651
+ options: dateOptions,
652
+ range: unref(range)
653
+ }), null, 16, ["model-value", "range"]);
654
+ };
655
+ }
720
656
  });
721
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
722
- __name: "CurrencySelect",
723
- props: {
724
- modelValue: {},
725
- required: { type: Boolean }
726
- },
727
- emits: ["update:modelValue"],
728
- setup(__props) {
729
- const props = __props;
730
- const attrs = useAttrs();
731
- const lang = useLang();
732
- const currencyOptions = ref([
733
- {
734
- label: lang.value.currency.EUR,
735
- value: "EUR"
736
- },
737
- {
738
- label: lang.value.currency.USD,
739
- value: "USD"
740
- }
741
- ]);
742
- const validations = ref([]);
743
- if (props.required)
744
- validations.value.push(
745
- (val) => !!val || lang.value.validations.fieldRequired
746
- );
747
- return (_ctx, _cache) => {
748
- return openBlock(), createBlock(unref(QSelect), mergeProps(unref(attrs), {
749
- rules: validations.value,
750
- "model-value": __props.modelValue,
751
- options: currencyOptions.value,
752
- label: `${unref(lang).currency.currency}${__props.required ? "*" : ""}`,
753
- "emit-value": "",
754
- "map-options": "",
755
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
756
- }), null, 16, ["rules", "model-value", "options", "label"]);
757
- };
758
- }
657
+ //#endregion
658
+ //#region src/ui/form/CurrencySelect.vue
659
+ var CurrencySelect_default = /* @__PURE__ */ defineComponent({
660
+ __name: "CurrencySelect",
661
+ props: {
662
+ modelValue: {},
663
+ required: { type: Boolean }
664
+ },
665
+ emits: ["update:modelValue"],
666
+ setup(__props) {
667
+ const props = __props;
668
+ const attrs = useAttrs();
669
+ const lang = useLang();
670
+ const currencyOptions = ref([{
671
+ label: lang.value.currency.EUR,
672
+ value: "EUR"
673
+ }, {
674
+ label: lang.value.currency.USD,
675
+ value: "USD"
676
+ }]);
677
+ const validations = ref([]);
678
+ if (props.required) validations.value.push((val) => !!val || lang.value.validations.fieldRequired);
679
+ return (_ctx, _cache) => {
680
+ return openBlock(), createBlock(unref(QSelect), mergeProps(unref(attrs), {
681
+ rules: validations.value,
682
+ "model-value": __props.modelValue,
683
+ options: currencyOptions.value,
684
+ label: `${unref(lang).currency.currency}${__props.required ? "*" : ""}`,
685
+ "emit-value": "",
686
+ "map-options": "",
687
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
688
+ }), null, 16, [
689
+ "rules",
690
+ "model-value",
691
+ "options",
692
+ "label"
693
+ ]);
694
+ };
695
+ }
759
696
  });
760
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
761
- __name: "FilteredModelSelect",
762
- props: {
763
- modelValue: {},
764
- labelKey: {},
765
- labelFunction: { type: Function },
766
- valueKey: {},
767
- extraFields: {},
768
- filteredOptions: {},
769
- required: { type: Boolean },
770
- onFilter: {},
771
- multiple: { type: Boolean },
772
- label: {},
773
- hint: {}
774
- },
775
- emits: ["update:model-value", "filter"],
776
- setup(__props, { emit: __emit }) {
777
- const props = __props;
778
- const attrs = useAttrs();
779
- const emit = __emit;
780
- const lang = useLang();
781
- const {
782
- modelValue,
783
- onFilter,
784
- filteredOptions,
785
- labelKey,
786
- valueKey,
787
- labelFunction,
788
- extraFields
789
- } = toRefs(props);
790
- const options = computed(() => {
791
- if (filteredOptions.value.length) {
792
- return filteredOptions.value?.map((option) => ({
793
- label: labelFunction.value ? labelFunction.value(option) : option[labelKey.value],
794
- value: option[valueKey.value || "id"],
795
- extraFields: extraFields.value?.reduce(
796
- (result, key) => {
797
- if (option.hasOwnProperty(key)) {
798
- result[key] = option[key];
799
- }
800
- return result;
801
- },
802
- {}
803
- )
804
- }));
805
- }
806
- return [];
807
- });
808
- const requiredValidation = ref(
809
- (val) => (Array.isArray(val) ? !!val.length : !!val) || lang.value.validations.fieldRequired
810
- );
811
- const selectedIds = computed(() => {
812
- if (Array.isArray(modelValue.value)) {
813
- return [...modelValue.value];
814
- } else if (modelValue.value) {
815
- return [modelValue.value];
816
- }
817
- return [];
818
- });
819
- const filterFn = (val, update) => {
820
- if (!onFilter.value) update(() => {
821
- });
822
- emit("filter", {
823
- ids: selectedIds.value,
824
- searchPhrase: val.toLowerCase(),
825
- done: () => update(() => {
826
- })
827
- });
828
- };
829
- const selectRef = ref();
830
- watch(modelValue, () => {
831
- if (!options.value?.find((val) => val.value === modelValue.value))
832
- emit("filter", {
833
- ids: selectedIds.value,
834
- searchPhrase: "",
835
- done: () => {
836
- }
837
- });
838
- });
839
- return (_ctx, _cache) => {
840
- const _component_q_item_section = QItemSection;
841
- const _component_q_item = QItem;
842
- return openBlock(), createBlock(unref(QSelect), mergeProps({
843
- ref_key: "selectRef",
844
- ref: selectRef
845
- }, unref(attrs), {
846
- "model-value": unref(modelValue),
847
- options: options.value,
848
- label: `${__props.label}${__props.required ? "*" : ""}`,
849
- hint: __props.multiple ? unref(lang).selectMultiple : void 0,
850
- "emit-value": "",
851
- "map-options": "",
852
- "fill-input": !__props.multiple,
853
- "use-input": !!unref(onFilter),
854
- "hide-selected": !__props.multiple && !!unref(onFilter) || Number.isNaN(unref(modelValue)),
855
- multiple: __props.multiple,
856
- "bottom-slots": !!__props.hint,
857
- "input-debounce": "500",
858
- rules: __props.required ? [requiredValidation.value] : [],
859
- onFilter: filterFn,
860
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:model-value", $event))
861
- }), createSlots({
862
- hint: withCtx(() => [
863
- createTextVNode(toDisplayString(__props.hint), 1)
864
- ]),
865
- "no-option": withCtx(() => [
866
- createVNode(_component_q_item, null, {
867
- default: withCtx(() => [
868
- createVNode(_component_q_item_section, { class: "text-italic text-grey" }, {
869
- default: withCtx(() => [
870
- createTextVNode(toDisplayString(unref(lang).noResultsAvailable), 1)
871
- ]),
872
- _: 1
873
- })
874
- ]),
875
- _: 1
876
- })
877
- ]),
878
- _: 2
879
- }, [
880
- renderList(_ctx.$slots, (_2, slot) => {
881
- return {
882
- name: slot,
883
- fn: withCtx((scope) => [
884
- renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope || {})))
885
- ])
886
- };
887
- })
888
- ]), 1040, ["model-value", "options", "label", "hint", "fill-input", "use-input", "hide-selected", "multiple", "bottom-slots", "rules"]);
889
- };
890
- }
697
+ //#endregion
698
+ //#region src/ui/form/FilteredModelSelect.vue
699
+ var FilteredModelSelect_default = /* @__PURE__ */ defineComponent({
700
+ __name: "FilteredModelSelect",
701
+ props: {
702
+ modelValue: {},
703
+ labelKey: {},
704
+ labelFunction: { type: Function },
705
+ valueKey: {},
706
+ extraFields: {},
707
+ filteredOptions: {},
708
+ required: { type: Boolean },
709
+ onFilter: {},
710
+ multiple: { type: Boolean },
711
+ label: {},
712
+ hint: {}
713
+ },
714
+ emits: ["update:model-value", "filter"],
715
+ setup(__props, { emit: __emit }) {
716
+ const props = __props;
717
+ const attrs = useAttrs();
718
+ const emit = __emit;
719
+ const lang = useLang();
720
+ const { modelValue, onFilter, filteredOptions, labelKey, valueKey, labelFunction, extraFields } = toRefs(props);
721
+ const options = computed(() => {
722
+ if (filteredOptions.value.length) return filteredOptions.value?.map((option) => ({
723
+ label: labelFunction.value ? labelFunction.value(option) : option[labelKey.value],
724
+ value: option[valueKey.value || "id"],
725
+ extraFields: extraFields.value?.reduce((result, key) => {
726
+ if (option.hasOwnProperty(key)) result[key] = option[key];
727
+ return result;
728
+ }, {})
729
+ }));
730
+ return [];
731
+ });
732
+ const requiredValidation = ref((val) => (Array.isArray(val) ? !!val.length : !!val) || lang.value.validations.fieldRequired);
733
+ const selectedIds = computed(() => {
734
+ if (Array.isArray(modelValue.value)) return [...modelValue.value];
735
+ else if (modelValue.value) return [modelValue.value];
736
+ return [];
737
+ });
738
+ const filterFn = (val, update) => {
739
+ if (!onFilter.value) update(() => {});
740
+ emit("filter", {
741
+ ids: selectedIds.value,
742
+ searchPhrase: val.toLowerCase(),
743
+ done: () => update(() => {})
744
+ });
745
+ };
746
+ const selectRef = ref();
747
+ watch(modelValue, () => {
748
+ if (!options.value?.find((val) => val.value === modelValue.value)) emit("filter", {
749
+ ids: selectedIds.value,
750
+ searchPhrase: "",
751
+ done: () => {}
752
+ });
753
+ });
754
+ return (_ctx, _cache) => {
755
+ const _component_q_item_section = QItemSection;
756
+ const _component_q_item = QItem;
757
+ return openBlock(), createBlock(unref(QSelect), mergeProps({
758
+ ref_key: "selectRef",
759
+ ref: selectRef
760
+ }, unref(attrs), {
761
+ "model-value": unref(modelValue),
762
+ options: options.value,
763
+ label: `${__props.label}${__props.required ? "*" : ""}`,
764
+ hint: __props.multiple ? unref(lang).selectMultiple : void 0,
765
+ "emit-value": "",
766
+ "map-options": "",
767
+ "fill-input": !__props.multiple,
768
+ "use-input": !!unref(onFilter),
769
+ "hide-selected": !__props.multiple && !!unref(onFilter) || Number.isNaN(unref(modelValue)),
770
+ multiple: __props.multiple,
771
+ "bottom-slots": !!__props.hint,
772
+ "input-debounce": "500",
773
+ rules: __props.required ? [requiredValidation.value] : [],
774
+ onFilter: filterFn,
775
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:model-value", $event))
776
+ }), createSlots({
777
+ hint: withCtx(() => [createTextVNode(toDisplayString(__props.hint), 1)]),
778
+ "no-option": withCtx(() => [createVNode(_component_q_item, null, {
779
+ default: withCtx(() => [createVNode(_component_q_item_section, { class: "text-italic text-grey" }, {
780
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(lang).noResultsAvailable), 1)]),
781
+ _: 1
782
+ })]),
783
+ _: 1
784
+ })]),
785
+ _: 2
786
+ }, [renderList(_ctx.$slots, (_, slot) => {
787
+ return {
788
+ name: slot,
789
+ fn: withCtx((scope) => [renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope || {})))])
790
+ };
791
+ })]), 1040, [
792
+ "model-value",
793
+ "options",
794
+ "label",
795
+ "hint",
796
+ "fill-input",
797
+ "use-input",
798
+ "hide-selected",
799
+ "multiple",
800
+ "bottom-slots",
801
+ "rules"
802
+ ]);
803
+ };
804
+ }
891
805
  });
892
- const _hoisted_1 = { class: "row" };
893
- const _hoisted_2 = {
894
- key: 0,
895
- class: "row"
806
+ //#endregion
807
+ //#region src/ui/form/CronScheduleInput.vue?vue&type=script&setup=true&lang.ts
808
+ var _hoisted_1$1 = { class: "row" };
809
+ var _hoisted_2 = {
810
+ key: 0,
811
+ class: "row"
896
812
  };
897
- const _sfc_main = /* @__PURE__ */ defineComponent({
898
- __name: "CronScheduleInput",
899
- props: {
900
- modelValue: {},
901
- required: { type: Boolean },
902
- showMinute: { type: Boolean },
903
- showHour: { type: Boolean },
904
- showDayOfWeek: { type: Boolean }
905
- },
906
- emits: ["update:modelValue"],
907
- setup(__props, { emit: __emit }) {
908
- const props = __props;
909
- const emit = __emit;
910
- const { modelValue } = toRefs(props);
911
- const $q = useQuasar();
912
- const lang = useLang();
913
- const cronregex = new RegExp(
914
- /(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)|((((\d+,)+\d+|(\d+(\/|-)\d+)|\d+|\*) ?){5,7})/
915
- );
916
- const label = lang.value.cron.name;
917
- const minute = ref(["0"]);
918
- const hour = ref(["0"]);
919
- const dayOfMonth = ref(["1"]);
920
- const month = ref([]);
921
- const dayOfWeek = ref([]);
922
- const minuteOptions = ref([...Array(59).keys()].map(String));
923
- const hourOptions = ref([...Array(24).keys()].map(String));
924
- const dayOfMonthOptions = ref(
925
- Array.from({ length: 31 }, (_2, i) => i + 1).map(
926
- (dayOfMonth2) => String(dayOfMonth2)
927
- )
928
- );
929
- const monthOptions = ref([
930
- ...Array.from({ length: 12 }, (_2, i) => i + 1).map((month2) => ({
931
- label: $q.lang.date.months[month2 - 1],
932
- value: String(month2)
933
- }))
934
- ]);
935
- const dayOfWeekOptions = ref(
936
- [...Array(7).keys()].map((day) => ({
937
- label: $q.lang.date.days[day],
938
- value: String(day)
939
- }))
940
- );
941
- const validations = ref([
942
- (val) => cronregex.test(val) || lang.value.cron.validations.invalidCron
943
- ]);
944
- watch([minute, hour, dayOfMonth, month, dayOfWeek], () => {
945
- const cron = `${minute.value.join(",") || "*"} ${hour.value.join(",") || "*"} ${dayOfMonth.value.join(",") || "*"} ${month.value.join(",") || "*"} ${dayOfWeek.value.join(",") || "*"}`;
946
- if (cronregex.test(cron)) {
947
- emit("update:modelValue", cron);
948
- } else {
949
- emit("update:modelValue", "0 0 1 * *");
950
- }
951
- });
952
- function setInternalCron(cronString) {
953
- if (cronregex.test(cronString)) {
954
- const [newMinute, newHour, newDayOfMonth, newMonth, newDayOfWeek] = cronString.split(" ");
955
- minute.value = newMinute.split(",").filter((val) => val !== "*");
956
- hour.value = newHour.split(",").filter((val) => val !== "*");
957
- dayOfMonth.value = newDayOfMonth.split(",").filter((val) => val !== "*");
958
- month.value = newMonth.split(",").filter((val) => val !== "*");
959
- dayOfWeek.value = newDayOfWeek.split(",").filter((val) => val !== "*");
960
- }
961
- }
962
- const smallStyle = {
963
- "margin-top": "-1.7em",
964
- "margin-bottom": "-0.5em",
965
- background: "transparent",
966
- border: 0
967
- };
968
- const dayOfWeekStyle = {
969
- "margin-bottom": "-0.5em",
970
- background: "transparent",
971
- border: 0
972
- };
973
- watch(modelValue, (newVal) => {
974
- if (newVal) setInternalCron(newVal);
975
- else if (newVal === null) {
976
- setInternalCron("0 0 1 * *");
977
- }
978
- });
979
- setInternalCron(modelValue.value);
980
- return (_ctx, _cache) => {
981
- const _component_q_select = QSelect;
982
- const _component_q_field = QField;
983
- return openBlock(), createBlock(_component_q_field, {
984
- "model-value": unref(modelValue),
985
- rules: validations.value,
986
- label: `${unref(label)}${__props.required ? "*" : ""}`,
987
- "stack-label": "",
988
- borderless: ""
989
- }, {
990
- control: withCtx(() => [
991
- createElementVNode("div", _hoisted_1, [
992
- __props.showHour ? (openBlock(), createBlock(_component_q_select, {
993
- key: 0,
994
- modelValue: hour.value,
995
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => hour.value = $event),
996
- class: "col-auto",
997
- options: hourOptions.value,
998
- hint: unref(lang).cron.hour,
999
- "bottom-slots": "",
1000
- borderless: "",
1001
- filled: false,
1002
- outlined: false,
1003
- standout: false,
1004
- rounded: false,
1005
- style: smallStyle,
1006
- "map-options": "",
1007
- "emit-value": "",
1008
- multiple: ""
1009
- }, {
1010
- selected: withCtx(() => [
1011
- createTextVNode(toDisplayString(hour.value.length ? hour.value.join(",") : unref(lang).cron.every.hour), 1)
1012
- ]),
1013
- _: 1
1014
- }, 8, ["modelValue", "options", "hint"])) : createCommentVNode("", true),
1015
- __props.showMinute ? (openBlock(), createBlock(_component_q_select, {
1016
- key: 1,
1017
- modelValue: minute.value,
1018
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => minute.value = $event),
1019
- class: "col-auto",
1020
- options: minuteOptions.value,
1021
- hint: unref(lang).cron.minute,
1022
- "bottom-slots": "",
1023
- borderless: "",
1024
- filled: false,
1025
- outlined: false,
1026
- standout: false,
1027
- rounded: false,
1028
- style: smallStyle,
1029
- "map-options": "",
1030
- "emit-value": "",
1031
- multiple: ""
1032
- }, {
1033
- selected: withCtx(() => [
1034
- createTextVNode(toDisplayString(minute.value.length ? minute.value.join(",") : unref(lang).cron.every.minute), 1)
1035
- ]),
1036
- _: 1
1037
- }, 8, ["modelValue", "options", "hint"])) : createCommentVNode("", true),
1038
- createVNode(_component_q_select, {
1039
- modelValue: dayOfMonth.value,
1040
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => dayOfMonth.value = $event),
1041
- class: "col-auto",
1042
- options: dayOfMonthOptions.value,
1043
- hint: unref(lang).cron.dayOfMonth,
1044
- "bottom-slots": "",
1045
- borderless: "",
1046
- filled: false,
1047
- outlined: false,
1048
- standout: false,
1049
- rounded: false,
1050
- style: smallStyle,
1051
- "map-options": "",
1052
- "emit-value": "",
1053
- multiple: ""
1054
- }, {
1055
- selected: withCtx(() => [
1056
- createTextVNode(toDisplayString(dayOfMonth.value.length ? dayOfMonth.value.join(",") : unref(lang).cron.every.dayOfMonth), 1)
1057
- ]),
1058
- _: 1
1059
- }, 8, ["modelValue", "options", "hint"]),
1060
- createVNode(_component_q_select, {
1061
- modelValue: month.value,
1062
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => month.value = $event),
1063
- class: "col-auto",
1064
- options: monthOptions.value,
1065
- hint: unref(lang).cron.month,
1066
- placeholder: unref(lang).cron.month,
1067
- "bottom-slots": "",
1068
- borderless: "",
1069
- filled: false,
1070
- outlined: false,
1071
- standout: false,
1072
- rounded: false,
1073
- style: smallStyle,
1074
- "map-options": "",
1075
- "emit-value": "",
1076
- multiple: ""
1077
- }, {
1078
- selected: withCtx(() => [
1079
- createTextVNode(toDisplayString(month.value.length ? month.value.map((val) => unref($q).lang.date.months[Number(val) - 1]).join(",") : unref(lang).cron.every.month), 1)
1080
- ]),
1081
- _: 1
1082
- }, 8, ["modelValue", "options", "hint", "placeholder"])
1083
- ]),
1084
- __props.showDayOfWeek ? (openBlock(), createElementBlock("div", _hoisted_2, [
1085
- __props.showDayOfWeek ? (openBlock(), createBlock(_component_q_select, {
1086
- key: 0,
1087
- modelValue: dayOfWeek.value,
1088
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => dayOfWeek.value = $event),
1089
- class: "col-auto",
1090
- options: dayOfWeekOptions.value,
1091
- placeholder: unref(lang).cron.dayOfWeek,
1092
- hint: unref(lang).cron.dayOfWeek,
1093
- style: dayOfWeekStyle,
1094
- "bottom-slots": "",
1095
- borderless: "",
1096
- filled: false,
1097
- outlined: false,
1098
- standout: false,
1099
- rounded: false,
1100
- "map-options": "",
1101
- "emit-value": "",
1102
- multiple: ""
1103
- }, {
1104
- selected: withCtx(() => [
1105
- createTextVNode(toDisplayString(dayOfWeek.value.length ? dayOfWeek.value.map((val) => unref($q).lang.date.days[Number(val)]).join(",") : unref(lang).cron.every.dayOfWeek), 1)
1106
- ]),
1107
- _: 1
1108
- }, 8, ["modelValue", "options", "placeholder", "hint"])) : createCommentVNode("", true)
1109
- ])) : createCommentVNode("", true)
1110
- ]),
1111
- _: 1
1112
- }, 8, ["model-value", "rules", "label"]);
1113
- };
1114
- }
813
+ //#endregion
814
+ //#region src/ui/form/CronScheduleInput.vue
815
+ var CronScheduleInput_default = /* @__PURE__ */ defineComponent({
816
+ __name: "CronScheduleInput",
817
+ props: {
818
+ modelValue: {},
819
+ required: { type: Boolean },
820
+ showMinute: { type: Boolean },
821
+ showHour: { type: Boolean },
822
+ showDayOfWeek: { type: Boolean }
823
+ },
824
+ emits: ["update:modelValue"],
825
+ setup(__props, { emit: __emit }) {
826
+ const props = __props;
827
+ const emit = __emit;
828
+ const { modelValue } = toRefs(props);
829
+ const $q = useQuasar();
830
+ const lang = useLang();
831
+ const cronregex = /* @__PURE__ */ new RegExp(/(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)|((((\d+,)+\d+|(\d+(\/|-)\d+)|\d+|\*) ?){5,7})/);
832
+ const label = lang.value.cron.name;
833
+ const minute = ref(["0"]);
834
+ const hour = ref(["0"]);
835
+ const dayOfMonth = ref(["1"]);
836
+ const month = ref([]);
837
+ const dayOfWeek = ref([]);
838
+ const minuteOptions = ref([...Array(59).keys()].map(String));
839
+ const hourOptions = ref([...Array(24).keys()].map(String));
840
+ const dayOfMonthOptions = ref(Array.from({ length: 31 }, (_, i) => i + 1).map((dayOfMonth) => String(dayOfMonth)));
841
+ const monthOptions = ref([...Array.from({ length: 12 }, (_, i) => i + 1).map((month) => ({
842
+ label: $q.lang.date.months[month - 1],
843
+ value: String(month)
844
+ }))]);
845
+ const dayOfWeekOptions = ref([...Array(7).keys()].map((day) => ({
846
+ label: $q.lang.date.days[day],
847
+ value: String(day)
848
+ })));
849
+ const validations = ref([(val) => cronregex.test(val) || lang.value.cron.validations.invalidCron]);
850
+ watch([
851
+ minute,
852
+ hour,
853
+ dayOfMonth,
854
+ month,
855
+ dayOfWeek
856
+ ], () => {
857
+ const cron = `${minute.value.join(",") || "*"} ${hour.value.join(",") || "*"} ${dayOfMonth.value.join(",") || "*"} ${month.value.join(",") || "*"} ${dayOfWeek.value.join(",") || "*"}`;
858
+ if (cronregex.test(cron)) emit("update:modelValue", cron);
859
+ else emit("update:modelValue", "0 0 1 * *");
860
+ });
861
+ function setInternalCron(cronString) {
862
+ if (cronregex.test(cronString)) {
863
+ const [newMinute, newHour, newDayOfMonth, newMonth, newDayOfWeek] = cronString.split(" ");
864
+ minute.value = newMinute.split(",").filter((val) => val !== "*");
865
+ hour.value = newHour.split(",").filter((val) => val !== "*");
866
+ dayOfMonth.value = newDayOfMonth.split(",").filter((val) => val !== "*");
867
+ month.value = newMonth.split(",").filter((val) => val !== "*");
868
+ dayOfWeek.value = newDayOfWeek.split(",").filter((val) => val !== "*");
869
+ }
870
+ }
871
+ const smallStyle = {
872
+ "margin-top": "-1.7em",
873
+ "margin-bottom": "-0.5em",
874
+ background: "transparent",
875
+ border: 0
876
+ };
877
+ const dayOfWeekStyle = {
878
+ "margin-bottom": "-0.5em",
879
+ background: "transparent",
880
+ border: 0
881
+ };
882
+ watch(modelValue, (newVal) => {
883
+ if (newVal) setInternalCron(newVal);
884
+ else if (newVal === null) setInternalCron("0 0 1 * *");
885
+ });
886
+ setInternalCron(modelValue.value);
887
+ return (_ctx, _cache) => {
888
+ const _component_q_select = QSelect;
889
+ const _component_q_field = QField;
890
+ return openBlock(), createBlock(_component_q_field, {
891
+ "model-value": unref(modelValue),
892
+ rules: validations.value,
893
+ label: `${unref(label)}${__props.required ? "*" : ""}`,
894
+ "stack-label": "",
895
+ borderless: ""
896
+ }, {
897
+ control: withCtx(() => [createElementVNode("div", _hoisted_1$1, [
898
+ __props.showHour ? (openBlock(), createBlock(_component_q_select, {
899
+ key: 0,
900
+ modelValue: hour.value,
901
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => hour.value = $event),
902
+ class: "col-auto",
903
+ options: hourOptions.value,
904
+ hint: unref(lang).cron.hour,
905
+ "bottom-slots": "",
906
+ borderless: "",
907
+ filled: false,
908
+ outlined: false,
909
+ standout: false,
910
+ rounded: false,
911
+ style: smallStyle,
912
+ "map-options": "",
913
+ "emit-value": "",
914
+ multiple: ""
915
+ }, {
916
+ selected: withCtx(() => [createTextVNode(toDisplayString(hour.value.length ? hour.value.join(",") : unref(lang).cron.every.hour), 1)]),
917
+ _: 1
918
+ }, 8, [
919
+ "modelValue",
920
+ "options",
921
+ "hint"
922
+ ])) : createCommentVNode("", true),
923
+ __props.showMinute ? (openBlock(), createBlock(_component_q_select, {
924
+ key: 1,
925
+ modelValue: minute.value,
926
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => minute.value = $event),
927
+ class: "col-auto",
928
+ options: minuteOptions.value,
929
+ hint: unref(lang).cron.minute,
930
+ "bottom-slots": "",
931
+ borderless: "",
932
+ filled: false,
933
+ outlined: false,
934
+ standout: false,
935
+ rounded: false,
936
+ style: smallStyle,
937
+ "map-options": "",
938
+ "emit-value": "",
939
+ multiple: ""
940
+ }, {
941
+ selected: withCtx(() => [createTextVNode(toDisplayString(minute.value.length ? minute.value.join(",") : unref(lang).cron.every.minute), 1)]),
942
+ _: 1
943
+ }, 8, [
944
+ "modelValue",
945
+ "options",
946
+ "hint"
947
+ ])) : createCommentVNode("", true),
948
+ createVNode(_component_q_select, {
949
+ modelValue: dayOfMonth.value,
950
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => dayOfMonth.value = $event),
951
+ class: "col-auto",
952
+ options: dayOfMonthOptions.value,
953
+ hint: unref(lang).cron.dayOfMonth,
954
+ "bottom-slots": "",
955
+ borderless: "",
956
+ filled: false,
957
+ outlined: false,
958
+ standout: false,
959
+ rounded: false,
960
+ style: smallStyle,
961
+ "map-options": "",
962
+ "emit-value": "",
963
+ multiple: ""
964
+ }, {
965
+ selected: withCtx(() => [createTextVNode(toDisplayString(dayOfMonth.value.length ? dayOfMonth.value.join(",") : unref(lang).cron.every.dayOfMonth), 1)]),
966
+ _: 1
967
+ }, 8, [
968
+ "modelValue",
969
+ "options",
970
+ "hint"
971
+ ]),
972
+ createVNode(_component_q_select, {
973
+ modelValue: month.value,
974
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => month.value = $event),
975
+ class: "col-auto",
976
+ options: monthOptions.value,
977
+ hint: unref(lang).cron.month,
978
+ placeholder: unref(lang).cron.month,
979
+ "bottom-slots": "",
980
+ borderless: "",
981
+ filled: false,
982
+ outlined: false,
983
+ standout: false,
984
+ rounded: false,
985
+ style: smallStyle,
986
+ "map-options": "",
987
+ "emit-value": "",
988
+ multiple: ""
989
+ }, {
990
+ selected: withCtx(() => [createTextVNode(toDisplayString(month.value.length ? month.value.map((val) => unref($q).lang.date.months[Number(val) - 1]).join(",") : unref(lang).cron.every.month), 1)]),
991
+ _: 1
992
+ }, 8, [
993
+ "modelValue",
994
+ "options",
995
+ "hint",
996
+ "placeholder"
997
+ ])
998
+ ]), __props.showDayOfWeek ? (openBlock(), createElementBlock("div", _hoisted_2, [__props.showDayOfWeek ? (openBlock(), createBlock(_component_q_select, {
999
+ key: 0,
1000
+ modelValue: dayOfWeek.value,
1001
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => dayOfWeek.value = $event),
1002
+ class: "col-auto",
1003
+ options: dayOfWeekOptions.value,
1004
+ placeholder: unref(lang).cron.dayOfWeek,
1005
+ hint: unref(lang).cron.dayOfWeek,
1006
+ style: dayOfWeekStyle,
1007
+ "bottom-slots": "",
1008
+ borderless: "",
1009
+ filled: false,
1010
+ outlined: false,
1011
+ standout: false,
1012
+ rounded: false,
1013
+ "map-options": "",
1014
+ "emit-value": "",
1015
+ multiple: ""
1016
+ }, {
1017
+ selected: withCtx(() => [createTextVNode(toDisplayString(dayOfWeek.value.length ? dayOfWeek.value.map((val) => unref($q).lang.date.days[Number(val)]).join(",") : unref(lang).cron.every.dayOfWeek), 1)]),
1018
+ _: 1
1019
+ }, 8, [
1020
+ "modelValue",
1021
+ "options",
1022
+ "placeholder",
1023
+ "hint"
1024
+ ])) : createCommentVNode("", true)])) : createCommentVNode("", true)]),
1025
+ _: 1
1026
+ }, 8, [
1027
+ "model-value",
1028
+ "rules",
1029
+ "label"
1030
+ ]);
1031
+ };
1032
+ }
1115
1033
  });
1116
- export {
1117
- _sfc_main$5 as BooleanItem,
1118
- _sfc_main$6 as BooleanSelect,
1119
- _sfc_main as CronScheduleInput,
1120
- _sfc_main$2 as CurrencySelect,
1121
- _sfc_main$7 as DateInput,
1122
- _sfc_main$3 as DatePicker,
1123
- _sfc_main$4 as EmailInput,
1124
- _sfc_main$1 as FilteredModelSelect,
1125
- _sfc_main$9 as FormInput,
1126
- _sfc_main$a as FormItem,
1127
- _sfc_main$c as GenderItem,
1128
- _sfc_main$d as GenderSelect,
1129
- _ as LocaleSelect,
1130
- _sfc_main$b as PostalCodeInput,
1131
- _sfc_main$8 as TelephoneNumberInput,
1132
- loadLang,
1133
- useLang
1134
- };
1034
+ //#endregion
1035
+ //#region src/ui/form/CountrySelect.vue?vue&type=script&setup=true&lang.ts
1036
+ var _hoisted_1 = { key: 1 };
1037
+ //#endregion
1038
+ //#region src/ui/form/CountrySelect.vue
1039
+ var CountrySelect_default = /* @__PURE__ */ defineComponent({
1040
+ __name: "CountrySelect",
1041
+ props: {
1042
+ modelValue: {},
1043
+ countries: {},
1044
+ isItem: { type: Boolean }
1045
+ },
1046
+ emits: ["update:modelValue"],
1047
+ setup(__props, { expose: __expose, emit: __emit }) {
1048
+ const props = __props;
1049
+ const emit = __emit;
1050
+ const { modelValue, countries } = toRefs(props);
1051
+ const lang = useLang();
1052
+ const attrs = useAttrs();
1053
+ const countryOptions = computed(() => {
1054
+ return countries.value.map((country) => ({
1055
+ label: lang.value.countries[country.iso3166],
1056
+ value: country.iso3166,
1057
+ icon: country.icon
1058
+ }));
1059
+ });
1060
+ __expose({
1061
+ variables: ref({}),
1062
+ functions: ref({})
1063
+ });
1064
+ return (_ctx, _cache) => {
1065
+ const _component_q_icon = QIcon;
1066
+ const _component_q_item_section = QItemSection;
1067
+ const _component_q_item_label = QItemLabel;
1068
+ const _component_q_item = QItem;
1069
+ return openBlock(), createBlock(unref(QSelect), mergeProps(unref(attrs), {
1070
+ options: countryOptions.value,
1071
+ "model-value": unref(modelValue),
1072
+ filled: false,
1073
+ "emit-value": "",
1074
+ "map-options": "",
1075
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = (val) => emit("update:modelValue", val))
1076
+ }), {
1077
+ "selected-item": withCtx((scope) => [scope.opt && __props.isItem ? (openBlock(), createBlock(_component_q_item, { key: 0 }, {
1078
+ default: withCtx(() => [createVNode(_component_q_item_section, { avatar: "" }, {
1079
+ default: withCtx(() => [createVNode(_component_q_icon, { name: scope.opt.icon }, null, 8, ["name"])]),
1080
+ _: 2
1081
+ }, 1024), createVNode(_component_q_item_section, null, {
1082
+ default: withCtx(() => [createVNode(_component_q_item_label, null, {
1083
+ default: withCtx(() => [createTextVNode(toDisplayString(scope.opt.label), 1)]),
1084
+ _: 2
1085
+ }, 1024)]),
1086
+ _: 2
1087
+ }, 1024)]),
1088
+ _: 2
1089
+ }, 1024)) : scope.opt ? (openBlock(), createElementBlock("div", _hoisted_1, [createVNode(_component_q_icon, { name: scope.opt.icon }, null, 8, ["name"]), createTextVNode(" " + toDisplayString(scope.opt.label), 1)])) : createCommentVNode("", true)]),
1090
+ option: withCtx((scope) => [createVNode(_component_q_item, normalizeProps(guardReactiveProps(scope.itemProps)), {
1091
+ default: withCtx(() => [createVNode(_component_q_item_section, { avatar: "" }, {
1092
+ default: withCtx(() => [createVNode(_component_q_icon, { name: scope.opt.icon }, null, 8, ["name"])]),
1093
+ _: 2
1094
+ }, 1024), createVNode(_component_q_item_section, null, {
1095
+ default: withCtx(() => [createVNode(_component_q_item_label, null, {
1096
+ default: withCtx(() => [createTextVNode(toDisplayString(scope.opt.label), 1)]),
1097
+ _: 2
1098
+ }, 1024)]),
1099
+ _: 2
1100
+ }, 1024)]),
1101
+ _: 2
1102
+ }, 1040)]),
1103
+ _: 1
1104
+ }, 16, ["options", "model-value"]);
1105
+ };
1106
+ }
1107
+ });
1108
+ //#endregion
1109
+ export { BooleanItem_default as BooleanItem, BooleanSelect_default as BooleanSelect, CountrySelect_default as CountrySelect, CronScheduleInput_default as CronScheduleInput, CurrencySelect_default as CurrencySelect, DateInput_default as DateInput, DatePicker_default as DatePicker, EmailInput_default as EmailInput, FilteredModelSelect_default as FilteredModelSelect, FormInput_default as FormInput, FormItem_default as FormItem, GenderItem_default as GenderItem, GenderSelect_default as GenderSelect, LocaleSelect_default as LocaleSelect, PostalCodeInput_default as PostalCodeInput, TelephoneNumberInput_default as TelephoneNumberInput, loadLang, useLang };