@pilotdev/pilot-web-sdk 26.10.0 → 26.12.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/esm2022/lib/base/disposable.mjs +14 -0
- package/esm2022/lib/base/index.mjs +3 -0
- package/esm2022/lib/base/initializable.mjs +14 -0
- package/esm2022/lib/commands/command-builder.mjs +2 -0
- package/esm2022/lib/commands/index.mjs +2 -0
- package/esm2022/lib/contexts/bim-element-panel-context.mjs +16 -0
- package/esm2022/lib/contexts/bim-right-panel-context.mjs +16 -0
- package/esm2022/lib/contexts/context.mjs +32 -0
- package/esm2022/lib/contexts/dialog-context.mjs +10 -0
- package/esm2022/lib/contexts/document-annotations-list-context.mjs +16 -0
- package/esm2022/lib/contexts/index.mjs +10 -0
- package/esm2022/lib/contexts/object-card-context.mjs +63 -0
- package/esm2022/lib/contexts/page-context.mjs +3 -0
- package/esm2022/lib/contexts/render-context.mjs +24 -0
- package/esm2022/lib/contexts/settings-feature-context.mjs +21 -0
- package/esm2022/lib/data/access.mjs +29 -0
- package/esm2022/lib/data/annotations.mjs +34 -0
- package/esm2022/lib/data/attribute.mjs +35 -0
- package/esm2022/lib/data/bim-features/bim-compare-diff.mjs +9 -0
- package/esm2022/lib/data/bim-features/bim-search-set.mjs +2 -0
- package/esm2022/lib/data/bim-features/index.mjs +3 -0
- package/esm2022/lib/data/cades-type.mjs +13 -0
- package/esm2022/lib/data/certificate.mjs +2 -0
- package/esm2022/lib/data/data-object.mjs +19 -0
- package/esm2022/lib/data/expected-error.mjs +9 -0
- package/esm2022/lib/data/file.mjs +2 -0
- package/esm2022/lib/data/files-snapshot.mjs +2 -0
- package/esm2022/lib/data/index.mjs +21 -0
- package/esm2022/lib/data/organisation-unit.mjs +7 -0
- package/esm2022/lib/data/person.mjs +2 -0
- package/esm2022/lib/data/relation.mjs +2 -0
- package/esm2022/lib/data/signature-custom-state.mjs +2 -0
- package/esm2022/lib/data/signature-verification-result.mjs +2 -0
- package/esm2022/lib/data/signature-verification-status.mjs +11 -0
- package/esm2022/lib/data/subscription-type.mjs +6 -0
- package/esm2022/lib/data/theme.mjs +6 -0
- package/esm2022/lib/data/user-state-machine.mjs +2 -0
- package/esm2022/lib/data/user-state.mjs +12 -0
- package/esm2022/lib/icrypto-provider.mjs +96 -0
- package/esm2022/lib/idata.plugin.mjs +11 -0
- package/esm2022/lib/injectable/bim-features/bim-compare-diff-service.mjs +2 -0
- package/esm2022/lib/injectable/bim-features/bim-features.mjs +2 -0
- package/esm2022/lib/injectable/bim-features/bim-search-set-service.mjs +2 -0
- package/esm2022/lib/injectable/bim-features/index.mjs +4 -0
- package/esm2022/lib/injectable/command-builder-provider.mjs +2 -0
- package/esm2022/lib/injectable/dialog-service.mjs +2 -0
- package/esm2022/lib/injectable/index.mjs +12 -0
- package/esm2022/lib/injectable/injection-source.mjs +55 -0
- package/esm2022/lib/injectable/ipersonal-settings.mjs +2 -0
- package/esm2022/lib/injectable/modifier-provider.mjs +2 -0
- package/esm2022/lib/injectable/objects-repository.mjs +2 -0
- package/esm2022/lib/injectable/progress-service.mjs +8 -0
- package/esm2022/lib/injectable/render-context-provider.mjs +2 -0
- package/esm2022/lib/injectable/repository-events.mjs +2 -0
- package/esm2022/lib/injectable/theme-service.mjs +2 -0
- package/esm2022/lib/menu/checkable-menu.builder.mjs +14 -0
- package/esm2022/lib/menu/index.mjs +5 -0
- package/esm2022/lib/menu/menu-item.builder.mjs +39 -0
- package/esm2022/lib/menu/menu.builder.mjs +68 -0
- package/esm2022/lib/menu/menu.mjs +23 -0
- package/esm2022/lib/modifier/attribute-modifier.mjs +2 -0
- package/esm2022/lib/modifier/index.mjs +5 -0
- package/esm2022/lib/modifier/modifier.mjs +2 -0
- package/esm2022/lib/modifier/object-builder.mjs +2 -0
- package/esm2022/lib/modifier/signature-modifier.mjs +2 -0
- package/esm2022/lib/object-card/attribute-value-changed-event-args.mjs +20 -0
- package/esm2022/lib/object-card/index.mjs +3 -0
- package/esm2022/lib/object-card/object-card-handler.mjs +30 -0
- package/esm2022/lib/openspace/index.mjs +2 -0
- package/esm2022/lib/openspace/openspace-view.mjs +29 -0
- package/esm2022/lib/page-navigation/index.mjs +5 -0
- package/esm2022/lib/page-navigation/page-navigation-section-element.builder.mjs +42 -0
- package/esm2022/lib/page-navigation/page-navigation-section.builder.mjs +47 -0
- package/esm2022/lib/page-navigation/page-navigation.builder.mjs +40 -0
- package/esm2022/lib/page-navigation/page-navigation.mjs +15 -0
- package/esm2022/lib/personal-settings/index.mjs +4 -0
- package/esm2022/lib/personal-settings/isettings-feature.mjs +42 -0
- package/esm2022/lib/personal-settings/isettings-value-provider.mjs +27 -0
- package/esm2022/lib/personal-settings/system-settings-keys.mjs +83 -0
- package/esm2022/lib/tabs/index.mjs +4 -0
- package/esm2022/lib/tabs/tab-item.builder.mjs +35 -0
- package/esm2022/lib/tabs/tabs.builder.mjs +40 -0
- package/esm2022/lib/tabs/tabs.mjs +15 -0
- package/esm2022/lib/toolbar/index.mjs +7 -0
- package/esm2022/lib/toolbar/toolbar-item-submenu.handler.mjs +11 -0
- package/esm2022/lib/toolbar/toolbar-item.builder.mjs +41 -0
- package/esm2022/lib/toolbar/toolbar-menu-item.builder.mjs +15 -0
- package/esm2022/lib/toolbar/toolbar-toggle-item.builder.mjs +14 -0
- package/esm2022/lib/toolbar/toolbar.builder.mjs +88 -0
- package/esm2022/lib/toolbar/toolbar.mjs +28 -0
- package/esm2022/lib/tools/attribute-permission.info.mjs +45 -0
- package/esm2022/lib/tools/guid.mjs +53 -0
- package/esm2022/lib/tools/index.mjs +4 -0
- package/esm2022/lib/tools/utils.mjs +8 -0
- package/esm2022/pilotdev-pilot-web-sdk.mjs +5 -0
- package/esm2022/public-api.mjs +20 -0
- package/extensions.config.schema.json +171 -132
- package/fesm2022/pilotdev-pilot-web-sdk.mjs +1508 -0
- package/fesm2022/pilotdev-pilot-web-sdk.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/base/disposable.d.ts +7 -0
- package/{src/lib/base/index.ts → lib/base/index.d.ts} +2 -2
- package/lib/base/initializable.d.ts +8 -0
- package/lib/commands/command-builder.d.ts +15 -0
- package/lib/commands/index.d.ts +1 -0
- package/lib/contexts/bim-element-panel-context.d.ts +8 -0
- package/lib/contexts/bim-right-panel-context.d.ts +8 -0
- package/lib/contexts/context.d.ts +22 -0
- package/lib/contexts/dialog-context.d.ts +5 -0
- package/lib/contexts/document-annotations-list-context.d.ts +12 -0
- package/{src/lib/contexts/index.ts → lib/contexts/index.d.ts} +1 -1
- package/lib/contexts/object-card-context.d.ts +41 -0
- package/lib/contexts/page-context.d.ts +2 -0
- package/lib/contexts/render-context.d.ts +17 -0
- package/lib/contexts/settings-feature-context.d.ts +11 -0
- package/lib/data/access.d.ts +38 -0
- package/lib/data/annotations.d.ts +113 -0
- package/lib/data/attribute.d.ts +48 -0
- package/lib/data/bim-features/bim-compare-diff.d.ts +15 -0
- package/lib/data/bim-features/bim-search-set.d.ts +13 -0
- package/lib/data/cades-type.d.ts +11 -0
- package/lib/data/certificate.d.ts +29 -0
- package/lib/data/data-object.d.ts +77 -0
- package/lib/data/expected-error.d.ts +5 -0
- package/lib/data/file.d.ts +30 -0
- package/lib/data/files-snapshot.d.ts +8 -0
- package/lib/data/organisation-unit.d.ts +20 -0
- package/lib/data/person.d.ts +17 -0
- package/lib/data/relation.d.ts +8 -0
- package/{src/lib/data/signature-custom-state.ts → lib/data/signature-custom-state.d.ts} +4 -4
- package/{src/lib/data/signature-verification-result.ts → lib/data/signature-verification-result.d.ts} +9 -13
- package/lib/data/signature-verification-status.d.ts +9 -0
- package/lib/data/subscription-type.d.ts +4 -0
- package/lib/data/theme.d.ts +7 -0
- package/lib/data/user-state-machine.d.ts +10 -0
- package/lib/data/user-state.d.ts +20 -0
- package/lib/icrypto-provider.d.ts +82 -0
- package/lib/idata.plugin.d.ts +6 -0
- package/lib/injectable/bim-features/bim-compare-diff-service.d.ts +4 -0
- package/{src/lib/injectable/bim-features/bim-features.ts → lib/injectable/bim-features/bim-features.d.ts} +6 -8
- package/lib/injectable/bim-features/bim-search-set-service.d.ts +39 -0
- package/{src/lib/injectable/bim-features/index.ts → lib/injectable/bim-features/index.d.ts} +3 -3
- package/{src/lib/injectable/command-builder-provider.ts → lib/injectable/command-builder-provider.d.ts} +6 -7
- package/{src/lib/injectable/dialog-service.ts → lib/injectable/dialog-service.d.ts} +1 -2
- package/lib/injectable/injection-source.d.ts +26 -0
- package/lib/injectable/ipersonal-settings.d.ts +48 -0
- package/{src/lib/injectable/modifier-provider.ts → lib/injectable/modifier-provider.d.ts} +5 -6
- package/lib/injectable/objects-repository.d.ts +87 -0
- package/lib/injectable/progress-service.d.ts +18 -0
- package/lib/injectable/render-context-provider.d.ts +10 -0
- package/lib/injectable/repository-events.d.ts +31 -0
- package/{src/lib/injectable/theme-service.ts → lib/injectable/theme-service.d.ts} +3 -4
- package/lib/menu/checkable-menu.builder.d.ts +11 -0
- package/{src/lib/menu/index.ts → lib/menu/index.d.ts} +1 -2
- package/lib/menu/menu-item.builder.d.ts +27 -0
- package/lib/menu/menu.builder.d.ts +49 -0
- package/lib/menu/menu.d.ts +20 -0
- package/lib/modifier/attribute-modifier.d.ts +9 -0
- package/{src/lib/modifier/index.ts → lib/modifier/index.d.ts} +1 -1
- package/lib/modifier/modifier.d.ts +30 -0
- package/lib/modifier/object-builder.d.ts +140 -0
- package/lib/modifier/signature-modifier.d.ts +87 -0
- package/lib/object-card/attribute-value-changed-event-args.d.ts +10 -0
- package/{src/lib/object-card/index.ts → lib/object-card/index.d.ts} +2 -2
- package/lib/object-card/object-card-handler.d.ts +25 -0
- package/lib/openspace/openspace-view.d.ts +20 -0
- package/{src/lib/page-navigation/index.ts → lib/page-navigation/index.d.ts} +4 -4
- package/lib/page-navigation/page-navigation-section-element.builder.d.ts +29 -0
- package/lib/page-navigation/page-navigation-section.builder.d.ts +33 -0
- package/lib/page-navigation/page-navigation.builder.d.ts +28 -0
- package/lib/page-navigation/page-navigation.d.ts +9 -0
- package/lib/personal-settings/isettings-feature.d.ts +31 -0
- package/lib/personal-settings/isettings-value-provider.d.ts +17 -0
- package/lib/personal-settings/system-settings-keys.d.ts +82 -0
- package/lib/tabs/tab-item.builder.d.ts +24 -0
- package/lib/tabs/tabs.builder.d.ts +28 -0
- package/lib/tabs/tabs.d.ts +14 -0
- package/{src/lib/toolbar/index.ts → lib/toolbar/index.d.ts} +1 -2
- package/lib/toolbar/toolbar-item-submenu.handler.d.ts +9 -0
- package/lib/toolbar/toolbar-item.builder.d.ts +28 -0
- package/lib/toolbar/toolbar-menu-item.builder.d.ts +13 -0
- package/lib/toolbar/toolbar-toggle-item.builder.d.ts +11 -0
- package/lib/toolbar/toolbar.builder.d.ts +65 -0
- package/lib/toolbar/toolbar.d.ts +21 -0
- package/lib/tools/attribute-permission.info.d.ts +9 -0
- package/lib/tools/guid.d.ts +7 -0
- package/lib/tools/index.d.ts +3 -0
- package/lib/tools/utils.d.ts +3 -0
- package/package.json +17 -4
- package/{src/public-api.ts → public-api.d.ts} +0 -3
- package/.eslintrc.json +0 -31
- package/ng-package.json +0 -10
- package/src/lib/base/disposable.ts +0 -14
- package/src/lib/base/initializable.ts +0 -16
- package/src/lib/commands/command-builder.ts +0 -19
- package/src/lib/commands/index.ts +0 -1
- package/src/lib/contexts/bim-element-panel-context.ts +0 -22
- package/src/lib/contexts/bim-right-panel-context.ts +0 -22
- package/src/lib/contexts/context.ts +0 -38
- package/src/lib/contexts/dialog-context.ts +0 -10
- package/src/lib/contexts/document-annotations-list-context.ts +0 -21
- package/src/lib/contexts/object-card-context.ts +0 -81
- package/src/lib/contexts/page-context.ts +0 -1
- package/src/lib/contexts/render-context.ts +0 -28
- package/src/lib/contexts/settings-feature-context.ts +0 -26
- package/src/lib/data/access.ts +0 -40
- package/src/lib/data/annotations.ts +0 -160
- package/src/lib/data/attribute.ts +0 -33
- package/src/lib/data/bim-features/bim-compare-diff.ts +0 -16
- package/src/lib/data/bim-features/bim-search-set.ts +0 -16
- package/src/lib/data/cades-type.ts +0 -11
- package/src/lib/data/certificate.ts +0 -34
- package/src/lib/data/data-object.ts +0 -83
- package/src/lib/data/expected-error.ts +0 -10
- package/src/lib/data/file.ts +0 -33
- package/src/lib/data/files-snapshot.ts +0 -9
- package/src/lib/data/organisation-unit.ts +0 -22
- package/src/lib/data/person.ts +0 -17
- package/src/lib/data/relation.ts +0 -9
- package/src/lib/data/signature-verification-status.ts +0 -10
- package/src/lib/data/subscription-type.ts +0 -5
- package/src/lib/data/theme.ts +0 -9
- package/src/lib/data/user-state-machine.ts +0 -11
- package/src/lib/data/user-state.ts +0 -21
- package/src/lib/icrypto-provider.ts +0 -106
- package/src/lib/idata.plugin.ts +0 -10
- package/src/lib/injectable/bim-features/bim-compare-diff-service.ts +0 -5
- package/src/lib/injectable/bim-features/bim-search-set-service.ts +0 -44
- package/src/lib/injectable/injection-source.ts +0 -66
- package/src/lib/injectable/ipersonal-settings.ts +0 -53
- package/src/lib/injectable/objects-repository.ts +0 -88
- package/src/lib/injectable/progress-service.ts +0 -20
- package/src/lib/injectable/render-context-provider.ts +0 -11
- package/src/lib/injectable/repository-events.ts +0 -33
- package/src/lib/menu/checkable-menu.builder.ts +0 -15
- package/src/lib/menu/menu-item.builder.ts +0 -45
- package/src/lib/menu/menu.builder.ts +0 -79
- package/src/lib/menu/menu.ts +0 -26
- package/src/lib/modifier/attribute-modifier.ts +0 -9
- package/src/lib/modifier/modifier.ts +0 -31
- package/src/lib/modifier/object-builder.ts +0 -143
- package/src/lib/modifier/signature-modifier.ts +0 -99
- package/src/lib/object-card/attribute-value-changed-event-args.ts +0 -25
- package/src/lib/object-card/object-card-handler.ts +0 -36
- package/src/lib/openspace/openspace-view.ts +0 -32
- package/src/lib/page-navigation/page-navigation-section-element.builder.ts +0 -45
- package/src/lib/page-navigation/page-navigation-section.builder.ts +0 -53
- package/src/lib/page-navigation/page-navigation.builder.ts +0 -45
- package/src/lib/page-navigation/page-navigation.ts +0 -17
- package/src/lib/personal-settings/isettings-feature.ts +0 -43
- package/src/lib/personal-settings/isettings-value-provider.ts +0 -28
- package/src/lib/personal-settings/system-settings-keys.ts +0 -101
- package/src/lib/tabs/tab-item.builder.ts +0 -37
- package/src/lib/tabs/tabs.builder.ts +0 -45
- package/src/lib/tabs/tabs.ts +0 -17
- package/src/lib/toolbar/toolbar-item-submenu.handler.ts +0 -12
- package/src/lib/toolbar/toolbar-item.builder.ts +0 -45
- package/src/lib/toolbar/toolbar-menu-item.builder.ts +0 -16
- package/src/lib/toolbar/toolbar-toggle-item.builder.ts +0 -15
- package/src/lib/toolbar/toolbar.builder.ts +0 -104
- package/src/lib/toolbar/toolbar.ts +0 -33
- package/src/lib/tools/attribute-permission.info.ts +0 -54
- package/src/lib/tools/guid.ts +0 -63
- package/src/lib/tools/index.ts +0 -3
- package/src/lib/tools/utils.ts +0 -8
- package/src/typegen.ts +0 -149
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -10
- /package/{src/lib/data/bim-features/index.ts → lib/data/bim-features/index.d.ts} +0 -0
- /package/{src/lib/data/index.ts → lib/data/index.d.ts} +0 -0
- /package/{src/lib/injectable/index.ts → lib/injectable/index.d.ts} +0 -0
- /package/{src/lib/openspace/index.ts → lib/openspace/index.d.ts} +0 -0
- /package/{src/lib/personal-settings/index.ts → lib/personal-settings/index.d.ts} +0 -0
- /package/{src/lib/tabs/index.ts → lib/tabs/index.d.ts} +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
import { AccessLevel, IAccessRecord } from "../data/access";
|
|
3
|
+
import { IDataObject, IPerson, IType, IOrganisationUnit } from "../data";
|
|
4
|
+
import { IUserStateMachine } from "../data/user-state-machine";
|
|
5
|
+
/**
|
|
6
|
+
* Represents the repository that provides access to objects, types, organisation units and people
|
|
7
|
+
*/
|
|
8
|
+
export interface IObjectsRepository {
|
|
9
|
+
/**
|
|
10
|
+
* Get objects with specified ids
|
|
11
|
+
*
|
|
12
|
+
* @param ids Ids of objects to subsribe
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
getObjects(ids: string[]): Observable<IDataObject[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Get object's access for the person
|
|
18
|
+
*
|
|
19
|
+
* @param objectId Object id
|
|
20
|
+
* @param personId Person Id
|
|
21
|
+
* @returns Cold Observable
|
|
22
|
+
*/
|
|
23
|
+
getCurrentAccess(objectId: string, personId: number): Observable<AccessLevel>;
|
|
24
|
+
/**
|
|
25
|
+
* Get access records for the object
|
|
26
|
+
*
|
|
27
|
+
* @param objectId Object id
|
|
28
|
+
* @param positions Person position ids
|
|
29
|
+
* @returns Cold Observable
|
|
30
|
+
*/
|
|
31
|
+
getAccessRecords(objectId: string, positions: number[]): Observable<IAccessRecord[]>;
|
|
32
|
+
/**
|
|
33
|
+
* Gets the person with specified id
|
|
34
|
+
*
|
|
35
|
+
* @param id Person id
|
|
36
|
+
* @returns Person
|
|
37
|
+
*/
|
|
38
|
+
getPerson(id: number): IPerson;
|
|
39
|
+
/**
|
|
40
|
+
* Gets the current person
|
|
41
|
+
*
|
|
42
|
+
* @returns Person
|
|
43
|
+
*/
|
|
44
|
+
getCurrentPerson(): IPerson;
|
|
45
|
+
/**
|
|
46
|
+
* Gets all the people registred in database
|
|
47
|
+
*
|
|
48
|
+
* @returns Person[]
|
|
49
|
+
*/
|
|
50
|
+
getPeople(): IPerson[];
|
|
51
|
+
/**
|
|
52
|
+
* Gets type by identifier
|
|
53
|
+
*
|
|
54
|
+
* @returns Type
|
|
55
|
+
*/
|
|
56
|
+
getType(id: number): IType;
|
|
57
|
+
/**
|
|
58
|
+
* Gets type by name
|
|
59
|
+
*
|
|
60
|
+
* @returns Type
|
|
61
|
+
*/
|
|
62
|
+
getTypeByName(name: string): IType;
|
|
63
|
+
/**
|
|
64
|
+
* Gets all the types registered in database
|
|
65
|
+
*
|
|
66
|
+
* @returns Type[]
|
|
67
|
+
*/
|
|
68
|
+
getTypes(): IType[];
|
|
69
|
+
/**
|
|
70
|
+
* Gets organisation unit by identifier
|
|
71
|
+
*
|
|
72
|
+
* @returns OrganisationUnit
|
|
73
|
+
*/
|
|
74
|
+
getOrganisationUnit(id: number): IOrganisationUnit;
|
|
75
|
+
/**
|
|
76
|
+
* Get all the organisation units registered in database
|
|
77
|
+
*
|
|
78
|
+
* @returns OrganisationUnit
|
|
79
|
+
*/
|
|
80
|
+
getOrganisationUnits(): IOrganisationUnit[];
|
|
81
|
+
/**
|
|
82
|
+
* Get all the user state machines registered in database
|
|
83
|
+
*
|
|
84
|
+
* @returns IUserStateMachine
|
|
85
|
+
*/
|
|
86
|
+
getUserStateMachines(): Map<string, IUserStateMachine>;
|
|
87
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
export interface IProgressService {
|
|
6
|
+
get percentage(): Observable<number>;
|
|
7
|
+
get isOpen(): boolean;
|
|
8
|
+
open(mode: ProgressBarMode): void;
|
|
9
|
+
update(percentage: number): void;
|
|
10
|
+
reset(): void;
|
|
11
|
+
close(): void;
|
|
12
|
+
}
|
|
13
|
+
export declare enum ProgressBarMode {
|
|
14
|
+
Determinate = 0,
|
|
15
|
+
Indeterminate = 1,
|
|
16
|
+
Buffer = 2,
|
|
17
|
+
Query = 3
|
|
18
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
import { IDataObject, IPerson, IType, IOrganisationUnit } from "../data";
|
|
3
|
+
/**
|
|
4
|
+
* Notifies on change events
|
|
5
|
+
*/
|
|
6
|
+
export interface IRepositoryEvents {
|
|
7
|
+
/**
|
|
8
|
+
* Subsribes to changes in objects with specified identifiers
|
|
9
|
+
*
|
|
10
|
+
* @returns Hot observable
|
|
11
|
+
*/
|
|
12
|
+
subscribeObjects(ids: string[]): Observable<IDataObject>;
|
|
13
|
+
/**
|
|
14
|
+
* Subsribes to changes in people
|
|
15
|
+
*
|
|
16
|
+
* @returns Hot observable
|
|
17
|
+
*/
|
|
18
|
+
subscribePeople(): Observable<IPerson>;
|
|
19
|
+
/**
|
|
20
|
+
* Subsribes to changes in types
|
|
21
|
+
*
|
|
22
|
+
* @returns Hot observable
|
|
23
|
+
*/
|
|
24
|
+
subscribeTypes(): Observable<IType>;
|
|
25
|
+
/**
|
|
26
|
+
* Subsribes to changes in organisation units
|
|
27
|
+
*
|
|
28
|
+
* @returns Hot observable
|
|
29
|
+
*/
|
|
30
|
+
subscribeOrganisationUnits(): Observable<IOrganisationUnit>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IMenuBuilder } from "./menu.builder";
|
|
2
|
+
/**
|
|
3
|
+
* Represents a menu item and enables to set parametres to it
|
|
4
|
+
*/
|
|
5
|
+
export declare abstract class IMenuItemBuilder {
|
|
6
|
+
constructor();
|
|
7
|
+
/**
|
|
8
|
+
* Item's name to be displayed
|
|
9
|
+
* @param header value
|
|
10
|
+
*/
|
|
11
|
+
withHeader(header: string): IMenuItemBuilder;
|
|
12
|
+
/**
|
|
13
|
+
* Item's icon
|
|
14
|
+
* @param name Icon name
|
|
15
|
+
* @param iconSvg Url of icon or base64 string
|
|
16
|
+
*/
|
|
17
|
+
withIcon(name: string, iconSvg: string): IMenuItemBuilder;
|
|
18
|
+
/**
|
|
19
|
+
* Enabled the item
|
|
20
|
+
* @param value value
|
|
21
|
+
*/
|
|
22
|
+
withIsEnabled(value: boolean): IMenuItemBuilder;
|
|
23
|
+
/**
|
|
24
|
+
* Item's submenu
|
|
25
|
+
*/
|
|
26
|
+
withSubmenu(): IMenuBuilder;
|
|
27
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ICheckableMenuItemBuilder } from "./checkable-menu.builder";
|
|
2
|
+
import { IMenuItemBuilder } from "./menu-item.builder";
|
|
3
|
+
/**
|
|
4
|
+
* Represents a menu and enables to add new items to it
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class IMenuBuilder {
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Gets the list of existing items of associated menu or subitems of an item
|
|
10
|
+
* @returns Existing menu item names
|
|
11
|
+
*/
|
|
12
|
+
get itemNames(): string[];
|
|
13
|
+
/**
|
|
14
|
+
* Gets count of menu items
|
|
15
|
+
*/
|
|
16
|
+
get count(): number;
|
|
17
|
+
/**
|
|
18
|
+
* Adds a new separator to the associated menu
|
|
19
|
+
* @param index The index to put the new item at
|
|
20
|
+
*/
|
|
21
|
+
addSeparator(index: number): void;
|
|
22
|
+
/**
|
|
23
|
+
* Adds a new item to the associated menu
|
|
24
|
+
* @param name Item's internal name
|
|
25
|
+
* @param index The index to put the new item at
|
|
26
|
+
*/
|
|
27
|
+
addItem(name: string, index: number): IMenuItemBuilder;
|
|
28
|
+
/**
|
|
29
|
+
* Adds a new checkable item to the associated menu
|
|
30
|
+
* @param name Item's internal name
|
|
31
|
+
* @param index The index to put the new item at
|
|
32
|
+
*/
|
|
33
|
+
addCheckableItem(name: string, index: number): ICheckableMenuItemBuilder;
|
|
34
|
+
/**
|
|
35
|
+
* Replaces the item to the associated menu
|
|
36
|
+
* @param name Item's internal name
|
|
37
|
+
*/
|
|
38
|
+
replaceItem(name: string): IMenuItemBuilder;
|
|
39
|
+
/**
|
|
40
|
+
* Removes the item with the specified name
|
|
41
|
+
* @param name Item's internal name
|
|
42
|
+
*/
|
|
43
|
+
removeItem(name: string): void;
|
|
44
|
+
/**
|
|
45
|
+
* Gets the item
|
|
46
|
+
* @param name Item's internal name
|
|
47
|
+
*/
|
|
48
|
+
getItem(name: string): IMenuBuilder;
|
|
49
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DocumentAnnotationsListContext, ObjectsViewContext } from "../contexts";
|
|
2
|
+
import { IMenuBuilder } from "./menu.builder";
|
|
3
|
+
/**
|
|
4
|
+
* Interface that allows to add new items to the menu and context menus
|
|
5
|
+
* @exposedInterface
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class IMenu<TMenuContext extends ObjectsViewContext | DocumentAnnotationsListContext> {
|
|
8
|
+
/**
|
|
9
|
+
* The method is called just before the menu is shown
|
|
10
|
+
* @param builder The menu builder object of associated menu
|
|
11
|
+
* @param context Context
|
|
12
|
+
*/
|
|
13
|
+
build(builder: IMenuBuilder, context: TMenuContext): void;
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param name
|
|
17
|
+
* @param context
|
|
18
|
+
*/
|
|
19
|
+
onMenuItemClick(name: string, context: TMenuContext): void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Observable } from "rxjs/internal/Observable";
|
|
2
|
+
import { IDataObject } from "../data";
|
|
3
|
+
import { IObjectBuilder } from "./object-builder";
|
|
4
|
+
/**
|
|
5
|
+
* Creates, modifies and deletes objects
|
|
6
|
+
*/
|
|
7
|
+
export interface IModifier {
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new object
|
|
10
|
+
*
|
|
11
|
+
* @param id New object id
|
|
12
|
+
* @param parentId Parent id
|
|
13
|
+
* @param typeId Creating object's type id
|
|
14
|
+
* @return Fluent interface that enables you to modify created object
|
|
15
|
+
*/
|
|
16
|
+
create(id: string, parentId: string, typeId: number): IObjectBuilder;
|
|
17
|
+
/**
|
|
18
|
+
* Edits existing object
|
|
19
|
+
*
|
|
20
|
+
* @param id Id of object to modify
|
|
21
|
+
* @returns Fluent interface that enables you to modify created object
|
|
22
|
+
*/
|
|
23
|
+
edit(id: string): IObjectBuilder;
|
|
24
|
+
/**
|
|
25
|
+
* Applies all the changes have been made in modifier
|
|
26
|
+
*
|
|
27
|
+
* @returns Created and edited objects wrapped in cold Observable
|
|
28
|
+
*/
|
|
29
|
+
apply(): Observable<IDataObject[]>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { AttributeType } from "../data/attribute";
|
|
2
|
+
import { IAnnotationContainer, IMarkup } from "../data/annotations";
|
|
3
|
+
import { IAccessRecord } from "../data/access";
|
|
4
|
+
import { IRelation } from "../data/relation";
|
|
5
|
+
import { ISignatureModifier } from "./signature-modifier";
|
|
6
|
+
/**
|
|
7
|
+
* Fluent interface that enables you to modify the associated object
|
|
8
|
+
*/
|
|
9
|
+
export interface IObjectBuilder {
|
|
10
|
+
/**
|
|
11
|
+
* Sets the string attribute value
|
|
12
|
+
*
|
|
13
|
+
* @param name Attribute name
|
|
14
|
+
* @param value Attribute value
|
|
15
|
+
* @returns Self
|
|
16
|
+
*/
|
|
17
|
+
setAttribute(name: string, value: any, type: AttributeType): IObjectBuilder;
|
|
18
|
+
/**
|
|
19
|
+
* Adds access record to an object
|
|
20
|
+
*
|
|
21
|
+
* @param record Access record
|
|
22
|
+
* @returns Self
|
|
23
|
+
*/
|
|
24
|
+
setAccess(record: IAccessRecord): IObjectBuilder;
|
|
25
|
+
/**
|
|
26
|
+
* Removes access record
|
|
27
|
+
*
|
|
28
|
+
* @param record Access record
|
|
29
|
+
* @returns Self
|
|
30
|
+
*/
|
|
31
|
+
removeAccess(record: IAccessRecord): IObjectBuilder;
|
|
32
|
+
/**
|
|
33
|
+
* Adds a relation
|
|
34
|
+
*
|
|
35
|
+
* @param relation Relation
|
|
36
|
+
* @returns Self
|
|
37
|
+
*/
|
|
38
|
+
addRelation(relation: IRelation): IObjectBuilder;
|
|
39
|
+
/**
|
|
40
|
+
* Removes relation
|
|
41
|
+
*
|
|
42
|
+
* @param relationId Relation id
|
|
43
|
+
* @returns Self
|
|
44
|
+
*/
|
|
45
|
+
removeRelation(relationId: string): IObjectBuilder;
|
|
46
|
+
/**
|
|
47
|
+
* Sets new type. It is recommended to use this method only for recovering permanently deleted objects. In other cases, this can lead to system malfunction.
|
|
48
|
+
*
|
|
49
|
+
* @param typeId Type id
|
|
50
|
+
* @returns Self
|
|
51
|
+
*/
|
|
52
|
+
setTypeId(typeId: number): IObjectBuilder;
|
|
53
|
+
/**
|
|
54
|
+
* Sets new parent
|
|
55
|
+
*
|
|
56
|
+
* @param parentId Parent id
|
|
57
|
+
* @returns Self
|
|
58
|
+
*/
|
|
59
|
+
setParentId(parentId: string): IObjectBuilder;
|
|
60
|
+
/**
|
|
61
|
+
* Adds file snapshot
|
|
62
|
+
*
|
|
63
|
+
* @param reason Reason
|
|
64
|
+
* @returns Self
|
|
65
|
+
*/
|
|
66
|
+
createSnapshot(reason: string): IObjectBuilder;
|
|
67
|
+
/**
|
|
68
|
+
* Makes file snapshot actual
|
|
69
|
+
*
|
|
70
|
+
* @param version Version of file snapshot to make actual
|
|
71
|
+
* @param reason Reason
|
|
72
|
+
* @returns Self
|
|
73
|
+
*/
|
|
74
|
+
createSnapshotFrom(version: string, reason: string): IObjectBuilder;
|
|
75
|
+
/**
|
|
76
|
+
* Adds a new file to the associated object
|
|
77
|
+
*
|
|
78
|
+
* @param file File identificator
|
|
79
|
+
* @param file File interface
|
|
80
|
+
* @param creationTime File creation time
|
|
81
|
+
* @param lastAccessTime File last access time
|
|
82
|
+
* @param lastWriteTime File last write time
|
|
83
|
+
* @returns Fluent interface that enables you to modify the associated object
|
|
84
|
+
*/
|
|
85
|
+
addFile(fileId: string, file: File, creationTime: Date, lastAccessTime: Date, lastWriteTime: Date): IObjectBuilder;
|
|
86
|
+
/**
|
|
87
|
+
* Removes file from actual file snapshot by identifier
|
|
88
|
+
* @param fileId file identificator
|
|
89
|
+
* @returns Fluent interface that enables you to modify the associated object
|
|
90
|
+
*/
|
|
91
|
+
removeFile(fileId: string): IObjectBuilder;
|
|
92
|
+
/**
|
|
93
|
+
* Sets permanently deleted flag
|
|
94
|
+
*
|
|
95
|
+
* @param isDeleted Value
|
|
96
|
+
* @returns Self
|
|
97
|
+
*/
|
|
98
|
+
setIsDeleted(isDeleted: boolean): IObjectBuilder;
|
|
99
|
+
/**
|
|
100
|
+
* Set flag in recycle bin
|
|
101
|
+
*
|
|
102
|
+
* @param isInRecycleBin Value
|
|
103
|
+
* @returns Self
|
|
104
|
+
*/
|
|
105
|
+
setIsInRecycleBin(isInRecycleBin: boolean): IObjectBuilder;
|
|
106
|
+
/**
|
|
107
|
+
* Sets frozen flag
|
|
108
|
+
*
|
|
109
|
+
* @param isFreezed Value
|
|
110
|
+
* @returns Self
|
|
111
|
+
*/
|
|
112
|
+
setIsFreezed(isFreezed: boolean): IObjectBuilder;
|
|
113
|
+
/**
|
|
114
|
+
* Sets object's secret info
|
|
115
|
+
*
|
|
116
|
+
* @param isSecret Value
|
|
117
|
+
* @returns Self
|
|
118
|
+
*/
|
|
119
|
+
setIsSecret(isSecret: boolean): IObjectBuilder;
|
|
120
|
+
/**
|
|
121
|
+
* Adds or changes a annotation
|
|
122
|
+
*
|
|
123
|
+
* @param container Annotation container
|
|
124
|
+
* @param attrbutes Annotation attributes
|
|
125
|
+
* @returns Self
|
|
126
|
+
*/
|
|
127
|
+
addAnnotationContainer(container: IAnnotationContainer, attrbutes: any): IObjectBuilder;
|
|
128
|
+
/**
|
|
129
|
+
*
|
|
130
|
+
* @param markups
|
|
131
|
+
*/
|
|
132
|
+
addMarkups(markups: IMarkup[]): IObjectBuilder;
|
|
133
|
+
/**
|
|
134
|
+
* Sets new signature requests to the selected file
|
|
135
|
+
*
|
|
136
|
+
* @param fileId file id
|
|
137
|
+
* @returns Fluent interface that enables you to modify the signatures of the filtered files
|
|
138
|
+
*/
|
|
139
|
+
setSignatures(fileId: string): ISignatureModifier;
|
|
140
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ISignatureRequest, CadesType } from "../data";
|
|
2
|
+
/**
|
|
3
|
+
* Interface for modifying digital signature requests.
|
|
4
|
+
*/
|
|
5
|
+
export interface ISignatureModifier {
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new signature request with the given ID.
|
|
8
|
+
*
|
|
9
|
+
* @param signatureRequestId - The ID of the signature request to create.
|
|
10
|
+
* @returns An instance of ISignatureBuilder for further configuration.
|
|
11
|
+
*/
|
|
12
|
+
create(signatureRequestId: string): ISignatureBuilder;
|
|
13
|
+
/**
|
|
14
|
+
* Edits an existing signature request with the given ID.
|
|
15
|
+
*
|
|
16
|
+
* @param signatureRequest - The signature request to edit.
|
|
17
|
+
* @returns An instance of ISignatureBuilder for further configuration.
|
|
18
|
+
*/
|
|
19
|
+
edit(signatureRequest: ISignatureRequest): ISignatureBuilder;
|
|
20
|
+
/**
|
|
21
|
+
* Removes an existing signature request with the given ID.
|
|
22
|
+
*
|
|
23
|
+
* @param signatureRequestId - The ID of the signature request to remove.
|
|
24
|
+
*/
|
|
25
|
+
remove(signatureRequestId: string): void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Interface for building digital signature requests.
|
|
29
|
+
*/
|
|
30
|
+
export interface ISignatureBuilder {
|
|
31
|
+
/**
|
|
32
|
+
* Sets the position ID for the signature.
|
|
33
|
+
*
|
|
34
|
+
* @param positionId - The ID of the person position associated with the request.
|
|
35
|
+
* @returns This instance of ISignatureBuilder for method chaining.
|
|
36
|
+
*/
|
|
37
|
+
withPositionId(positionId: number): ISignatureBuilder;
|
|
38
|
+
/**
|
|
39
|
+
* Sets the role for the signature.
|
|
40
|
+
*
|
|
41
|
+
* @param role - The role associated with the signature.
|
|
42
|
+
* @returns This instance of ISignatureBuilder for method chaining.
|
|
43
|
+
*/
|
|
44
|
+
withRole(role: string): ISignatureBuilder;
|
|
45
|
+
/**
|
|
46
|
+
* Sets the flag sign for the signature.
|
|
47
|
+
*
|
|
48
|
+
* @param sign - The sign associated with the signature.
|
|
49
|
+
* @returns This instance of ISignatureBuilder for method chaining.
|
|
50
|
+
*/
|
|
51
|
+
withSign(sign: string): ISignatureBuilder;
|
|
52
|
+
/**
|
|
53
|
+
* Sets the request signer for the signature.
|
|
54
|
+
*
|
|
55
|
+
* @param requestSigner - The request signer associated with the signature.
|
|
56
|
+
* @returns This instance of ISignatureBuilder for method chaining.
|
|
57
|
+
*/
|
|
58
|
+
withRequestSigner(requestSigner: string): ISignatureBuilder;
|
|
59
|
+
/**
|
|
60
|
+
* Sets the object ID for the signature.
|
|
61
|
+
*
|
|
62
|
+
* @param objectId - The ID of the object associated with the signature.
|
|
63
|
+
* @returns This instance of ISignatureBuilder for method chaining.
|
|
64
|
+
*/
|
|
65
|
+
withObjectId(objectId: string): ISignatureBuilder;
|
|
66
|
+
/**
|
|
67
|
+
* Set certificate's public key oid for the signature.
|
|
68
|
+
*
|
|
69
|
+
* @param publicKeyOid - certificate's public key oid.
|
|
70
|
+
* @returns This instance of ISignatureBuilder for method chaining.
|
|
71
|
+
*/
|
|
72
|
+
withPublicKeyOid(publicKeyOid: string): ISignatureBuilder;
|
|
73
|
+
/**
|
|
74
|
+
* Set cades type of last signature.
|
|
75
|
+
*
|
|
76
|
+
* @param cadesType - cades type.
|
|
77
|
+
* @returns This instance of ISignatureBuilder for method chaining.
|
|
78
|
+
*/
|
|
79
|
+
withLastSignCadesType(cadesType: CadesType): ISignatureBuilder;
|
|
80
|
+
/**
|
|
81
|
+
* Set requirement property for advancement of the signature.
|
|
82
|
+
*
|
|
83
|
+
* @param needAdvancement - signature needs advancement.
|
|
84
|
+
* @returns This instance of ISignatureBuilder for method chaining.
|
|
85
|
+
*/
|
|
86
|
+
withIsAdvancementRequired(needAdvancement: boolean): ISignatureBuilder;
|
|
87
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ObjectCardContext } from "../contexts/object-card-context";
|
|
2
|
+
export declare class AttributeValueChangedEventArgs {
|
|
3
|
+
private readonly _oldValue;
|
|
4
|
+
private readonly _newValue;
|
|
5
|
+
private readonly _context;
|
|
6
|
+
constructor(oldValue: unknown, newValue: unknown, context: ObjectCardContext);
|
|
7
|
+
get oldValue(): unknown;
|
|
8
|
+
get newValue(): unknown;
|
|
9
|
+
get context(): ObjectCardContext;
|
|
10
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './attribute-value-changed-event-args';
|
|
2
|
-
export * from './object-card-handler';
|
|
1
|
+
export * from './attribute-value-changed-event-args';
|
|
2
|
+
export * from './object-card-handler';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ObjectCardContext } from "../contexts/object-card-context";
|
|
2
|
+
import { IAttribute } from "../data";
|
|
3
|
+
import { IAttributeModifier } from "../modifier/attribute-modifier";
|
|
4
|
+
import { AttributeValueChangedEventArgs } from "./attribute-value-changed-event-args";
|
|
5
|
+
/**
|
|
6
|
+
* Enables support for handling changing object attributes in object card
|
|
7
|
+
* @exposedInterface
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class IObjectCardHandler {
|
|
10
|
+
constructor();
|
|
11
|
+
/**
|
|
12
|
+
* Handle show object card
|
|
13
|
+
*
|
|
14
|
+
* @param modifier - Attribute modifier
|
|
15
|
+
* @param context - Context
|
|
16
|
+
*/
|
|
17
|
+
handle(modifier: IAttributeModifier, context: ObjectCardContext): void;
|
|
18
|
+
/**
|
|
19
|
+
* The method called when attribute value has changed
|
|
20
|
+
* @param sender - Changed attribute
|
|
21
|
+
* @param args - Attribute change event args
|
|
22
|
+
* @param modifier - Attribute modifier
|
|
23
|
+
*/
|
|
24
|
+
onValueChanged(sender: IAttribute, args: AttributeValueChangedEventArgs, modifier: IAttributeModifier): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BimElementPanelContext, BimRightPanelContext, DialogContext, ObjectsViewContext, PageContext, SettingsFeatureContext } from "../contexts";
|
|
2
|
+
/**
|
|
3
|
+
* Class that allows to declare the view for the openspace container
|
|
4
|
+
* @exposedInterface
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class IOpenspaceView<TOpenspaceViewContext extends BimElementPanelContext | BimRightPanelContext | ObjectsViewContext | PageContext | SettingsFeatureContext | DialogContext> {
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* The method is called to match this View to the corresponding openspace container
|
|
10
|
+
*
|
|
11
|
+
* Should be identical with corresponding container's `withViewId(id: string)`
|
|
12
|
+
* @returns {string}
|
|
13
|
+
*/
|
|
14
|
+
getViewId(): string;
|
|
15
|
+
/**
|
|
16
|
+
* The method is called just before the openspace container's view is shown
|
|
17
|
+
* @param context - context
|
|
18
|
+
*/
|
|
19
|
+
getView(context: TOpenspaceViewContext): HTMLElement | undefined;
|
|
20
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './page-navigation-section-element.builder';
|
|
2
|
-
export * from './page-navigation-section.builder';
|
|
3
|
-
export * from './page-navigation.builder';
|
|
4
|
-
export * from './page-navigation';
|
|
1
|
+
export * from './page-navigation-section-element.builder';
|
|
2
|
+
export * from './page-navigation-section.builder';
|
|
3
|
+
export * from './page-navigation.builder';
|
|
4
|
+
export * from './page-navigation';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a builder for navigation window section's element
|
|
3
|
+
*/
|
|
4
|
+
export declare abstract class IPageNavigationSectionElementBuilder {
|
|
5
|
+
constructor();
|
|
6
|
+
/**
|
|
7
|
+
* Element's title to be displayed
|
|
8
|
+
* @param title value
|
|
9
|
+
*/
|
|
10
|
+
withTitle(title: string): IPageNavigationSectionElementBuilder;
|
|
11
|
+
/**
|
|
12
|
+
* Element's title to be displayed
|
|
13
|
+
* @param description value
|
|
14
|
+
*/
|
|
15
|
+
withDescription(description: string): IPageNavigationSectionElementBuilder;
|
|
16
|
+
/**
|
|
17
|
+
* Element's icon
|
|
18
|
+
* @param name Icon name
|
|
19
|
+
* @param iconSvg Url of icon or base64 string
|
|
20
|
+
*/
|
|
21
|
+
withIcon(name: string, iconSvg: string): IPageNavigationSectionElementBuilder;
|
|
22
|
+
/**
|
|
23
|
+
* Element's view id
|
|
24
|
+
*
|
|
25
|
+
* Is matched with corresponding IOpenspaceView's `getViewId(): string`
|
|
26
|
+
* @param value - View Id
|
|
27
|
+
*/
|
|
28
|
+
withViewId(value: string): IPageNavigationSectionElementBuilder;
|
|
29
|
+
}
|