@simsustech/quasar-components 0.1.1 → 0.1.3

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 (61) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/QSubmitButton.vue_vue_type_script_setup_true_lang.1d0c06eb.js +93 -0
  3. package/dist/authentication.js +1651 -0
  4. package/dist/flags.js +217 -0
  5. package/dist/general.js +81 -0
  6. package/dist/icons.js +23 -0
  7. package/dist/nl.6b0aedb7.js +89 -0
  8. package/dist/nl.7787ff31.js +9 -0
  9. package/dist/nl.b1ad9de9.js +134 -0
  10. package/dist/style.css +4 -0
  11. package/dist/types/ui/authentication/ConsentList.vue.d.ts +85 -0
  12. package/dist/types/ui/authentication/EmailChangeForm.vue.d.ts +147 -0
  13. package/dist/types/ui/authentication/EmailChangeStepper.vue.d.ts +168 -0
  14. package/dist/types/ui/authentication/LoginButton.vue.d.ts +69 -0
  15. package/dist/types/ui/authentication/LoginForm.vue.d.ts +157 -0
  16. package/dist/types/ui/authentication/OtpInput.vue.d.ts +69 -0
  17. package/dist/types/ui/authentication/PasswordChangeForm.vue.d.ts +187 -0
  18. package/dist/types/ui/authentication/PasswordChangeStepper.vue.d.ts +168 -0
  19. package/dist/types/ui/authentication/RegisterForm.vue.d.ts +230 -0
  20. package/dist/types/ui/authentication/RequestOtpForm.vue.d.ts +132 -0
  21. package/dist/types/ui/authentication/UserMenuButton.vue.d.ts +82 -0
  22. package/dist/types/ui/authentication/VerificationSlider.vue.d.ts +77 -0
  23. package/dist/types/ui/authentication/index.d.ts +12 -0
  24. package/dist/types/ui/authentication/lang/en-US.d.ts +3 -0
  25. package/dist/types/ui/authentication/lang/index.d.ts +176 -0
  26. package/dist/types/ui/authentication/lang/nl.d.ts +3 -0
  27. package/dist/types/ui/flags/index.d.ts +3 -0
  28. package/dist/types/ui/flags/lang/en-US.d.ts +3 -0
  29. package/dist/types/ui/flags/lang/index.d.ts +266 -0
  30. package/dist/types/ui/flags/lang/nl.d.ts +3 -0
  31. package/dist/types/ui/general/QStyledCard.vue.d.ts +74 -0
  32. package/dist/types/ui/general/QStyledLayout.vue.d.ts +69 -0
  33. package/dist/types/ui/general/QSubmitButton.vue.d.ts +138 -0
  34. package/dist/types/ui/general/index.d.ts +2 -0
  35. package/dist/types/ui/general/lang/en-US.d.ts +3 -0
  36. package/dist/types/ui/general/lang/index.d.ts +16 -0
  37. package/dist/types/ui/general/lang/nl.d.ts +3 -0
  38. package/dist/types/ui/icons/icons.d.ts +6 -0
  39. package/dist/types/ui/icons/index.d.ts +2 -0
  40. package/dist/types/ui/index.d.ts +1 -0
  41. package/dist/types/virtualModules.d.ts +2 -0
  42. package/dist/types/vite-plugin.d.ts +4 -0
  43. package/dist/virtualModules.d.ts +2 -0
  44. package/dist/virtualModules.js +2 -0
  45. package/dist/vite-plugin.d.ts +4 -0
  46. package/dist/vite-plugin.js +81 -0
  47. package/package.json +8 -5
  48. package/src/ui/authentication/EmailChangeForm.vue +9 -4
  49. package/src/ui/authentication/EmailChangeStepper.vue +4 -0
  50. package/src/ui/authentication/LoginForm.vue +7 -2
  51. package/src/ui/authentication/PasswordChangeForm.vue +7 -2
  52. package/src/ui/authentication/PasswordChangeStepper.vue +4 -0
  53. package/src/ui/authentication/RegisterForm.vue +7 -2
  54. package/src/ui/authentication/RequestOtpForm.vue +3 -3
  55. package/src/ui/general/QSubmitButton.vue +1 -1
  56. package/src/ui/index.ts +0 -1
  57. package/src/virtualModules.ts +70 -0
  58. package/src/vite-plugin.ts +40 -17
  59. package/tsconfig.build.plugin.json +1 -1
  60. package/tsconfig.node.json +1 -1
  61. package/vite.config.ts +63 -63
@@ -0,0 +1,1651 @@
1
+ import { useQuasar, QForm, QInput, QStep, QStepperNavigation, QStepper, QIcon, QBtn, QSlider, QItemSection, QItem, QList, QMenu } from "quasar";
2
+ import { ref, defineComponent, watch, computed, openBlock, createBlock, unref, mergeProps, withCtx, createVNode, renderSlot, toRef, createCommentVNode, createElementBlock, Fragment, renderList, createTextVNode, toDisplayString } from "vue";
3
+ import { _ as _sfc_main$c } from "./QSubmitButton.vue_vue_type_script_setup_true_lang.1d0c06eb.js";
4
+ const lang$1 = {
5
+ isoName: "en-US",
6
+ myAccount: "Account",
7
+ signOut: "Sign out",
8
+ unprocessableRequest: "The server was unable to process the request.",
9
+ consent: {
10
+ message: (name) => `${name} is requesting access to your data.`,
11
+ deny: "Deny",
12
+ allow: "Allow"
13
+ },
14
+ email: {
15
+ fields: {
16
+ email: "Email address",
17
+ newEmail: "Your new email address",
18
+ repeatNewEmail: "Repeat your new email address"
19
+ },
20
+ validations: {
21
+ fieldRequired: "Field is required.",
22
+ invalidEmail: "A valid email address is required.",
23
+ emailsDoNotMatch: "The email addresses do not match."
24
+ },
25
+ changeEmail: "Change your email address.",
26
+ emailChanged: "Your email address has been changed."
27
+ },
28
+ otp: {
29
+ fields: {
30
+ email: "Email"
31
+ },
32
+ validations: {
33
+ fieldRequired: "Field is required.",
34
+ invalidEmail: "A valid email address is required."
35
+ },
36
+ request: "Request a one-time password",
37
+ checkEmail: "You will receive a verification code in your email. Please use this verification code in the next step.",
38
+ verificationCode: "Verification code"
39
+ },
40
+ login: {
41
+ fields: {
42
+ email: "Email",
43
+ password: "Password",
44
+ username: "Username"
45
+ },
46
+ validations: {
47
+ fieldRequired: "Field is required.",
48
+ invalidEmail: "A valid email address is required."
49
+ },
50
+ login: "Login",
51
+ loginWith: "Login with",
52
+ createAccount: "Create account",
53
+ forgotPassword: "Forgot your password?",
54
+ invalidCredentials: "Email address or password is incorrect."
55
+ },
56
+ password: {
57
+ fields: {
58
+ password: "Password",
59
+ repeatPassword: "Repeat password"
60
+ },
61
+ validations: {
62
+ fieldRequired: "Field is required",
63
+ minimumPasswordLength: (minimumPasswordLength) => `The minimum length of the password is ${minimumPasswordLength} characters.`,
64
+ passwordsDoNotMatch: "The password do not match."
65
+ },
66
+ changePassword: "Change your password.",
67
+ passwordChanged: "Your password has been changed."
68
+ },
69
+ register: {
70
+ fields: {
71
+ email: "Email",
72
+ password: "Password",
73
+ username: "Username",
74
+ repeatPassword: "Repeat password"
75
+ },
76
+ validations: {
77
+ fieldRequired: "Field is required",
78
+ invalidEmail: "A valid email address is required.",
79
+ notAlphaNumeric: "Veld mag geen speciale tekens bevatten."
80
+ },
81
+ register: "Register",
82
+ forgotPassword: "Forgot your password?",
83
+ accountCreated: "Your account has been sucessfully created. You can now login with your credentials.",
84
+ alreadyRegistered: "Email address is already registered."
85
+ },
86
+ verification: {
87
+ slider: "Sleep a.u.b. de onderstaande balk helemaal naar rechts tot deze groen wordt."
88
+ }
89
+ };
90
+ const enUS = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
91
+ __proto__: null,
92
+ default: lang$1
93
+ }, Symbol.toStringTag, { value: "Module" }));
94
+ const lang = ref(lang$1);
95
+ const locales = /* @__PURE__ */ Object.assign({ "./en-US.ts": () => Promise.resolve().then(() => enUS), "./nl.ts": () => import("./nl.6b0aedb7.js") });
96
+ const useLang = () => {
97
+ return lang;
98
+ };
99
+ let loadingLanguage = false;
100
+ const loadLang = async (isoName) => {
101
+ if (!loadingLanguage) {
102
+ loadingLanguage = true;
103
+ try {
104
+ const data = (await locales[`./${isoName}.ts`]()).default;
105
+ if (data) {
106
+ lang.value = data;
107
+ }
108
+ } catch (e) {
109
+ if ({ "BASE_URL": "/", "MODE": "production", "DEV": false, "PROD": true }.DEBUG)
110
+ console.error(e);
111
+ throw new Error(
112
+ `[quasar-components] Failed to load ${isoName} language file.`
113
+ );
114
+ }
115
+ loadingLanguage = false;
116
+ }
117
+ };
118
+ function _typeof$1(obj) {
119
+ "@babel/helpers - typeof";
120
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
121
+ _typeof$1 = function _typeof2(obj2) {
122
+ return typeof obj2;
123
+ };
124
+ } else {
125
+ _typeof$1 = function _typeof2(obj2) {
126
+ return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
127
+ };
128
+ }
129
+ return _typeof$1(obj);
130
+ }
131
+ function assertString(input) {
132
+ var isString = typeof input === "string" || input instanceof String;
133
+ if (!isString) {
134
+ var invalidType = _typeof$1(input);
135
+ if (input === null)
136
+ invalidType = "null";
137
+ else if (invalidType === "object")
138
+ invalidType = input.constructor.name;
139
+ throw new TypeError("Expected a string but received a ".concat(invalidType));
140
+ }
141
+ }
142
+ function merge() {
143
+ var obj = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
144
+ var defaults = arguments.length > 1 ? arguments[1] : void 0;
145
+ for (var key in defaults) {
146
+ if (typeof obj[key] === "undefined") {
147
+ obj[key] = defaults[key];
148
+ }
149
+ }
150
+ return obj;
151
+ }
152
+ function _typeof(obj) {
153
+ "@babel/helpers - typeof";
154
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
155
+ _typeof = function _typeof2(obj2) {
156
+ return typeof obj2;
157
+ };
158
+ } else {
159
+ _typeof = function _typeof2(obj2) {
160
+ return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
161
+ };
162
+ }
163
+ return _typeof(obj);
164
+ }
165
+ function isByteLength(str, options) {
166
+ assertString(str);
167
+ var min;
168
+ var max;
169
+ if (_typeof(options) === "object") {
170
+ min = options.min || 0;
171
+ max = options.max;
172
+ } else {
173
+ min = arguments[1];
174
+ max = arguments[2];
175
+ }
176
+ var len = encodeURI(str).split(/%..|./).length - 1;
177
+ return len >= min && (typeof max === "undefined" || len <= max);
178
+ }
179
+ var default_fqdn_options = {
180
+ require_tld: true,
181
+ allow_underscores: false,
182
+ allow_trailing_dot: false,
183
+ allow_numeric_tld: false,
184
+ allow_wildcard: false
185
+ };
186
+ function isFQDN(str, options) {
187
+ assertString(str);
188
+ options = merge(options, default_fqdn_options);
189
+ if (options.allow_trailing_dot && str[str.length - 1] === ".") {
190
+ str = str.substring(0, str.length - 1);
191
+ }
192
+ if (options.allow_wildcard === true && str.indexOf("*.") === 0) {
193
+ str = str.substring(2);
194
+ }
195
+ var parts = str.split(".");
196
+ var tld = parts[parts.length - 1];
197
+ if (options.require_tld) {
198
+ if (parts.length < 2) {
199
+ return false;
200
+ }
201
+ if (!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
202
+ return false;
203
+ }
204
+ if (/\s/.test(tld)) {
205
+ return false;
206
+ }
207
+ }
208
+ if (!options.allow_numeric_tld && /^\d+$/.test(tld)) {
209
+ return false;
210
+ }
211
+ return parts.every(function(part) {
212
+ if (part.length > 63) {
213
+ return false;
214
+ }
215
+ if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) {
216
+ return false;
217
+ }
218
+ if (/[\uff01-\uff5e]/.test(part)) {
219
+ return false;
220
+ }
221
+ if (/^-|-$/.test(part)) {
222
+ return false;
223
+ }
224
+ if (!options.allow_underscores && /_/.test(part)) {
225
+ return false;
226
+ }
227
+ return true;
228
+ });
229
+ }
230
+ var IPv4SegmentFormat = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
231
+ var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat);
232
+ var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$"));
233
+ var IPv6SegmentFormat = "(?:[0-9a-fA-F]{1,4})";
234
+ var IPv6AddressRegExp = new RegExp("^(" + "(?:".concat(IPv6SegmentFormat, ":){7}(?:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){6}(?:").concat(IPv4AddressFormat, "|:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){5}(?::").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,2}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){4}(?:(:").concat(IPv6SegmentFormat, "){0,1}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,3}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){3}(?:(:").concat(IPv6SegmentFormat, "){0,2}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,4}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){2}(?:(:").concat(IPv6SegmentFormat, "){0,3}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,5}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){1}(?:(:").concat(IPv6SegmentFormat, "){0,4}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,6}|:)|") + "(?::((?::".concat(IPv6SegmentFormat, "){0,5}:").concat(IPv4AddressFormat, "|(?::").concat(IPv6SegmentFormat, "){1,7}|:))") + ")(%[0-9a-zA-Z-.:]{1,})?$");
235
+ function isIP(str) {
236
+ var version = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
237
+ assertString(str);
238
+ version = String(version);
239
+ if (!version) {
240
+ return isIP(str, 4) || isIP(str, 6);
241
+ }
242
+ if (version === "4") {
243
+ if (!IPv4AddressRegExp.test(str)) {
244
+ return false;
245
+ }
246
+ var parts = str.split(".").sort(function(a, b) {
247
+ return a - b;
248
+ });
249
+ return parts[3] <= 255;
250
+ }
251
+ if (version === "6") {
252
+ return !!IPv6AddressRegExp.test(str);
253
+ }
254
+ return false;
255
+ }
256
+ var default_email_options = {
257
+ allow_display_name: false,
258
+ require_display_name: false,
259
+ allow_utf8_local_part: true,
260
+ require_tld: true,
261
+ blacklisted_chars: "",
262
+ ignore_max_length: false,
263
+ host_blacklist: []
264
+ };
265
+ var splitNameAddress = /^([^\x00-\x1F\x7F-\x9F\cX]+)</i;
266
+ var emailUserPart = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i;
267
+ var gmailUserPart = /^[a-z\d]+$/;
268
+ var quotedEmailUser = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i;
269
+ var emailUserUtf8Part = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i;
270
+ var quotedEmailUserUtf8 = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;
271
+ var defaultMaxEmailLength = 254;
272
+ function validateDisplayName(display_name) {
273
+ var display_name_without_quotes = display_name.replace(/^"(.+)"$/, "$1");
274
+ if (!display_name_without_quotes.trim()) {
275
+ return false;
276
+ }
277
+ var contains_illegal = /[\.";<>]/.test(display_name_without_quotes);
278
+ if (contains_illegal) {
279
+ if (display_name_without_quotes === display_name) {
280
+ return false;
281
+ }
282
+ var all_start_with_back_slash = display_name_without_quotes.split('"').length === display_name_without_quotes.split('\\"').length;
283
+ if (!all_start_with_back_slash) {
284
+ return false;
285
+ }
286
+ }
287
+ return true;
288
+ }
289
+ function isEmail(str, options) {
290
+ assertString(str);
291
+ options = merge(options, default_email_options);
292
+ if (options.require_display_name || options.allow_display_name) {
293
+ var display_email = str.match(splitNameAddress);
294
+ if (display_email) {
295
+ var display_name = display_email[1];
296
+ str = str.replace(display_name, "").replace(/(^<|>$)/g, "");
297
+ if (display_name.endsWith(" ")) {
298
+ display_name = display_name.substr(0, display_name.length - 1);
299
+ }
300
+ if (!validateDisplayName(display_name)) {
301
+ return false;
302
+ }
303
+ } else if (options.require_display_name) {
304
+ return false;
305
+ }
306
+ }
307
+ if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {
308
+ return false;
309
+ }
310
+ var parts = str.split("@");
311
+ var domain = parts.pop();
312
+ var lower_domain = domain.toLowerCase();
313
+ if (options.host_blacklist.includes(lower_domain)) {
314
+ return false;
315
+ }
316
+ var user = parts.join("@");
317
+ if (options.domain_specific_validation && (lower_domain === "gmail.com" || lower_domain === "googlemail.com")) {
318
+ user = user.toLowerCase();
319
+ var username = user.split("+")[0];
320
+ if (!isByteLength(username.replace(/\./g, ""), {
321
+ min: 6,
322
+ max: 30
323
+ })) {
324
+ return false;
325
+ }
326
+ var _user_parts = username.split(".");
327
+ for (var i = 0; i < _user_parts.length; i++) {
328
+ if (!gmailUserPart.test(_user_parts[i])) {
329
+ return false;
330
+ }
331
+ }
332
+ }
333
+ if (options.ignore_max_length === false && (!isByteLength(user, {
334
+ max: 64
335
+ }) || !isByteLength(domain, {
336
+ max: 254
337
+ }))) {
338
+ return false;
339
+ }
340
+ if (!isFQDN(domain, {
341
+ require_tld: options.require_tld
342
+ })) {
343
+ if (!options.allow_ip_domain) {
344
+ return false;
345
+ }
346
+ if (!isIP(domain)) {
347
+ if (!domain.startsWith("[") || !domain.endsWith("]")) {
348
+ return false;
349
+ }
350
+ var noBracketdomain = domain.substr(1, domain.length - 2);
351
+ if (noBracketdomain.length === 0 || !isIP(noBracketdomain)) {
352
+ return false;
353
+ }
354
+ }
355
+ }
356
+ if (user[0] === '"') {
357
+ user = user.slice(1, user.length - 1);
358
+ return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);
359
+ }
360
+ var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;
361
+ var user_parts = user.split(".");
362
+ for (var _i = 0; _i < user_parts.length; _i++) {
363
+ if (!pattern.test(user_parts[_i])) {
364
+ return false;
365
+ }
366
+ }
367
+ if (options.blacklisted_chars) {
368
+ if (user.search(new RegExp("[".concat(options.blacklisted_chars, "]+"), "g")) !== -1)
369
+ return false;
370
+ }
371
+ return true;
372
+ }
373
+ const __default__$a = {
374
+ name: "RequestOtpForm"
375
+ };
376
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
377
+ ...__default__$a,
378
+ props: {
379
+ form: null,
380
+ input: null
381
+ },
382
+ emits: ["submit"],
383
+ setup(__props, { expose, emit }) {
384
+ const $q = useQuasar();
385
+ const lang2 = useLang();
386
+ if (lang2.value.isoName !== $q.lang.isoName)
387
+ loadLang($q.lang.isoName);
388
+ watch($q.lang, (val) => {
389
+ loadLang($q.lang.isoName);
390
+ });
391
+ const email = ref("");
392
+ const header = computed(() => lang2.value.otp.request);
393
+ const formRef = ref();
394
+ const validations = computed(() => ({
395
+ email: [
396
+ (val) => !!val || lang2.value.otp.validations.fieldRequired,
397
+ (val) => isEmail(val) || lang2.value.otp.validations.invalidEmail
398
+ ]
399
+ }));
400
+ const submit = ({
401
+ done
402
+ }) => {
403
+ var _a;
404
+ (_a = formRef.value) == null ? void 0 : _a.validate().then((success) => {
405
+ if (success) {
406
+ emit("submit", {
407
+ email: email.value.trim(),
408
+ done
409
+ });
410
+ } else
411
+ done();
412
+ });
413
+ };
414
+ const variables = ref({ header });
415
+ const functions = ref({ submit });
416
+ expose({
417
+ variables,
418
+ functions
419
+ });
420
+ return (_ctx, _cache) => {
421
+ const _component_q_input = QInput;
422
+ return openBlock(), createBlock(unref(QForm), mergeProps({
423
+ ref_key: "formRef",
424
+ ref: formRef
425
+ }, __props.form, {
426
+ onSubmit: _cache[1] || (_cache[1] = (e) => submit)
427
+ }), {
428
+ default: withCtx(() => [
429
+ createVNode(_component_q_input, mergeProps(__props.input, {
430
+ id: "email",
431
+ modelValue: email.value,
432
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => email.value = $event),
433
+ modelModifiers: { trim: true },
434
+ name: "email",
435
+ type: "text",
436
+ label: unref(lang2).otp.fields.email,
437
+ rules: unref(validations)["email"],
438
+ "lazy-rules": "",
439
+ autofocus: ""
440
+ }), null, 16, ["modelValue", "label", "rules"]),
441
+ renderSlot(_ctx.$slots, "default", { submit })
442
+ ]),
443
+ _: 3
444
+ }, 16);
445
+ };
446
+ }
447
+ });
448
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
449
+ __name: "OtpInput",
450
+ props: {
451
+ modelValue: null
452
+ },
453
+ emits: ["update:modelValue"],
454
+ setup(__props) {
455
+ const lang2 = useLang();
456
+ const validations = computed(() => ({
457
+ otp: [(val) => !!val || lang2.value.otp.validations.fieldRequired]
458
+ }));
459
+ return (_ctx, _cache) => {
460
+ return openBlock(), createBlock(unref(QInput), {
461
+ id: "otp",
462
+ name: "otp",
463
+ "model-value": __props.modelValue,
464
+ "bottom-slots": "",
465
+ "lazy-rules": "",
466
+ label: unref(lang2).otp.verificationCode,
467
+ rules: unref(validations)["otp"],
468
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:modelValue", $event))
469
+ }, null, 8, ["model-value", "label", "rules"]);
470
+ };
471
+ }
472
+ });
473
+ const __default__$9 = {
474
+ name: "EmailChangeForm"
475
+ };
476
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
477
+ ...__default__$9,
478
+ props: {
479
+ email: null,
480
+ form: null,
481
+ input: null
482
+ },
483
+ emits: ["submit"],
484
+ setup(__props, { expose, emit }) {
485
+ const props = __props;
486
+ const $q = useQuasar();
487
+ const lang2 = useLang();
488
+ if (lang2.value.isoName !== $q.lang.isoName)
489
+ loadLang($q.lang.isoName);
490
+ watch($q.lang, (val) => {
491
+ loadLang($q.lang.isoName);
492
+ });
493
+ const email = toRef(props, "email");
494
+ const otp = ref("");
495
+ const newEmail = ref("");
496
+ const repeatNewEmail = ref("");
497
+ const header = computed(() => lang2.value.email.changeEmail);
498
+ const formRef = ref();
499
+ const validations = computed(() => ({
500
+ newEmail: [
501
+ (val) => !!val || lang2.value.email.validations.fieldRequired,
502
+ (val) => isEmail(val) || lang2.value.email.validations.invalidEmail
503
+ ],
504
+ repeatNewEmail: [
505
+ (val) => !!val || lang2.value.email.validations.fieldRequired,
506
+ (val) => isEmail(val) || lang2.value.email.validations.emailsDoNotMatch
507
+ ]
508
+ }));
509
+ const submit = (evt) => {
510
+ var _a;
511
+ (_a = formRef.value) == null ? void 0 : _a.validate().then((success) => {
512
+ if (success) {
513
+ emit("submit", {
514
+ email: email.value.trim(),
515
+ newEmail: newEmail.value.trim(),
516
+ otp: otp.value,
517
+ done: evt.done
518
+ });
519
+ } else
520
+ evt.done();
521
+ });
522
+ };
523
+ const variables = ref({
524
+ header
525
+ });
526
+ const functions = ref({
527
+ submit
528
+ });
529
+ expose({
530
+ variables,
531
+ functions
532
+ });
533
+ return (_ctx, _cache) => {
534
+ const _component_q_input = QInput;
535
+ return openBlock(), createBlock(unref(QForm), mergeProps({
536
+ ref_key: "formRef",
537
+ ref: formRef,
538
+ class: "q-gutter-md"
539
+ }, __props.form, {
540
+ onSubmit: _cache[3] || (_cache[3] = (e) => submit)
541
+ }), {
542
+ default: withCtx(() => [
543
+ createVNode(_sfc_main$a, mergeProps(__props.input, {
544
+ modelValue: otp.value,
545
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => otp.value = $event)
546
+ }), null, 16, ["modelValue"]),
547
+ createVNode(_component_q_input, mergeProps(__props.input, {
548
+ id: "newEmail",
549
+ modelValue: newEmail.value,
550
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => newEmail.value = $event),
551
+ name: "newEmail",
552
+ label: unref(lang2).email.fields.newEmail,
553
+ "bottom-slots": "",
554
+ rules: unref(validations)["newEmail"],
555
+ "lazy-rules": ""
556
+ }), null, 16, ["modelValue", "label", "rules"]),
557
+ createVNode(_component_q_input, mergeProps(__props.input, {
558
+ id: "repeatNewEmail",
559
+ modelValue: repeatNewEmail.value,
560
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => repeatNewEmail.value = $event),
561
+ name: "repeatNewEmail",
562
+ label: unref(lang2).email.fields.repeatNewEmail,
563
+ "bottom-slots": "",
564
+ rules: unref(validations)["repeatNewEmail"],
565
+ "lazy-rules": ""
566
+ }), null, 16, ["modelValue", "label", "rules"]),
567
+ renderSlot(_ctx.$slots, "default", { submit })
568
+ ]),
569
+ _: 3
570
+ }, 16);
571
+ };
572
+ }
573
+ });
574
+ const __default__$8 = {
575
+ name: "EmailChangeStepper"
576
+ };
577
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
578
+ ...__default__$8,
579
+ props: {
580
+ input: null
581
+ },
582
+ emits: ["requestOtp", "changeEmail"],
583
+ setup(__props, { expose, emit }) {
584
+ const $q = useQuasar();
585
+ const lang2 = useLang();
586
+ if (lang2.value.isoName !== $q.lang.isoName)
587
+ loadLang($q.lang.isoName);
588
+ watch($q.lang, (val) => {
589
+ loadLang($q.lang.isoName);
590
+ });
591
+ const steps = ["requestOtp", "changeEmail"];
592
+ const step = ref("requestOtp");
593
+ const email = ref("");
594
+ const header = computed(() => lang2.value.email.changeEmail);
595
+ const emailChanged = computed(() => lang2.value.email.emailChanged);
596
+ const unprocessableRequest = computed(() => lang2.value.unprocessableRequest);
597
+ const checkEmail = computed(() => lang2.value.otp.checkEmail);
598
+ const requestOtpFormRef = ref();
599
+ const emailChangeFormRef = ref();
600
+ const requestOtpHeader = computed(
601
+ () => {
602
+ var _a;
603
+ return ((_a = requestOtpFormRef.value) == null ? void 0 : _a.variables.header) || "";
604
+ }
605
+ );
606
+ const emailChangeHeader = computed(
607
+ () => {
608
+ var _a;
609
+ return ((_a = emailChangeFormRef.value) == null ? void 0 : _a.variables.header) || "";
610
+ }
611
+ );
612
+ const requestOtp = ({
613
+ email: emittedEmail,
614
+ done
615
+ }) => {
616
+ emit("requestOtp", {
617
+ email: emittedEmail,
618
+ done: () => {
619
+ email.value = emittedEmail;
620
+ done();
621
+ }
622
+ });
623
+ };
624
+ const changeEmail = ({ email: email2, newEmail, otp, done }) => {
625
+ emit("changeEmail", {
626
+ email: email2,
627
+ newEmail,
628
+ otp,
629
+ done
630
+ });
631
+ };
632
+ const variables = ref({
633
+ header,
634
+ emailChanged,
635
+ unprocessableRequest,
636
+ checkEmail,
637
+ steps
638
+ });
639
+ const functions = ref({
640
+ goToStep: (newStep) => step.value = newStep
641
+ });
642
+ expose({
643
+ variables,
644
+ functions
645
+ });
646
+ return (_ctx, _cache) => {
647
+ const _component_q_step = QStep;
648
+ const _component_q_stepper_navigation = QStepperNavigation;
649
+ const _component_q_stepper = QStepper;
650
+ return openBlock(), createBlock(_component_q_stepper, {
651
+ modelValue: step.value,
652
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => step.value = $event)
653
+ }, {
654
+ navigation: withCtx(() => [
655
+ createVNode(_component_q_stepper_navigation, { class: "text-right" }, {
656
+ default: withCtx(() => {
657
+ var _a, _b;
658
+ return [
659
+ step.value === "requestOtp" ? (openBlock(), createBlock(_sfc_main$c, {
660
+ key: 0,
661
+ "is-next-button": "",
662
+ form: "requestOtpForm",
663
+ onSubmit: (_a = requestOtpFormRef.value) == null ? void 0 : _a.functions.submit
664
+ }, null, 8, ["onSubmit"])) : createCommentVNode("", true),
665
+ step.value === "changeEmail" ? (openBlock(), createBlock(_sfc_main$c, {
666
+ key: 1,
667
+ form: "emailChangeForm",
668
+ onSubmit: (_b = emailChangeFormRef.value) == null ? void 0 : _b.functions.submit
669
+ }, null, 8, ["onSubmit"])) : createCommentVNode("", true)
670
+ ];
671
+ }),
672
+ _: 1
673
+ })
674
+ ]),
675
+ default: withCtx(() => [
676
+ createVNode(_component_q_step, {
677
+ name: "requestOtp",
678
+ title: unref(requestOtpHeader)
679
+ }, {
680
+ default: withCtx(() => [
681
+ createVNode(_sfc_main$b, {
682
+ ref_key: "requestOtpFormRef",
683
+ ref: requestOtpFormRef,
684
+ form: { id: "requestOtpForm" },
685
+ input: __props.input,
686
+ onSubmit: requestOtp
687
+ }, null, 8, ["input"])
688
+ ]),
689
+ _: 1
690
+ }, 8, ["title"]),
691
+ createVNode(_component_q_step, {
692
+ name: "changeEmail",
693
+ title: unref(emailChangeHeader)
694
+ }, {
695
+ default: withCtx(() => [
696
+ createVNode(_sfc_main$9, {
697
+ ref_key: "emailChangeFormRef",
698
+ ref: emailChangeFormRef,
699
+ form: { id: "emailChangeForm" },
700
+ email: email.value,
701
+ input: __props.input,
702
+ onSubmit: changeEmail
703
+ }, null, 8, ["email", "input"])
704
+ ]),
705
+ _: 1
706
+ }, 8, ["title"])
707
+ ]),
708
+ _: 1
709
+ }, 8, ["modelValue"]);
710
+ };
711
+ }
712
+ });
713
+ function equals(str, comparison) {
714
+ assertString(str);
715
+ return str === comparison;
716
+ }
717
+ const __default__$7 = {
718
+ name: "PasswordChangeForm"
719
+ };
720
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
721
+ ...__default__$7,
722
+ props: {
723
+ email: null,
724
+ minimumPasswordLength: { default: 8 },
725
+ form: { default: void 0 },
726
+ input: { default: void 0 }
727
+ },
728
+ emits: ["submit"],
729
+ setup(__props, { expose, emit }) {
730
+ const props = __props;
731
+ const $q = useQuasar();
732
+ const lang2 = useLang();
733
+ if (lang2.value.isoName !== $q.lang.isoName)
734
+ loadLang($q.lang.isoName);
735
+ watch($q.lang, (val) => {
736
+ loadLang($q.lang.isoName);
737
+ });
738
+ const email = toRef(props, "email");
739
+ const minimumPasswordLength = toRef(props, "minimumPasswordLength");
740
+ const otp = ref("");
741
+ const newPassword = ref("");
742
+ const repeatNewPassword = ref("");
743
+ const showPassword = ref(false);
744
+ const showRepeatPassword = ref(false);
745
+ const header = computed(() => lang2.value.password.changePassword);
746
+ const formRef = ref();
747
+ const validations = computed(() => ({
748
+ password: [
749
+ (val) => !!val || lang2.value.password.validations.fieldRequired,
750
+ (val) => val.length >= minimumPasswordLength.value || lang2.value.password.validations.minimumPasswordLength(
751
+ minimumPasswordLength.value
752
+ )
753
+ ],
754
+ repeatPassword: [
755
+ (val) => !!val || lang2.value.password.validations.fieldRequired,
756
+ (val) => equals(val, newPassword.value) || lang2.value.password.validations.passwordsDoNotMatch
757
+ ]
758
+ }));
759
+ const submit = (evt) => {
760
+ var _a;
761
+ (_a = formRef.value) == null ? void 0 : _a.validate().then((success) => {
762
+ if (success) {
763
+ emit("submit", {
764
+ email: email.value,
765
+ newPassword: newPassword.value,
766
+ otp: otp.value,
767
+ done: evt.done
768
+ });
769
+ } else
770
+ evt.done();
771
+ });
772
+ };
773
+ const variables = ref({
774
+ header
775
+ });
776
+ const functions = ref({
777
+ submit
778
+ });
779
+ expose({
780
+ variables,
781
+ functions
782
+ });
783
+ return (_ctx, _cache) => {
784
+ const _component_q_icon = QIcon;
785
+ const _component_q_input = QInput;
786
+ return openBlock(), createBlock(unref(QForm), mergeProps({
787
+ ref_key: "formRef",
788
+ ref: formRef,
789
+ class: "q-gutter-md"
790
+ }, __props.form, {
791
+ onSubmit: _cache[5] || (_cache[5] = (e) => submit)
792
+ }), {
793
+ default: withCtx(() => [
794
+ createVNode(_sfc_main$a, mergeProps(__props.input, {
795
+ modelValue: otp.value,
796
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => otp.value = $event)
797
+ }), null, 16, ["modelValue"]),
798
+ createVNode(_component_q_input, mergeProps(__props.input, {
799
+ id: "newPassword",
800
+ modelValue: newPassword.value,
801
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => newPassword.value = $event),
802
+ name: "newPassword",
803
+ type: showPassword.value ? "text" : "password",
804
+ label: unref(lang2).password.fields.password,
805
+ "bottom-slots": "",
806
+ rules: unref(validations)["newPassword"],
807
+ "lazy-rules": ""
808
+ }), {
809
+ append: withCtx(() => [
810
+ createVNode(_component_q_icon, {
811
+ name: showPassword.value ? "visibility" : "visibility_off",
812
+ class: "cursor-pointer",
813
+ onClick: _cache[1] || (_cache[1] = ($event) => showPassword.value = !showPassword.value)
814
+ }, null, 8, ["name"])
815
+ ]),
816
+ _: 1
817
+ }, 16, ["modelValue", "type", "label", "rules"]),
818
+ createVNode(_component_q_input, mergeProps(__props.input, {
819
+ id: "repeatNewPassword",
820
+ modelValue: repeatNewPassword.value,
821
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => repeatNewPassword.value = $event),
822
+ name: "repeatNewPassword",
823
+ type: showRepeatPassword.value ? "text" : "password",
824
+ label: unref(lang2).password.fields.repeatPassword,
825
+ "bottom-slots": "",
826
+ rules: unref(validations)["repeatNewPassword"],
827
+ "lazy-rules": ""
828
+ }), {
829
+ append: withCtx(() => [
830
+ createVNode(_component_q_icon, {
831
+ name: showRepeatPassword.value ? "visibility" : "visibility_off",
832
+ class: "cursor-pointer",
833
+ onClick: _cache[3] || (_cache[3] = ($event) => showRepeatPassword.value = !showRepeatPassword.value)
834
+ }, null, 8, ["name"])
835
+ ]),
836
+ _: 1
837
+ }, 16, ["modelValue", "type", "label", "rules"]),
838
+ renderSlot(_ctx.$slots, "default", { submit })
839
+ ]),
840
+ _: 3
841
+ }, 16);
842
+ };
843
+ }
844
+ });
845
+ const __default__$6 = {
846
+ name: "PasswordChangeStepper"
847
+ };
848
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
849
+ ...__default__$6,
850
+ props: {
851
+ input: null
852
+ },
853
+ emits: ["requestOtp", "changePassword"],
854
+ setup(__props, { expose, emit }) {
855
+ const $q = useQuasar();
856
+ const lang2 = useLang();
857
+ if (lang2.value.isoName !== $q.lang.isoName)
858
+ loadLang($q.lang.isoName);
859
+ watch($q.lang, (val) => {
860
+ loadLang($q.lang.isoName);
861
+ });
862
+ const steps = ["requestOtp", "changePassword"];
863
+ const step = ref("requestOtp");
864
+ const email = ref("");
865
+ const header = computed(() => lang2.value.password.changePassword);
866
+ const passwordChanged = computed(() => lang2.value.password.passwordChanged);
867
+ const unprocessableRequest = computed(() => lang2.value.unprocessableRequest);
868
+ const checkEmail = computed(() => lang2.value.otp.checkEmail);
869
+ const requestOtpFormRef = ref();
870
+ const passwordChangeFormRef = ref();
871
+ const requestOtpHeader = computed(
872
+ () => {
873
+ var _a;
874
+ return ((_a = requestOtpFormRef.value) == null ? void 0 : _a.variables.header) || "";
875
+ }
876
+ );
877
+ const passwordChangeHeader = computed(
878
+ () => {
879
+ var _a;
880
+ return ((_a = passwordChangeFormRef.value) == null ? void 0 : _a.variables.header) || "";
881
+ }
882
+ );
883
+ const requestOtp = ({
884
+ email: emittedEmail,
885
+ done
886
+ }) => {
887
+ emit("requestOtp", {
888
+ email: emittedEmail,
889
+ done: () => {
890
+ email.value = emittedEmail;
891
+ done();
892
+ }
893
+ });
894
+ };
895
+ const changePassword = ({ email: email2, newPassword, otp, done }) => {
896
+ emit("changePassword", {
897
+ email: email2,
898
+ newPassword,
899
+ otp,
900
+ done
901
+ });
902
+ };
903
+ const variables = ref({
904
+ header,
905
+ passwordChanged,
906
+ unprocessableRequest,
907
+ checkEmail,
908
+ steps
909
+ });
910
+ const functions = ref({
911
+ goToStep: (newStep) => step.value = newStep
912
+ });
913
+ expose({
914
+ variables,
915
+ functions
916
+ });
917
+ return (_ctx, _cache) => {
918
+ const _component_q_step = QStep;
919
+ const _component_q_stepper_navigation = QStepperNavigation;
920
+ const _component_q_stepper = QStepper;
921
+ return openBlock(), createBlock(_component_q_stepper, {
922
+ modelValue: step.value,
923
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => step.value = $event)
924
+ }, {
925
+ navigation: withCtx(() => [
926
+ createVNode(_component_q_stepper_navigation, { class: "text-right" }, {
927
+ default: withCtx(() => {
928
+ var _a, _b;
929
+ return [
930
+ step.value === "requestOtp" ? (openBlock(), createBlock(_sfc_main$c, {
931
+ key: 0,
932
+ "is-next-button": "",
933
+ form: "requestOtpForm",
934
+ onSubmit: (_a = requestOtpFormRef.value) == null ? void 0 : _a.functions.submit
935
+ }, null, 8, ["onSubmit"])) : createCommentVNode("", true),
936
+ step.value === "changePassword" ? (openBlock(), createBlock(_sfc_main$c, {
937
+ key: 1,
938
+ form: "passwordChangeForm",
939
+ onSubmit: (_b = passwordChangeFormRef.value) == null ? void 0 : _b.functions.submit
940
+ }, null, 8, ["onSubmit"])) : createCommentVNode("", true)
941
+ ];
942
+ }),
943
+ _: 1
944
+ })
945
+ ]),
946
+ default: withCtx(() => [
947
+ createVNode(_component_q_step, {
948
+ name: "requestOtp",
949
+ title: unref(requestOtpHeader)
950
+ }, {
951
+ default: withCtx(() => [
952
+ createVNode(_sfc_main$b, {
953
+ ref_key: "requestOtpFormRef",
954
+ ref: requestOtpFormRef,
955
+ form: { id: "requestOtpForm" },
956
+ input: __props.input,
957
+ onSubmit: requestOtp
958
+ }, null, 8, ["input"])
959
+ ]),
960
+ _: 1
961
+ }, 8, ["title"]),
962
+ createVNode(_component_q_step, {
963
+ name: "changePassword",
964
+ title: unref(passwordChangeHeader)
965
+ }, {
966
+ default: withCtx(() => [
967
+ createVNode(_sfc_main$7, {
968
+ ref_key: "passwordChangeFormRef",
969
+ ref: passwordChangeFormRef,
970
+ form: { id: "passwordChangeForm" },
971
+ email: email.value,
972
+ input: __props.input,
973
+ onSubmit: changePassword
974
+ }, null, 8, ["email", "input"])
975
+ ]),
976
+ _: 1
977
+ }, 8, ["title"])
978
+ ]),
979
+ _: 1
980
+ }, 8, ["modelValue"]);
981
+ };
982
+ }
983
+ });
984
+ const __default__$5 = {
985
+ name: "LoginForm"
986
+ };
987
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
988
+ ...__default__$5,
989
+ props: {
990
+ useUsername: { type: Boolean },
991
+ passwordForgotUrl: null,
992
+ form: null,
993
+ input: null
994
+ },
995
+ emits: ["submit"],
996
+ setup(__props, { expose, emit }) {
997
+ const $q = useQuasar();
998
+ const lang2 = useLang();
999
+ if (lang2.value.isoName !== $q.lang.isoName)
1000
+ loadLang($q.lang.isoName);
1001
+ watch($q.lang, (val) => {
1002
+ loadLang($q.lang.isoName);
1003
+ });
1004
+ const email = ref("");
1005
+ const password = ref("");
1006
+ const username = ref("");
1007
+ const showPassword = ref(false);
1008
+ const header = computed(() => lang2.value.login.login);
1009
+ const createAccount = computed(() => lang2.value.login.createAccount);
1010
+ const invalidCredentials = computed(() => lang2.value.login.invalidCredentials);
1011
+ const unprocessableRequest = computed(() => lang2.value.unprocessableRequest);
1012
+ const formRef = ref();
1013
+ const validations = computed(() => ({
1014
+ email: [
1015
+ (val) => !!val || lang2.value.login.validations.fieldRequired,
1016
+ (val) => isEmail(val) || lang2.value.login.validations.invalidEmail
1017
+ ],
1018
+ username: [(val) => !!val || lang2.value.login.validations.fieldRequired],
1019
+ password: [(val) => !!val || lang2.value.login.validations.fieldRequired]
1020
+ }));
1021
+ const submit = (evt) => {
1022
+ var _a;
1023
+ (_a = formRef.value) == null ? void 0 : _a.validate().then((success) => {
1024
+ if (success) {
1025
+ emit("submit", {
1026
+ email: email.value.trim(),
1027
+ password: password.value,
1028
+ username: username.value.trim(),
1029
+ done: evt.done
1030
+ });
1031
+ } else
1032
+ evt.done();
1033
+ });
1034
+ };
1035
+ const variables = ref({
1036
+ header,
1037
+ createAccount,
1038
+ invalidCredentials,
1039
+ unprocessableRequest
1040
+ });
1041
+ const functions = ref({
1042
+ submit
1043
+ });
1044
+ expose({
1045
+ variables,
1046
+ functions
1047
+ });
1048
+ return (_ctx, _cache) => {
1049
+ const _component_q_input = QInput;
1050
+ const _component_q_icon = QIcon;
1051
+ const _component_q_btn = QBtn;
1052
+ return openBlock(), createBlock(unref(QForm), mergeProps({
1053
+ ref_key: "formRef",
1054
+ ref: formRef,
1055
+ class: "q-gutter-md"
1056
+ }, __props.form, {
1057
+ onSubmit: _cache[4] || (_cache[4] = (e) => submit)
1058
+ }), {
1059
+ default: withCtx(() => [
1060
+ !__props.useUsername ? (openBlock(), createBlock(_component_q_input, mergeProps({ key: 0 }, __props.input, {
1061
+ id: "email",
1062
+ modelValue: email.value,
1063
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => email.value = $event),
1064
+ name: "email",
1065
+ label: unref(lang2).login.fields.email,
1066
+ "bottom-slots": "",
1067
+ rules: unref(validations)["email"],
1068
+ "lazy-rules": ""
1069
+ }), null, 16, ["modelValue", "label", "rules"])) : createCommentVNode("", true),
1070
+ __props.useUsername ? (openBlock(), createBlock(_component_q_input, mergeProps({ key: 1 }, __props.input, {
1071
+ id: "username",
1072
+ modelValue: username.value,
1073
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => username.value = $event),
1074
+ name: "username",
1075
+ label: unref(lang2).login.fields.username,
1076
+ "bottom-slots": "",
1077
+ rules: unref(validations)["username"],
1078
+ "lazy-rules": ""
1079
+ }), null, 16, ["modelValue", "label", "rules"])) : createCommentVNode("", true),
1080
+ createVNode(_component_q_input, mergeProps({
1081
+ id: "password",
1082
+ modelValue: password.value,
1083
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => password.value = $event),
1084
+ class: "q-pt-none"
1085
+ }, __props.input, {
1086
+ name: "password",
1087
+ type: showPassword.value ? "text" : "password",
1088
+ label: unref(lang2).login.fields.password,
1089
+ rules: unref(validations)["password"],
1090
+ "lazy-rules": "",
1091
+ "bottom-slots": ""
1092
+ }), {
1093
+ append: withCtx(() => [
1094
+ createVNode(_component_q_icon, {
1095
+ name: showPassword.value ? "visibility" : "visibility_off",
1096
+ class: "cursor-pointer",
1097
+ onClick: _cache[2] || (_cache[2] = ($event) => showPassword.value = !showPassword.value)
1098
+ }, null, 8, ["name"])
1099
+ ]),
1100
+ _: 1
1101
+ }, 16, ["modelValue", "type", "label", "rules"]),
1102
+ __props.passwordForgotUrl ? (openBlock(), createBlock(_component_q_btn, {
1103
+ key: 2,
1104
+ class: "q-pt-none",
1105
+ label: unref(lang2).login.forgotPassword,
1106
+ size: "sm",
1107
+ flat: "",
1108
+ to: __props.passwordForgotUrl
1109
+ }, null, 8, ["label", "to"])) : createCommentVNode("", true),
1110
+ renderSlot(_ctx.$slots, "default", { submit })
1111
+ ]),
1112
+ _: 3
1113
+ }, 16);
1114
+ };
1115
+ }
1116
+ });
1117
+ var alphanumeric = {
1118
+ "en-US": /^[0-9A-Z]+$/i,
1119
+ "az-AZ": /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,
1120
+ "bg-BG": /^[0-9А-Я]+$/i,
1121
+ "cs-CZ": /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,
1122
+ "da-DK": /^[0-9A-ZÆØÅ]+$/i,
1123
+ "de-DE": /^[0-9A-ZÄÖÜß]+$/i,
1124
+ "el-GR": /^[0-9Α-ω]+$/i,
1125
+ "es-ES": /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,
1126
+ "fi-FI": /^[0-9A-ZÅÄÖ]+$/i,
1127
+ "fr-FR": /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,
1128
+ "it-IT": /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,
1129
+ "hu-HU": /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,
1130
+ "nb-NO": /^[0-9A-ZÆØÅ]+$/i,
1131
+ "nl-NL": /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,
1132
+ "nn-NO": /^[0-9A-ZÆØÅ]+$/i,
1133
+ "pl-PL": /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,
1134
+ "pt-PT": /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,
1135
+ "ru-RU": /^[0-9А-ЯЁ]+$/i,
1136
+ "sl-SI": /^[0-9A-ZČĆĐŠŽ]+$/i,
1137
+ "sk-SK": /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,
1138
+ "sr-RS@latin": /^[0-9A-ZČĆŽŠĐ]+$/i,
1139
+ "sr-RS": /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,
1140
+ "sv-SE": /^[0-9A-ZÅÄÖ]+$/i,
1141
+ "th-TH": /^[ก-๙\s]+$/i,
1142
+ "tr-TR": /^[0-9A-ZÇĞİıÖŞÜ]+$/i,
1143
+ "uk-UA": /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,
1144
+ "ku-IQ": /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,
1145
+ "vi-VN": /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,
1146
+ ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,
1147
+ he: /^[0-9א-ת]+$/,
1148
+ fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,
1149
+ "hi-IN": /^[\u0900-\u0963]+[\u0966-\u097F]*$/i
1150
+ };
1151
+ var englishLocales = ["AU", "GB", "HK", "IN", "NZ", "ZA", "ZM"];
1152
+ for (var locale, i = 0; i < englishLocales.length; i++) {
1153
+ locale = "en-".concat(englishLocales[i]);
1154
+ alphanumeric[locale] = alphanumeric["en-US"];
1155
+ }
1156
+ var arabicLocales = ["AE", "BH", "DZ", "EG", "IQ", "JO", "KW", "LB", "LY", "MA", "QM", "QA", "SA", "SD", "SY", "TN", "YE"];
1157
+ for (var _locale, _i = 0; _i < arabicLocales.length; _i++) {
1158
+ _locale = "ar-".concat(arabicLocales[_i]);
1159
+ alphanumeric[_locale] = alphanumeric.ar;
1160
+ }
1161
+ var farsiLocales = ["IR", "AF"];
1162
+ for (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) {
1163
+ _locale2 = "fa-".concat(farsiLocales[_i2]);
1164
+ alphanumeric[_locale2] = alphanumeric.fa;
1165
+ }
1166
+ alphanumeric["fr-CA"] = alphanumeric["fr-FR"];
1167
+ alphanumeric["pt-BR"] = alphanumeric["pt-PT"];
1168
+ alphanumeric["pl-Pl"] = alphanumeric["pl-PL"];
1169
+ function isAlphanumeric(_str) {
1170
+ var locale = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "en-US";
1171
+ var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
1172
+ assertString(_str);
1173
+ var str = _str;
1174
+ var ignore = options.ignore;
1175
+ if (ignore) {
1176
+ if (ignore instanceof RegExp) {
1177
+ str = str.replace(ignore, "");
1178
+ } else if (typeof ignore === "string") {
1179
+ str = str.replace(new RegExp("[".concat(ignore.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g, "\\$&"), "]"), "g"), "");
1180
+ } else {
1181
+ throw new Error("ignore should be instance of a String or RegExp");
1182
+ }
1183
+ }
1184
+ if (locale in alphanumeric) {
1185
+ return alphanumeric[locale].test(str);
1186
+ }
1187
+ throw new Error("Invalid locale '".concat(locale, "'"));
1188
+ }
1189
+ const __default__$4 = {
1190
+ name: "RegisterForm"
1191
+ };
1192
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1193
+ ...__default__$4,
1194
+ props: {
1195
+ useUsername: { type: Boolean },
1196
+ extraFields: { default: void 0 },
1197
+ minimumPasswordLength: { default: 8 },
1198
+ form: { default: void 0 },
1199
+ input: { default: void 0 }
1200
+ },
1201
+ emits: ["submit"],
1202
+ setup(__props, { expose, emit }) {
1203
+ const props = __props;
1204
+ const $q = useQuasar();
1205
+ const lang2 = useLang();
1206
+ if (lang2.value.isoName !== $q.lang.isoName)
1207
+ loadLang($q.lang.isoName);
1208
+ watch($q.lang, (val) => {
1209
+ loadLang($q.lang.isoName);
1210
+ });
1211
+ const email = ref("");
1212
+ const password = ref("");
1213
+ const repeatPassword = ref("");
1214
+ const extraFieldValues = ref({});
1215
+ const username = ref("");
1216
+ const showPassword = ref(false);
1217
+ const header = computed(() => lang2.value.register.register);
1218
+ const forgotPassword = computed(() => lang2.value.register.forgotPassword);
1219
+ const accountCreated = computed(() => lang2.value.register.accountCreated);
1220
+ const unprocessableRequest = computed(() => lang2.value.unprocessableRequest);
1221
+ const alreadyRegistered = computed(() => lang2.value.register.alreadyRegistered);
1222
+ const minimumPasswordLength = toRef(props, "minimumPasswordLength");
1223
+ const formRef = ref();
1224
+ const validations = computed(() => ({
1225
+ email: [
1226
+ (val) => !!val || lang2.value.register.validations.fieldRequired,
1227
+ (val) => isEmail(val) || lang2.value.register.validations.invalidEmail
1228
+ ],
1229
+ username: [
1230
+ (val) => !!val || lang2.value.register.validations.fieldRequired,
1231
+ (val) => isAlphanumeric(val) || lang2.value.register.validations.notAlphaNumeric
1232
+ ],
1233
+ password: [
1234
+ (val) => !!val || lang2.value.password.validations.fieldRequired,
1235
+ (val) => val.length >= minimumPasswordLength.value || lang2.value.password.validations.minimumPasswordLength(
1236
+ minimumPasswordLength.value
1237
+ )
1238
+ ],
1239
+ repeatPassword: [
1240
+ (val) => !!val || lang2.value.password.validations.fieldRequired,
1241
+ (val) => equals(val, password.value) || lang2.value.password.validations.passwordsDoNotMatch
1242
+ ]
1243
+ }));
1244
+ const submit = (evt) => {
1245
+ var _a;
1246
+ (_a = formRef.value) == null ? void 0 : _a.validate().then((success) => {
1247
+ if (success) {
1248
+ emit("submit", {
1249
+ email: email.value.trim(),
1250
+ password: password.value,
1251
+ username: username.value.trim(),
1252
+ extraFields: extraFieldValues.value,
1253
+ done: evt.done
1254
+ });
1255
+ } else
1256
+ evt.done();
1257
+ });
1258
+ };
1259
+ const variables = ref({
1260
+ header,
1261
+ forgotPassword,
1262
+ accountCreated,
1263
+ unprocessableRequest,
1264
+ alreadyRegistered
1265
+ });
1266
+ const functions = ref({
1267
+ submit
1268
+ });
1269
+ expose({
1270
+ variables,
1271
+ functions
1272
+ });
1273
+ return (_ctx, _cache) => {
1274
+ const _component_q_input = QInput;
1275
+ const _component_q_icon = QIcon;
1276
+ return openBlock(), createBlock(unref(QForm), mergeProps({
1277
+ ref_key: "formRef",
1278
+ ref: formRef,
1279
+ class: "q-gutter-md"
1280
+ }, __props.form, {
1281
+ onSubmit: _cache[6] || (_cache[6] = (e) => submit)
1282
+ }), {
1283
+ default: withCtx(() => [
1284
+ !__props.useUsername ? (openBlock(), createBlock(_component_q_input, mergeProps({ key: 0 }, __props.input, {
1285
+ id: "email",
1286
+ modelValue: email.value,
1287
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => email.value = $event),
1288
+ name: "email",
1289
+ label: unref(lang2).register.fields.email,
1290
+ "bottom-slots": "",
1291
+ rules: unref(validations)["email"],
1292
+ "lazy-rules": ""
1293
+ }), null, 16, ["modelValue", "label", "rules"])) : createCommentVNode("", true),
1294
+ __props.useUsername ? (openBlock(), createBlock(_component_q_input, mergeProps({ key: 1 }, __props.input, {
1295
+ id: "username",
1296
+ modelValue: username.value,
1297
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => username.value = $event),
1298
+ name: "username",
1299
+ label: unref(lang2).register.fields.username,
1300
+ "bottom-slots": "",
1301
+ rules: unref(validations)["username"],
1302
+ "lazy-rules": ""
1303
+ }), null, 16, ["modelValue", "label", "rules"])) : createCommentVNode("", true),
1304
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.extraFields, (field) => {
1305
+ return openBlock(), createBlock(_component_q_input, {
1306
+ key: field.name,
1307
+ modelValue: extraFieldValues.value[field.name],
1308
+ "onUpdate:modelValue": ($event) => extraFieldValues.value[field.name] = $event,
1309
+ type: "text",
1310
+ name: field.name,
1311
+ label: field.label,
1312
+ rules: field.rules,
1313
+ "bottom-slots": ""
1314
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "name", "label", "rules"]);
1315
+ }), 128)),
1316
+ createVNode(_component_q_input, mergeProps(__props.input, {
1317
+ id: "password",
1318
+ modelValue: password.value,
1319
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => password.value = $event),
1320
+ name: "password",
1321
+ type: showPassword.value ? "text" : "password",
1322
+ label: unref(lang2).register.fields.password,
1323
+ rules: unref(validations)["password"],
1324
+ "lazy-rules": "",
1325
+ "bottom-slots": ""
1326
+ }), {
1327
+ append: withCtx(() => [
1328
+ createVNode(_component_q_icon, {
1329
+ name: showPassword.value ? "visibility" : "visibility_off",
1330
+ class: "cursor-pointer",
1331
+ onClick: _cache[2] || (_cache[2] = ($event) => showPassword.value = !showPassword.value)
1332
+ }, null, 8, ["name"])
1333
+ ]),
1334
+ _: 1
1335
+ }, 16, ["modelValue", "type", "label", "rules"]),
1336
+ createVNode(_component_q_input, {
1337
+ id: "repeatPassword",
1338
+ modelValue: repeatPassword.value,
1339
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => repeatPassword.value = $event),
1340
+ type: showPassword.value ? "text" : "password",
1341
+ label: unref(lang2).register.fields.repeatPassword,
1342
+ "bottom-slots": "",
1343
+ required: "",
1344
+ rules: unref(validations)["repeatPassword"],
1345
+ "lazy-rules": ""
1346
+ }, {
1347
+ append: withCtx(() => [
1348
+ createVNode(_component_q_icon, {
1349
+ name: showPassword.value ? "visibility" : "visibility_off",
1350
+ class: "cursor-pointer",
1351
+ onClick: _cache[4] || (_cache[4] = ($event) => showPassword.value = !showPassword.value)
1352
+ }, null, 8, ["name"])
1353
+ ]),
1354
+ _: 1
1355
+ }, 8, ["modelValue", "type", "label", "rules"]),
1356
+ renderSlot(_ctx.$slots, "default", { submit })
1357
+ ]),
1358
+ _: 3
1359
+ }, 16);
1360
+ };
1361
+ }
1362
+ });
1363
+ const __default__$3 = {
1364
+ name: "VerificationSlider"
1365
+ };
1366
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1367
+ ...__default__$3,
1368
+ props: {
1369
+ useVerificationSlider: { type: Boolean }
1370
+ },
1371
+ emits: ["verified"],
1372
+ setup(__props, { expose, emit }) {
1373
+ const $q = useQuasar();
1374
+ const lang2 = useLang();
1375
+ if (lang2.value.isoName !== $q.lang.isoName)
1376
+ loadLang($q.lang.isoName);
1377
+ watch($q.lang, (val) => {
1378
+ loadLang($q.lang.isoName);
1379
+ });
1380
+ const sliderValue = ref(0);
1381
+ const sliderColor = ref("red");
1382
+ const completed = ref(false);
1383
+ watch(sliderValue, (newVal, oldVal) => {
1384
+ if (newVal > 80) {
1385
+ sliderColor.value = "green";
1386
+ setTimeout(() => {
1387
+ sliderValue.value = 100;
1388
+ completed.value = true;
1389
+ }, 500);
1390
+ emit("verified");
1391
+ }
1392
+ });
1393
+ const variables = ref({});
1394
+ const functions = ref({});
1395
+ expose({
1396
+ variables,
1397
+ functions
1398
+ });
1399
+ return (_ctx, _cache) => {
1400
+ const _component_q_slider = QSlider;
1401
+ return openBlock(), createElementBlock(Fragment, null, [
1402
+ createTextVNode(toDisplayString(unref(lang2).verification.slider) + " ", 1),
1403
+ createVNode(_component_q_slider, {
1404
+ modelValue: sliderValue.value,
1405
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => sliderValue.value = $event),
1406
+ color: sliderColor.value,
1407
+ readonly: completed.value
1408
+ }, null, 8, ["modelValue", "color", "readonly"])
1409
+ ], 64);
1410
+ };
1411
+ }
1412
+ });
1413
+ const __default__$2 = {
1414
+ name: "ConsentList"
1415
+ };
1416
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1417
+ ...__default__$2,
1418
+ props: {
1419
+ scopes: null,
1420
+ claims: null,
1421
+ resourceScopes: null
1422
+ },
1423
+ setup(__props, { expose }) {
1424
+ const $q = useQuasar();
1425
+ const lang2 = useLang();
1426
+ if (lang2.value.isoName !== $q.lang.isoName)
1427
+ loadLang($q.lang.isoName);
1428
+ watch($q.lang, (val) => {
1429
+ loadLang($q.lang.isoName);
1430
+ });
1431
+ const message = computed(() => lang2.value.consent.message);
1432
+ const allow = computed(() => lang2.value.consent.allow);
1433
+ const deny = computed(() => lang2.value.consent.deny);
1434
+ const variables = ref({
1435
+ message,
1436
+ allow,
1437
+ deny
1438
+ });
1439
+ const functions = ref({});
1440
+ expose({
1441
+ variables,
1442
+ functions
1443
+ });
1444
+ return (_ctx, _cache) => {
1445
+ const _component_q_icon = QIcon;
1446
+ const _component_q_item_section = QItemSection;
1447
+ const _component_q_item = QItem;
1448
+ const _component_q_list = QList;
1449
+ return openBlock(), createBlock(_component_q_list, null, {
1450
+ default: withCtx(() => [
1451
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.scopes, (scope) => {
1452
+ return openBlock(), createBlock(_component_q_item, {
1453
+ key: scope.name
1454
+ }, {
1455
+ default: withCtx(() => [
1456
+ createVNode(_component_q_item_section, { avatar: "" }, {
1457
+ default: withCtx(() => [
1458
+ createVNode(_component_q_icon, {
1459
+ color: "green",
1460
+ name: "check"
1461
+ })
1462
+ ]),
1463
+ _: 1
1464
+ }),
1465
+ createVNode(_component_q_item_section, null, {
1466
+ default: withCtx(() => [
1467
+ createTextVNode(toDisplayString(scope.name), 1)
1468
+ ]),
1469
+ _: 2
1470
+ }, 1024)
1471
+ ]),
1472
+ _: 2
1473
+ }, 1024);
1474
+ }), 128)),
1475
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.claims, (claim) => {
1476
+ return openBlock(), createBlock(_component_q_item, {
1477
+ key: claim.name
1478
+ }, {
1479
+ default: withCtx(() => [
1480
+ createVNode(_component_q_item_section, { avatar: "" }, {
1481
+ default: withCtx(() => [
1482
+ createVNode(_component_q_icon, {
1483
+ color: "green",
1484
+ name: "check"
1485
+ })
1486
+ ]),
1487
+ _: 1
1488
+ }),
1489
+ createVNode(_component_q_item_section, null, {
1490
+ default: withCtx(() => [
1491
+ createTextVNode(toDisplayString(claim.name), 1)
1492
+ ]),
1493
+ _: 2
1494
+ }, 1024)
1495
+ ]),
1496
+ _: 2
1497
+ }, 1024);
1498
+ }), 128)),
1499
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.resourceScopes, (resourceScope) => {
1500
+ return openBlock(), createBlock(_component_q_item, {
1501
+ key: resourceScope.name
1502
+ }, {
1503
+ default: withCtx(() => [
1504
+ createVNode(_component_q_item_section, { avatar: "" }, {
1505
+ default: withCtx(() => [
1506
+ createVNode(_component_q_icon, {
1507
+ color: "green",
1508
+ name: "check"
1509
+ })
1510
+ ]),
1511
+ _: 1
1512
+ }),
1513
+ createVNode(_component_q_item_section, null, {
1514
+ default: withCtx(() => [
1515
+ createTextVNode(toDisplayString(resourceScope.name), 1)
1516
+ ]),
1517
+ _: 2
1518
+ }, 1024)
1519
+ ]),
1520
+ _: 2
1521
+ }, 1024);
1522
+ }), 128))
1523
+ ]),
1524
+ _: 1
1525
+ });
1526
+ };
1527
+ }
1528
+ });
1529
+ const __default__$1 = {
1530
+ name: "UserMenuButton"
1531
+ };
1532
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1533
+ ...__default__$1,
1534
+ props: {
1535
+ userRoute: null
1536
+ },
1537
+ emits: ["signOut"],
1538
+ setup(__props, { expose, emit }) {
1539
+ const $q = useQuasar();
1540
+ const lang2 = useLang();
1541
+ if (lang2.value.isoName !== $q.lang.isoName)
1542
+ loadLang($q.lang.isoName);
1543
+ watch($q.lang, (val) => {
1544
+ loadLang($q.lang.isoName);
1545
+ });
1546
+ const variables = ref({});
1547
+ const functions = ref({});
1548
+ expose({
1549
+ variables,
1550
+ functions
1551
+ });
1552
+ return (_ctx, _cache) => {
1553
+ const _component_q_item_section = QItemSection;
1554
+ const _component_q_item = QItem;
1555
+ const _component_q_list = QList;
1556
+ const _component_q_menu = QMenu;
1557
+ const _component_q_btn = QBtn;
1558
+ return openBlock(), createBlock(_component_q_btn, { icon: "person" }, {
1559
+ default: withCtx(() => [
1560
+ createVNode(_component_q_menu, null, {
1561
+ default: withCtx(() => [
1562
+ createVNode(_component_q_list, null, {
1563
+ default: withCtx(() => [
1564
+ createVNode(_component_q_item, { to: __props.userRoute }, {
1565
+ default: withCtx(() => [
1566
+ createVNode(_component_q_item_section, null, {
1567
+ default: withCtx(() => [
1568
+ createTextVNode(toDisplayString(unref(lang2).myAccount), 1)
1569
+ ]),
1570
+ _: 1
1571
+ })
1572
+ ]),
1573
+ _: 1
1574
+ }, 8, ["to"]),
1575
+ renderSlot(_ctx.$slots, "default"),
1576
+ createVNode(_component_q_item, {
1577
+ clickable: "",
1578
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("signOut"))
1579
+ }, {
1580
+ default: withCtx(() => [
1581
+ createVNode(_component_q_item_section, null, {
1582
+ default: withCtx(() => [
1583
+ createTextVNode(toDisplayString(unref(lang2).signOut), 1)
1584
+ ]),
1585
+ _: 1
1586
+ })
1587
+ ]),
1588
+ _: 1
1589
+ })
1590
+ ]),
1591
+ _: 3
1592
+ })
1593
+ ]),
1594
+ _: 3
1595
+ })
1596
+ ]),
1597
+ _: 3
1598
+ });
1599
+ };
1600
+ }
1601
+ });
1602
+ const _hoisted_1 = { key: 0 };
1603
+ const _hoisted_2 = { key: 1 };
1604
+ const __default__ = {
1605
+ name: "LoginButton"
1606
+ };
1607
+ const _sfc_main = /* @__PURE__ */ defineComponent({
1608
+ ...__default__,
1609
+ props: {
1610
+ withNetwork: null
1611
+ },
1612
+ setup(__props, { expose }) {
1613
+ const $q = useQuasar();
1614
+ const lang2 = useLang();
1615
+ if (lang2.value.isoName !== $q.lang.isoName)
1616
+ loadLang($q.lang.isoName);
1617
+ watch($q.lang, (val) => {
1618
+ loadLang($q.lang.isoName);
1619
+ });
1620
+ const variables = ref({});
1621
+ const functions = ref({});
1622
+ expose({
1623
+ variables,
1624
+ functions
1625
+ });
1626
+ return (_ctx, _cache) => {
1627
+ const _component_q_btn = QBtn;
1628
+ return openBlock(), createBlock(_component_q_btn, null, {
1629
+ default: withCtx(() => [
1630
+ renderSlot(_ctx.$slots, "icon"),
1631
+ __props.withNetwork ? (openBlock(), createElementBlock("div", _hoisted_1, toDisplayString(unref(lang2).login.loginWith) + " " + toDisplayString(__props.withNetwork), 1)) : (openBlock(), createElementBlock("div", _hoisted_2, toDisplayString(unref(lang2).login.login), 1))
1632
+ ]),
1633
+ _: 3
1634
+ });
1635
+ };
1636
+ }
1637
+ });
1638
+ export {
1639
+ _sfc_main$2 as ConsentList,
1640
+ _sfc_main$9 as EmailChangeForm,
1641
+ _sfc_main$8 as EmailChangeStepper,
1642
+ _sfc_main as LoginButton,
1643
+ _sfc_main$5 as LoginForm,
1644
+ _sfc_main$a as OtpInput,
1645
+ _sfc_main$7 as PasswordChangeForm,
1646
+ _sfc_main$6 as PasswordChangeStepper,
1647
+ _sfc_main$4 as RegisterForm,
1648
+ _sfc_main$b as RequestOtpForm,
1649
+ _sfc_main$1 as UserMenuButton,
1650
+ _sfc_main$3 as VerificationSlider
1651
+ };