@yuuvis/client-core 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +111 -0
  2. package/esm2022/index.mjs +65 -0
  3. package/esm2022/lib/client-core.module.mjs +117 -0
  4. package/esm2022/lib/client-core.shared.module.mjs +18 -0
  5. package/esm2022/lib/common/pipes/filesize.pipe.mjs +37 -0
  6. package/esm2022/lib/common/pipes/index.mjs +6 -0
  7. package/esm2022/lib/common/pipes/keys.pipe.mjs +17 -0
  8. package/esm2022/lib/common/pipes/locale-date.pipe.mjs +45 -0
  9. package/esm2022/lib/common/pipes/locale-number.pipe.mjs +115 -0
  10. package/esm2022/lib/common/pipes/safe-html.pipe.mjs +44 -0
  11. package/esm2022/lib/common/services/native-notifications.interface.mjs +2 -0
  12. package/esm2022/lib/common/services/native-notifications.mjs +40 -0
  13. package/esm2022/lib/model/dms-object.interface.mjs +2 -0
  14. package/esm2022/lib/model/dms-object.model.mjs +79 -0
  15. package/esm2022/lib/model/object-flavor.interface.mjs +2 -0
  16. package/esm2022/lib/model/range-value.interface.mjs +2 -0
  17. package/esm2022/lib/model/yuv-error.model.mjs +37 -0
  18. package/esm2022/lib/model/yuv-user.model.mjs +38 -0
  19. package/esm2022/lib/service/audit/audit.interface.mjs +2 -0
  20. package/esm2022/lib/service/audit/audit.service.mjs +135 -0
  21. package/esm2022/lib/service/auth/auth.interceptor.mjs +50 -0
  22. package/esm2022/lib/service/auth/auth.interface.mjs +7 -0
  23. package/esm2022/lib/service/auth/auth.service.mjs +130 -0
  24. package/esm2022/lib/service/auth/oidc.service.mjs +81 -0
  25. package/esm2022/lib/service/backend/api.enum.mjs +11 -0
  26. package/esm2022/lib/service/backend/backend.interface.mjs +2 -0
  27. package/esm2022/lib/service/backend/backend.service.mjs +206 -0
  28. package/esm2022/lib/service/bpm/bpm.interface.mjs +8 -0
  29. package/esm2022/lib/service/bpm/bpm.service.mjs +51 -0
  30. package/esm2022/lib/service/cache/app-cache.service.mjs +51 -0
  31. package/esm2022/lib/service/catalog/catalog.interface.mjs +2 -0
  32. package/esm2022/lib/service/catalog/catalog.service.mjs +13 -0
  33. package/esm2022/lib/service/clipboard/clipboard.interface.mjs +2 -0
  34. package/esm2022/lib/service/clipboard/clipboard.service.mjs +90 -0
  35. package/esm2022/lib/service/config/config.interface.mjs +6 -0
  36. package/esm2022/lib/service/config/config.service.mjs +115 -0
  37. package/esm2022/lib/service/config/core-config.mjs +20 -0
  38. package/esm2022/lib/service/config/core-config.tokens.mjs +9 -0
  39. package/esm2022/lib/service/connection/connection.service.mjs +36 -0
  40. package/esm2022/lib/service/connection/offline.interceptor.mjs +28 -0
  41. package/esm2022/lib/service/core-init/core-init.service.mjs +29 -0
  42. package/esm2022/lib/service/core-init/missing-translation-handler.mjs +10 -0
  43. package/esm2022/lib/service/core-init/translate-json-loader.mjs +117 -0
  44. package/esm2022/lib/service/device/device.interface.mjs +6 -0
  45. package/esm2022/lib/service/device/device.service.mjs +144 -0
  46. package/esm2022/lib/service/dms/dms.service.interface.mjs +2 -0
  47. package/esm2022/lib/service/dms/dms.service.mjs +440 -0
  48. package/esm2022/lib/service/event/event.interface.mjs +2 -0
  49. package/esm2022/lib/service/event/event.service.mjs +38 -0
  50. package/esm2022/lib/service/event/events.mjs +14 -0
  51. package/esm2022/lib/service/idm/idm.interface.mjs +2 -0
  52. package/esm2022/lib/service/idm/idm.service.mjs +34 -0
  53. package/esm2022/lib/service/logger/logger-console.service.mjs +73 -0
  54. package/esm2022/lib/service/logger/logger.interface.mjs +2 -0
  55. package/esm2022/lib/service/logger/logger.mjs +27 -0
  56. package/esm2022/lib/service/notification/notification.service.mjs +131 -0
  57. package/esm2022/lib/service/object-config/object-config.interface.mjs +2 -0
  58. package/esm2022/lib/service/object-config/object-config.service.mjs +229 -0
  59. package/esm2022/lib/service/pending-changes/pending-changes-component.interface.mjs +5 -0
  60. package/esm2022/lib/service/pending-changes/pending-changes-guard.service.mjs +25 -0
  61. package/esm2022/lib/service/pending-changes/pending-changes.service.mjs +123 -0
  62. package/esm2022/lib/service/prediction/prediction.interface.mjs +2 -0
  63. package/esm2022/lib/service/prediction/prediction.service.mjs +60 -0
  64. package/esm2022/lib/service/search/search.service.interface.mjs +39 -0
  65. package/esm2022/lib/service/search/search.service.mjs +178 -0
  66. package/esm2022/lib/service/session-storage/session-storage.service.mjs +50 -0
  67. package/esm2022/lib/service/system/object-form.interface.mjs +2 -0
  68. package/esm2022/lib/service/system/system.enum.mjs +179 -0
  69. package/esm2022/lib/service/system/system.interface.mjs +2 -0
  70. package/esm2022/lib/service/system/system.service.mjs +597 -0
  71. package/esm2022/lib/service/upload/upload.interface.mjs +2 -0
  72. package/esm2022/lib/service/upload/upload.service.mjs +228 -0
  73. package/esm2022/lib/service/user/user.service.mjs +211 -0
  74. package/esm2022/lib/util/utils.helper.enum.mjs +15 -0
  75. package/esm2022/lib/util/utils.mjs +373 -0
  76. package/esm2022/yuuvis-client-core.mjs +5 -0
  77. package/fesm2022/yuuvis-client-core.mjs +4775 -0
  78. package/fesm2022/yuuvis-client-core.mjs.map +1 -0
  79. package/index.d.ts +61 -0
  80. package/lib/client-core.module.d.ts +20 -0
  81. package/lib/client-core.shared.module.d.ts +10 -0
  82. package/lib/common/pipes/filesize.pipe.d.ts +18 -0
  83. package/lib/common/pipes/index.d.ts +5 -0
  84. package/lib/common/pipes/keys.pipe.d.ts +10 -0
  85. package/lib/common/pipes/locale-date.pipe.d.ts +12 -0
  86. package/lib/common/pipes/locale-number.pipe.d.ts +47 -0
  87. package/lib/common/pipes/safe-html.pipe.d.ts +28 -0
  88. package/lib/common/services/native-notifications.d.ts +8 -0
  89. package/lib/common/services/native-notifications.interface.d.ts +5 -0
  90. package/lib/model/dms-object.interface.d.ts +16 -0
  91. package/lib/model/dms-object.model.d.ts +26 -0
  92. package/lib/model/object-flavor.interface.d.ts +30 -0
  93. package/lib/model/range-value.interface.d.ts +9 -0
  94. package/lib/model/yuv-error.model.d.ts +18 -0
  95. package/lib/model/yuv-user.model.d.ts +44 -0
  96. package/lib/service/audit/audit.interface.d.ts +47 -0
  97. package/lib/service/audit/audit.service.d.ts +35 -0
  98. package/lib/service/auth/auth.interceptor.d.ts +12 -0
  99. package/lib/service/auth/auth.interface.d.ts +34 -0
  100. package/lib/service/auth/auth.service.d.ts +50 -0
  101. package/lib/service/auth/oidc.service.d.ts +16 -0
  102. package/lib/service/backend/api.enum.d.ts +7 -0
  103. package/lib/service/backend/backend.interface.d.ts +29 -0
  104. package/lib/service/backend/backend.service.d.ts +118 -0
  105. package/lib/service/bpm/bpm.interface.d.ts +86 -0
  106. package/lib/service/bpm/bpm.service.d.ts +19 -0
  107. package/lib/service/cache/app-cache.service.d.ts +18 -0
  108. package/lib/service/catalog/catalog.interface.d.ts +12 -0
  109. package/lib/service/catalog/catalog.service.d.ts +5 -0
  110. package/lib/service/clipboard/clipboard.interface.d.ts +11 -0
  111. package/lib/service/clipboard/clipboard.service.d.ts +23 -0
  112. package/lib/service/config/config.interface.d.ts +34 -0
  113. package/lib/service/config/config.service.d.ts +45 -0
  114. package/lib/service/config/core-config.d.ts +14 -0
  115. package/lib/service/config/core-config.tokens.d.ts +7 -0
  116. package/lib/service/connection/connection.service.d.ts +25 -0
  117. package/lib/service/connection/offline.interceptor.d.ts +15 -0
  118. package/lib/service/core-init/core-init.service.d.ts +11 -0
  119. package/lib/service/core-init/missing-translation-handler.d.ts +8 -0
  120. package/lib/service/core-init/translate-json-loader.d.ts +20 -0
  121. package/lib/service/device/device.interface.d.ts +15 -0
  122. package/lib/service/device/device.service.d.ts +54 -0
  123. package/lib/service/dms/dms.service.d.ts +153 -0
  124. package/lib/service/dms/dms.service.interface.d.ts +59 -0
  125. package/lib/service/event/event.interface.d.ts +13 -0
  126. package/lib/service/event/event.service.d.ts +23 -0
  127. package/lib/service/event/events.d.ts +12 -0
  128. package/lib/service/idm/idm.interface.d.ts +5 -0
  129. package/lib/service/idm/idm.service.d.ts +9 -0
  130. package/lib/service/logger/logger-console.service.d.ts +20 -0
  131. package/lib/service/logger/logger.d.ts +17 -0
  132. package/lib/service/logger/logger.interface.d.ts +10 -0
  133. package/lib/service/notification/notification.service.d.ts +71 -0
  134. package/lib/service/object-config/object-config.interface.d.ts +62 -0
  135. package/lib/service/object-config/object-config.service.d.ts +38 -0
  136. package/lib/service/pending-changes/pending-changes-component.interface.d.ts +6 -0
  137. package/lib/service/pending-changes/pending-changes-guard.service.d.ts +14 -0
  138. package/lib/service/pending-changes/pending-changes.service.d.ts +57 -0
  139. package/lib/service/prediction/prediction.interface.d.ts +18 -0
  140. package/lib/service/prediction/prediction.service.d.ts +15 -0
  141. package/lib/service/search/search.service.d.ts +46 -0
  142. package/lib/service/search/search.service.interface.d.ts +119 -0
  143. package/lib/service/session-storage/session-storage.service.d.ts +15 -0
  144. package/lib/service/system/object-form.interface.d.ts +46 -0
  145. package/lib/service/system/system.enum.d.ts +141 -0
  146. package/lib/service/system/system.interface.d.ts +146 -0
  147. package/lib/service/system/system.service.d.ts +168 -0
  148. package/lib/service/upload/upload.interface.d.ts +55 -0
  149. package/lib/service/upload/upload.service.d.ts +34 -0
  150. package/lib/service/user/user.service.d.ts +69 -0
  151. package/lib/util/utils.d.ts +118 -0
  152. package/lib/util/utils.helper.enum.d.ts +13 -0
  153. package/package.json +33 -0
@@ -0,0 +1,119 @@
1
+ import { ContentStream, CoreApiObject } from '../dms/dms.service.interface';
2
+ export interface SearchQuery {
3
+ term?: string;
4
+ scope?: 'all' | 'metadata' | 'content';
5
+ size?: number;
6
+ from?: number;
7
+ fields?: string[];
8
+ aggs?: string[];
9
+ types?: string[];
10
+ filters?: SearchFilter[];
11
+ tableFilters?: TableFilter[];
12
+ sort?: SortOption[];
13
+ includePermissions?: boolean;
14
+ }
15
+ export interface SortOption {
16
+ field: string;
17
+ order: 'asc' | 'desc';
18
+ }
19
+ export interface SearchFilter {
20
+ f: string;
21
+ o: Operator;
22
+ v1: unknown;
23
+ v2?: unknown;
24
+ useNot?: boolean;
25
+ }
26
+ export interface TableFilter {
27
+ table: string;
28
+ columnFilters: SearchFilter[];
29
+ }
30
+ export declare enum Operator {
31
+ EQUAL = "eq",// equal
32
+ EEQUAL = "eeq",// exact equal
33
+ IN = "in",// match at least one of the provided values (value has to be an array)
34
+ GREATER_THAN = "gt",// greater than
35
+ GREATER_OR_EQUAL = "gte",// greater than or equal
36
+ LESS_THAN = "lt",// less than
37
+ LESS_OR_EQUAL = "lte",// less than or equal
38
+ INTERVAL = "gtlt",// interval
39
+ INTERVAL_INCLUDE_BOTH = "gtelte",// interval include left and right
40
+ INTERVAL_INCLUDE_TO = "gtlte",// interval include right
41
+ INTERVAL_INCLUDE_FROM = "gtelt",// interval include left
42
+ RANGE = "rg",// aggegation ranges
43
+ LIKE = "like",// like
44
+ CONTAINS = "contains"
45
+ }
46
+ export declare const OperatorLabel: {
47
+ /** equal */
48
+ EQUAL: string;
49
+ /** exact equal */
50
+ EEQUAL: string;
51
+ /** match at least one of the provided values (value has to be an array) */
52
+ IN: string;
53
+ /** greater than */
54
+ GREATER_THAN: string;
55
+ /** greater than or equal */
56
+ GREATER_OR_EQUAL: string;
57
+ LESS_THAN: string;
58
+ LESS_OR_EQUAL: string;
59
+ INTERVAL: string;
60
+ INTERVAL_INCLUDE_BOTH: string;
61
+ INTERVAL_INCLUDE_TO: string;
62
+ INTERVAL_INCLUDE_FROM: string;
63
+ RANGE: string;
64
+ LIKE: string;
65
+ CONTAINS: string;
66
+ };
67
+ export interface SearchResponse {
68
+ hasMoreItems: boolean;
69
+ numItems: number;
70
+ totalNumItems: number;
71
+ objects: CoreApiObject[];
72
+ }
73
+ /**
74
+ * Interface providing a search service
75
+ */
76
+ export interface SearchResult {
77
+ hasMoreItems: boolean;
78
+ totalNumItems: number;
79
+ items: SearchResultItem[];
80
+ /**
81
+ * object types within the result
82
+ */
83
+ objectTypes: string[];
84
+ }
85
+ /**
86
+ * Interface for the item of search results
87
+ */
88
+ export interface SearchResultItem {
89
+ objectTypeId: string;
90
+ content?: SearchResultContent;
91
+ permissions?: SearchResultPermissions;
92
+ fields: Map<string, any>;
93
+ }
94
+ export interface SearchResultPermissions {
95
+ read: Array<'metadata' | 'content'>;
96
+ write: Array<'metadata' | 'content'>;
97
+ delete: Array<'object' | 'content'>;
98
+ }
99
+ export type SearchResultContent = ContentStream;
100
+ /**
101
+ * Interface providing the estimated result of the current query.
102
+ */
103
+ export interface AggregateResult {
104
+ /**
105
+ * number of results found
106
+ */
107
+ totalNumItems: number;
108
+ aggregations: Aggregation[];
109
+ }
110
+ /**
111
+ * Property of a one search query aggregation
112
+ */
113
+ export interface Aggregation {
114
+ aggKey: string;
115
+ entries: {
116
+ key: string;
117
+ count: number;
118
+ }[];
119
+ }
@@ -0,0 +1,15 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SessionStorageService {
3
+ #private;
4
+ constructor();
5
+ /**
6
+ * Add a reference to a temporary localstorage entry that should be cleared when a
7
+ * new browser session starts. In context of forms this will be used to cleanup the
8
+ * layout state of forms (selected tabs etc.) that are stored locally but should only
9
+ * be pesisted for one browser session.
10
+ * @param storageKey Key of the localstorage item
11
+ */
12
+ addTemporaryStorageEntry(storageKey: string): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<SessionStorageService, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<SessionStorageService>;
15
+ }
@@ -0,0 +1,46 @@
1
+ import { InternalFieldType } from './system.enum';
2
+ import { ObjectTypeField } from './system.interface';
3
+ export type ObjectTypeFieldType = 'string' | 'integer' | 'decimal' | 'boolean' | 'table' | 'datetime';
4
+ export type ObjectTypeFieldInternalType = ObjectTypeFieldType | InternalFieldType.STRING_REFERENCE | InternalFieldType.STRING_ORGANIZATION | InternalFieldType.STRING_ORGANIZATION_SET | InternalFieldType.STRING_CATALOG | InternalFieldType.BOOLEAN_SWITCH | InternalFieldType.STRING_DYNAMIC_CATALOG;
5
+ export interface FormElementString extends ObjectTypeField {
6
+ propertyType: 'string';
7
+ defaultvalue?: string[] | string;
8
+ maxLength?: number;
9
+ minLength?: number;
10
+ rows?: number;
11
+ options?: string[] | string;
12
+ regex?: string;
13
+ }
14
+ export interface FormElementInteger extends ObjectTypeField {
15
+ propertyType: 'integer';
16
+ defaultvalue?: number[] | number;
17
+ maxValue?: number;
18
+ minValue?: number;
19
+ precision?: number;
20
+ grouping?: boolean;
21
+ pattern?: string;
22
+ }
23
+ export interface FormElementDecimal extends ObjectTypeField {
24
+ propertyType: 'decimal';
25
+ defaultvalue?: number[] | number;
26
+ maxValue?: number;
27
+ minValue?: number;
28
+ precision?: number;
29
+ scale?: number;
30
+ grouping?: boolean;
31
+ pattern?: string;
32
+ }
33
+ export interface FormElementBoolean extends ObjectTypeField {
34
+ propertyType: 'boolean';
35
+ defaultvalue?: boolean;
36
+ tristate?: boolean;
37
+ }
38
+ export interface FormElementDatetime extends ObjectTypeField {
39
+ propertyType: 'datetime';
40
+ defaultvalue?: string[] | string;
41
+ resolution?: 'date';
42
+ }
43
+ export interface FormElementTable extends ObjectTypeField {
44
+ elements: ObjectTypeField[];
45
+ propertyType: 'table';
46
+ }
@@ -0,0 +1,141 @@
1
+ export declare const TENANT_HEADER = "X-ID-TENANT-NAME";
2
+ export declare enum Situation {
3
+ EDIT = "EDIT",
4
+ CREATE = "CREATE",
5
+ SEARCH = "SEARCH"
6
+ }
7
+ export declare const SystemType: {
8
+ OBJECT: string;
9
+ DOCUMENT: string;
10
+ FOLDER: string;
11
+ AUDIT: string;
12
+ SOT: string;
13
+ };
14
+ export declare const SystemResult: {
15
+ DELETE: string;
16
+ };
17
+ export declare const AdministrationRoles: {
18
+ ADMIN: string;
19
+ SYSTEM: string;
20
+ MANAGE_SETTINGS: string;
21
+ };
22
+ export declare const UserRoles: {
23
+ MULTI_TENANT: string;
24
+ };
25
+ export declare const SystemSOT: {
26
+ DESTRUCTION_RETENTION: string;
27
+ };
28
+ export declare const RetentionField: {
29
+ RETENTION_END: string;
30
+ RETENTION_START: string;
31
+ DESTRUCTION_DATE: string;
32
+ };
33
+ export declare enum RetentionState {
34
+ NONE = 0,
35
+ ACTIVE = 1,
36
+ DESTRUCT = 2,
37
+ INACTIVE = 3
38
+ }
39
+ export declare const BaseObjectTypeField: {
40
+ PARENT_ID: string;
41
+ PARENT_OBJECT_TYPE_ID: string;
42
+ PARENT_VERSION_NUMBER: string;
43
+ TENANT: string;
44
+ ACL: string;
45
+ TRACE_ID: string;
46
+ SECONDARY_OBJECT_TYPE_IDS: string;
47
+ BASE_TYPE_ID: string;
48
+ TAGS: string;
49
+ OBJECT_ID: string;
50
+ RETENTION_END: string;
51
+ RETENTION_START: string;
52
+ DESTRUCTION_DATE: string;
53
+ OBJECT_TYPE_ID: string;
54
+ VERSION_NUMBER: string;
55
+ CREATION_DATE: string;
56
+ CREATED_BY: string;
57
+ MODIFICATION_DATE: string;
58
+ MODIFIED_BY: string;
59
+ };
60
+ export declare const ClientDefaultsObjectTypeField: {
61
+ TITLE: string;
62
+ DESCRIPTION: string;
63
+ };
64
+ export declare const ContentStreamField: {
65
+ LENGTH: string;
66
+ MIME_TYPE: string;
67
+ FILENAME: string;
68
+ ID: string;
69
+ RANGE: string;
70
+ REPOSITORY_ID: string;
71
+ DIGEST: string;
72
+ ARCHIVE_PATH: string;
73
+ };
74
+ export declare const AuditField: {
75
+ REFERRED_OBJECT_ID: string;
76
+ CREATION_DATE: string;
77
+ VERSION: string;
78
+ DETAIL: string;
79
+ CREATED_BY: string;
80
+ ACTION: string;
81
+ SUBACTION: string;
82
+ };
83
+ export declare const ParentField: {
84
+ asvaktenzeichen: string;
85
+ asvaktenzeichentext: string;
86
+ asvsichtrechte: string;
87
+ asvvorgangsname: string;
88
+ asvvorgangsnummer: string;
89
+ };
90
+ export declare enum ContentStreamAllowed {
91
+ ALLOWED = "allowed",
92
+ NOT_ALLOWED = "notallowed",
93
+ REQUIRED = "required"
94
+ }
95
+ export declare enum Classification {
96
+ STRING_CATALOG_CUSTOM = "custom:catalog",
97
+ STRING_CATALOG_DYNAMIC = "dynamic:catalog",
98
+ STRING_CATALOG = "catalog",
99
+ STRING_ORGANIZATION = "id:organization",
100
+ STRING_ORGANIZATION_SET = "id:organization:set",
101
+ STRING_REFERENCE = "id:reference",
102
+ STRING_EMAIL = "email",
103
+ STRING_URL = "url",
104
+ STRING_PHONE = "phone",
105
+ NUMBER_FILESIZE = "filesize",
106
+ NUMBER_DIGIT = "digit",
107
+ BOOLEAN_SWITCH = "switch",
108
+ SYSTEM_SOT = "systemsot",
109
+ PREDICTION_CLASSIFY = "prediction:classify",
110
+ TABLE_SORTABLE = "sortable"
111
+ }
112
+ export declare enum ObjectTypeClassification {
113
+ SEARCH_FALSE = "appClient:search:false",
114
+ CREATE_FALSE = "appClient:create:false",
115
+ OBJECT_TYPE_ICON = "appClient:icon"
116
+ }
117
+ export declare enum ObjectTypePropertyClassification {
118
+ SUMMARY_HIDDEN = "appClient:summary:hidden"
119
+ }
120
+ export declare enum SecondaryObjectTypeClassification {
121
+ REQUIRED = "appClient:required",
122
+ PRIMARY = "appClient:primary",
123
+ EXTENSION_ADD_FALSE = "appClient:extension:add:false",
124
+ EXTENSION_REMOVE_FALSE = "appClient:extension:remove:false"
125
+ }
126
+ export declare enum InternalFieldType {
127
+ STRING_ORGANIZATION_SET = "string:organization:set",
128
+ STRING_ORGANIZATION = "string:organization",
129
+ STRING_REFERENCE = "string:reference",
130
+ STRING_CATALOG = "string:catalog",
131
+ STRING_DYNAMIC_CATALOG = "string:catalog:dynamic",
132
+ BOOLEAN_SWITCH = "boolean:switch"
133
+ }
134
+ export declare enum ObjectTag {
135
+ AFO = "appclient:dlm:prepare"
136
+ }
137
+ export declare const AFO_STATE: {
138
+ IN_PROGRESS: number;
139
+ READY: number;
140
+ };
141
+ export declare const ColumnConfigSkipFields: string[];
@@ -0,0 +1,146 @@
1
+ import { ObjectTypeFieldInternalType, ObjectTypeFieldType } from './object-form.interface';
2
+ /**
3
+ * Virtual object types.
4
+ * They are a combination of an object type ID and/or a list of SOTs
5
+ */
6
+ export interface VirtualObjectType {
7
+ id: string;
8
+ icon?: string;
9
+ objectType?: string;
10
+ sots?: string[];
11
+ }
12
+ /**
13
+ * Interface providing system definition
14
+ */
15
+ export interface SystemDefinition {
16
+ version: number;
17
+ lastModificationDate: any;
18
+ objectTypes: ObjectType[];
19
+ secondaryObjectTypes: SecondaryObjectType[];
20
+ i18n: Localization;
21
+ allFields: Record<string, SchemaResponseFieldDefinition>;
22
+ }
23
+ export interface GenericObjectType extends ObjectType {
24
+ isSot?: boolean;
25
+ }
26
+ export interface _ObjectTypeBase {
27
+ id: string;
28
+ label?: string;
29
+ classification?: string[];
30
+ description?: string;
31
+ baseId?: string;
32
+ contentStreamAllowed?: string;
33
+ fields: ObjectTypeField[];
34
+ }
35
+ /**
36
+ * Object Type interface
37
+ */
38
+ export interface ObjectType extends _ObjectTypeBase {
39
+ isFolder: boolean;
40
+ creatable: boolean;
41
+ secondaryObjectTypes: {
42
+ id: string;
43
+ static?: boolean;
44
+ }[];
45
+ }
46
+ /**
47
+ * Interface providing secondary object type
48
+ */
49
+ export type SecondaryObjectType = _ObjectTypeBase;
50
+ export interface _ObjectTypeFieldBase {
51
+ id: string;
52
+ name: string;
53
+ description: string;
54
+ propertyType: ObjectTypeFieldType;
55
+ cardinality: 'single' | 'multi';
56
+ required: boolean;
57
+ updatability: string;
58
+ classifications?: string[];
59
+ resolution?: string;
60
+ }
61
+ /**
62
+ * Interface for a secondary object type field
63
+ */
64
+ export interface ObjectTypeField extends _ObjectTypeFieldBase {
65
+ /**
66
+ * Internal type that is generated by the system service
67
+ * when schema is fetched. Most of the time this will match
68
+ * the propertyType
69
+ */
70
+ _internalType: ObjectTypeFieldInternalType;
71
+ label?: string;
72
+ }
73
+ export interface VisibleObjectTag {
74
+ tagName: string;
75
+ tagValues?: any[];
76
+ }
77
+ /**
78
+ * Base definition of the kind of data we'll receive
79
+ * from the backend asking for native schema
80
+ */
81
+ export interface SchemaResponse {
82
+ version: number;
83
+ lastModificationDate: string;
84
+ propertyDefinition: SchemaResponseFieldDefinition[];
85
+ typeDocumentDefinition: SchemaResponseDocumentTypeDefinition[];
86
+ typeFolderDefinition: SchemaResponseFolderTypeDefinition[];
87
+ typeSecondaryDefinition: SchemaResponseDocumentTypeDefinition[];
88
+ }
89
+ /**
90
+ * Interface for create the schema from the servers schema type definition response
91
+ */
92
+ export interface SchemaResponseTypeDefinition {
93
+ id: string;
94
+ description?: string;
95
+ baseId: string;
96
+ propertyReference: {
97
+ value: string;
98
+ }[];
99
+ secondaryObjectTypeId: {
100
+ value: string;
101
+ static?: boolean;
102
+ }[];
103
+ classification: string[];
104
+ }
105
+ export type SchemaResponseFolderTypeDefinition = SchemaResponseTypeDefinition;
106
+ export interface SchemaResponseDocumentTypeDefinition extends SchemaResponseTypeDefinition {
107
+ contentStreamAllowed?: string;
108
+ }
109
+ /**
110
+ * Interface for create the schema from the servers schema field definition response
111
+ */
112
+ export interface SchemaResponseFieldDefinition extends _ObjectTypeFieldBase {
113
+ columnDefinitions?: SchemaResponseFieldDefinition[];
114
+ }
115
+ /**
116
+ * Object type fields classification property (schema)
117
+ */
118
+ export interface ClassificationEntry {
119
+ classification: string;
120
+ options: string[];
121
+ }
122
+ /**
123
+ * Secondary object types that could be applied to a particular dms object
124
+ */
125
+ export interface ApplicableSecondaries {
126
+ primarySOTs: SecondaryObjectType[];
127
+ extendingSOTs: SecondaryObjectType[];
128
+ }
129
+ export interface Localization {
130
+ [key: string]: string;
131
+ }
132
+ export interface UserPermissions {
133
+ create: UserPermissionsSection;
134
+ read: UserPermissionsSection;
135
+ write: UserPermissionsSection;
136
+ delete: UserPermissionsSection;
137
+ }
138
+ export interface UserPermissionsSection {
139
+ folderTypes: string[];
140
+ objectTypes: string[];
141
+ secondaryObjectTypes: string[];
142
+ }
143
+ export interface ObjectTypePermissions {
144
+ createableObjectTypes: string[];
145
+ searchableObjectTypes: string[];
146
+ }
@@ -0,0 +1,168 @@
1
+ import { Observable } from 'rxjs';
2
+ import { AuthData } from './../auth/auth.service';
3
+ import { ObjectTypeFieldInternalType } from './object-form.interface';
4
+ import { ClassificationEntry, GenericObjectType, Localization, ObjectType, ObjectTypeField, ObjectTypePermissions, SchemaResponse, SecondaryObjectType, SystemDefinition } from './system.interface';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Providing system definitions.
8
+ */
9
+ export declare class SystemService {
10
+ #private;
11
+ system?: SystemDefinition;
12
+ system$: Observable<SystemDefinition>;
13
+ authData?: AuthData;
14
+ /**
15
+ * Get all object types
16
+ * @param withLabels Whether or not to also add the types labels
17
+ */
18
+ getObjectTypes(withLabels?: boolean, situation?: 'search' | 'create'): GenericObjectType[];
19
+ /**
20
+ * Get all secondary object types
21
+ * @param withLabels Whether or not to also add the types labels
22
+ */
23
+ getSecondaryObjectTypes(withLabels?: boolean, situation?: 'search' | 'create'): SecondaryObjectType[];
24
+ /**
25
+ * Get a particular object type
26
+ * @param objectTypeId ID of the object type
27
+ * @param withLabel Whether or not to also add the types label
28
+ */
29
+ getObjectType(objectTypeId: string, withLabel?: boolean): GenericObjectType | undefined;
30
+ /**
31
+ * Get a particular secondary object type
32
+ * @param objectTypeId ID of the object type
33
+ * @param withLabel Whether or not to also add the types label
34
+ */
35
+ getSecondaryObjectType(objectTypeId: string, withLabel?: boolean): SecondaryObjectType | undefined;
36
+ /**
37
+ * Get the base document type all documents belong to
38
+ * @param withLabel Whether or not to also add the types label
39
+ */
40
+ getBaseDocumentType(withLabel?: boolean): ObjectType;
41
+ /**
42
+ * Get the base folder type all folders belong to
43
+ * @param withLabel Whether or not to also add the types label
44
+ */
45
+ getBaseFolderType(withLabel?: boolean): ObjectType;
46
+ /**
47
+ * Get the base object type all dms objects belong to
48
+ */
49
+ getBaseType(): ObjectType;
50
+ /**
51
+ * Get the resolved object type with all fields ( including fields from related secondary types )
52
+ */
53
+ getResolvedType(objectTypeId?: string): {
54
+ id: string;
55
+ fields: ObjectTypeField[];
56
+ };
57
+ /**
58
+ * Get the resolved object tags
59
+ */
60
+ getResolvedTags(objectTypeId: string): {
61
+ id: string;
62
+ tagName: string;
63
+ tagValues: any;
64
+ fields: ObjectTypeField[];
65
+ }[];
66
+ /**
67
+ * Get a list of classifications for a given object type including the
68
+ * classifications of its static secondary object types
69
+ * @param objectTypeId ID of the object type
70
+ */
71
+ getResolvedClassifications(objectTypeId: string): string[];
72
+ /**
73
+ * Visible tags are defined by a classification on the object type (e.g. 'tag[tenkolibri:process,1,2,3]').
74
+ *
75
+ * The example will only return tags with the name 'tenkolibri:process'
76
+ * and values of either 1, 2 or 3. All other tags will be ignored.
77
+ *
78
+ * @param objectTypeId ID of the object type to get the visible tags for
79
+ * @returns object where the property name is the name of the tag and its value are the visible values
80
+ * for that tag (if values is emoty all values are allowed)
81
+ */
82
+ getVisibleTags(objectTypeId: string): {
83
+ [tagName: string]: any[];
84
+ };
85
+ private fetchVisibleTags;
86
+ filterVisibleTags(objectTypeId: string, tagsValue: Array<Array<any>>): Array<Array<any>>;
87
+ /**
88
+ * Get the icon for an object type. This will return an SVG as a string.
89
+ * @param objectTypeId ID of the object type
90
+ * @param fallback ID of a fallback icon that should be used if the given object type has no icon yet
91
+ */
92
+ getObjectTypeIcon(objectTypeId: string, fallback?: string): Observable<string>;
93
+ /**
94
+ * Get the URI of an object type icon.
95
+ * @param objectTypeId ID of the object type
96
+ * @param fallback ID of a fallback icon that should be used if the given object type has no icon yet
97
+ */
98
+ getObjectTypeIconUri(objectTypeId: string, fallback?: string): string;
99
+ private getFallbackIcon;
100
+ getLocalizedResource(key: string): string;
101
+ getLocalizedLabel(id: string): string;
102
+ getLocalizedDescription(id: string): string;
103
+ /**
104
+ * Determine whether or not the given object type field is a system field
105
+ * @param field Object type field to be checked
106
+ */
107
+ isSystemProperty(field: ObjectTypeField): boolean;
108
+ /**
109
+ * Fetches the backends system definition and updates system$ Observable.
110
+ * Subscribe to the system$ observable instead of calling this function, otherwise you'll trigger fetching the
111
+ * system definition every time.
112
+ *
113
+ * @param user The user to load the system definition for
114
+ */
115
+ getSystemDefinition(authData?: AuthData): Observable<boolean>;
116
+ setPermissions(p: ObjectTypePermissions): void;
117
+ /**
118
+ * Create the schema from the servers schema response
119
+ * @param schemaResponse Response from the backend
120
+ */
121
+ setSchema(schemaResponse: SchemaResponse, localizedResource?: Localization): void;
122
+ /**
123
+ * Fetch a collection of form models.
124
+ * @param objectTypeIDs Object type IDs to fetch form model for
125
+ * @param situation Form situation
126
+ * @returns Object where the object type id is key and the form model is the value
127
+ */
128
+ getObjectTypeForms(objectTypeIDs: string[], situation: string): Observable<Record<string, any>>;
129
+ /**
130
+ * Get the form model of an object type.
131
+ *
132
+ * @param objectTypeId ID of the object type to fetch the form for
133
+ * @param situation The form situation to be fetched
134
+ * @returns Form model
135
+ */
136
+ getObjectTypeForm(objectTypeId: string, situation: string): Observable<any>;
137
+ /**
138
+ * Generates an internal type for a given object type field.
139
+ * Adding this to a form element or object type field enables us to render forms
140
+ * based on object type fields in a more performant way. Otherwise we would
141
+ * have to evaluate the conditions for every form element on every digest cycle.
142
+ * @param type propertyType of the ObjectTypeField
143
+ * @param classifications classifications of the ObjectTypeField
144
+ */
145
+ getInternalFormElementType(type: string, classifications?: string[]): ObjectTypeFieldInternalType;
146
+ getObjectTypeField(id: string): ObjectTypeField | undefined;
147
+ /**
148
+ * Extract classifications from object type fields classification
149
+ * string. This string may contain more than one classification entry.
150
+ *
151
+ * Classification is a comma separated string that may contain additional
152
+ * properties related to on classification entry. Example:
153
+ *
154
+ * `id:reference[system:folder], email`
155
+ *
156
+ * @param classifications Object type fields classification property (schema)
157
+ */
158
+ getClassifications(classifications: string[]): Map<string, ClassificationEntry>;
159
+ toFormElement(field: ObjectTypeField): any;
160
+ updateAuthData(data: Partial<AuthData>): Observable<boolean>;
161
+ updateLocalizations(iso: string): Observable<any>;
162
+ fetchResources(id: string): Observable<{
163
+ global: any;
164
+ tenant: any;
165
+ }>;
166
+ static ɵfac: i0.ɵɵFactoryDeclaration<SystemService, never>;
167
+ static ɵprov: i0.ɵɵInjectableDeclaration<SystemService>;
168
+ }
@@ -0,0 +1,55 @@
1
+ import { Observable, Subscription } from 'rxjs';
2
+ /**
3
+ * Intrefice for providing an uploading status of an object
4
+ */
5
+ export interface ProgressStatus {
6
+ items: ProgressStatusItem[];
7
+ err: number;
8
+ }
9
+ /**
10
+ * Is part of the `ProgressStatus` interface
11
+ */
12
+ export interface ProgressStatusItem {
13
+ id: string;
14
+ filename: string;
15
+ progress: Observable<number>;
16
+ subscription: Subscription;
17
+ result?: UploadResult[];
18
+ err?: {
19
+ code: number;
20
+ message: string;
21
+ };
22
+ }
23
+ /**
24
+ * is a part of `CreatedObject` interface
25
+ */
26
+ interface ContentStream {
27
+ contentStreamId: string;
28
+ repositoryId: string;
29
+ digest: string;
30
+ fileName: string;
31
+ archivePath: string;
32
+ length: number;
33
+ mimeType: string;
34
+ }
35
+ /**
36
+ * Interface providng properties of uploaded object type
37
+ */
38
+ export interface UploadResult {
39
+ objectId: string | string[];
40
+ contentStreamId: string;
41
+ filename: string;
42
+ label?: string;
43
+ }
44
+ /**
45
+ * Interface that was used by upload service
46
+ */
47
+ export interface CreatedObject {
48
+ body?: {
49
+ objects: {
50
+ properties: any;
51
+ contentStreams?: ContentStream[];
52
+ }[];
53
+ };
54
+ }
55
+ export {};