@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.
Files changed (69) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/test/unit/interfaces/dms-base/block-parity-options.test.js +7 -0
  3. package/dist/test/unit/interfaces/dms-base/block-parity-options.test.js.map +1 -1
  4. package/dist/test/unit/interfaces/dms-base/table-view-source-reorder.test.js +10 -0
  5. package/dist/test/unit/interfaces/dms-base/table-view-source-reorder.test.js.map +1 -1
  6. package/frontend-vue/layers/dms-core/app/build/composables/page/usePageRecordLabel.ts +7 -29
  7. package/frontend-vue/layers/dms-core/app/composables/page/usePageRecordLabel.ts +53 -0
  8. package/frontend-vue/layers/dms-core/app/composables/user/useRegionalFormat.ts +73 -20
  9. package/frontend-vue/layers/dms-core/app/utils/formatter.ts +37 -1
  10. package/frontend-vue/layers/dms-core/app/utils/regional.ts +20 -0
  11. package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardHeader.vue +1 -1
  12. package/frontend-vue/layers/dms-layout/app/middleware/module-routing.global.ts +34 -10
  13. package/frontend-vue/layers/dms-ui/app/build/components/table-view/LiveHoldBanner.vue +69 -17
  14. package/frontend-vue/layers/dms-ui/app/build/composables/chart/apexTheme.ts +1 -1
  15. package/frontend-vue/layers/dms-ui/app/build/composables/form/enclosingForm.ts +38 -0
  16. package/frontend-vue/layers/dms-ui/app/build/composables/global/searchShortcuts.ts +7 -16
  17. package/frontend-vue/layers/dms-ui/app/build/composables/live/liveNotes.ts +54 -0
  18. package/frontend-vue/layers/dms-ui/app/build/composables/page/blockAnchors.ts +50 -0
  19. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableLiveHold.ts +78 -35
  20. package/frontend-vue/layers/dms-ui/app/build/utils/numberAdjustment.ts +60 -0
  21. package/frontend-vue/layers/dms-ui/app/components/RecursiveComponent.vue +11 -0
  22. package/frontend-vue/layers/dms-ui/app/components/activity/ActivityItem.vue +17 -9
  23. package/frontend-vue/layers/dms-ui/app/components/activity-feed/ActivityFeed.vue +58 -7
  24. package/frontend-vue/layers/dms-ui/app/components/blocks/CodeBlock.vue +5 -1
  25. package/frontend-vue/layers/dms-ui/app/components/blocks/EmptyStateBlock.vue +2 -1
  26. package/frontend-vue/layers/dms-ui/app/components/blocks/LiveToggleBlock.vue +7 -20
  27. package/frontend-vue/layers/dms-ui/app/components/chart/Chart.vue +3 -0
  28. package/frontend-vue/layers/dms-ui/app/components/chart/ChartCard.vue +5 -1
  29. package/frontend-vue/layers/dms-ui/app/components/code-snippet/CodeSnippet.vue +51 -13
  30. package/frontend-vue/layers/dms-ui/app/components/form/Form.vue +38 -1
  31. package/frontend-vue/layers/dms-ui/app/components/form/components/InputNumber.vue +58 -3
  32. package/frontend-vue/layers/dms-ui/app/components/guard/Guard.vue +3 -2
  33. package/frontend-vue/layers/dms-ui/app/components/tab/Tab.vue +19 -1
  34. package/frontend-vue/layers/dms-ui/app/components/table-view/TableView.vue +9 -1
  35. package/frontend-vue/layers/dms-ui/app/composables/chart/types.ts +3 -0
  36. package/frontend-vue/layers/dms-ui/app/composables/chart/useApexChart.types.ts +2 -0
  37. package/frontend-vue/layers/dms-ui/app/composables/form/types/validation.ts +10 -0
  38. package/frontend-vue/layers/dms-ui/app/composables/form/useEnclosingForm.ts +61 -0
  39. package/frontend-vue/layers/dms-ui/app/composables/global/searchShortcuts.ts +24 -0
  40. package/frontend-vue/layers/dms-ui/app/composables/live/usePageLive.ts +3 -2
  41. package/frontend-vue/layers/dms-ui/app/composables/live/usePageLiveRefresh.ts +103 -0
  42. package/frontend-vue/layers/dms-ui/app/composables/tab/types/composable.ts +1 -0
  43. package/frontend-vue/layers/dms-ui/app/composables/tab/types/item.ts +8 -1
  44. package/frontend-vue/layers/dms-ui/app/composables/tab/useTab.ts +35 -23
  45. package/frontend-vue/layers/dms-ui/app/types/input-number.ts +18 -0
  46. package/frontend-vue/layers/dms-ui/app/types/live.ts +6 -0
  47. package/frontend-vue/layers/dms-ui/app/utils/scrollToBlock.ts +23 -0
  48. package/frontend-vue/layers/dms-ui/i18n/locales/ui-en-GB.json +9 -2
  49. package/frontend-vue/layers/dms-ui/i18n/locales/ui-fr-FR.json +9 -2
  50. package/frontend-vue/tests/activity-feed-fold.test.ts +119 -0
  51. package/frontend-vue/tests/chart-legend.test.ts +133 -0
  52. package/frontend-vue/tests/code-block.test.ts +28 -0
  53. package/frontend-vue/tests/field-suffix-count.test.ts +1 -0
  54. package/frontend-vue/tests/form-enclosing-form.test.ts +141 -0
  55. package/frontend-vue/tests/header-actions.test.ts +1 -1
  56. package/frontend-vue/tests/input-number-adjust.test.ts +176 -0
  57. package/frontend-vue/tests/live-hold-banner.test.ts +66 -8
  58. package/frontend-vue/tests/module-routing.test.ts +139 -0
  59. package/frontend-vue/tests/page-live-refresh.test.ts +169 -0
  60. package/frontend-vue/tests/page-record-label.test.ts +53 -0
  61. package/frontend-vue/tests/regional-format.test.ts +69 -2
  62. package/frontend-vue/tests/scroll-to-block.test.ts +142 -0
  63. package/frontend-vue/tests/settings-search-shortcuts.test.ts +17 -0
  64. package/frontend-vue/tests/tab-slot-spacing.test.ts +8 -0
  65. package/frontend-vue/tests/tab-url-slot.test.ts +150 -0
  66. package/frontend-vue/tests/table-live-hold.test.ts +90 -0
  67. package/package.json +2 -2
  68. package/skills/dms/SKILL.md +28 -4
  69. 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":";;;;;;;;;;;AAAA,6DAA4E;AAC5E,uEAGwC;AACxC,sEAMiD;AACjD,6FAMmD;AACnD,+BAA8B;AAC9B,mEAAuE;AACvE,2FAA2F;AAC3F,kEAAwE;AACxE,0EAMmD;AAEnD,MAAM,KAAK,GAAG,kBAAkB,CAAC;AAGjC,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,qCAAK;CAK1B,CAAA;AAJ0B;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;qCAAsB;AACb;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;yCAA0B;AACjB;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;sCAAuB;AACd;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;qCAAsB;AAJlC,OAAO;IADZ,IAAA,6CAAa,EAAC,KAAK,EAAE,4BAAgB,CAAC;GACjC,OAAO,CAKZ;AAED,MAAM,YAAa,SAAQ,IAAA,8CAAc,EAAC,OAAO,EAAE,KAAK,CAAC;CAAG;AAG5D,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,IAAA,mCAAc,EACrC,OAAO,EACP,EAAE,IAAI,EAAE,4BAAe,CAAC,IAAI,EAAE,IAAI,EAAE,4BAAe,CAAC,IAAI,EAAE,EAC1D,IAAA,0BAAU,EAAC,uBAAuB,CAAC,CACpC;CAwBA,CAAA;AArBS;IAFP,IAAA,yBAAc,GAAE;IAChB,IAAA,qCAAK,EAAC,YAAY,CAAC;8BACL,YAAY;yCAAC;AAKpB;IAHP,IAAA,mBAAQ,GAAE;IACV,IAAA,mBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,gCAAgB,CAAC,UAAU,EAAE,EAAE,CAAC;;wCAC7C;AAKb;IAHP,IAAA,mBAAQ,GAAE;IACV,IAAA,mBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,gCAAgB,CAAC,UAAU,EAAE,EAAE,CAAC;;4CAC7C;AAIjB;IAFP,IAAA,mBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,gCAAgB,CAAC,UAAU,EAAE,EAAE,CAAC;;yCAC7C;AAMd;IAJP,IAAA,mBAAQ,GAAE;IACV,IAAA,mBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,gCAAgB,CAAC,UAAU,EAAE,EAAE,CAAC;IACjE,IAAA,iBAAM,EAAC,qBAAU,CAAC,QAAQ,CAAC;;wCACP;AA3BjB,UAAU;IADf,IAAA,2CAAsB,GAAE;GACnB,UAAU,CA4Bf;AAMD,MAAM,SAAS,GAAG,CAAC,OAAuB,EAAE,EAAE,CAC5C,IAAA,sBAAS,EAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,aAAa,EAAE;KACnE,OAAqC,CAAC;AAI3C,MAAM,MAAM,GAAG,IAAI,gCAAgB,CAAC,UAAU,EAAE,CAAC;AAajD,MAAM,QAAQ,GAAG,CAAC,UAAkC,EAAE,EAAE,EAAE,CACxD,sBAAS,CAAC,UAAU,CAAC;IACnB,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE;QACP,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;KACrE;IACD,GAAG,OAAO;CACX,CAAC,CAAC,aAAa,EAAE,CAAC,OAAgC,CAAC;AAEtD,QAAQ,CAAC,6DAA6D,EAAE,GAAG,EAAE;IAC3E,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,OAAO,GAAG,QAAQ,CAAC;YACvB,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YAC9B,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,QAAQ,EAAE,kBAAkB;YAC5B,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAC/B,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/D,QAAQ;YACR,MAAM;SACP,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAA,aAAM,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,IAAA,aAAM,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAA,aAAM,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChD,IAAA,aAAM,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAA,aAAM,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YACzC,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,IAAA,aAAM,EAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvE,IAAA,aAAM,EAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,IAAA,aAAM,EACJ,QAAQ,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,CAAC,MAAM,CAC1D,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,uBAAuB;YACpC,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACtE,4BAA4B,CAC7B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpD,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,QAAQ,EAAE,kBAAkB;YAC5B,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAA,aAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzC,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxD,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;SAC3D,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,IAAI,GAAG;YACX;gBACE,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;aAC5D;SACuB,CAAC;QAC3B,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACxE,IAAA,aAAM,EAAC,GAAG,EAAE,CACV,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CACnD,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,IAAA,aAAM,EAAC,GAAG,EAAE,CACV,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CACjE,CAAC,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,iBAAiB,GAAG;YACxB,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;YACrC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;SACzB,CAAC;QACF,IAAA,aAAM,EACJ,QAAQ,CAAC,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;aAC5D,iBAAiB,CACrB,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACnC,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACpD,0DAA0D,CAC3D,CAAC;QACF,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4FAA4F,EAAE,GAAG,EAAE;QACpG,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACnE,uBAAuB,CACxB,CAAC;QACF,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAC1D,0BAA0B,CAC3B,CAAC;QACF,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAC/D,yBAAyB,CAC1B,CAAC;QACF,MAAM,IAAI,GAAG;YACX;gBACE,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,KAAK;gBACZ,EAAE,EAAE,YAAY;gBAChB,MAAM,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;aAC5D;SACuB,CAAC;QAC3B,IAAA,aAAM,EAAC,GAAG,EAAE,CACV,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CACzD,CAAC,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,IAAA,aAAM,EACJ,QAAQ,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAC1D,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACrE,yBAAyB,CAC1B,CAAC;QACF,IAAA,aAAM,EAAC,GAAG,EAAE,CACV,QAAQ,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAC/D,CAAC,EAAE,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,OAAO,GAAG,SAAS,CAAC;YACxB,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;YAC9B,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7D,IAAA,aAAM,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACnF,MAAM,SAAS,GAAG,IAAA,wBAAe,EAAC,aAAa,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,SAAS,CAAC;YACxB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;YAC9B,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,6BAAgB,EAAE,CAAC;YACpC,cAAc,EAAE,6BAAgB;YAChC,IAAI,EAAE,EAAE,SAAS,EAAE;SACpB,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAClC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,6BAAgB,CAC7C,CAAC;QACF,IAAA,aAAM,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YAC3C,SAAS,EAAE,SAAS,CAAC,aAAa,EAAE;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAC9D,6BAA6B,CAC9B,CAAC;QACF,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAC/D,uBAAuB,CACxB,CAAC;QACF,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAC9D,kBAAkB,CACnB,CAAC;QACF,IAAA,aAAM,EAAC,GAAG,EAAE,CACV,SAAS,CAAC;YACR,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;YAC9B,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SAC5B,CAAC,CACH,CAAC,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,QAAQ,CAAC;YACtB,UAAU;YACV,UAAU,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE;SAChD,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpD,IAAA,aAAM,EAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,SAAS,CAAC;YACxB,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;YAChD,UAAU,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE;SAChD,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACvC,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,IAAA,aAAM,EAAC,GAAG,EAAE,CACV,SAAS,CAAC;YACR,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;YAC9B,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;SACjD,CAAC,CACH,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,MAAM,GAA6B;YACvC,MAAM,EAAE;gBAEN,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;SACF,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAoB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1E,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -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 label of the row a page is about, e.g. the task an edit page changes:
12
- * the form that loads the row sets it, the breadcrumb ends with it. Held with
13
- * the page's path, so it never outlives its page.
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 function usePageRecordLabel() {
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 values are written in. */
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
- options: Intl.DateTimeFormatOptions,
94
+ dateOptions: Intl.DateTimeFormatOptions,
41
95
  settings?: RegionalOptionsSettings,
42
- ) => regionalDateTimeFormat(locale.value, options, settings),
43
- /** A date ("1 October 2026" by default), `null` when it is not one. */
44
- formatDate: (date: unknown, options?: Intl.DateTimeFormatOptions) =>
45
- formatDate(date, locale.value, options),
46
- /** A time ("14:05:00" by default), `null` when it is not a date. */
47
- formatTime: (date: DateInput, options?: Intl.DateTimeFormatOptions) =>
48
- formatTime(date, locale.value, options),
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: (date: DateInput, options?: Intl.DateTimeFormatOptions) =>
51
- formatDateTime(date, locale.value, options),
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, locale.value),
55
- /** A number; a value that is not one is returned as is. */
56
- formatNumber: (value: unknown, options?: Intl.NumberFormatOptions) =>
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: (value: unknown, options?: Intl.NumberFormatOptions) =>
60
- formatPrice(value, locale.value, options),
114
+ formatPrice: formatPriceIn,
61
115
  /** A ratio as a percentage (`0.25` → "25%"). */
62
- formatPercentage: (value: unknown, options?: Intl.NumberFormatOptions) =>
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/build/composables/page/usePageRecordLabel";
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 pickLandingFromNode(node: SiteLayoutTree): string | null {
47
- if (node.layoutUrl && node.hasAccess !== false) {
48
- return node.fullSlug;
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
- if (child.hasAccess === false) continue;
54
- const candidate = pickLandingFromNode(child);
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
- return pickLandingFromNode(moduleRoot);
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 navigateDms(landingSlug, { replace: true });
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 shows while its page is paused and events came
4
- * in: "N new · Show". Show reads the rows once; the page stays paused.
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
- defineProps<{
7
- /** Events the table received since its rows were held or last shown. */
8
- count: number;
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
- {{ t("dms.live.new_rows", { count }, count) }}
61
+ <span v-if="reasonText" class="dms-live-hold-banner__reason min-w-0">
62
+ {{ reasonText }}
24
63
  </span>
25
- <span aria-hidden="true" class="text-muted">·</span>
26
- <UButton
27
- :label="t('dms.live.show_new')"
28
- color="neutral"
29
- variant="link"
30
- size="xs"
31
- class="p-0 font-medium"
32
- @click="emit('show')"
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 },