@terminalfour/terminalfour-js 1.0.0-rc.1
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/LICENSE.md +106 -0
- package/README.md +169 -0
- package/dist/cjs/element-resolver.d.ts +115 -0
- package/dist/cjs/element-resolver.d.ts.map +1 -0
- package/dist/cjs/element-resolver.js +391 -0
- package/dist/cjs/element-resolver.js.map +1 -0
- package/dist/cjs/errors.d.ts +21 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +21 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/handlebars.d.ts +123 -0
- package/dist/cjs/handlebars.d.ts.map +1 -0
- package/dist/cjs/handlebars.js +306 -0
- package/dist/cjs/handlebars.js.map +1 -0
- package/dist/cjs/http-client.d.ts +21 -0
- package/dist/cjs/http-client.d.ts.map +1 -0
- package/dist/cjs/http-client.js +126 -0
- package/dist/cjs/http-client.js.map +1 -0
- package/dist/cjs/index.d.ts +37 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +55 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/media-category-ref.d.ts +78 -0
- package/dist/cjs/media-category-ref.d.ts.map +1 -0
- package/dist/cjs/media-category-ref.js +184 -0
- package/dist/cjs/media-category-ref.js.map +1 -0
- package/dist/cjs/media-library.d.ts +30 -0
- package/dist/cjs/media-library.d.ts.map +1 -0
- package/dist/cjs/media-library.js +77 -0
- package/dist/cjs/media-library.js.map +1 -0
- package/dist/cjs/models/content-item.d.ts +80 -0
- package/dist/cjs/models/content-item.d.ts.map +1 -0
- package/dist/cjs/models/content-item.js +682 -0
- package/dist/cjs/models/content-item.js.map +1 -0
- package/dist/cjs/models/media-category-item.d.ts +29 -0
- package/dist/cjs/models/media-category-item.d.ts.map +1 -0
- package/dist/cjs/models/media-category-item.js +33 -0
- package/dist/cjs/models/media-category-item.js.map +1 -0
- package/dist/cjs/models/media-item.d.ts +74 -0
- package/dist/cjs/models/media-item.d.ts.map +1 -0
- package/dist/cjs/models/media-item.js +188 -0
- package/dist/cjs/models/media-item.js.map +1 -0
- package/dist/cjs/models/section-item.d.ts +58 -0
- package/dist/cjs/models/section-item.d.ts.map +1 -0
- package/dist/cjs/models/section-item.js +166 -0
- package/dist/cjs/models/section-item.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/resources/channel-resource.d.ts +112 -0
- package/dist/cjs/resources/channel-resource.d.ts.map +1 -0
- package/dist/cjs/resources/channel-resource.js +107 -0
- package/dist/cjs/resources/channel-resource.js.map +1 -0
- package/dist/cjs/resources/content-resource.d.ts +50 -0
- package/dist/cjs/resources/content-resource.d.ts.map +1 -0
- package/dist/cjs/resources/content-resource.js +286 -0
- package/dist/cjs/resources/content-resource.js.map +1 -0
- package/dist/cjs/resources/content-type-resource.d.ts +283 -0
- package/dist/cjs/resources/content-type-resource.d.ts.map +1 -0
- package/dist/cjs/resources/content-type-resource.js +970 -0
- package/dist/cjs/resources/content-type-resource.js.map +1 -0
- package/dist/cjs/resources/group-resource.d.ts +96 -0
- package/dist/cjs/resources/group-resource.d.ts.map +1 -0
- package/dist/cjs/resources/group-resource.js +213 -0
- package/dist/cjs/resources/group-resource.js.map +1 -0
- package/dist/cjs/resources/list-resource.d.ts +111 -0
- package/dist/cjs/resources/list-resource.d.ts.map +1 -0
- package/dist/cjs/resources/list-resource.js +179 -0
- package/dist/cjs/resources/list-resource.js.map +1 -0
- package/dist/cjs/resources/media-resource.d.ts +69 -0
- package/dist/cjs/resources/media-resource.d.ts.map +1 -0
- package/dist/cjs/resources/media-resource.js +210 -0
- package/dist/cjs/resources/media-resource.js.map +1 -0
- package/dist/cjs/resources/media-type-resource.d.ts +70 -0
- package/dist/cjs/resources/media-type-resource.d.ts.map +1 -0
- package/dist/cjs/resources/media-type-resource.js +195 -0
- package/dist/cjs/resources/media-type-resource.js.map +1 -0
- package/dist/cjs/resources/navigation-resource.d.ts +664 -0
- package/dist/cjs/resources/navigation-resource.d.ts.map +1 -0
- package/dist/cjs/resources/navigation-resource.js +2349 -0
- package/dist/cjs/resources/navigation-resource.js.map +1 -0
- package/dist/cjs/resources/page-layout-resource.d.ts +83 -0
- package/dist/cjs/resources/page-layout-resource.d.ts.map +1 -0
- package/dist/cjs/resources/page-layout-resource.js +214 -0
- package/dist/cjs/resources/page-layout-resource.js.map +1 -0
- package/dist/cjs/resources/user-resource.d.ts +126 -0
- package/dist/cjs/resources/user-resource.d.ts.map +1 -0
- package/dist/cjs/resources/user-resource.js +317 -0
- package/dist/cjs/resources/user-resource.js.map +1 -0
- package/dist/cjs/section-ref.d.ts +185 -0
- package/dist/cjs/section-ref.d.ts.map +1 -0
- package/dist/cjs/section-ref.js +813 -0
- package/dist/cjs/section-ref.js.map +1 -0
- package/dist/cjs/site-structure.d.ts +18 -0
- package/dist/cjs/site-structure.d.ts.map +1 -0
- package/dist/cjs/site-structure.js +57 -0
- package/dist/cjs/site-structure.js.map +1 -0
- package/dist/cjs/t4-client.d.ts +121 -0
- package/dist/cjs/t4-client.d.ts.map +1 -0
- package/dist/cjs/t4-client.js +190 -0
- package/dist/cjs/t4-client.js.map +1 -0
- package/dist/cjs/type-registry.d.ts +31 -0
- package/dist/cjs/type-registry.d.ts.map +1 -0
- package/dist/cjs/type-registry.js +76 -0
- package/dist/cjs/type-registry.js.map +1 -0
- package/dist/cjs/types.d.ts +211 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils.d.ts +147 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +408 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/element-resolver.d.ts +115 -0
- package/dist/esm/element-resolver.d.ts.map +1 -0
- package/dist/esm/element-resolver.js +387 -0
- package/dist/esm/element-resolver.js.map +1 -0
- package/dist/esm/errors.d.ts +21 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +17 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/handlebars.d.ts +123 -0
- package/dist/esm/handlebars.d.ts.map +1 -0
- package/dist/esm/handlebars.js +300 -0
- package/dist/esm/handlebars.js.map +1 -0
- package/dist/esm/http-client.d.ts +21 -0
- package/dist/esm/http-client.d.ts.map +1 -0
- package/dist/esm/http-client.js +122 -0
- package/dist/esm/http-client.js.map +1 -0
- package/dist/esm/index.d.ts +37 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +26 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/media-category-ref.d.ts +78 -0
- package/dist/esm/media-category-ref.d.ts.map +1 -0
- package/dist/esm/media-category-ref.js +180 -0
- package/dist/esm/media-category-ref.js.map +1 -0
- package/dist/esm/media-library.d.ts +30 -0
- package/dist/esm/media-library.d.ts.map +1 -0
- package/dist/esm/media-library.js +73 -0
- package/dist/esm/media-library.js.map +1 -0
- package/dist/esm/models/content-item.d.ts +80 -0
- package/dist/esm/models/content-item.d.ts.map +1 -0
- package/dist/esm/models/content-item.js +676 -0
- package/dist/esm/models/content-item.js.map +1 -0
- package/dist/esm/models/media-category-item.d.ts +29 -0
- package/dist/esm/models/media-category-item.d.ts.map +1 -0
- package/dist/esm/models/media-category-item.js +29 -0
- package/dist/esm/models/media-category-item.js.map +1 -0
- package/dist/esm/models/media-item.d.ts +74 -0
- package/dist/esm/models/media-item.d.ts.map +1 -0
- package/dist/esm/models/media-item.js +184 -0
- package/dist/esm/models/media-item.js.map +1 -0
- package/dist/esm/models/section-item.d.ts +58 -0
- package/dist/esm/models/section-item.d.ts.map +1 -0
- package/dist/esm/models/section-item.js +162 -0
- package/dist/esm/models/section-item.js.map +1 -0
- package/dist/esm/resources/channel-resource.d.ts +112 -0
- package/dist/esm/resources/channel-resource.d.ts.map +1 -0
- package/dist/esm/resources/channel-resource.js +102 -0
- package/dist/esm/resources/channel-resource.js.map +1 -0
- package/dist/esm/resources/content-resource.d.ts +50 -0
- package/dist/esm/resources/content-resource.d.ts.map +1 -0
- package/dist/esm/resources/content-resource.js +282 -0
- package/dist/esm/resources/content-resource.js.map +1 -0
- package/dist/esm/resources/content-type-resource.d.ts +283 -0
- package/dist/esm/resources/content-type-resource.d.ts.map +1 -0
- package/dist/esm/resources/content-type-resource.js +964 -0
- package/dist/esm/resources/content-type-resource.js.map +1 -0
- package/dist/esm/resources/group-resource.d.ts +96 -0
- package/dist/esm/resources/group-resource.d.ts.map +1 -0
- package/dist/esm/resources/group-resource.js +208 -0
- package/dist/esm/resources/group-resource.js.map +1 -0
- package/dist/esm/resources/list-resource.d.ts +111 -0
- package/dist/esm/resources/list-resource.d.ts.map +1 -0
- package/dist/esm/resources/list-resource.js +174 -0
- package/dist/esm/resources/list-resource.js.map +1 -0
- package/dist/esm/resources/media-resource.d.ts +69 -0
- package/dist/esm/resources/media-resource.d.ts.map +1 -0
- package/dist/esm/resources/media-resource.js +206 -0
- package/dist/esm/resources/media-resource.js.map +1 -0
- package/dist/esm/resources/media-type-resource.d.ts +70 -0
- package/dist/esm/resources/media-type-resource.d.ts.map +1 -0
- package/dist/esm/resources/media-type-resource.js +190 -0
- package/dist/esm/resources/media-type-resource.js.map +1 -0
- package/dist/esm/resources/navigation-resource.d.ts +664 -0
- package/dist/esm/resources/navigation-resource.d.ts.map +1 -0
- package/dist/esm/resources/navigation-resource.js +2344 -0
- package/dist/esm/resources/navigation-resource.js.map +1 -0
- package/dist/esm/resources/page-layout-resource.d.ts +83 -0
- package/dist/esm/resources/page-layout-resource.d.ts.map +1 -0
- package/dist/esm/resources/page-layout-resource.js +209 -0
- package/dist/esm/resources/page-layout-resource.js.map +1 -0
- package/dist/esm/resources/user-resource.d.ts +126 -0
- package/dist/esm/resources/user-resource.d.ts.map +1 -0
- package/dist/esm/resources/user-resource.js +312 -0
- package/dist/esm/resources/user-resource.js.map +1 -0
- package/dist/esm/section-ref.d.ts +185 -0
- package/dist/esm/section-ref.d.ts.map +1 -0
- package/dist/esm/section-ref.js +808 -0
- package/dist/esm/section-ref.js.map +1 -0
- package/dist/esm/site-structure.d.ts +18 -0
- package/dist/esm/site-structure.d.ts.map +1 -0
- package/dist/esm/site-structure.js +53 -0
- package/dist/esm/site-structure.js.map +1 -0
- package/dist/esm/t4-client.d.ts +121 -0
- package/dist/esm/t4-client.d.ts.map +1 -0
- package/dist/esm/t4-client.js +186 -0
- package/dist/esm/t4-client.js.map +1 -0
- package/dist/esm/type-registry.d.ts +31 -0
- package/dist/esm/type-registry.d.ts.map +1 -0
- package/dist/esm/type-registry.js +72 -0
- package/dist/esm/type-registry.js.map +1 -0
- package/dist/esm/types.d.ts +211 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils.d.ts +147 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +355 -0
- package/dist/esm/utils.js.map +1 -0
- package/docs/channels.md +62 -0
- package/docs/content-types.md +313 -0
- package/docs/content.md +199 -0
- package/docs/error-handling.md +86 -0
- package/docs/getting-started.md +146 -0
- package/docs/groups-and-users.md +167 -0
- package/docs/handlebars.md +145 -0
- package/docs/lists.md +98 -0
- package/docs/media-types.md +111 -0
- package/docs/media.md +169 -0
- package/docs/navigation/a-to-z.md +62 -0
- package/docs/navigation/breadcrumbs.md +67 -0
- package/docs/navigation/css-selector.md +53 -0
- package/docs/navigation/generate-file.md +48 -0
- package/docs/navigation/keyword-search.md +134 -0
- package/docs/navigation/language-switcher.md +37 -0
- package/docs/navigation/link-menu.md +105 -0
- package/docs/navigation/pagination.md +80 -0
- package/docs/navigation/previous-next-fulltext.md +43 -0
- package/docs/navigation/publish-to-one-file.md +93 -0
- package/docs/navigation/related-content.md +79 -0
- package/docs/navigation/related-section-branch.md +31 -0
- package/docs/navigation/return-to-index.md +35 -0
- package/docs/navigation/section-details.md +51 -0
- package/docs/navigation/section-iterator.md +33 -0
- package/docs/navigation/section-meta-info.md +39 -0
- package/docs/navigation/site-map.md +58 -0
- package/docs/navigation/top-content.md +80 -0
- package/docs/navigation/top-stories.md +47 -0
- package/docs/navigation.md +134 -0
- package/docs/page-layouts.md +71 -0
- package/docs/sections.md +224 -0
- package/docs/typescript.md +124 -0
- package/package.json +64 -0
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import { HttpClient } from '../http-client.js';
|
|
2
|
+
import { ContentTypeData, ContentTypeFieldDef } from '../types.js';
|
|
3
|
+
/** Raw content type element from the API response */
|
|
4
|
+
interface ApiContentTypeElement {
|
|
5
|
+
id?: number;
|
|
6
|
+
name: string;
|
|
7
|
+
alias?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
type?: number | {
|
|
10
|
+
id?: number;
|
|
11
|
+
name?: string;
|
|
12
|
+
};
|
|
13
|
+
compulsory?: boolean;
|
|
14
|
+
maxSize?: number;
|
|
15
|
+
listId?: number;
|
|
16
|
+
shown?: boolean;
|
|
17
|
+
contentTypeElementConfiguration?: {
|
|
18
|
+
contentTypeId?: number;
|
|
19
|
+
contentTypeDTO?: {
|
|
20
|
+
name: string;
|
|
21
|
+
alias?: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
};
|
|
24
|
+
layout?: string;
|
|
25
|
+
minRepeats?: number;
|
|
26
|
+
maxRepeats?: number;
|
|
27
|
+
editorID?: number;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** Raw content type shape from the API response */
|
|
31
|
+
interface ApiContentType {
|
|
32
|
+
id: number;
|
|
33
|
+
name: string;
|
|
34
|
+
alias: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
/** Content type category. `30` marks a system content type. Regular types are `10`. */
|
|
37
|
+
type?: number;
|
|
38
|
+
minAuthLevel?: number;
|
|
39
|
+
workflow?: number;
|
|
40
|
+
sharedGroups?: Array<{
|
|
41
|
+
id: number;
|
|
42
|
+
}>;
|
|
43
|
+
primaryGroup?: {
|
|
44
|
+
id: number | null;
|
|
45
|
+
group?: {
|
|
46
|
+
id: number;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
enableDirectEdit?: boolean;
|
|
50
|
+
elementIdforFilename?: number;
|
|
51
|
+
contentTypeElements?: ApiContentTypeElement[];
|
|
52
|
+
}
|
|
53
|
+
/** Raw layout response from the API */
|
|
54
|
+
interface RawLayout {
|
|
55
|
+
id: number;
|
|
56
|
+
name: string;
|
|
57
|
+
lastModified?: number;
|
|
58
|
+
[key: string]: unknown;
|
|
59
|
+
}
|
|
60
|
+
/** Options for updating a content layout (immutable pattern) */
|
|
61
|
+
interface UpdateLayoutData {
|
|
62
|
+
/** New layout name. If provided, checks uniqueness. */
|
|
63
|
+
name?: string;
|
|
64
|
+
code?: string;
|
|
65
|
+
syntax?: string;
|
|
66
|
+
processor?: 't4-tags' | 'handlebars' | 'programmable-layouts';
|
|
67
|
+
extension?: string;
|
|
68
|
+
}
|
|
69
|
+
/** A mutable content layout. Modify properties and call save() to persist. */
|
|
70
|
+
export declare class Layout {
|
|
71
|
+
name: string;
|
|
72
|
+
code: string;
|
|
73
|
+
readonly lastModified: Date | null;
|
|
74
|
+
private readonly _httpClient;
|
|
75
|
+
private _rawDTO;
|
|
76
|
+
private readonly _layoutElements;
|
|
77
|
+
private readonly _fetchLayouts;
|
|
78
|
+
constructor(raw: RawLayout, httpClient: HttpClient, _contentTypeId: number, layoutElements: LayoutElement[], fetchLayouts: () => Promise<RawLayout[]>, _resolveSyntaxId: (name: string) => Promise<string>, _resolveProcessorId: (key: string) => Promise<string>, _resolveExtension: (ext: string) => Promise<string>);
|
|
79
|
+
/** Persists current property values to the server. */
|
|
80
|
+
save(): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
interface CreateLayoutData {
|
|
83
|
+
name: string;
|
|
84
|
+
code: string;
|
|
85
|
+
/** Syntax highlighting type. Defaults to 'HTML/XML'. */
|
|
86
|
+
syntax?: string;
|
|
87
|
+
/** Layout processor: 't4-tags' | 'handlebars' | 'programmable-layouts'. Defaults to 'handlebars'. */
|
|
88
|
+
processor?: 't4-tags' | 'handlebars' | 'programmable-layouts';
|
|
89
|
+
/** File extension (e.g. 'html', 'json', 'xml'). Defaults to '' (none). */
|
|
90
|
+
extension?: string;
|
|
91
|
+
}
|
|
92
|
+
/** Layout content type element from GET /contenttype/2 */
|
|
93
|
+
interface LayoutElement {
|
|
94
|
+
id: number;
|
|
95
|
+
name: string;
|
|
96
|
+
type: number;
|
|
97
|
+
}
|
|
98
|
+
/** A content type with methods for related operations. */
|
|
99
|
+
export declare class ContentType implements ContentTypeData {
|
|
100
|
+
readonly id: number;
|
|
101
|
+
name: string;
|
|
102
|
+
description: string;
|
|
103
|
+
minUserLevel: string;
|
|
104
|
+
workflow: number;
|
|
105
|
+
sharedGroups: number[];
|
|
106
|
+
primaryGroup: number;
|
|
107
|
+
directEdit: boolean;
|
|
108
|
+
fields: Record<string, ContentTypeFieldDef>;
|
|
109
|
+
/** Namespace for content layout operations on this content type. */
|
|
110
|
+
readonly layouts: {
|
|
111
|
+
list: () => Promise<Array<{
|
|
112
|
+
name: string;
|
|
113
|
+
lastModified: Date | null;
|
|
114
|
+
}>>;
|
|
115
|
+
get: (name: string) => Promise<Layout>;
|
|
116
|
+
create: (data: CreateLayoutData) => Promise<Layout>;
|
|
117
|
+
update: (name: string, data: UpdateLayoutData) => Promise<Layout>;
|
|
118
|
+
delete: (name: string) => Promise<void>;
|
|
119
|
+
};
|
|
120
|
+
private readonly _httpClient;
|
|
121
|
+
private _rawData;
|
|
122
|
+
private _removedElementIds;
|
|
123
|
+
private _exemptSystemTypeIdsCache;
|
|
124
|
+
constructor(data: ContentTypeData, httpClient: HttpClient, rawData?: ApiContentType);
|
|
125
|
+
/**
|
|
126
|
+
* Adds a new field (element) to this content type. Takes effect on save().
|
|
127
|
+
*
|
|
128
|
+
* The `type` must be a valid element type name (e.g. 'Plain Text', 'HTML', 'Select Box', 'Repeater').
|
|
129
|
+
* Use `t4.contentTypes.get(id)` to see existing field types for reference.
|
|
130
|
+
*/
|
|
131
|
+
addField(data: {
|
|
132
|
+
name: string;
|
|
133
|
+
type: string;
|
|
134
|
+
description?: string;
|
|
135
|
+
maxSize?: number;
|
|
136
|
+
required?: boolean;
|
|
137
|
+
shown?: boolean;
|
|
138
|
+
/** List ID — required for list-based element types (Select Box, Radio Button, Checkbox, etc.) */
|
|
139
|
+
listId?: number;
|
|
140
|
+
/** HTML editor name — only valid for HTML elements. Use the editor name (e.g. 'TinyMCE', 'Standard Textarea'). */
|
|
141
|
+
editor?: string;
|
|
142
|
+
/** Repeater configuration — required when type is 'Repeater' */
|
|
143
|
+
repeater?: {
|
|
144
|
+
/** The content type ID that defines the repeater's fields */
|
|
145
|
+
contentTypeId: number;
|
|
146
|
+
/** The content layout name to use for the repeater (e.g. 'text/html') */
|
|
147
|
+
layout?: string;
|
|
148
|
+
/** Minimum number of repeater instances. Defaults to 0. */
|
|
149
|
+
minRepeats?: number;
|
|
150
|
+
/** Maximum number of repeater instances. Defaults to 100. */
|
|
151
|
+
maxRepeats?: number;
|
|
152
|
+
};
|
|
153
|
+
}): Promise<void>;
|
|
154
|
+
/** Removes a field (element) by name. Takes effect on save(). */
|
|
155
|
+
removeField(fieldName: string): void;
|
|
156
|
+
/**
|
|
157
|
+
* Resolves the set of system content type IDs where removing and renaming
|
|
158
|
+
* elements is permitted: the Section Meta Data content type and the Extended
|
|
159
|
+
* User content type. Cached per instance; only called when a removal or rename
|
|
160
|
+
* is attempted on a system content type.
|
|
161
|
+
*/
|
|
162
|
+
private _getExemptSystemTypeIds;
|
|
163
|
+
/**
|
|
164
|
+
* Guards against removing or renaming elements on system content types.
|
|
165
|
+
*
|
|
166
|
+
* System content types (`type === 30`) may have elements added, and their
|
|
167
|
+
* descriptions and maxSize changed, but removing or renaming existing elements
|
|
168
|
+
* is unsafe. Two system content types are exempt: the Section Meta Data content
|
|
169
|
+
* type and the Extended User content type.
|
|
170
|
+
*
|
|
171
|
+
* Detects renames by comparing each field's current name against the name/alias
|
|
172
|
+
* of its matched raw element. Only performs network calls when a removal or
|
|
173
|
+
* rename is actually attempted on a system content type.
|
|
174
|
+
*/
|
|
175
|
+
private _guardSystemContentTypeElementChanges;
|
|
176
|
+
/** Returns the names of elements queued for removal, resolved from the raw data. */
|
|
177
|
+
private _collectRemovedElementNames;
|
|
178
|
+
/**
|
|
179
|
+
* Detects fields whose name differs from the current name/alias of their matched
|
|
180
|
+
* raw element (i.e. a rename). New fields (no matching raw element) are ignored.
|
|
181
|
+
*/
|
|
182
|
+
private _collectRenamedElements;
|
|
183
|
+
/** Persists current property values to the server via PUT. */
|
|
184
|
+
save(): Promise<void>;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Resource for content type operations.
|
|
188
|
+
* Provides listing and retrieval of content type definitions.
|
|
189
|
+
*/
|
|
190
|
+
export declare class ContentTypeResource {
|
|
191
|
+
private readonly httpClient;
|
|
192
|
+
private typeMapPromise;
|
|
193
|
+
private typeMapExpiresAt;
|
|
194
|
+
private typeMapEpoch;
|
|
195
|
+
private editorMapPromise;
|
|
196
|
+
private editorMapExpiresAt;
|
|
197
|
+
private editorMapEpoch;
|
|
198
|
+
constructor(httpClient: HttpClient);
|
|
199
|
+
/** Fetches and caches element type ID → name map from GET /type/ */
|
|
200
|
+
private getTypeMap;
|
|
201
|
+
/** Fetches and caches HTML editor ID → name map from GET /htmlEditor */
|
|
202
|
+
private getEditorMap;
|
|
203
|
+
/** Resolves listName for all fields that have a non-zero listId. */
|
|
204
|
+
private resolveListNames;
|
|
205
|
+
/**
|
|
206
|
+
* Lists all content type definitions.
|
|
207
|
+
*/
|
|
208
|
+
list(): Promise<ContentType[]>;
|
|
209
|
+
/**
|
|
210
|
+
* Retrieves a single content type definition by ID.
|
|
211
|
+
*/
|
|
212
|
+
get(id: number): Promise<ContentType>;
|
|
213
|
+
/**
|
|
214
|
+
* Updates a content type's properties (immutable pattern).
|
|
215
|
+
* Fetches existing, merges changes, PUTs full body.
|
|
216
|
+
*/
|
|
217
|
+
update(id: number, data: {
|
|
218
|
+
name?: string;
|
|
219
|
+
description?: string;
|
|
220
|
+
minUserLevel?: string;
|
|
221
|
+
workflow?: number;
|
|
222
|
+
directEdit?: boolean;
|
|
223
|
+
sharedGroups?: number[];
|
|
224
|
+
primaryGroup?: number;
|
|
225
|
+
/** Fields to add to the content type */
|
|
226
|
+
addFields?: Array<{
|
|
227
|
+
name: string;
|
|
228
|
+
type: string;
|
|
229
|
+
description?: string;
|
|
230
|
+
maxSize?: number;
|
|
231
|
+
required?: boolean;
|
|
232
|
+
shown?: boolean;
|
|
233
|
+
listId?: number;
|
|
234
|
+
editor?: string;
|
|
235
|
+
repeater?: {
|
|
236
|
+
contentTypeId: number;
|
|
237
|
+
layout?: string;
|
|
238
|
+
minRepeats?: number;
|
|
239
|
+
maxRepeats?: number;
|
|
240
|
+
};
|
|
241
|
+
}>;
|
|
242
|
+
/** Field names to remove from the content type */
|
|
243
|
+
removeFields?: string[];
|
|
244
|
+
}): Promise<ContentType>;
|
|
245
|
+
/** Deletes a content type by ID. */
|
|
246
|
+
delete(id: number): Promise<void>;
|
|
247
|
+
/** Creates a new content type. */
|
|
248
|
+
create(data: {
|
|
249
|
+
name: string;
|
|
250
|
+
description?: string;
|
|
251
|
+
elements: Array<{
|
|
252
|
+
name: string;
|
|
253
|
+
description?: string;
|
|
254
|
+
type: string;
|
|
255
|
+
maxSize?: number;
|
|
256
|
+
required?: boolean;
|
|
257
|
+
shown?: boolean;
|
|
258
|
+
useAsFilename?: boolean;
|
|
259
|
+
/** List ID — required for list-based element types (Select Box, Radio Button, Checkbox, etc.) */
|
|
260
|
+
listId?: number;
|
|
261
|
+
/** HTML editor name — only valid for HTML elements. */
|
|
262
|
+
editor?: string;
|
|
263
|
+
/** Repeater configuration — required when type is 'Repeater' */
|
|
264
|
+
repeater?: {
|
|
265
|
+
/** The content type ID that defines the repeater's fields */
|
|
266
|
+
contentTypeId: number;
|
|
267
|
+
/** The content layout name to use for the repeater (e.g. 'text/html') */
|
|
268
|
+
layout?: string;
|
|
269
|
+
/** Minimum number of repeater instances. Defaults to 0. */
|
|
270
|
+
minRepeats?: number;
|
|
271
|
+
/** Maximum number of repeater instances. Defaults to 100. */
|
|
272
|
+
maxRepeats?: number;
|
|
273
|
+
};
|
|
274
|
+
}>;
|
|
275
|
+
minUserLevel?: string;
|
|
276
|
+
workflow?: number;
|
|
277
|
+
directEdit?: boolean;
|
|
278
|
+
sharedGroups?: number[];
|
|
279
|
+
primaryGroup?: number;
|
|
280
|
+
}): Promise<ContentType>;
|
|
281
|
+
}
|
|
282
|
+
export {};
|
|
283
|
+
//# sourceMappingURL=content-type-resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/content-type-resource.ts"],"names":[],"mappings":"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"}
|