@protobase/ui 0.63.5 → 0.65.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/dist/account/change-email-dialog.js +1 -1
- package/dist/account/devices-section.js +11 -5
- package/dist/account/messages.js +2 -333
- package/dist/account/passkeys-section.js +2 -2
- package/dist/account/password-change-dialog.js +3 -3
- package/dist/account/sign-in-policy-form.js +6 -3
- package/dist/account/sign-in-providers-section.js +1 -1
- package/dist/account/staff-sign-in-log.js +4 -4
- package/dist/action-card/messages.js +2 -5
- package/dist/activity-chart/activity-chart.js +4 -6
- package/dist/activity-chart/messages.js +2 -11
- package/dist/app/app.js +1 -2
- package/dist/app/batch-failure.js +5 -1
- package/dist/app/bottom-bar-from-meta.js +2 -3
- package/dist/app/change-confirm/messages.js +2 -13
- package/dist/app/change-confirm/use-change-confirm.js +1 -1
- package/dist/app/charts/chart-groups.js +3 -1
- package/dist/app/charts/group-bars.js +1 -1
- package/dist/app/charts/messages.js +2 -23
- package/dist/app/charts/period-chart.js +1 -1
- package/dist/app/comments/messages.js +2 -19
- package/dist/app/confirm-sign-in-messages.js +2 -19
- package/dist/app/confirm-sign-in.js +1 -1
- package/dist/app/create/create-page.js +3 -3
- package/dist/app/create/create-record-form.js +2 -2
- package/dist/app/create/create-route.js +1 -1
- package/dist/app/create/messages.js +2 -29
- package/dist/app/custom-section.js +1 -2
- package/dist/app/delete/blocked-delete.js +5 -2
- package/dist/app/delete/dialogs.js +21 -8
- package/dist/app/delete/messages.js +2 -63
- package/dist/app/delete/use-delete-flow.js +5 -4
- package/dist/app/displays/board-column.js +1 -1
- package/dist/app/displays/board-columns.js +1 -1
- package/dist/app/displays/board-display.js +21 -9
- package/dist/app/displays/calendar-display.js +15 -6
- package/dist/app/displays/cards-display.js +1 -1
- package/dist/app/displays/custom-display.js +1 -2
- package/dist/app/displays/list-cards.js +1 -1
- package/dist/app/displays/map-display.js +19 -6
- package/dist/app/displays/messages.js +2 -147
- package/dist/app/displays/period-controls.js +2 -2
- package/dist/app/displays/timeline-display.js +15 -6
- package/dist/app/displays/timeline-range.js +1 -1
- package/dist/app/displays/use-board-move.js +3 -3
- package/dist/app/displays/use-calendar-move.js +1 -1
- package/dist/app/document-title.js +1 -1
- package/dist/app/embedded-list/cut-off-note.js +7 -1
- package/dist/app/embedded-list/embedded-row-targets.js +3 -3
- package/dist/app/embedded-list/messages.js +2 -21
- package/dist/app/export/builder-port.js +1 -1
- package/dist/app/export/export-dialog.js +14 -8
- package/dist/app/export/messages.js +2 -75
- package/dist/app/export/use-export-flow.js +9 -3
- package/dist/app/field-editor.js +2 -2
- package/dist/app/field-errors.js +18 -7
- package/dist/app/field-messages.js +2 -45
- package/dist/app/field-types/members/messages.js +2 -15
- package/dist/app/field-types/messages.js +2 -5
- package/dist/app/field-types/widget-part.js +1 -1
- package/dist/app/file-field.js +3 -3
- package/dist/app/gallery/gallery-section.js +5 -2
- package/dist/app/gallery/messages.js +2 -27
- package/dist/app/gallery/photo-details.js +2 -2
- package/dist/app/hand-order/hand-sorted-list.js +1 -2
- package/dist/app/hand-order/messages.js +2 -29
- package/dist/app/hand-order/use-hand-order.js +1 -1
- package/dist/app/history/describe-change.js +1 -1
- package/dist/app/history/messages.js +2 -29
- package/dist/app/import/convert.js +19 -10
- package/dist/app/import/import-check-step.js +5 -5
- package/dist/app/import/import-dialog.js +5 -2
- package/dist/app/import/import-file-step.js +1 -1
- package/dist/app/import/import-mapping-step.js +3 -3
- package/dist/app/import/messages.js +2 -197
- package/dist/app/import/prepare-rows.js +11 -4
- package/dist/app/import/sheet-cell.js +1 -1
- package/dist/app/import/xlsx-reader.js +2 -2
- package/dist/app/import/zip-reader.js +4 -1
- package/dist/app/list-actions/use-list-actions.js +4 -1
- package/dist/app/list-edit/messages.js +2 -11
- package/dist/app/list-empty-state.js +7 -4
- package/dist/app/list-group-chart.js +1 -1
- package/dist/app/list-messages.js +2 -53
- package/dist/app/list-page.js +9 -9
- package/dist/app/live-update/messages.js +2 -11
- package/dist/app/map/messages.js +2 -11
- package/dist/app/menu-icons.js +10 -3
- package/dist/app/messages.js +2 -139
- package/dist/app/meta-gate-messages.js +2 -13
- package/dist/app/nav-from-meta.js +8 -9
- package/dist/app/new-version/messages.js +2 -21
- package/dist/app/new-version/new-version-banner.js +1 -2
- package/dist/app/pages/action-inputs/action-inputs-dialog.js +1 -1
- package/dist/app/pages/action-inputs/input-answers.js +1 -1
- package/dist/app/pages/blocks/modal-form.js +1 -1
- package/dist/app/pages/blocks/settings.js +1 -1
- package/dist/app/pages/blocks/tabs.js +1 -1
- package/dist/app/pages/composed-page.js +1 -2
- package/dist/app/pages/custom-boundary.js +1 -2
- package/dist/app/pages/messages.js +2 -79
- package/dist/app/pages/render-node.js +2 -3
- package/dist/app/pages/use-run-action.js +14 -6
- package/dist/app/rank-after/dependency-rule.js +8 -2
- package/dist/app/rank-after/messages.js +2 -5
- package/dist/app/rank-after/ranked-place.js +7 -1
- package/dist/app/record-chart/messages.js +2 -25
- package/dist/app/record-lines-cell.js +4 -1
- package/dist/app/record-lines.js +2 -2
- package/dist/app/record-messages.js +2 -83
- package/dist/app/record-page.js +3 -3
- package/dist/app/record-row/messages.js +2 -23
- package/dist/app/record-row/record-row-body.js +1 -1
- package/dist/app/record-row/record-row.js +2 -2
- package/dist/app/record-row/saved-record-row.js +2 -2
- package/dist/app/related-cards/messages.js +2 -15
- package/dist/app/related-dots/dots-summary.js +1 -1
- package/dist/app/related-dots/messages.js +2 -5
- package/dist/app/related-dots/related-dots.js +2 -3
- package/dist/app/relation-picker.js +1 -1
- package/dist/app/runtime/messages.js +2 -55
- package/dist/app/runtime/runtime-status.js +12 -3
- package/dist/app/saved/messages.js +2 -19
- package/dist/app/saved/saved-list.js +2 -2
- package/dist/app/search/messages.js +2 -19
- package/dist/app/search/navigation-hits.js +1 -1
- package/dist/app/search/search-model.js +9 -3
- package/dist/app/searches/messages.js +2 -93
- package/dist/app/searches/save-search-button.js +3 -3
- package/dist/app/searches/saved-search-rows.js +2 -2
- package/dist/app/searches/saved-search-section.js +3 -3
- package/dist/app/searches/saved-searches.js +13 -11
- package/dist/app/searches/search-controls.js +1 -1
- package/dist/app/searches/search-diff.js +8 -2
- package/dist/app/searches/update-search-dialog.js +9 -3
- package/dist/app/searches/use-save-search.js +1 -1
- package/dist/app/searches/use-search-row.js +2 -2
- package/dist/app/sensitive-field.js +3 -3
- package/dist/app/source-notice.js +3 -3
- package/dist/app/staff-banner.js +12 -8
- package/dist/app/use-live-save.js +2 -2
- package/dist/app/user-menu-from-meta.js +2 -3
- package/dist/app/value-badge.js +3 -4
- package/dist/app-shell/global-search.js +2 -2
- package/dist/app-shell/messages.js +2 -63
- package/dist/app-shell/sidebar-group.js +2 -2
- package/dist/app-shell/sidebar.js +1 -2
- package/dist/app-shell/top-bar.js +1 -1
- package/dist/assistant-dock/messages.js +2 -23
- package/dist/auth/auth-gate.js +1 -1
- package/dist/auth/auth-messages.js +9 -88
- package/dist/auth/email-code-form.js +2 -3
- package/dist/auth/forgot-password-form.js +2 -3
- package/dist/auth/messages.js +2 -203
- package/dist/auth/provider-sign-in-page.js +3 -3
- package/dist/auth/resend-code-button.js +1 -1
- package/dist/auth/reset-password-form.js +1 -1
- package/dist/auth/reset-password-page.js +1 -1
- package/dist/auth/sign-in-form.js +2 -2
- package/dist/auth/sign-up-code-form.js +2 -3
- package/dist/auth/sign-up-details-form.js +3 -4
- package/dist/auth/staff-sign-in-form.js +3 -3
- package/dist/calls/call-guests-panel.js +1 -1
- package/dist/calls/call-lobby-notice.js +1 -1
- package/dist/calls/call-mark.js +1 -1
- package/dist/calls/call-people.js +1 -1
- package/dist/calls/call-tile.js +2 -2
- package/dist/calls/messages.js +2 -139
- package/dist/carousel/carousel-controls.js +4 -1
- package/dist/carousel/messages.js +2 -13
- package/dist/chat/messages.js +2 -19
- package/dist/compact-table/compact-table.js +1 -1
- package/dist/compact-table/messages.js +2 -15
- package/dist/data-grid/cell-text.js +6 -5
- package/dist/data-grid/cells.js +7 -4
- package/dist/data-grid/grid-footer.js +1 -1
- package/dist/data-grid/grid-row.js +1 -1
- package/dist/data-grid/header-menu.js +1 -1
- package/dist/data-grid/messages.js +2 -49
- package/dist/data-grid/resize-handle.js +1 -1
- package/dist/data-grid/row-reorder.js +20 -5
- package/dist/filter-panel/active-filter-chips.js +1 -1
- package/dist/filter-panel/date-presets.js +2 -2
- package/dist/filter-panel/facet-combobox.js +1 -1
- package/dist/filter-panel/facet-group.js +1 -1
- package/dist/filter-panel/messages.js +2 -49
- package/dist/filter-panel/range-filter.js +1 -1
- package/dist/format/date.js +4 -4
- package/dist/format/messages.js +2 -21
- package/dist/format/money.js +1 -1
- package/dist/format/number.js +5 -2
- package/dist/forms/messages.js +2 -21
- package/dist/inline-child-table/inline-child-table.js +19 -4
- package/dist/inline-child-table/line-row.js +2 -2
- package/dist/inline-child-table/messages.js +2 -35
- package/dist/invitations/link-notice.js +2 -3
- package/dist/invitations/messages.js +2 -21
- package/dist/invitations/pending-invitation-row.js +1 -1
- package/dist/lists/messages.js +2 -5
- package/dist/live/columns-from-model.js +14 -31
- package/dist/live/display-value.js +1 -1
- package/dist/live/messages.js +2 -15
- package/dist/live/value-color.js +13 -3
- package/dist/live/view-fields.js +4 -2
- package/dist/locale/en.js +1399 -0
- package/dist/locale/messages.js +38 -7
- package/dist/locale/nl.js +1399 -0
- package/dist/markdown/messages.js +2 -13
- package/dist/mentions/messages.js +2 -13
- package/dist/notifications/bell/messages.js +2 -35
- package/dist/notifications/bell/unread-label.js +1 -1
- package/dist/organizations/invitation-page.js +31 -13
- package/dist/organizations/invitations-page.js +1 -1
- package/dist/organizations/members-page.js +2 -2
- package/dist/organizations/messages.js +2 -187
- package/dist/organizations/organization-page.js +4 -4
- package/dist/organizations/organizations-page.js +1 -1
- package/dist/package.js +1 -1
- package/dist/plugins/load-plugin.js +2 -2
- package/dist/plugins/messages.js +2 -33
- package/dist/plugins/plugin-notice.js +7 -5
- package/dist/primitives/badge.d.ts +2 -1
- package/dist/primitives/messages.js +2 -13
- package/dist/primitives/token.js +1 -1
- package/dist/record-view/field.js +2 -2
- package/dist/record-view/messages.js +2 -33
- package/dist/record-view/record-header.js +2 -2
- package/dist/roles/messages.js +2 -11
- package/dist/shell/assets/app-BOuBCV1m.js +8 -0
- package/dist/shell/assets/{calls-CPiQcC70.js → calls-C22bYKio.js} +2 -2
- package/dist/shell/assets/export-worker-ClXdfeuq.js +15 -0
- package/dist/shell/assets/{index-_ZpZ2ro0.js → index-G0fdUd70.js} +2 -2
- package/dist/shell/assets/{maplibre-CjNYwEqW.js → maplibre-CRmpQfDl.js} +3 -3
- package/dist/shell/assets/parse-worker-DxsmAjef.js +18 -0
- package/dist/shell/assets/preload-helper-BgLOXTzV.js +2 -0
- package/dist/shell/assets/{record-map-DjqQGqZ2.js → record-map-DsP4sXes.js} +2 -2
- package/dist/shell/assets/{records-map-DU29d6QK.js → records-map-BtWK38Kn.js} +2 -2
- package/dist/shell/assets/shared-protobase-ui-xqMMtr7u.js +2 -0
- package/dist/shell/assets/vendor-Kvdo8Jrw.js +73 -0
- package/dist/shell/index.html +5 -5
- package/dist/shell/protobase.shell.json +2 -2
- package/dist/shell/protobase.sw.js +2 -2
- package/dist/shell-source-maps/assets/app-BOuBCV1m.js.map +1 -0
- package/dist/shell-source-maps/assets/{calls-CPiQcC70.js.map → calls-C22bYKio.js.map} +1 -1
- package/dist/shell-source-maps/assets/export-worker-ClXdfeuq.js.map +1 -0
- package/dist/shell-source-maps/assets/{index-_ZpZ2ro0.js.map → index-G0fdUd70.js.map} +1 -1
- package/dist/shell-source-maps/assets/{maplibre-CjNYwEqW.js.map → maplibre-CRmpQfDl.js.map} +1 -1
- package/dist/shell-source-maps/assets/parse-worker-DxsmAjef.js.map +1 -0
- package/dist/shell-source-maps/assets/preload-helper-BgLOXTzV.js.map +1 -0
- package/dist/shell-source-maps/assets/{record-map-DjqQGqZ2.js.map → record-map-DsP4sXes.js.map} +1 -1
- package/dist/shell-source-maps/assets/{records-map-DU29d6QK.js.map → records-map-BtWK38Kn.js.map} +1 -1
- package/dist/shell-source-maps/assets/shared-protobase-ui-xqMMtr7u.js.map +1 -0
- package/dist/shell-source-maps/assets/vendor-Kvdo8Jrw.js.map +1 -0
- package/dist/side-panel/messages.js +2 -5
- package/dist/status/messages.js +2 -59
- package/dist/toasts/messages.js +2 -5
- package/dist/users/create-user-form.js +1 -1
- package/dist/users/messages.js +2 -49
- package/package.json +5 -4
- package/dist/app/icons.js +0 -27
- package/dist/app-shell/nav.js +0 -85
- package/dist/locale/slotted.js +0 -14
- package/dist/mocks/activity.js +0 -24
- package/dist/mocks/rng.js +0 -20
- package/dist/mocks/users.js +0 -63
- package/dist/shell/assets/app-BPv_SjnU.js +0 -9
- package/dist/shell/assets/export-worker-3e4Zsv0a.js +0 -3
- package/dist/shell/assets/parse-worker-UhbwEjS0.js +0 -6
- package/dist/shell/assets/preload-helper-SYSsmQ2O.js +0 -2
- package/dist/shell/assets/shared-protobase-ui-Cab5nqST.js +0 -2
- package/dist/shell/assets/vendor-iwLB0x-s.js +0 -63
- package/dist/shell-source-maps/assets/app-BPv_SjnU.js.map +0 -1
- package/dist/shell-source-maps/assets/export-worker-3e4Zsv0a.js.map +0 -1
- package/dist/shell-source-maps/assets/parse-worker-UhbwEjS0.js.map +0 -1
- package/dist/shell-source-maps/assets/preload-helper-SYSsmQ2O.js.map +0 -1
- package/dist/shell-source-maps/assets/shared-protobase-ui-Cab5nqST.js.map +0 -1
- package/dist/shell-source-maps/assets/vendor-iwLB0x-s.js.map +0 -1
|
@@ -1,86 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { messages } from "../locale/messages.js";
|
|
2
2
|
//#region src/app/record-messages.ts
|
|
3
|
-
const text =
|
|
4
|
-
en: {
|
|
5
|
-
details: "Details",
|
|
6
|
-
history: "History",
|
|
7
|
-
comments: "Comments",
|
|
8
|
-
summary: "Summary",
|
|
9
|
-
loading: "Loading",
|
|
10
|
-
fetching: "Fetching the record.",
|
|
11
|
-
noRecord: "This record does not exist, or you cannot see it.",
|
|
12
|
-
openingElsewhere: "Opening the record in its organization.",
|
|
13
|
-
couldNotLoad: "Could not load the record",
|
|
14
|
-
someoneElse: "Someone else",
|
|
15
|
-
justNow: "just now",
|
|
16
|
-
saved: "Saved",
|
|
17
|
-
save: "Save",
|
|
18
|
-
cancel: "Cancel",
|
|
19
|
-
unsavedChanges: "Unsaved changes",
|
|
20
|
-
notSaved: "Not saved",
|
|
21
|
-
linesChanged: "The lines were changed by someone else",
|
|
22
|
-
linesReloaded: "The lines were reloaded. Your new order is kept: Save again to apply it.",
|
|
23
|
-
unsavedKept: "You have unsaved changes to this record.",
|
|
24
|
-
continueEditing: "Continue editing",
|
|
25
|
-
discard: "Discard",
|
|
26
|
-
unsavedRestored: "Your unsaved changes were restored.",
|
|
27
|
-
keep: "Keep",
|
|
28
|
-
savingSubject: (subject) => `Saving ${subject}...`,
|
|
29
|
-
subjectSaved: (subject) => `${subject} saved`,
|
|
30
|
-
changedBySomeoneElse: "Changed by someone else",
|
|
31
|
-
couldNotSave: "Could not save",
|
|
32
|
-
recordActions: "Record actions",
|
|
33
|
-
edit: "Edit",
|
|
34
|
-
delete: "Delete",
|
|
35
|
-
nothingYet: "Nothing here yet.",
|
|
36
|
-
couldNotLoadRelated: "Could not load",
|
|
37
|
-
relatedRecords: "Related records",
|
|
38
|
-
lines: "Lines",
|
|
39
|
-
linesHelp: "What the document bills for. Edit a line in place, add one, or drag the handle to change the order; Save applies it all.",
|
|
40
|
-
lineNumber: (place) => `Line ${place}`,
|
|
41
|
-
lineField: (label, place) => `${label}, line ${place}`,
|
|
42
|
-
tooManyLines: (limit) => `This record has more than ${limit} lines, so they show here read-only.`
|
|
43
|
-
},
|
|
44
|
-
nl: {
|
|
45
|
-
details: "Details",
|
|
46
|
-
history: "Geschiedenis",
|
|
47
|
-
comments: "Opmerkingen",
|
|
48
|
-
summary: "Overzicht",
|
|
49
|
-
loading: "Laden",
|
|
50
|
-
fetching: "Het record wordt opgehaald.",
|
|
51
|
-
noRecord: "Dit record bestaat niet, of je mag het niet zien.",
|
|
52
|
-
openingElsewhere: "Het record wordt in zijn organisatie geopend.",
|
|
53
|
-
couldNotLoad: "Kon het record niet laden",
|
|
54
|
-
someoneElse: "Iemand anders",
|
|
55
|
-
justNow: "zojuist",
|
|
56
|
-
saved: "Bewaard",
|
|
57
|
-
save: "Bewaren",
|
|
58
|
-
cancel: "Annuleren",
|
|
59
|
-
unsavedChanges: "Niet bewaarde wijzigingen",
|
|
60
|
-
notSaved: "Niet bewaard",
|
|
61
|
-
linesChanged: "De regels zijn door iemand anders gewijzigd",
|
|
62
|
-
linesReloaded: "De regels zijn opnieuw geladen. Je nieuwe volgorde is behouden: bewaar opnieuw om hem toe te passen.",
|
|
63
|
-
unsavedKept: "Je hebt niet bewaarde wijzigingen in dit record.",
|
|
64
|
-
continueEditing: "Verder bewerken",
|
|
65
|
-
discard: "Weggooien",
|
|
66
|
-
unsavedRestored: "Je niet bewaarde wijzigingen zijn teruggezet.",
|
|
67
|
-
keep: "Houden",
|
|
68
|
-
savingSubject: (subject) => `${subject} bewaren...`,
|
|
69
|
-
subjectSaved: (subject) => `${subject} bewaard`,
|
|
70
|
-
changedBySomeoneElse: "Gewijzigd door iemand anders",
|
|
71
|
-
couldNotSave: "Kon niet bewaren",
|
|
72
|
-
recordActions: "Recordacties",
|
|
73
|
-
edit: "Bewerken",
|
|
74
|
-
delete: "Verwijderen",
|
|
75
|
-
nothingYet: "Hier staat nog niets.",
|
|
76
|
-
couldNotLoadRelated: "Kon niet laden",
|
|
77
|
-
relatedRecords: "Gerelateerde records",
|
|
78
|
-
lines: "Regels",
|
|
79
|
-
linesHelp: "Waar het document voor factureert. Wijzig een regel ter plekke, voeg er een toe, of sleep de greep om de volgorde te wijzigen; Bewaren past alles toe.",
|
|
80
|
-
lineNumber: (place) => `Regel ${place}`,
|
|
81
|
-
lineField: (label, place) => `${label}, regel ${place}`,
|
|
82
|
-
tooManyLines: (limit) => `Dit record heeft meer dan ${limit} regels, dus ze staan hier alleen ter inzage.`
|
|
83
|
-
}
|
|
84
|
-
});
|
|
3
|
+
const text = messages("app/record");
|
|
85
4
|
//#endregion
|
|
86
5
|
export { text };
|
package/dist/app/record-page.js
CHANGED
|
@@ -11,7 +11,7 @@ import { humanize } from "../live/naming.js";
|
|
|
11
11
|
import { markdownExcerpt } from "../markdown/markdown-excerpt.js";
|
|
12
12
|
import { isMarkdown } from "../markdown/markdown-hint.js";
|
|
13
13
|
import { contactFormat } from "../live/contact-links.js";
|
|
14
|
-
import {
|
|
14
|
+
import { valueTone } from "../live/value-color.js";
|
|
15
15
|
import { displayValue, valueTitle } from "../live/display-value.js";
|
|
16
16
|
import { filledFields } from "./filled-fields.js";
|
|
17
17
|
import { Skeleton } from "../primitives/skeleton.js";
|
|
@@ -107,7 +107,7 @@ const RecordPage = ({ resource, recordKey }) => {
|
|
|
107
107
|
const record = useOpenedRecord(resource, recordKey);
|
|
108
108
|
if (!model) return /* @__PURE__ */ jsx(Notice, {
|
|
109
109
|
title: text("notFound"),
|
|
110
|
-
children: text("noResource", resource)
|
|
110
|
+
children: text("noResource", { name: resource })
|
|
111
111
|
});
|
|
112
112
|
if (record.isPending) return /* @__PURE__ */ jsx(Notice, {
|
|
113
113
|
title: text$1("loading"),
|
|
@@ -484,7 +484,7 @@ const LoadedRecord = ({ model, recordKey, stored, preview }) => {
|
|
|
484
484
|
title,
|
|
485
485
|
status: status ? {
|
|
486
486
|
label: enumLabel(status, hint("status")?.valueLabels),
|
|
487
|
-
tone:
|
|
487
|
+
tone: valueTone(hint("status")?.valueColors, status)
|
|
488
488
|
} : void 0
|
|
489
489
|
}),
|
|
490
490
|
editor.message && /* @__PURE__ */ jsx("div", {
|
|
@@ -1,26 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { messages } from "../../locale/messages.js";
|
|
2
2
|
//#region src/app/record-row/messages.ts
|
|
3
|
-
const text =
|
|
4
|
-
en: {
|
|
5
|
-
couldNotLoad: "Could not load",
|
|
6
|
-
noneMatch: (plural) => `No ${plural} match.`,
|
|
7
|
-
viewAll: "View all",
|
|
8
|
-
new: "New",
|
|
9
|
-
previous: (label) => `Previous ${label}`,
|
|
10
|
-
next: (label) => `Next ${label}`,
|
|
11
|
-
couldNotLoadYour: (plural) => `Could not load your ${plural}`,
|
|
12
|
-
noneYet: (plural) => `No ${plural} yet.`
|
|
13
|
-
},
|
|
14
|
-
nl: {
|
|
15
|
-
couldNotLoad: "Kon niet laden",
|
|
16
|
-
noneMatch: (plural) => `Geen ${plural} gevonden.`,
|
|
17
|
-
viewAll: "Alles bekijken",
|
|
18
|
-
new: "Nieuw",
|
|
19
|
-
previous: (label) => `Terug in ${label}`,
|
|
20
|
-
next: (label) => `Verder in ${label}`,
|
|
21
|
-
couldNotLoadYour: (plural) => `Kon je ${plural} niet laden`,
|
|
22
|
-
noneYet: (plural) => `Nog geen ${plural}.`
|
|
23
|
-
}
|
|
24
|
-
});
|
|
3
|
+
const text = messages("app/record-row");
|
|
25
4
|
//#endregion
|
|
26
5
|
export { text };
|
|
@@ -82,7 +82,7 @@ const RecordRowBody = ({ model, view, filter, sort = "", display: named, limit,
|
|
|
82
82
|
error: rows.error
|
|
83
83
|
}) : !source || source.total === 0 ? /* @__PURE__ */ jsx("p", {
|
|
84
84
|
className: "text-muted-foreground",
|
|
85
|
-
children: empty ?? text("noneMatch", plural.toLowerCase())
|
|
85
|
+
children: empty ?? text("noneMatch", { plural: plural.toLowerCase() })
|
|
86
86
|
}) : /* @__PURE__ */ jsx(RecordRow, {
|
|
87
87
|
model,
|
|
88
88
|
view,
|
|
@@ -70,7 +70,7 @@ const RecordRow = ({ model, view, display, source, label, isNew }) => {
|
|
|
70
70
|
}),
|
|
71
71
|
scroll.back && /* @__PURE__ */ jsx("button", {
|
|
72
72
|
type: "button",
|
|
73
|
-
"aria-label": text("previous", label.toLowerCase()),
|
|
73
|
+
"aria-label": text("previous", { label: label.toLowerCase() }),
|
|
74
74
|
onClick: () => scroll.page(-1),
|
|
75
75
|
className: `${arrowClass} -left-3`,
|
|
76
76
|
children: /* @__PURE__ */ jsx(ChevronLeft, {
|
|
@@ -80,7 +80,7 @@ const RecordRow = ({ model, view, display, source, label, isNew }) => {
|
|
|
80
80
|
}),
|
|
81
81
|
scroll.on && /* @__PURE__ */ jsx("button", {
|
|
82
82
|
type: "button",
|
|
83
|
-
"aria-label": text("next", label.toLowerCase()),
|
|
83
|
+
"aria-label": text("next", { label: label.toLowerCase() }),
|
|
84
84
|
onClick: () => scroll.page(1),
|
|
85
85
|
className: `${arrowClass} -right-3`,
|
|
86
86
|
children: /* @__PURE__ */ jsx(ChevronRight, {
|
|
@@ -20,14 +20,14 @@ const SavedRecordRow = ({ model, view, empty, ...props }) => {
|
|
|
20
20
|
const plural = (view.names?.plural ?? humanize(model.name)).toLowerCase();
|
|
21
21
|
if (!listed.listOf) return null;
|
|
22
22
|
if (saved.error) return /* @__PURE__ */ jsx(ErrorBanner, {
|
|
23
|
-
title: text("couldNotLoadYour", plural),
|
|
23
|
+
title: text("couldNotLoadYour", { plural }),
|
|
24
24
|
error: saved.error
|
|
25
25
|
});
|
|
26
26
|
if (!saved.data) return /* @__PURE__ */ jsx(Skeleton, { className: "h-24" });
|
|
27
27
|
const scope = savedScope(listed.model, saved.data);
|
|
28
28
|
if (!scope) return /* @__PURE__ */ jsx("p", {
|
|
29
29
|
className: "text-muted-foreground",
|
|
30
|
-
children: empty ?? text("noneYet", plural)
|
|
30
|
+
children: empty ?? text("noneYet", { plural })
|
|
31
31
|
});
|
|
32
32
|
return /* @__PURE__ */ jsx(RecordRowBody, {
|
|
33
33
|
...props,
|
|
@@ -1,18 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { messages } from "../../locale/messages.js";
|
|
2
2
|
//#region src/app/related-cards/messages.ts
|
|
3
|
-
const text =
|
|
4
|
-
en: {
|
|
5
|
-
showMore: "Show more",
|
|
6
|
-
showLess: "Show less",
|
|
7
|
-
couldNotLoad: "Could not load",
|
|
8
|
-
nothingYet: "Nothing here yet."
|
|
9
|
-
},
|
|
10
|
-
nl: {
|
|
11
|
-
showMore: "Meer tonen",
|
|
12
|
-
showLess: "Minder tonen",
|
|
13
|
-
couldNotLoad: "Kon niet laden",
|
|
14
|
-
nothingYet: "Hier staat nog niets."
|
|
15
|
-
}
|
|
16
|
-
});
|
|
3
|
+
const text = messages("app/related-cards");
|
|
17
4
|
//#endregion
|
|
18
5
|
export { text };
|
|
@@ -5,7 +5,7 @@ import { text } from "./messages.js";
|
|
|
5
5
|
* of the status's values, such as "4 tasks: 1 To do, 3 Done". "No tasks" without any.
|
|
6
6
|
*/
|
|
7
7
|
const dotsSummary = (statuses, { values, label, singular, plural }) => {
|
|
8
|
-
if (statuses.length === 0) return text("none", plural);
|
|
8
|
+
if (statuses.length === 0) return text("none", { plural });
|
|
9
9
|
const counts = /* @__PURE__ */ new Map();
|
|
10
10
|
for (const status of statuses) if (status !== null && status !== void 0) counts.set(String(status), (counts.get(String(status)) ?? 0) + 1);
|
|
11
11
|
const parts = [...values, ...[...counts.keys()].filter((value) => !values.includes(value))].filter((value) => counts.has(value)).map((value) => `${counts.get(value)} ${label(value)}`);
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { messages } from "../../locale/messages.js";
|
|
2
2
|
//#region src/app/related-dots/messages.ts
|
|
3
|
-
const text =
|
|
4
|
-
en: { none: (plural) => `No ${plural}` },
|
|
5
|
-
nl: { none: (plural) => `Geen ${plural}` }
|
|
6
|
-
});
|
|
3
|
+
const text = messages("app/related-dots");
|
|
7
4
|
//#endregion
|
|
8
5
|
export { text };
|
|
@@ -2,11 +2,10 @@ import { cn } from "../../lib/cn.js";
|
|
|
2
2
|
import { toneDots } from "../../primitives/badge.js";
|
|
3
3
|
import { humanize } from "../../live/naming.js";
|
|
4
4
|
import { recordTitleField } from "../../live/model-helpers.js";
|
|
5
|
-
import {
|
|
5
|
+
import { valueColor, valueTone } from "../../live/value-color.js";
|
|
6
6
|
import { displayValue } from "../../live/display-value.js";
|
|
7
7
|
import { displayRow } from "../displays/list-displays.js";
|
|
8
8
|
import { AppLink } from "../use-app-address.js";
|
|
9
|
-
import { valueColor } from "../../live/value-color.js";
|
|
10
9
|
import { placeCard } from "./card-place.js";
|
|
11
10
|
import { dotCard } from "./dot-card.js";
|
|
12
11
|
import { dotsSummary } from "./dots-summary.js";
|
|
@@ -153,7 +152,7 @@ const RelatedDots = ({ column, records, target, view, wrap = false, Card }) => {
|
|
|
153
152
|
children: /* @__PURE__ */ jsx("span", {
|
|
154
153
|
"aria-hidden": true,
|
|
155
154
|
style: color === void 0 ? void 0 : { backgroundColor: color },
|
|
156
|
-
className: cn(dotMark, color === void 0 && toneDots[
|
|
155
|
+
className: cn(dotMark, color === void 0 && toneDots[valueTone(hints?.valueColors, value)], shown?.key === row.key && "ring-2 ring-foreground/30")
|
|
157
156
|
})
|
|
158
157
|
}, row.key);
|
|
159
158
|
}),
|
|
@@ -47,7 +47,7 @@ const RelationPicker = ({ target, view, value, label, chosen = [value], several
|
|
|
47
47
|
chosen,
|
|
48
48
|
several,
|
|
49
49
|
closedText: label ?? value,
|
|
50
|
-
placeholder: text("searchPlural", (view?.names?.plural ?? humanize(target.name)).toLowerCase()),
|
|
50
|
+
placeholder: text("searchPlural", { plural: (view?.names?.plural ?? humanize(target.name)).toLowerCase() }),
|
|
51
51
|
invalid,
|
|
52
52
|
paging: {
|
|
53
53
|
more: Boolean(rows.hasNextPage),
|
|
@@ -1,58 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { messages } from "../../locale/messages.js";
|
|
2
2
|
//#region src/app/runtime/messages.ts
|
|
3
|
-
const text =
|
|
4
|
-
en: {
|
|
5
|
-
immediate: "Updates as soon as a release is out",
|
|
6
|
-
weekly: "Updates at a set time every week",
|
|
7
|
-
scheduled: "Updates at the time set for this release",
|
|
8
|
-
manual: "Updates only when asked to",
|
|
9
|
-
job: "Preparing the update",
|
|
10
|
-
build: "Building",
|
|
11
|
-
updatingNow: "Updating now",
|
|
12
|
-
started: (stage, ago) => `${stage}, started ${ago}`,
|
|
13
|
-
nextOn: (policy, when) => `${policy}: next on ${when}`,
|
|
14
|
-
succeeded: (version, when) => `Updated to ${version} on ${when}`,
|
|
15
|
-
unchanged: (version, when) => `The update to ${version} on ${when} changed nothing`,
|
|
16
|
-
failed: (version, when) => `The update to ${version} failed on ${when}`,
|
|
17
|
-
alreadyLatest: "Already on the latest version, or an update is running.",
|
|
18
|
-
onlyAdmin: "Only an admin can update the runtime.",
|
|
19
|
-
couldNotStart: "The update could not be started. Try again later.",
|
|
20
|
-
runtimeUpdate: "Runtime update",
|
|
21
|
-
close: "Close",
|
|
22
|
-
updating: "Updating…",
|
|
23
|
-
updateNow: "Update now",
|
|
24
|
-
currentVersion: "Current version",
|
|
25
|
-
latestVersion: "Latest version",
|
|
26
|
-
checkFailed: "The status could not be checked again; this is the last one read.",
|
|
27
|
-
updateAvailable: "Update available",
|
|
28
|
-
update: "Update"
|
|
29
|
-
},
|
|
30
|
-
nl: {
|
|
31
|
-
immediate: "Werkt bij zodra er een release is",
|
|
32
|
-
weekly: "Werkt elke week op een vast moment bij",
|
|
33
|
-
scheduled: "Werkt bij op het moment dat voor deze release is ingesteld",
|
|
34
|
-
manual: "Werkt alleen bij als erom wordt gevraagd",
|
|
35
|
-
job: "De update voorbereiden",
|
|
36
|
-
build: "Bouwen",
|
|
37
|
-
updatingNow: "Nu aan het bijwerken",
|
|
38
|
-
started: (stage, ago) => `${stage}, begonnen ${ago}`,
|
|
39
|
-
nextOn: (policy, when) => `${policy}: volgende op ${when}`,
|
|
40
|
-
succeeded: (version, when) => `Bijgewerkt naar ${version} op ${when}`,
|
|
41
|
-
unchanged: (version, when) => `De update naar ${version} op ${when} veranderde niets`,
|
|
42
|
-
failed: (version, when) => `De update naar ${version} mislukte op ${when}`,
|
|
43
|
-
alreadyLatest: "Al op de nieuwste versie, of er loopt een update.",
|
|
44
|
-
onlyAdmin: "Alleen een beheerder kan de runtime bijwerken.",
|
|
45
|
-
couldNotStart: "De update kon niet worden gestart. Probeer het later opnieuw.",
|
|
46
|
-
runtimeUpdate: "Runtime-update",
|
|
47
|
-
close: "Sluiten",
|
|
48
|
-
updating: "Bijwerken…",
|
|
49
|
-
updateNow: "Nu bijwerken",
|
|
50
|
-
currentVersion: "Huidige versie",
|
|
51
|
-
latestVersion: "Nieuwste versie",
|
|
52
|
-
checkFailed: "De status kon niet opnieuw worden gecontroleerd; dit is de laatst gelezen.",
|
|
53
|
-
updateAvailable: "Update beschikbaar",
|
|
54
|
-
update: "Bijwerken"
|
|
55
|
-
}
|
|
56
|
-
});
|
|
3
|
+
const text = messages("app/runtime");
|
|
57
4
|
//#endregion
|
|
58
5
|
export { text };
|
|
@@ -12,18 +12,27 @@ const runningText = (status, now) => {
|
|
|
12
12
|
const label = text(status.updateStage);
|
|
13
13
|
if (!status.updateStartedAt) return label;
|
|
14
14
|
const seconds = Math.max(0, Math.floor((now - Date.parse(status.updateStartedAt)) / 1e3));
|
|
15
|
-
return text("started",
|
|
15
|
+
return text("started", {
|
|
16
|
+
stage: label,
|
|
17
|
+
ago: formatAgo(seconds)
|
|
18
|
+
});
|
|
16
19
|
};
|
|
17
20
|
/** How far the running update is, or when the latest version will be applied on its own, in words; `now` in ms. */
|
|
18
21
|
const nextUpdateText = (status, now = Date.now(), zone = viewerZone()) => {
|
|
19
22
|
if (status.updating) return runningText(status, now);
|
|
20
|
-
if (status.nextUpdateAt) return text("nextOn",
|
|
23
|
+
if (status.nextUpdateAt) return text("nextOn", {
|
|
24
|
+
policy: text(status.policy),
|
|
25
|
+
when: formatDateTime(Date.parse(status.nextUpdateAt), zone)
|
|
26
|
+
});
|
|
21
27
|
return text(status.policy);
|
|
22
28
|
};
|
|
23
29
|
/** How the last update ended, in words, with the endpoint's message for the owner when it has one. */
|
|
24
30
|
const lastUpdateText = (last, zone = viewerZone()) => {
|
|
25
31
|
const when = formatDateTime(Date.parse(last.finishedAt), zone);
|
|
26
|
-
const headline = text(last.outcome,
|
|
32
|
+
const headline = text(last.outcome, {
|
|
33
|
+
version: last.toVersion,
|
|
34
|
+
when
|
|
35
|
+
});
|
|
27
36
|
return last.message ? `${headline}: ${last.message}` : `${headline}.`;
|
|
28
37
|
};
|
|
29
38
|
/** Why "Update now" failed, in words: the endpoint's own message for a refusal, when it sends one. */
|
|
@@ -1,22 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { messages } from "../../locale/messages.js";
|
|
2
2
|
//#region src/app/saved/messages.ts
|
|
3
|
-
const text =
|
|
4
|
-
en: {
|
|
5
|
-
favorite: "Favorite",
|
|
6
|
-
couldNotLoadYour: (plural) => `Could not load your ${plural}`,
|
|
7
|
-
noneYet: (plural) => `No ${plural} yet.`,
|
|
8
|
-
somethingWrong: "Something went wrong",
|
|
9
|
-
couldNotTakeOff: "Could not take it off",
|
|
10
|
-
couldNotSave: "Could not save it"
|
|
11
|
-
},
|
|
12
|
-
nl: {
|
|
13
|
-
favorite: "Favoriet",
|
|
14
|
-
couldNotLoadYour: (plural) => `Kon je ${plural} niet laden`,
|
|
15
|
-
noneYet: (plural) => `Nog geen ${plural}.`,
|
|
16
|
-
somethingWrong: "Er ging iets mis",
|
|
17
|
-
couldNotTakeOff: "Kon het niet weghalen",
|
|
18
|
-
couldNotSave: "Kon het niet bewaren"
|
|
19
|
-
}
|
|
20
|
-
});
|
|
3
|
+
const text = messages("app/saved");
|
|
21
4
|
//#endregion
|
|
22
5
|
export { text };
|
|
@@ -22,7 +22,7 @@ const SavedList = ({ model, view, target, children }) => {
|
|
|
22
22
|
}), body]
|
|
23
23
|
});
|
|
24
24
|
if (saved.error) return frame(/* @__PURE__ */ jsx(ErrorBanner, {
|
|
25
|
-
title: text("couldNotLoadYour", plural.toLowerCase()),
|
|
25
|
+
title: text("couldNotLoadYour", { plural: plural.toLowerCase() }),
|
|
26
26
|
error: saved.error
|
|
27
27
|
}));
|
|
28
28
|
if (!saved.data) return frame(/* @__PURE__ */ jsx("div", {
|
|
@@ -32,7 +32,7 @@ const SavedList = ({ model, view, target, children }) => {
|
|
|
32
32
|
const scope = savedScope(target, saved.data);
|
|
33
33
|
if (!scope) return frame(/* @__PURE__ */ jsx("p", {
|
|
34
34
|
className: "py-8 text-center text-muted-foreground",
|
|
35
|
-
children: text("noneYet", plural.toLowerCase())
|
|
35
|
+
children: text("noneYet", { plural: plural.toLowerCase() })
|
|
36
36
|
}));
|
|
37
37
|
return children(scope);
|
|
38
38
|
};
|
|
@@ -1,22 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { messages } from "../../locale/messages.js";
|
|
2
2
|
//#region src/app/search/messages.ts
|
|
3
|
-
const text =
|
|
4
|
-
en: {
|
|
5
|
-
search: "Search",
|
|
6
|
-
searchOne: (name) => `Search ${name}`,
|
|
7
|
-
searchTwo: (first, second) => `Search ${first} and ${second}`,
|
|
8
|
-
searchMore: (first, second) => `Search ${first}, ${second} and more`,
|
|
9
|
-
goTo: "Go to",
|
|
10
|
-
create: "Create"
|
|
11
|
-
},
|
|
12
|
-
nl: {
|
|
13
|
-
search: "Zoeken",
|
|
14
|
-
searchOne: (name) => `Zoek in ${name}`,
|
|
15
|
-
searchTwo: (first, second) => `Zoek in ${first} en ${second}`,
|
|
16
|
-
searchMore: (first, second) => `Zoek in ${first}, ${second} en meer`,
|
|
17
|
-
goTo: "Ga naar",
|
|
18
|
-
create: "Maken"
|
|
19
|
-
}
|
|
20
|
-
});
|
|
3
|
+
const text = messages("app/search");
|
|
21
4
|
//#endregion
|
|
22
5
|
export { text };
|
|
@@ -18,7 +18,7 @@ const navigationHits = (meta, text$2, basePath = "") => {
|
|
|
18
18
|
const view = meta.views[model.name];
|
|
19
19
|
if (!view || view.nav?.hidden || !createOffered(view, meta.pages, meta.permissions[model.name] ?? allowEverything)) return [];
|
|
20
20
|
const singular = view.names?.singular ?? humanize(model.name);
|
|
21
|
-
const label = text("title", singular);
|
|
21
|
+
const label = text("title", { noun: singular });
|
|
22
22
|
if (!matches(label, text$2) && !matches(singular, asked) && !matches(view.names?.plural ?? humanize(model.name), asked)) return [];
|
|
23
23
|
return [{
|
|
24
24
|
id: `new:${model.name}`,
|
|
@@ -19,9 +19,15 @@ const searchTargets = (meta) => Object.values(meta.resources).flatMap((model) =>
|
|
|
19
19
|
const searchPlaceholder = (targets) => {
|
|
20
20
|
const names = targets.map((target) => target.label.toLowerCase());
|
|
21
21
|
if (names.length === 0) return text("search");
|
|
22
|
-
if (names.length === 1) return text("searchOne", names[0]);
|
|
23
|
-
if (names.length === 2) return text("searchTwo",
|
|
24
|
-
|
|
22
|
+
if (names.length === 1) return text("searchOne", { name: names[0] });
|
|
23
|
+
if (names.length === 2) return text("searchTwo", {
|
|
24
|
+
first: names[0],
|
|
25
|
+
second: names[1]
|
|
26
|
+
});
|
|
27
|
+
return text("searchMore", {
|
|
28
|
+
first: names[0],
|
|
29
|
+
second: names[1]
|
|
30
|
+
});
|
|
25
31
|
};
|
|
26
32
|
/** The list filter for the text: the server's partial-word `search(...)` over the resource's search fields. */
|
|
27
33
|
const searchFilter = (text) => printFilter(where$1.search(text.trim()));
|
|
@@ -1,96 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { messages } from "../../locale/messages.js";
|
|
2
2
|
//#region src/app/searches/messages.ts
|
|
3
|
-
const text =
|
|
4
|
-
en: {
|
|
5
|
-
saveSearch: "Save search",
|
|
6
|
-
saveAsNew: (noun) => `Save as new ${noun}`,
|
|
7
|
-
updateName: (name) => `Update ${name}`,
|
|
8
|
-
updateNameQuestion: (name) => `Update ${name}?`,
|
|
9
|
-
updateNounQuestion: (noun) => `Update this ${noun}?`,
|
|
10
|
-
couldNotLoadYour: (plural) => `Could not load your ${plural}`,
|
|
11
|
-
noneYet: (plural) => `No ${plural} yet.`,
|
|
12
|
-
somethingWrong: "Something went wrong",
|
|
13
|
-
couldNotRename: "Could not rename the search",
|
|
14
|
-
renameTitle: (title) => `Rename ${title}`,
|
|
15
|
-
deleteTitle: (title) => `Delete ${title}`,
|
|
16
|
-
unreadableFilter: "A filter that cannot be read",
|
|
17
|
-
notFound: "Not found",
|
|
18
|
-
noResource: "There is no resource called {}.",
|
|
19
|
-
noSavedYet: (plural) => `No ${plural} yet. Filter the {} and save the search.`,
|
|
20
|
-
on: "On",
|
|
21
|
-
off: "Off",
|
|
22
|
-
saved: (title) => `${title} saved`,
|
|
23
|
-
couldNotChange: "Could not change the search",
|
|
24
|
-
asMany: (plural) => `As many ${plural}`,
|
|
25
|
-
more: (count, noun) => `${count} more ${noun}`,
|
|
26
|
-
fewer: (count, noun) => `${count} fewer ${noun}`,
|
|
27
|
-
cancel: "Cancel",
|
|
28
|
-
save: "Save",
|
|
29
|
-
optional: "Optional",
|
|
30
|
-
added: "Added",
|
|
31
|
-
removed: "Removed",
|
|
32
|
-
changed: "Changed",
|
|
33
|
-
filterChanges: "Filter changes",
|
|
34
|
-
firstOf: (limit, total) => `The first ${limit} of ${total}.`,
|
|
35
|
-
noPlural: (plural) => `No ${plural}.`,
|
|
36
|
-
update: "Update",
|
|
37
|
-
addedRemoved: (added, removed) => `${added} added, ${removed} removed`,
|
|
38
|
-
searchSaved: "Search saved",
|
|
39
|
-
openPlural: (plural) => `Open ${plural.toLowerCase()}`,
|
|
40
|
-
couldNotSave: "Could not save the search",
|
|
41
|
-
couldNotTakeOff: "Could not take the search off",
|
|
42
|
-
searchUpdated: "Search updated",
|
|
43
|
-
couldNotUpdate: "Could not update the search",
|
|
44
|
-
noneMatch: (plural) => `No ${plural} match.`,
|
|
45
|
-
noNew: (plural) => `No new ${plural} since you last looked.`,
|
|
46
|
-
viewAll: "View all results",
|
|
47
|
-
filters: "Filters"
|
|
48
|
-
},
|
|
49
|
-
nl: {
|
|
50
|
-
saveSearch: "Zoekopdracht bewaren",
|
|
51
|
-
saveAsNew: (noun) => `Als extra ${noun} bewaren`,
|
|
52
|
-
updateName: (name) => `${name} bijwerken`,
|
|
53
|
-
updateNameQuestion: (name) => `${name} bijwerken?`,
|
|
54
|
-
updateNounQuestion: (noun) => `${noun} bijwerken?`,
|
|
55
|
-
couldNotLoadYour: (plural) => `Kon je ${plural} niet laden`,
|
|
56
|
-
noneYet: (plural) => `Nog geen ${plural}.`,
|
|
57
|
-
somethingWrong: "Er ging iets mis",
|
|
58
|
-
couldNotRename: "Kon de zoekopdracht niet hernoemen",
|
|
59
|
-
renameTitle: (title) => `${title} hernoemen`,
|
|
60
|
-
deleteTitle: (title) => `${title} verwijderen`,
|
|
61
|
-
unreadableFilter: "Een filter dat niet kan worden gelezen",
|
|
62
|
-
notFound: "Niet gevonden",
|
|
63
|
-
noResource: "Er is geen onderdeel met de naam {}.",
|
|
64
|
-
noSavedYet: (plural) => `Nog geen ${plural}. Filter de {} en bewaar de zoekopdracht.`,
|
|
65
|
-
on: "Aan",
|
|
66
|
-
off: "Uit",
|
|
67
|
-
saved: (title) => `${title} bewaard`,
|
|
68
|
-
couldNotChange: "Kon de zoekopdracht niet wijzigen",
|
|
69
|
-
asMany: (plural) => `Evenveel ${plural}`,
|
|
70
|
-
more: (count, noun) => `${count} ${noun} meer`,
|
|
71
|
-
fewer: (count, noun) => `${count} ${noun} minder`,
|
|
72
|
-
cancel: "Annuleren",
|
|
73
|
-
save: "Bewaren",
|
|
74
|
-
optional: "Optioneel",
|
|
75
|
-
added: "Erbij",
|
|
76
|
-
removed: "Eraf",
|
|
77
|
-
changed: "Gewijzigd",
|
|
78
|
-
filterChanges: "Wijzigingen in het filter",
|
|
79
|
-
firstOf: (limit, total) => `De eerste ${limit} van ${total}.`,
|
|
80
|
-
noPlural: (plural) => `Geen ${plural}.`,
|
|
81
|
-
update: "Bijwerken",
|
|
82
|
-
addedRemoved: (added, removed) => `${added} erbij, ${removed} eraf`,
|
|
83
|
-
searchSaved: "Zoekopdracht bewaard",
|
|
84
|
-
openPlural: (plural) => `${plural} openen`,
|
|
85
|
-
couldNotSave: "Kon de zoekopdracht niet bewaren",
|
|
86
|
-
couldNotTakeOff: "Kon de zoekopdracht niet weghalen",
|
|
87
|
-
searchUpdated: "Zoekopdracht bijgewerkt",
|
|
88
|
-
couldNotUpdate: "Kon de zoekopdracht niet bijwerken",
|
|
89
|
-
noneMatch: (plural) => `Geen ${plural} gevonden.`,
|
|
90
|
-
noNew: (plural) => `Geen nieuwe ${plural} sinds je laatst keek.`,
|
|
91
|
-
viewAll: "Alle resultaten bekijken",
|
|
92
|
-
filters: "Filters"
|
|
93
|
-
}
|
|
94
|
-
});
|
|
3
|
+
const text = messages("app/searches");
|
|
95
4
|
//#endregion
|
|
96
5
|
export { text };
|
|
@@ -51,7 +51,7 @@ const SaveSearchButton = ({ model, view, search, filter, chips, className }) =>
|
|
|
51
51
|
});
|
|
52
52
|
const opened = state.opened;
|
|
53
53
|
if (opened) {
|
|
54
|
-
const saveNewLabel = text("saveAsNew", state.noun);
|
|
54
|
+
const saveNewLabel = text("saveAsNew", { noun: state.noun });
|
|
55
55
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
56
56
|
/* @__PURE__ */ jsxs(Button, {
|
|
57
57
|
className,
|
|
@@ -63,7 +63,7 @@ const SaveSearchButton = ({ model, view, search, filter, chips, className }) =>
|
|
|
63
63
|
"aria-hidden": true
|
|
64
64
|
}), /* @__PURE__ */ jsx("span", {
|
|
65
65
|
className: "max-w-60 truncate",
|
|
66
|
-
children: text("updateName", opened.name ?? state.noun)
|
|
66
|
+
children: text("updateName", { name: opened.name ?? state.noun })
|
|
67
67
|
})]
|
|
68
68
|
}),
|
|
69
69
|
/* @__PURE__ */ jsxs(Button, {
|
|
@@ -79,7 +79,7 @@ const SaveSearchButton = ({ model, view, search, filter, chips, className }) =>
|
|
|
79
79
|
confirming && /* @__PURE__ */ jsx(UpdateSearchDialog, {
|
|
80
80
|
model,
|
|
81
81
|
view,
|
|
82
|
-
title: opened.name ? text("updateNameQuestion", opened.name) : text("updateNounQuestion", state.noun),
|
|
82
|
+
title: opened.name ? text("updateNameQuestion", { name: opened.name }) : text("updateNounQuestion", { noun: state.noun }),
|
|
83
83
|
before: opened.filter,
|
|
84
84
|
after: filter,
|
|
85
85
|
saveNewLabel,
|
|
@@ -51,13 +51,13 @@ const SavedSearchRows = ({ model, view, empty }) => {
|
|
|
51
51
|
const plural = (view.names?.plural ?? humanize(model.name)).toLowerCase();
|
|
52
52
|
if (!target) return null;
|
|
53
53
|
if (saved.error) return /* @__PURE__ */ jsx(ErrorBanner, {
|
|
54
|
-
title: text("couldNotLoadYour", plural),
|
|
54
|
+
title: text("couldNotLoadYour", { plural }),
|
|
55
55
|
error: saved.error
|
|
56
56
|
});
|
|
57
57
|
if (!saved.data) return /* @__PURE__ */ jsx(Skeleton, { className: "h-40" });
|
|
58
58
|
if (saved.data.length === 0) return /* @__PURE__ */ jsx("p", {
|
|
59
59
|
className: "text-muted-foreground",
|
|
60
|
-
children: empty ?? text("noneYet", plural)
|
|
60
|
+
children: empty ?? text("noneYet", { plural })
|
|
61
61
|
});
|
|
62
62
|
return /* @__PURE__ */ jsx("div", {
|
|
63
63
|
className: "flex flex-col divide-y",
|
|
@@ -78,7 +78,7 @@ const SavedSearchSection = ({ model, view, of, target, targetView, row, recordKe
|
|
|
78
78
|
}),
|
|
79
79
|
canRename && nameField && /* @__PURE__ */ jsx(Button, {
|
|
80
80
|
variant: "ghost",
|
|
81
|
-
"aria-label": text("renameTitle", title),
|
|
81
|
+
"aria-label": text("renameTitle", { title }),
|
|
82
82
|
"aria-haspopup": "dialog",
|
|
83
83
|
onClick: () => setRenaming(true),
|
|
84
84
|
children: /* @__PURE__ */ jsx(Pencil, {
|
|
@@ -88,7 +88,7 @@ const SavedSearchSection = ({ model, view, of, target, targetView, row, recordKe
|
|
|
88
88
|
}),
|
|
89
89
|
onDelete && /* @__PURE__ */ jsx(Button, {
|
|
90
90
|
variant: "ghost",
|
|
91
|
-
"aria-label": text("deleteTitle", title),
|
|
91
|
+
"aria-label": text("deleteTitle", { title }),
|
|
92
92
|
onClick: () => onDelete(title),
|
|
93
93
|
children: /* @__PURE__ */ jsx(Trash2, {
|
|
94
94
|
className: "size-3.5",
|
|
@@ -99,7 +99,7 @@ const SavedSearchSection = ({ model, view, of, target, targetView, row, recordKe
|
|
|
99
99
|
})]
|
|
100
100
|
}),
|
|
101
101
|
renaming && nameField && /* @__PURE__ */ jsx(SearchNameDialog, {
|
|
102
|
-
title: text("renameTitle", title),
|
|
102
|
+
title: text("renameTitle", { title }),
|
|
103
103
|
chips,
|
|
104
104
|
label: view.fields[nameField.name]?.label ?? humanize(nameField.name),
|
|
105
105
|
required: !nameField.nullable,
|