@knkcs/contenthub-ui 0.4.0 → 0.5.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 +11 -0
- package/README.md +3 -3
- package/dist/{branch-content-fields-BQG6U0yl.js → branch-content-fields-DI9aQfh0.js} +2 -2
- package/dist/{branch-content-fields-BQG6U0yl.js.map → branch-content-fields-DI9aQfh0.js.map} +1 -1
- package/dist/{content-library-DFIk09bD.js → content-library-BdHuzmXL.js} +160 -14
- package/dist/content-library-BdHuzmXL.js.map +1 -0
- package/dist/{heads-DqHmAW0n.js → heads-BrvZ_GYT.js} +4 -3
- package/dist/heads-BrvZ_GYT.js.map +1 -0
- package/dist/index.d.ts +450 -13
- package/dist/index.js +3261 -2533
- package/dist/index.js.map +1 -1
- package/dist/testing.d.ts +155 -7
- package/dist/testing.js +551 -317
- 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
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.5.0](https://github.com/knkCS/contenthub/compare/contenthub-ui-v0.4.0...contenthub-ui-v0.5.0) (2026-10-14)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* direct edit on dated content ([#270](https://github.com/knkCS/contenthub/issues/270)) ([#293](https://github.com/knkCS/contenthub/issues/293)) ([f324a73](https://github.com/knkCS/contenthub/commit/f324a735d338a91a256fc9d2a3ec70a1da1b086a))
|
|
9
|
+
* force an editing block, and set the force group ([#269](https://github.com/knkCS/contenthub/issues/269)) ([#289](https://github.com/knkCS/contenthub/issues/289)) ([ea774d7](https://github.com/knkCS/contenthub/commit/ea774d746d1fc3f8504d192efaccf351dd1b2bbc))
|
|
10
|
+
* save & publish, the publish dialog, checks and compare for a direct edit ([#266](https://github.com/knkCS/contenthub/issues/266)) ([#282](https://github.com/knkCS/contenthub/issues/282)) ([d8fe67a](https://github.com/knkCS/contenthub/commit/d8fe67aca90da9e448d20dc7d8103be9c9040e62))
|
|
11
|
+
* set an editing block when a direct edit opens ([#267](https://github.com/knkCS/contenthub/issues/267)) ([#279](https://github.com/knkCS/contenthub/issues/279)) ([37a9977](https://github.com/knkCS/contenthub/commit/37a9977466edc1e2c1d1a8341c3173d75a17a88e))
|
|
12
|
+
* update a direct edit behind main and resolve its merge in place ([#268](https://github.com/knkCS/contenthub/issues/268)) ([#283](https://github.com/knkCS/contenthub/issues/283)) ([9c39762](https://github.com/knkCS/contenthub/commit/9c39762086cc0dc7098f163ab5c46ee75cc97ffb))
|
|
13
|
+
|
|
3
14
|
## [0.4.0](https://github.com/knkCS/contenthub/compare/contenthub-ui-v0.3.1...contenthub-ui-v0.4.0) (2026-10-14)
|
|
4
15
|
|
|
5
16
|
|
package/README.md
CHANGED
|
@@ -4,13 +4,13 @@ contenthub's screens for knk hosts (contenthub ADR 0020, knkcms/core ADR 0003).
|
|
|
4
4
|
|
|
5
5
|
The package exports screens only, never routes:
|
|
6
6
|
|
|
7
|
-
- `ContenthubSettings`: the workspace's configuration on one settings page of four tabs, chosen by `?tab=` (`required-checks`, `block-reasons`, `editing`, `collections`), so it needs a router. Required Checks are declared and edited in a Modal (name, scope, Blueprints by accessor or every one, independent); who records each is read from contenthub (every member, until narrowed) and narrowed from its row to named members from the host's members, adding oneself (break-glass) included, or opened to every member again; in `authz.mode: workspace` every member records every check, and the tab says so and offers no recorders editor. Block Reasons are listed, created, renamed and removed. Editing shows the workspace's Editing Mode
|
|
7
|
+
- `ContenthubSettings`: the workspace's configuration on one settings page of four tabs, chosen by `?tab=` (`required-checks`, `block-reasons`, `editing`, `collections`), so it needs a router. Required Checks are declared and edited in a Modal (name, scope, Blueprints by accessor or every one, independent); who records each is read from contenthub (every member, until narrowed) and narrowed from its row to named members from the host's members, adding oneself (break-glass) included, or opened to every member again; in `authz.mode: workspace` every member records every check, and the tab says so and offers no recorders editor. Block Reasons are listed, created, renamed and removed. Editing shows the workspace's Editing Mode, Editing Block and Force Group (ADR 0022; the admins, and the people named beside them from the host's members), changed in a Modal, above a table of the per-Blueprint overrides, each Blueprint with the values its Content gets and a field left to the workspace marked as its default; overrides are added by accessor, changed and removed, and an override may give a Blueprint a Force Group of its own. Collections are the tree in order, created, renamed, moved and removed; restricted (making the admin its owner) and unrestricted, each confirmed, the unrestrict as an acknowledged disclosure; and a Restricted Collection's grants are managed from the host's members, granting oneself (break-glass) included. In `authz.mode: workspace` contenthub refuses restriction, and the tab then says it needs guardian mode.
|
|
8
8
|
- `BlockReasonsSettings`: the Block Reasons on a page of their own, for a host that mounts them apart from `ContenthubSettings`.
|
|
9
9
|
- `ContentLibrary`: the Collection tree in `SubNavLayout.Nav` beside the Content table, narrowing together with the toolbar's search, view (Main, In Force, a Change Set) and Blueprint filters; the selected Collection is the URL's `?collection=`, so it needs a router. Rows call `onOpenContent({ contentId, changeSetId? })`; New Content creates a Content in an open or new Change Set and calls `onOpenBranch`.
|
|
10
|
-
- `ContentPage`: one Content, read on Main or (`changeSetId`) inside the Change Set it was born in, in tabs Data (read-only, through fieldkit's read mode, loaded lazily), Releases (on Dated Content each Release offers Change validity, which corrects its dates in one request, wherever the Blueprint's effective Editing Mode allows a Direct Edit), Revisions (with Compare), References, Change Sets and Filing. The header's one Save sets Filing (Collections, assignees) and never writes a Revision. Its rail offers Edit and Start editing as the Editing Mode in effect for the Content's Blueprint says (ADR 0022: Edit alone, both, or Start editing alone; Dated Content
|
|
10
|
+
- `ContentPage`: one Content, read on Main or (`changeSetId`) inside the Change Set it was born in, in tabs Data (read-only, through fieldkit's read mode, loaded lazily), Releases (on Dated Content each Release offers Change validity, which corrects its dates in one request, wherever the Blueprint's effective Editing Mode allows a Direct Edit), Revisions (with Compare), References, Change Sets and Filing. The header's one Save sets Filing (Collections, assignees) and never writes a Revision. Its rail offers Edit and Start editing as the Editing Mode in effect for the Content's Blueprint says (ADR 0022: Edit alone, both, or Start editing alone; on Dated Content Edit first asks when the change takes effect, today by default, unless the caller's open Direct Edit is the one it returns), Duplicate, Repeal or Withdraw, Block or Unblock, and Archive (only once nothing is In Force today or later) or Unarchive; Start editing and Duplicate end in `onOpenBranch`; Edit opens the caller's Direct Edit, or finds it open, and ends in `onOpenChangeSet`, so Edit is offered only with it. While the caller has an open Direct Edit of the Content the page says so and leads back to it. While another editor's Direct Edit holds the Content's Editing Block, the page says "Being edited by" them and since when, and offers no Edit; to a member of the Force Group in effect for the Blueprint (which `getEffectiveEditingSettings` reports as `callerInForceGroup`) the banner offers Force, which asks first, naming whose work it takes over, and then leaves the caller with the Direct Edit as their own; Block, Unblock and the Blocked badge are the editor's Block's alone and leave the Editing Block be. The Change Sets tab names each open Direct Edit's editor, and `onOpenContent` and `onOpenChangeSet` open the rows of its References and Change Sets tabs. It needs `@knkcs/fieldkit` as a peer.
|
|
11
11
|
- `ChangeSetsIndex`: the workspace's Change Sets, narrowed by kind (Direct Edits hidden until asked for), state and assignee, created in a Modal; `onOpenChangeSet(id)` opens one, a new one too.
|
|
12
12
|
- `ChangeSetPage`: one Change Set, its General tab (name and Source while it is open, status label, assignees, dependencies) saved from the header's one Save; its Contents tab, whose rows call `onOpenBranch({ changeSetId, contentId, branchId })`; its Releases tab (Planned Releases, proposals read-only, the Releases they cover) and its Checks tab (each Required Check's latest result, stale or not, and Record). Its rail holds Publish, Update from Main and Discard, and an About section with the readiness tile (`ValidatePublish` at the current heads), the status label and the Source; Publish opens a review that publishes exactly the heads it shows. `onPublished` and `onDiscarded` tell the host. Its leave guard needs a data router (react-router's `useBlocker`). A Change Set that is a Direct Edit shows as `DirectEditPage` instead.
|
|
13
|
-
- `DirectEditPage`: a Direct Edit (ADR 0022), as its editor sees it: the Content's fields in the Branch editor's form with the header's one
|
|
13
|
+
- `DirectEditPage`: a Direct Edit (ADR 0022), as its editor sees it: the Content's fields in the Branch editor's form with the header's Save and, beside it, Save & publish (the draft saved and published in one request, refused as a whole), Publish and Discard in the rail (Publish asks for unsaved edits to be saved first; Discard asks first), a Compare tab against the Revision it forked from, and a Checks tab with its Required Checks and Record. Publish and Save & publish go through a dialog when the Blueprint Release declares Release Spec Fields, prefilled with each Field's declared default, and the dialog lists every refusal of a Publish (its blockers, refused values, a Block). On Dated Content (#270) both always go through it: it shows the Release's Validity Period with its last day editable (a correction keeps the corrected wording's, a later day starts a new wording), the date-only Releases contenthub computes, read-only (`previewDirectEditPublish`), and one question per later wording, whether the change carries into it, answered before Publish; a period that would cover a Release entirely is shown refused, pointing to a Change Set. While a Change Set published past it leaves it behind Main, the screen says so (`ValidatePublish` at its head), and neither Publish nor Save & publish is offered: Update from Main stands in the rail where Publish was, and where both sides changed a field, Resolve merge takes its place and resolves the Pending Merge field by field, or aborts it, in the Direct Edit itself. No Change Set, Chain, Branch or Release tab. `onPublished` and `onDiscarded` tell the host. `ChangeSetPage` renders it for a Direct Edit, so a host needs no route of its own.
|
|
14
14
|
- `BranchEditor`: one Content inside a Change Set at one Branch (`changeSetId`, `contentId`, `branchId`), its header tabs chosen by `?tab=`. It reads the Content at that Branch's own head (`GetContent` with `branch_id`); only the Chain's last Branch is edited, and an earlier one shows read-only. The Content tab renders the Blueprint Release's form through fieldkit's `SpecForm`, with knkeditor for rich text, both loaded lazily; reference fields search contenthub, media fields use the `MediaSource` port. The forms above the tabs are the drafts (fieldkit's "Consumer-owned Save across unmounting tabs"): the Content's, and the Release tab's Planned Release (Validity Period, supersedes, Release Spec values; the Change Set's proposals beside it, read-only). The header's one Save persists every changed tab: one `SaveRevision` on the head the editor loaded, with a field mask of what changed, then `PlanRelease` or `UpdatePlannedRelease`; a refused save sends no plan, and a refused plan leaves only the Release tab changed. A moved head is refused with Reload, never merged; the leave guard needs a data router. Compare shows the head against its fork or Main, References its outgoing edges and outdated pins. The rail offers Update from Main and the merge resolution it may leave, Compare to the fork, Preview, Append a Branch (`onOpenBranch` opens it) and Drop Chain (`onDeleted` leaves), and shows the fork Release, the effective date, the Chain position and the head. It needs `@knkcs/fieldkit` (0.18), `@knkcms/knkeditor-editor` and `@knkcms/knkeditor-vocabulary` (GitHub Packages) as peers.
|
|
15
15
|
- `MediaSource`, the port a host fills with mediahub, in fieldkit's media-adapter shape (ADR 0020). Without it a media field offers nothing to pick.
|
|
16
16
|
- `StatusSource`, the port a host fills with statushub for Change Set status labels (ADR 0020). Without it the screens show the bare slug and offer no status picker. A status it answers with `isDefault` (statushub's default) is what a Change Set without a status reads as (ADR 0014 D9); a host should pass it on.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as e } from "./content-library-
|
|
1
|
+
import { r as e } from "./content-library-BdHuzmXL.js";
|
|
2
2
|
import { useMemo as t } from "react";
|
|
3
3
|
import { jsx as n } from "react/jsx-runtime";
|
|
4
4
|
import { FieldKitProvider as r, SpecForm as i } from "@knkcs/fieldkit/renderer";
|
|
@@ -83,4 +83,4 @@ function d({ client: e, changeSetId: a, branchId: o, fields: s, parts: c, labels
|
|
|
83
83
|
//#endregion
|
|
84
84
|
export { d as default };
|
|
85
85
|
|
|
86
|
-
//# sourceMappingURL=branch-content-fields-
|
|
86
|
+
//# sourceMappingURL=branch-content-fields-DI9aQfh0.js.map
|
package/dist/{branch-content-fields-BQG6U0yl.js.map → branch-content-fields-DI9aQfh0.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-content-fields-
|
|
1
|
+
{"version":3,"file":"branch-content-fields-DI9aQfh0.js","names":["contentLabel","MAX_PAGE","itemOf","data","id","blueprintId","branchAdapters","wanted","page","page_size","list","client","query","blueprintIds","excluded","excludeIds","seen","items","c","start","total","ids","detail","contentId","mediaSource","file","filter","plugins","builtInFieldTypes","p","knkRichTextPlugin","BranchContentFields","adapters","useMemo","changeSetId","FieldKitProvider","SpecForm","fields","branchId"],"sources":["../src/screens/branch-adapters.ts","../src/screens/branch-content-fields.tsx"],"sourcesContent":["// fieldkit's adapters for the Branch editor (ADR 0020): references from\n// contenthub's own reads, media through the host's MediaSource port. Types\n// only from fieldkit, so this module adds nothing to the root bundle.\nimport type { FieldKitAdapters, PinTarget, ReferenceItem } from \"@knkcs/fieldkit/renderer\";\nimport type { ContenthubClient } from \"../client/contenthub-client\";\nimport type { MediaSource } from \"../types\";\nimport { contentLabel } from \"./content-library\";\n\n/** The most rows one search asks for: ListContents' own cap. */\nconst MAX_PAGE = 200;\n\n/** What a picker shows for a Content: its label, or its id when its data has none. */\nfunction itemOf(id: string, blueprintId: string, data: Record<string, unknown>): ReferenceItem {\n\treturn { id, display_name: contentLabel(data) || id, blueprint_id: blueprintId };\n}\n\n/**\n * The adapters a Branch's form gets: `reference` searches contenthub's\n * Editor Search on Main (which reads open Branch heads too, so Content born\n * in an open Change Set is found), names a referenced Content from its read\n * and offers its Releases to pin; `media` is the host's MediaSource, absent\n * when the host has none, which leaves a media field nothing to pick.\n */\nexport function branchAdapters({\n\tclient,\n\tchangeSetId,\n\tmediaSource,\n}: {\n\tclient: ContenthubClient;\n\tchangeSetId: string;\n\tmediaSource?: MediaSource;\n}): FieldKitAdapters {\n\treturn {\n\t\treference: {\n\t\t\tasync search({ query, blueprintIds, excludeIds, page, page_size }) {\n\t\t\t\tconst wanted = Math.min(MAX_PAGE, Math.max(1, page) * Math.max(1, page_size));\n\t\t\t\t// Every target Blueprint at once: the service narrows the page, so\n\t\t\t\t// it holds only what the Field may point at, and paging stays exact.\n\t\t\t\tconst list = await client.listContents({\n\t\t\t\t\tsearch: query.trim() || undefined,\n\t\t\t\t\tblueprintIds: blueprintIds.length > 0 ? blueprintIds : undefined,\n\t\t\t\t\tpageSize: wanted,\n\t\t\t\t});\n\t\t\t\tconst excluded = new Set(excludeIds ?? []);\n\t\t\t\tconst seen = new Set<string>();\n\t\t\t\tconst items: ReferenceItem[] = [];\n\t\t\t\t// A search lists a Content once per head that matched: one row each.\n\t\t\t\tfor (const c of list.contents) {\n\t\t\t\t\tif (seen.has(c.id) || excluded.has(c.id)) continue;\n\t\t\t\t\tseen.add(c.id);\n\t\t\t\t\titems.push(itemOf(c.id, c.blueprintId, c.data));\n\t\t\t\t}\n\t\t\t\tconst start = (Math.max(1, page) - 1) * page_size;\n\t\t\t\t// The total is exact on the last page; otherwise there is at least one more.\n\t\t\t\tconst total = list.nextPageToken ? items.length + 1 : items.length;\n\t\t\t\treturn { items: items.slice(start, start + page_size), total };\n\t\t\t},\n\t\t\tasync fetch(ids) {\n\t\t\t\treturn Promise.all(\n\t\t\t\t\tids.map(async (id) => {\n\t\t\t\t\t\t// Published Content reads on Main; Content born in this\n\t\t\t\t\t\t// Change Set exists only there.\n\t\t\t\t\t\tconst detail = await client\n\t\t\t\t\t\t\t.getContent({ id })\n\t\t\t\t\t\t\t.catch(() => client.getContent({ id, changeSetId }))\n\t\t\t\t\t\t\t.catch(() => undefined);\n\t\t\t\t\t\treturn detail\n\t\t\t\t\t\t\t? itemOf(id, detail.content.blueprintId, detail.content.data)\n\t\t\t\t\t\t\t: { id, display_name: id };\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t},\n\t\t\t// A Pin names a Release (the one pinning kind fieldkit has), newest first.\n\t\t\tasync listPinTargets(contentId) {\n\t\t\t\tconst timeline = await client.getTimeline(contentId);\n\t\t\t\treturn [...timeline.entries].reverse().map(\n\t\t\t\t\t(e): PinTarget => ({\n\t\t\t\t\t\tid: e.releaseId,\n\t\t\t\t\t\tlabel: `#${e.ordinal}`,\n\t\t\t\t\t\tdescription: e.validityPeriod\n\t\t\t\t\t\t\t? `${e.validityPeriod.firstDay} – ${e.validityPeriod.lastDay || \"…\"}`\n\t\t\t\t\t\t\t: e.publishTime.slice(0, 10),\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tmedia: mediaSource\n\t\t\t? {\n\t\t\t\t\tupload: (file) => mediaSource.upload(file),\n\t\t\t\t\tbrowse: (filter) => mediaSource.browse(filter),\n\t\t\t\t}\n\t\t\t: undefined,\n\t};\n}\n","// fieldkit's renderer with knkeditor for rich text, behind a lazily loaded\n// module: both load the first time a Branch's Content tab is shown, never\n// with the rest of the package (spec #56; branch-editor-bundle.test.ts).\nimport { FieldKitProvider, SpecForm, type SpecFormLabels } from \"@knkcs/fieldkit/renderer\";\nimport { knkRichTextPlugin } from \"@knkcs/fieldkit/rich-text\";\nimport { builtInFieldTypes, type FieldTypePlugin, type Schema } from \"@knkcs/fieldkit/schema\";\nimport { useMemo } from \"react\";\nimport type { ContenthubClient } from \"../client/contenthub-client\";\nimport type { MediaSource, ResolvedField } from \"../types\";\nimport { branchAdapters } from \"./branch-adapters\";\n\n// rich_text through knkeditor (fieldkit ADR-0026); every other type as built in.\nconst plugins: FieldTypePlugin[] = builtInFieldTypes.map((p) =>\n\tp.id === \"rich_text\" ? (knkRichTextPlugin as FieldTypePlugin) : p,\n);\n\nexport interface BranchContentFieldsProps {\n\tclient: ContenthubClient;\n\tchangeSetId: string;\n\t/** The record the form holds, so SpecForm's remembered section is this Branch's. */\n\tbranchId: string;\n\tfields: ResolvedField[];\n\t/** The Resolved Release's parts: the Text Types its rich_text fields pin. */\n\tparts: Record<string, Record<string, unknown>>;\n\tlabels: SpecFormLabels;\n\treadOnly: boolean;\n\tmediaSource?: MediaSource;\n}\n\n/**\n * The Branch's data as the Blueprint Release lays it out, editable: its\n * sections, orientation and cards as fieldkit draws them, over the form the\n * editor holds above its tabs (fieldkit's spec-form.mdx, \"A Consumer-owned\n * Save across unmounting tabs\"). SpecForm keeps no draft of its own.\n */\nexport default function BranchContentFields({\n\tclient,\n\tchangeSetId,\n\tbranchId,\n\tfields,\n\tparts,\n\tlabels,\n\treadOnly,\n\tmediaSource,\n}: BranchContentFieldsProps) {\n\tconst adapters = useMemo(\n\t\t() => branchAdapters({ client, changeSetId, mediaSource }),\n\t\t[client, changeSetId, mediaSource],\n\t);\n\treturn (\n\t\t<FieldKitProvider plugins={plugins} adapters={adapters} parts={parts}>\n\t\t\t<SpecForm\n\t\t\t\tschema={fields as unknown as Schema}\n\t\t\t\tlabels={labels}\n\t\t\t\treadOnly={readOnly}\n\t\t\t\trecordKey={branchId}\n\t\t\t/>\n\t\t</FieldKitProvider>\n\t);\n}\n"],"mappings":";;;;;;;AASA,IAAMC,IAAW;AAGjB,SAASC,EAAO,GAAY,GAAqB,GAA8C;CAC9F,OAAO;EAAE;EAAI,cAAcF,EAAaG,CAAI,KAAKC;EAAI,cAAcC;CAAY;AAChF;AASA,SAAgBC,EAAe,EAC9B,WACA,gBACA,kBAKoB;CACpB,OAAO;EACN,WAAW;GACV,MAAM,OAAO,EAAE,UAAO,iBAAc,eAAY,SAAM,gBAAa;IAClE,IAAMC,IAAS,KAAK,IAAIN,GAAU,KAAK,IAAI,GAAGO,CAAI,IAAI,KAAK,IAAI,GAAGC,CAAS,CAAC,GAGtEC,IAAO,MAAMC,EAAO,aAAa;KACtC,QAAQC,EAAM,KAAK,KAAK,KAAA;KACxB,cAAcC,EAAa,SAAS,IAAIA,IAAe,KAAA;KACvD,UAAUN;IACX,CAAC,GACKO,IAAW,IAAI,IAAIC,KAAc,CAAC,CAAC,GACnCC,oBAAO,IAAI,IAAY,GACvBC,IAAyB,CAAC;IAEhC,KAAK,IAAMC,KAAKR,EAAK,UACpB,AAAIM,EAAK,IAAIE,EAAE,EAAE,KAAKJ,EAAS,IAAII,EAAE,EAAE,MACvCF,EAAK,IAAIE,EAAE,EAAE,GACbD,EAAM,KAAKf,EAAOgB,EAAE,IAAIA,EAAE,aAAaA,EAAE,IAAI,CAAC;IAE/C,IAAMC,KAAS,KAAK,IAAI,GAAGX,CAAI,IAAI,KAAKC,GAElCW,IAAQV,EAAK,gBAAgBO,EAAM,SAAS,IAAIA,EAAM;IAC5D,OAAO;KAAE,OAAOA,EAAM,MAAME,GAAOA,IAAQV,CAAS;KAAG;IAAM;GAC9D;GACA,MAAM,MAAM,GAAK;IAChB,OAAO,QAAQ,IACdY,EAAI,IAAI,OAAO,MAAO;KAGrB,IAAMC,IAAS,MAAMX,EACnB,WAAW,EAAE,MAAG,CAAC,CAAC,CAClB,YAAYA,EAAO,WAAW;MAAE;MAAI;KAAY,CAAC,CAAC,CAAC,CACnD,YAAY,KAAA,CAAS;KACvB,OAAOW,IACJpB,EAAOE,GAAIkB,EAAO,QAAQ,aAAaA,EAAO,QAAQ,IAAI,IAC1D;MAAE;MAAI,cAAclB;KAAG;IAC3B,CAAC,CACF;GACD;GAEA,MAAM,eAAe,GAAW;IAE/B,OAAO,CAAC,IAAG,MADYO,EAAO,YAAYY,CAAS,EAAA,CAC/B,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,KACrC,OAAkB;KAClB,IAAI,EAAE;KACN,OAAO,IAAI,EAAE;KACb,aAAa,EAAE,iBACZ,GAAG,EAAE,eAAe,SAAS,KAAK,EAAE,eAAe,WAAW,QAC9D,EAAE,YAAY,MAAM,GAAG,EAAE;IAC7B,EACD;GACD;EACD;EACA,OAAOC,IACJ;GACA,SAAS,MAASA,EAAY,OAAOC,CAAI;GACzC,SAAS,MAAWD,EAAY,OAAOE,CAAM;EAC9C,IACC,KAAA;CACJ;AACD;;;ACjFA,IAAMC,IAA6BC,EAAkB,KAAK,MACzDC,EAAE,OAAO,cAAeC,IAAwCD,CACjE;AAqBA,SAAwBE,EAAoB,EAC3C,WACA,gBACA,aACA,WACA,UACA,WACA,aACA,kBAC4B;CAC5B,IAAMC,IAAWC,QACV3B,EAAe;EAAE;EAAQ;EAAa;CAAY,CAAC,GACzD;EAACK;EAAQuB;EAAaV;CAAW,CAClC;CACA,OACC,kBAACW,GAAD;EAA2B;EAAmB;EAAiB;EAC9D,UAAA,kBAACC,GAAD;GACC,QAAQC;GACA;GACE;GACV,WAAWC;EACX,CAAA;CACgB,CAAA;AAEpB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { T as e, h as t, w as n, y as r } from "./heads-
|
|
1
|
+
import { T as e, h as t, w as n, y as r } from "./heads-BrvZ_GYT.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";
|
|
@@ -188,14 +188,15 @@ var W = {
|
|
|
188
188
|
},
|
|
189
189
|
workspace: {
|
|
190
190
|
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
|
|
191
|
+
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
192
|
edit: "Vorgaben ändern"
|
|
193
193
|
},
|
|
194
194
|
columns: {
|
|
195
195
|
blueprint: "Blueprint",
|
|
196
196
|
mode: "Bearbeitungsmodus",
|
|
197
197
|
block: "Bearbeitungssperre",
|
|
198
|
-
actions: "Aktionen"
|
|
198
|
+
actions: "Aktionen",
|
|
199
|
+
force: "Force-Gruppe"
|
|
199
200
|
},
|
|
200
201
|
fromWorkspace: "{{value}} (Vorgabe des Arbeitsbereichs)",
|
|
201
202
|
createOverride: "Neue Abweichung",
|
|
@@ -221,16 +222,25 @@ var W = {
|
|
|
221
222
|
block: "Bearbeitungssperre",
|
|
222
223
|
blockHelp: "Ob das Öffnen einer Direktbearbeitung die Direktbearbeitungen anderer fernhält, bis sie veröffentlicht oder verworfen ist. Change Sets kommen weiter durch.",
|
|
223
224
|
follow: "Vorgabe des Arbeitsbereichs ({{value}})",
|
|
224
|
-
overridesNothing: "Weichen Sie beim Bearbeitungsmodus, bei der Bearbeitungssperre oder bei
|
|
225
|
+
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
226
|
save: "Speichern",
|
|
226
227
|
denied: "Nur ein Admin des Arbeitsbereichs ändert die Bearbeitungseinstellungen.",
|
|
227
|
-
failed: "Die Bearbeitungseinstellungen konnten nicht gespeichert werden. Versuchen Sie es erneut."
|
|
228
|
+
failed: "Die Bearbeitungseinstellungen konnten nicht gespeichert werden. Versuchen Sie es erneut.",
|
|
229
|
+
force: "Force-Gruppe",
|
|
230
|
+
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.",
|
|
231
|
+
forcePeople: "Personen neben den Admins",
|
|
232
|
+
forceNobody: "Nur Admins",
|
|
233
|
+
forceOwn: "Eigene Force-Gruppe"
|
|
228
234
|
},
|
|
229
235
|
removeDialog: {
|
|
230
236
|
title: "Abweichung entfernen",
|
|
231
237
|
message: "Die Abweichung für „{{name}}“ entfernen? Ihre Inhalte folgen dann wieder den Vorgaben des Arbeitsbereichs.",
|
|
232
238
|
confirm: "Entfernen",
|
|
233
239
|
failed: "Die Abweichung konnte nicht entfernt werden. Versuchen Sie es erneut."
|
|
240
|
+
},
|
|
241
|
+
force: {
|
|
242
|
+
adminsOnly: "Admins",
|
|
243
|
+
adminsAnd: "Admins und {{names}}"
|
|
234
244
|
}
|
|
235
245
|
},
|
|
236
246
|
requiredChecks: {
|
|
@@ -916,6 +926,18 @@ var W = {
|
|
|
916
926
|
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
927
|
confirm: "Archivieren"
|
|
918
928
|
},
|
|
929
|
+
editingBlock: {
|
|
930
|
+
beingEdited: "Wird bearbeitet von {{who}}, seit {{since}}",
|
|
931
|
+
force: "Übernehmen",
|
|
932
|
+
forceConfirm: {
|
|
933
|
+
title: "Direktbearbeitung übernehmen",
|
|
934
|
+
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.",
|
|
935
|
+
confirm: "Übernehmen",
|
|
936
|
+
failed: "Die Direktbearbeitung konnte nicht übernommen werden. Versuchen Sie es erneut.",
|
|
937
|
+
denied: "Nur die Force-Gruppe dieses Blueprints darf eine Direktbearbeitung übernehmen: seine Admins und die Personen, die sie nennt."
|
|
938
|
+
},
|
|
939
|
+
forced: "Sie haben die Direktbearbeitung von {{who}} übernommen. Die Änderungen gehören jetzt Ihnen."
|
|
940
|
+
},
|
|
919
941
|
directEdit: {
|
|
920
942
|
unpublished: "Sie haben unveröffentlichte Änderungen",
|
|
921
943
|
continue: "Weiter bearbeiten"
|
|
@@ -960,13 +982,64 @@ var W = {
|
|
|
960
982
|
refused_one: "Veröffentlichen wurde aus {{count}} Grund abgelehnt",
|
|
961
983
|
refused_other: "Veröffentlichen wurde aus {{count}} Gründen abgelehnt",
|
|
962
984
|
refusedBecause: {
|
|
963
|
-
dated_content: "Dieser Inhalt ist datiert: ändern Sie ihn in einem Change Set, das sagt, ab wann die Änderung gilt.",
|
|
964
985
|
one_branch: "Eine Direktbearbeitung ändert nur einen Inhalt: verwenden Sie ein Change Set.",
|
|
965
986
|
not_a_direct_edit: "Dieses Change Set ist keine Direktbearbeitung.",
|
|
987
|
+
editing_blocked: "Jemand anderes bearbeitet diesen Inhalt direkt: warten Sie, bis die Änderungen veröffentlicht oder verworfen sind.",
|
|
988
|
+
not_the_editor: "Diese Direktbearbeitung gehört inzwischen jemand anderem: Nur ihre Bearbeiterin oder ihr Bearbeiter speichert, veröffentlicht oder verwirft sie.",
|
|
989
|
+
own_direct_edit: "Sie haben selbst eine Direktbearbeitung dieses Inhalts: Veröffentlichen oder verwerfen Sie sie, bevor Sie eine andere übernehmen.",
|
|
990
|
+
no_editing_block: "Diese Direktbearbeitung wurde inzwischen veröffentlicht oder verworfen: Es gibt nichts zu übernehmen.",
|
|
966
991
|
unknown: "Die Direktbearbeitung wurde abgelehnt."
|
|
967
992
|
},
|
|
993
|
+
updateFromMain: "Aus Main aktualisieren",
|
|
994
|
+
resolveMerge: "Zusammenführung lösen",
|
|
995
|
+
behind: {
|
|
996
|
+
title: "Main ist weiter: Ein Change Set hat diesen Inhalt geändert, nachdem Sie begonnen haben.",
|
|
997
|
+
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."
|
|
998
|
+
},
|
|
999
|
+
pendingMerge: {
|
|
1000
|
+
title: "Ihre Änderungen und die aus Main betreffen dieselben Felder.",
|
|
1001
|
+
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."
|
|
1002
|
+
},
|
|
968
1003
|
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."
|
|
1004
|
+
changeSetsOnly: "Dieser Inhalt wird nur über Change Sets geändert: bearbeiten Sie ihn in einem Change Set.",
|
|
1005
|
+
saveAndPublish: "Speichern & veröffentlichen",
|
|
1006
|
+
publishDialog: {
|
|
1007
|
+
title: "Direktbearbeitung veröffentlichen",
|
|
1008
|
+
publishHint: "Veröffentlicht das Gespeicherte als neues Release, in Kraft ab jetzt.",
|
|
1009
|
+
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.",
|
|
1010
|
+
specHint: "Die Werte, die dieses Release trägt, wie sein Blueprint sie festlegt. Werte, die der Blueprint vorbelegt, sind schon ausgefüllt.",
|
|
1011
|
+
refusedValues_one: "{{count}} Wert wurde abgelehnt",
|
|
1012
|
+
refusedValues_other: "{{count}} Werte wurden abgelehnt",
|
|
1013
|
+
datedPublishHint: "Veröffentlicht das Gespeicherte als neues Release für den Gültigkeitszeitraum unten.",
|
|
1014
|
+
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.",
|
|
1015
|
+
period: "Gültigkeitszeitraum",
|
|
1016
|
+
correction: "Eine Berichtigung der geltenden Fassung: ihr Release behält deren Gültigkeitszeitraum und ersetzt sie.",
|
|
1017
|
+
newWording: "Eine neue Fassung ab {{firstDay}}: sie schneidet in die vorher geltende Fassung.",
|
|
1018
|
+
firstDay: "Erster Tag",
|
|
1019
|
+
lastDay: "Letzter Tag",
|
|
1020
|
+
lastDayHelp: "Leer lassen für ein offenes Ende: es endet dann am Tag vor der nächsten späteren Fassung.",
|
|
1021
|
+
computed: "Releases nur mit Daten, die contenthub erzeugt",
|
|
1022
|
+
computedHint: "Aus dem Zeitraum berechnet, nicht änderbar: jedes beendet oder setzt eine Fassung fort, in die der Zeitraum schneidet.",
|
|
1023
|
+
computedRow: "Fassung {{release}}",
|
|
1024
|
+
noComputed: "Keine: der Zeitraum schneidet in keine andere Fassung.",
|
|
1025
|
+
carryForward: "Spätere Fassungen",
|
|
1026
|
+
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.",
|
|
1027
|
+
wording: "Fassung ab {{firstDay}}",
|
|
1028
|
+
wordingUntil: "Fassung vom {{firstDay}} bis {{lastDay}}",
|
|
1029
|
+
carryYes: "Ja, Änderung auch hier übernehmen",
|
|
1030
|
+
carryNo: "Nein, wie veröffentlicht lassen",
|
|
1031
|
+
unanswered: "Beantworten Sie vor dem Veröffentlichen jede spätere Fassung.",
|
|
1032
|
+
previewFailed: "Was diese Veröffentlichung plant, konnte nicht gelesen werden.",
|
|
1033
|
+
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."
|
|
1034
|
+
},
|
|
1035
|
+
effective: {
|
|
1036
|
+
title: "Bearbeiten: gilt ab",
|
|
1037
|
+
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.",
|
|
1038
|
+
label: "Gilt ab",
|
|
1039
|
+
help: "Heute, außer die Änderung beginnt später.",
|
|
1040
|
+
required: "Wählen Sie den Tag, ab dem die Änderung gilt.",
|
|
1041
|
+
submit: "Bearbeiten"
|
|
1042
|
+
}
|
|
970
1043
|
}
|
|
971
1044
|
}, fe = {
|
|
972
1045
|
common: { cancel: "Cancel" },
|
|
@@ -1028,14 +1101,15 @@ var W = {
|
|
|
1028
1101
|
},
|
|
1029
1102
|
workspace: {
|
|
1030
1103
|
title: "Workspace defaults",
|
|
1031
|
-
description: "How Content may be changed: in a Direct Edit, opened from the Content, in a Change Set, or both
|
|
1104
|
+
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
1105
|
edit: "Change defaults"
|
|
1033
1106
|
},
|
|
1034
1107
|
columns: {
|
|
1035
1108
|
blueprint: "Blueprint",
|
|
1036
1109
|
mode: "Editing Mode",
|
|
1037
1110
|
block: "Editing Block",
|
|
1038
|
-
actions: "Actions"
|
|
1111
|
+
actions: "Actions",
|
|
1112
|
+
force: "Force Group"
|
|
1039
1113
|
},
|
|
1040
1114
|
fromWorkspace: "{{value}} (workspace default)",
|
|
1041
1115
|
createOverride: "New override",
|
|
@@ -1061,16 +1135,25 @@ var W = {
|
|
|
1061
1135
|
block: "Editing Block",
|
|
1062
1136
|
blockHelp: "Whether opening a Direct Edit keeps other editors' Direct Edits out until it is published or discarded. Change Sets still pass it.",
|
|
1063
1137
|
follow: "Workspace default ({{value}})",
|
|
1064
|
-
overridesNothing: "Override the Editing Mode, the Editing Block or
|
|
1138
|
+
overridesNothing: "Override the Editing Mode, the Editing Block, the Force Group or several. To follow the workspace in all, remove the override.",
|
|
1065
1139
|
save: "Save",
|
|
1066
1140
|
denied: "Only a workspace admin changes the editing settings.",
|
|
1067
|
-
failed: "The editing settings could not be saved. Try again."
|
|
1141
|
+
failed: "The editing settings could not be saved. Try again.",
|
|
1142
|
+
force: "Force Group",
|
|
1143
|
+
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.",
|
|
1144
|
+
forcePeople: "People beside the admins",
|
|
1145
|
+
forceNobody: "Admins only",
|
|
1146
|
+
forceOwn: "Its own Force Group"
|
|
1068
1147
|
},
|
|
1069
1148
|
removeDialog: {
|
|
1070
1149
|
title: "Remove override",
|
|
1071
1150
|
message: "Remove the override of “{{name}}”? Its Content follows the workspace defaults again.",
|
|
1072
1151
|
confirm: "Remove",
|
|
1073
1152
|
failed: "The override could not be removed. Try again."
|
|
1153
|
+
},
|
|
1154
|
+
force: {
|
|
1155
|
+
adminsOnly: "Admins",
|
|
1156
|
+
adminsAnd: "Admins and {{names}}"
|
|
1074
1157
|
}
|
|
1075
1158
|
},
|
|
1076
1159
|
requiredChecks: {
|
|
@@ -1993,6 +2076,18 @@ var W = {
|
|
|
1993
2076
|
message: "Archived Content leaves the Library, every picker and editing. Its Releases stay readable, and Unarchive brings it back.",
|
|
1994
2077
|
confirm: "Archive"
|
|
1995
2078
|
},
|
|
2079
|
+
editingBlock: {
|
|
2080
|
+
beingEdited: "Being edited by {{who}}, since {{since}}",
|
|
2081
|
+
force: "Force",
|
|
2082
|
+
forceConfirm: {
|
|
2083
|
+
title: "Take over the Direct Edit",
|
|
2084
|
+
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.",
|
|
2085
|
+
confirm: "Take over",
|
|
2086
|
+
failed: "The Direct Edit could not be taken over. Try again.",
|
|
2087
|
+
denied: "Only the Force Group of this Blueprint may take over a Direct Edit: its admins and the people it names."
|
|
2088
|
+
},
|
|
2089
|
+
forced: "You took over {{who}}'s Direct Edit. Their changes are yours now."
|
|
2090
|
+
},
|
|
1996
2091
|
directEdit: {
|
|
1997
2092
|
unpublished: "You have unpublished changes",
|
|
1998
2093
|
continue: "Continue editing"
|
|
@@ -2037,13 +2132,64 @@ var W = {
|
|
|
2037
2132
|
refused_one: "Publish was refused for {{count}} reason",
|
|
2038
2133
|
refused_other: "Publish was refused for {{count}} reasons",
|
|
2039
2134
|
refusedBecause: {
|
|
2040
|
-
dated_content: "This Content is Dated: change it in a Change Set, which says when the change takes effect.",
|
|
2041
2135
|
one_branch: "A Direct Edit changes one Content only: use a Change Set.",
|
|
2042
2136
|
not_a_direct_edit: "This Change Set is not a Direct Edit.",
|
|
2137
|
+
editing_blocked: "Someone else is editing this Content directly: wait until they publish or discard their changes.",
|
|
2138
|
+
not_the_editor: "This Direct Edit is someone else's now: only its editor saves, publishes or discards it.",
|
|
2139
|
+
own_direct_edit: "You have a Direct Edit of this Content yourself: publish or discard it before taking over another.",
|
|
2140
|
+
no_editing_block: "This Direct Edit has been published or discarded meanwhile: there is nothing to take over.",
|
|
2043
2141
|
unknown: "The Direct Edit was refused."
|
|
2044
2142
|
},
|
|
2143
|
+
updateFromMain: "Update from Main",
|
|
2144
|
+
resolveMerge: "Resolve merge",
|
|
2145
|
+
behind: {
|
|
2146
|
+
title: "Main has moved on: a Change Set published a change to this Content after you started.",
|
|
2147
|
+
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."
|
|
2148
|
+
},
|
|
2149
|
+
pendingMerge: {
|
|
2150
|
+
title: "Your changes and Main's changed the same fields.",
|
|
2151
|
+
message: "Publish waits until you resolve the merge field by field, or abort it, which leaves this edit behind Main. Saves wait too."
|
|
2152
|
+
},
|
|
2045
2153
|
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."
|
|
2154
|
+
changeSetsOnly: "This Content is changed through Change Sets only: start editing it in a Change Set.",
|
|
2155
|
+
saveAndPublish: "Save & publish",
|
|
2156
|
+
publishDialog: {
|
|
2157
|
+
title: "Publish the Direct Edit",
|
|
2158
|
+
publishHint: "Publishes what is saved as a new Release, In Force from now.",
|
|
2159
|
+
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.",
|
|
2160
|
+
specHint: "The values this Release carries, as its Blueprint declares them. Values the Blueprint prefills are filled in already.",
|
|
2161
|
+
refusedValues_one: "{{count}} value was refused",
|
|
2162
|
+
refusedValues_other: "{{count}} values were refused",
|
|
2163
|
+
datedPublishHint: "Publishes what is saved as a new Release for the Validity Period below.",
|
|
2164
|
+
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.",
|
|
2165
|
+
period: "Validity Period",
|
|
2166
|
+
correction: "A correction of the wording in force: its Release keeps that wording's Validity Period and supersedes it.",
|
|
2167
|
+
newWording: "A new wording from {{firstDay}}: it cuts into the wording in force before then.",
|
|
2168
|
+
firstDay: "First day",
|
|
2169
|
+
lastDay: "Last day",
|
|
2170
|
+
lastDayHelp: "Leave empty for an open end: it then ends the day before the next later wording.",
|
|
2171
|
+
computed: "Date-only Releases contenthub cuts",
|
|
2172
|
+
computedHint: "Worked out from the period, not editable: each ends or resumes a wording the period cuts into.",
|
|
2173
|
+
computedRow: "Wording {{release}}",
|
|
2174
|
+
noComputed: "None: the period cuts into no other wording.",
|
|
2175
|
+
carryForward: "Later wordings",
|
|
2176
|
+
carryForwardHint: "Wordings already published for later days. Say for each whether your change applies to it too.",
|
|
2177
|
+
wording: "Wording from {{firstDay}}",
|
|
2178
|
+
wordingUntil: "Wording from {{firstDay}} to {{lastDay}}",
|
|
2179
|
+
carryYes: "Yes, apply my change to it too",
|
|
2180
|
+
carryNo: "No, keep it as published",
|
|
2181
|
+
unanswered: "Answer every later wording before publishing.",
|
|
2182
|
+
previewFailed: "What this Publish would plan could not be read.",
|
|
2183
|
+
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."
|
|
2184
|
+
},
|
|
2185
|
+
effective: {
|
|
2186
|
+
title: "Edit: takes effect on",
|
|
2187
|
+
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.",
|
|
2188
|
+
label: "Takes effect on",
|
|
2189
|
+
help: "Today, unless the change starts later.",
|
|
2190
|
+
required: "Choose the day the change takes effect.",
|
|
2191
|
+
submit: "Edit"
|
|
2192
|
+
}
|
|
2047
2193
|
}
|
|
2048
2194
|
}, K = "contenthub-ui", q = {
|
|
2049
2195
|
en: { [K]: fe },
|
|
@@ -2790,4 +2936,4 @@ Pe.displayName = "ContentLibrary";
|
|
|
2790
2936
|
//#endregion
|
|
2791
2937
|
export { xe as a, _e as c, K as d, pe as f, Ce as i, ge as l, W as m, Pe as n, Se as o, q as p, Ne as r, be as s, Me as t, he as u };
|
|
2792
2938
|
|
|
2793
|
-
//# sourceMappingURL=content-library-
|
|
2939
|
+
//# sourceMappingURL=content-library-BdHuzmXL.js.map
|