@userfrosting/sprinkle-core 6.0.0-beta.7 → 6.0.0-beta.8

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 (66) hide show
  1. package/dist/Page401Unauthorized-Dkz0W0kI.js +11 -0
  2. package/dist/Page403Forbidden-CZrvZLe3.js +11 -0
  3. package/dist/Page404NotFound-C7Y20KCv.js +11 -0
  4. package/dist/PageError-wq0-2ksY.js +11 -0
  5. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
  6. package/dist/composables/index.d.ts +4 -0
  7. package/dist/composables/useAxiosInterceptor.d.ts +10 -0
  8. package/dist/composables/useCsrf.d.ts +18 -0
  9. package/dist/composables/useRuleSchemaAdapter.d.ts +7 -0
  10. package/dist/composables/useSprunjer.d.ts +2 -0
  11. package/dist/composables.js +151 -0
  12. package/dist/index.d.ts +18 -0
  13. package/dist/index.js +15 -0
  14. package/{app/assets/interfaces/ApiResponse.ts → dist/interfaces/ApiResponse.d.ts} +5 -6
  15. package/{app/assets/interfaces/DictionaryApi.ts → dist/interfaces/DictionaryApi.d.ts} +9 -11
  16. package/dist/interfaces/alerts.d.ts +8 -0
  17. package/{app/assets/interfaces/common.ts → dist/interfaces/common.d.ts} +1 -1
  18. package/dist/interfaces/index.d.ts +13 -0
  19. package/{app/assets/interfaces/severity.ts → dist/interfaces/severity.d.ts} +9 -9
  20. package/dist/interfaces/sprunjer.d.ts +51 -0
  21. package/{app/assets/interfaces/sprunjerApi.ts → dist/interfaces/sprunjerApi.d.ts} +12 -15
  22. package/dist/interfaces.js +5 -0
  23. package/dist/routes/index.d.ts +16 -0
  24. package/dist/routes.js +41 -0
  25. package/dist/severity-DwLpzIij.js +4 -0
  26. package/{app/assets/stores/Helpers/PluralRules.ts → dist/stores/Helpers/PluralRules.d.ts} +17 -114
  27. package/dist/stores/index.d.ts +4 -0
  28. package/dist/stores/useAlertsStore.d.ts +29 -0
  29. package/dist/stores/useConfigStore.d.ts +11 -0
  30. package/dist/stores/usePageMeta.d.ts +51 -0
  31. package/dist/stores/useTranslator.d.ts +66 -0
  32. package/dist/stores.js +7 -0
  33. package/dist/useAlertsStore-BnSfoOG2.js +179 -0
  34. package/dist/useAxiosInterceptor-DTHSvv-f.js +68 -0
  35. package/dist/views/Page401Unauthorized.vue.d.ts +2 -0
  36. package/dist/views/Page403Forbidden.vue.d.ts +2 -0
  37. package/dist/views/Page404NotFound.vue.d.ts +2 -0
  38. package/dist/views/PageError.vue.d.ts +2 -0
  39. package/package.json +36 -8
  40. package/app/assets/composables/index.ts +0 -4
  41. package/app/assets/composables/useAxiosInterceptor.ts +0 -30
  42. package/app/assets/composables/useCsrf.ts +0 -129
  43. package/app/assets/composables/useRuleSchemaAdapter.ts +0 -205
  44. package/app/assets/composables/useSprunjer.ts +0 -188
  45. package/app/assets/index.d.ts +0 -8
  46. package/app/assets/index.ts +0 -40
  47. package/app/assets/interfaces/alerts.ts +0 -16
  48. package/app/assets/interfaces/index.ts +0 -30
  49. package/app/assets/interfaces/sprunjer.ts +0 -60
  50. package/app/assets/routes/index.ts +0 -44
  51. package/app/assets/stores/index.ts +0 -4
  52. package/app/assets/stores/useAlertsStore.ts +0 -30
  53. package/app/assets/stores/useConfigStore.ts +0 -30
  54. package/app/assets/stores/usePageMeta.ts +0 -114
  55. package/app/assets/stores/useTranslator.ts +0 -293
  56. package/app/assets/tests/composables/useCsrf.test.ts +0 -212
  57. package/app/assets/tests/composables/useRuleSchemaAdapter.test.ts +0 -657
  58. package/app/assets/tests/interfaces/alerts.test.ts +0 -43
  59. package/app/assets/tests/plugin.test.ts +0 -29
  60. package/app/assets/tests/stores/Helpers/PluralRules.test.ts +0 -440
  61. package/app/assets/tests/stores/config.test.ts +0 -42
  62. package/app/assets/tests/stores/useTranslator.test.ts +0 -373
  63. package/app/assets/views/Page401Unauthorized.vue +0 -3
  64. package/app/assets/views/Page403Forbidden.vue +0 -3
  65. package/app/assets/views/Page404NotFound.vue +0 -3
  66. package/app/assets/views/PageError.vue +0 -3
@@ -2,11 +2,7 @@
2
2
  * Families: Asian (Chinese, Japanese, Korean, Vietnamese), Persian, Turkic/Altaic (Turkish), Thai, Lao
3
3
  * 1 - everything: 0, 1, 2, ...
4
4
  */
5
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
- export const rule0 = (number: number): number => {
7
- return 1
8
- }
9
-
5
+ export declare const rule0: (number: number) => number;
10
6
  /**
11
7
  * Families: Germanic (Danish, Dutch, English, Faroese, Frisian, German, Norwegian, Swedish),
12
8
  * Finno-Ugric (Estonian, Finnish, Hungarian), Language isolate (Basque),
@@ -14,29 +10,20 @@ export const rule0 = (number: number): number => {
14
10
  * 1 - 1
15
11
  * 2 - everything else: 0, 2, 3, ...
16
12
  */
17
- export const rule1 = (number: number): number => {
18
- return number === 1 ? 1 : 2
19
- }
20
-
13
+ export declare const rule1: (number: number) => number;
21
14
  /**
22
15
  * Families: Romanic (French, Brazilian Portuguese)
23
16
  * 1 - 0, 1
24
17
  * 2 - everything else: 2, 3, ...
25
18
  */
26
- export const rule2 = (number: number): number => {
27
- return number === 0 || number === 1 ? 1 : 2
28
- }
29
-
19
+ export declare const rule2: (number: number) => number;
30
20
  /**
31
21
  * Families: Baltic (Latvian)
32
22
  * 1 - 0
33
23
  * 2 - ends in 1, not 11: 1, 21, ... 101, 121, ...
34
24
  * 3 - everything else: 2, 3, ... 10, 11, 12, ... 20, 22, ...
35
25
  */
36
- export const rule3 = (number: number): number => {
37
- return number === 0 ? 1 : number % 10 == 1 && number % 100 != 11 ? 2 : 3
38
- }
39
-
26
+ export declare const rule3: (number: number) => number;
40
27
  /**
41
28
  * Families: Celtic (Scottish Gaelic)
42
29
  * 1 - is 1 or 11: 1, 11
@@ -44,78 +31,42 @@ export const rule3 = (number: number): number => {
44
31
  * 3 - others between 3 and 19: 3, 4, ... 10, 13, ... 18, 19
45
32
  * 4 - everything else: 0, 20, 21, ...
46
33
  */
47
- export const rule4 = (number: number): number => {
48
- return number === 1 || number == 11
49
- ? 1
50
- : number === 2 || number === 12
51
- ? 2
52
- : number >= 3 && number <= 19
53
- ? 3
54
- : 4
55
- }
56
-
34
+ export declare const rule4: (number: number) => number;
57
35
  /**
58
36
  * Families: Romanic (Romanian)
59
37
  * 1 - 1
60
38
  * 2 - is 0 or ends in 01-19: 0, 2, 3, ... 19, 101, 102, ... 119, 201, ...
61
39
  * 3 - everything else: 20, 21, ...
62
40
  */
63
- export const rule5 = (number: number): number => {
64
- return number === 1 ? 1 : number === 0 || (number % 100 > 0 && number % 100 < 20) ? 2 : 3
65
- }
66
-
41
+ export declare const rule5: (number: number) => number;
67
42
  /**
68
43
  * Families: Baltic (Lithuanian)
69
44
  * 1 - ends in 1, not 11: 1, 21, 31, ... 101, 121, ...
70
45
  * 2 - ends in 0 or ends in 10-20: 0, 10, 11, 12, ... 19, 20, 30, 40, ...
71
46
  * 3 - everything else: 2, 3, ... 8, 9, 22, 23, ... 29, 32, 33, ...
72
47
  */
73
- export const rule6 = (number: number): number => {
74
- return number % 10 === 1 && number % 100 !== 11
75
- ? 1
76
- : number % 10 < 2 || (number % 100 >= 10 && number % 100 < 20)
77
- ? 2
78
- : 3
79
- }
80
-
48
+ export declare const rule6: (number: number) => number;
81
49
  /**
82
50
  * Families: Slavic (Croatian, Serbian, Russian, Ukrainian)
83
51
  * 1 - ends in 1, not 11: 1, 21, 31, ... 101, 121, ...
84
52
  * 2 - ends in 2-4, not 12-14: 2, 3, 4, 22, 23, 24, 32, ...
85
53
  * 3 - everything else: 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26, ...
86
54
  */
87
- export const rule7 = (number: number): number => {
88
- return number % 10 === 1 && number % 100 !== 11
89
- ? 1
90
- : number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)
91
- ? 2
92
- : 3
93
- }
94
-
55
+ export declare const rule7: (number: number) => number;
95
56
  /**
96
57
  * Families: Slavic (Slovak, Czech)
97
58
  * 1 - 1
98
59
  * 2 - 2, 3, 4
99
60
  * 3 - everything else: 0, 5, 6, 7, ...
100
61
  */
101
- export const rule8 = (number: number): number => {
102
- return number === 1 ? 1 : number >= 2 && number <= 4 ? 2 : 3
103
- }
104
-
62
+ export declare const rule8: (number: number) => number;
105
63
  /**
106
64
  * Families: Slavic (Polish)
107
65
  * 1 - 1
108
66
  * 2 - ends in 2-4, not 12-14: 2, 3, 4, 22, 23, 24, 32, ... 104, 122, ...
109
67
  * 3 - everything else: 0, 5, 6, ... 11, 12, 13, 14, 15, ... 20, 21, 25, ...
110
68
  */
111
- export const rule9 = (number: number): number => {
112
- return number === 1
113
- ? 1
114
- : number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 12 || number % 100 > 14)
115
- ? 2
116
- : 3
117
- }
118
-
69
+ export declare const rule9: (number: number) => number;
119
70
  /**
120
71
  * Families: Slavic (Slovenian, Sorbian)
121
72
  * 1 - ends in 01: 1, 101, 201, ...
@@ -123,16 +74,7 @@ export const rule9 = (number: number): number => {
123
74
  * 3 - ends in 03-04: 3, 4, 103, 104, 203, 204, ...
124
75
  * 4 - everything else: 0, 5, 6, 7, 8, 9, 10, 11, ...
125
76
  */
126
- export const rule10 = (number: number): number => {
127
- return number % 100 === 1
128
- ? 1
129
- : number % 100 === 2
130
- ? 2
131
- : number % 100 === 3 || number % 100 === 4
132
- ? 3
133
- : 4
134
- }
135
-
77
+ export declare const rule10: (number: number) => number;
136
78
  /**
137
79
  * Families: Celtic (Irish Gaeilge)
138
80
  * 1 - 1
@@ -141,18 +83,7 @@ export const rule10 = (number: number): number => {
141
83
  * 4 - is 7-10: 7, 8, 9, 10
142
84
  * 5 - everything else: 0, 11, 12, ...
143
85
  */
144
- export const rule11 = (number: number): number => {
145
- return number === 1
146
- ? 1
147
- : number === 2
148
- ? 2
149
- : number >= 3 && number <= 6
150
- ? 3
151
- : number >= 7 && number <= 10
152
- ? 4
153
- : 5
154
- }
155
-
86
+ export declare const rule11: (number: number) => number;
156
87
  /**
157
88
  * Families: Semitic (Arabic).
158
89
  *
@@ -163,20 +94,7 @@ export const rule11 = (number: number): number => {
163
94
  * 5 - everything else: 100, 101, 102, 200, 201, 202, ...
164
95
  * 6 - 0
165
96
  */
166
- export const rule12 = (number: number): number => {
167
- return number === 1
168
- ? 1
169
- : number === 2
170
- ? 2
171
- : number % 100 >= 3 && number % 100 <= 10
172
- ? 3
173
- : number % 100 >= 11
174
- ? 4
175
- : number != 0
176
- ? 5
177
- : 6
178
- }
179
-
97
+ export declare const rule12: (number: number) => number;
180
98
  /**
181
99
  * Families: Semitic (Maltese)
182
100
  * 1 - 1
@@ -184,35 +102,20 @@ export const rule12 = (number: number): number => {
184
102
  * 3 - ends in 11-19: 11, 12, ... 18, 19, 111, 112, ...
185
103
  * 4 - everything else: 20, 21, ...
186
104
  */
187
- export const rule13 = (number: number): number => {
188
- return number === 1
189
- ? 1
190
- : number === 0 || (number % 100 >= 1 && number % 100 < 11)
191
- ? 2
192
- : number % 100 > 10 && number % 100 < 20
193
- ? 3
194
- : 4
195
- }
196
-
105
+ export declare const rule13: (number: number) => number;
197
106
  /**
198
107
  * Families: Slavic (Macedonian)
199
108
  * 1 - ends in 1: 1, 11, 21, ...
200
109
  * 2 - ends in 2: 2, 12, 22, ...
201
110
  * 3 - everything else: 0, 3, 4, ... 10, 13, 14, ... 20, 23, ...
202
111
  */
203
- export const rule14 = (number: number): number => {
204
- return number % 10 === 1 ? 1 : number % 10 === 2 ? 2 : 3
205
- }
206
-
112
+ export declare const rule14: (number: number) => number;
207
113
  /**
208
114
  * Families: Icelandic
209
115
  * 1 - ends in 1, not 11: 1, 21, 31, ... 101, 121, 131, ...
210
116
  * 2 - everything else: 0, 2, 3, ... 10, 11, 12, ... 20, 22, ...
211
117
  */
212
- export const rule15 = (number: number): number => {
213
- return number % 10 === 1 && number % 100 != 11 ? 1 : 2
214
- }
215
-
118
+ export declare const rule15: (number: number) => number;
216
119
  export interface PluralRules {
217
- [key: number]: (pluralValue: number) => number
120
+ [key: number]: (pluralValue: number) => number;
218
121
  }
@@ -0,0 +1,4 @@
1
+ export { useConfigStore } from './useConfigStore';
2
+ export { usePageMeta } from './usePageMeta';
3
+ export { useTranslator } from './useTranslator';
4
+ export { useAlertsStore } from './useAlertsStore';
@@ -0,0 +1,29 @@
1
+ import { AlertInterface } from '../interfaces';
2
+ /**
3
+ * Alerts Store
4
+ *
5
+ * Manages application alerts in a reactive store. Templates can use this
6
+ * store to display alerts to users, including errors, warnings,
7
+ * informational, or success messages. When an alert is added, templates
8
+ * should automatically update the interface to reflect the change.
9
+ */
10
+ export declare const useAlertsStore: import('pinia').StoreDefinition<"alerts", {
11
+ alerts: AlertInterface[];
12
+ }, {}, {
13
+ push(alert: AlertInterface): void;
14
+ pop(): {
15
+ title?: string | undefined;
16
+ description?: string | undefined;
17
+ style?: (import('../interfaces').Severity | keyof typeof import('../interfaces').Severity) | undefined;
18
+ closeBtn?: boolean | undefined;
19
+ hideIcon?: boolean | undefined;
20
+ } | undefined;
21
+ shift(): {
22
+ title?: string | undefined;
23
+ description?: string | undefined;
24
+ style?: (import('../interfaces').Severity | keyof typeof import('../interfaces').Severity) | undefined;
25
+ closeBtn?: boolean | undefined;
26
+ hideIcon?: boolean | undefined;
27
+ } | undefined;
28
+ clear(): void;
29
+ }>;
@@ -0,0 +1,11 @@
1
+ export declare const useConfigStore: import('pinia').StoreDefinition<"config", {
2
+ config: {};
3
+ }, {
4
+ get: (state: {
5
+ config: {};
6
+ } & import('pinia').PiniaCustomStateProperties<{
7
+ config: {};
8
+ }>) => (key: string, value?: any) => any;
9
+ }, {
10
+ load(): Promise<void>;
11
+ }>;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Page Meta Composable
3
+ *
4
+ * Handles the page meta data such as title, description, plus generate
5
+ * breadcrumbs from the frontend router. The title, description and breadcrumbs
6
+ * are updated automatically when the route changes.
7
+ *
8
+ * Available States : breadcrumbs, title, description
9
+ */
10
+ export declare const usePageMeta: import('pinia').StoreDefinition<"pageMeta", Pick<{
11
+ breadcrumbs: import('vue').Ref<{
12
+ label: string;
13
+ to: string;
14
+ }[], Breadcrumb[] | {
15
+ label: string;
16
+ to: string;
17
+ }[]>;
18
+ title: import('vue').Ref<string, string>;
19
+ description: import('vue').Ref<string, string>;
20
+ hideBreadcrumbs: import('vue').Ref<boolean, boolean>;
21
+ hideTitle: import('vue').Ref<boolean, boolean>;
22
+ }, "breadcrumbs" | "title" | "description" | "hideBreadcrumbs" | "hideTitle">, Pick<{
23
+ breadcrumbs: import('vue').Ref<{
24
+ label: string;
25
+ to: string;
26
+ }[], Breadcrumb[] | {
27
+ label: string;
28
+ to: string;
29
+ }[]>;
30
+ title: import('vue').Ref<string, string>;
31
+ description: import('vue').Ref<string, string>;
32
+ hideBreadcrumbs: import('vue').Ref<boolean, boolean>;
33
+ hideTitle: import('vue').Ref<boolean, boolean>;
34
+ }, never>, Pick<{
35
+ breadcrumbs: import('vue').Ref<{
36
+ label: string;
37
+ to: string;
38
+ }[], Breadcrumb[] | {
39
+ label: string;
40
+ to: string;
41
+ }[]>;
42
+ title: import('vue').Ref<string, string>;
43
+ description: import('vue').Ref<string, string>;
44
+ hideBreadcrumbs: import('vue').Ref<boolean, boolean>;
45
+ hideTitle: import('vue').Ref<boolean, boolean>;
46
+ }, never>>;
47
+ interface Breadcrumb {
48
+ label: string;
49
+ to: string;
50
+ }
51
+ export {};
@@ -0,0 +1,66 @@
1
+ import { DictionaryEntries, DictionaryConfig } from '../interfaces';
2
+ import { DateTime } from 'luxon';
3
+ export declare const useTranslator: import('pinia').StoreDefinition<"translator", Pick<{
4
+ dictionary: import('vue').Ref<DictionaryEntries, DictionaryEntries>;
5
+ load: () => Promise<void>;
6
+ config: import('vue').Ref<{
7
+ name: string;
8
+ regional: string;
9
+ authors: string[];
10
+ plural_rule: number;
11
+ dates: string;
12
+ }, DictionaryConfig | {
13
+ name: string;
14
+ regional: string;
15
+ authors: string[];
16
+ plural_rule: number;
17
+ dates: string;
18
+ }>;
19
+ identifier: import('vue').Ref<string, string>;
20
+ translate: (key: string, placeholders?: string | number | object) => string;
21
+ translateDate: (date: string, format?: string | object) => string;
22
+ getPluralForm: (pluralValue: number, forceRule?: number) => number;
23
+ getDateTime: (date: string) => DateTime;
24
+ }, "config" | "dictionary" | "identifier">, Pick<{
25
+ dictionary: import('vue').Ref<DictionaryEntries, DictionaryEntries>;
26
+ load: () => Promise<void>;
27
+ config: import('vue').Ref<{
28
+ name: string;
29
+ regional: string;
30
+ authors: string[];
31
+ plural_rule: number;
32
+ dates: string;
33
+ }, DictionaryConfig | {
34
+ name: string;
35
+ regional: string;
36
+ authors: string[];
37
+ plural_rule: number;
38
+ dates: string;
39
+ }>;
40
+ identifier: import('vue').Ref<string, string>;
41
+ translate: (key: string, placeholders?: string | number | object) => string;
42
+ translateDate: (date: string, format?: string | object) => string;
43
+ getPluralForm: (pluralValue: number, forceRule?: number) => number;
44
+ getDateTime: (date: string) => DateTime;
45
+ }, never>, Pick<{
46
+ dictionary: import('vue').Ref<DictionaryEntries, DictionaryEntries>;
47
+ load: () => Promise<void>;
48
+ config: import('vue').Ref<{
49
+ name: string;
50
+ regional: string;
51
+ authors: string[];
52
+ plural_rule: number;
53
+ dates: string;
54
+ }, DictionaryConfig | {
55
+ name: string;
56
+ regional: string;
57
+ authors: string[];
58
+ plural_rule: number;
59
+ dates: string;
60
+ }>;
61
+ identifier: import('vue').Ref<string, string>;
62
+ translate: (key: string, placeholders?: string | number | object) => string;
63
+ translateDate: (date: string, format?: string | object) => string;
64
+ getPluralForm: (pluralValue: number, forceRule?: number) => number;
65
+ getDateTime: (date: string) => DateTime;
66
+ }, "load" | "translate" | "translateDate" | "getPluralForm" | "getDateTime">>;
package/dist/stores.js ADDED
@@ -0,0 +1,7 @@
1
+ import { c as a, u as r, a as o, b as t } from "./useAlertsStore-BnSfoOG2.js";
2
+ export {
3
+ a as useAlertsStore,
4
+ r as useConfigStore,
5
+ o as usePageMeta,
6
+ t as useTranslator
7
+ };
@@ -0,0 +1,179 @@
1
+ import { ref as s, computed as O, watch as N } from "vue";
2
+ import { useRoute as L } from "vue-router";
3
+ import { defineStore as T } from "pinia";
4
+ import j from "axios";
5
+ import { DateTime as P } from "luxon";
6
+ import { getProperty as m } from "dot-prop";
7
+ const D = T("config", {
8
+ persist: !0,
9
+ state: () => ({
10
+ config: {}
11
+ }),
12
+ getters: {
13
+ get: (t) => (u, o) => m(t.config, u, o)
14
+ },
15
+ actions: {
16
+ async load() {
17
+ j.get("/api/config").then((t) => {
18
+ this.config = t.data;
19
+ });
20
+ }
21
+ }
22
+ }), E = (t) => 1, K = (t) => t === 1 ? 1 : 2, M = (t) => t === 0 || t === 1 ? 1 : 2, w = (t) => t === 0 ? 1 : t % 10 == 1 && t % 100 != 11 ? 2 : 3, F = (t) => t === 1 || t == 11 ? 1 : t === 2 || t === 12 ? 2 : t >= 3 && t <= 19 ? 3 : 4, I = (t) => t === 1 ? 1 : t === 0 || t % 100 > 0 && t % 100 < 20 ? 2 : 3, _ = (t) => t % 10 === 1 && t % 100 !== 11 ? 1 : t % 10 < 2 || t % 100 >= 10 && t % 100 < 20 ? 2 : 3, x = (t) => t % 10 === 1 && t % 100 !== 11 ? 1 : t % 10 >= 2 && t % 10 <= 4 && (t % 100 < 10 || t % 100 >= 20) ? 2 : 3, h = (t) => t === 1 ? 1 : t >= 2 && t <= 4 ? 2 : 3, W = (t) => t === 1 ? 1 : t % 10 >= 2 && t % 10 <= 4 && (t % 100 < 12 || t % 100 > 14) ? 2 : 3, $ = (t) => t % 100 === 1 ? 1 : t % 100 === 2 ? 2 : t % 100 === 3 || t % 100 === 4 ? 3 : 4, q = (t) => t === 1 ? 1 : t === 2 ? 2 : t >= 3 && t <= 6 ? 3 : t >= 7 && t <= 10 ? 4 : 5, z = (t) => t === 1 ? 1 : t === 2 ? 2 : t % 100 >= 3 && t % 100 <= 10 ? 3 : t % 100 >= 11 ? 4 : t != 0 ? 5 : 6, B = (t) => t === 1 ? 1 : t === 0 || t % 100 >= 1 && t % 100 < 11 ? 2 : t % 100 > 10 && t % 100 < 20 ? 3 : 4, C = (t) => t % 10 === 1 ? 1 : t % 10 === 2 ? 2 : 3, H = (t) => t % 10 === 1 && t % 100 != 11 ? 1 : 2, R = {
23
+ 0: E,
24
+ 1: K,
25
+ 2: M,
26
+ 3: w,
27
+ 4: F,
28
+ 5: I,
29
+ 6: _,
30
+ 7: x,
31
+ 8: h,
32
+ 9: W,
33
+ 10: $,
34
+ 11: q,
35
+ 12: z,
36
+ 13: B,
37
+ 14: C,
38
+ 15: H
39
+ }, U = T(
40
+ "translator",
41
+ () => {
42
+ const t = "plural", u = s(""), o = s({}), n = s({
43
+ name: "",
44
+ regional: "",
45
+ authors: [],
46
+ plural_rule: 0,
47
+ dates: ""
48
+ });
49
+ async function g() {
50
+ j.get("/api/dictionary").then((r) => {
51
+ u.value = r.data.identifier, n.value = r.data.config, o.value = r.data.dictionary;
52
+ });
53
+ }
54
+ function c(r, e = {}) {
55
+ const { message: i, placeholders: a } = A(
56
+ r,
57
+ e
58
+ );
59
+ return e = a, S(i, e);
60
+ }
61
+ function d(r, e = P.DATETIME_MED_WITH_WEEKDAY) {
62
+ const i = p(r);
63
+ return typeof e == "object" ? i.toLocaleString(e) : i.toFormat(e);
64
+ }
65
+ function p(r) {
66
+ return P.fromISO(r).setLocale(n.value.dates);
67
+ }
68
+ function A(r, e) {
69
+ if (o.value[r] !== void 0)
70
+ return { message: o.value[r], placeholders: e };
71
+ const i = o.value[r + ".@PLURAL"] || t;
72
+ let a = 1;
73
+ if (typeof e == "object" && e[i] !== void 0)
74
+ a = Number(e[i]);
75
+ else if (typeof e == "number" || typeof e == "string")
76
+ a = Number(e);
77
+ else if (o.value[r + ".@TRANSLATION"] !== void 0)
78
+ return { message: o.value[r + ".@TRANSLATION"], placeholders: e };
79
+ typeof e == "number" || typeof e == "string" ? e = { [i]: a } : typeof e == "object" && e[i] === void 0 && (e = { ...e, [i]: a });
80
+ const l = f(r, a);
81
+ return o.value[r + "." + l] !== void 0 ? { message: o.value[r + "." + l], placeholders: e } : o.value[r + "." + a] !== void 0 ? { message: o.value[r + "." + a], placeholders: e } : o.value[r + ".@TRANSLATION"] !== void 0 ? { message: o.value[r + ".@TRANSLATION"], placeholders: e } : { message: r, placeholders: e };
82
+ }
83
+ function S(r, e) {
84
+ typeof e != "object" && (e = { [t]: e });
85
+ for (const [i, a] of Object.entries(e))
86
+ if (typeof a == "string" && a.startsWith("&")) {
87
+ const l = Object.fromEntries(
88
+ Object.entries(e).filter(([y]) => y !== i)
89
+ );
90
+ e[i] = c(a.substring(1), l);
91
+ }
92
+ r = r.replace(/{{&(([^}]+[^a-z]))}}/g, (i, a) => c(a, e));
93
+ for (const [i, a] of Object.entries(e)) {
94
+ const l = new RegExp(`{{${i}}}`, "g");
95
+ r = r.replace(l, String(a));
96
+ }
97
+ return r;
98
+ }
99
+ function f(r, e) {
100
+ if (e === 0 && o.value[r + ".0"] !== void 0)
101
+ return 0;
102
+ const i = v(e);
103
+ if (o.value[r + "." + i] !== void 0)
104
+ return i;
105
+ for (let a = i; a >= 0; a--)
106
+ if (o.value[r + "." + a] !== void 0)
107
+ return a;
108
+ return null;
109
+ }
110
+ function v(r, e) {
111
+ const i = e ?? n.value.plural_rule;
112
+ if (i < 0 || i >= Object.keys(R).length)
113
+ throw new Error(`The rule number ${i} must be between 0 and 15`);
114
+ return R[i](r);
115
+ }
116
+ return {
117
+ dictionary: o,
118
+ load: g,
119
+ config: n,
120
+ identifier: u,
121
+ translate: c,
122
+ translateDate: d,
123
+ getPluralForm: v,
124
+ getDateTime: p
125
+ };
126
+ },
127
+ { persist: !0 }
128
+ ), Z = T("pageMeta", () => {
129
+ const t = L(), { translate: u } = U(), o = s(""), n = s(""), g = s([]), c = s(!1), d = s(!1);
130
+ function p() {
131
+ c.value = !1, d.value = !1;
132
+ const e = t.matched.filter(
133
+ (i) => i.meta.title !== void 0 && i.meta.title !== ""
134
+ ).map((i) => {
135
+ var a;
136
+ return {
137
+ label: ((a = i.meta) == null ? void 0 : a.title) || "",
138
+ to: i.path
139
+ };
140
+ });
141
+ e.unshift({
142
+ label: f.value,
143
+ to: "/"
144
+ }), g.value = e, o.value = t.meta.title || "", n.value = u(t.meta.description || "");
145
+ }
146
+ function A() {
147
+ document.title = v.value;
148
+ }
149
+ function S() {
150
+ const r = document.querySelector('head meta[name="description"]');
151
+ r == null || r.setAttribute("content", n.value);
152
+ }
153
+ const f = O(() => D().get("site.title") || ""), v = O(() => o.value ? u(o.value) + " | " + f.value : f.value);
154
+ return N(t, p, { immediate: !0 }), N(v, A, { immediate: !0 }), N(n, S, { immediate: !0 }), { breadcrumbs: g, title: o, description: n, hideBreadcrumbs: c, hideTitle: d };
155
+ }), k = T("alerts", {
156
+ state: () => ({
157
+ alerts: []
158
+ }),
159
+ actions: {
160
+ push(t) {
161
+ this.alerts.push(t);
162
+ },
163
+ pop() {
164
+ return this.alerts.pop();
165
+ },
166
+ shift() {
167
+ return this.alerts.shift();
168
+ },
169
+ clear() {
170
+ this.alerts = [];
171
+ }
172
+ }
173
+ });
174
+ export {
175
+ Z as a,
176
+ U as b,
177
+ k as c,
178
+ D as u
179
+ };
@@ -0,0 +1,68 @@
1
+ import { ref as l, watchEffect as S } from "vue";
2
+ import { u as f, c as A } from "./useAlertsStore-BnSfoOG2.js";
3
+ import u from "axios";
4
+ import "vue-router";
5
+ import { S as b } from "./severity-DwLpzIij.js";
6
+ const K = () => {
7
+ const e = l(h()), n = l(y()), a = l(d(e.value)), s = l(d(n.value));
8
+ function i() {
9
+ u.defaults.headers.post[e.value] = a.value, u.defaults.headers.post[n.value] = s.value, u.defaults.headers.put[e.value] = a.value, u.defaults.headers.put[n.value] = s.value, u.defaults.headers.delete[e.value] = a.value, u.defaults.headers.delete[n.value] = s.value, u.defaults.headers.patch[e.value] = a.value, u.defaults.headers.patch[n.value] = s.value;
10
+ }
11
+ async function g() {
12
+ const t = await u.get("/api/csrf");
13
+ v(t.headers);
14
+ }
15
+ function h() {
16
+ return f().get("csrf.name", "csrf") + "_name";
17
+ }
18
+ function y() {
19
+ return f().get("csrf.name", "csrf") + "_value";
20
+ }
21
+ function d(t) {
22
+ var o;
23
+ return ((o = document.querySelector("meta[name='" + t + "']")) == null ? void 0 : o.getAttribute("content")) ?? "";
24
+ }
25
+ function m(t, o) {
26
+ const c = document.querySelector("meta[name='" + t + "']");
27
+ if (c)
28
+ c.setAttribute("content", o);
29
+ else {
30
+ const r = document.createElement("meta");
31
+ r.setAttribute("name", t), r.setAttribute("content", o), document.head.appendChild(r);
32
+ }
33
+ }
34
+ function v(t) {
35
+ const o = f(), c = o.get("csrf.name", "csrf") + "-name", r = o.get("csrf.name", "csrf") + "-value";
36
+ c in t && (a.value = t[c]), r in t && (s.value = t[r]);
37
+ }
38
+ function p() {
39
+ return f().get("csrf.enabled", !0);
40
+ }
41
+ return S(() => {
42
+ p() && a.value !== "" && s.value !== "" && (m(e.value, a.value), m(n.value, s.value), i());
43
+ }), {
44
+ key_name: e,
45
+ key_value: n,
46
+ name: a,
47
+ token: s,
48
+ isEnabled: p,
49
+ updateFromHeaders: v,
50
+ fetchCsrfToken: g
51
+ };
52
+ }, _ = () => {
53
+ u.interceptors.response.use(
54
+ (e) => e,
55
+ (e) => {
56
+ var n, a, s;
57
+ return e.response.status !== 401 && A().push({
58
+ title: e.response.data.title ?? ((n = e.response) == null ? void 0 : n.statusText),
59
+ description: ((s = (a = e.response) == null ? void 0 : a.data) == null ? void 0 : s.description) ?? e.message,
60
+ style: b.Danger
61
+ }), Promise.reject(e);
62
+ }
63
+ );
64
+ };
65
+ export {
66
+ K as a,
67
+ _ as u
68
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ export default _default;