@acorex/modules 18.2.1 → 18.2.3
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/layouts/module-entity-detail-view/module-entity-detail-view.component.d.ts +42 -4
- package/application-management/lib/menu.provider.d.ts +3 -3
- package/auth/lib/account/profile/profile-slot.component.d.ts +0 -1
- package/auth/lib/auth.config.d.ts +6 -0
- package/auth/lib/error-handler.d.ts +0 -1
- package/auth/lib/login/password/password.component.d.ts +1 -0
- package/auth/lib/menu.provider.d.ts +2 -2
- package/backend/lib/data/api/data-provider.d.ts +1 -0
- package/backend/lib/data/index.d.ts +0 -1
- 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 +6 -10
- 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/profile/profile-slot.component.mjs +2 -4
- 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/error-handler.mjs +4 -5
- 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 +11 -3
- package/esm2022/backend/lib/data/index.mjs +1 -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/scheduler-job-management/acorex-modules-scheduler-job-management.mjs +5 -0
- package/esm2022/scheduler-job-management/index.mjs +5 -0
- package/esm2022/scheduler-job-management/lib/const.mjs +8 -0
- package/esm2022/scheduler-job-management/lib/entities/index.mjs +2 -0
- package/esm2022/scheduler-job-management/lib/entities/scheduler-job/index.mjs +5 -0
- package/esm2022/scheduler-job-management/lib/entities/scheduler-job/scheduler-job.entity.mjs +333 -0
- package/esm2022/scheduler-job-management/lib/entities/scheduler-job/scheduler-job.module.mjs +28 -0
- package/esm2022/scheduler-job-management/lib/entities/scheduler-job/scheduler-job.service.mjs +17 -0
- package/esm2022/scheduler-job-management/lib/entities/scheduler-job/scheduler-job.types.mjs +2 -0
- package/esm2022/scheduler-job-management/lib/entity.provider.mjs +25 -0
- package/esm2022/scheduler-job-management/lib/menu.provider.mjs +31 -0
- package/esm2022/scheduler-job-management/lib/scheduler-job-management.module.mjs +44 -0
- 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 +262 -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 +308 -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-B6WPz0N8.mjs} +5 -5
- package/fesm2022/{acorex-modules-application-management-module-designer.component-CaR_HZfL.mjs.map → acorex-modules-application-management-module-designer.component-B6WPz0N8.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +30 -30
- 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-utPX4yb_.mjs} +42 -51
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-utPX4yb_.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-DhPEtLuK.mjs → acorex-modules-auth-app-chooser.component-TeYGIm6k.mjs} +6 -6
- package/fesm2022/acorex-modules-auth-app-chooser.component-TeYGIm6k.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-login.module-sFVL-lYB.mjs → acorex-modules-auth-login.module-CJwYNVRQ.mjs} +6 -6
- package/fesm2022/{acorex-modules-auth-login.module-sFVL-lYB.mjs.map → acorex-modules-auth-login.module-CJwYNVRQ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-Bnt5qiio.mjs → acorex-modules-auth-master.layout-CTC5upRa.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-master.layout-Bnt5qiio.mjs.map → acorex-modules-auth-master.layout-CTC5upRa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-BXL-aLTx.mjs → acorex-modules-auth-password.component-DWnYxb-x.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-password.component-BXL-aLTx.mjs.map → acorex-modules-auth-password.component-DWnYxb-x.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-ClaRp38G.mjs → acorex-modules-auth-password.component-DZb3bTWc.mjs} +11 -8
- package/fesm2022/acorex-modules-auth-password.component-DZb3bTWc.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-MDneFw2m.mjs → acorex-modules-auth-routes-CP1BJb5A.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-MDneFw2m.mjs.map → acorex-modules-auth-routes-CP1BJb5A.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-JsnQJZvC.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-two-factor.module-BHulbf0N.mjs.map → acorex-modules-auth-two-factor.module-JsnQJZvC.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +3 -3
- package/fesm2022/acorex-modules-backend.mjs +14 -97
- 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-scheduler-job-management.mjs +482 -0
- package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-setting-management.mjs +393 -0
- package/fesm2022/acorex-modules-setting-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-text-template-management.mjs +1181 -0
- 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 +33 -27
- package/platform-management/lib/const.d.ts +11 -0
- package/platform-management/lib/menu.provider.d.ts +3 -3
- package/scheduler-job-management/README.md +3 -0
- package/scheduler-job-management/index.d.ts +4 -0
- package/scheduler-job-management/lib/const.d.ts +7 -0
- package/scheduler-job-management/lib/entities/index.d.ts +1 -0
- package/scheduler-job-management/lib/entities/scheduler-job/index.d.ts +4 -0
- package/{template-management/lib/entities/text-template.entity.d.ts → scheduler-job-management/lib/entities/scheduler-job/scheduler-job.entity.d.ts} +1 -1
- package/scheduler-job-management/lib/entities/scheduler-job/scheduler-job.module.d.ts +6 -0
- package/scheduler-job-management/lib/entities/scheduler-job/scheduler-job.service.d.ts +10 -0
- package/scheduler-job-management/lib/entities/scheduler-job/scheduler-job.types.d.ts +5 -0
- package/scheduler-job-management/lib/entity.provider.d.ts +9 -0
- package/scheduler-job-management/lib/menu.provider.d.ts +5 -0
- package/scheduler-job-management/lib/scheduler-job-management.module.d.ts +7 -0
- 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/setting-management/lib/entities/setting/setting.entity.d.ts +3 -0
- 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/backend/lib/data/local/local-data-provider.d.ts +0 -23
- 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/backend/lib/data/local/local-data-provider.mjs +0 -94
- 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 +0 -1142
- 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
@@ -3,11 +3,49 @@ import { AXPEntityMasterSingleViewModel } from '@acorex/platform/layout/entity';
|
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export declare class AXPModuleEntityDetailViewComponent {
|
5
5
|
private activeRoute;
|
6
|
-
private workflow;
|
7
6
|
protected readonly vm: AXPEntityMasterSingleViewModel;
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
protected store: {
|
8
|
+
currentTheme: import("@angular/core").Signal<import("@acorex/platform/themes/shared").AXPThemeVariant>;
|
9
|
+
systemTheme: import("@angular/core").Signal<import("@acorex/platform/themes/shared").AXPThemeVariant>;
|
10
|
+
screenSize: import("@angular/core").Signal<import("@acorex/platform/themes/shared").AXPScreenSize>;
|
11
|
+
deviceType: import("@angular/core").Signal<import("@acorex/platform/themes/shared").AXPDeviceType>;
|
12
|
+
isTouchDevice: import("@angular/core").Signal<boolean>;
|
13
|
+
overlayLoading: import("@angular/core").Signal<boolean>;
|
14
|
+
navigationLoading: import("@angular/core").Signal<boolean>;
|
15
|
+
overlayLoadingTaskCount: import("@angular/core").Signal<number>;
|
16
|
+
navigationLoadingTaskCount: import("@angular/core").Signal<number>;
|
17
|
+
sideMenuState: import("@angular/core").Signal<import("@acorex/platform/themes/shared").AXPSideMenuState>;
|
18
|
+
isDarkMode: import("@angular/core").Signal<boolean>;
|
19
|
+
isLightMode: import("@angular/core").Signal<boolean>;
|
20
|
+
isSystemMode: import("@angular/core").Signal<boolean>;
|
21
|
+
isSideMenuOpen: import("@angular/core").Signal<boolean>;
|
22
|
+
isSmall: import("@angular/core").Signal<boolean>;
|
23
|
+
isMedium: import("@angular/core").Signal<boolean>;
|
24
|
+
isLarge: import("@angular/core").Signal<boolean>;
|
25
|
+
isMobileDevice: import("@angular/core").Signal<boolean>;
|
26
|
+
isTabletDevice: import("@angular/core").Signal<boolean>;
|
27
|
+
isDesktopDevice: import("@angular/core").Signal<boolean>;
|
28
|
+
isTouchScreen: import("@angular/core").Signal<boolean>;
|
29
|
+
isOverlayLoading: import("@angular/core").Signal<boolean>;
|
30
|
+
isNavigationLoading: import("@angular/core").Signal<boolean>;
|
31
|
+
changeTheme: (theme: import("@acorex/platform/themes/shared").AXPThemeVariant) => void;
|
32
|
+
openSideMenu: () => void;
|
33
|
+
closeSideMenu: () => void;
|
34
|
+
toggleSideMenu: () => void;
|
35
|
+
setNavigationLoading: (value: boolean) => void;
|
36
|
+
setOverlayLoading: (value: boolean) => void;
|
37
|
+
} & import("@ngrx/signals").StateSource<{
|
38
|
+
currentTheme: import("@acorex/platform/themes/shared").AXPThemeVariant;
|
39
|
+
systemTheme: import("@acorex/platform/themes/shared").AXPThemeVariant;
|
40
|
+
screenSize: import("@acorex/platform/themes/shared").AXPScreenSize;
|
41
|
+
deviceType: import("@acorex/platform/themes/shared").AXPDeviceType;
|
42
|
+
isTouchDevice: boolean;
|
43
|
+
overlayLoading: boolean;
|
44
|
+
navigationLoading: boolean;
|
45
|
+
overlayLoadingTaskCount: number;
|
46
|
+
navigationLoadingTaskCount: number;
|
47
|
+
sideMenuState: import("@acorex/platform/themes/shared").AXPSideMenuState;
|
48
|
+
}>;
|
11
49
|
protected selectedRelatedIEntityTabIndex: import("@angular/core").WritableSignal<number>;
|
12
50
|
handleActiveRelatedEntityChanged(e: AXTabStripChangedEvent): void;
|
13
51
|
protected selectedDetailTabIndex: import("@angular/core").WritableSignal<number>;
|
@@ -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
|
}
|
@@ -5,7 +5,6 @@ export declare class AXMAuthProfileSlotComponent {
|
|
5
5
|
private router;
|
6
6
|
private sessionService;
|
7
7
|
private dataService;
|
8
|
-
private mockerService;
|
9
8
|
protected hasPicture: import("@angular/core").WritableSignal<boolean>;
|
10
9
|
protected avatarText: import("@angular/core").WritableSignal<string>;
|
11
10
|
constructor();
|
@@ -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;
|
@@ -3,7 +3,6 @@ import * as i0 from "@angular/core";
|
|
3
3
|
export declare class AXMAuthErrorHandler implements AXPErrorHandler {
|
4
4
|
private router;
|
5
5
|
private layoutService;
|
6
|
-
private zone;
|
7
6
|
handleError(error: Error, next: (error: any) => void): void;
|
8
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMAuthErrorHandler, never>;
|
9
8
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXMAuthErrorHandler>;
|
@@ -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
|
}
|
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
|
|
4
4
|
export declare class AXMBackendDataProvider implements AXPDataProvider {
|
5
5
|
private http;
|
6
6
|
private configs;
|
7
|
+
private filterService;
|
7
8
|
private mainUrl;
|
8
9
|
constructor(http: HttpClient);
|
9
10
|
insertOne(entity: AXPEntityConfig, entityItem: any): Promise<any>;
|
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
|
@@ -10,15 +10,14 @@ import { AXLoadingModule } from '@acorex/components/loading';
|
|
10
10
|
import { AXPopoverModule } from '@acorex/components/popover';
|
11
11
|
import { AXTabsModule } from '@acorex/components/tabs';
|
12
12
|
import { AXTranslationModule } from '@acorex/core/translation';
|
13
|
-
import { AXPGridLayoutDirective, AXPStickyDirective,
|
13
|
+
import { AXPGridLayoutDirective, AXPStickyDirective, } from '@acorex/platform/common';
|
14
14
|
import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
15
15
|
import { AXPEntityDetailListViewComponent } from '@acorex/platform/themes/default';
|
16
|
+
import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
|
16
17
|
import { AXPWidgetsModule } from '@acorex/platform/widgets';
|
17
|
-
import { AXPWorkflowService } from '@acorex/platform/workflow';
|
18
18
|
import { CommonModule } from '@angular/common';
|
19
19
|
import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';
|
20
20
|
import { ActivatedRoute, RouterModule } from '@angular/router';
|
21
|
-
import { Store } from '@ngrx/store';
|
22
21
|
import * as i0 from "@angular/core";
|
23
22
|
import * as i1 from "@angular/common";
|
24
23
|
import * as i2 from "@angular/router";
|
@@ -33,12 +32,9 @@ import * as i10 from "@acorex/core/translation";
|
|
33
32
|
export class AXPModuleEntityDetailViewComponent {
|
34
33
|
constructor() {
|
35
34
|
this.activeRoute = inject(ActivatedRoute);
|
36
|
-
this.workflow = inject(AXPWorkflowService);
|
37
35
|
this.vm = this.activeRoute.snapshot.data['vm'];
|
38
36
|
//
|
39
|
-
this.store = inject(
|
40
|
-
this.isSM = this.store.select(isSmallScreen());
|
41
|
-
this.isOpen = this.store.select(getChildDrawer());
|
37
|
+
this.store = inject(AXPLayoutThemeService);
|
42
38
|
this.selectedRelatedIEntityTabIndex = signal(0);
|
43
39
|
this.selectedDetailTabIndex = signal(0);
|
44
40
|
}
|
@@ -53,7 +49,7 @@ export class AXPModuleEntityDetailViewComponent {
|
|
53
49
|
this.vm.destroy();
|
54
50
|
}
|
55
51
|
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\"
|
52
|
+
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 <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyOffset]=\"30\">\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]=\"store.isSmall()\">\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 [active]=\"last\" [class.!ax-font-semibold]=\"last\" [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\">\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]=\"(store.isSmall()) ? 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 [text]=\"tr.title\" class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\">\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 class=\"ax-xs\" color=\"ghost\" [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\">\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 [look]=\"'with-line'\" class=\"ax-mt-2 ax-font-semibold\" #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\">\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>", 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
53
|
//
|
58
54
|
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
55
|
//
|
@@ -83,6 +79,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
83
79
|
//
|
84
80
|
AXTranslationModule,
|
85
81
|
AXPEntityDetailListViewComponent,
|
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\"
|
82
|
+
], 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 <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyOffset]=\"30\">\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]=\"store.isSmall()\">\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 [active]=\"last\" [class.!ax-font-semibold]=\"last\" [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\">\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]=\"(store.isSmall()) ? 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 [text]=\"tr.title\" class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\">\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 class=\"ax-xs\" color=\"ghost\" [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\">\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 [look]=\"'with-line'\" class=\"ax-mt-2 ax-font-semibold\" #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\">\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>" }]
|
87
83
|
}] });
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWVudGl0eS1kZXRhaWwtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL2xheW91dHMvbW9kdWxlLWVudGl0eS1kZXRhaWwtdmlldy9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hcHBsaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvbGF5b3V0cy9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3L21vZHVsZS1lbnRpdHktZGV0YWlsLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBRUwsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7OztBQThCcEMsTUFBTSxPQUFPLGtDQUFrQztJQTVCL0M7UUE2QlUsZ0JBQVcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNCLE9BQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFtQyxDQUFDO1FBQy9GLEVBQUU7UUFDTSxVQUFLLEdBQUcsTUFBTSxDQUFDLENBQUEsS0FBMEIsQ0FBQSxDQUFDLENBQUM7UUFDekMsU0FBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDMUMsV0FBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFFN0MsbUNBQThCLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBTzNDLDJCQUFzQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQVM5QztJQWRDLGdDQUFnQyxDQUFDLENBQXlCO1FBQ3hELElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQ25CLENBQUM7SUFJRCw0QkFBNEIsQ0FBQyxDQUF5QjtRQUNwRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs4R0F4QlUsa0NBQWtDO2tHQUFsQyxrQ0FBa0Msd0VDekQvQyw4ekxBK0lBLDJDRC9HSSxZQUFZLG1GQUNaLFlBQVksK1FBQ1osaUJBQWlCLHVWQUNqQixnQkFBZ0Isd1BBQ2hCLGVBQWUsOEJBQ2YsWUFBWSxrTUFDWixtQkFBbUIsOEJBQ25CLGNBQWMsOEJBQ2QsY0FBYyw4QkFDZCxlQUFlLDhCQUNmLFlBQVksa2FBQ1osY0FBYyw4dkJBQ2QsbUJBQW1CO2dCQUNuQixFQUFFO2dCQUNGLHNCQUFzQixvV0FDdEIsZ0JBQWdCLCtCQUNoQixrQkFBa0IscUxBQ2xCLHNCQUFzQjtnQkFDdEIsRUFBRTtnQkFDRixtQkFBbUIsZ0dBQ25CLGdDQUFnQzs7MkZBS3ZCLGtDQUFrQztrQkE1QjlDLFNBQVM7OEJBRUM7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixFQUFFO3dCQUNGLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsRUFBRTt3QkFDRixtQkFBbUI7d0JBQ25CLGdDQUFnQztxQkFDakMsY0FDVyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEFjdGlvblNoZWV0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2FjdGlvbi1zaGVldCc7XG5pbXBvcnQgeyBBWEJyZWFkY3J1bWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWERyYXdlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcmF3ZXInO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUsIEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7XG4gIEFYUEFkbWluTGF5b3V0U3RhdGUsXG4gIEFYUEdyaWRMYXlvdXREaXJlY3RpdmUsXG4gIEFYUFN0aWNreURpcmVjdGl2ZSxcbiAgZ2V0Q2hpbGREcmF3ZXIsXG4gIGlzU21hbGxTY3JlZW4sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL2RlZmF1bHQnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0c01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYQWN0aW9uU2hlZXRNb2R1bGUsXG4gICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgQVhEaWFsb2dNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcbiAgICBBWFBXaWRnZXRzTW9kdWxlLFxuICAgIEFYUFN0aWNreURpcmVjdGl2ZSxcbiAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICAgIC8vXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld0NvbXBvbmVudCxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYUE1vZHVsZUVudGl0eURldGFpbFZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIGFjdGl2ZVJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdm0gPSB0aGlzLmFjdGl2ZVJvdXRlLnNuYXBzaG90LmRhdGFbJ3ZtJ10gYXMgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsO1xuICAvL1xuICBwcml2YXRlIHN0b3JlID0gaW5qZWN0KFN0b3JlPEFYUEFkbWluTGF5b3V0U3RhdGU+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
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWVudGl0eS1kZXRhaWwtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL2xheW91dHMvbW9kdWxlLWVudGl0eS1kZXRhaWwtdmlldy9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hcHBsaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvbGF5b3V0cy9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3L21vZHVsZS1lbnRpdHktZGV0YWlsLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGtCQUFrQixHQUNuQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBOEIvRCxNQUFNLE9BQU8sa0NBQWtDO0lBNUIvQztRQTZCVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQixPQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBbUMsQ0FBQztRQUMvRixFQUFFO1FBQ1EsVUFBSyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRDLG1DQUE4QixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQU8zQywyQkFBc0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FTOUM7SUFkQyxnQ0FBZ0MsQ0FBQyxDQUF5QjtRQUN4RCxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUNuQixDQUFDO0lBSUQsNEJBQTRCLENBQUMsQ0FBeUI7UUFDcEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLENBQUM7OEdBckJVLGtDQUFrQztrR0FBbEMsa0NBQWtDLHdFQ3JEL0MsNGxMQTBITSwyQ0Q5RkYsWUFBWSxtRkFDWixZQUFZLCtRQUNaLGlCQUFpQix1VkFDakIsZ0JBQWdCLHdQQUNoQixlQUFlLDhCQUNmLFlBQVksME1BQ1osbUJBQW1CLDhCQUNuQixjQUFjLDhCQUNkLGNBQWMsOEJBQ2QsZUFBZSw4QkFDZixZQUFZLGthQUNaLGNBQWMsOHZCQUNkLG1CQUFtQjtnQkFDbkIsRUFBRTtnQkFDRixzQkFBc0Isb1dBQ3RCLGdCQUFnQiwrQkFDaEIsa0JBQWtCLHFMQUNsQixzQkFBc0I7Z0JBQ3RCLEVBQUU7Z0JBQ0YsbUJBQW1CLGdHQUNuQixnQ0FBZ0M7OzJGQUt2QixrQ0FBa0M7a0JBNUI5QyxTQUFTOzhCQUVDO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsRUFBRTt3QkFDRixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLEVBQUU7d0JBQ0YsbUJBQW1CO3dCQUNuQixnQ0FBZ0M7cUJBQ2pDLGNBQ1csSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhBY3Rpb25TaGVldE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hY3Rpb24tc2hlZXQnO1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhEcmF3ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJhd2VyJztcbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhUYWJzTW9kdWxlLCBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQge1xuICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICBBWFBTdGlja3lEaXJlY3RpdmUsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL2RlZmF1bHQnO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IEFYUFdpZGdldHNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dpZGdldHMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9tb2R1bGUtZW50aXR5LWRldGFpbC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYQWN0aW9uU2hlZXRNb2R1bGUsXG4gICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgQVhEaWFsb2dNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcbiAgICBBWFBXaWRnZXRzTW9kdWxlLFxuICAgIEFYUFN0aWNreURpcmVjdGl2ZSxcbiAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICAgIC8vXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld0NvbXBvbmVudCxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYUE1vZHVsZUVudGl0eURldGFpbFZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIGFjdGl2ZVJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHZtID0gdGhpcy5hY3RpdmVSb3V0ZS5zbmFwc2hvdC5kYXRhWyd2bSddIGFzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbDtcbiAgLy9cbiAgcHJvdGVjdGVkIHN0b3JlID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkUmVsYXRlZElFbnRpdHlUYWJJbmRleCA9IHNpZ25hbCgwKTtcblxuICBoYW5kbGVBY3RpdmVSZWxhdGVkRW50aXR5Q2hhbmdlZChlOiBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlbGF0ZWRJRW50aXR5VGFiSW5kZXguc2V0KGUuaW5kZXgpO1xuICAgIHRoaXMudm0uc2VjdGlvbnM7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWREZXRhaWxUYWJJbmRleCA9IHNpZ25hbCgwKTtcblxuICBoYW5kbGVBY3RpdmVEZXRhaWxUYWJDaGFuZ2VkKGU6IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGV0YWlsVGFiSW5kZXguc2V0KGUuaW5kZXgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy52bS5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LW1pbi1oLWZ1bGwgYXgtcHgtNCBheC1wYi00IG1kOmF4LXB4LTYgYXgtYmctc3VyZmFjZSBheC1ib3JkZXItYiBtZDpheC1ib3JkZXItMCBtZDpheC1iZy1kZWZhdWx0XCI+XG4gIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LXB0LTQgYXgtc3RpY2t5IGF4LXRvcC0wIGF4LXotMTAgYXgtdHJhbnNpdGlvbi1hbGxcIiAjc3RpY2t5PVwiYXhwU3RpY2t5XCJcbiAgICBbYXhwU3RpY2t5XT1cIidheC1iZy1zdXJmYWNlIGF4LXB4LTYgYXgtcHktMyAtYXgtbXgtNiBheC1zaGFkb3cteGwnXCIgW3N0aWNreU9mZnNldF09XCIzMFwiPlxuICAgIDwhLS0tLS0tLS0gQmVnaW4gVG9vbGJhciAgLS0tLS0tLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSAgLS0tLS0tLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMSBheC1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTIgYXgtdHJhbnNpdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXhsIG1kOmF4LXRleHQtMnhsIGF4LWZvbnQtYm9sZFwiPnt7IHZtLnRpdGxlKCkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvZGl2PlxuICAgICAgICAgIEBpZih2bS5kZXNjcmlwdGlvbigpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1uZXV0cmFsLTYwMFwiIFtjbGFzcy5heC1oaWRkZW5dPVwic3RpY2t5LmlzU3RpY2t5XCI+XG4gICAgICAgICAgICB7eyB2bS5kZXNjcmlwdGlvbigpIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxheC1icmVhZGNydW1icyBjbGFzcz1cImNoaWxkOmF4LWZvbnQtbm9ybWFsIGNoaWxkOmF4LXRleHQtbmV1dHJhbC00MDBcIiBbY2xhc3MuYXgtaGlkZGVuXT1cInN0b3JlLmlzU21hbGwoKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkaXZpZGVyPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNoZXZyb24tcmlnaHQgYXgtdGV4dC14cyBheC1teC0yXCI+PC9pPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIEBmb3IoYiBvZiB2bS5iZWFyZGNydW1icygpO3RyYWNrICRpbmRleDtsZXQgbGFzdD0kbGFzdCkge1xuICAgICAgICAgICAgPGF4LWJyZWFkY3J1bWJzLWl0ZW0gW2FjdGl2ZV09XCJsYXN0XCIgW2NsYXNzLiFheC1mb250LXNlbWlib2xkXT1cImxhc3RcIiBbY2xhc3MuIWF4LXRleHQtbmV1dHJhbC02MDBdPVwibGFzdFwiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImIudXJsXCI+XG4gICAgICAgICAgICAgIEBpZihiLmljb24pIHtcbiAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImIuaWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB7eyBiLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgIDwvYXgtYnJlYWRjcnVtYnMtaXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggVGl0bGUgIC0tLS0tLS0tPlxuICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgICA8IS0tIEJlZ2luIEFjdGlvbiBNZW51ICAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtM1wiPlxuICAgICAgICBAZm9yKHRyIG9mIHZtLnByaW1hcnlBY3Rpb25zKCk7dHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxheC1idXR0b24gW3RleHRdPVwidHIudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luY1wiIFtjb2xvcl09XCJ0ci5jb2xvclwiIChvbkNsaWNrKT1cInZtLmV4ZWN1dGVDb21tYW5kKHRyLm5hbWUpXCI+XG4gICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cInRyLmljb25cIj4gPC9heC1pY29uPlxuICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgfSBAaWYodm0uc2Vjb25kYXJ5QWN0aW9ucygpLmxlbmd0aCkge1xuICAgICAgICA8YXgtYnV0dG9uIFt0ZXh0XT1cIihzdG9yZS5pc1NtYWxsKCkpID8gbnVsbCA6ICdBY3Rpb25zJ1wiIGNvbG9yPVwiZ2hvc3RcIj5cbiAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1lbGxpcHNpcy12ZXJ0aWNhbFwiPjwvaT5cbiAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICAgICAgQGZvcih0ciBvZiB2bS5zZWNvbmRhcnlBY3Rpb25zKCk7dHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgQGlmKHRyLnNlcGFyYXRlZCkge1xuICAgICAgICAgICAgICAgIDxheC1kaXZpZGVyPjwvYXgtZGl2aWRlcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIFt0ZXh0XT1cInRyLnRpdGxlXCIgY2xhc3M9XCJheC1mb250LXNlbWlib2xkIGF4LXRleHQte3sgdHIuY29sb3IgfX1cIlxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidm0uZXhlY3V0ZUNvbW1hbmQodHIubmFtZSlcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cInRyLmljb25cIj4gPC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIEZpbmlzaCBBY3Rpb24gTWVudSAgLS0+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTdGFydCBTZWN0aW9ucyAgLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00XCI+XG4gICAgICBAZm9yKHNlY3Rpb24gb2Ygdm0uc2VjdGlvbnMoKTsgdHJhY2sgc2VjdGlvbi5uYW1lKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkIGF4LW10LTRcIiBbZ3JpZExheW91dF09XCJzZWN0aW9uLmxheW91dCgpXCI+XG4gICAgICAgIDxheC1mb3JtICNmb3JtPlxuICAgICAgICAgIDxheHAtd2lkZ2V0cy1jb250YWluZXIgW2NvbnRleHRdPVwidm0uY29udGV4dCgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FyZC1oZWFkZXIgIWF4LXB5LTIgIWF4LXB4LTRcIj5cbiAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIhYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkXCI+e3sgc2VjdGlvbi50aXRsZSgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgIEBpZihzZWN0aW9uLmRlc2NyaXB0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXRleHQtc20gYXgtZm9udC1ub3JtYWwgYXgtdGV4dC1ncmF5LTUwMFwiPnt7IHNlY3Rpb24uZGVzY3JpcHRpb24oKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgQGlmKHNlY3Rpb24uZWRpdGFibGUoKSkge1xuICAgICAgICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgteHNcIiBjb2xvcj1cImdob3N0XCIgW2xvb2tdPVwiJ2JsYW5rJ1wiXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidm0uZXhlY3V0ZUNvbW1hbmQoJ21vZGlmeS1lbnRpdHktc2VjdGlvbicsIHNlY3Rpb24pXCI+XG4gICAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1wZW4gYXgtdGV4dC1ncmF5LTYwMFwiPiA8L2F4LWljb24+XG4gICAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkLWJvZHkgIWF4LWdyaWQgIWF4LWdyaWQtY29scy0xMiAhYXgtZ2FwLTRcIj5cbiAgICAgICAgICAgICAgQGZvcihhdHRyIG9mIHNlY3Rpb24ucHJvcHMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0xXCIgW2dyaWRMYXlvdXRdPVwiYXR0ci5sYXlvdXQoKVwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57eyBhdHRyLnRpdGxlKCkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LW5ldXRyYWwtNTAwXCI+XG4gICAgICAgICAgICAgICAgICA8YXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJhdHRyLm5vZGUoKVwiIFttb2RlXT1cIid2aWV3J1wiPiA8L2F4cC13aWRnZXQtcmVuZGVyZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2F4cC13aWRnZXRzLWNvbnRhaW5lcj5cbiAgICAgICAgPC9heC1mb3JtPlxuICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPCEtLSBGaW5pc2ggU2VjdGlvbnMgIC0tPlxuICAgIEBpZih2bS5yZWxhdGVkRW50aXRpZXMoKS5sZW5ndGgpIHtcbiAgICA8YXgtdGFicyBbbG9va109XCInd2l0aC1saW5lJ1wiIGNsYXNzPVwiYXgtbXQtMiBheC1mb250LXNlbWlib2xkXCIgI3RhYlxuICAgICAgKG9uQWN0aXZlVGFiQ2hhbmdlZCk9XCJoYW5kbGVBY3RpdmVSZWxhdGVkRW50aXR5Q2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICBAZm9yKGUgb2Ygdm0ucmVsYXRlZEVudGl0aWVzKCk7dHJhY2sgJGluZGV4O2xldCBpbmRleD0gJGluZGV4KXtcbiAgICAgIDxheC10YWItaXRlbSBbdGV4dF09XCIoZS50aXRsZSgpIHwgdHJhbnNsYXRlIHwgYXN5bmMpIVwiIFtrZXldPVwiaW5kZXgudG9TdHJpbmcoKVwiPiA8L2F4LXRhYi1pdGVtPlxuICAgICAgfVxuICAgIDwvYXgtdGFicz5cbiAgICBAZm9yKGUgb2Ygdm0ucmVsYXRlZEVudGl0aWVzKCk7dHJhY2sgJGluZGV4O2xldCBpbmRleD0gJGluZGV4KXtcbiAgICA8ZGl2IFtjbGFzcy5heC1oaWRkZW5dPVwiJGluZGV4ICE9PSBzZWxlY3RlZFJlbGF0ZWRJRW50aXR5VGFiSW5kZXgoKVwiPlxuICAgICAgPGF4cC1lbnRpdHktZGV0YWlsLWxpc3QtdmlldyBbdmlld01vZGVsXT1cImVcIj48L2F4cC1lbnRpdHktZGV0YWlsLWxpc3Qtdmlldz5cbiAgICA8L2Rpdj5cbiAgICB9IH1cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|