@antelopejs/dms 0.7.10 → 0.7.12
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 +29 -0
- package/dist/test/unit/interfaces/dms-base/block-parity-options.test.js +7 -0
- package/dist/test/unit/interfaces/dms-base/block-parity-options.test.js.map +1 -1
- package/dist/test/unit/interfaces/dms-base/table-view-source-reorder.test.js +10 -0
- package/dist/test/unit/interfaces/dms-base/table-view-source-reorder.test.js.map +1 -1
- package/frontend-vue/layers/dms-core/app/build/composables/page/usePageRecordLabel.ts +7 -29
- package/frontend-vue/layers/dms-core/app/composables/page/usePageRecordLabel.ts +53 -0
- package/frontend-vue/layers/dms-core/app/composables/user/useRegionalFormat.ts +73 -20
- package/frontend-vue/layers/dms-core/app/utils/formatter.ts +37 -1
- package/frontend-vue/layers/dms-core/app/utils/regional.ts +20 -0
- package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardHeader.vue +1 -1
- package/frontend-vue/layers/dms-layout/app/middleware/module-routing.global.ts +34 -10
- package/frontend-vue/layers/dms-ui/app/build/components/table-view/LiveHoldBanner.vue +69 -17
- package/frontend-vue/layers/dms-ui/app/build/composables/chart/apexTheme.ts +1 -1
- package/frontend-vue/layers/dms-ui/app/build/composables/form/enclosingForm.ts +38 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/global/searchShortcuts.ts +7 -16
- package/frontend-vue/layers/dms-ui/app/build/composables/live/liveNotes.ts +54 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/page/blockAnchors.ts +50 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableLiveHold.ts +78 -35
- package/frontend-vue/layers/dms-ui/app/build/utils/numberAdjustment.ts +60 -0
- package/frontend-vue/layers/dms-ui/app/components/RecursiveComponent.vue +11 -0
- package/frontend-vue/layers/dms-ui/app/components/activity/ActivityItem.vue +17 -9
- package/frontend-vue/layers/dms-ui/app/components/activity-feed/ActivityFeed.vue +58 -7
- package/frontend-vue/layers/dms-ui/app/components/blocks/CodeBlock.vue +5 -1
- package/frontend-vue/layers/dms-ui/app/components/blocks/EmptyStateBlock.vue +2 -1
- package/frontend-vue/layers/dms-ui/app/components/blocks/LiveToggleBlock.vue +7 -20
- package/frontend-vue/layers/dms-ui/app/components/chart/Chart.vue +3 -0
- package/frontend-vue/layers/dms-ui/app/components/chart/ChartCard.vue +5 -1
- package/frontend-vue/layers/dms-ui/app/components/code-snippet/CodeSnippet.vue +51 -13
- package/frontend-vue/layers/dms-ui/app/components/form/Form.vue +38 -1
- package/frontend-vue/layers/dms-ui/app/components/form/components/InputNumber.vue +58 -3
- package/frontend-vue/layers/dms-ui/app/components/guard/Guard.vue +3 -2
- package/frontend-vue/layers/dms-ui/app/components/tab/Tab.vue +19 -1
- package/frontend-vue/layers/dms-ui/app/components/table-view/TableView.vue +9 -1
- package/frontend-vue/layers/dms-ui/app/composables/chart/types.ts +3 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/useApexChart.types.ts +2 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/types/validation.ts +10 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/useEnclosingForm.ts +61 -0
- package/frontend-vue/layers/dms-ui/app/composables/global/searchShortcuts.ts +24 -0
- package/frontend-vue/layers/dms-ui/app/composables/live/usePageLive.ts +3 -2
- package/frontend-vue/layers/dms-ui/app/composables/live/usePageLiveRefresh.ts +103 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/types/composable.ts +1 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/types/item.ts +8 -1
- package/frontend-vue/layers/dms-ui/app/composables/tab/useTab.ts +35 -23
- package/frontend-vue/layers/dms-ui/app/types/input-number.ts +18 -0
- package/frontend-vue/layers/dms-ui/app/types/live.ts +6 -0
- package/frontend-vue/layers/dms-ui/app/utils/scrollToBlock.ts +23 -0
- package/frontend-vue/layers/dms-ui/i18n/locales/ui-en-GB.json +9 -2
- package/frontend-vue/layers/dms-ui/i18n/locales/ui-fr-FR.json +9 -2
- package/frontend-vue/tests/activity-feed-fold.test.ts +119 -0
- package/frontend-vue/tests/chart-legend.test.ts +133 -0
- package/frontend-vue/tests/code-block.test.ts +28 -0
- package/frontend-vue/tests/field-suffix-count.test.ts +1 -0
- package/frontend-vue/tests/form-enclosing-form.test.ts +141 -0
- package/frontend-vue/tests/header-actions.test.ts +1 -1
- package/frontend-vue/tests/input-number-adjust.test.ts +176 -0
- package/frontend-vue/tests/live-hold-banner.test.ts +66 -8
- package/frontend-vue/tests/module-routing.test.ts +139 -0
- package/frontend-vue/tests/page-live-refresh.test.ts +169 -0
- package/frontend-vue/tests/page-record-label.test.ts +53 -0
- package/frontend-vue/tests/regional-format.test.ts +69 -2
- package/frontend-vue/tests/scroll-to-block.test.ts +142 -0
- package/frontend-vue/tests/settings-search-shortcuts.test.ts +17 -0
- package/frontend-vue/tests/tab-slot-spacing.test.ts +8 -0
- package/frontend-vue/tests/tab-url-slot.test.ts +150 -0
- package/frontend-vue/tests/table-live-hold.test.ts +90 -0
- package/package.json +2 -2
- package/skills/dms/SKILL.md +28 -4
- package/skills/dms-module/SKILL.md +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.7.12
|
|
4
|
+
|
|
5
|
+
[compare changes](https://github.com/AntelopeJS/dms/compare/v0.7.11...v0.7.12)
|
|
6
|
+
|
|
7
|
+
### 🚀 Enhancements
|
|
8
|
+
|
|
9
|
+
- **dms:** Give custom components the live, form and record APIs stock blocks use ([#225](https://github.com/AntelopeJS/dms/pull/225))
|
|
10
|
+
- **dms:** Close the module gaps left by the API console ([#233](https://github.com/AntelopeJS/dms/pull/233))
|
|
11
|
+
|
|
12
|
+
### 🏡 Chore
|
|
13
|
+
|
|
14
|
+
- **release:** @antelopejs/interface-dms v0.5.7 ([18ea2af5](https://github.com/AntelopeJS/dms/commit/18ea2af5))
|
|
15
|
+
|
|
16
|
+
### ❤️ Contributors
|
|
17
|
+
|
|
18
|
+
- Antony Rizzitelli <rizzitelli.antony@pm.me>
|
|
19
|
+
|
|
20
|
+
## v0.7.11
|
|
21
|
+
|
|
22
|
+
[compare changes](https://github.com/AntelopeJS/dms/compare/v0.7.10...v0.7.11)
|
|
23
|
+
|
|
24
|
+
### 🩹 Fixes
|
|
25
|
+
|
|
26
|
+
- **guard:** Space several children the way the page spaces its blocks ([#221](https://github.com/AntelopeJS/dms/pull/221))
|
|
27
|
+
|
|
28
|
+
### ❤️ Contributors
|
|
29
|
+
|
|
30
|
+
- Antony Rizzitelli <rizzitelli.antony@pm.me>
|
|
31
|
+
|
|
3
32
|
## v0.7.10
|
|
4
33
|
|
|
5
34
|
[compare changes](https://github.com/AntelopeJS/dms/compare/v0.7.9...v0.7.10)
|
|
@@ -17,6 +17,13 @@ describe("[unit] interfaces/dms-base — ActivityFeed head and entry detail", ()
|
|
|
17
17
|
(0, chai_1.expect)(valid("ActivityFeed", { badge: { key: "$api.last", params: { n: 24 } } })).to.equal(true);
|
|
18
18
|
(0, chai_1.expect)(valid("ActivityFeed", { count: -1 })).to.equal(false);
|
|
19
19
|
});
|
|
20
|
+
it("takes visibleItems and wrap, both optional", () => {
|
|
21
|
+
const { config } = declared("ActivityFeed");
|
|
22
|
+
(0, chai_1.expect)(config.visibleItems?.optional).to.equal(true);
|
|
23
|
+
(0, chai_1.expect)(config.wrap?.optional).to.equal(true);
|
|
24
|
+
(0, chai_1.expect)(valid("ActivityFeed", { visibleItems: 3, wrap: true })).to.equal(true);
|
|
25
|
+
(0, chai_1.expect)(valid("ActivityFeed", { visibleItems: 0 })).to.equal(false);
|
|
26
|
+
});
|
|
20
27
|
it("takes a third line on an entry, as text or composed text", () => {
|
|
21
28
|
const entry = declared("ActivityFeed").config.items?.items?.properties;
|
|
22
29
|
(0, chai_1.expect)(entry?.detail?.optional).to.equal(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-parity-options.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/block-parity-options.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"block-parity-options.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/block-parity-options.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -157,6 +157,16 @@ describe("[unit] interfaces/dms-base — table view sources and reorder", () =>
|
|
|
157
157
|
(0, chai_1.expect)(() => sourceOf({ tabs, capabilities: { filter: true } })).to.not.throw();
|
|
158
158
|
(0, chai_1.expect)(() => sourceOf({ capabilities: { filter: true }, labelKey: "status" })).to.throw(/unknown column "status"/);
|
|
159
159
|
});
|
|
160
|
+
it("serves queryParamFilters to a route that reads filters, refusing them otherwise", () => {
|
|
161
|
+
const queryParamFilters = {
|
|
162
|
+
route: { field: "route", mode: "is" },
|
|
163
|
+
since: { field: "from" },
|
|
164
|
+
};
|
|
165
|
+
(0, chai_1.expect)(sourceOf({ queryParamFilters, capabilities: { filter: true } })
|
|
166
|
+
.queryParamFilters).to.deep.equal(queryParamFilters);
|
|
167
|
+
(0, chai_1.expect)(() => sourceOf({ queryParamFilters })).to.throw(/sets queryParamFilters, which needs capabilities\.filter/);
|
|
168
|
+
(0, chai_1.expect)(() => sourceOf({ queryParamFilters: {} })).to.not.throw();
|
|
169
|
+
});
|
|
160
170
|
it("runs the registration checks of TableView(): page size, displays, card fields, tab targets", () => {
|
|
161
171
|
(0, chai_1.expect)(() => sourceOf({ pageSize: 0 })).to.throw(/pageSize/);
|
|
162
172
|
(0, chai_1.expect)(() => sourceOf({ displays: [{ id: "plan-cards" }] })).to.throw(/named "<module>:<id>"/);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-view-source-reorder.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/table-view-source-reorder.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table-view-source-reorder.test.js","sourceRoot":"","sources":["../../../../../src/test/unit/interfaces/dms-base/table-view-source-reorder.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,9 @@
|
|
|
1
|
-
import { computed } from "vue";
|
|
2
|
-
|
|
3
|
-
interface PageRecordLabel {
|
|
4
|
-
path: string;
|
|
5
|
-
label: string;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const STATE_KEY = "dms-page-record-label";
|
|
9
|
-
|
|
10
1
|
/**
|
|
11
|
-
* The
|
|
12
|
-
*
|
|
13
|
-
*
|
|
2
|
+
* The former path of `usePageRecordLabel`, kept for the modules that import
|
|
3
|
+
* it from here. Import it from `#dms-core/app/composables/page/usePageRecordLabel`,
|
|
4
|
+
* or call the auto-imported `usePageRecordLabel()`.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
* @deprecated Use `#dms-core/app/composables/page/usePageRecordLabel`.
|
|
14
8
|
*/
|
|
15
|
-
export
|
|
16
|
-
const state = useDmsState<PageRecordLabel | null>(STATE_KEY, () => null);
|
|
17
|
-
const route = useDmsRoute();
|
|
18
|
-
|
|
19
|
-
const label = computed(() =>
|
|
20
|
-
state.value && state.value.path === route.path
|
|
21
|
-
? state.value.label
|
|
22
|
-
: undefined,
|
|
23
|
-
);
|
|
24
|
-
|
|
25
|
-
/** Names the row of the page at `path`; no label clears it. */
|
|
26
|
-
const setLabel = (path: string, value: string | undefined) => {
|
|
27
|
-
state.value = value ? { path, label: value } : null;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
return { label, setLabel };
|
|
31
|
-
}
|
|
9
|
+
export { usePageRecordLabel } from "../../../composables/page/usePageRecordLabel";
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { computed, type ComputedRef } from "vue";
|
|
2
|
+
|
|
3
|
+
interface StoredRecordLabel {
|
|
4
|
+
path: string;
|
|
5
|
+
label: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const STATE_KEY = "dms-page-record-label";
|
|
9
|
+
|
|
10
|
+
/** The label of the record a page is about (see {@link usePageRecordLabel}). */
|
|
11
|
+
export interface PageRecordLabel {
|
|
12
|
+
/** The label of the page on screen, `undefined` when none was set for it. */
|
|
13
|
+
label: ComputedRef<string | undefined>;
|
|
14
|
+
/**
|
|
15
|
+
* Names the record of the page at `path` (the current one is
|
|
16
|
+
* `useDmsRoute().path`); `undefined` or `""` clears it.
|
|
17
|
+
*/
|
|
18
|
+
setLabel: (path: string, value: string | undefined) => void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The label of the record a page is about, e.g. the task an edit page
|
|
23
|
+
* changes: the page header ends its breadcrumb with it, after the page's own
|
|
24
|
+
* name. A `Form` with `labelKey` sets it once it loaded its record; a module's
|
|
25
|
+
* own component on a record page sets it the same way, and may read it.
|
|
26
|
+
*
|
|
27
|
+
* The label is held with the path it was set for, so it never outlives its
|
|
28
|
+
* page: on another page `label` reads `undefined` until that page sets one.
|
|
29
|
+
* Shared state, so the server-rendered header shows it too when it is set
|
|
30
|
+
* during the render.
|
|
31
|
+
*
|
|
32
|
+
* ```ts
|
|
33
|
+
* const route = useDmsRoute();
|
|
34
|
+
* const { setLabel } = usePageRecordLabel();
|
|
35
|
+
* watch(routeName, (name) => setLabel(route.path, name), { immediate: true });
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export function usePageRecordLabel(): PageRecordLabel {
|
|
39
|
+
const state = useDmsState<StoredRecordLabel | null>(STATE_KEY, () => null);
|
|
40
|
+
const route = useDmsRoute();
|
|
41
|
+
|
|
42
|
+
const label = computed(() =>
|
|
43
|
+
state.value && state.value.path === route.path
|
|
44
|
+
? state.value.label
|
|
45
|
+
: undefined,
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
const setLabel = (path: string, value: string | undefined) => {
|
|
49
|
+
state.value = value ? { path, label: value } : null;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
return { label, setLabel };
|
|
53
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { computed } from "vue";
|
|
1
2
|
import {
|
|
2
3
|
formatDate,
|
|
3
4
|
formatDateTime,
|
|
@@ -9,11 +10,49 @@ import {
|
|
|
9
10
|
} from "../../utils/formatter";
|
|
10
11
|
import {
|
|
11
12
|
regionalDateTimeFormat,
|
|
13
|
+
regionalFormatLocale,
|
|
12
14
|
type RegionalOptionsSettings,
|
|
13
15
|
} from "../../utils/regional";
|
|
14
16
|
|
|
15
17
|
type DateInput = Date | string | number | undefined | null;
|
|
16
18
|
|
|
19
|
+
/**
|
|
20
|
+
* A number formatter of `useRegionalFormat`: a number is written as a
|
|
21
|
+
* `string`; a value that is not one is returned as is.
|
|
22
|
+
*/
|
|
23
|
+
export interface RegionalNumberFormatter {
|
|
24
|
+
(value: number, options?: Intl.NumberFormatOptions): string;
|
|
25
|
+
(value: unknown, options?: Intl.NumberFormatOptions): unknown;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Which locale the formatters write in: `"interface"`, the interface
|
|
30
|
+
* language as it is (`en`, as the DMS's own blocks write their values), or
|
|
31
|
+
* `"format"`, the locale of the DMS's texts (`formatLocale`: `en` is
|
|
32
|
+
* `en-GB`).
|
|
33
|
+
*/
|
|
34
|
+
export type RegionalFormatLocale = "interface" | "format";
|
|
35
|
+
|
|
36
|
+
type NumberFormat = (
|
|
37
|
+
value: unknown,
|
|
38
|
+
locale: string,
|
|
39
|
+
options?: Intl.NumberFormatOptions,
|
|
40
|
+
) => unknown;
|
|
41
|
+
|
|
42
|
+
/** `format` bound to the locale `locale()` answers at each call. */
|
|
43
|
+
function numberFormatter(
|
|
44
|
+
format: NumberFormat,
|
|
45
|
+
locale: () => string,
|
|
46
|
+
): RegionalNumberFormatter {
|
|
47
|
+
return ((value: unknown, options?: Intl.NumberFormatOptions) =>
|
|
48
|
+
format(value, locale(), options)) as RegionalNumberFormatter;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface RegionalFormatOptions {
|
|
52
|
+
/** Defaults to `"interface"`. */
|
|
53
|
+
locale?: RegionalFormatLocale;
|
|
54
|
+
}
|
|
55
|
+
|
|
17
56
|
/**
|
|
18
57
|
* The shared formatters bound to the signed-in user's language and regional
|
|
19
58
|
* preferences (Settings › Language & region): the language of the interface,
|
|
@@ -22,13 +61,28 @@ type DateInput = Date | string | number | undefined | null;
|
|
|
22
61
|
*
|
|
23
62
|
* The plain formatters (`formatDate`, `formatNumber`…) fall back to `en-US`
|
|
24
63
|
* when no locale is passed; these never need one.
|
|
64
|
+
*
|
|
65
|
+
* @param options `{ locale: "format" }` writes every value in `formatLocale`
|
|
25
66
|
*/
|
|
26
|
-
export function useRegionalFormat() {
|
|
67
|
+
export function useRegionalFormat(options: RegionalFormatOptions = {}) {
|
|
27
68
|
const { t, locale } = useI18n();
|
|
69
|
+
const formatLocale = computed(() => regionalFormatLocale(locale.value));
|
|
70
|
+
const writeIn = () =>
|
|
71
|
+
options.locale === "format" ? formatLocale.value : locale.value;
|
|
72
|
+
|
|
73
|
+
const formatNumberIn = numberFormatter(formatNumber, writeIn);
|
|
74
|
+
const formatPriceIn = numberFormatter(formatPrice, writeIn);
|
|
75
|
+
const formatPercentageIn = numberFormatter(formatPercentage, writeIn);
|
|
28
76
|
|
|
29
77
|
return {
|
|
30
|
-
/** The language the
|
|
78
|
+
/** The language of the interface (`en`, `fr`). */
|
|
31
79
|
locale,
|
|
80
|
+
/**
|
|
81
|
+
* The locale the DMS's texts are written in for that language: `en` is
|
|
82
|
+
* `en-GB`, `fr` is `fr-FR`. For an `Intl` format of a module's own
|
|
83
|
+
* that reads in the convention of the texts around it.
|
|
84
|
+
*/
|
|
85
|
+
formatLocale,
|
|
32
86
|
/**
|
|
33
87
|
* `new Intl.DateTimeFormat` in the user's language with their
|
|
34
88
|
* preferences applied, for a format the helpers below do not cover.
|
|
@@ -37,29 +91,28 @@ export function useRegionalFormat() {
|
|
|
37
91
|
* @param settings `keepLocalZone` for calendar days computed in the browser
|
|
38
92
|
*/
|
|
39
93
|
dateTimeFormat: (
|
|
40
|
-
|
|
94
|
+
dateOptions: Intl.DateTimeFormatOptions,
|
|
41
95
|
settings?: RegionalOptionsSettings,
|
|
42
|
-
) => regionalDateTimeFormat(
|
|
43
|
-
/** A date ("1 October 2026"
|
|
44
|
-
formatDate: (date: unknown,
|
|
45
|
-
formatDate(date,
|
|
46
|
-
/** A time ("14:05:00"
|
|
47
|
-
formatTime: (date: DateInput,
|
|
48
|
-
formatTime(date,
|
|
96
|
+
) => regionalDateTimeFormat(writeIn(), dateOptions, settings),
|
|
97
|
+
/** A date ("1 October 2026" in `en-GB`), `null` when it is not one. */
|
|
98
|
+
formatDate: (date: unknown, dateOptions?: Intl.DateTimeFormatOptions) =>
|
|
99
|
+
formatDate(date, writeIn(), dateOptions),
|
|
100
|
+
/** A time ("14:05:00" in `en-GB`), `null` when it is not a date. */
|
|
101
|
+
formatTime: (date: DateInput, dateOptions?: Intl.DateTimeFormatOptions) =>
|
|
102
|
+
formatTime(date, writeIn(), dateOptions),
|
|
49
103
|
/** A date and its time, `null` when it is not a date. */
|
|
50
|
-
formatDateTime: (
|
|
51
|
-
|
|
104
|
+
formatDateTime: (
|
|
105
|
+
date: DateInput,
|
|
106
|
+
dateOptions?: Intl.DateTimeFormatOptions,
|
|
107
|
+
) => formatDateTime(date, writeIn(), dateOptions),
|
|
52
108
|
/** "just now", "5 minutes ago", "yesterday at 14:05", then the date. */
|
|
53
109
|
formatRelativeTime: (date: Date | string | number) =>
|
|
54
|
-
formatRelativeTime(date, t,
|
|
55
|
-
/** A number
|
|
56
|
-
formatNumber:
|
|
57
|
-
formatNumber(value, locale.value, options),
|
|
110
|
+
formatRelativeTime(date, t, writeIn()),
|
|
111
|
+
/** A number as a `string`; a value that is not one is returned as is. */
|
|
112
|
+
formatNumber: formatNumberIn,
|
|
58
113
|
/** An amount, in euros unless `options.currency` says otherwise. */
|
|
59
|
-
formatPrice:
|
|
60
|
-
formatPrice(value, locale.value, options),
|
|
114
|
+
formatPrice: formatPriceIn,
|
|
61
115
|
/** A ratio as a percentage (`0.25` → "25%"). */
|
|
62
|
-
formatPercentage:
|
|
63
|
-
formatPercentage(value, locale.value, options),
|
|
116
|
+
formatPercentage: formatPercentageIn,
|
|
64
117
|
};
|
|
65
118
|
}
|
|
@@ -229,6 +229,20 @@ export function formatDateTime(
|
|
|
229
229
|
});
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
+
/**
|
|
233
|
+
* A number written for `locale`; a value that is not a number is returned as
|
|
234
|
+
* is. Options Intl refuses (an unknown currency) write the bare number.
|
|
235
|
+
*/
|
|
236
|
+
export function formatNumber(
|
|
237
|
+
value: number,
|
|
238
|
+
locale?: string,
|
|
239
|
+
options?: Intl.NumberFormatOptions,
|
|
240
|
+
): string;
|
|
241
|
+
export function formatNumber(
|
|
242
|
+
value: unknown,
|
|
243
|
+
locale?: string,
|
|
244
|
+
options?: Intl.NumberFormatOptions,
|
|
245
|
+
): unknown;
|
|
232
246
|
export function formatNumber(
|
|
233
247
|
value: unknown,
|
|
234
248
|
locale: string = DEFAULT_LOCALE,
|
|
@@ -238,10 +252,21 @@ export function formatNumber(
|
|
|
238
252
|
try {
|
|
239
253
|
return new Intl.NumberFormat(locale, options).format(value);
|
|
240
254
|
} catch {
|
|
241
|
-
return value;
|
|
255
|
+
return String(value);
|
|
242
256
|
}
|
|
243
257
|
}
|
|
244
258
|
|
|
259
|
+
/** An amount, in euros unless `options.currency` says otherwise. */
|
|
260
|
+
export function formatPrice(
|
|
261
|
+
value: number,
|
|
262
|
+
locale?: string,
|
|
263
|
+
options?: Intl.NumberFormatOptions,
|
|
264
|
+
): string;
|
|
265
|
+
export function formatPrice(
|
|
266
|
+
value: unknown,
|
|
267
|
+
locale?: string,
|
|
268
|
+
options?: Intl.NumberFormatOptions,
|
|
269
|
+
): unknown;
|
|
245
270
|
export function formatPrice(
|
|
246
271
|
value: unknown,
|
|
247
272
|
locale: string = DEFAULT_LOCALE,
|
|
@@ -256,6 +281,17 @@ export function formatPrice(
|
|
|
256
281
|
});
|
|
257
282
|
}
|
|
258
283
|
|
|
284
|
+
/** A ratio as a percentage (`0.25` → "25%"). */
|
|
285
|
+
export function formatPercentage(
|
|
286
|
+
value: number,
|
|
287
|
+
locale?: string,
|
|
288
|
+
options?: Intl.NumberFormatOptions,
|
|
289
|
+
): string;
|
|
290
|
+
export function formatPercentage(
|
|
291
|
+
value: unknown,
|
|
292
|
+
locale?: string,
|
|
293
|
+
options?: Intl.NumberFormatOptions,
|
|
294
|
+
): unknown;
|
|
259
295
|
export function formatPercentage(
|
|
260
296
|
value: unknown,
|
|
261
297
|
locale: string = DEFAULT_LOCALE,
|
|
@@ -47,6 +47,16 @@ const DAY_MS = 24 * 60 * 60 * 1000;
|
|
|
47
47
|
const MONDAY = 1;
|
|
48
48
|
const DAYS_PER_WEEK = 7;
|
|
49
49
|
|
|
50
|
+
/**
|
|
51
|
+
* The region each language the DMS is translated into is written for: its
|
|
52
|
+
* texts are British English and French of France (`core-en-GB.json`,
|
|
53
|
+
* `core-fr-FR.json`), while the interface language is the bare tag.
|
|
54
|
+
*/
|
|
55
|
+
const DMS_TEXT_LOCALES: Record<string, string> = {
|
|
56
|
+
en: "en-GB",
|
|
57
|
+
fr: "fr-FR",
|
|
58
|
+
};
|
|
59
|
+
|
|
50
60
|
/** `timeStyle` as the fields it stands for, when a date format replaces `dateStyle`. */
|
|
51
61
|
const TIME_STYLE_FIELDS: Record<string, Intl.DateTimeFormatOptions> = {
|
|
52
62
|
full: { hour: "2-digit", minute: "2-digit", second: "2-digit" },
|
|
@@ -196,6 +206,16 @@ export function withRegionalOptions(
|
|
|
196
206
|
return result;
|
|
197
207
|
}
|
|
198
208
|
|
|
209
|
+
/**
|
|
210
|
+
* The locale the DMS's texts are written in for the interface language
|
|
211
|
+
* `locale`: a bare `en` is `en-GB` (24-hour clock, day before month), a bare
|
|
212
|
+
* `fr` is `fr-FR`. A tag naming its region, or a language the DMS is not
|
|
213
|
+
* translated into, is returned as is.
|
|
214
|
+
*/
|
|
215
|
+
export function regionalFormatLocale(locale: string): string {
|
|
216
|
+
return DMS_TEXT_LOCALES[locale.toLowerCase()] ?? locale;
|
|
217
|
+
}
|
|
218
|
+
|
|
199
219
|
/** `new Intl.DateTimeFormat` with the user's preferences applied. */
|
|
200
220
|
export function regionalDateTimeFormat(
|
|
201
221
|
locale: string,
|
|
@@ -4,7 +4,7 @@ import NotificationPopover from "../notification/NotificationPopover.vue";
|
|
|
4
4
|
import QuickActionsPopover from "./QuickActionsPopover.vue";
|
|
5
5
|
import { useSidebarState } from "./sidebarState";
|
|
6
6
|
import { useHeaderActionControls } from "../../composables/layout/useHeaderActionControls";
|
|
7
|
-
import { usePageRecordLabel } from "#dms-core/app/
|
|
7
|
+
import { usePageRecordLabel } from "#dms-core/app/composables/page/usePageRecordLabel";
|
|
8
8
|
|
|
9
9
|
const HOME_ICON = "i-ph-house-light";
|
|
10
10
|
/** Breadcrumb slot of the folded middle crumbs on small screens. */
|
|
@@ -43,27 +43,46 @@ function findModuleRootNode(
|
|
|
43
43
|
return null;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
function
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
function isOpenablePage(node: SiteLayoutTree): boolean {
|
|
47
|
+
return !!node.layoutUrl && node.hasAccess !== false;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** The first page the caller may open under `node`, in menu order. */
|
|
51
|
+
function findPage(
|
|
52
|
+
node: SiteLayoutTree,
|
|
53
|
+
accepts: (page: SiteLayoutTree) => boolean,
|
|
54
|
+
): SiteLayoutTree | null {
|
|
55
|
+
if (isOpenablePage(node) && accepts(node)) return node;
|
|
50
56
|
for (const childId of node.childrenOrders) {
|
|
51
57
|
const child = node.children[childId];
|
|
52
|
-
if (!child) continue;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (candidate) return candidate;
|
|
58
|
+
if (!child || child.hasAccess === false) continue;
|
|
59
|
+
const found = findPage(child, accepts);
|
|
60
|
+
if (found) return found;
|
|
56
61
|
}
|
|
57
62
|
return null;
|
|
58
63
|
}
|
|
59
64
|
|
|
65
|
+
/**
|
|
66
|
+
* The page a module opens on: its `landingPage` when the caller may open it,
|
|
67
|
+
* else its first page in menu order.
|
|
68
|
+
*/
|
|
60
69
|
function resolveModuleLandingSlug(
|
|
61
70
|
tree: SiteLayoutTree | undefined,
|
|
62
71
|
moduleId: string,
|
|
72
|
+
landingPage: string | undefined,
|
|
63
73
|
): string | null {
|
|
64
74
|
const moduleRoot = findModuleRootNode(tree, moduleId);
|
|
65
75
|
if (!moduleRoot) return null;
|
|
66
|
-
|
|
76
|
+
const declared = landingPage
|
|
77
|
+
? findPage(moduleRoot, (page) => page.id === landingPage)
|
|
78
|
+
: null;
|
|
79
|
+
return (declared ?? findPage(moduleRoot, () => true))?.fullSlug ?? null;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** `landing` with the query and hash of `fullPath`, as the module was entered. */
|
|
83
|
+
function withQueryAndHash(landing: string, fullPath: string): string {
|
|
84
|
+
const start = fullPath.search(/[?#]/);
|
|
85
|
+
return start < 0 ? landing : `${landing}${fullPath.slice(start)}`;
|
|
67
86
|
}
|
|
68
87
|
|
|
69
88
|
function ensureSiteLayoutLoaded(
|
|
@@ -126,10 +145,15 @@ export default defineDmsMiddleware(async (to) => {
|
|
|
126
145
|
const landingSlug = resolveModuleLandingSlug(
|
|
127
146
|
siteLayout.siteLayoutTree.value,
|
|
128
147
|
moduleId,
|
|
148
|
+
moduleEntry.landingPage,
|
|
129
149
|
);
|
|
130
150
|
|
|
151
|
+
// Answered rather than navigated to: the navigation that entered the
|
|
152
|
+
// module goes to the landing page instead, so the module's own address
|
|
153
|
+
// never renders (a 404 before the redirect landed), never enters the
|
|
154
|
+
// history, and a server render answers it with a redirect.
|
|
131
155
|
if (landingSlug && landingSlug !== to.path) {
|
|
132
|
-
return
|
|
156
|
+
return withQueryAndHash(landingSlug, to.fullPath);
|
|
133
157
|
}
|
|
134
158
|
|
|
135
159
|
return redirectToHomepage();
|
|
@@ -1,16 +1,55 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import type { TableLiveHoldReason } from "../../composables/table-view/useTableLiveHold";
|
|
4
|
+
import type { ConfirmTranslate } from "../../composables/confirm/confirmDialogTexts";
|
|
5
|
+
import { missedRowsText, showLiveNote } from "../../composables/live/liveNotes";
|
|
6
|
+
import type { PageLiveNote } from "../../../types/live";
|
|
7
|
+
|
|
2
8
|
/**
|
|
3
|
-
* The strip a `liveHold` table
|
|
4
|
-
*
|
|
9
|
+
* The strip of a `liveHold` table: "N new · Show" once events came in while
|
|
10
|
+
* it holds, led by why it holds when it does so by itself, its page staying
|
|
11
|
+
* live ("Table on hold · search active · 3 new · Show"), and followed, while
|
|
12
|
+
* the page is paused, by the breakdown a component gave the page ("12 new
|
|
13
|
+
* requests · 2 in 5xx · Show"). Show reads the rows once; the hold stays.
|
|
5
14
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
15
|
+
const props = withDefaults(
|
|
16
|
+
defineProps<{
|
|
17
|
+
/** Events the table received since its rows were held or last shown. */
|
|
18
|
+
count: number;
|
|
19
|
+
/** Why the table holds by itself, `null` while its page is paused. */
|
|
20
|
+
reason?: TableLiveHoldReason | null;
|
|
21
|
+
/** What the new rows are called, given `{count}`; "N new" without. */
|
|
22
|
+
missedLabel?: string;
|
|
23
|
+
/** The breakdown of what the paused page missed. */
|
|
24
|
+
detail?: PageLiveNote | null;
|
|
25
|
+
}>(),
|
|
26
|
+
{ reason: null, missedLabel: undefined, detail: null },
|
|
27
|
+
);
|
|
10
28
|
|
|
11
29
|
const emit = defineEmits<{ show: [] }>();
|
|
12
30
|
|
|
13
31
|
const { t } = useI18n();
|
|
32
|
+
const translate = t as ConfirmTranslate;
|
|
33
|
+
|
|
34
|
+
const REASON_KEYS: Record<TableLiveHoldReason, string> = {
|
|
35
|
+
rowOpen: "dms.live.held_row_open",
|
|
36
|
+
searching: "dms.live.held_searching",
|
|
37
|
+
sorted: "dms.live.held_sorted",
|
|
38
|
+
scrolled: "dms.live.held_scrolled",
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const reasonText = computed(() =>
|
|
42
|
+
props.reason
|
|
43
|
+
? `${t("dms.live.table_held")} · ${t(REASON_KEYS[props.reason])}`
|
|
44
|
+
: "",
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
const countText = computed(() =>
|
|
48
|
+
missedRowsText(props.count, props.missedLabel, translate),
|
|
49
|
+
);
|
|
50
|
+
const detailNote = computed(() =>
|
|
51
|
+
props.detail ? showLiveNote(props.detail, translate) : null,
|
|
52
|
+
);
|
|
14
53
|
</script>
|
|
15
54
|
|
|
16
55
|
<template>
|
|
@@ -19,17 +58,30 @@ const { t } = useI18n();
|
|
|
19
58
|
class="dms-live-hold-banner text-highlighted flex items-center gap-2.5 border-b border-(--dms-info-line) bg-(--dms-info-tint) py-[7px] ps-[18px] pe-3.5 text-[13px]"
|
|
20
59
|
>
|
|
21
60
|
<UIcon name="i-ph-pause-circle" class="text-info size-4 shrink-0" />
|
|
22
|
-
<span class="min-w-0">
|
|
23
|
-
{{
|
|
61
|
+
<span v-if="reasonText" class="dms-live-hold-banner__reason min-w-0">
|
|
62
|
+
{{ reasonText }}
|
|
24
63
|
</span>
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
64
|
+
<template v-if="count > 0">
|
|
65
|
+
<span v-if="reasonText" aria-hidden="true" class="text-muted">·</span>
|
|
66
|
+
<span class="min-w-0">{{ countText }}</span>
|
|
67
|
+
<template v-if="detailNote">
|
|
68
|
+
<span aria-hidden="true" class="text-muted">·</span>
|
|
69
|
+
<span
|
|
70
|
+
class="dms-live-hold-banner__detail min-w-0"
|
|
71
|
+
:class="detailNote.toneClass"
|
|
72
|
+
>
|
|
73
|
+
{{ detailNote.text }}
|
|
74
|
+
</span>
|
|
75
|
+
</template>
|
|
76
|
+
<span aria-hidden="true" class="text-muted">·</span>
|
|
77
|
+
<UButton
|
|
78
|
+
:label="t('dms.live.show_new')"
|
|
79
|
+
color="neutral"
|
|
80
|
+
variant="link"
|
|
81
|
+
size="xs"
|
|
82
|
+
class="p-0 font-medium"
|
|
83
|
+
@click="emit('show')"
|
|
84
|
+
/>
|
|
85
|
+
</template>
|
|
34
86
|
</div>
|
|
35
87
|
</template>
|
|
@@ -63,7 +63,7 @@ export function buildLegend(
|
|
|
63
63
|
): Record<string, unknown> {
|
|
64
64
|
return {
|
|
65
65
|
show: input.showLegend ?? true,
|
|
66
|
-
position: isCircular ? "bottom" : "top",
|
|
66
|
+
position: input.legendPosition ?? (isCircular ? "bottom" : "top"),
|
|
67
67
|
horizontalAlign: "right",
|
|
68
68
|
fontSize: LEGEND_FONT_SIZE,
|
|
69
69
|
labels: { colors: theme.muted },
|