@numerum-tech/yeriasdk 1.0.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/README.md +864 -0
- package/dist/core/action-grid-view.d.ts +57 -0
- package/dist/core/action-grid-view.d.ts.map +1 -0
- package/dist/core/action-grid-view.js +112 -0
- package/dist/core/action-grid-view.js.map +1 -0
- package/dist/core/action-list-view.d.ts +39 -0
- package/dist/core/action-list-view.d.ts.map +1 -0
- package/dist/core/action-list-view.js +77 -0
- package/dist/core/action-list-view.js.map +1 -0
- package/dist/core/base/base-action-view.d.ts +82 -0
- package/dist/core/base/base-action-view.d.ts.map +1 -0
- package/dist/core/base/base-action-view.js +143 -0
- package/dist/core/base/base-action-view.js.map +1 -0
- package/dist/core/base-view.d.ts +105 -0
- package/dist/core/base-view.d.ts.map +1 -0
- package/dist/core/base-view.js +426 -0
- package/dist/core/base-view.js.map +1 -0
- package/dist/core/card-view.d.ts +24 -0
- package/dist/core/card-view.d.ts.map +1 -0
- package/dist/core/card-view.js +127 -0
- package/dist/core/card-view.js.map +1 -0
- package/dist/core/carousel-view.d.ts +22 -0
- package/dist/core/carousel-view.d.ts.map +1 -0
- package/dist/core/carousel-view.js +99 -0
- package/dist/core/carousel-view.js.map +1 -0
- package/dist/core/form-view.d.ts +165 -0
- package/dist/core/form-view.d.ts.map +1 -0
- package/dist/core/form-view.js +365 -0
- package/dist/core/form-view.js.map +1 -0
- package/dist/core/jsonapp.d.ts +263 -0
- package/dist/core/jsonapp.d.ts.map +1 -0
- package/dist/core/jsonapp.js +528 -0
- package/dist/core/jsonapp.js.map +1 -0
- package/dist/core/key-store.d.ts +51 -0
- package/dist/core/key-store.d.ts.map +1 -0
- package/dist/core/key-store.js +138 -0
- package/dist/core/key-store.js.map +1 -0
- package/dist/core/map-view.d.ts +45 -0
- package/dist/core/map-view.d.ts.map +1 -0
- package/dist/core/map-view.js +318 -0
- package/dist/core/map-view.js.map +1 -0
- package/dist/core/media-view.d.ts +20 -0
- package/dist/core/media-view.d.ts.map +1 -0
- package/dist/core/media-view.js +75 -0
- package/dist/core/media-view.js.map +1 -0
- package/dist/core/message-view.d.ts +53 -0
- package/dist/core/message-view.d.ts.map +1 -0
- package/dist/core/message-view.js +109 -0
- package/dist/core/message-view.js.map +1 -0
- package/dist/core/notification.d.ts +17 -0
- package/dist/core/notification.d.ts.map +1 -0
- package/dist/core/notification.js +33 -0
- package/dist/core/notification.js.map +1 -0
- package/dist/core/qr-display-view.d.ts +32 -0
- package/dist/core/qr-display-view.d.ts.map +1 -0
- package/dist/core/qr-display-view.js +66 -0
- package/dist/core/qr-display-view.js.map +1 -0
- package/dist/core/qr-scan-view.d.ts +148 -0
- package/dist/core/qr-scan-view.d.ts.map +1 -0
- package/dist/core/qr-scan-view.js +259 -0
- package/dist/core/qr-scan-view.js.map +1 -0
- package/dist/core/reader-view.d.ts +73 -0
- package/dist/core/reader-view.d.ts.map +1 -0
- package/dist/core/reader-view.js +285 -0
- package/dist/core/reader-view.js.map +1 -0
- package/dist/core/timeline-view.d.ts +16 -0
- package/dist/core/timeline-view.d.ts.map +1 -0
- package/dist/core/timeline-view.js +68 -0
- package/dist/core/timeline-view.js.map +1 -0
- package/dist/errors/index.d.ts +276 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +431 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +103 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +576 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +48 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/fileFormats.d.ts +52 -0
- package/dist/utils/fileFormats.d.ts.map +1 -0
- package/dist/utils/fileFormats.js +198 -0
- package/dist/utils/fileFormats.js.map +1 -0
- package/dist/utils/logger.d.ts +38 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +109 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/validators.d.ts +48 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +445 -0
- package/dist/utils/validators.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { BaseActionView } from './base/base-action-view';
|
|
2
|
+
import { ActionConfig } from '../types';
|
|
3
|
+
export interface ActionGridContent {
|
|
4
|
+
title?: string;
|
|
5
|
+
intro?: string;
|
|
6
|
+
actions: ActionConfig[];
|
|
7
|
+
columns?: number;
|
|
8
|
+
spacing?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class ActionGridView extends BaseActionView {
|
|
11
|
+
constructor(viewId: string, title: string, processId?: string);
|
|
12
|
+
/**
|
|
13
|
+
* Définit le titre de la grille d'actions
|
|
14
|
+
*/
|
|
15
|
+
setTitle(title: string): this;
|
|
16
|
+
/**
|
|
17
|
+
* Définit l'introduction de la grille d'actions
|
|
18
|
+
*/
|
|
19
|
+
setIntro(intro: string): this;
|
|
20
|
+
/**
|
|
21
|
+
* Définit le nombre de colonnes
|
|
22
|
+
*/
|
|
23
|
+
setColumns(columns: number): this;
|
|
24
|
+
/**
|
|
25
|
+
* Définit l'espacement entre les éléments
|
|
26
|
+
*/
|
|
27
|
+
setSpacing(spacing: number): this;
|
|
28
|
+
/**
|
|
29
|
+
* Synchronize actions array to content (required by BaseActionView)
|
|
30
|
+
*/
|
|
31
|
+
protected syncActionsToContent(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Surcharge addAction pour synchroniser le content
|
|
34
|
+
*/
|
|
35
|
+
addAction(code: string, title: string, description?: string, thumbnail?: string, disabled?: boolean, metadata?: Record<string, unknown>): this;
|
|
36
|
+
/**
|
|
37
|
+
* Surcharge removeAction pour synchroniser le content
|
|
38
|
+
*/
|
|
39
|
+
removeAction(actionCode: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Surcharge updateAction pour synchroniser le content
|
|
42
|
+
*/
|
|
43
|
+
updateAction(actionCode: string, updates: Partial<ActionConfig>): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Obtient le nombre de colonnes
|
|
46
|
+
*/
|
|
47
|
+
getColumns(): number;
|
|
48
|
+
/**
|
|
49
|
+
* Obtient l'espacement
|
|
50
|
+
*/
|
|
51
|
+
getSpacing(): number;
|
|
52
|
+
/**
|
|
53
|
+
* Vérifie si la grille a des actions
|
|
54
|
+
*/
|
|
55
|
+
hasActions(): boolean;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=action-grid-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-grid-view.d.ts","sourceRoot":"","sources":["../../src/core/action-grid-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAe,SAAQ,cAAc;gBAClC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAoB7D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQjC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQjC;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAItC;;OAEG;IACM,SAAS,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,GAAE,OAAe,EACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,IAAI;IAMP;;OAEG;IACM,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAQlD;;OAEG;IACM,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO;IAQlF;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,UAAU,IAAI,OAAO;CAGxB"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActionGridView = void 0;
|
|
4
|
+
const base_action_view_1 = require("./base/base-action-view");
|
|
5
|
+
const errors_1 = require("../errors");
|
|
6
|
+
class ActionGridView extends base_action_view_1.BaseActionView {
|
|
7
|
+
constructor(viewId, title, processId) {
|
|
8
|
+
super({
|
|
9
|
+
id: viewId,
|
|
10
|
+
type: 'ActionGrid',
|
|
11
|
+
processId,
|
|
12
|
+
metadata: {
|
|
13
|
+
version: '1.0.0',
|
|
14
|
+
createdAt: new Date()
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
this.content = {
|
|
18
|
+
title: title,
|
|
19
|
+
intro: '',
|
|
20
|
+
actions: this.actions, // Référence aux actions de BaseActionView
|
|
21
|
+
columns: 2,
|
|
22
|
+
spacing: 16
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Définit le titre de la grille d'actions
|
|
27
|
+
*/
|
|
28
|
+
setTitle(title) {
|
|
29
|
+
this.content.title = title;
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Définit l'introduction de la grille d'actions
|
|
34
|
+
*/
|
|
35
|
+
setIntro(intro) {
|
|
36
|
+
return this.setIntroText('intro', intro);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Définit le nombre de colonnes
|
|
40
|
+
*/
|
|
41
|
+
setColumns(columns) {
|
|
42
|
+
if (columns < 1 || columns > 6) {
|
|
43
|
+
throw new errors_1.InvalidParameterError('columns', columns, 'Columns must be between 1 and 6');
|
|
44
|
+
}
|
|
45
|
+
this.content.columns = columns;
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Définit l'espacement entre les éléments
|
|
50
|
+
*/
|
|
51
|
+
setSpacing(spacing) {
|
|
52
|
+
if (spacing < 0) {
|
|
53
|
+
throw new errors_1.InvalidParameterError('spacing', spacing, 'Spacing must be non-negative');
|
|
54
|
+
}
|
|
55
|
+
this.content.spacing = spacing;
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Synchronize actions array to content (required by BaseActionView)
|
|
60
|
+
*/
|
|
61
|
+
syncActionsToContent() {
|
|
62
|
+
this.content.actions = this.actions;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Surcharge addAction pour synchroniser le content
|
|
66
|
+
*/
|
|
67
|
+
addAction(code, title, description, thumbnail, disabled = false, metadata) {
|
|
68
|
+
super.addAction(code, title, description, thumbnail, disabled, metadata);
|
|
69
|
+
this.syncActionsToContent();
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Surcharge removeAction pour synchroniser le content
|
|
74
|
+
*/
|
|
75
|
+
removeAction(actionCode) {
|
|
76
|
+
const result = super.removeAction(actionCode);
|
|
77
|
+
if (result) {
|
|
78
|
+
this.syncActionsToContent();
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Surcharge updateAction pour synchroniser le content
|
|
84
|
+
*/
|
|
85
|
+
updateAction(actionCode, updates) {
|
|
86
|
+
const result = super.updateAction(actionCode, updates);
|
|
87
|
+
if (result) {
|
|
88
|
+
this.syncActionsToContent();
|
|
89
|
+
}
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Obtient le nombre de colonnes
|
|
94
|
+
*/
|
|
95
|
+
getColumns() {
|
|
96
|
+
return this.content.columns || 2;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Obtient l'espacement
|
|
100
|
+
*/
|
|
101
|
+
getSpacing() {
|
|
102
|
+
return this.content.spacing || 16;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Vérifie si la grille a des actions
|
|
106
|
+
*/
|
|
107
|
+
hasActions() {
|
|
108
|
+
return this.actions.length > 0;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.ActionGridView = ActionGridView;
|
|
112
|
+
//# sourceMappingURL=action-grid-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-grid-view.js","sourceRoot":"","sources":["../../src/core/action-grid-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BaseActionView } from './base/base-action-view';
|
|
2
|
+
import { ActionConfig } from '../types';
|
|
3
|
+
export interface ActionListContent {
|
|
4
|
+
title?: string;
|
|
5
|
+
intro?: string;
|
|
6
|
+
actions: ActionConfig[];
|
|
7
|
+
}
|
|
8
|
+
export declare class ActionListView extends BaseActionView {
|
|
9
|
+
constructor(viewId: string, title: string, processId?: string);
|
|
10
|
+
/**
|
|
11
|
+
* Définit le titre de la liste d'actions
|
|
12
|
+
*/
|
|
13
|
+
setTitle(title: string): this;
|
|
14
|
+
/**
|
|
15
|
+
* Définit l'introduction de la liste d'actions
|
|
16
|
+
*/
|
|
17
|
+
setIntro(intro: string): this;
|
|
18
|
+
/**
|
|
19
|
+
* Synchronize actions array to content (required by BaseActionView)
|
|
20
|
+
*/
|
|
21
|
+
protected syncActionsToContent(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Surcharge addAction pour synchroniser le content
|
|
24
|
+
*/
|
|
25
|
+
addAction(code: string, title: string, description?: string, thumbnail?: string, disabled?: boolean, metadata?: Record<string, unknown>): this;
|
|
26
|
+
/**
|
|
27
|
+
* Surcharge removeAction pour synchroniser le content
|
|
28
|
+
*/
|
|
29
|
+
removeAction(actionCode: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Surcharge updateAction pour synchroniser le content
|
|
32
|
+
*/
|
|
33
|
+
updateAction(actionCode: string, updates: Partial<ActionConfig>): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Vérifie si la liste a des actions
|
|
36
|
+
*/
|
|
37
|
+
hasActions(): boolean;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=action-list-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-list-view.d.ts","sourceRoot":"","sources":["../../src/core/action-list-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,qBAAa,cAAe,SAAQ,cAAc;gBAClC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAkB7D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAItC;;OAEG;IACM,SAAS,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,GAAE,OAAe,EACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,IAAI;IAMP;;OAEG;IACM,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAQlD;;OAEG;IACM,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO;IAQlF;;OAEG;IACH,UAAU,IAAI,OAAO;CAGxB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActionListView = void 0;
|
|
4
|
+
const base_action_view_1 = require("./base/base-action-view");
|
|
5
|
+
class ActionListView extends base_action_view_1.BaseActionView {
|
|
6
|
+
constructor(viewId, title, processId) {
|
|
7
|
+
super({
|
|
8
|
+
id: viewId,
|
|
9
|
+
type: 'ActionList',
|
|
10
|
+
processId,
|
|
11
|
+
metadata: {
|
|
12
|
+
version: '1.0.0',
|
|
13
|
+
createdAt: new Date()
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
this.content = {
|
|
17
|
+
title: title,
|
|
18
|
+
intro: '',
|
|
19
|
+
actions: this.actions // Référence aux actions de BaseActionView
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Définit le titre de la liste d'actions
|
|
24
|
+
*/
|
|
25
|
+
setTitle(title) {
|
|
26
|
+
this.content.title = title;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Définit l'introduction de la liste d'actions
|
|
31
|
+
*/
|
|
32
|
+
setIntro(intro) {
|
|
33
|
+
return this.setIntroText('intro', intro);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Synchronize actions array to content (required by BaseActionView)
|
|
37
|
+
*/
|
|
38
|
+
syncActionsToContent() {
|
|
39
|
+
this.content.actions = this.actions;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Surcharge addAction pour synchroniser le content
|
|
43
|
+
*/
|
|
44
|
+
addAction(code, title, description, thumbnail, disabled = false, metadata) {
|
|
45
|
+
super.addAction(code, title, description, thumbnail, disabled, metadata);
|
|
46
|
+
this.syncActionsToContent();
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Surcharge removeAction pour synchroniser le content
|
|
51
|
+
*/
|
|
52
|
+
removeAction(actionCode) {
|
|
53
|
+
const result = super.removeAction(actionCode);
|
|
54
|
+
if (result) {
|
|
55
|
+
this.syncActionsToContent();
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Surcharge updateAction pour synchroniser le content
|
|
61
|
+
*/
|
|
62
|
+
updateAction(actionCode, updates) {
|
|
63
|
+
const result = super.updateAction(actionCode, updates);
|
|
64
|
+
if (result) {
|
|
65
|
+
this.syncActionsToContent();
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Vérifie si la liste a des actions
|
|
71
|
+
*/
|
|
72
|
+
hasActions() {
|
|
73
|
+
return this.actions.length > 0;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.ActionListView = ActionListView;
|
|
77
|
+
//# sourceMappingURL=action-list-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-list-view.js","sourceRoot":"","sources":["../../src/core/action-list-view.ts"],"names":[],"mappings":";;;AAAA,8DAAyD;AASzD,MAAa,cAAe,SAAQ,iCAAc;IAC9C,YAAY,MAAc,EAAE,KAAa,EAAE,SAAkB;QACzD,KAAK,CAAC;YACF,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,YAAY;YAClB,SAAS;YACT,QAAQ,EAAE;gBACN,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE;aACxB;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG;YACX,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,IAAI,CAAC,OAAO,CAAE,0CAA0C;SAC/C,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAa;QACjB,IAAI,CAAC,OAA6B,CAAC,KAAK,GAAG,KAAK,CAAC;QAClD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACO,oBAAoB;QACzB,IAAI,CAAC,OAA6B,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC/D,CAAC;IAED;;OAEG;IACM,SAAS,CACd,IAAY,EACZ,KAAa,EACb,WAAoB,EACpB,SAAkB,EAClB,WAAoB,KAAK,EACzB,QAAkC;QAElC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACM,YAAY,CAAC,UAAkB;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACM,YAAY,CAAC,UAAkB,EAAE,OAA8B;QACpE,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,CAAC;CACJ;AArFD,wCAqFC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { BaseView } from '../base-view';
|
|
2
|
+
import { ActionConfig } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Classe de base pour les vues d'actions (ActionList et ActionGrid)
|
|
5
|
+
* Factoriser le code commun entre ActionListView et ActionGridView
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class BaseActionView extends BaseView {
|
|
8
|
+
protected actions: ActionConfig[];
|
|
9
|
+
/**
|
|
10
|
+
* Ajoute une action
|
|
11
|
+
*/
|
|
12
|
+
addAction(code: string, title: string, description?: string, thumbnail?: string, disabled?: boolean, metadata?: Record<string, unknown>): this;
|
|
13
|
+
/**
|
|
14
|
+
* Ajoute plusieurs actions en une fois
|
|
15
|
+
*/
|
|
16
|
+
addActions(actions: Array<{
|
|
17
|
+
code: string;
|
|
18
|
+
title: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
thumbnail?: string;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
metadata?: Record<string, unknown>;
|
|
23
|
+
}>): this;
|
|
24
|
+
/**
|
|
25
|
+
* Supprime une action par son code
|
|
26
|
+
*/
|
|
27
|
+
removeAction(actionCode: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Met à jour une action existante
|
|
30
|
+
*/
|
|
31
|
+
updateAction(actionCode: string, updates: Partial<ActionConfig>): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Obtient une action par son code
|
|
34
|
+
*/
|
|
35
|
+
getAction(actionCode: string): ActionConfig | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Obtient toutes les actions
|
|
38
|
+
*/
|
|
39
|
+
getActions(): ActionConfig[];
|
|
40
|
+
/**
|
|
41
|
+
* Obtient les actions actives (non désactivées)
|
|
42
|
+
*/
|
|
43
|
+
getActiveActions(): ActionConfig[];
|
|
44
|
+
/**
|
|
45
|
+
* Obtient le nombre d'actions
|
|
46
|
+
*/
|
|
47
|
+
getActionCount(): number;
|
|
48
|
+
/**
|
|
49
|
+
* Vérifie si une action existe
|
|
50
|
+
*/
|
|
51
|
+
hasAction(actionCode: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Vide toutes les actions
|
|
54
|
+
*/
|
|
55
|
+
clearActions(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Abstract method to sync actions array to content
|
|
58
|
+
* Child classes must implement this to update their specific content type
|
|
59
|
+
*/
|
|
60
|
+
protected abstract syncActionsToContent(): void;
|
|
61
|
+
/**
|
|
62
|
+
* Filtre les actions selon un critère
|
|
63
|
+
*/
|
|
64
|
+
filterActions(predicate: (action: ActionConfig) => boolean): ActionConfig[];
|
|
65
|
+
/**
|
|
66
|
+
* Trie les actions selon un critère personnalisé
|
|
67
|
+
*/
|
|
68
|
+
sortActions(compareFn: (a: ActionConfig, b: ActionConfig) => number): this;
|
|
69
|
+
/**
|
|
70
|
+
* Trie les actions par titre (ordre alphab étique)
|
|
71
|
+
*/
|
|
72
|
+
sortByTitle(ascending?: boolean): this;
|
|
73
|
+
/**
|
|
74
|
+
* Désactive toutes les actions
|
|
75
|
+
*/
|
|
76
|
+
disableAllActions(): this;
|
|
77
|
+
/**
|
|
78
|
+
* Active toutes les actions
|
|
79
|
+
*/
|
|
80
|
+
enableAllActions(): this;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=base-action-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-action-view.d.ts","sourceRoot":"","sources":["../../../src/core/base/base-action-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C;;;GAGG;AACH,8BAAsB,cAAe,SAAQ,QAAQ;IACjD,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,CAAM;IAEvC;;OAEG;IACH,SAAS,CACL,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,GAAE,OAAe,EACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,IAAI;IAkBP;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,CAAC,GAAG,IAAI;IAcT;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAWzC;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO;IAWzE;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIvD;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;OAEG;IACH,gBAAgB,IAAI,YAAY,EAAE;IAIlC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,IAAI;IAE/C;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,GAAG,YAAY,EAAE;IAI3E;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,KAAK,MAAM,GAAG,IAAI;IAM1E;;OAEG;IACH,WAAW,CAAC,SAAS,GAAE,OAAc,GAAG,IAAI;IAO5C;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAOzB;;OAEG;IACH,gBAAgB,IAAI,IAAI;CAM3B"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseActionView = void 0;
|
|
4
|
+
const base_view_1 = require("../base-view");
|
|
5
|
+
const errors_1 = require("../../errors");
|
|
6
|
+
/**
|
|
7
|
+
* Classe de base pour les vues d'actions (ActionList et ActionGrid)
|
|
8
|
+
* Factoriser le code commun entre ActionListView et ActionGridView
|
|
9
|
+
*/
|
|
10
|
+
class BaseActionView extends base_view_1.BaseView {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.actions = [];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Ajoute une action
|
|
17
|
+
*/
|
|
18
|
+
addAction(code, title, description, thumbnail, disabled = false, metadata) {
|
|
19
|
+
if (!code || !title) {
|
|
20
|
+
throw new errors_1.MissingRequiredParameterError('code and title');
|
|
21
|
+
}
|
|
22
|
+
const action = {
|
|
23
|
+
code,
|
|
24
|
+
title,
|
|
25
|
+
desc: description,
|
|
26
|
+
thumbnail,
|
|
27
|
+
disabled,
|
|
28
|
+
metadata
|
|
29
|
+
};
|
|
30
|
+
this.actions.push(action);
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Ajoute plusieurs actions en une fois
|
|
35
|
+
*/
|
|
36
|
+
addActions(actions) {
|
|
37
|
+
actions.forEach(action => {
|
|
38
|
+
this.addAction(action.code, action.title, action.description, action.thumbnail, action.disabled, action.metadata);
|
|
39
|
+
});
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Supprime une action par son code
|
|
44
|
+
*/
|
|
45
|
+
removeAction(actionCode) {
|
|
46
|
+
const index = this.actions.findIndex(action => action.code === actionCode);
|
|
47
|
+
if (index !== -1) {
|
|
48
|
+
this.actions.splice(index, 1);
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Met à jour une action existante
|
|
55
|
+
*/
|
|
56
|
+
updateAction(actionCode, updates) {
|
|
57
|
+
const action = this.actions.find(a => a.code === actionCode);
|
|
58
|
+
if (action) {
|
|
59
|
+
Object.assign(action, updates);
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Obtient une action par son code
|
|
66
|
+
*/
|
|
67
|
+
getAction(actionCode) {
|
|
68
|
+
return this.actions.find(action => action.code === actionCode);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Obtient toutes les actions
|
|
72
|
+
*/
|
|
73
|
+
getActions() {
|
|
74
|
+
return [...this.actions];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Obtient les actions actives (non désactivées)
|
|
78
|
+
*/
|
|
79
|
+
getActiveActions() {
|
|
80
|
+
return this.actions.filter(action => !action.disabled);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Obtient le nombre d'actions
|
|
84
|
+
*/
|
|
85
|
+
getActionCount() {
|
|
86
|
+
return this.actions.length;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Vérifie si une action existe
|
|
90
|
+
*/
|
|
91
|
+
hasAction(actionCode) {
|
|
92
|
+
return this.actions.some(action => action.code === actionCode);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Vide toutes les actions
|
|
96
|
+
*/
|
|
97
|
+
clearActions() {
|
|
98
|
+
this.actions = [];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Filtre les actions selon un critère
|
|
102
|
+
*/
|
|
103
|
+
filterActions(predicate) {
|
|
104
|
+
return this.actions.filter(predicate);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Trie les actions selon un critère personnalisé
|
|
108
|
+
*/
|
|
109
|
+
sortActions(compareFn) {
|
|
110
|
+
this.actions.sort(compareFn);
|
|
111
|
+
this.syncActionsToContent();
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Trie les actions par titre (ordre alphab étique)
|
|
116
|
+
*/
|
|
117
|
+
sortByTitle(ascending = true) {
|
|
118
|
+
return this.sortActions((a, b) => {
|
|
119
|
+
const comparison = a.title.localeCompare(b.title);
|
|
120
|
+
return ascending ? comparison : -comparison;
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Désactive toutes les actions
|
|
125
|
+
*/
|
|
126
|
+
disableAllActions() {
|
|
127
|
+
this.actions.forEach(action => {
|
|
128
|
+
action.disabled = true;
|
|
129
|
+
});
|
|
130
|
+
return this;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Active toutes les actions
|
|
134
|
+
*/
|
|
135
|
+
enableAllActions() {
|
|
136
|
+
this.actions.forEach(action => {
|
|
137
|
+
action.disabled = false;
|
|
138
|
+
});
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
exports.BaseActionView = BaseActionView;
|
|
143
|
+
//# sourceMappingURL=base-action-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-action-view.js","sourceRoot":"","sources":["../../../src/core/base/base-action-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { BaseViewConfig, ViewType, ValidationResult, ViewState, NavigationConfig, ProcessContext } from '../types';
|
|
2
|
+
export declare abstract class BaseView {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly type: ViewType;
|
|
5
|
+
content: unknown;
|
|
6
|
+
protected state: ViewState;
|
|
7
|
+
protected metadata?: BaseViewConfig['metadata'];
|
|
8
|
+
protected navigation?: NavigationConfig;
|
|
9
|
+
protected processContext?: ProcessContext;
|
|
10
|
+
constructor(config: BaseViewConfig);
|
|
11
|
+
/**
|
|
12
|
+
* Valide la vue avant de la servir
|
|
13
|
+
*/
|
|
14
|
+
protected validate(): ValidationResult;
|
|
15
|
+
/**
|
|
16
|
+
* Sert la vue avec validation
|
|
17
|
+
*/
|
|
18
|
+
serve(): Record<string, unknown>;
|
|
19
|
+
/**
|
|
20
|
+
* Retourne la représentation JSON de la vue
|
|
21
|
+
*/
|
|
22
|
+
toJSON(): Record<string, unknown>;
|
|
23
|
+
/**
|
|
24
|
+
* Met à jour l'état de la vue
|
|
25
|
+
*/
|
|
26
|
+
setState(key: string, value: unknown): void;
|
|
27
|
+
/**
|
|
28
|
+
* Obtient une valeur de l'état
|
|
29
|
+
*/
|
|
30
|
+
getState(key: string): unknown;
|
|
31
|
+
/**
|
|
32
|
+
* Clone la vue
|
|
33
|
+
* Uses structuredClone for efficient deep cloning when available, falls back to JSON serialization
|
|
34
|
+
*/
|
|
35
|
+
clone(): this;
|
|
36
|
+
/**
|
|
37
|
+
* Vérifie si la vue est valide
|
|
38
|
+
*/
|
|
39
|
+
isValid(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Valide la vue et retourne le résultat
|
|
42
|
+
*/
|
|
43
|
+
validateView(): ValidationResult;
|
|
44
|
+
/**
|
|
45
|
+
* Obtient les erreurs de validation
|
|
46
|
+
*/
|
|
47
|
+
getValidationErrors(): string[];
|
|
48
|
+
/**
|
|
49
|
+
* Obtient les avertissements de validation
|
|
50
|
+
*/
|
|
51
|
+
getValidationWarnings(): string[];
|
|
52
|
+
/**
|
|
53
|
+
* Met à jour les métadonnées
|
|
54
|
+
*/
|
|
55
|
+
updateMetadata(metadata: Partial<BaseViewConfig['metadata']>): void;
|
|
56
|
+
/**
|
|
57
|
+
* Obtient les métadonnées
|
|
58
|
+
*/
|
|
59
|
+
getMetadata(): BaseViewConfig['metadata'];
|
|
60
|
+
/**
|
|
61
|
+
* Protected helper to set intro/note text with strict validation
|
|
62
|
+
* Child views can expose this as setIntro(), setNote(), etc.
|
|
63
|
+
* @param fieldName - Name of the content field to set (e.g., 'intro', 'note')
|
|
64
|
+
* @param value - Text value to set
|
|
65
|
+
* @throws InvalidParameterError if value is empty or null
|
|
66
|
+
*/
|
|
67
|
+
protected setIntroText(fieldName: string, value: string): this;
|
|
68
|
+
/**
|
|
69
|
+
* Définit la vue suivante (navigation)
|
|
70
|
+
* Validates URL to prevent open redirects and malicious links
|
|
71
|
+
*/
|
|
72
|
+
setNext(url: string): this;
|
|
73
|
+
/**
|
|
74
|
+
* Définit la vue précédente (navigation)
|
|
75
|
+
* Validates URL to prevent open redirects and malicious links
|
|
76
|
+
*/
|
|
77
|
+
setPrev(url: string): this;
|
|
78
|
+
/**
|
|
79
|
+
* Définit le contexte de processus pour cette vue
|
|
80
|
+
* @param processId - Identifiant unique du processus
|
|
81
|
+
* @param context - Contexte additionnel (étapes, nom, etc.)
|
|
82
|
+
*/
|
|
83
|
+
setProcess(processId: string, context?: Partial<Omit<ProcessContext, 'processId'>>): this;
|
|
84
|
+
/**
|
|
85
|
+
* Obtient le contexte de processus
|
|
86
|
+
*/
|
|
87
|
+
getProcessContext(): ProcessContext | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* Obtient l'identifiant du processus (raccourci)
|
|
90
|
+
*/
|
|
91
|
+
getProcessId(): string | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* Vérifie si cette vue fait partie d'un processus
|
|
94
|
+
*/
|
|
95
|
+
hasProcess(): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Met à jour le contexte de processus
|
|
98
|
+
*/
|
|
99
|
+
updateProcessContext(updates: Partial<ProcessContext>): this;
|
|
100
|
+
/**
|
|
101
|
+
* Nettoie les ressources de la vue
|
|
102
|
+
*/
|
|
103
|
+
destroy(): void;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=base-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-view.d.ts","sourceRoot":"","sources":["../../src/core/base-view.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,cAAc,EAEjB,MAAM,UAAU,CAAC;AAIlB,8BAAsB,QAAQ;IAC1B,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,QAAQ,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,KAAK,EAAE,SAAS,CAAM;IAChC,SAAS,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAChD,SAAS,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IACxC,SAAS,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;gBAE9B,MAAM,EAAE,cAAc;IAYlC;;OAEG;IACH,SAAS,CAAC,QAAQ,IAAI,gBAAgB;IAmMtC;;OAEG;IACH,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAuChC;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIjC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAI3C;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI9B;;;OAGG;IACH,KAAK,IAAI,IAAI;IAoCb;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,YAAY,IAAI,gBAAgB;IAIhC;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAIjC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI;IAQnE;;OAEG;IACH,WAAW,IAAI,cAAc,CAAC,UAAU,CAAC;IAIzC;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAc9D;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAoB1B;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAoB1B;;;;OAIG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,GAAG,IAAI;IASzF;;OAEG;IACH,iBAAiB,IAAI,cAAc,GAAG,SAAS;IAI/C;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAa5D;;OAEG;IACH,OAAO,IAAI,IAAI;CAGlB"}
|