@acorex/modules 18.2.1 → 18.2.2
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/application-management/lib/const.d.ts +5 -0
- package/application-management/lib/menu.provider.d.ts +3 -3
- package/auth/lib/auth.config.d.ts +6 -0
- package/auth/lib/login/password/password.component.d.ts +1 -0
- package/auth/lib/menu.provider.d.ts +2 -2
- package/conversation/index.d.ts +5 -3
- package/conversation/lib/const.d.ts +7 -0
- package/conversation/lib/conversation.module.d.ts +1 -4
- package/conversation/lib/entities/chat/chat.module.d.ts +10 -4
- package/conversation/lib/entities/chat/chat.service.d.ts +14 -0
- package/conversation/lib/entities/chat/chat.type.d.ts +2 -1
- package/conversation/lib/entities/chat/components/chat-item/chat-item.component.d.ts +11 -11
- package/conversation/lib/entities/chat/components/chat-item-header/chat-item-header.component.d.ts +8 -1
- package/conversation/lib/entities/chat/components/chat-preview/chat-preview.component.d.ts +7 -4
- package/conversation/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.d.ts +7 -0
- package/conversation/lib/entities/chat/pages/chat/chat.component.d.ts +19 -1
- package/conversation/lib/entities/comments/comments.service.d.ts +3 -3
- package/esm2022/application-management/lib/const.mjs +6 -0
- package/esm2022/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.mjs +2 -2
- package/esm2022/application-management/lib/menu.provider.mjs +17 -19
- package/esm2022/application-management/lib/module-designer/module-designer.component.mjs +3 -3
- package/esm2022/auth/lib/account/app-chooser/app-chooser.component.mjs +3 -3
- package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser.component.mjs +3 -3
- package/esm2022/auth/lib/auth.config.mjs +1 -1
- package/esm2022/auth/lib/forgot/password/password.component.mjs +2 -2
- package/esm2022/auth/lib/login/password/password.component.mjs +6 -3
- package/esm2022/auth/lib/menu.provider.mjs +28 -35
- package/esm2022/auth/lib/two-factor/two-factor-code/two-factor-code.component.mjs +2 -2
- package/esm2022/backend/lib/data/api/data-provider.mjs +7 -2
- package/esm2022/conversation/index.mjs +6 -4
- package/esm2022/conversation/lib/const.mjs +8 -0
- package/esm2022/conversation/lib/conversation.module.mjs +5 -10
- package/esm2022/conversation/lib/entities/chat/chat.module.mjs +64 -13
- package/esm2022/conversation/lib/entities/chat/chat.service.mjs +23 -0
- package/esm2022/conversation/lib/entities/chat/chat.type.mjs +1 -1
- package/esm2022/conversation/lib/entities/chat/components/chat-item/chat-item.component.mjs +33 -15
- package/esm2022/conversation/lib/entities/chat/components/chat-item-header/chat-item-header.component.mjs +18 -5
- package/esm2022/conversation/lib/entities/chat/components/chat-preview/chat-preview.component.mjs +34 -147
- package/esm2022/conversation/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.mjs +22 -0
- package/esm2022/conversation/lib/entities/chat/pages/chat/chat.component.mjs +73 -8
- package/esm2022/conversation/lib/entities/comments/comment.module.mjs +4 -4
- package/esm2022/conversation/lib/entities/comments/comments.service.mjs +7 -6
- package/esm2022/conversation/lib/entities/comments/pages/comment-list-view.component.mjs +2 -3
- package/esm2022/form-template-management/lib/components/widgets/template-designer/index.mjs +3 -0
- package/esm2022/form-template-management/lib/components/widgets/template-designer/template-designer-widget-view.component.mjs +44 -0
- package/esm2022/form-template-management/lib/components/widgets/template-designer/template-designer-widget.config.mjs +23 -0
- package/esm2022/form-template-management/lib/const.mjs +2 -2
- package/esm2022/form-template-management/lib/entities/category/category.entity.mjs +13 -13
- package/esm2022/form-template-management/lib/entities/template/template.entity.mjs +208 -15
- package/esm2022/form-template-management/lib/entities/template/template.types.mjs +1 -1
- package/esm2022/form-template-management/lib/form-template-management.module.mjs +60 -4
- package/esm2022/form-template-management/lib/menu.provider.mjs +16 -29
- package/esm2022/form-template-management/lib/pages/designer/designer.page.mjs +9 -4
- package/esm2022/form-template-management/lib/services/designer-connector.service.mjs +33 -0
- package/esm2022/form-template-management/lib/services/template.provider.mjs +31 -0
- package/esm2022/form-template-management/lib/workflows/create-template.workflow.mjs +40 -0
- package/esm2022/form-template-management/lib/workflows/design-template.workflow.mjs +32 -0
- package/esm2022/localization-management/lib/const.mjs +9 -0
- package/esm2022/localization-management/lib/menu.provider.mjs +33 -35
- package/esm2022/notification-management/lib/admin-notification-slot/admin-notification-item/admin-notification-item.component.mjs +3 -3
- package/esm2022/notification-management/lib/const.mjs +9 -0
- package/esm2022/notification-management/lib/entities/my-notification.mjs +5 -5
- package/esm2022/notification-management/lib/entities/notification-template.entity.mjs +4 -4
- package/esm2022/notification-management/lib/entities/notification.entity.mjs +4 -4
- package/esm2022/notification-management/lib/menu.provider.mjs +39 -37
- package/esm2022/platform-management/lib/common/country/country.entity.mjs +2 -2
- package/esm2022/platform-management/lib/common/province/province.entity.mjs +8 -8
- package/esm2022/platform-management/lib/const.mjs +12 -0
- package/esm2022/platform-management/lib/global-variables/entities/global-variable.entity.mjs +5 -4
- package/esm2022/platform-management/lib/global-variables/entity.loader.mjs +8 -11
- package/esm2022/platform-management/lib/menu.provider.mjs +53 -47
- package/esm2022/setting-management/acorex-modules-setting-management.mjs +5 -0
- package/esm2022/setting-management/index.mjs +5 -0
- package/esm2022/setting-management/lib/const.mjs +7 -0
- package/esm2022/setting-management/lib/entities/index.mjs +2 -0
- package/esm2022/setting-management/lib/entities/setting/index.mjs +5 -0
- package/esm2022/setting-management/lib/entities/setting/setting.entity.mjs +244 -0
- package/esm2022/setting-management/lib/entities/setting/setting.module.mjs +28 -0
- package/esm2022/setting-management/lib/entities/setting/setting.service.mjs +17 -0
- package/esm2022/setting-management/lib/entities/setting/setting.types.mjs +2 -0
- package/esm2022/setting-management/lib/entity.provider.mjs +25 -0
- package/esm2022/setting-management/lib/menu.provider.mjs +32 -0
- package/esm2022/setting-management/lib/setting-management.module.mjs +44 -0
- package/esm2022/text-template-management/acorex-modules-text-template-management.mjs +5 -0
- package/esm2022/text-template-management/index.mjs +6 -0
- package/esm2022/text-template-management/lib/const.mjs +8 -0
- package/esm2022/text-template-management/lib/entities/category/category.entity.mjs +257 -0
- package/esm2022/text-template-management/lib/entities/category/category.module.mjs +28 -0
- package/esm2022/text-template-management/lib/entities/category/category.service.mjs +17 -0
- package/esm2022/text-template-management/lib/entities/category/category.types.mjs +2 -0
- package/esm2022/text-template-management/lib/entities/category/index.mjs +5 -0
- package/esm2022/text-template-management/lib/entities/index.mjs +3 -0
- package/esm2022/text-template-management/lib/entities/template/index.mjs +5 -0
- package/esm2022/text-template-management/lib/entities/template/template.entity.mjs +405 -0
- package/esm2022/text-template-management/lib/entities/template/template.module.mjs +28 -0
- package/esm2022/text-template-management/lib/entities/template/template.service.mjs +17 -0
- package/esm2022/text-template-management/lib/entities/template/template.types.mjs +2 -0
- package/esm2022/text-template-management/lib/entity.provider.mjs +29 -0
- package/esm2022/text-template-management/lib/menu.provider.mjs +37 -0
- package/esm2022/text-template-management/lib/setting.provider.mjs +48 -0
- package/esm2022/text-template-management/lib/text-template-management.module.mjs +56 -0
- package/fesm2022/{acorex-modules-application-management-module-designer.component-CaR_HZfL.mjs → acorex-modules-application-management-module-designer.component-DjRdIBQt.mjs} +4 -4
- package/fesm2022/{acorex-modules-application-management-module-designer.component-CaR_HZfL.mjs.map → acorex-modules-application-management-module-designer.component-DjRdIBQt.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +26 -23
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-BVOt-gis.mjs → acorex-modules-auth-acorex-modules-auth-Chw_5AKM.mjs} +37 -44
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-Chw_5AKM.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-DhPEtLuK.mjs → acorex-modules-auth-app-chooser.component-DN04Uoqa.mjs} +5 -5
- package/fesm2022/acorex-modules-auth-app-chooser.component-DN04Uoqa.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-login.module-sFVL-lYB.mjs → acorex-modules-auth-login.module-Bir7SJ8b.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-sFVL-lYB.mjs.map → acorex-modules-auth-login.module-Bir7SJ8b.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-Bnt5qiio.mjs → acorex-modules-auth-master.layout-DwijDvUp.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-master.layout-Bnt5qiio.mjs.map → acorex-modules-auth-master.layout-DwijDvUp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-ClaRp38G.mjs → acorex-modules-auth-password.component-C1S8V4Bw.mjs} +9 -6
- package/fesm2022/acorex-modules-auth-password.component-C1S8V4Bw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-password.component-BXL-aLTx.mjs → acorex-modules-auth-password.component-CuLQNJ-W.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-password.component-BXL-aLTx.mjs.map → acorex-modules-auth-password.component-CuLQNJ-W.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-MDneFw2m.mjs → acorex-modules-auth-routes-ILpWODmz.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-MDneFw2m.mjs.map → acorex-modules-auth-routes-ILpWODmz.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-6qDoCUBo.mjs +83 -0
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-6qDoCUBo.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-B_7l39pX.mjs → acorex-modules-auth-two-factor-code.component-BJKmvI7y.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-B_7l39pX.mjs.map → acorex-modules-auth-two-factor-code.component-BJKmvI7y.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-BHulbf0N.mjs → acorex-modules-auth-two-factor.module-bgwR1LBc.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor.module-BHulbf0N.mjs.map → acorex-modules-auth-two-factor.module-bgwR1LBc.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-backend.mjs +7 -2
- package/fesm2022/acorex-modules-backend.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +285 -230
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/{acorex-modules-form-template-management-designer.page-DC18KFvK.mjs → acorex-modules-form-template-management-designer.page-NhIPhsRs.mjs} +9 -4
- package/fesm2022/acorex-modules-form-template-management-designer.page-NhIPhsRs.mjs.map +1 -0
- package/fesm2022/acorex-modules-form-template-management.mjs +486 -64
- package/fesm2022/acorex-modules-form-template-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-localization-management.mjs +41 -35
- package/fesm2022/acorex-modules-localization-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +59 -51
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +81 -69
- package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-setting-management.mjs +393 -0
- package/fesm2022/acorex-modules-setting-management.mjs.map +1 -0
- package/fesm2022/{acorex-modules-template-management.mjs → acorex-modules-text-template-management.mjs} +275 -502
- package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -0
- package/form-template-management/lib/components/widgets/template-designer/index.d.ts +2 -0
- package/form-template-management/lib/components/widgets/template-designer/template-designer-widget-view.component.d.ts +8 -0
- package/form-template-management/lib/components/widgets/template-designer/template-designer-widget.config.d.ts +7 -0
- package/form-template-management/lib/entities/template/template.types.d.ts +2 -0
- package/form-template-management/lib/form-template-management.module.d.ts +3 -1
- package/form-template-management/lib/menu.provider.d.ts +2 -2
- package/form-template-management/lib/pages/designer/designer.page.d.ts +2 -0
- package/form-template-management/lib/services/designer-connector.service.d.ts +7 -0
- package/form-template-management/lib/services/template.provider.d.ts +8 -0
- package/form-template-management/lib/workflows/create-template.workflow.d.ts +2 -0
- package/form-template-management/lib/workflows/design-template.workflow.d.ts +9 -0
- package/localization-management/lib/const.d.ts +8 -0
- package/localization-management/lib/menu.provider.d.ts +3 -3
- package/notification-management/lib/const.d.ts +8 -0
- package/notification-management/lib/menu.provider.d.ts +3 -2
- package/package.json +32 -32
- package/platform-management/lib/const.d.ts +11 -0
- package/platform-management/lib/menu.provider.d.ts +3 -3
- package/setting-management/README.md +3 -0
- package/setting-management/index.d.ts +4 -0
- package/setting-management/lib/const.d.ts +6 -0
- package/setting-management/lib/entities/index.d.ts +1 -0
- package/setting-management/lib/entities/setting/index.d.ts +4 -0
- package/{template-management/lib/entities/text-template.entity.d.ts → setting-management/lib/entities/setting/setting.entity.d.ts} +1 -1
- package/setting-management/lib/entities/setting/setting.module.d.ts +6 -0
- package/setting-management/lib/entities/setting/setting.service.d.ts +10 -0
- package/setting-management/lib/entities/setting/setting.types.d.ts +5 -0
- package/setting-management/lib/entity.provider.d.ts +9 -0
- package/setting-management/lib/menu.provider.d.ts +5 -0
- package/setting-management/lib/setting-management.module.d.ts +7 -0
- package/text-template-management/README.md +3 -0
- package/text-template-management/index.d.ts +5 -0
- package/text-template-management/lib/const.d.ts +7 -0
- package/text-template-management/lib/entities/category/category.entity.d.ts +3 -0
- package/text-template-management/lib/entities/category/category.module.d.ts +6 -0
- package/text-template-management/lib/entities/category/category.service.d.ts +10 -0
- package/text-template-management/lib/entities/category/category.types.d.ts +5 -0
- package/text-template-management/lib/entities/category/index.d.ts +4 -0
- package/text-template-management/lib/entities/index.d.ts +2 -0
- package/text-template-management/lib/entities/template/index.d.ts +4 -0
- package/text-template-management/lib/entities/template/template.entity.d.ts +3 -0
- package/text-template-management/lib/entities/template/template.module.d.ts +6 -0
- package/text-template-management/lib/entities/template/template.service.d.ts +10 -0
- package/text-template-management/lib/entities/template/template.types.d.ts +9 -0
- package/text-template-management/lib/entity.provider.d.ts +9 -0
- package/text-template-management/lib/menu.provider.d.ts +5 -0
- package/text-template-management/lib/setting.provider.d.ts +4 -0
- package/text-template-management/lib/text-template-management.module.d.ts +8 -0
- package/conversation/lib/entities/chat/components/chat-items/chat-items.component.d.ts +0 -6
- package/converstion-test/README.md +0 -4
- package/converstion-test/index.d.ts +0 -1
- package/converstion-test/lib/converstion-test.module.d.ts +0 -6
- package/esm2022/conversation/lib/entities/chat/components/chat-items/chat-items.component.mjs +0 -15
- package/esm2022/converstion-test/acorex-modules-converstion-test.mjs +0 -5
- package/esm2022/converstion-test/index.mjs +0 -2
- package/esm2022/converstion-test/lib/converstion-test.module.mjs +0 -16
- package/esm2022/template-management/acorex-modules-template-management.mjs +0 -5
- package/esm2022/template-management/index.mjs +0 -8
- package/esm2022/template-management/lib/entities/category.entity.mjs +0 -251
- package/esm2022/template-management/lib/entities/index.mjs +0 -4
- package/esm2022/template-management/lib/entities/template-variable.entity.mjs +0 -308
- package/esm2022/template-management/lib/entities/text-template.entity.mjs +0 -411
- package/esm2022/template-management/lib/entity.provider.mjs +0 -32
- package/esm2022/template-management/lib/menu.provider.mjs +0 -43
- package/esm2022/template-management/lib/template-management.module.mjs +0 -61
- package/esm2022/template-management/lib/template-management.types.mjs +0 -2
- package/esm2022/template-management/lib/template.service.mjs +0 -17
- package/esm2022/template-management/lib/text-management.source.mjs +0 -3
- package/esm2022/template-management/lib/text-template-category.service.mjs +0 -17
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-BVOt-gis.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-app-chooser.component-DhPEtLuK.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-ClaRp38G.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-CHr5_kh7.mjs +0 -83
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-CHr5_kh7.mjs.map +0 -1
- package/fesm2022/acorex-modules-converstion-test.mjs +0 -23
- package/fesm2022/acorex-modules-converstion-test.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-designer.page-DC18KFvK.mjs.map +0 -1
- package/fesm2022/acorex-modules-template-management.mjs.map +0 -1
- package/template-management/README.md +0 -3
- package/template-management/index.d.ts +0 -7
- package/template-management/lib/entities/category.entity.d.ts +0 -3
- package/template-management/lib/entities/index.d.ts +0 -3
- package/template-management/lib/entities/template-variable.entity.d.ts +0 -3
- package/template-management/lib/entity.provider.d.ts +0 -9
- package/template-management/lib/menu.provider.d.ts +0 -5
- package/template-management/lib/template-management.module.d.ts +0 -6
- package/template-management/lib/template-management.types.d.ts +0 -19
- package/template-management/lib/template.service.d.ts +0 -10
- package/template-management/lib/text-management.source.d.ts +0 -2
- package/template-management/lib/text-template-category.service.d.ts +0 -10
@@ -1,5 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';
|
2
2
|
export declare class AXMApplicationManagmentModuleMenuProvider implements AXPMenuProvider {
|
3
|
-
private
|
4
|
-
|
3
|
+
private entityService;
|
4
|
+
provide(context: AXPMenuProviderContext): Promise<void>;
|
5
5
|
}
|
@@ -13,6 +13,12 @@ export interface AXMAuthConfigs {
|
|
13
13
|
type: AXMAuthenticationTypes;
|
14
14
|
authConfig?: AuthConfig;
|
15
15
|
end_url?: string;
|
16
|
+
signup?: {
|
17
|
+
enable: boolean;
|
18
|
+
url?: string;
|
19
|
+
};
|
20
|
+
signin_google?: boolean;
|
21
|
+
signin_apple?: boolean;
|
16
22
|
signinPage?: {
|
17
23
|
description: string;
|
18
24
|
slogan: string;
|
@@ -16,6 +16,7 @@ export declare class AXPLoginPasswordComponent implements OnInit {
|
|
16
16
|
private router;
|
17
17
|
ngOnInit(): void;
|
18
18
|
protected handleForgotOnClick(): void;
|
19
|
+
protected handleRegisterOnClick(): void;
|
19
20
|
protected handleLoginClick(): void;
|
20
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXPLoginPasswordComponent, never>;
|
21
22
|
static ɵcmp: i0.ɵɵComponentDeclaration<AXPLoginPasswordComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';
|
2
2
|
export declare class AXMSecurityManagmentModuleMenuProvider implements AXPMenuProvider {
|
3
|
-
|
3
|
+
provide(context: AXPMenuProviderContext): Promise<void>;
|
4
4
|
}
|
package/conversation/index.d.ts
CHANGED
@@ -1,14 +1,16 @@
|
|
1
|
-
export * from './lib/entities/comments/pages/comment-list-view.component';
|
2
|
-
export * from './lib/entities/comments/pages/comment-lookup-popup.component';
|
3
1
|
export * from './lib/entities/comments/comment.module';
|
4
2
|
export * from './lib/entities/comments/comments.service';
|
5
3
|
export * from './lib/entities/comments/comments.type';
|
4
|
+
export * from './lib/entities/comments/pages/comment-list-view.component';
|
5
|
+
export * from './lib/entities/comments/pages/comment-lookup-popup.component';
|
6
6
|
export * from './lib/entities/chat/chat.module';
|
7
|
+
export * from './lib/entities/chat/chat.service';
|
7
8
|
export * from './lib/entities/chat/chat.type';
|
8
9
|
export * from './lib/entities/chat/components/chat-item-footer/chat-item-footer.component';
|
9
10
|
export * from './lib/entities/chat/components/chat-item-header/chat-item-header.component';
|
10
11
|
export * from './lib/entities/chat/components/chat-item/chat-item.component';
|
11
|
-
export * from './lib/entities/chat/components/chat-
|
12
|
+
export * from './lib/entities/chat/components/chat-preview-header/chat-preview-header.component';
|
12
13
|
export * from './lib/entities/chat/components/chat-preview/chat-preview.component';
|
13
14
|
export * from './lib/entities/chat/pages/chat/chat.component';
|
15
|
+
export * from './lib/const';
|
14
16
|
export * from './lib/conversation.module';
|
@@ -1,11 +1,8 @@
|
|
1
1
|
import * as i0 from "@angular/core";
|
2
2
|
import * as i1 from "./entities/comments/comment.module";
|
3
3
|
import * as i2 from "./entities/chat/chat.module";
|
4
|
-
import * as i3 from "./entities/comments/pages/comment-list-view.component";
|
5
|
-
import * as i4 from "./entities/chat/pages/chat/chat.component";
|
6
|
-
import * as i5 from "./entities/chat/components/chat-item/chat-item.component";
|
7
4
|
export declare class AXMConversationModule {
|
8
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMConversationModule, never>;
|
9
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AXMConversationModule, never, [typeof i1.AXMCommentModule, typeof i2.AXMChatModule], [typeof
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXMConversationModule, never, [typeof i1.AXMCommentModule, typeof i2.AXMChatModule], [typeof i1.AXMCommentModule, typeof i2.AXMChatModule]>;
|
10
7
|
static ɵinj: i0.ɵɵInjectorDeclaration<AXMConversationModule>;
|
11
8
|
}
|
@@ -1,10 +1,11 @@
|
|
1
|
+
import { EnvironmentProviders, ModuleWithProviders, Provider } from '@angular/core';
|
1
2
|
import * as i0 from "@angular/core";
|
2
3
|
import * as i1 from "./components/chat-item/chat-item.component";
|
3
4
|
import * as i2 from "./pages/chat/chat.component";
|
4
5
|
import * as i3 from "./components/chat-item-header/chat-item-header.component";
|
5
|
-
import * as i4 from "./components/chat-
|
6
|
-
import * as i5 from "./components/chat-
|
7
|
-
import * as i6 from "./components/chat-
|
6
|
+
import * as i4 from "./components/chat-preview/chat-preview.component";
|
7
|
+
import * as i5 from "./components/chat-item-footer/chat-item-footer.component";
|
8
|
+
import * as i6 from "./components/chat-preview-header/chat-preview-header.component";
|
8
9
|
import * as i7 from "@acorex/components/image";
|
9
10
|
import * as i8 from "@acorex/components/avatar";
|
10
11
|
import * as i9 from "@acorex/components/badge";
|
@@ -16,8 +17,13 @@ import * as i14 from "@angular/forms";
|
|
16
17
|
import * as i15 from "@acorex/components/conversation";
|
17
18
|
import * as i16 from "@acorex/components/button";
|
18
19
|
import * as i17 from "@acorex/components/loading";
|
20
|
+
import * as i18 from "@acorex/core/utils";
|
21
|
+
import * as i19 from "@angular/router";
|
19
22
|
export declare class AXMChatModule {
|
23
|
+
static forRoot(config: {
|
24
|
+
provider: Array<Provider | EnvironmentProviders>;
|
25
|
+
}): ModuleWithProviders<AXMChatModule>;
|
20
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMChatModule, never>;
|
21
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AXMChatModule, [typeof i1.AXMChatItemComponent, typeof i2.AXMChatComponent, typeof i3.AXMChatItemHeaderComponent, typeof i4.
|
27
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXMChatModule, [typeof i1.AXMChatItemComponent, typeof i2.AXMChatComponent, typeof i3.AXMChatItemHeaderComponent, typeof i4.AXMChatPreviewComponent, typeof i5.AXMChatItemFooterComponent, typeof i6.AXMChatPreviewHeaderComponent], [typeof i7.AXImageModule, typeof i8.AXAvatarModule, typeof i9.AXBadgeModule, typeof i10.AXDecoratorModule, typeof i11.AXTextBoxModule, typeof i12.AXTabsModule, typeof i13.CommonModule, typeof i14.FormsModule, typeof i15.AXConversationModule, typeof i16.AXButtonModule, typeof i17.AXLoadingModule, typeof i18.UtilsModule, typeof i19.RouterModule], [typeof i1.AXMChatItemComponent, typeof i2.AXMChatComponent, typeof i3.AXMChatItemHeaderComponent, typeof i4.AXMChatPreviewComponent, typeof i5.AXMChatItemFooterComponent, typeof i6.AXMChatPreviewHeaderComponent, typeof i19.RouterModule]>;
|
22
28
|
static ɵinj: i0.ɵɵInjectorDeclaration<AXMChatModule>;
|
23
29
|
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { AXMEntityCrudServiceImpl } from '@acorex/platform/common';
|
2
|
+
import { AXMChatRoom } from './chat.type';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export declare abstract class AXMChatService extends AXMEntityCrudServiceImpl<string, AXMChatRoom> {
|
5
|
+
abstract getTotalUnread(): Promise<number>;
|
6
|
+
abstract markChatAsRead(roomId: string): Promise<void>;
|
7
|
+
}
|
8
|
+
export declare class AXMChatServiceImpl extends AXMChatService {
|
9
|
+
markChatAsRead(roomId: string): Promise<void>;
|
10
|
+
getTotalUnread(): Promise<number>;
|
11
|
+
constructor();
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMChatServiceImpl, never>;
|
13
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXMChatServiceImpl>;
|
14
|
+
}
|
@@ -1,16 +1,16 @@
|
|
1
|
+
import { AXMChatRoom } from '../../chat.type';
|
1
2
|
import * as i0 from "@angular/core";
|
2
3
|
export declare class AXMChatItemComponent {
|
3
|
-
|
4
|
-
image: import("@angular/core").InputSignal<string | undefined>;
|
5
|
-
firstName: import("@angular/core").InputSignal<string | undefined>;
|
6
|
-
lastName: import("@angular/core").InputSignal<string | undefined>;
|
7
|
-
content: import("@angular/core").InputSignal<string | undefined>;
|
8
|
-
hasSeen: import("@angular/core").InputSignal<boolean | undefined>;
|
9
|
-
createdAt: import("@angular/core").InputSignal<Date | undefined>;
|
10
|
-
unreadCount: import("@angular/core").InputSignal<number | undefined>;
|
11
|
-
fullName: import("@angular/core").Signal<string>;
|
4
|
+
data: import("@angular/core").InputSignal<AXMChatRoom>;
|
12
5
|
pressChatItem: import("@angular/core").OutputEmitterRef<string>;
|
13
|
-
|
6
|
+
private sessionService;
|
7
|
+
private router;
|
8
|
+
private activatedRoute;
|
9
|
+
protected fullName: import("@angular/core").Signal<string>;
|
10
|
+
protected myId: string | undefined;
|
11
|
+
protected extractInitials(name: string): string;
|
12
|
+
protected onPressChatItem(id: string): Promise<void>;
|
13
|
+
protected messageSeenStatus(): string;
|
14
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMChatItemComponent, never>;
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXMChatItemComponent, "axm-chat-item", never, { "
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXMChatItemComponent, "axm-chat-item", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; }, { "pressChatItem": "pressChatItem"; }, never, never, false, never>;
|
16
16
|
}
|
package/conversation/lib/entities/chat/components/chat-item-header/chat-item-header.component.d.ts
CHANGED
@@ -1,5 +1,12 @@
|
|
1
|
+
import { AXTabsComponent } from '@acorex/components/tabs';
|
1
2
|
import * as i0 from "@angular/core";
|
2
3
|
export declare class AXMChatItemHeaderComponent {
|
4
|
+
total: import("@angular/core").InputSignal<number>;
|
5
|
+
unread: import("@angular/core").InputSignal<number>;
|
6
|
+
tab: import("@angular/core").Signal<AXTabsComponent>;
|
7
|
+
tabsState: import("@angular/core").WritableSignal<number>;
|
8
|
+
activeTab: import("@angular/core").OutputEmitterRef<number>;
|
9
|
+
constructor();
|
3
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMChatItemHeaderComponent, never>;
|
4
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXMChatItemHeaderComponent, "axm-chat-item-header", never, {}, {}, never, never, false, never>;
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXMChatItemHeaderComponent, "axm-chat-item-header", never, { "total": { "alias": "total"; "required": true; "isSignal": true; }; "unread": { "alias": "unread"; "required": true; "isSignal": true; }; }, { "activeTab": "activeTab"; }, never, never, false, never>;
|
5
12
|
}
|
@@ -1,11 +1,11 @@
|
|
1
|
-
import { AXConversationActionEvent
|
2
|
-
import { AXFileService } from '@acorex/core/file';
|
1
|
+
import { AXConversationActionEvent } from '@acorex/components/conversation';
|
3
2
|
import { ElementRef, OnDestroy } from '@angular/core';
|
4
3
|
import * as i0 from "@angular/core";
|
5
4
|
export declare class AXMChatPreviewComponent implements OnDestroy {
|
6
5
|
private elRef;
|
7
|
-
|
8
|
-
|
6
|
+
private activatedRoute;
|
7
|
+
private fileService;
|
8
|
+
private conversationService;
|
9
9
|
protected options: import("@angular/core").WritableSignal<{
|
10
10
|
disabled: boolean;
|
11
11
|
readonly: boolean;
|
@@ -15,6 +15,7 @@ export declare class AXMChatPreviewComponent implements OnDestroy {
|
|
15
15
|
private resizeObserver;
|
16
16
|
private initialTextAreaHeight;
|
17
17
|
private textareaHeight;
|
18
|
+
private messageId;
|
18
19
|
constructor(elRef: ElementRef);
|
19
20
|
protected dynamicHeight: import("@angular/core").Signal<string>;
|
20
21
|
ngOnDestroy(): void;
|
@@ -23,6 +24,8 @@ export declare class AXMChatPreviewComponent implements OnDestroy {
|
|
23
24
|
handleEndRecord(event: any): void;
|
24
25
|
handleOnSend(e: any): void;
|
25
26
|
handleOnAction(e: AXConversationActionEvent): void;
|
27
|
+
scrollToEnd(): void;
|
28
|
+
addMockMessage(): void;
|
26
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMChatPreviewComponent, never>;
|
27
30
|
static ɵcmp: i0.ɵɵComponentDeclaration<AXMChatPreviewComponent, "axm-chat-preview", never, {}, {}, never, never, false, never>;
|
28
31
|
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
export declare class AXMChatPreviewHeaderComponent {
|
3
|
+
pressBack: import("@angular/core").OutputEmitterRef<void>;
|
4
|
+
protected emitBack(): void;
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMChatPreviewHeaderComponent, never>;
|
6
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXMChatPreviewHeaderComponent, "axm-chat-preview-header", never, {}, { "pressBack": "pressBack"; }, never, never, false, never>;
|
7
|
+
}
|
@@ -1,5 +1,23 @@
|
|
1
|
+
import { AXPPagedListResult } from '@acorex/platform/common';
|
2
|
+
import { OnInit } from '@angular/core';
|
3
|
+
import { AXMChatService } from '../../chat.service';
|
4
|
+
import { AXMChatRoom } from '../../chat.type';
|
1
5
|
import * as i0 from "@angular/core";
|
2
|
-
export declare class AXMChatComponent {
|
6
|
+
export declare class AXMChatComponent implements OnInit {
|
7
|
+
chatService: AXMChatService;
|
8
|
+
private route;
|
9
|
+
private readonly routeParams;
|
10
|
+
protected data: import("@angular/core").WritableSignal<AXPPagedListResult<AXMChatRoom> | undefined>;
|
11
|
+
protected filteredData: import("@angular/core").Signal<AXMChatRoom[]>;
|
12
|
+
protected displayData: import("@angular/core").Signal<AXMChatRoom[] | undefined>;
|
13
|
+
protected activeTab: import("@angular/core").WritableSignal<number>;
|
14
|
+
protected allCount: import("@angular/core").Signal<number>;
|
15
|
+
protected unreadCount: import("@angular/core").WritableSignal<number>;
|
16
|
+
ngOnInit(): Promise<void>;
|
17
|
+
private loadData;
|
18
|
+
protected markChatAsRead(roomId: string): Promise<void>;
|
19
|
+
setActiveTabData(event: number): void;
|
20
|
+
goBack(): void;
|
3
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMChatComponent, never>;
|
4
22
|
static ɵcmp: i0.ɵɵComponentDeclaration<AXMChatComponent, "axm-chat", never, {}, {}, never, never, false, never>;
|
5
23
|
}
|
@@ -4,10 +4,10 @@ import * as i0 from "@angular/core";
|
|
4
4
|
export declare abstract class AXMCommentService extends AXMEntityCrudServiceImpl<string, AXMCommentEntityModel, AXMCommentCreateRequest, AXMComment> {
|
5
5
|
abstract like(payload: AXMMessageReactionEntityModel): Promise<string>;
|
6
6
|
}
|
7
|
-
export declare class
|
7
|
+
export declare class AXMCommentServiceImpl extends AXMEntityCrudServiceImpl<string, AXMCommentEntityModel, AXMCommentCreateRequest, AXMComment> {
|
8
8
|
protected messageReactionDataProvider: AXPEntityDataProviderImpl<string, AXMMessageReactionEntityModel, Omit<AXMMessageReactionEntityModel, "id">, AXMMessageReactionEntityModel, AXMMessageReactionEntityModel>;
|
9
9
|
constructor();
|
10
10
|
like(payload: AXMMessageReactionEntityModel): Promise<string>;
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
12
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMCommentServiceImpl, never>;
|
12
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXMCommentServiceImpl>;
|
13
13
|
}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
export const AXMApplicationManagementModuleConst = {
|
2
|
+
moduleName: 'ApplicationManagement',
|
3
|
+
moduleRoute: 'application-management',
|
4
|
+
i18n: 'platform-management',
|
5
|
+
};
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL2NvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHO0lBQ2pELFVBQVUsRUFBRSx1QkFBdUI7SUFDbkMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxJQUFJLEVBQUUscUJBQXFCO0NBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVhNQXBwbGljYXRpb25NYW5hZ2VtZW50TW9kdWxlQ29uc3QgPSB7XG4gIG1vZHVsZU5hbWU6ICdBcHBsaWNhdGlvbk1hbmFnZW1lbnQnLFxuICBtb2R1bGVSb3V0ZTogJ2FwcGxpY2F0aW9uLW1hbmFnZW1lbnQnLFxuICBpMThuOiAncGxhdGZvcm0tbWFuYWdlbWVudCcsXG59O1xuIl19
|
@@ -53,7 +53,7 @@ export class AXPModuleEntityDetailViewComponent {
|
|
53
53
|
this.vm.destroy();
|
54
54
|
}
|
55
55
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPModuleEntityDetailViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPModuleEntityDetailViewComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">{{ vm.title() | translate | async }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title | translate | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title | translate | async\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!-- Start Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-4\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() | translate | async }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n @if(vm.relatedEntities().length) {\n <ax-tabs\n [look]=\"'with-line'\"\n class=\"ax-mt-2 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n >\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"(e.title() | translate | async)!\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n </ax-tabs>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <div [class.ax-hidden]=\"$index !== selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n </div>\n } }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i5.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i6.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i6.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i7.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i7.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i7.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i8.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i8.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type:
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPModuleEntityDetailViewComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">{{ vm.title() | translate | async }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title | translate | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title | translate | async\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!-- Start Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-4\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() | translate | async }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n @if(vm.relatedEntities().length) {\n <ax-tabs\n [look]=\"'with-line'\"\n class=\"ax-mt-2 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n >\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"(e.title() | translate | async)!\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n </ax-tabs>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <div [class.ax-hidden]=\"$index !== selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n </div>\n } }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i5.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "look", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i6.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i6.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i7.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i7.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i7.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i8.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i8.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type:
|
57
57
|
//
|
58
58
|
AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "component", type: i9.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["node", "mode", "parentNode", "index"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[gridLayout]", inputs: ["gridLayout"] }, { kind: "ngmodule", type:
|
59
59
|
//
|
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
85
85
|
AXPEntityDetailListViewComponent,
|
86
86
|
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">{{ vm.title() | translate | async }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title | translate | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title | translate | async\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!-- Start Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-4\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() | translate | async }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n @if(vm.relatedEntities().length) {\n <ax-tabs\n [look]=\"'with-line'\"\n class=\"ax-mt-2 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n >\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"(e.title() | translate | async)!\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n </ax-tabs>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <div [class.ax-hidden]=\"$index !== selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n </div>\n } }\n </div>\n</div>\n" }]
|
87
87
|
}] });
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWVudGl0eS1kZXRhaWwtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL2xheW91dHMvbW9kdWxlLWVudGl0eS1kZXRhaWwtdmlldy9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hcHBsaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvbGF5b3V0cy9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3L21vZHVsZS1lbnRpdHktZGV0YWlsLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJB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QWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsRUFBRTt3QkFDRixtQkFBbUI7d0JBQ25CLGdDQUFnQztxQkFDakMsY0FDVyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEFjdGlvblNoZWV0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2FjdGlvbi1zaGVldCc7XG5pbXBvcnQgeyBBWEJyZWFkY3J1bWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWERyYXdlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcmF3ZXInO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUsIEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7XG4gIEFYUEFkbWluTGF5b3V0U3RhdGUsXG4gIEFYUEdyaWRMYXlvdXREaXJlY3RpdmUsXG4gIEFYUFN0aWNreURpcmVjdGl2ZSxcbiAgZ2V0Q2hpbGREcmF3ZXIsXG4gIGlzU21hbGxTY3JlZW4sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL2RlZmF1bHQnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0c01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYQWN0aW9uU2hlZXRNb2R1bGUsXG4gICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgQVhEaWFsb2dNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcbiAgICBBWFBXaWRnZXRzTW9kdWxlLFxuICAgIEFYUFN0aWNreURpcmVjdGl2ZSxcbiAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICAgIC8vXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld0NvbXBvbmVudCxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYUE1vZHVsZUVudGl0eURldGFpbFZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIGFjdGl2ZVJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdm0gPSB0aGlzLmFjdGl2ZVJvdXRlLnNuYXBzaG90LmRhdGFbJ3ZtJ10gYXMgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsO1xuICAvL1xuICBwcml2YXRlIHN0b3JlID0gaW5qZWN0KFN0b3JlPEFYUEFkbWluTGF5b3V0U3RhdGU+KTtcbiAgcHJvdGVjdGVkIGlzU00gPSB0aGlzLnN0b3JlLnNlbGVjdChpc1NtYWxsU2NyZWVuKCkpO1xuICBwcm90ZWN0ZWQgaXNPcGVuID0gdGhpcy5zdG9yZS5zZWxlY3QoZ2V0Q2hpbGREcmF3ZXIoKSk7XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkUmVsYXRlZElFbnRpdHlUYWJJbmRleCA9IHNpZ25hbCgwKTtcblxuICBoYW5kbGVBY3RpdmVSZWxhdGVkRW50aXR5Q2hhbmdlZChlOiBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlbGF0ZWRJRW50aXR5VGFiSW5kZXguc2V0KGUuaW5kZXgpO1xuICAgIHRoaXMudm0uc2VjdGlvbnM7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWREZXRhaWxUYWJJbmRleCA9IHNpZ25hbCgwKTtcblxuICBoYW5kbGVBY3RpdmVEZXRhaWxUYWJDaGFuZ2VkKGU6IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGV0YWlsVGFiSW5kZXguc2V0KGUuaW5kZXgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy52bS5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LW1pbi1oLWZ1bGwgYXgtcHgtNCBheC1wYi00IG1kOmF4LXB4LTYgYXgtYmctc3VyZmFjZSBheC1ib3JkZXItYiBtZDpheC1ib3JkZXItMCBtZDpheC1iZy1kZWZhdWx0XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1wdC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsXCJcbiAgICAjc3RpY2t5PVwiYXhwU3RpY2t5XCJcbiAgICBbYXhwU3RpY2t5XT1cIidheC1iZy1zdXJmYWNlIGF4LXB4LTYgYXgtcHktMyAtYXgtbXgtNiBheC1zaGFkb3cteGwnXCJcbiAgICBbc3RpY2t5T2Zmc2V0XT1cIjMwXCJcbiAgPlxuICAgIDwhLS0tLS0tLS0gQmVnaW4gVG9vbGJhciAgLS0tLS0tLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSAgLS0tLS0tLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMSBheC1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTIgYXgtdHJhbnNpdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXhsIG1kOmF4LXRleHQtMnhsIGF4LWZvbnQtYm9sZFwiPnt7IHZtLnRpdGxlKCkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvZGl2PlxuICAgICAgICAgIEBpZih2bS5kZXNjcmlwdGlvbigpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1uZXV0cmFsLTYwMFwiIFtjbGFzcy5heC1oaWRkZW5dPVwic3RpY2t5LmlzU3RpY2t5XCI+XG4gICAgICAgICAgICB7eyB2bS5kZXNjcmlwdGlvbigpIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxheC1icmVhZGNydW1icyBjbGFzcz1cImNoaWxkOmF4LWZvbnQtbm9ybWFsIGNoaWxkOmF4LXRleHQtbmV1dHJhbC00MDBcIiBbY2xhc3MuYXgtaGlkZGVuXT1cImlzU00gfCBhc3luY1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkaXZpZGVyPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNoZXZyb24tcmlnaHQgYXgtdGV4dC14cyBheC1teC0yXCI+PC9pPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIEBmb3IoYiBvZiB2bS5iZWFyZGNydW1icygpO3RyYWNrICRpbmRleDtsZXQgbGFzdD0kbGFzdCkge1xuICAgICAgICAgICAgPGF4LWJyZWFkY3J1bWJzLWl0ZW1cbiAgICAgICAgICAgICAgW2FjdGl2ZV09XCJsYXN0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLiFheC1mb250LXNlbWlib2xkXT1cImxhc3RcIlxuICAgICAgICAgICAgICBbY2xhc3MuIWF4LXRleHQtbmV1dHJhbC02MDBdPVwibGFzdFwiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImIudXJsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmKGIuaWNvbikge1xuICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiYi5pY29uXCI+PC9pPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHt7IGIudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgPC9heC1icmVhZGNydW1icy1pdGVtPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYXgtYnJlYWRjcnVtYnM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tLS0tLS0tIEZpbmlzaCBUaXRsZSAgLS0tLS0tLS0+XG4gICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgICAgIDwhLS0gQmVnaW4gQWN0aW9uIE1lbnUgIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0zXCI+XG4gICAgICAgIEBmb3IodHIgb2Ygdm0ucHJpbWFyeUFjdGlvbnMoKTt0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGF4LWJ1dHRvbiBbdGV4dF09XCJ0ci50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jXCIgW2NvbG9yXT1cInRyLmNvbG9yXCIgKG9uQ2xpY2spPVwidm0uZXhlY3V0ZUNvbW1hbmQodHIubmFtZSlcIj5cbiAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgPGF4LWljb24gW2ljb25dPVwidHIuaWNvblwiPiA8L2F4LWljb24+XG4gICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICB9IEBpZih2bS5zZWNvbmRhcnlBY3Rpb25zKCkubGVuZ3RoKSB7XG4gICAgICAgIDxheC1idXR0b24gW3RleHRdPVwiKGlzU00gfCBhc3luYykgPyBudWxsIDogJ0FjdGlvbnMnXCIgY29sb3I9XCJnaG9zdFwiPlxuICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWVsbGlwc2lzLXZlcnRpY2FsXCI+PC9pPlxuICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgICAgIDxheC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgICAgICBAZm9yKHRyIG9mIHZtLnNlY29uZGFyeUFjdGlvbnMoKTt0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICBAaWYodHIuc2VwYXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cInRyLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXt7IHRyLmNvbG9yIH19XCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInZtLmV4ZWN1dGVDb21tYW5kKHRyLm5hbWUpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJ0ci5pY29uXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBGaW5pc2ggQWN0aW9uIE1lbnUgIC0tPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gU3RhcnQgU2VjdGlvbnMgIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkIGF4LWdyaWQtY29scy0xMiBheC1nYXAtNFwiPlxuICAgICAgQGZvcihzZWN0aW9uIG9mIHZtLnNlY3Rpb25zKCk7IHRyYWNrIHNlY3Rpb24ubmFtZSgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FyZCBheC1tdC00XCIgW2dyaWRMYXlvdXRdPVwic2VjdGlvbi5sYXlvdXQoKVwiPlxuICAgICAgICA8YXgtZm9ybSAjZm9ybT5cbiAgICAgICAgICA8YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cInZtLmNvbnRleHQoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcmQtaGVhZGVyICFheC1weS0yICFheC1weC00XCI+XG4gICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIWF4LXRleHQtbGcgYXgtZm9udC1zZW1pYm9sZFwiPnt7IHNlY3Rpb24udGl0bGUoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICBAaWYoc2VjdGlvbi5kZXNjcmlwdGlvbigpKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXNtIGF4LWZvbnQtbm9ybWFsIGF4LXRleHQtZ3JheS01MDBcIj57eyBzZWN0aW9uLmRlc2NyaXB0aW9uKCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIEBpZihzZWN0aW9uLmVkaXRhYmxlKCkpIHtcbiAgICAgICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgteHNcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgIFtsb29rXT1cIidibGFuaydcIlxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInZtLmV4ZWN1dGVDb21tYW5kKCdtb2RpZnktZW50aXR5LXNlY3Rpb24nLCBzZWN0aW9uKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLXBlbiBheC10ZXh0LWdyYXktNjAwXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcmQtYm9keSAhYXgtZ3JpZCAhYXgtZ3JpZC1jb2xzLTEyICFheC1nYXAtNFwiPlxuICAgICAgICAgICAgICBAZm9yKGF0dHIgb2Ygc2VjdGlvbi5wcm9wcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTFcIiBbZ3JpZExheW91dF09XCJhdHRyLmxheW91dCgpXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7IGF0dHIudGl0bGUoKSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtbmV1dHJhbC01MDBcIj5cbiAgICAgICAgICAgICAgICAgIDxheHAtd2lkZ2V0LXJlbmRlcmVyIFtub2RlXT1cImF0dHIubm9kZSgpXCIgW21vZGVdPVwiJ3ZpZXcnXCI+IDwvYXhwLXdpZGdldC1yZW5kZXJlcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuICAgICAgICA8L2F4LWZvcm0+XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZpbmlzaCBTZWN0aW9ucyAgLS0+XG4gICAgQGlmKHZtLnJlbGF0ZWRFbnRpdGllcygpLmxlbmd0aCkge1xuICAgIDxheC10YWJzXG4gICAgICBbbG9va109XCInd2l0aC1saW5lJ1wiXG4gICAgICBjbGFzcz1cImF4LW10LTIgYXgtZm9udC1zZW1pYm9sZFwiXG4gICAgICAjdGFiXG4gICAgICAob25BY3RpdmVUYWJDaGFuZ2VkKT1cImhhbmRsZUFjdGl2ZVJlbGF0ZWRFbnRpdHlDaGFuZ2VkKCRldmVudClcIlxuICAgID5cbiAgICAgIEBmb3IoZSBvZiB2bS5yZWxhdGVkRW50aXRpZXMoKTt0cmFjayAkaW5kZXg7bGV0IGluZGV4PSAkaW5kZXgpe1xuICAgICAgPGF4LXRhYi1pdGVtIFt0ZXh0XT1cIihlLnRpdGxlKCkgfCB0cmFuc2xhdGUgfCBhc3luYykhXCIgW2tleV09XCJpbmRleC50b1N0cmluZygpXCI+IDwvYXgtdGFiLWl0ZW0+XG4gICAgICB9XG4gICAgPC9heC10YWJzPlxuICAgIEBmb3IoZSBvZiB2bS5yZWxhdGVkRW50aXRpZXMoKTt0cmFjayAkaW5kZXg7bGV0IGluZGV4PSAkaW5kZXgpe1xuICAgIDxkaXYgW2NsYXNzLmF4LWhpZGRlbl09XCIkaW5kZXggIT09IHNlbGVjdGVkUmVsYXRlZElFbnRpdHlUYWJJbmRleCgpXCI+XG4gICAgICA8YXhwLWVudGl0eS1kZXRhaWwtbGlzdC12aWV3IFt2aWV3TW9kZWxdPVwiZVwiPjwvYXhwLWVudGl0eS1kZXRhaWwtbGlzdC12aWV3PlxuICAgIDwvZGl2PlxuICAgIH0gfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWVudGl0eS1kZXRhaWwtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL2xheW91dHMvbW9kdWxlLWVudGl0eS1kZXRhaWwtdmlldy9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hcHBsaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvbGF5b3V0cy9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3L21vZHVsZS1lbnRpdHktZGV0YWlsLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJB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QWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsRUFBRTt3QkFDRixtQkFBbUI7d0JBQ25CLGdDQUFnQztxQkFDakMsY0FDVyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEFjdGlvblNoZWV0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2FjdGlvbi1zaGVldCc7XG5pbXBvcnQgeyBBWEJyZWFkY3J1bWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWERyYXdlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcmF3ZXInO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUsIEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7XG4gIEFYUEFkbWluTGF5b3V0U3RhdGUsXG4gIEFYUEdyaWRMYXlvdXREaXJlY3RpdmUsXG4gIEFYUFN0aWNreURpcmVjdGl2ZSxcbiAgZ2V0Q2hpbGREcmF3ZXIsXG4gIGlzU21hbGxTY3JlZW4sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL2RlZmF1bHQnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0c01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYQWN0aW9uU2hlZXRNb2R1bGUsXG4gICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgQVhEaWFsb2dNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcbiAgICBBWFBXaWRnZXRzTW9kdWxlLFxuICAgIEFYUFN0aWNreURpcmVjdGl2ZSxcbiAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICAgIC8vXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld0NvbXBvbmVudCxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYUE1vZHVsZUVudGl0eURldGFpbFZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIGFjdGl2ZVJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdm0gPSB0aGlzLmFjdGl2ZVJvdXRlLnNuYXBzaG90LmRhdGFbJ3ZtJ10gYXMgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsO1xuICAvL1xuICBwcml2YXRlIHN0b3JlID0gaW5qZWN0KFN0b3JlPEFYUEFkbWluTGF5b3V0U3RhdGU+KTtcbiAgcHJvdGVjdGVkIGlzU00gPSB0aGlzLnN0b3JlLnNlbGVjdChpc1NtYWxsU2NyZWVuKCkpO1xuICBwcm90ZWN0ZWQgaXNPcGVuID0gdGhpcy5zdG9yZS5zZWxlY3QoZ2V0Q2hpbGREcmF3ZXIoKSk7XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkUmVsYXRlZElFbnRpdHlUYWJJbmRleCA9IHNpZ25hbCgwKTtcblxuICBoYW5kbGVBY3RpdmVSZWxhdGVkRW50aXR5Q2hhbmdlZChlOiBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlbGF0ZWRJRW50aXR5VGFiSW5kZXguc2V0KGUuaW5kZXgpO1xuICAgIHRoaXMudm0uc2VjdGlvbnM7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWREZXRhaWxUYWJJbmRleCA9IHNpZ25hbCgwKTtcblxuICBoYW5kbGVBY3RpdmVEZXRhaWxUYWJDaGFuZ2VkKGU6IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGV0YWlsVGFiSW5kZXguc2V0KGUuaW5kZXgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy52bS5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LW1pbi1oLWZ1bGwgYXgtcHgtNCBheC1wYi00IG1kOmF4LXB4LTYgYXgtYmctc3VyZmFjZSBheC1ib3JkZXItYiBtZDpheC1ib3JkZXItMCBtZDpheC1iZy1kZWZhdWx0XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1wdC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsXCJcbiAgICAjc3RpY2t5PVwiYXhwU3RpY2t5XCJcbiAgICBbYXhwU3RpY2t5XT1cIidheC1iZy1zdXJmYWNlIGF4LXB4LTYgYXgtcHktMyAtYXgtbXgtNiBheC1zaGFkb3cteGwnXCJcbiAgICBbc3RpY2t5T2Zmc2V0XT1cIjMwXCJcbiAgPlxuICAgIDwhLS0tLS0tLS0gQmVnaW4gVG9vbGJhciAgLS0tLS0tLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSAgLS0tLS0tLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMSBheC1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTIgYXgtdHJhbnNpdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXhsIG1kOmF4LXRleHQtMnhsIGF4LWZvbnQtYm9sZFwiPnt7IHZtLnRpdGxlKCkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvZGl2PlxuICAgICAgICAgIEBpZih2bS5kZXNjcmlwdGlvbigpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1uZXV0cmFsLTYwMFwiIFtjbGFzcy5heC1oaWRkZW5dPVwic3RpY2t5LmlzU3RpY2t5XCI+XG4gICAgICAgICAgICB7eyB2bS5kZXNjcmlwdGlvbigpIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxheC1icmVhZGNydW1icyBjbGFzcz1cImNoaWxkOmF4LWZvbnQtbm9ybWFsIGNoaWxkOmF4LXRleHQtbmV1dHJhbC00MDBcIiBbY2xhc3MuYXgtaGlkZGVuXT1cImlzU00gfCBhc3luY1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkaXZpZGVyPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNoZXZyb24tcmlnaHQgYXgtdGV4dC14cyBheC1teC0yXCI+PC9pPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIEBmb3IoYiBvZiB2bS5iZWFyZGNydW1icygpO3RyYWNrICRpbmRleDtsZXQgbGFzdD0kbGFzdCkge1xuICAgICAgICAgICAgPGF4LWJyZWFkY3J1bWJzLWl0ZW1cbiAgICAgICAgICAgICAgW2FjdGl2ZV09XCJsYXN0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLiFheC1mb250LXNlbWlib2xkXT1cImxhc3RcIlxuICAgICAgICAgICAgICBbY2xhc3MuIWF4LXRleHQtbmV1dHJhbC02MDBdPVwibGFzdFwiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImIudXJsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmKGIuaWNvbikge1xuICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiYi5pY29uXCI+PC9pPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHt7IGIudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgPC9heC1icmVhZGNydW1icy1pdGVtPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYXgtYnJlYWRjcnVtYnM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tLS0tLS0tIEZpbmlzaCBUaXRsZSAgLS0tLS0tLS0+XG4gICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgICAgIDwhLS0gQmVnaW4gQWN0aW9uIE1lbnUgIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0zXCI+XG4gICAgICAgIEBmb3IodHIgb2Ygdm0ucHJpbWFyeUFjdGlvbnMoKTt0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGF4LWJ1dHRvbiBbdGV4dF09XCJ0ci50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jXCIgW2NvbG9yXT1cInRyLmNvbG9yXCIgKG9uQ2xpY2spPVwidm0uZXhlY3V0ZUNvbW1hbmQodHIubmFtZSlcIj5cbiAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgPGF4LWljb24gW2ljb25dPVwidHIuaWNvblwiPiA8L2F4LWljb24+XG4gICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICB9IEBpZih2bS5zZWNvbmRhcnlBY3Rpb25zKCkubGVuZ3RoKSB7XG4gICAgICAgIDxheC1idXR0b24gW3RleHRdPVwiKGlzU00gfCBhc3luYykgPyBudWxsIDogJ0FjdGlvbnMnXCIgY29sb3I9XCJnaG9zdFwiPlxuICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWVsbGlwc2lzLXZlcnRpY2FsXCI+PC9pPlxuICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgICAgIDxheC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgICAgICBAZm9yKHRyIG9mIHZtLnNlY29uZGFyeUFjdGlvbnMoKTt0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICBAaWYodHIuc2VwYXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cInRyLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXt7IHRyLmNvbG9yIH19XCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInZtLmV4ZWN1dGVDb21tYW5kKHRyLm5hbWUpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJ0ci5pY29uXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBGaW5pc2ggQWN0aW9uIE1lbnUgIC0tPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gU3RhcnQgU2VjdGlvbnMgIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkIGF4LWdyaWQtY29scy0xMiBheC1nYXAtNFwiPlxuICAgICAgQGZvcihzZWN0aW9uIG9mIHZtLnNlY3Rpb25zKCk7IHRyYWNrIHNlY3Rpb24ubmFtZSgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FyZCBheC1tdC00XCIgW2dyaWRMYXlvdXRdPVwic2VjdGlvbi5sYXlvdXQoKVwiPlxuICAgICAgICA8YXgtZm9ybSAjZm9ybT5cbiAgICAgICAgICA8YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cInZtLmNvbnRleHQoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcmQtaGVhZGVyICFheC1weS0yICFheC1weC00XCI+XG4gICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIWF4LXRleHQtbGcgYXgtZm9udC1zZW1pYm9sZFwiPnt7IHNlY3Rpb24udGl0bGUoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICBAaWYoc2VjdGlvbi5kZXNjcmlwdGlvbigpKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXNtIGF4LWZvbnQtbm9ybWFsIGF4LXRleHQtZ3JheS01MDBcIj57eyBzZWN0aW9uLmRlc2NyaXB0aW9uKCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIEBpZihzZWN0aW9uLmVkaXRhYmxlKCkpIHtcbiAgICAgICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgteHNcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgIFtsb29rXT1cIidibGFuaydcIlxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInZtLmV4ZWN1dGVDb21tYW5kKCdtb2RpZnktZW50aXR5LXNlY3Rpb24nLCBzZWN0aW9uKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLXBlbiBheC10ZXh0LWdyYXktNjAwXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcmQtYm9keSAhYXgtZ3JpZCAhYXgtZ3JpZC1jb2xzLTEyICFheC1nYXAtNFwiPlxuICAgICAgICAgICAgICBAZm9yKGF0dHIgb2Ygc2VjdGlvbi5wcm9wcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTFcIiBbZ3JpZExheW91dF09XCJhdHRyLmxheW91dCgpXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7IGF0dHIudGl0bGUoKSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtbmV1dHJhbC01MDBcIj5cbiAgICAgICAgICAgICAgICAgIDxheHAtd2lkZ2V0LXJlbmRlcmVyIFtub2RlXT1cImF0dHIubm9kZSgpXCIgW21vZGVdPVwiJ3ZpZXcnXCI+IDwvYXhwLXdpZGdldC1yZW5kZXJlcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuICAgICAgICA8L2F4LWZvcm0+XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZpbmlzaCBTZWN0aW9ucyAgLS0+XG4gICAgQGlmKHZtLnJlbGF0ZWRFbnRpdGllcygpLmxlbmd0aCkge1xuICAgIDxheC10YWJzXG4gICAgICBbbG9va109XCInd2l0aC1saW5lJ1wiXG4gICAgICBjbGFzcz1cImF4LW10LTIgYXgtZm9udC1zZW1pYm9sZFwiXG4gICAgICAjdGFiXG4gICAgICAob25BY3RpdmVUYWJDaGFuZ2VkKT1cImhhbmRsZUFjdGl2ZVJlbGF0ZWRFbnRpdHlDaGFuZ2VkKCRldmVudClcIlxuICAgID5cbiAgICAgIEBmb3IoZSBvZiB2bS5yZWxhdGVkRW50aXRpZXMoKTt0cmFjayAkaW5kZXg7bGV0IGluZGV4PSAkaW5kZXgpe1xuICAgICAgPGF4LXRhYi1pdGVtIFt0ZXh0XT1cIihlLnRpdGxlKCkgfCB0cmFuc2xhdGUgfCBhc3luYykhXCIgW2tleV09XCJpbmRleC50b1N0cmluZygpXCI+IDwvYXgtdGFiLWl0ZW0+XG4gICAgICB9XG4gICAgPC9heC10YWJzPlxuICAgIEBmb3IoZSBvZiB2bS5yZWxhdGVkRW50aXRpZXMoKTt0cmFjayAkaW5kZXg7bGV0IGluZGV4PSAkaW5kZXgpe1xuICAgIDxkaXYgW2NsYXNzLmF4LWhpZGRlbl09XCIkaW5kZXggIT09IHNlbGVjdGVkUmVsYXRlZElFbnRpdHlUYWJJbmRleCgpXCI+XG4gICAgICA8YXhwLWVudGl0eS1kZXRhaWwtbGlzdC12aWV3IFt2aWV3TW9kZWxdPVwiZVwiPjwvYXhwLWVudGl0eS1kZXRhaWwtbGlzdC12aWV3PlxuICAgIDwvZGl2PlxuICAgIH0gfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
@@ -1,30 +1,28 @@
|
|
1
|
-
import {
|
1
|
+
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
2
2
|
import { inject } from '@angular/core';
|
3
|
+
import { AXMApplicationManagementModuleConst } from './const';
|
3
4
|
export class AXMApplicationManagmentModuleMenuProvider {
|
4
5
|
constructor() {
|
5
|
-
this.
|
6
|
+
this.entityService = inject(AXPEntityService);
|
6
7
|
}
|
7
|
-
async
|
8
|
-
const scope =
|
9
|
-
|
8
|
+
async provide(context) {
|
9
|
+
const scope = AXMApplicationManagementModuleConst.i18n;
|
10
|
+
context.addItems([
|
10
11
|
{
|
11
|
-
|
12
|
+
priority: 8001,
|
13
|
+
text: `t("applicationManagement", {scope:${scope}})`,
|
14
|
+
icon: 'fa-solid fa-cogs',
|
15
|
+
children: [
|
12
16
|
{
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
text: '#platform.moduleDesigner',
|
19
|
-
path: '/console/module-designer',
|
20
|
-
icon: 'fa-solid fa-cog',
|
21
|
-
data: {},
|
22
|
-
},
|
23
|
-
],
|
17
|
+
text: `t("moduleDesigner", {scope:${scope}})`,
|
18
|
+
//TODO this seems doesnt work well with our functions
|
19
|
+
path: '/console/module-designer',
|
20
|
+
icon: 'fa-solid fa-cog',
|
21
|
+
data: {},
|
24
22
|
},
|
25
23
|
],
|
26
24
|
},
|
27
|
-
];
|
25
|
+
]);
|
28
26
|
}
|
29
27
|
}
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hcHBsaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvbWVudS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU5RCxNQUFNLE9BQU8seUNBQXlDO0lBQXREO1FBQ1Usa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQXFCbkQsQ0FBQztJQW5CQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQStCO1FBQzNDLE1BQU0sS0FBSyxHQUFHLG1DQUFtQyxDQUFDLElBQUksQ0FBQztRQUN2RCxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ2Y7Z0JBQ0UsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsSUFBSSxFQUFFLHFDQUFxQyxLQUFLLElBQUk7Z0JBQ3BELElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLFFBQVEsRUFBRTtvQkFDUjt3QkFDRSxJQUFJLEVBQUUsOEJBQThCLEtBQUssSUFBSTt3QkFDN0MscURBQXFEO3dCQUNyRCxJQUFJLEVBQUUsMEJBQTBCO3dCQUNoQyxJQUFJLEVBQUUsaUJBQWlCO3dCQUN2QixJQUFJLEVBQUUsRUFBRTtxQkFDVDtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQTWVudVByb3ZpZGVyLCBBWFBNZW51UHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTUFwcGxpY2F0aW9uTWFuYWdlbWVudE1vZHVsZUNvbnN0IH0gZnJvbSAnLi9jb25zdCc7XG5cbmV4cG9ydCBjbGFzcyBBWE1BcHBsaWNhdGlvbk1hbmFnbWVudE1vZHVsZU1lbnVQcm92aWRlciBpbXBsZW1lbnRzIEFYUE1lbnVQcm92aWRlciB7XG4gIHByaXZhdGUgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTZXJ2aWNlKTtcblxuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUE1lbnVQcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzY29wZSA9IEFYTUFwcGxpY2F0aW9uTWFuYWdlbWVudE1vZHVsZUNvbnN0LmkxOG47XG4gICAgY29udGV4dC5hZGRJdGVtcyhbXG4gICAgICB7XG4gICAgICAgIHByaW9yaXR5OiA4MDAxLFxuICAgICAgICB0ZXh0OiBgdChcImFwcGxpY2F0aW9uTWFuYWdlbWVudFwiLCB7c2NvcGU6JHtzY29wZX19KWAsXG4gICAgICAgIGljb246ICdmYS1zb2xpZCBmYS1jb2dzJyxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiBgdChcIm1vZHVsZURlc2lnbmVyXCIsIHtzY29wZToke3Njb3BlfX0pYCxcbiAgICAgICAgICAgIC8vVE9ETyB0aGlzIHNlZW1zIGRvZXNudCB3b3JrIHdlbGwgd2l0aCBvdXIgZnVuY3Rpb25zXG4gICAgICAgICAgICBwYXRoOiAnL2NvbnNvbGUvbW9kdWxlLWRlc2lnbmVyJyxcbiAgICAgICAgICAgIGljb246ICdmYS1zb2xpZCBmYS1jb2cnLFxuICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXSlcbiAgfVxufVxuIl19
|