@wssto2/vue-core 0.13.1 → 0.15.0
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.
- package/CHANGELOG.md +35 -0
- package/README.md +2 -2
- package/bin/architecture/engine.mjs +11 -1
- package/bin/architecture/rules.mjs +95 -0
- package/bin/commands/check-architecture.mjs +8 -1
- package/bin/config.mjs +2 -0
- package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-DEzXovsY.js → AccessGate.vue_vue_type_script_setup_true_lang-BH3f0hda.js} +1 -1
- package/dist/{Activity-ChfxdvXf.js → Activity-MOAIv6s4.js} +5 -5
- package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-lPj9hPqV.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-Bsv5j5Z8.js} +1 -1
- package/dist/{Changes-BCa43_mO.js → Changes-Bu7D0dhY.js} +2 -2
- package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-C1GCvyZx.js → CollectionPage.vue_vue_type_script_setup_true_lang-D5HsYIck.js} +6 -6
- package/dist/{DataTable.vue_vue_type_script_setup_true_lang-B9r9M5Gt.js → DataTable.vue_vue_type_script_setup_true_lang-J3PhyJAS.js} +1 -1
- package/dist/{DateField.vue_vue_type_script_setup_true_lang-B5UUY1OO.js → DateField.vue_vue_type_script_setup_true_lang-CKKG4JEg.js} +2 -2
- package/dist/{DeadLetters-wFTqhISU.js → DeadLetters-DsujMnLG.js} +5 -5
- package/dist/FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js +428 -0
- package/dist/{FormView.vue_vue_type_script_setup_true_lang-DvbPEiNQ.js → FormView.vue_vue_type_script_setup_true_lang-Cfvh7rF6.js} +1 -1
- package/dist/{General-jW7u4MjH.js → General-Dswj1oXt.js} +7 -7
- package/dist/IncidentRecord-DcmqpziF.js +522 -0
- package/dist/{IncidentsList-yu0xSMrH.js → IncidentsList-BRNqHZdU.js} +6 -6
- package/dist/{NewRolePage-CQ5UVaHs.js → NewRolePage-dFLznJGH.js} +3 -3
- package/dist/{NumberField.vue_vue_type_script_setup_true_lang-YVgf5CP6.js → NumberField.vue_vue_type_script_setup_true_lang-U-_kcnGr.js} +1 -1
- package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-CWCt9_dM.js → PersonAccess.vue_vue_type_script_setup_true_lang-D3yp43o5.js} +4 -4
- package/dist/{ProfilePage-Ca3x3UAH.js → ProfilePage-BnHR3xGB.js} +10 -10
- package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-Do_ATJwT.js → RecordHeader.vue_vue_type_script_setup_true_lang-SDgLjwEI.js} +1 -1
- package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-Coz91xht.js → ResourcePage.vue_vue_type_script_setup_true_lang-DRC3h71-.js} +1 -1
- package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-d_aaeXTT.js → RoleEditor.vue_vue_type_script_setup_true_lang-DNF9wzE9.js} +4 -4
- package/dist/{RolePage-BUj1w1m1.js → RolePage-BtM2rFLm.js} +7 -7
- package/dist/{RolesPage-NKzBUsrM.js → RolesPage-MO1gAfdT.js} +4 -4
- package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-DfKEhTFv.js → SectionNavigator.vue_vue_type_script_setup_true_lang-TMdsmYAg.js} +2 -2
- package/dist/ServiceAccountDialog.vue_vue_type_script_setup_true_lang-Bo3phlqB.js +127 -0
- package/dist/{ServiceAccountRecord-ClbyeLhL.js → ServiceAccountRecord-C1M-dcju.js} +10 -10
- package/dist/{ServiceAccountsList-B2VDnYxD.js → ServiceAccountsList-zfyS2WJB.js} +6 -6
- package/dist/{Sessions-BjkciyHH.js → Sessions-BYBUSqHI.js} +3 -3
- package/dist/{SettingsPage-Csb14qsx.js → SettingsPage-C9Kp2ddX.js} +9 -9
- package/dist/{SignIn-DPFMv4C7.js → SignIn-HBYLSZ1M.js} +5 -5
- package/dist/{SignInPage-DukoFqkt.js → SignInPage-CEoz3fWE.js} +3 -3
- package/dist/{SignIns-DvdpNkiS.js → SignIns-BAz7V4vy.js} +2 -2
- package/dist/{TimeField.vue_vue_type_script_setup_true_lang-DpDXHH7u.js → TimeField.vue_vue_type_script_setup_true_lang-BDlTAMsh.js} +2 -2
- package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-DlEUKWra.js → Timestamp.vue_vue_type_script_setup_true_lang-jCXYFLtq.js} +1 -1
- package/dist/{UserRecord-B9SeSWQh.js → UserRecord-DkyhGma-.js} +9 -9
- package/dist/{UsersList-CREG8q3l.js → UsersList-CsW-jU0m.js} +4 -4
- package/dist/access/RestrictedPanel.vue.d.ts +20 -0
- package/dist/access/index.d.ts +1 -0
- package/dist/access/index.js +91 -31
- package/dist/app/application.d.ts +2 -2
- package/dist/app/current.d.ts +6 -0
- package/dist/app/index.d.ts +1 -1
- package/dist/app/index.js +17 -16
- package/dist/{application-DomS6sbx.js → application-2gHiwAVy.js} +6 -6
- package/dist/client/client.d.ts +6 -0
- package/dist/client/index.js +1 -1
- package/dist/client-Do8v1I5l.js +193 -0
- package/dist/collection/index.js +6 -6
- package/dist/config/index.d.ts +21 -1
- package/dist/content/StatSummary.vue.d.ts +40 -0
- package/dist/content/index.d.ts +1 -0
- package/dist/content/index.js +245 -176
- package/dist/{contributions-obnyn03x.js → contributions-9CPT-Z5v.js} +1 -1
- package/dist/{current-B0lHKTWr.js → current-CslcEPXp.js} +8 -4
- package/dist/eslint/index.js +2 -2
- package/dist/form/index.js +16 -16
- package/dist/form/useForm.d.ts +1 -1
- package/dist/format/format.d.ts +5 -2
- package/dist/format/index.js +1 -1
- package/dist/format-Cp1h0vsC.js +125 -0
- package/dist/{guards-DGcSfTEh.js → guards-6fJxfUtk.js} +1 -1
- package/dist/{http-DOEfFCDA.js → http-D6qOS6xs.js} +1 -1
- package/dist/i18n/index.d.ts +5 -1
- package/dist/i18n/index.js +21 -20
- package/dist/i18n/serverMessages.d.ts +15 -1
- package/dist/identity/index.js +2 -2
- package/dist/incidents/Occurrences.vue.d.ts +9 -0
- package/dist/incidents/api.d.ts +11 -2
- package/dist/incidents/index.js +1 -1
- package/dist/{index-DZikGJ8L.js → index--AF_DNhE.js} +22 -22
- package/dist/{index-D_yyd4C2.js → index-DYva-K_4.js} +5 -5
- package/dist/{index-Be9Q1PB_.js → index-Dlu-PA4W.js} +104 -98
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/modules/incident/entities.d.ts +19 -0
- package/dist/modules/incident/routes.d.ts +4 -1
- package/dist/{navigation-CctcxT51.js → navigation-DMJ6akat.js} +1 -1
- package/dist/{neighbors-Csfan8Ho.js → neighbors-DrEahe7B.js} +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/onboarding/index.js +1 -1
- package/dist/page/index.js +3 -3
- package/dist/phone/index.d.ts +1 -1
- package/dist/phone/index.js +154 -142
- package/dist/phone/phone.d.ts +6 -0
- package/dist/platform/index.js +3 -3
- package/dist/{platform-DtISOEt7.js → platform-ORzRR3Tw.js} +1 -1
- package/dist/resource/index.js +2 -2
- package/dist/router/index.js +3 -3
- package/dist/{rowLayout-y1IB_h2r.js → rowLayout-Ohh5ng1u.js} +2 -2
- package/dist/{sections-fkW_IJLc.js → sections-DI_JhgQG.js} +1 -1
- package/dist/serverMessages-Ce8-MK4e.js +30 -0
- package/dist/shell/index.js +4 -4
- package/dist/{state-CXMexi0l.js → state-QDaxntgR.js} +1 -1
- package/dist/styles.css +1 -1
- package/dist/testing/index.js +3 -3
- package/dist/{useCommand-Ch_nx1AQ.js → useCommand-BvcU3AlW.js} +1 -1
- package/dist/{useGroupSheet-CPjHydQV.js → useGroupSheet-BGIntPKD.js} +1 -1
- package/dist/{usePreferences-B8LIZp_f.js → usePreferences-BfMXVbSO.js} +1 -1
- package/dist/{useRecordDialog-DdkauXnU.js → useRecordDialog-q_BNXdb7.js} +1 -1
- package/dist/{useResourceForm-Dl6YFYyz.js → useResourceForm-C1S628UI.js} +1 -1
- package/dist/{useTypedEntry-DKs8I1yP.js → useTypedEntry-tttjrClq.js} +1 -1
- package/package.json +2 -2
- package/dist/FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js +0 -427
- package/dist/IncidentRecord-zTemLz2R.js +0 -404
- package/dist/ServiceAccountDialog.vue_vue_type_script_setup_true_lang-4nbhEpv_.js +0 -127
- package/dist/client-Dg303Pmc.js +0 -193
- package/dist/format-DoKs29bZ.js +0 -118
- package/dist/serverMessages-Ddghrewh.js +0 -25
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
let t = null;
|
|
2
|
-
function
|
|
2
|
+
function r(e) {
|
|
3
3
|
return t = e, () => {
|
|
4
4
|
t === e && (t = null);
|
|
5
5
|
};
|
|
6
6
|
}
|
|
7
|
-
function
|
|
7
|
+
function n() {
|
|
8
8
|
if (!t)
|
|
9
9
|
throw new Error(
|
|
10
10
|
"There is no application yet: currentApplication() returns the one createApplication() made. Call it when the code runs (not while the module loads), after main.ts created the application; in a unit test call createTestApplication() from @wssto2/vue-core/testing first and dispose() it afterwards."
|
|
11
11
|
);
|
|
12
12
|
return t;
|
|
13
13
|
}
|
|
14
|
+
function i() {
|
|
15
|
+
return n().platform.http;
|
|
16
|
+
}
|
|
14
17
|
export {
|
|
15
|
-
|
|
16
|
-
r as
|
|
18
|
+
i as a,
|
|
19
|
+
r as b,
|
|
20
|
+
n as c
|
|
17
21
|
};
|
package/dist/eslint/index.js
CHANGED
|
@@ -76,8 +76,8 @@ function b({ typed: e = !1, tsconfigRootDir: n, ignores: i = [], rules: p = {} }
|
|
|
76
76
|
...p
|
|
77
77
|
}
|
|
78
78
|
},
|
|
79
|
-
// Test
|
|
80
|
-
{ files: ["**/*.test.ts"], languageOptions: { globals: r.vitest }, rules: { "vue/require-prop-types": "off", "vue/one-component-per-file": "off" } }
|
|
79
|
+
// Test files (named *.test.ts or in a tests/ folder) define stub components inline, several per file, with untyped prop lists on purpose.
|
|
80
|
+
{ files: ["**/*.test.ts", "tests/**/*.{ts,vue}"], languageOptions: { globals: r.vitest }, rules: { "vue/require-prop-types": "off", "vue/one-component-per-file": "off" } }
|
|
81
81
|
];
|
|
82
82
|
}
|
|
83
83
|
export {
|
package/dist/form/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { a as ot, _ as We, c as nt, f as st } from "../FormGroup.vue_vue_type_script_setup_true_lang-
|
|
2
|
-
import { E as Bo, b as Lo, d as To, p as qo, r as zo, u as Vo, e as Do, g as Ro } from "../FormGroup.vue_vue_type_script_setup_true_lang-
|
|
3
|
-
import { f as qe } from "../useCommand-
|
|
4
|
-
import { _ as Io, a as jo, u as Oo } from "../useCommand-
|
|
1
|
+
import { a as ot, _ as We, c as nt, f as st } from "../FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js";
|
|
2
|
+
import { E as Bo, b as Lo, d as To, p as qo, r as zo, u as Vo, e as Do, g as Ro } from "../FormGroup.vue_vue_type_script_setup_true_lang-CTVuhEbW.js";
|
|
3
|
+
import { f as qe } from "../useCommand-BvcU3AlW.js";
|
|
4
|
+
import { _ as Io, a as jo, u as Oo } from "../useCommand-BvcU3AlW.js";
|
|
5
5
|
import { ref as P, computed as h, defineComponent as G, openBlock as d, createBlock as R, mergeProps as J, unref as s, createSlots as Z, withCtx as f, createElementVNode as p, normalizeClass as j, createElementBlock as y, Fragment as de, renderList as $e, createVNode as I, createCommentVNode as q, toDisplayString as C, renderSlot as S, mergeDefaults as ce, useModel as re, useId as Re, withKeys as Se, withModifiers as pe, createTextVNode as H, mergeModels as le, useTemplateRef as U, shallowRef as Ne, watch as ge, normalizeProps as ze, guardReactiveProps as Ve, nextTick as xe, provide as rt, inject as Je, onBeforeUnmount as Ze, getCurrentScope as it, onScopeDispose as ut, toValue as dt, shallowReactive as Ae, normalizeStyle as ct, resolveDynamicComponent as ft } from "vue";
|
|
6
6
|
import { a as Xe } from "../leaveGuard-Cc8yeLxM.js";
|
|
7
7
|
import { M as No, c as Ao, i as Go, l as Ko, u as Po } from "../leaveGuard-Cc8yeLxM.js";
|
|
8
8
|
import { _ as Uo } from "../LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CIwW7y4j.js";
|
|
9
|
-
import { u as Wo } from "../useResourceForm-
|
|
9
|
+
import { u as Wo } from "../useResourceForm-C1S628UI.js";
|
|
10
10
|
import { _ as X } from "../Icon.vue_vue_type_script_lang-BhhsFYwp.js";
|
|
11
11
|
import { u as Qe, _ as ye, f as fe, b as me, a as et, e as Me, g as mt, j as vt, k as pt } from "../options-B48UiYsG.js";
|
|
12
12
|
import { d as Zo, h as Xo, m as Qo } from "../options-B48UiYsG.js";
|
|
@@ -16,32 +16,32 @@ import { a as gt } from "../TextField.vue_vue_type_script_setup_true_lang-CWIeeZ
|
|
|
16
16
|
import { _ as tn } from "../TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
|
|
17
17
|
import { u as yt, l as ht } from "../suggestions-q_v3M7G6.js";
|
|
18
18
|
import { r as ln } from "../suggestions-q_v3M7G6.js";
|
|
19
|
-
import { s as _e, u as Ge, i as kt, o as Ce, e as Fe, k as xt, _ as wt, l as $t, c as _t, b as Ct, t as Te, g as St, q as Ft } from "../useTypedEntry-
|
|
20
|
-
import { u as Bt, a as Lt, s as Tt } from "../DateField.vue_vue_type_script_setup_true_lang-
|
|
21
|
-
import { _ as nn } from "../DateField.vue_vue_type_script_setup_true_lang-
|
|
19
|
+
import { s as _e, u as Ge, i as kt, o as Ce, e as Fe, k as xt, _ as wt, l as $t, c as _t, b as Ct, t as Te, g as St, q as Ft } from "../useTypedEntry-tttjrClq.js";
|
|
20
|
+
import { u as Bt, a as Lt, s as Tt } from "../DateField.vue_vue_type_script_setup_true_lang-CKKG4JEg.js";
|
|
21
|
+
import { _ as nn } from "../DateField.vue_vue_type_script_setup_true_lang-CKKG4JEg.js";
|
|
22
22
|
import { _ as tt } from "../DateButton.vue_vue_type_script_setup_true_lang-CovKG5lN.js";
|
|
23
|
-
import { u as at } from "../format-
|
|
23
|
+
import { u as at } from "../format-Cp1h0vsC.js";
|
|
24
24
|
import { u as Ie } from "../mediaQuery-CygcXmFW.js";
|
|
25
25
|
import { _ as je } from "../Popover.vue_vue_type_script_setup_true_lang-C20Hf3Hl.js";
|
|
26
|
-
import { u as qt } from "../TimeField.vue_vue_type_script_setup_true_lang-
|
|
27
|
-
import { _ as rn } from "../TimeField.vue_vue_type_script_setup_true_lang-
|
|
26
|
+
import { u as qt } from "../TimeField.vue_vue_type_script_setup_true_lang-BDlTAMsh.js";
|
|
27
|
+
import { _ as rn } from "../TimeField.vue_vue_type_script_setup_true_lang-BDlTAMsh.js";
|
|
28
28
|
import { _ as be } from "../Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
|
|
29
|
-
import { _ as dn } from "../FormView.vue_vue_type_script_setup_true_lang-
|
|
29
|
+
import { _ as dn } from "../FormView.vue_vue_type_script_setup_true_lang-Cfvh7rF6.js";
|
|
30
30
|
import { a as zt } from "../environment-Dva-SG8D.js";
|
|
31
|
-
import { _ as Vt } from "../NumberField.vue_vue_type_script_setup_true_lang-
|
|
31
|
+
import { _ as Vt } from "../NumberField.vue_vue_type_script_setup_true_lang-U-_kcnGr.js";
|
|
32
32
|
import { _ as Dt } from "../Sheet.vue_vue_type_script_setup_true_lang-B91aRD_y.js";
|
|
33
33
|
import { b as Rt, a as Ke } from "../SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js";
|
|
34
34
|
import { _ as fn, u as mn } from "../SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js";
|
|
35
|
-
import { _ as pn, b as bn, a as gn, u as yn } from "../useGroupSheet-
|
|
35
|
+
import { _ as pn, b as bn, a as gn, u as yn } from "../useGroupSheet-BGIntPKD.js";
|
|
36
36
|
import { _ as Pe } from "../PhotoViewer.vue_vue_type_script_setup_true_lang-Bqxj_uJ5.js";
|
|
37
37
|
import { _ as kn } from "../SegmentedField.vue_vue_type_script_setup_true_lang-zv_AxpBn.js";
|
|
38
38
|
import { _ as wn } from "../SwitchField.vue_vue_type_script_setup_true_lang-Ds4q0bbl.js";
|
|
39
39
|
import { _ as _n } from "../TextareaField.vue_vue_type_script_setup_true_lang-D2j4s96s.js";
|
|
40
|
-
import { _ as Mt } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-
|
|
40
|
+
import { _ as Mt } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-Bsv5j5Z8.js";
|
|
41
41
|
import { _ as It, a as jt } from "../SectionList.vue_vue_type_script_setup_true_lang-DR0_NsqC.js";
|
|
42
42
|
import { p as Ot } from "../sectionIndex-BS0ic5W7.js";
|
|
43
43
|
import { u as Et } from "../useSaveChrome-7huA3FzR.js";
|
|
44
|
-
import { u as Sn } from "../useRecordDialog-
|
|
44
|
+
import { u as Sn } from "../useRecordDialog-q_BNXdb7.js";
|
|
45
45
|
import { matchedRouteKey as Nt, onBeforeRouteLeave as At } from "vue-router";
|
|
46
46
|
function Gt(l) {
|
|
47
47
|
const a = P(null);
|
package/dist/form/useForm.d.ts
CHANGED
|
@@ -80,7 +80,7 @@ export interface FormOptions<Values extends object, Output = Values> {
|
|
|
80
80
|
readonly defaults: Values | (() => Values);
|
|
81
81
|
/** The app's schema (anything with Zod's `safeParse`). Without one the server is the only validator. */
|
|
82
82
|
readonly validator?: FormValidator<Output>;
|
|
83
|
-
/** A field message into a sentence, for a form that says it differently from the rest of the app. Default: the application's (`createApplication({ describeFieldError })`), else as sent. */
|
|
83
|
+
/** A field message into a sentence, for a form that says it differently from the rest of the app. Default: the application's (`createApplication({ describeFieldError })`), else the library's words for go-core's validator keys (`useServerMessages`), other text as sent. */
|
|
84
84
|
readonly describeFieldError?: (message: string, field: string) => string;
|
|
85
85
|
/** The draft's name for a field the server names, given the whole dotted path (`tax_id` is `taxId`, `lines.0.unit_price` is `lines.0.unitPrice`). Default: the same name. */
|
|
86
86
|
readonly serverField?: (field: string) => string;
|
package/dist/format/format.d.ts
CHANGED
|
@@ -54,8 +54,11 @@ export interface MoneyOptions {
|
|
|
54
54
|
export interface Formatting {
|
|
55
55
|
/** The locale the next call formats for. */
|
|
56
56
|
readonly locale: string;
|
|
57
|
-
/**
|
|
58
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Numeric by default: `30. 09. 2026.` in hr, `09/30/2026` in en. With `options` it is `Intl.DateTimeFormat`'s for the active locale
|
|
59
|
+
* (`{ month: "long", year: "numeric" }`; the application's `datePattern` does not apply), and in Bosnian the month words are Bosnian.
|
|
60
|
+
*/
|
|
61
|
+
date(value: DateInput, options?: Intl.DateTimeFormatOptions): string;
|
|
59
62
|
dateTime(value: DateInput): string;
|
|
60
63
|
time(value: DateInput): string;
|
|
61
64
|
number(value: number | null | undefined, options?: Intl.NumberFormatOptions): string;
|
package/dist/format/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as o, f as s, i, a as l, t as n, u as g } from "../format-
|
|
1
|
+
import { c as o, f as s, i, a as l, t as n, u as g } from "../format-Cp1h0vsC.js";
|
|
2
2
|
function e(a) {
|
|
3
3
|
return a.normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[đĐ]/g, "d").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
4
4
|
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { d as x } from "./context-Ch1r4fdN.js";
|
|
2
|
+
const E = { bs: "sr-Latn-BA" }, M = (e, r = {}) => r[e] ?? E[e] ?? e, L = /^(\d{4})-(\d{2})-(\d{2})$/, S = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}/, A = ["0000-00-00", "0001-01-01", "1970-01-01"];
|
|
3
|
+
function b(e) {
|
|
4
|
+
if (e == null || e === "") return null;
|
|
5
|
+
let r;
|
|
6
|
+
if (e instanceof Date) r = e;
|
|
7
|
+
else if (typeof e == "number") r = new Date(e);
|
|
8
|
+
else {
|
|
9
|
+
if (A.some((o) => e.startsWith(o))) return null;
|
|
10
|
+
const c = L.exec(e);
|
|
11
|
+
c ? r = new Date(Number(c[1]), Number(c[2]) - 1, Number(c[3])) : r = new Date(S.test(e) ? e.replace(" ", "T") : e);
|
|
12
|
+
}
|
|
13
|
+
return Number.isNaN(r.getTime()) || r.getTime() <= 0 ? null : r;
|
|
14
|
+
}
|
|
15
|
+
const F = { year: "numeric", month: "2-digit", day: "2-digit" }, T = { hour: "2-digit", minute: "2-digit" }, h = [
|
|
16
|
+
["year", 31536e3],
|
|
17
|
+
["month", 2592e3],
|
|
18
|
+
["week", 604800],
|
|
19
|
+
["day", 86400],
|
|
20
|
+
["hour", 3600],
|
|
21
|
+
["minute", 60],
|
|
22
|
+
["second", 1]
|
|
23
|
+
], Y = "sr-Latn-BA", N = ["januar", "februar", "mart", "april", "maj", "juni", "juli", "august", "septembar", "oktobar", "novembar", "decembar"], j = ["januara", "februara", "marta", "aprila", "maja", "juna", "jula", "augusta", "septembra", "oktobra", "novembra", "decembra"];
|
|
24
|
+
function O(e, r, c) {
|
|
25
|
+
const o = new Intl.DateTimeFormat(r, c);
|
|
26
|
+
if (r !== Y || c.month !== "long" && c.month !== "short") return o.format(e);
|
|
27
|
+
const d = e.getMonth();
|
|
28
|
+
return o.formatToParts(e).map((l) => l.type !== "month" ? l.value : c.month === "short" ? N[d].slice(0, 3) : (c.day === void 0 ? N : j)[d]).join("");
|
|
29
|
+
}
|
|
30
|
+
const D = (e, r = 2) => String(e).padStart(r, "0");
|
|
31
|
+
function $(e, r, { group: c, decimal: o }) {
|
|
32
|
+
const d = r?.minimumFractionDigits ?? 0, l = Math.max(d, r?.maximumFractionDigits ?? 3), [g = "", a = ""] = e.toFixed(l).split(".");
|
|
33
|
+
let i = a;
|
|
34
|
+
for (; i.length > d && i.endsWith("0"); ) i = i.slice(0, -1);
|
|
35
|
+
const t = r?.useGrouping === !1 ? g : g.replace(/\B(?=(\d{3})+(?!\d))/g, c);
|
|
36
|
+
return i ? `${t}${o}${i}` : t;
|
|
37
|
+
}
|
|
38
|
+
function H(e = {}) {
|
|
39
|
+
const r = /* @__PURE__ */ new Map(), c = (t, n) => {
|
|
40
|
+
let m = r.get(t);
|
|
41
|
+
return m || (m = n(), r.set(t, m)), m;
|
|
42
|
+
}, o = (t) => M(t, e.intlLocale), d = (t, n) => c(`d|${t}|${JSON.stringify(n)}`, () => new Intl.DateTimeFormat(o(t), n)), l = (t, n) => c(`n|${t}|${JSON.stringify(n ?? {})}`, () => new Intl.NumberFormat(o(t), n)), { datePattern: g, numberSymbols: a } = e, i = (t, n) => n.replace(
|
|
43
|
+
/YYYY|MM|DD|HH|mm/g,
|
|
44
|
+
(m) => m === "YYYY" ? D(t.getFullYear(), 4) : D(m === "MM" ? t.getMonth() + 1 : m === "DD" ? t.getDate() : m === "HH" ? t.getHours() : t.getMinutes())
|
|
45
|
+
);
|
|
46
|
+
return {
|
|
47
|
+
date: (t, n) => g?.[n] ? i(t, g[n]) : d(n, F).format(t),
|
|
48
|
+
dateTime: (t, n) => g?.[n] ? i(t, `${g[n]} HH:mm`) : d(n, { ...F, ...T }).format(t),
|
|
49
|
+
time: (t, n) => d(n, T).format(t),
|
|
50
|
+
number: (t, n, m) => a && (m?.style ?? "decimal") === "decimal" ? $(t, m, a) : l(n, m).format(t),
|
|
51
|
+
money(t, n, m, s) {
|
|
52
|
+
const u = c(`m|${m}|${n}|${JSON.stringify(s ?? {})}`, () => new Intl.NumberFormat(o(m), { ...s, style: "currency", currency: n }));
|
|
53
|
+
if (!a) return u.format(t);
|
|
54
|
+
const y = u.formatToParts(t).find((w) => w.type === "currency")?.value ?? n, f = s?.maximumFractionDigits ?? u.resolvedOptions().maximumFractionDigits ?? 2;
|
|
55
|
+
return `${$(t, { minimumFractionDigits: f, maximumFractionDigits: f }, a)} ${y}`;
|
|
56
|
+
},
|
|
57
|
+
relative(t, n, m) {
|
|
58
|
+
const s = Math.trunc((t.getTime() - m.getTime()) / 1e3), [u, y] = h.find(([, f]) => Math.abs(s) >= f) ?? h[h.length - 1];
|
|
59
|
+
return c(`r|${n}`, () => new Intl.RelativeTimeFormat(o(n), { numeric: "auto" })).format(Math.trunc(s / y), u);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const I = (e, r) => e.getFullYear() === r.getFullYear() && e.getMonth() === r.getMonth() && e.getDate() === r.getDate();
|
|
64
|
+
function B(e) {
|
|
65
|
+
const r = { ...H(e), ...e.formatters }, c = (a) => typeof a == "number" && Number.isFinite(a), o = () => M(e.locale(), e.intlLocale), d = (a) => {
|
|
66
|
+
const i = b(a);
|
|
67
|
+
return i ? r.time(i, e.locale()) : "";
|
|
68
|
+
}, l = (a, i) => {
|
|
69
|
+
const t = b(a);
|
|
70
|
+
return t ? i ? O(t, o(), i) : r.date(t, e.locale()) : "";
|
|
71
|
+
}, g = (a, { inSentence: i = !1, now: t = /* @__PURE__ */ new Date() } = {}) => {
|
|
72
|
+
const n = b(a);
|
|
73
|
+
if (!n || !e.translate) return l(a);
|
|
74
|
+
const m = new Date(t.getFullYear(), t.getMonth(), t.getDate() - 1), s = I(n, t) ? "core.activity.today" : I(n, m) ? "core.activity.yesterday" : null;
|
|
75
|
+
if (!s) return l(a);
|
|
76
|
+
const u = e.translate(s);
|
|
77
|
+
return i ? u.toLocaleLowerCase(o()) : u.charAt(0).toLocaleUpperCase(o()) + u.slice(1);
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
get locale() {
|
|
81
|
+
return e.locale();
|
|
82
|
+
},
|
|
83
|
+
get intlLocale() {
|
|
84
|
+
return o();
|
|
85
|
+
},
|
|
86
|
+
date: l,
|
|
87
|
+
dateTime: (a) => {
|
|
88
|
+
const i = b(a);
|
|
89
|
+
return i ? r.dateTime(i, e.locale()) : "";
|
|
90
|
+
},
|
|
91
|
+
time: d,
|
|
92
|
+
number: (a, i) => c(a) ? r.number(a, e.locale(), i) : e.emptyNumber ?? "",
|
|
93
|
+
get currencySymbol() {
|
|
94
|
+
return e.currencySymbol ?? "";
|
|
95
|
+
},
|
|
96
|
+
money: (a, { currency: i, decimals: t, whole: n, symbol: m = !0 } = {}) => {
|
|
97
|
+
if (!c(a)) return "";
|
|
98
|
+
const s = a, u = n && Number.isInteger(s) ? 0 : t, y = u === void 0 ? void 0 : { minimumFractionDigits: u, maximumFractionDigits: u };
|
|
99
|
+
if (i && m) return r.money(s, i, e.locale(), y);
|
|
100
|
+
const f = r.number(s, e.locale(), y ?? { minimumFractionDigits: 2, maximumFractionDigits: 2 });
|
|
101
|
+
return m && !i && e.currencySymbol ? `${f} ${e.currencySymbol}` : f;
|
|
102
|
+
},
|
|
103
|
+
relative: (a, i = /* @__PURE__ */ new Date()) => {
|
|
104
|
+
const t = b(a);
|
|
105
|
+
return t ? r.relative(t, e.locale(), i) : "";
|
|
106
|
+
},
|
|
107
|
+
day: g,
|
|
108
|
+
dayTime: (a, i) => {
|
|
109
|
+
const t = g(a, i);
|
|
110
|
+
return t ? `${t} · ${d(a)}` : "";
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
const [_, P] = x("vue-core.formatting");
|
|
115
|
+
function V(e, r) {
|
|
116
|
+
e.provide(_, r);
|
|
117
|
+
}
|
|
118
|
+
export {
|
|
119
|
+
H as a,
|
|
120
|
+
B as c,
|
|
121
|
+
_ as f,
|
|
122
|
+
V as i,
|
|
123
|
+
b as t,
|
|
124
|
+
P as u
|
|
125
|
+
};
|
package/dist/i18n/index.d.ts
CHANGED
|
@@ -214,6 +214,9 @@ export type CoreMessages = {
|
|
|
214
214
|
no_access: {
|
|
215
215
|
title: string;
|
|
216
216
|
body: string;
|
|
217
|
+
/** Shown before the address `RestrictedPanel` is given to write to. */
|
|
218
|
+
contact: string;
|
|
219
|
+
back: string;
|
|
217
220
|
};
|
|
218
221
|
shortcuts: {
|
|
219
222
|
title: string;
|
|
@@ -398,7 +401,8 @@ export { localeMessages } from "./messages";
|
|
|
398
401
|
export type { LocaleMessagesOptions, MessageLoader, MessageNamespace, Messages } from "./messages";
|
|
399
402
|
export { createMessageRuntime } from "./runtime";
|
|
400
403
|
export type { MessageFailure, MessageRuntime, MessageRuntimeOptions, MessageTarget } from "./runtime";
|
|
401
|
-
export { useServerMessages } from "./serverMessages";
|
|
404
|
+
export { fieldMessageWith, useServerMessages } from "./serverMessages";
|
|
405
|
+
export type { ServerMessagesOptions } from "./serverMessages";
|
|
402
406
|
export { appErrorDescriberKey, appFieldErrorDescriberKey, useDescribeError } from "./describeError";
|
|
403
407
|
export type { AppErrorDescriber, AppFieldErrorDescriber, DescribeError, DescribeErrorOptions } from "./describeError";
|
|
404
408
|
export { slavicPluralRule, slavicPluralRules, slovenianPluralRule } from "./plural";
|