@knkcs/contenthub-ui 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/README.md +4 -4
- package/dist/{branch-content-fields-BQG6U0yl.js → branch-content-fields-CMa-BJa2.js} +2 -2
- package/dist/{branch-content-fields-BQG6U0yl.js.map → branch-content-fields-CMa-BJa2.js.map} +1 -1
- package/dist/{content-library-DFIk09bD.js → content-library-C5MCRNY0.js} +607 -387
- package/dist/content-library-C5MCRNY0.js.map +1 -0
- package/dist/{heads-DqHmAW0n.js → heads-BT8RZ-Gs.js} +19 -13
- package/dist/heads-BT8RZ-Gs.js.map +1 -0
- package/dist/index.d.ts +616 -50
- package/dist/index.js +3957 -3173
- package/dist/index.js.map +1 -1
- package/dist/testing.d.ts +226 -28
- package/dist/testing.js +873 -609
- package/dist/testing.js.map +1 -1
- package/package.json +1 -1
- package/dist/content-library-DFIk09bD.js.map +0 -1
- package/dist/heads-DqHmAW0n.js.map +0 -1
|
@@ -1,134 +1,139 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E as e, T as t, b as n, g as r } from "./heads-BT8RZ-Gs.js";
|
|
2
2
|
import { useCallback as i, useEffect as a, useMemo as o, useRef as s, useState as c } from "react";
|
|
3
3
|
import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
4
4
|
import { Button as f, EmptyState as p } from "@knkcs/anker/atoms";
|
|
5
|
-
import { DataTable as m, DateCell as
|
|
6
|
-
import { Alert as
|
|
7
|
-
import { IndexPageTemplate as
|
|
8
|
-
import { keepPreviousData as
|
|
9
|
-
import { ChevronRight as
|
|
10
|
-
import { useTranslation as
|
|
11
|
-
import { zodResolver as
|
|
12
|
-
import { BaseSelectField as
|
|
13
|
-
import { FormProvider as
|
|
14
|
-
import { z as
|
|
15
|
-
import { useHostIdentity as
|
|
16
|
-
import { useSearchParams as
|
|
5
|
+
import { DataTable as m, DateCell as ee, Modal as h, Toolbar as g, TreeViewBranchControl as te, TreeViewBranchIndicator as _, TreeViewBranchText as v, TreeViewItem as y, TreeViewItemText as ne, TreeViewLabel as b, TreeViewNode as re, TreeViewRoot as x, TreeViewTree as S, TruncatedTextCell as C, createTreeCollection as w } from "@knkcs/anker/components";
|
|
6
|
+
import { Alert as T, HStack as E, NativeSelect as D, Spinner as ie, Stack as O, Text as k } from "@knkcs/anker/primitives";
|
|
7
|
+
import { IndexPageTemplate as ae, SubNavLayout as A } from "@knkcs/anker/templates";
|
|
8
|
+
import { keepPreviousData as j, useInfiniteQuery as oe, useQuery as M, useQueryClient as se } from "@tanstack/react-query";
|
|
9
|
+
import { ChevronRight as N, FileText as ce, Lock as le, Plus as ue } from "lucide-react";
|
|
10
|
+
import { useTranslation as P } from "react-i18next";
|
|
11
|
+
import { zodResolver as F } from "@hookform/resolvers/zod";
|
|
12
|
+
import { BaseSelectField as de, InputField as I, LookupSelectField as L } from "@knkcs/anker/forms";
|
|
13
|
+
import { FormProvider as R, useForm as fe, useWatch as z } from "react-hook-form";
|
|
14
|
+
import { z as B } from "zod";
|
|
15
|
+
import { useHostIdentity as pe } from "@knkcs/anker/host";
|
|
16
|
+
import { useSearchParams as me } from "react-router";
|
|
17
17
|
//#region src/common/query-keys.ts
|
|
18
|
-
var
|
|
18
|
+
var V = {
|
|
19
19
|
all: ["contenthub"],
|
|
20
|
-
blockReasons: () => [...
|
|
21
|
-
changeSets: () => [...
|
|
22
|
-
changeSetLists: () => [...
|
|
23
|
-
changeSetList: (e) => [...
|
|
24
|
-
openChangeSets: () => [...
|
|
20
|
+
blockReasons: () => [...V.all, "block-reasons"],
|
|
21
|
+
changeSets: () => [...V.all, "change-sets"],
|
|
22
|
+
changeSetLists: () => [...V.changeSets(), "list"],
|
|
23
|
+
changeSetList: (e) => [...V.changeSetLists(), e],
|
|
24
|
+
openChangeSets: () => [...V.changeSetLists(), "open-picker"],
|
|
25
25
|
changeSet: (e) => [
|
|
26
|
-
...
|
|
26
|
+
...V.changeSets(),
|
|
27
27
|
"detail",
|
|
28
28
|
e
|
|
29
29
|
],
|
|
30
30
|
publishReadiness: (e) => [
|
|
31
|
-
...
|
|
31
|
+
...V.changeSets(),
|
|
32
32
|
"readiness",
|
|
33
33
|
e
|
|
34
34
|
],
|
|
35
|
-
publishReadinessAt: (e, t) => [...
|
|
35
|
+
publishReadinessAt: (e, t) => [...V.publishReadiness(e), t],
|
|
36
36
|
checkStandings: (e) => [
|
|
37
|
-
...
|
|
37
|
+
...V.changeSets(),
|
|
38
38
|
"checks",
|
|
39
39
|
e
|
|
40
40
|
],
|
|
41
|
-
changeSetStatuses: () => [...
|
|
42
|
-
requiredChecks: () => [...
|
|
41
|
+
changeSetStatuses: () => [...V.all, "change-set-statuses"],
|
|
42
|
+
requiredChecks: () => [...V.all, "required-checks"],
|
|
43
43
|
requiredCheckRecorders: (e) => [
|
|
44
|
-
...
|
|
44
|
+
...V.requiredChecks(),
|
|
45
45
|
"recorders",
|
|
46
46
|
e
|
|
47
47
|
],
|
|
48
|
-
editingSettings: () => [...
|
|
48
|
+
editingSettings: () => [...V.all, "editing-settings"],
|
|
49
49
|
effectiveEditingSettings: (e) => [
|
|
50
|
-
...
|
|
50
|
+
...V.editingSettings(),
|
|
51
51
|
"effective",
|
|
52
52
|
e
|
|
53
53
|
],
|
|
54
|
-
collections: () => [...
|
|
54
|
+
collections: () => [...V.all, "collections"],
|
|
55
55
|
collectionGrants: (e) => [
|
|
56
|
-
...
|
|
56
|
+
...V.collections(),
|
|
57
57
|
"grants",
|
|
58
58
|
e
|
|
59
59
|
],
|
|
60
|
-
contents: () => [...
|
|
61
|
-
contentLists: () => [...
|
|
62
|
-
contentList: (e) => [...
|
|
60
|
+
contents: () => [...V.all, "contents"],
|
|
61
|
+
contentLists: () => [...V.contents(), "list"],
|
|
62
|
+
contentList: (e) => [...V.contentLists(), e],
|
|
63
63
|
content: (e) => [
|
|
64
|
-
...
|
|
64
|
+
...V.contents(),
|
|
65
65
|
"detail",
|
|
66
66
|
e
|
|
67
67
|
],
|
|
68
68
|
contentRead: (e, t) => [
|
|
69
|
-
...
|
|
69
|
+
...V.content(e),
|
|
70
70
|
"read",
|
|
71
71
|
t
|
|
72
72
|
],
|
|
73
73
|
contentBranchRead: (e, t, n) => [
|
|
74
|
-
...
|
|
74
|
+
...V.contentRead(e, t),
|
|
75
75
|
"branch",
|
|
76
76
|
n
|
|
77
77
|
],
|
|
78
|
-
contentTimeline: (e) => [...
|
|
78
|
+
contentTimeline: (e) => [...V.content(e), "timeline"],
|
|
79
79
|
contentRevisions: (e, t) => [
|
|
80
|
-
...
|
|
80
|
+
...V.content(e),
|
|
81
81
|
"revisions",
|
|
82
82
|
t
|
|
83
83
|
],
|
|
84
84
|
contentCompare: (e, t, n) => [
|
|
85
|
-
...
|
|
85
|
+
...V.content(e),
|
|
86
86
|
"compare",
|
|
87
87
|
t,
|
|
88
88
|
n
|
|
89
89
|
],
|
|
90
90
|
contentReferences: (e, t) => [
|
|
91
|
-
...
|
|
91
|
+
...V.content(e),
|
|
92
92
|
"references",
|
|
93
93
|
t
|
|
94
94
|
],
|
|
95
|
-
contentReferrers: (e) => [...
|
|
95
|
+
contentReferrers: (e) => [...V.content(e), "referrers"],
|
|
96
96
|
contentOutdatedPins: (e, t) => [
|
|
97
|
-
...
|
|
97
|
+
...V.content(e),
|
|
98
98
|
"outdated-pins",
|
|
99
99
|
t
|
|
100
100
|
],
|
|
101
|
-
contentChangeSets: (e) => [...
|
|
101
|
+
contentChangeSets: (e) => [...V.content(e), "change-sets"],
|
|
102
102
|
chainPreview: (e, t, ...n) => [
|
|
103
|
-
...
|
|
103
|
+
...V.content(e),
|
|
104
104
|
"preview",
|
|
105
105
|
t,
|
|
106
106
|
...n
|
|
107
107
|
],
|
|
108
108
|
previewInForce: (e, t, n) => [
|
|
109
|
-
...
|
|
109
|
+
...V.content(e),
|
|
110
110
|
"preview-in-force",
|
|
111
111
|
t,
|
|
112
112
|
n
|
|
113
113
|
],
|
|
114
114
|
pendingMerge: (e) => [
|
|
115
|
-
...
|
|
115
|
+
...V.all,
|
|
116
116
|
"pending-merge",
|
|
117
117
|
e
|
|
118
118
|
],
|
|
119
|
-
blueprints: () => [...
|
|
119
|
+
blueprints: () => [...V.all, "blueprints"],
|
|
120
120
|
blueprintNames: (e) => [
|
|
121
|
-
...
|
|
121
|
+
...V.blueprints(),
|
|
122
122
|
"names",
|
|
123
123
|
e
|
|
124
124
|
],
|
|
125
|
-
|
|
125
|
+
blueprintNamesByAccessor: (e) => [
|
|
126
|
+
...V.blueprints(),
|
|
127
|
+
"names-by-accessor",
|
|
128
|
+
e
|
|
129
|
+
],
|
|
130
|
+
blueprintFilterOptions: () => [...V.blueprints(), "filter-options"],
|
|
126
131
|
blueprintReleases: (e) => [
|
|
127
|
-
...
|
|
132
|
+
...V.blueprints(),
|
|
128
133
|
"releases",
|
|
129
134
|
e
|
|
130
135
|
]
|
|
131
|
-
},
|
|
136
|
+
}, H = {
|
|
132
137
|
common: { cancel: "Abbrechen" },
|
|
133
138
|
settings: {
|
|
134
139
|
section: "Einstellungen",
|
|
@@ -188,14 +193,15 @@ var W = {
|
|
|
188
193
|
},
|
|
189
194
|
workspace: {
|
|
190
195
|
title: "Vorgaben des Arbeitsbereichs",
|
|
191
|
-
description: "Wie Inhalte geändert werden dürfen: in einer Direktbearbeitung, vom Inhalt aus geöffnet, in einem Change Set oder beides
|
|
196
|
+
description: "Wie Inhalte geändert werden dürfen: in einer Direktbearbeitung, vom Inhalt aus geöffnet, in einem Change Set oder beides; ob eine Direktbearbeitung andere Direktbearbeitungen mit einer Bearbeitungssperre fernhält; und wer eine Bearbeitungssperre übernehmen darf, die Force-Gruppe. Jeder Blueprint ohne Abweichung folgt diesen Vorgaben. Eine Änderung gilt sofort und lässt offene Arbeit, wie sie ist.",
|
|
192
197
|
edit: "Vorgaben ändern"
|
|
193
198
|
},
|
|
194
199
|
columns: {
|
|
195
200
|
blueprint: "Blueprint",
|
|
196
201
|
mode: "Bearbeitungsmodus",
|
|
197
202
|
block: "Bearbeitungssperre",
|
|
198
|
-
actions: "Aktionen"
|
|
203
|
+
actions: "Aktionen",
|
|
204
|
+
force: "Force-Gruppe"
|
|
199
205
|
},
|
|
200
206
|
fromWorkspace: "{{value}} (Vorgabe des Arbeitsbereichs)",
|
|
201
207
|
createOverride: "Neue Abweichung",
|
|
@@ -210,27 +216,35 @@ var W = {
|
|
|
210
216
|
workspaceTitle: "Vorgaben des Arbeitsbereichs",
|
|
211
217
|
createOverrideTitle: "Neue Blueprint-Abweichung",
|
|
212
218
|
editOverrideTitle: "Blueprint-Abweichung bearbeiten",
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
accessorTaken: "Für „{{name}}“ gibt es bereits eine Abweichung: Bearbeiten Sie diese.",
|
|
219
|
+
blueprint: "Blueprint",
|
|
220
|
+
blueprintHelp: "Der Blueprint, für dessen Inhalte dies gilt.",
|
|
221
|
+
blueprintPlaceholder: "Blueprint wählen",
|
|
222
|
+
blueprintRequired: "Wählen Sie einen Blueprint.",
|
|
218
223
|
mode: "Bearbeitungsmodus",
|
|
219
224
|
modeHelp: "Nur „Nur Change Sets“ wird durchgesetzt: Eine Direktbearbeitung solcher Inhalte wird abgelehnt. Importe, Abläufe und Blueprint-Upgrades nutzen immer Change Sets.",
|
|
220
225
|
modeRequired: "Wählen Sie einen Bearbeitungsmodus.",
|
|
221
226
|
block: "Bearbeitungssperre",
|
|
222
227
|
blockHelp: "Ob das Öffnen einer Direktbearbeitung die Direktbearbeitungen anderer fernhält, bis sie veröffentlicht oder verworfen ist. Change Sets kommen weiter durch.",
|
|
223
228
|
follow: "Vorgabe des Arbeitsbereichs ({{value}})",
|
|
224
|
-
overridesNothing: "Weichen Sie beim Bearbeitungsmodus, bei der Bearbeitungssperre oder bei
|
|
229
|
+
overridesNothing: "Weichen Sie beim Bearbeitungsmodus, bei der Bearbeitungssperre, bei der Force-Gruppe oder bei mehrerem ab. Um überall den Vorgaben des Arbeitsbereichs zu folgen, entfernen Sie die Abweichung.",
|
|
225
230
|
save: "Speichern",
|
|
226
231
|
denied: "Nur ein Admin des Arbeitsbereichs ändert die Bearbeitungseinstellungen.",
|
|
227
|
-
failed: "Die Bearbeitungseinstellungen konnten nicht gespeichert werden. Versuchen Sie es erneut."
|
|
232
|
+
failed: "Die Bearbeitungseinstellungen konnten nicht gespeichert werden. Versuchen Sie es erneut.",
|
|
233
|
+
force: "Force-Gruppe",
|
|
234
|
+
forceHelp: "Wer eine Bearbeitungssperre aufheben und die Direktbearbeitung dahinter mit ihrer Arbeit übernehmen darf. Die Admins des Arbeitsbereichs dürfen das immer; nennen Sie alle, die es außerdem dürfen.",
|
|
235
|
+
forcePeople: "Personen neben den Admins",
|
|
236
|
+
forceNobody: "Nur Admins",
|
|
237
|
+
forceOwn: "Eigene Force-Gruppe"
|
|
228
238
|
},
|
|
229
239
|
removeDialog: {
|
|
230
240
|
title: "Abweichung entfernen",
|
|
231
241
|
message: "Die Abweichung für „{{name}}“ entfernen? Ihre Inhalte folgen dann wieder den Vorgaben des Arbeitsbereichs.",
|
|
232
242
|
confirm: "Entfernen",
|
|
233
243
|
failed: "Die Abweichung konnte nicht entfernt werden. Versuchen Sie es erneut."
|
|
244
|
+
},
|
|
245
|
+
force: {
|
|
246
|
+
adminsOnly: "Admins",
|
|
247
|
+
adminsAnd: "Admins und {{names}}"
|
|
234
248
|
}
|
|
235
249
|
},
|
|
236
250
|
requiredChecks: {
|
|
@@ -299,17 +313,17 @@ var W = {
|
|
|
299
313
|
scopeHelp: "Jeder Branch braucht ein Ergebnis je erfasstem Inhalt; das Change Set einmal braucht ein Ergebnis für das ganze Change Set.",
|
|
300
314
|
scopeRequired: "Wählen Sie einen Umfang.",
|
|
301
315
|
everyBlueprint: "Gilt für Inhalte jedes Blueprints",
|
|
302
|
-
accessors: "
|
|
303
|
-
accessorsHelp: "
|
|
304
|
-
accessorsRequired: "
|
|
305
|
-
accessorTooLong: "Ein Accessor hat höchstens {{max}} Zeichen.",
|
|
316
|
+
accessors: "Blueprints",
|
|
317
|
+
accessorsHelp: "Die Prüfung gilt nur für Inhalte dieser Blueprints.",
|
|
318
|
+
accessorsRequired: "Wählen Sie mindestens einen Blueprint oder lassen Sie sie für alle gelten.",
|
|
306
319
|
independentLabel: "Unabhängig",
|
|
307
320
|
independentHelp: "Bestanden und erlassen werden abgelehnt, wenn sie von jemandem kommen, der eine Revision am Geprüften geschrieben hat.",
|
|
308
321
|
recorders: "Wer sie erfasst",
|
|
309
322
|
recordersHelp: "Die Ergebnisse einer neuen Prüfung erfasst jedes Mitglied des Arbeitsbereichs. Auf benannte Personen einschränken lässt es sich in der Zeile der Prüfung unter „Wer sie erfasst“.",
|
|
310
323
|
failed: "Die Pflichtprüfung konnte nicht gespeichert werden. Versuchen Sie es erneut.",
|
|
311
324
|
createSubmit: "Anlegen",
|
|
312
|
-
editSubmit: "Speichern"
|
|
325
|
+
editSubmit: "Speichern",
|
|
326
|
+
accessorsPlaceholder: "Blueprints wählen"
|
|
313
327
|
},
|
|
314
328
|
removeDialog: {
|
|
315
329
|
title: "Pflichtprüfung entfernen",
|
|
@@ -916,6 +930,18 @@ var W = {
|
|
|
916
930
|
message: "Archivierter Content verschwindet aus der Bibliothek, jeder Auswahl und der Bearbeitung. Seine Releases bleiben lesbar, und „Aus dem Archiv holen“ bringt ihn zurück.",
|
|
917
931
|
confirm: "Archivieren"
|
|
918
932
|
},
|
|
933
|
+
editingBlock: {
|
|
934
|
+
beingEdited: "Wird bearbeitet von {{who}}, seit {{since}}",
|
|
935
|
+
force: "Übernehmen",
|
|
936
|
+
forceConfirm: {
|
|
937
|
+
title: "Direktbearbeitung übernehmen",
|
|
938
|
+
message: "Die Direktbearbeitung von „{{content}}“ durch {{who}} übernehmen? Die unveröffentlichten Änderungen gehören dann Ihnen zum Veröffentlichen oder Verwerfen, und {{who}} kann sie nicht mehr speichern. {{who}} erfährt, dass Sie übernommen haben.",
|
|
939
|
+
confirm: "Übernehmen",
|
|
940
|
+
failed: "Die Direktbearbeitung konnte nicht übernommen werden. Versuchen Sie es erneut.",
|
|
941
|
+
denied: "Nur die Force-Gruppe dieses Blueprints darf eine Direktbearbeitung übernehmen: seine Admins und die Personen, die sie nennt."
|
|
942
|
+
},
|
|
943
|
+
forced: "Sie haben die Direktbearbeitung von {{who}} übernommen. Die Änderungen gehören jetzt Ihnen."
|
|
944
|
+
},
|
|
919
945
|
directEdit: {
|
|
920
946
|
unpublished: "Sie haben unveröffentlichte Änderungen",
|
|
921
947
|
continue: "Weiter bearbeiten"
|
|
@@ -960,15 +986,79 @@ var W = {
|
|
|
960
986
|
refused_one: "Veröffentlichen wurde aus {{count}} Grund abgelehnt",
|
|
961
987
|
refused_other: "Veröffentlichen wurde aus {{count}} Gründen abgelehnt",
|
|
962
988
|
refusedBecause: {
|
|
963
|
-
dated_content: "Dieser Inhalt ist datiert: ändern Sie ihn in einem Change Set, das sagt, ab wann die Änderung gilt.",
|
|
964
989
|
one_branch: "Eine Direktbearbeitung ändert nur einen Inhalt: verwenden Sie ein Change Set.",
|
|
965
990
|
not_a_direct_edit: "Dieses Change Set ist keine Direktbearbeitung.",
|
|
991
|
+
editing_blocked: "Jemand anderes bearbeitet diesen Inhalt direkt: warten Sie, bis die Änderungen veröffentlicht oder verworfen sind.",
|
|
992
|
+
not_the_editor: "Diese Direktbearbeitung gehört inzwischen jemand anderem: Nur ihre Bearbeiterin oder ihr Bearbeiter speichert, veröffentlicht oder verwirft sie.",
|
|
993
|
+
own_direct_edit: "Sie haben selbst eine Direktbearbeitung dieses Inhalts: Veröffentlichen oder verwerfen Sie sie, bevor Sie eine andere übernehmen.",
|
|
994
|
+
no_editing_block: "Diese Direktbearbeitung wurde inzwischen veröffentlicht oder verworfen: Es gibt nichts zu übernehmen.",
|
|
966
995
|
unknown: "Die Direktbearbeitung wurde abgelehnt."
|
|
967
996
|
},
|
|
997
|
+
updateFromMain: "Aus Main aktualisieren",
|
|
998
|
+
resolveMerge: "Zusammenführung lösen",
|
|
999
|
+
behind: {
|
|
1000
|
+
title: "Main ist weiter: Ein Change Set hat diesen Inhalt geändert, nachdem Sie begonnen haben.",
|
|
1001
|
+
message: "Veröffentlichen wartet, bis Sie aus Main aktualisieren. Ihre und die veröffentlichten Änderungen werden Feld für Feld zusammengeführt; wo beide ein Feld geändert haben, entscheiden Sie."
|
|
1002
|
+
},
|
|
1003
|
+
pendingMerge: {
|
|
1004
|
+
title: "Ihre Änderungen und die aus Main betreffen dieselben Felder.",
|
|
1005
|
+
message: "Veröffentlichen wartet, bis Sie die Zusammenführung Feld für Feld lösen oder verwerfen; Verwerfen lässt diese Bearbeitung hinter Main zurück. Auch Speichern wartet."
|
|
1006
|
+
},
|
|
968
1007
|
saveFirst: "Speichern Sie Ihre Änderungen zuerst: Veröffentlicht wird, was gespeichert ist.",
|
|
969
|
-
changeSetsOnly: "Dieser Inhalt wird nur über Change Sets geändert: bearbeiten Sie ihn in einem Change Set."
|
|
1008
|
+
changeSetsOnly: "Dieser Inhalt wird nur über Change Sets geändert: bearbeiten Sie ihn in einem Change Set.",
|
|
1009
|
+
saveAndPublish: "Speichern & veröffentlichen",
|
|
1010
|
+
publishDialog: {
|
|
1011
|
+
title: "Direktbearbeitung veröffentlichen",
|
|
1012
|
+
publishHint: "Veröffentlicht das Gespeicherte als neues Release, in Kraft ab jetzt.",
|
|
1013
|
+
saveAndPublishHint: "Speichert Ihre Änderungen und veröffentlicht sie in einem Schritt als neues Release, in Kraft ab jetzt. Wird das Veröffentlichen abgelehnt, wird nichts gespeichert.",
|
|
1014
|
+
specHint: "Die Werte, die dieses Release trägt, wie sein Blueprint sie festlegt. Werte, die der Blueprint vorbelegt, sind schon ausgefüllt.",
|
|
1015
|
+
refusedValues_one: "{{count}} Wert wurde abgelehnt",
|
|
1016
|
+
refusedValues_other: "{{count}} Werte wurden abgelehnt",
|
|
1017
|
+
datedPublishHint: "Veröffentlicht das Gespeicherte als neues Release für den Gültigkeitszeitraum unten.",
|
|
1018
|
+
datedSaveAndPublishHint: "Speichert Ihre Änderungen und veröffentlicht sie in einem Schritt als neues Release für den Gültigkeitszeitraum unten. Wird das Veröffentlichen abgelehnt, wird nichts gespeichert.",
|
|
1019
|
+
period: "Gültigkeitszeitraum",
|
|
1020
|
+
correction: "Eine Berichtigung der geltenden Fassung: ihr Release behält deren Gültigkeitszeitraum und ersetzt sie.",
|
|
1021
|
+
newWording: "Eine neue Fassung ab {{firstDay}}: sie schneidet in die vorher geltende Fassung.",
|
|
1022
|
+
firstDay: "Erster Tag",
|
|
1023
|
+
lastDay: "Letzter Tag",
|
|
1024
|
+
lastDayHelp: "Leer lassen für ein offenes Ende: es endet dann am Tag vor der nächsten späteren Fassung.",
|
|
1025
|
+
computed: "Releases nur mit Daten, die contenthub erzeugt",
|
|
1026
|
+
computedHint: "Aus dem Zeitraum berechnet, nicht änderbar: jedes beendet oder setzt eine Fassung fort, in die der Zeitraum schneidet.",
|
|
1027
|
+
computedRow: "Fassung {{release}}",
|
|
1028
|
+
noComputed: "Keine: der Zeitraum schneidet in keine andere Fassung.",
|
|
1029
|
+
carryForward: "Spätere Fassungen",
|
|
1030
|
+
carryForwardHint: "Fassungen, die für spätere Tage schon veröffentlicht sind. Geben Sie für jede an, ob Ihre Änderung auch für sie gilt.",
|
|
1031
|
+
wording: "Fassung ab {{firstDay}}",
|
|
1032
|
+
wordingUntil: "Fassung vom {{firstDay}} bis {{lastDay}}",
|
|
1033
|
+
carryYes: "Ja, Änderung auch hier übernehmen",
|
|
1034
|
+
carryNo: "Nein, wie veröffentlicht lassen",
|
|
1035
|
+
unanswered: "Beantworten Sie vor dem Veröffentlichen jede spätere Fassung.",
|
|
1036
|
+
previewFailed: "Was diese Veröffentlichung plant, konnte nicht gelesen werden.",
|
|
1037
|
+
covers: "Dieser Zeitraum würde {{releases}} vollständig überdecken. Ob es ersetzt oder die Daten geändert werden, wird in einem Change Set entschieden: verkürzen Sie den Zeitraum oder ändern Sie in einem Change Set."
|
|
1038
|
+
},
|
|
1039
|
+
effective: {
|
|
1040
|
+
title: "Bearbeiten: gilt ab",
|
|
1041
|
+
hint: "Sie bearbeiten die Fassung, die an diesem Tag gilt. Heute berichtigt die jetzt geltende Fassung; ein späterer Tag ergibt eine neue Fassung ab diesem Tag.",
|
|
1042
|
+
label: "Gilt ab",
|
|
1043
|
+
help: "Heute, außer die Änderung beginnt später.",
|
|
1044
|
+
required: "Wählen Sie den Tag, ab dem die Änderung gilt.",
|
|
1045
|
+
submit: "Bearbeiten"
|
|
1046
|
+
}
|
|
1047
|
+
},
|
|
1048
|
+
blueprintSelect: {
|
|
1049
|
+
archived: "{{name}} (archiviert)",
|
|
1050
|
+
unknown: "{{value}} (unbekannt)",
|
|
1051
|
+
empty: "Kein Blueprint passt",
|
|
1052
|
+
failed: "Die Blueprints konnten nicht geladen werden.",
|
|
1053
|
+
loading: "Wird geladen …",
|
|
1054
|
+
refused: "{{list}}.",
|
|
1055
|
+
refusal: {
|
|
1056
|
+
unknown: "„{{accessor}}“ benennt keinen Blueprint",
|
|
1057
|
+
archived: "„{{accessor}}“ ist archiviert",
|
|
1058
|
+
not_content: "„{{accessor}}“ ist kein Content-Blueprint"
|
|
1059
|
+
}
|
|
970
1060
|
}
|
|
971
|
-
},
|
|
1061
|
+
}, he = {
|
|
972
1062
|
common: { cancel: "Cancel" },
|
|
973
1063
|
settings: {
|
|
974
1064
|
section: "Settings",
|
|
@@ -1028,14 +1118,15 @@ var W = {
|
|
|
1028
1118
|
},
|
|
1029
1119
|
workspace: {
|
|
1030
1120
|
title: "Workspace defaults",
|
|
1031
|
-
description: "How Content may be changed: in a Direct Edit, opened from the Content, in a Change Set, or both
|
|
1121
|
+
description: "How Content may be changed: in a Direct Edit, opened from the Content, in a Change Set, or both; whether a Direct Edit keeps other Direct Edits out with an Editing Block; and who may force one, the Force Group. Every Blueprint without an override follows these. A change takes effect at once and leaves open work as it is.",
|
|
1032
1122
|
edit: "Change defaults"
|
|
1033
1123
|
},
|
|
1034
1124
|
columns: {
|
|
1035
1125
|
blueprint: "Blueprint",
|
|
1036
1126
|
mode: "Editing Mode",
|
|
1037
1127
|
block: "Editing Block",
|
|
1038
|
-
actions: "Actions"
|
|
1128
|
+
actions: "Actions",
|
|
1129
|
+
force: "Force Group"
|
|
1039
1130
|
},
|
|
1040
1131
|
fromWorkspace: "{{value}} (workspace default)",
|
|
1041
1132
|
createOverride: "New override",
|
|
@@ -1050,27 +1141,35 @@ var W = {
|
|
|
1050
1141
|
workspaceTitle: "Workspace defaults",
|
|
1051
1142
|
createOverrideTitle: "New Blueprint override",
|
|
1052
1143
|
editOverrideTitle: "Edit Blueprint override",
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
accessorTaken: "“{{name}}” has an override already: edit it instead.",
|
|
1144
|
+
blueprint: "Blueprint",
|
|
1145
|
+
blueprintHelp: "The Blueprint whose Content this applies to.",
|
|
1146
|
+
blueprintPlaceholder: "Choose a Blueprint",
|
|
1147
|
+
blueprintRequired: "Choose a Blueprint.",
|
|
1058
1148
|
mode: "Editing Mode",
|
|
1059
1149
|
modeHelp: "Only “Change Sets only” is enforced: a Direct Edit on such Content is refused. Imports, flows and Blueprint upgrades always use Change Sets.",
|
|
1060
1150
|
modeRequired: "Choose an Editing Mode.",
|
|
1061
1151
|
block: "Editing Block",
|
|
1062
1152
|
blockHelp: "Whether opening a Direct Edit keeps other editors' Direct Edits out until it is published or discarded. Change Sets still pass it.",
|
|
1063
1153
|
follow: "Workspace default ({{value}})",
|
|
1064
|
-
overridesNothing: "Override the Editing Mode, the Editing Block or
|
|
1154
|
+
overridesNothing: "Override the Editing Mode, the Editing Block, the Force Group or several. To follow the workspace in all, remove the override.",
|
|
1065
1155
|
save: "Save",
|
|
1066
1156
|
denied: "Only a workspace admin changes the editing settings.",
|
|
1067
|
-
failed: "The editing settings could not be saved. Try again."
|
|
1157
|
+
failed: "The editing settings could not be saved. Try again.",
|
|
1158
|
+
force: "Force Group",
|
|
1159
|
+
forceHelp: "Who may force an Editing Block, taking over the Direct Edit holding it with its work. The workspace's admins always may; name anyone else who may too.",
|
|
1160
|
+
forcePeople: "People beside the admins",
|
|
1161
|
+
forceNobody: "Admins only",
|
|
1162
|
+
forceOwn: "Its own Force Group"
|
|
1068
1163
|
},
|
|
1069
1164
|
removeDialog: {
|
|
1070
1165
|
title: "Remove override",
|
|
1071
1166
|
message: "Remove the override of “{{name}}”? Its Content follows the workspace defaults again.",
|
|
1072
1167
|
confirm: "Remove",
|
|
1073
1168
|
failed: "The override could not be removed. Try again."
|
|
1169
|
+
},
|
|
1170
|
+
force: {
|
|
1171
|
+
adminsOnly: "Admins",
|
|
1172
|
+
adminsAnd: "Admins and {{names}}"
|
|
1074
1173
|
}
|
|
1075
1174
|
},
|
|
1076
1175
|
requiredChecks: {
|
|
@@ -1139,17 +1238,17 @@ var W = {
|
|
|
1139
1238
|
scopeHelp: "Each Branch needs a result per Content it covers; the Change Set once needs one result for the whole Change Set.",
|
|
1140
1239
|
scopeRequired: "Choose a scope.",
|
|
1141
1240
|
everyBlueprint: "Applies to Content of every Blueprint",
|
|
1142
|
-
accessors: "
|
|
1143
|
-
accessorsHelp: "
|
|
1144
|
-
accessorsRequired: "
|
|
1145
|
-
accessorTooLong: "An accessor is at most {{max}} characters.",
|
|
1241
|
+
accessors: "Blueprints",
|
|
1242
|
+
accessorsHelp: "The check applies to Content of these Blueprints only.",
|
|
1243
|
+
accessorsRequired: "Choose at least one Blueprint, or apply it to every Blueprint.",
|
|
1146
1244
|
independentLabel: "Independent",
|
|
1147
1245
|
independentHelp: "Passed and waived are refused from anyone who wrote a Revision on what the result covers.",
|
|
1148
1246
|
recorders: "Who records it",
|
|
1149
1247
|
recordersHelp: "Every member of the workspace records a new check's results. Narrow it to named people from the check's row, under Who records it.",
|
|
1150
1248
|
failed: "The Required Check could not be saved. Try again.",
|
|
1151
1249
|
createSubmit: "Create",
|
|
1152
|
-
editSubmit: "Save"
|
|
1250
|
+
editSubmit: "Save",
|
|
1251
|
+
accessorsPlaceholder: "Choose Blueprints"
|
|
1153
1252
|
},
|
|
1154
1253
|
removeDialog: {
|
|
1155
1254
|
title: "Remove Required Check",
|
|
@@ -1993,6 +2092,18 @@ var W = {
|
|
|
1993
2092
|
message: "Archived Content leaves the Library, every picker and editing. Its Releases stay readable, and Unarchive brings it back.",
|
|
1994
2093
|
confirm: "Archive"
|
|
1995
2094
|
},
|
|
2095
|
+
editingBlock: {
|
|
2096
|
+
beingEdited: "Being edited by {{who}}, since {{since}}",
|
|
2097
|
+
force: "Force",
|
|
2098
|
+
forceConfirm: {
|
|
2099
|
+
title: "Take over the Direct Edit",
|
|
2100
|
+
message: "Take over {{who}}'s Direct Edit of “{{content}}”? Their unpublished changes become yours to publish or discard, and they can no longer save them. They are told that you took it over.",
|
|
2101
|
+
confirm: "Take over",
|
|
2102
|
+
failed: "The Direct Edit could not be taken over. Try again.",
|
|
2103
|
+
denied: "Only the Force Group of this Blueprint may take over a Direct Edit: its admins and the people it names."
|
|
2104
|
+
},
|
|
2105
|
+
forced: "You took over {{who}}'s Direct Edit. Their changes are yours now."
|
|
2106
|
+
},
|
|
1996
2107
|
directEdit: {
|
|
1997
2108
|
unpublished: "You have unpublished changes",
|
|
1998
2109
|
continue: "Continue editing"
|
|
@@ -2037,46 +2148,112 @@ var W = {
|
|
|
2037
2148
|
refused_one: "Publish was refused for {{count}} reason",
|
|
2038
2149
|
refused_other: "Publish was refused for {{count}} reasons",
|
|
2039
2150
|
refusedBecause: {
|
|
2040
|
-
dated_content: "This Content is Dated: change it in a Change Set, which says when the change takes effect.",
|
|
2041
2151
|
one_branch: "A Direct Edit changes one Content only: use a Change Set.",
|
|
2042
2152
|
not_a_direct_edit: "This Change Set is not a Direct Edit.",
|
|
2153
|
+
editing_blocked: "Someone else is editing this Content directly: wait until they publish or discard their changes.",
|
|
2154
|
+
not_the_editor: "This Direct Edit is someone else's now: only its editor saves, publishes or discards it.",
|
|
2155
|
+
own_direct_edit: "You have a Direct Edit of this Content yourself: publish or discard it before taking over another.",
|
|
2156
|
+
no_editing_block: "This Direct Edit has been published or discarded meanwhile: there is nothing to take over.",
|
|
2043
2157
|
unknown: "The Direct Edit was refused."
|
|
2044
2158
|
},
|
|
2159
|
+
updateFromMain: "Update from Main",
|
|
2160
|
+
resolveMerge: "Resolve merge",
|
|
2161
|
+
behind: {
|
|
2162
|
+
title: "Main has moved on: a Change Set published a change to this Content after you started.",
|
|
2163
|
+
message: "Publish waits until you update from Main. Your changes and the published ones are merged field by field; where both changed a field, you choose."
|
|
2164
|
+
},
|
|
2165
|
+
pendingMerge: {
|
|
2166
|
+
title: "Your changes and Main's changed the same fields.",
|
|
2167
|
+
message: "Publish waits until you resolve the merge field by field, or abort it, which leaves this edit behind Main. Saves wait too."
|
|
2168
|
+
},
|
|
2045
2169
|
saveFirst: "Save your changes first: Publish releases what is saved.",
|
|
2046
|
-
changeSetsOnly: "This Content is changed through Change Sets only: start editing it in a Change Set."
|
|
2170
|
+
changeSetsOnly: "This Content is changed through Change Sets only: start editing it in a Change Set.",
|
|
2171
|
+
saveAndPublish: "Save & publish",
|
|
2172
|
+
publishDialog: {
|
|
2173
|
+
title: "Publish the Direct Edit",
|
|
2174
|
+
publishHint: "Publishes what is saved as a new Release, In Force from now.",
|
|
2175
|
+
saveAndPublishHint: "Saves your changes and publishes them as a new Release, In Force from now, in one step. If Publish is refused, nothing is saved.",
|
|
2176
|
+
specHint: "The values this Release carries, as its Blueprint declares them. Values the Blueprint prefills are filled in already.",
|
|
2177
|
+
refusedValues_one: "{{count}} value was refused",
|
|
2178
|
+
refusedValues_other: "{{count}} values were refused",
|
|
2179
|
+
datedPublishHint: "Publishes what is saved as a new Release for the Validity Period below.",
|
|
2180
|
+
datedSaveAndPublishHint: "Saves your changes and publishes them as a new Release for the Validity Period below, in one step. If Publish is refused, nothing is saved.",
|
|
2181
|
+
period: "Validity Period",
|
|
2182
|
+
correction: "A correction of the wording in force: its Release keeps that wording's Validity Period and supersedes it.",
|
|
2183
|
+
newWording: "A new wording from {{firstDay}}: it cuts into the wording in force before then.",
|
|
2184
|
+
firstDay: "First day",
|
|
2185
|
+
lastDay: "Last day",
|
|
2186
|
+
lastDayHelp: "Leave empty for an open end: it then ends the day before the next later wording.",
|
|
2187
|
+
computed: "Date-only Releases contenthub cuts",
|
|
2188
|
+
computedHint: "Worked out from the period, not editable: each ends or resumes a wording the period cuts into.",
|
|
2189
|
+
computedRow: "Wording {{release}}",
|
|
2190
|
+
noComputed: "None: the period cuts into no other wording.",
|
|
2191
|
+
carryForward: "Later wordings",
|
|
2192
|
+
carryForwardHint: "Wordings already published for later days. Say for each whether your change applies to it too.",
|
|
2193
|
+
wording: "Wording from {{firstDay}}",
|
|
2194
|
+
wordingUntil: "Wording from {{firstDay}} to {{lastDay}}",
|
|
2195
|
+
carryYes: "Yes, apply my change to it too",
|
|
2196
|
+
carryNo: "No, keep it as published",
|
|
2197
|
+
unanswered: "Answer every later wording before publishing.",
|
|
2198
|
+
previewFailed: "What this Publish would plan could not be read.",
|
|
2199
|
+
covers: "This period would cover {{releases}} entirely. Whether to supersede it or change the dates is decided in a Change Set: shorten the period, or make the change in a Change Set."
|
|
2200
|
+
},
|
|
2201
|
+
effective: {
|
|
2202
|
+
title: "Edit: takes effect on",
|
|
2203
|
+
hint: "The wording in force on this day is what you edit. Today corrects the wording in force now; a later day makes a new wording from that day.",
|
|
2204
|
+
label: "Takes effect on",
|
|
2205
|
+
help: "Today, unless the change starts later.",
|
|
2206
|
+
required: "Choose the day the change takes effect.",
|
|
2207
|
+
submit: "Edit"
|
|
2208
|
+
}
|
|
2209
|
+
},
|
|
2210
|
+
blueprintSelect: {
|
|
2211
|
+
archived: "{{name}} (archived)",
|
|
2212
|
+
unknown: "{{value}} (unknown)",
|
|
2213
|
+
empty: "No Blueprint matches",
|
|
2214
|
+
failed: "The Blueprints could not be loaded.",
|
|
2215
|
+
loading: "Loading…",
|
|
2216
|
+
refused: "{{list}}.",
|
|
2217
|
+
refusal: {
|
|
2218
|
+
unknown: "“{{accessor}}” names no Blueprint",
|
|
2219
|
+
archived: "“{{accessor}}” is archived",
|
|
2220
|
+
not_content: "“{{accessor}}” is not a content Blueprint"
|
|
2221
|
+
}
|
|
2047
2222
|
}
|
|
2048
|
-
},
|
|
2049
|
-
en: { [
|
|
2050
|
-
de: { [
|
|
2051
|
-
},
|
|
2052
|
-
namespace:
|
|
2053
|
-
resources:
|
|
2223
|
+
}, U = "contenthub-ui", W = {
|
|
2224
|
+
en: { [U]: he },
|
|
2225
|
+
de: { [U]: H }
|
|
2226
|
+
}, G = {
|
|
2227
|
+
namespace: U,
|
|
2228
|
+
resources: W
|
|
2054
2229
|
};
|
|
2055
2230
|
//#endregion
|
|
2056
2231
|
//#region src/common/blueprint-source.ts
|
|
2057
|
-
function
|
|
2232
|
+
function ge(e) {
|
|
2058
2233
|
return {
|
|
2059
|
-
searchBlueprints: (
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
return (await Promise.all(i.map((e) => t.getBlueprints(e)))).flat();
|
|
2064
|
-
},
|
|
2065
|
-
listReleases: (e) => t.listBlueprintReleases(e)
|
|
2234
|
+
searchBlueprints: (t) => e.searchBlueprints(t),
|
|
2235
|
+
getBlueprints: (t) => K(t, (t) => e.getBlueprints(t)),
|
|
2236
|
+
getBlueprintsByAccessor: (t) => K(t, (t) => e.getBlueprintsByAccessor(t)),
|
|
2237
|
+
listReleases: (t) => e.listBlueprintReleases(t)
|
|
2066
2238
|
};
|
|
2067
2239
|
}
|
|
2068
|
-
function
|
|
2069
|
-
|
|
2240
|
+
async function K(t, n) {
|
|
2241
|
+
let r = [...new Set(t.filter((e) => e !== ""))], i = [];
|
|
2242
|
+
for (let t = 0; t < r.length; t += e) i.push(r.slice(t, t + e));
|
|
2243
|
+
return (await Promise.all(i.map(n))).flat();
|
|
2244
|
+
}
|
|
2245
|
+
function _e(e, t) {
|
|
2246
|
+
return o(() => t ?? ge(e), [e, t]);
|
|
2070
2247
|
}
|
|
2071
2248
|
//#endregion
|
|
2072
2249
|
//#region src/common/use-open-change-sets.ts
|
|
2073
|
-
var
|
|
2074
|
-
function
|
|
2075
|
-
return
|
|
2076
|
-
queryKey:
|
|
2250
|
+
var q = 200;
|
|
2251
|
+
function J(e, t = !0) {
|
|
2252
|
+
return M({
|
|
2253
|
+
queryKey: V.openChangeSets(),
|
|
2077
2254
|
queryFn: () => e.listChangeSets({
|
|
2078
2255
|
state: "open",
|
|
2079
|
-
pageSize:
|
|
2256
|
+
pageSize: q
|
|
2080
2257
|
}),
|
|
2081
2258
|
enabled: t
|
|
2082
2259
|
});
|
|
@@ -2084,20 +2261,20 @@ function ge(e, t = !0) {
|
|
|
2084
2261
|
//#endregion
|
|
2085
2262
|
//#region src/screens/collection-tree.tsx
|
|
2086
2263
|
var Y = "__all__";
|
|
2087
|
-
function
|
|
2264
|
+
function ve(e, t) {
|
|
2088
2265
|
let n = new Map(t.map((e) => [e.id, e])), r = [], i = /* @__PURE__ */ new Set(), a = n.get(e);
|
|
2089
2266
|
for (; a && !i.has(a.id);) i.add(a.id), r.unshift(a), a = n.get(a.parentId);
|
|
2090
2267
|
return r;
|
|
2091
2268
|
}
|
|
2092
2269
|
function X() {
|
|
2093
|
-
let { t: e } =
|
|
2094
|
-
return /* @__PURE__ */ u(
|
|
2270
|
+
let { t: e } = P(U);
|
|
2271
|
+
return /* @__PURE__ */ u(le, {
|
|
2095
2272
|
size: 12,
|
|
2096
2273
|
"aria-label": e("library.restricted")
|
|
2097
2274
|
});
|
|
2098
2275
|
}
|
|
2099
|
-
function
|
|
2100
|
-
let { t: r } =
|
|
2276
|
+
function ye({ collections: e, activeId: t, onSelect: n }) {
|
|
2277
|
+
let { t: r } = P(U), i = o(() => new Map(e.map((e) => [e.id, e])), [e]), a = o(() => {
|
|
2101
2278
|
let t = /* @__PURE__ */ new Map();
|
|
2102
2279
|
for (let n of e) {
|
|
2103
2280
|
let e = n.parentId !== "" && i.has(n.parentId) ? n.parentId : "", r = t.get(e) ?? [];
|
|
@@ -2116,7 +2293,7 @@ function ve({ collections: e, activeId: t, onSelect: n }) {
|
|
|
2116
2293
|
children: i.map((e) => n(e, a))
|
|
2117
2294
|
};
|
|
2118
2295
|
}, a = (t.get("") ?? []).map((e) => n(e, /* @__PURE__ */ new Set([e.id])));
|
|
2119
|
-
return
|
|
2296
|
+
return w({
|
|
2120
2297
|
rootNode: {
|
|
2121
2298
|
id: "ROOT",
|
|
2122
2299
|
name: "",
|
|
@@ -2134,8 +2311,8 @@ function ve({ collections: e, activeId: t, onSelect: n }) {
|
|
|
2134
2311
|
e,
|
|
2135
2312
|
i,
|
|
2136
2313
|
r
|
|
2137
|
-
]), [s] = c(() =>
|
|
2138
|
-
return /* @__PURE__ */ d(
|
|
2314
|
+
]), [s] = c(() => ve(t, e).slice(0, -1).map((e) => e.id));
|
|
2315
|
+
return /* @__PURE__ */ d(x, {
|
|
2139
2316
|
collection: a,
|
|
2140
2317
|
size: "sm",
|
|
2141
2318
|
selectedValue: [t === "" ? Y : t],
|
|
@@ -2144,28 +2321,90 @@ function ve({ collections: e, activeId: t, onSelect: n }) {
|
|
|
2144
2321
|
let t = e.selectedValue[0];
|
|
2145
2322
|
t !== void 0 && n(t === Y ? "" : t);
|
|
2146
2323
|
},
|
|
2147
|
-
children: [/* @__PURE__ */ u(
|
|
2324
|
+
children: [/* @__PURE__ */ u(b, {
|
|
2148
2325
|
srOnly: !0,
|
|
2149
2326
|
children: r("library.collections")
|
|
2150
|
-
}), /* @__PURE__ */ u(
|
|
2151
|
-
/* @__PURE__ */ u(
|
|
2152
|
-
/* @__PURE__ */ u(
|
|
2327
|
+
}), /* @__PURE__ */ u(S, { children: /* @__PURE__ */ u(re, { render: ({ node: e, nodeState: t }) => t.isBranch ? /* @__PURE__ */ d(te, { children: [
|
|
2328
|
+
/* @__PURE__ */ u(_, { children: /* @__PURE__ */ u(N, { size: 14 }) }),
|
|
2329
|
+
/* @__PURE__ */ u(v, { children: e.name }),
|
|
2153
2330
|
e.restricted ? /* @__PURE__ */ u(X, {}) : null
|
|
2154
|
-
] }) : /* @__PURE__ */ d(
|
|
2331
|
+
] }) : /* @__PURE__ */ d(y, { children: [/* @__PURE__ */ u(ne, { children: e.name }), e.restricted ? /* @__PURE__ */ u(X, {}) : null] }) }) })]
|
|
2332
|
+
});
|
|
2333
|
+
}
|
|
2334
|
+
//#endregion
|
|
2335
|
+
//#region src/screens/blueprint-select-field.tsx
|
|
2336
|
+
function be(e, t, n) {
|
|
2337
|
+
return n ? n.archived ? e("blueprintSelect.archived", { name: n.name }) : n.name : e("blueprintSelect.unknown", { value: t });
|
|
2338
|
+
}
|
|
2339
|
+
function xe(e, t) {
|
|
2340
|
+
let { t: n } = P(U), r = o(() => [...new Set(t)].sort(), [t]), i = M({
|
|
2341
|
+
queryKey: V.blueprintNamesByAccessor(r),
|
|
2342
|
+
queryFn: () => e.getBlueprintsByAccessor(r),
|
|
2343
|
+
enabled: r.length > 0,
|
|
2344
|
+
placeholderData: j,
|
|
2345
|
+
staleTime: 6e4
|
|
2346
|
+
}), a = i.isSuccess && !i.isPlaceholderData;
|
|
2347
|
+
return o(() => {
|
|
2348
|
+
let e = a ? new Map(i.data.map((e) => [e.accessor, e])) : null;
|
|
2349
|
+
return (t) => e ? be(n, t, e.get(t)) : t;
|
|
2350
|
+
}, [
|
|
2351
|
+
a,
|
|
2352
|
+
i.data,
|
|
2353
|
+
n
|
|
2354
|
+
]);
|
|
2355
|
+
}
|
|
2356
|
+
function Z({ blueprintSource: e, valueKey: t, includeWithoutRelease: n = !1, exclude: r, ...a }) {
|
|
2357
|
+
let { t: o } = P(U), s = (r ?? []).join("\0"), c = i(async ({ query: r, cursor: i, signal: a }) => {
|
|
2358
|
+
let o = new Set(s === "" ? [] : s.split("\0")), c = await e.searchBlueprints({
|
|
2359
|
+
query: r,
|
|
2360
|
+
pageToken: i,
|
|
2361
|
+
includeWithoutRelease: n,
|
|
2362
|
+
signal: a
|
|
2363
|
+
});
|
|
2364
|
+
return {
|
|
2365
|
+
items: c.blueprints.filter((e) => !o.has(e[t])).map((e) => ({
|
|
2366
|
+
id: e[t],
|
|
2367
|
+
label: e.name
|
|
2368
|
+
})),
|
|
2369
|
+
nextCursor: c.nextPageToken || null
|
|
2370
|
+
};
|
|
2371
|
+
}, [
|
|
2372
|
+
e,
|
|
2373
|
+
t,
|
|
2374
|
+
n,
|
|
2375
|
+
s
|
|
2376
|
+
]), l = i(async ({ ids: n }) => {
|
|
2377
|
+
let r = t === "id" ? await e.getBlueprints(n) : await e.getBlueprintsByAccessor(n), i = new Map(r.map((e) => [e[t], e]));
|
|
2378
|
+
return n.map((e) => ({
|
|
2379
|
+
id: e,
|
|
2380
|
+
label: be(o, e, i.get(e))
|
|
2381
|
+
}));
|
|
2382
|
+
}, [
|
|
2383
|
+
e,
|
|
2384
|
+
t,
|
|
2385
|
+
o
|
|
2386
|
+
]);
|
|
2387
|
+
return /* @__PURE__ */ u(L, {
|
|
2388
|
+
...a,
|
|
2389
|
+
search: c,
|
|
2390
|
+
resolve: l,
|
|
2391
|
+
emptyMessage: o("blueprintSelect.empty"),
|
|
2392
|
+
errorMessage: o("blueprintSelect.failed"),
|
|
2393
|
+
loadingMessage: o("blueprintSelect.loading")
|
|
2155
2394
|
});
|
|
2156
2395
|
}
|
|
2157
2396
|
//#endregion
|
|
2158
2397
|
//#region src/screens/create-change-set-modal.tsx
|
|
2159
|
-
var
|
|
2398
|
+
var Se = {
|
|
2160
2399
|
name: "",
|
|
2161
2400
|
sourceDate: "",
|
|
2162
2401
|
sourceReference: ""
|
|
2163
|
-
},
|
|
2164
|
-
function
|
|
2165
|
-
let { t: i } =
|
|
2166
|
-
name:
|
|
2167
|
-
sourceDate:
|
|
2168
|
-
sourceReference:
|
|
2402
|
+
}, Ce = "contenthub-create-change-set", Q = /^[^\u0000-\u001f\u007f]*$/;
|
|
2403
|
+
function we({ open: e, onClose: n, onSubmit: r }) {
|
|
2404
|
+
let { t: i } = P(U), s = o(() => B.object({
|
|
2405
|
+
name: B.string().trim().min(1, i("changeSets.form.nameRequired")).max(200, i("changeSets.form.tooLong", { max: 200 })).regex(Q, i("changeSets.form.oneLine")),
|
|
2406
|
+
sourceDate: B.string().trim(),
|
|
2407
|
+
sourceReference: B.string().trim().max(500, i("changeSets.form.tooLong", { max: 500 })).regex(Q, i("changeSets.form.oneLine"))
|
|
2169
2408
|
}).superRefine((e, t) => {
|
|
2170
2409
|
e.sourceReference !== "" && e.sourceDate === "" && t.addIssue({
|
|
2171
2410
|
code: "custom",
|
|
@@ -2176,14 +2415,14 @@ function be({ open: e, onClose: t, onSubmit: r }) {
|
|
|
2176
2415
|
path: ["sourceReference"],
|
|
2177
2416
|
message: i("changeSets.form.sourceReferenceRequired")
|
|
2178
2417
|
});
|
|
2179
|
-
}), [i]), l =
|
|
2180
|
-
resolver:
|
|
2181
|
-
defaultValues:
|
|
2182
|
-
}), [p, m] = c(null),
|
|
2418
|
+
}), [i]), l = fe({
|
|
2419
|
+
resolver: F(s),
|
|
2420
|
+
defaultValues: Se
|
|
2421
|
+
}), [p, m] = c(null), ee = l.formState.isSubmitting;
|
|
2183
2422
|
a(() => {
|
|
2184
|
-
e && (l.reset(
|
|
2423
|
+
e && (l.reset(Se), m(null));
|
|
2185
2424
|
}, [e, l]);
|
|
2186
|
-
let
|
|
2425
|
+
let g = l.handleSubmit(async (e) => {
|
|
2187
2426
|
m(null);
|
|
2188
2427
|
try {
|
|
2189
2428
|
await r({
|
|
@@ -2194,60 +2433,60 @@ function be({ open: e, onClose: t, onSubmit: r }) {
|
|
|
2194
2433
|
}
|
|
2195
2434
|
});
|
|
2196
2435
|
} catch (e) {
|
|
2197
|
-
m(e instanceof
|
|
2436
|
+
m(e instanceof t ? e.message : i("changeSets.form.failed"));
|
|
2198
2437
|
}
|
|
2199
2438
|
});
|
|
2200
|
-
return /* @__PURE__ */ u(
|
|
2439
|
+
return /* @__PURE__ */ u(h, {
|
|
2201
2440
|
open: e,
|
|
2202
|
-
onClose:
|
|
2441
|
+
onClose: n,
|
|
2203
2442
|
lazyMount: !0,
|
|
2204
2443
|
unmountOnExit: !0,
|
|
2205
2444
|
size: "md",
|
|
2206
2445
|
header: i("changeSets.form.createTitle"),
|
|
2207
|
-
footer: /* @__PURE__ */ d(
|
|
2446
|
+
footer: /* @__PURE__ */ d(E, {
|
|
2208
2447
|
gap: "2",
|
|
2209
2448
|
children: [/* @__PURE__ */ u(f, {
|
|
2210
2449
|
size: "sm",
|
|
2211
2450
|
variant: "ghost",
|
|
2212
|
-
onClick:
|
|
2451
|
+
onClick: n,
|
|
2213
2452
|
children: i("common.cancel")
|
|
2214
2453
|
}), /* @__PURE__ */ u(f, {
|
|
2215
2454
|
type: "submit",
|
|
2216
|
-
form:
|
|
2455
|
+
form: Ce,
|
|
2217
2456
|
size: "sm",
|
|
2218
2457
|
variant: "solid",
|
|
2219
|
-
loading:
|
|
2458
|
+
loading: ee,
|
|
2220
2459
|
children: i("changeSets.form.createSubmit")
|
|
2221
2460
|
})]
|
|
2222
2461
|
}),
|
|
2223
|
-
children: /* @__PURE__ */ u(
|
|
2462
|
+
children: /* @__PURE__ */ u(R, {
|
|
2224
2463
|
...l,
|
|
2225
2464
|
children: /* @__PURE__ */ u("form", {
|
|
2226
|
-
id:
|
|
2465
|
+
id: Ce,
|
|
2227
2466
|
onSubmit: (e) => {
|
|
2228
|
-
e.preventDefault(),
|
|
2467
|
+
e.preventDefault(), g();
|
|
2229
2468
|
},
|
|
2230
|
-
children: /* @__PURE__ */ d(
|
|
2469
|
+
children: /* @__PURE__ */ d(O, {
|
|
2231
2470
|
gap: "4",
|
|
2232
2471
|
children: [
|
|
2233
|
-
/* @__PURE__ */ u(
|
|
2472
|
+
/* @__PURE__ */ u(I, {
|
|
2234
2473
|
name: "name",
|
|
2235
2474
|
label: i("changeSets.form.name"),
|
|
2236
2475
|
helperText: i("changeSets.form.nameHelp"),
|
|
2237
2476
|
required: !0
|
|
2238
2477
|
}),
|
|
2239
|
-
/* @__PURE__ */ u(
|
|
2478
|
+
/* @__PURE__ */ u(I, {
|
|
2240
2479
|
name: "sourceDate",
|
|
2241
2480
|
type: "date",
|
|
2242
2481
|
label: i("changeSets.form.sourceDate"),
|
|
2243
2482
|
helperText: i("changeSets.form.sourceDateHelp")
|
|
2244
2483
|
}),
|
|
2245
|
-
/* @__PURE__ */ u(
|
|
2484
|
+
/* @__PURE__ */ u(I, {
|
|
2246
2485
|
name: "sourceReference",
|
|
2247
2486
|
label: i("changeSets.form.sourceReference"),
|
|
2248
2487
|
helperText: i("changeSets.form.sourceReferenceHelp")
|
|
2249
2488
|
}),
|
|
2250
|
-
p ? /* @__PURE__ */ u(
|
|
2489
|
+
p ? /* @__PURE__ */ u(T, {
|
|
2251
2490
|
status: "error",
|
|
2252
2491
|
title: p
|
|
2253
2492
|
}) : null
|
|
@@ -2259,8 +2498,8 @@ function be({ open: e, onClose: t, onSubmit: r }) {
|
|
|
2259
2498
|
}
|
|
2260
2499
|
//#endregion
|
|
2261
2500
|
//#region src/screens/change-set-choice.tsx
|
|
2262
|
-
var
|
|
2263
|
-
function
|
|
2501
|
+
var Te = "@new";
|
|
2502
|
+
function Ee(e, t, n = !1) {
|
|
2264
2503
|
if (!t.changeSetId) return {
|
|
2265
2504
|
path: "changeSetId",
|
|
2266
2505
|
message: e("library.create.changeSetRequired")
|
|
@@ -2278,22 +2517,22 @@ function Se(e, t, n = !1) {
|
|
|
2278
2517
|
message: e("changeSets.form.oneLine")
|
|
2279
2518
|
};
|
|
2280
2519
|
}
|
|
2281
|
-
function
|
|
2282
|
-
let { t: a } =
|
|
2283
|
-
id:
|
|
2520
|
+
function De({ client: e, open: t, helperText: n, nameHelperText: r, nameOptional: i = !1 }) {
|
|
2521
|
+
let { t: a } = P(U), s = J(e, t), c = o(() => [{
|
|
2522
|
+
id: Te,
|
|
2284
2523
|
label: a("library.create.newChangeSet")
|
|
2285
2524
|
}, ...(s.data?.changeSets ?? []).map((e) => ({
|
|
2286
2525
|
id: e.id,
|
|
2287
2526
|
label: e.name
|
|
2288
|
-
}))], [s.data, a]), f =
|
|
2289
|
-
return /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u(
|
|
2527
|
+
}))], [s.data, a]), f = z({ name: "changeSetId" });
|
|
2528
|
+
return /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u(de, {
|
|
2290
2529
|
name: "changeSetId",
|
|
2291
2530
|
label: a("library.create.changeSet"),
|
|
2292
2531
|
helperText: n,
|
|
2293
2532
|
options: c,
|
|
2294
2533
|
isClearable: !1,
|
|
2295
2534
|
required: !0
|
|
2296
|
-
}), f === "@new" ? /* @__PURE__ */ u(
|
|
2535
|
+
}), f === "@new" ? /* @__PURE__ */ u(I, {
|
|
2297
2536
|
name: "changeSetName",
|
|
2298
2537
|
label: a("library.create.changeSetName"),
|
|
2299
2538
|
helperText: r ?? a("changeSets.form.nameHelp"),
|
|
@@ -2302,13 +2541,13 @@ function Ce({ client: e, open: t, helperText: n, nameHelperText: r, nameOptional
|
|
|
2302
2541
|
}
|
|
2303
2542
|
//#endregion
|
|
2304
2543
|
//#region src/screens/create-content-modal.tsx
|
|
2305
|
-
var
|
|
2306
|
-
function
|
|
2307
|
-
let { t:
|
|
2308
|
-
blueprintId:
|
|
2309
|
-
releaseId:
|
|
2310
|
-
changeSetId:
|
|
2311
|
-
changeSetName:
|
|
2544
|
+
var Oe = "contenthub-create-content", $ = (e) => !e.refusals?.length, ke = (e) => e.path ? `${e.code} (${e.path})` : e.code;
|
|
2545
|
+
function Ae({ open: e, onClose: i, client: l, blueprintSource: p, initialChangeSetId: m, onCreated: ee }) {
|
|
2546
|
+
let { t: g } = P(U), te = se(), _ = o(() => B.object({
|
|
2547
|
+
blueprintId: B.string().nullable().refine((e) => !!e, g("library.create.blueprintRequired")),
|
|
2548
|
+
releaseId: B.string().nullable().refine((e) => !!e, g("library.create.releaseRequired")),
|
|
2549
|
+
changeSetId: B.string().nullable().refine((e) => !!e, g("library.create.changeSetRequired")),
|
|
2550
|
+
changeSetName: B.string().trim()
|
|
2312
2551
|
}).superRefine((e, t) => {
|
|
2313
2552
|
if (e.changeSetId !== "@new") return;
|
|
2314
2553
|
let n = (e) => t.addIssue({
|
|
@@ -2316,196 +2555,177 @@ function Ee({ open: e, onClose: l, client: p, blueprintSource: m, initialChangeS
|
|
|
2316
2555
|
path: ["changeSetName"],
|
|
2317
2556
|
message: e
|
|
2318
2557
|
});
|
|
2319
|
-
e.changeSetName === "" ? n(
|
|
2320
|
-
}), [
|
|
2558
|
+
e.changeSetName === "" ? n(g("changeSets.form.nameRequired")) : [...e.changeSetName].length > 200 ? n(g("changeSets.form.tooLong", { max: 200 })) : Q.test(e.changeSetName) || n(g("changeSets.form.oneLine"));
|
|
2559
|
+
}), [g]), v = o(() => ({
|
|
2321
2560
|
blueprintId: null,
|
|
2322
2561
|
releaseId: null,
|
|
2323
|
-
changeSetId:
|
|
2562
|
+
changeSetId: m || "@new",
|
|
2324
2563
|
changeSetName: ""
|
|
2325
|
-
}), [
|
|
2326
|
-
resolver:
|
|
2327
|
-
defaultValues:
|
|
2328
|
-
}), [
|
|
2329
|
-
control:
|
|
2564
|
+
}), [m]), y = fe({
|
|
2565
|
+
resolver: F(_),
|
|
2566
|
+
defaultValues: v
|
|
2567
|
+
}), [ne, b] = c(null), re = y.formState.isSubmitting, x = z({
|
|
2568
|
+
control: y.control,
|
|
2330
2569
|
name: "blueprintId"
|
|
2331
|
-
}),
|
|
2332
|
-
control:
|
|
2570
|
+
}), S = z({
|
|
2571
|
+
control: y.control,
|
|
2333
2572
|
name: "changeSetId"
|
|
2334
2573
|
});
|
|
2335
2574
|
a(() => {
|
|
2336
|
-
e && (
|
|
2575
|
+
e && (y.reset(v), b(null));
|
|
2337
2576
|
}, [
|
|
2338
2577
|
e,
|
|
2339
|
-
|
|
2340
|
-
|
|
2578
|
+
y,
|
|
2579
|
+
v
|
|
2341
2580
|
]);
|
|
2342
|
-
let
|
|
2343
|
-
id:
|
|
2344
|
-
label:
|
|
2345
|
-
}, ...(
|
|
2581
|
+
let C = J(l, e), w = o(() => [{
|
|
2582
|
+
id: Te,
|
|
2583
|
+
label: g("library.create.newChangeSet")
|
|
2584
|
+
}, ...(C.data?.changeSets ?? []).map((e) => ({
|
|
2346
2585
|
id: e.id,
|
|
2347
2586
|
label: e.name
|
|
2348
|
-
}))], [
|
|
2349
|
-
queryKey:
|
|
2350
|
-
queryFn: () =>
|
|
2351
|
-
enabled: e && !!
|
|
2352
|
-
}),
|
|
2587
|
+
}))], [C.data, g]), D = M({
|
|
2588
|
+
queryKey: V.blueprintReleases(x ?? ""),
|
|
2589
|
+
queryFn: () => p.listReleases(x),
|
|
2590
|
+
enabled: e && !!x
|
|
2591
|
+
}), ie = o(() => (D.data ?? []).map((e) => ({
|
|
2353
2592
|
id: e.id,
|
|
2354
|
-
label: $(e) ? e.name :
|
|
2593
|
+
label: $(e) ? e.name : g("library.create.refusedRelease", { name: e.name }),
|
|
2355
2594
|
data: { refused: !$(e) }
|
|
2356
|
-
})), [
|
|
2595
|
+
})), [D.data, g]), ae = o(() => (D.data ?? []).filter((e) => !$(e)), [D.data]), A = s(x);
|
|
2357
2596
|
a(() => {
|
|
2358
|
-
|
|
2359
|
-
let e =
|
|
2360
|
-
if (!
|
|
2361
|
-
e !== null &&
|
|
2597
|
+
A.current !== x && (A.current = x, y.setValue("releaseId", null));
|
|
2598
|
+
let e = y.getValues("releaseId"), t = D.data;
|
|
2599
|
+
if (!x) {
|
|
2600
|
+
e !== null && y.setValue("releaseId", null);
|
|
2362
2601
|
return;
|
|
2363
2602
|
}
|
|
2364
|
-
t && !t.some((t) => t.id === e && $(t)) &&
|
|
2603
|
+
t && !t.some((t) => t.id === e && $(t)) && y.setValue("releaseId", t.find($)?.id ?? null);
|
|
2365
2604
|
}, [
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2605
|
+
x,
|
|
2606
|
+
D.data,
|
|
2607
|
+
y
|
|
2369
2608
|
]);
|
|
2370
|
-
let
|
|
2371
|
-
|
|
2372
|
-
query: e,
|
|
2373
|
-
pageToken: t ?? void 0,
|
|
2374
|
-
signal: n
|
|
2375
|
-
});
|
|
2376
|
-
return {
|
|
2377
|
-
items: r.blueprints.map((e) => ({
|
|
2378
|
-
id: e.id,
|
|
2379
|
-
label: e.name
|
|
2380
|
-
})),
|
|
2381
|
-
nextCursor: r.nextPageToken || null
|
|
2382
|
-
};
|
|
2383
|
-
}, [m]), se = i(async ({ ids: e }) => {
|
|
2384
|
-
let t = await m.getBlueprints(e);
|
|
2385
|
-
return e.map((e) => ({
|
|
2386
|
-
id: e,
|
|
2387
|
-
label: t.find((t) => t.id === e)?.name ?? e
|
|
2388
|
-
}));
|
|
2389
|
-
}, [m]), ce = S.handleSubmit(async (e) => {
|
|
2390
|
-
C(null);
|
|
2609
|
+
let j = !!x && D.isSuccess && D.data.length === 0, oe = !!x && D.isSuccess && D.data.length > 0 && !D.data.some($), N = y.handleSubmit(async (e) => {
|
|
2610
|
+
b(null);
|
|
2391
2611
|
let t = e.changeSetId, n = !1;
|
|
2392
2612
|
try {
|
|
2393
2613
|
if (t === "@new") {
|
|
2394
|
-
let r = await
|
|
2395
|
-
n = !0, t = r.id,
|
|
2614
|
+
let r = await l.createChangeSet({ name: e.changeSetName.trim() });
|
|
2615
|
+
n = !0, t = r.id, y.setValue("changeSetId", t);
|
|
2396
2616
|
}
|
|
2397
|
-
let r = await
|
|
2617
|
+
let r = await l.createContent({
|
|
2398
2618
|
changeSetId: t,
|
|
2399
2619
|
blueprintReleaseId: e.releaseId
|
|
2400
2620
|
});
|
|
2401
|
-
|
|
2621
|
+
te.invalidateQueries({ queryKey: V.contents() }), ee(r);
|
|
2402
2622
|
} catch (e) {
|
|
2403
|
-
if (
|
|
2623
|
+
if (b(ce(e)), !n) return;
|
|
2404
2624
|
}
|
|
2405
|
-
|
|
2625
|
+
te.invalidateQueries({ queryKey: V.changeSets() });
|
|
2406
2626
|
});
|
|
2407
|
-
function
|
|
2408
|
-
if (e instanceof
|
|
2409
|
-
let t = e.reasons.map(
|
|
2410
|
-
return
|
|
2627
|
+
function ce(e) {
|
|
2628
|
+
if (e instanceof n) {
|
|
2629
|
+
let t = e.reasons.map(ke).join(", ");
|
|
2630
|
+
return g("library.create.refused", { reasons: t });
|
|
2411
2631
|
}
|
|
2412
|
-
return e instanceof
|
|
2632
|
+
return e instanceof r ? g("library.create.changeSetClosed") : e instanceof t ? e.message : g("library.create.failed");
|
|
2413
2633
|
}
|
|
2414
|
-
return /* @__PURE__ */ u(
|
|
2634
|
+
return /* @__PURE__ */ u(h, {
|
|
2415
2635
|
open: e,
|
|
2416
|
-
onClose:
|
|
2636
|
+
onClose: i,
|
|
2417
2637
|
lazyMount: !0,
|
|
2418
2638
|
unmountOnExit: !0,
|
|
2419
2639
|
size: "md",
|
|
2420
|
-
header:
|
|
2421
|
-
footer: /* @__PURE__ */ d(
|
|
2640
|
+
header: g("library.create.title"),
|
|
2641
|
+
footer: /* @__PURE__ */ d(E, {
|
|
2422
2642
|
gap: "2",
|
|
2423
2643
|
children: [/* @__PURE__ */ u(f, {
|
|
2424
2644
|
size: "sm",
|
|
2425
2645
|
variant: "ghost",
|
|
2426
|
-
onClick:
|
|
2427
|
-
children:
|
|
2646
|
+
onClick: i,
|
|
2647
|
+
children: g("common.cancel")
|
|
2428
2648
|
}), /* @__PURE__ */ u(f, {
|
|
2429
2649
|
type: "submit",
|
|
2430
|
-
form:
|
|
2650
|
+
form: Oe,
|
|
2431
2651
|
size: "sm",
|
|
2432
2652
|
variant: "solid",
|
|
2433
|
-
loading:
|
|
2434
|
-
disabled:
|
|
2435
|
-
children:
|
|
2653
|
+
loading: re,
|
|
2654
|
+
disabled: j || oe || D.isError,
|
|
2655
|
+
children: g("library.create.submit")
|
|
2436
2656
|
})]
|
|
2437
2657
|
}),
|
|
2438
|
-
children: /* @__PURE__ */ u(
|
|
2439
|
-
...
|
|
2658
|
+
children: /* @__PURE__ */ u(R, {
|
|
2659
|
+
...y,
|
|
2440
2660
|
children: /* @__PURE__ */ u("form", {
|
|
2441
|
-
id:
|
|
2661
|
+
id: Oe,
|
|
2442
2662
|
onSubmit: (e) => {
|
|
2443
|
-
e.preventDefault(),
|
|
2663
|
+
e.preventDefault(), N();
|
|
2444
2664
|
},
|
|
2445
|
-
children: /* @__PURE__ */ d(
|
|
2665
|
+
children: /* @__PURE__ */ d(O, {
|
|
2446
2666
|
gap: "4",
|
|
2447
2667
|
children: [
|
|
2448
|
-
/* @__PURE__ */ u(
|
|
2668
|
+
/* @__PURE__ */ u(Z, {
|
|
2449
2669
|
name: "blueprintId",
|
|
2450
|
-
label:
|
|
2451
|
-
helperText:
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
placeholder:
|
|
2670
|
+
label: g("library.create.blueprint"),
|
|
2671
|
+
helperText: g("library.create.blueprintHelp"),
|
|
2672
|
+
blueprintSource: p,
|
|
2673
|
+
valueKey: "id",
|
|
2674
|
+
placeholder: g("library.create.pickBlueprint"),
|
|
2455
2675
|
required: !0
|
|
2456
2676
|
}),
|
|
2457
|
-
|
|
2677
|
+
x ? /* @__PURE__ */ u(de, {
|
|
2458
2678
|
name: "releaseId",
|
|
2459
|
-
label:
|
|
2460
|
-
helperText:
|
|
2461
|
-
options:
|
|
2679
|
+
label: g("library.create.release"),
|
|
2680
|
+
helperText: g("library.create.releaseHelp"),
|
|
2681
|
+
options: ie,
|
|
2462
2682
|
isClearable: !1,
|
|
2463
2683
|
required: !0,
|
|
2464
2684
|
selectProps: { isOptionDisabled: (e) => e.data?.refused === !0 }
|
|
2465
2685
|
}) : null,
|
|
2466
|
-
|
|
2686
|
+
j ? /* @__PURE__ */ u(T, {
|
|
2467
2687
|
status: "warning",
|
|
2468
|
-
title:
|
|
2688
|
+
title: g("library.create.noRelease")
|
|
2469
2689
|
}) : null,
|
|
2470
|
-
|
|
2690
|
+
oe ? /* @__PURE__ */ u(T, {
|
|
2471
2691
|
status: "warning",
|
|
2472
|
-
title:
|
|
2692
|
+
title: g("library.create.noUsableRelease")
|
|
2473
2693
|
}) : null,
|
|
2474
|
-
|
|
2694
|
+
D.isError ? /* @__PURE__ */ u(T, {
|
|
2475
2695
|
status: "error",
|
|
2476
|
-
title:
|
|
2696
|
+
title: g("library.create.releasesFailed")
|
|
2477
2697
|
}) : null,
|
|
2478
|
-
|
|
2698
|
+
ae.length > 0 ? /* @__PURE__ */ u(T, {
|
|
2479
2699
|
status: "info",
|
|
2480
|
-
title:
|
|
2481
|
-
children: /* @__PURE__ */ u(
|
|
2700
|
+
title: g("library.create.refusedReleases"),
|
|
2701
|
+
children: /* @__PURE__ */ u(O, {
|
|
2482
2702
|
gap: "1",
|
|
2483
|
-
children:
|
|
2703
|
+
children: ae.map((e) => /* @__PURE__ */ u(k, {
|
|
2484
2704
|
textStyle: "sm",
|
|
2485
|
-
children:
|
|
2705
|
+
children: g("library.create.refusedReleaseReasons", {
|
|
2486
2706
|
name: e.name,
|
|
2487
|
-
reasons: (e.refusals ?? []).map(
|
|
2707
|
+
reasons: (e.refusals ?? []).map(ke).join(", ")
|
|
2488
2708
|
})
|
|
2489
2709
|
}, e.id))
|
|
2490
2710
|
})
|
|
2491
2711
|
}) : null,
|
|
2492
|
-
/* @__PURE__ */ u(
|
|
2712
|
+
/* @__PURE__ */ u(de, {
|
|
2493
2713
|
name: "changeSetId",
|
|
2494
|
-
label:
|
|
2495
|
-
helperText:
|
|
2496
|
-
options:
|
|
2714
|
+
label: g("library.create.changeSet"),
|
|
2715
|
+
helperText: g("library.create.changeSetHelp"),
|
|
2716
|
+
options: w,
|
|
2497
2717
|
isClearable: !1,
|
|
2498
2718
|
required: !0
|
|
2499
2719
|
}),
|
|
2500
|
-
|
|
2720
|
+
S === "@new" ? /* @__PURE__ */ u(I, {
|
|
2501
2721
|
name: "changeSetName",
|
|
2502
|
-
label:
|
|
2503
|
-
helperText:
|
|
2722
|
+
label: g("library.create.changeSetName"),
|
|
2723
|
+
helperText: g("changeSets.form.nameHelp"),
|
|
2504
2724
|
required: !0
|
|
2505
2725
|
}) : null,
|
|
2506
|
-
|
|
2726
|
+
ne ? /* @__PURE__ */ u(T, {
|
|
2507
2727
|
status: "error",
|
|
2508
|
-
title:
|
|
2728
|
+
title: ne
|
|
2509
2729
|
}) : null
|
|
2510
2730
|
]
|
|
2511
2731
|
})
|
|
@@ -2515,66 +2735,66 @@ function Ee({ open: e, onClose: l, client: p, blueprintSource: m, initialChangeS
|
|
|
2515
2735
|
}
|
|
2516
2736
|
//#endregion
|
|
2517
2737
|
//#region src/screens/content-library.tsx
|
|
2518
|
-
var
|
|
2738
|
+
var je = [
|
|
2519
2739
|
"main",
|
|
2520
2740
|
"in_force",
|
|
2521
2741
|
"change_set"
|
|
2522
|
-
],
|
|
2523
|
-
function
|
|
2742
|
+
], Me = 50, Ne = 300, Pe = 5, Fe = "@me", Ie = "collection";
|
|
2743
|
+
function Le(e) {
|
|
2524
2744
|
return Object.values(e).filter((e) => typeof e == "string" && e.trim() !== "" && e.length <= 200).slice(0, 2).join(" ");
|
|
2525
2745
|
}
|
|
2526
|
-
function
|
|
2527
|
-
let { t: l } =
|
|
2746
|
+
function Re({ client: e, blueprintSource: n, onOpenContent: r, onOpenBranch: s }) {
|
|
2747
|
+
let { t: l } = P(U), h = _e(e, n), [te, _] = me(), v = te.get("collection") ?? "", [y, ne] = c("main"), [b, re] = c(""), [x, S] = c(""), [w, se] = c(""), [N, le] = c(""), [F, de] = c(""), [I, L] = c(!1), { userId: R, members: fe } = pe();
|
|
2528
2748
|
a(() => {
|
|
2529
|
-
let e = setTimeout(() =>
|
|
2749
|
+
let e = setTimeout(() => se(x), Ne);
|
|
2530
2750
|
return () => clearTimeout(e);
|
|
2531
|
-
}, [
|
|
2532
|
-
let
|
|
2751
|
+
}, [x]);
|
|
2752
|
+
let z = i((e) => _((t) => {
|
|
2533
2753
|
let n = new URLSearchParams(t);
|
|
2534
|
-
return e ? n.set(
|
|
2535
|
-
}), [
|
|
2536
|
-
queryKey:
|
|
2754
|
+
return e ? n.set(Ie, e) : n.delete(Ie), n;
|
|
2755
|
+
}), [_]), B = M({
|
|
2756
|
+
queryKey: V.collections(),
|
|
2537
2757
|
queryFn: () => e.listCollections()
|
|
2538
|
-
}),
|
|
2758
|
+
}), H = J(e), he = i((e) => H.data?.changeSets.find((t) => t.id === e)?.name ?? e, [H.data]), W = b || H.data?.changeSets[0]?.id || "", G = o(() => y === "change_set" ? W ? {
|
|
2539
2759
|
kind: "change_set",
|
|
2540
|
-
changeSetId:
|
|
2541
|
-
} : void 0 : { kind:
|
|
2542
|
-
view:
|
|
2543
|
-
collectionId:
|
|
2544
|
-
search:
|
|
2545
|
-
blueprintIds:
|
|
2546
|
-
assigneeId:
|
|
2760
|
+
changeSetId: W
|
|
2761
|
+
} : void 0 : { kind: y }, [y, W]), ge = o(() => ({
|
|
2762
|
+
view: G,
|
|
2763
|
+
collectionId: v || void 0,
|
|
2764
|
+
search: y === "in_force" ? void 0 : w.trim() || void 0,
|
|
2765
|
+
blueprintIds: N ? [N] : void 0,
|
|
2766
|
+
assigneeId: F === Fe ? R : F || void 0
|
|
2547
2767
|
}), [
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2768
|
+
G,
|
|
2769
|
+
v,
|
|
2770
|
+
y,
|
|
2771
|
+
w,
|
|
2772
|
+
N,
|
|
2552
2773
|
F,
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
queryKey: W.contentList(me),
|
|
2774
|
+
R
|
|
2775
|
+
]), K = oe({
|
|
2776
|
+
queryKey: V.contentList(ge),
|
|
2557
2777
|
queryFn: ({ pageParam: t }) => e.listContents({
|
|
2558
|
-
...
|
|
2559
|
-
pageSize:
|
|
2778
|
+
...ge,
|
|
2779
|
+
pageSize: Me,
|
|
2560
2780
|
pageToken: t
|
|
2561
2781
|
}),
|
|
2562
2782
|
initialPageParam: "",
|
|
2563
2783
|
getNextPageParam: (e) => e.nextPageToken || void 0,
|
|
2564
|
-
enabled:
|
|
2565
|
-
placeholderData:
|
|
2566
|
-
}),
|
|
2567
|
-
queryKey:
|
|
2568
|
-
queryFn: () =>
|
|
2569
|
-
enabled:
|
|
2570
|
-
placeholderData:
|
|
2784
|
+
enabled: G !== void 0,
|
|
2785
|
+
placeholderData: j
|
|
2786
|
+
}), q = o(() => K.data?.pages.flatMap((e) => e.contents) ?? [], [K.data]), Y = o(() => [...new Set(q.map((e) => e.blueprintId))].sort(), [q]), X = M({
|
|
2787
|
+
queryKey: V.blueprintNames(Y),
|
|
2788
|
+
queryFn: () => h.getBlueprints(Y),
|
|
2789
|
+
enabled: Y.length > 0,
|
|
2790
|
+
placeholderData: j,
|
|
2571
2791
|
staleTime: 6e4
|
|
2572
|
-
}),
|
|
2573
|
-
queryKey:
|
|
2792
|
+
}), be = i((e) => X.data?.find((t) => t.id === e)?.name ?? e, [X.data]), xe = M({
|
|
2793
|
+
queryKey: V.blueprintFilterOptions(),
|
|
2574
2794
|
queryFn: async () => {
|
|
2575
2795
|
let e = [], t = "";
|
|
2576
|
-
for (let n = 0; n <
|
|
2577
|
-
let n = await
|
|
2796
|
+
for (let n = 0; n < Pe; n++) {
|
|
2797
|
+
let n = await h.searchBlueprints({
|
|
2578
2798
|
query: "",
|
|
2579
2799
|
pageToken: t
|
|
2580
2800
|
});
|
|
@@ -2583,22 +2803,22 @@ function Pe({ client: e, blueprintSource: t, onOpenContent: r, onOpenBranch: s }
|
|
|
2583
2803
|
return e;
|
|
2584
2804
|
},
|
|
2585
2805
|
staleTime: 6e4
|
|
2586
|
-
}),
|
|
2587
|
-
for (let e of
|
|
2588
|
-
let e = new Map(
|
|
2589
|
-
for (let t of
|
|
2806
|
+
}), Z = o(() => /* @__PURE__ */ new Map(), [h]), Se = o(() => {
|
|
2807
|
+
for (let e of X.data ?? []) Z.set(e.id, e);
|
|
2808
|
+
let e = new Map(Z);
|
|
2809
|
+
for (let t of xe.data ?? []) e.set(t.id, t);
|
|
2590
2810
|
return [...e.values()].sort((e, t) => e.name.localeCompare(t.name));
|
|
2591
2811
|
}, [
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
]),
|
|
2812
|
+
Z,
|
|
2813
|
+
xe.data,
|
|
2814
|
+
X.data
|
|
2815
|
+
]), Ce = o(() => [
|
|
2596
2816
|
{
|
|
2597
2817
|
id: "content",
|
|
2598
2818
|
header: l("library.columns.content"),
|
|
2599
2819
|
cell: ({ row: e }) => {
|
|
2600
|
-
let t =
|
|
2601
|
-
return /* @__PURE__ */ u(
|
|
2820
|
+
let t = Le(e.original.data);
|
|
2821
|
+
return /* @__PURE__ */ u(C, {
|
|
2602
2822
|
value: t || e.original.id,
|
|
2603
2823
|
subText: t ? e.original.id : void 0
|
|
2604
2824
|
});
|
|
@@ -2607,144 +2827,144 @@ function Pe({ client: e, blueprintSource: t, onOpenContent: r, onOpenBranch: s }
|
|
|
2607
2827
|
{
|
|
2608
2828
|
id: "blueprint",
|
|
2609
2829
|
header: l("library.columns.blueprint"),
|
|
2610
|
-
cell: ({ row: e }) => /* @__PURE__ */ u(
|
|
2830
|
+
cell: ({ row: e }) => /* @__PURE__ */ u(C, { value: be(e.original.blueprintId) })
|
|
2611
2831
|
},
|
|
2612
2832
|
{
|
|
2613
2833
|
id: "readOn",
|
|
2614
2834
|
header: l("library.columns.readOn"),
|
|
2615
2835
|
cell: ({ row: e }) => {
|
|
2616
|
-
let t = e.original, n = t.changeSetId ?
|
|
2617
|
-
return /* @__PURE__ */ u(
|
|
2836
|
+
let t = e.original, n = t.changeSetId ? he(t.changeSetId) : t.releaseId ? l("library.readOn.release") : l("library.readOn.main");
|
|
2837
|
+
return /* @__PURE__ */ u(C, { value: n });
|
|
2618
2838
|
}
|
|
2619
2839
|
},
|
|
2620
2840
|
{
|
|
2621
2841
|
id: "revised",
|
|
2622
2842
|
header: l("library.columns.revised"),
|
|
2623
|
-
cell: ({ row: e }) => /* @__PURE__ */ u(
|
|
2843
|
+
cell: ({ row: e }) => /* @__PURE__ */ u(ee, { value: e.original.revisionCreateTime })
|
|
2624
2844
|
}
|
|
2625
2845
|
], [
|
|
2626
2846
|
l,
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
]),
|
|
2847
|
+
be,
|
|
2848
|
+
he
|
|
2849
|
+
]), Q = /* @__PURE__ */ d(f, {
|
|
2630
2850
|
size: "sm",
|
|
2631
2851
|
variant: "solid",
|
|
2632
|
-
onClick: () =>
|
|
2633
|
-
children: [/* @__PURE__ */ u(
|
|
2634
|
-
}), we =
|
|
2635
|
-
return /* @__PURE__ */ d(
|
|
2852
|
+
onClick: () => L(!0),
|
|
2853
|
+
children: [/* @__PURE__ */ u(ue, { size: 16 }), l("library.create.button")]
|
|
2854
|
+
}), we = K.error instanceof t ? K.error.message : l("library.loadError"), Te = v ? ve(v, B.data ?? []).map((e) => e.name).join(" / ") || v : l("library.allContent");
|
|
2855
|
+
return /* @__PURE__ */ d(ae, {
|
|
2636
2856
|
title: l("library.title"),
|
|
2637
2857
|
breadcrumbs: [{ label: l("library.title") }],
|
|
2638
|
-
actions:
|
|
2639
|
-
toolbar: /* @__PURE__ */ d(
|
|
2640
|
-
|
|
2858
|
+
actions: Q,
|
|
2859
|
+
toolbar: /* @__PURE__ */ d(g, { children: [
|
|
2860
|
+
y === "in_force" ? /* @__PURE__ */ u(k, {
|
|
2641
2861
|
fontSize: "sm",
|
|
2642
2862
|
color: "muted",
|
|
2643
2863
|
children: l("library.filter.searchInForce")
|
|
2644
|
-
}) : /* @__PURE__ */ u(
|
|
2864
|
+
}) : /* @__PURE__ */ u(g.Search, {
|
|
2645
2865
|
placeholder: l("library.filter.searchPlaceholder"),
|
|
2646
|
-
value:
|
|
2647
|
-
onChange: (e) =>
|
|
2866
|
+
value: x,
|
|
2867
|
+
onChange: (e) => S([...e].slice(0, 200).join(""))
|
|
2648
2868
|
}),
|
|
2649
|
-
/* @__PURE__ */ d(
|
|
2650
|
-
/* @__PURE__ */ u(
|
|
2869
|
+
/* @__PURE__ */ d(g.Filters, { children: [
|
|
2870
|
+
/* @__PURE__ */ u(D, {
|
|
2651
2871
|
size: "sm",
|
|
2652
2872
|
"aria-label": l("library.filter.view"),
|
|
2653
|
-
value:
|
|
2873
|
+
value: y,
|
|
2654
2874
|
onChange: (e) => {
|
|
2655
2875
|
let t = e.target.value;
|
|
2656
|
-
t === "in_force" && (
|
|
2876
|
+
t === "in_force" && (S(""), se("")), ne(t);
|
|
2657
2877
|
},
|
|
2658
|
-
children:
|
|
2878
|
+
children: je.map((e) => /* @__PURE__ */ u("option", {
|
|
2659
2879
|
value: e,
|
|
2660
2880
|
children: l(`library.view.${e}`)
|
|
2661
2881
|
}, e))
|
|
2662
2882
|
}),
|
|
2663
|
-
|
|
2883
|
+
y === "change_set" ? /* @__PURE__ */ d(D, {
|
|
2664
2884
|
size: "sm",
|
|
2665
2885
|
"aria-label": l("library.filter.changeSet"),
|
|
2666
|
-
value:
|
|
2667
|
-
onChange: (e) =>
|
|
2668
|
-
children: [
|
|
2886
|
+
value: W,
|
|
2887
|
+
onChange: (e) => re(e.target.value),
|
|
2888
|
+
children: [H.data?.changeSets.length ? null : /* @__PURE__ */ u("option", {
|
|
2669
2889
|
value: "",
|
|
2670
2890
|
children: l("library.filter.noOpenChangeSet")
|
|
2671
|
-
}), (
|
|
2891
|
+
}), (H.data?.changeSets ?? []).map((e) => /* @__PURE__ */ u("option", {
|
|
2672
2892
|
value: e.id,
|
|
2673
2893
|
children: e.name
|
|
2674
2894
|
}, e.id))]
|
|
2675
2895
|
}) : null,
|
|
2676
|
-
/* @__PURE__ */ d(
|
|
2896
|
+
/* @__PURE__ */ d(D, {
|
|
2677
2897
|
size: "sm",
|
|
2678
2898
|
"aria-label": l("library.filter.blueprint"),
|
|
2679
|
-
value:
|
|
2680
|
-
onChange: (e) =>
|
|
2899
|
+
value: N,
|
|
2900
|
+
onChange: (e) => le(e.target.value),
|
|
2681
2901
|
children: [/* @__PURE__ */ u("option", {
|
|
2682
2902
|
value: "",
|
|
2683
2903
|
children: l("library.filter.anyBlueprint")
|
|
2684
|
-
}),
|
|
2904
|
+
}), Se.map((e) => /* @__PURE__ */ u("option", {
|
|
2685
2905
|
value: e.id,
|
|
2686
2906
|
children: e.name
|
|
2687
2907
|
}, e.id))]
|
|
2688
2908
|
}),
|
|
2689
|
-
/* @__PURE__ */ d(
|
|
2909
|
+
/* @__PURE__ */ d(D, {
|
|
2690
2910
|
size: "sm",
|
|
2691
2911
|
"aria-label": l("library.filter.assignee"),
|
|
2692
|
-
value:
|
|
2693
|
-
onChange: (e) =>
|
|
2912
|
+
value: F,
|
|
2913
|
+
onChange: (e) => de(e.target.value),
|
|
2694
2914
|
children: [
|
|
2695
2915
|
/* @__PURE__ */ u("option", {
|
|
2696
2916
|
value: "",
|
|
2697
2917
|
children: l("library.filter.anyone")
|
|
2698
2918
|
}),
|
|
2699
2919
|
/* @__PURE__ */ u("option", {
|
|
2700
|
-
value:
|
|
2920
|
+
value: Fe,
|
|
2701
2921
|
children: l("library.filter.me")
|
|
2702
2922
|
}),
|
|
2703
|
-
|
|
2923
|
+
fe.list().filter((e) => e.userId !== R).map((e) => /* @__PURE__ */ u("option", {
|
|
2704
2924
|
value: e.userId,
|
|
2705
2925
|
children: e.displayName
|
|
2706
2926
|
}, e.userId))
|
|
2707
2927
|
]
|
|
2708
2928
|
})
|
|
2709
2929
|
] }),
|
|
2710
|
-
/* @__PURE__ */ u(
|
|
2930
|
+
/* @__PURE__ */ u(g.Right, { children: K.isError ? null : /* @__PURE__ */ d(g.Count, { children: [l("library.count", { count: q.length }), K.hasNextPage ? "+" : ""] }) })
|
|
2711
2931
|
] }),
|
|
2712
|
-
children: [/* @__PURE__ */ d(
|
|
2932
|
+
children: [/* @__PURE__ */ d(A, {
|
|
2713
2933
|
storageKey: "contenthub-library-subnav",
|
|
2714
|
-
children: [/* @__PURE__ */ u(
|
|
2934
|
+
children: [/* @__PURE__ */ u(A.Nav, {
|
|
2715
2935
|
"aria-label": l("library.collections"),
|
|
2716
|
-
children:
|
|
2717
|
-
collections:
|
|
2718
|
-
activeId:
|
|
2719
|
-
onSelect:
|
|
2720
|
-
}) :
|
|
2936
|
+
children: B.isSuccess ? /* @__PURE__ */ u(ye, {
|
|
2937
|
+
collections: B.data,
|
|
2938
|
+
activeId: v,
|
|
2939
|
+
onSelect: z
|
|
2940
|
+
}) : B.isError ? /* @__PURE__ */ u(k, {
|
|
2721
2941
|
fontSize: "sm",
|
|
2722
2942
|
color: "muted",
|
|
2723
2943
|
px: "3",
|
|
2724
2944
|
py: "2",
|
|
2725
2945
|
children: l("library.collectionsError")
|
|
2726
|
-
}) : /* @__PURE__ */ u(
|
|
2946
|
+
}) : /* @__PURE__ */ u(E, {
|
|
2727
2947
|
justify: "center",
|
|
2728
2948
|
py: "4",
|
|
2729
|
-
children: /* @__PURE__ */ u(
|
|
2949
|
+
children: /* @__PURE__ */ u(ie, { size: "sm" })
|
|
2730
2950
|
})
|
|
2731
|
-
}), /* @__PURE__ */ d(
|
|
2951
|
+
}), /* @__PURE__ */ d(A.Detail, { children: [/* @__PURE__ */ u(A.Toolbar, { children: /* @__PURE__ */ u(k, {
|
|
2732
2952
|
fontSize: "sm",
|
|
2733
2953
|
fontWeight: "medium",
|
|
2734
|
-
children:
|
|
2735
|
-
}) }), /* @__PURE__ */ d(
|
|
2954
|
+
children: Te
|
|
2955
|
+
}) }), /* @__PURE__ */ d(O, {
|
|
2736
2956
|
gap: "3",
|
|
2737
2957
|
children: [
|
|
2738
|
-
|
|
2958
|
+
K.isError ? /* @__PURE__ */ u(T, {
|
|
2739
2959
|
status: "error",
|
|
2740
2960
|
title: we,
|
|
2741
2961
|
mx: "8",
|
|
2742
2962
|
mt: "4"
|
|
2743
2963
|
}) : null,
|
|
2744
2964
|
/* @__PURE__ */ u(m, {
|
|
2745
|
-
columns:
|
|
2746
|
-
data:
|
|
2747
|
-
loading:
|
|
2965
|
+
columns: Ce,
|
|
2966
|
+
data: q,
|
|
2967
|
+
loading: K.isLoading,
|
|
2748
2968
|
getRowId: (e) => `${e.id}/${e.branchId}/${e.releaseId}`,
|
|
2749
2969
|
onRowClick: (e) => r({
|
|
2750
2970
|
contentId: e.id,
|
|
@@ -2752,32 +2972,32 @@ function Pe({ client: e, blueprintSource: t, onOpenContent: r, onOpenBranch: s }
|
|
|
2752
2972
|
}),
|
|
2753
2973
|
variant: "hoverable",
|
|
2754
2974
|
emptyState: /* @__PURE__ */ u(p, {
|
|
2755
|
-
icon: /* @__PURE__ */ u(
|
|
2975
|
+
icon: /* @__PURE__ */ u(ce, { size: 32 }),
|
|
2756
2976
|
header: l("library.empty"),
|
|
2757
2977
|
description: l("library.emptyHint")
|
|
2758
2978
|
})
|
|
2759
2979
|
}),
|
|
2760
|
-
|
|
2980
|
+
K.hasNextPage ? /* @__PURE__ */ u(E, {
|
|
2761
2981
|
justify: "center",
|
|
2762
2982
|
pb: "4",
|
|
2763
2983
|
children: /* @__PURE__ */ u(f, {
|
|
2764
2984
|
size: "sm",
|
|
2765
2985
|
variant: "outline",
|
|
2766
|
-
loading:
|
|
2767
|
-
onClick: () => void
|
|
2986
|
+
loading: K.isFetchingNextPage,
|
|
2987
|
+
onClick: () => void K.fetchNextPage(),
|
|
2768
2988
|
children: l("library.more")
|
|
2769
2989
|
})
|
|
2770
2990
|
}) : null
|
|
2771
2991
|
]
|
|
2772
2992
|
})] })]
|
|
2773
|
-
}), /* @__PURE__ */ u(
|
|
2774
|
-
open:
|
|
2775
|
-
onClose: () =>
|
|
2993
|
+
}), /* @__PURE__ */ u(Ae, {
|
|
2994
|
+
open: I,
|
|
2995
|
+
onClose: () => L(!1),
|
|
2776
2996
|
client: e,
|
|
2777
|
-
blueprintSource:
|
|
2778
|
-
initialChangeSetId:
|
|
2997
|
+
blueprintSource: h,
|
|
2998
|
+
initialChangeSetId: y === "change_set" ? W : void 0,
|
|
2779
2999
|
onCreated: (e) => {
|
|
2780
|
-
|
|
3000
|
+
L(!1), s({
|
|
2781
3001
|
changeSetId: e.changeSetId,
|
|
2782
3002
|
contentId: e.id,
|
|
2783
3003
|
branchId: e.branchId
|
|
@@ -2786,8 +3006,8 @@ function Pe({ client: e, blueprintSource: t, onOpenContent: r, onOpenBranch: s }
|
|
|
2786
3006
|
})]
|
|
2787
3007
|
});
|
|
2788
3008
|
}
|
|
2789
|
-
|
|
3009
|
+
Re.displayName = "ContentLibrary";
|
|
2790
3010
|
//#endregion
|
|
2791
|
-
export {
|
|
3011
|
+
export { Te as a, Z as c, J as d, _e as f, V as g, W as h, De as i, xe as l, G as m, Re as n, Ee as o, U as p, Le as r, we as s, Ie as t, ve as u };
|
|
2792
3012
|
|
|
2793
|
-
//# sourceMappingURL=content-library-
|
|
3013
|
+
//# sourceMappingURL=content-library-C5MCRNY0.js.map
|