@acorex/platform 18.0.5 → 18.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/auth/README.md +3 -3
- package/auth/lib/auth.strategy.d.ts +1 -1
- package/auth/lib/session.service.d.ts +0 -1
- package/common/README.md +3 -3
- package/common/lib/app/application.types.d.ts +10 -6
- package/common/lib/data/data-provider.types.d.ts +1 -1
- package/common/lib/schema/entity/entity.class.d.ts +1 -0
- package/common/lib/schema/widgets/lookup/lookup-widget-column.component.d.ts +1 -1
- package/common/lib/schema/widgets/lookup/lookup-widget-edit.component.d.ts +3 -1
- package/common/lib/schema/widgets/phone/phone-widget-edit.component.d.ts +3 -1
- package/esm2022/auth/index.mjs +1 -1
- package/esm2022/auth/lib/application/application.loader.mjs +1 -1
- package/esm2022/auth/lib/application/application.types.mjs +1 -1
- package/esm2022/auth/lib/auth-registry.service.mjs +1 -1
- package/esm2022/auth/lib/auth.guard.mjs +4 -4
- package/esm2022/auth/lib/auth.module.mjs +1 -1
- package/esm2022/auth/lib/auth.strategy.mjs +1 -1
- package/esm2022/auth/lib/errors.types.mjs +1 -1
- package/esm2022/auth/lib/feature/feature.directive.mjs +1 -1
- package/esm2022/auth/lib/feature/feature.guard.mjs +1 -1
- package/esm2022/auth/lib/feature/feature.loader.mjs +1 -1
- package/esm2022/auth/lib/feature/feature.types.mjs +1 -1
- package/esm2022/auth/lib/feature/index.mjs +1 -1
- package/esm2022/auth/lib/permission/index.mjs +1 -1
- package/esm2022/auth/lib/permission/permission.directive.mjs +1 -1
- package/esm2022/auth/lib/permission/permission.guard.mjs +1 -1
- package/esm2022/auth/lib/permission/permission.loader.mjs +1 -1
- package/esm2022/auth/lib/permission/permission.types.mjs +1 -1
- package/esm2022/auth/lib/session.service.mjs +14 -15
- package/esm2022/auth/lib/session.types.mjs +1 -1
- package/esm2022/auth/lib/tenant/tenant.loader.mjs +1 -1
- package/esm2022/auth/lib/tenant/tenant.types.mjs +1 -1
- package/esm2022/auth/lib/user/user.types.mjs +1 -1
- package/esm2022/common/index.mjs +1 -1
- package/esm2022/common/lib/app/application.types.mjs +5 -1
- package/esm2022/common/lib/app/index.mjs +1 -1
- package/esm2022/common/lib/app/operators.mjs +1 -1
- package/esm2022/common/lib/common.module.mjs +1 -1
- package/esm2022/common/lib/configs/app.config.mjs +1 -1
- package/esm2022/common/lib/configs/config.types.mjs +1 -1
- package/esm2022/common/lib/data/data-provider.types.mjs +1 -1
- package/esm2022/common/lib/data/dexie-storage.service.mjs +1 -1
- package/esm2022/common/lib/data/entity-data-provider.mjs +1 -1
- package/esm2022/common/lib/data/index.mjs +1 -1
- package/esm2022/common/lib/data/storage-service.mjs +1 -1
- package/esm2022/common/lib/errors/error-handler-registry.service.mjs +1 -1
- package/esm2022/common/lib/errors/error-handler.types.mjs +1 -1
- package/esm2022/common/lib/errors/global-error-handler.mjs +1 -1
- package/esm2022/common/lib/errors/index.mjs +1 -1
- package/esm2022/common/lib/layout/beardcrumb.type.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/component-slot-loader.service.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/component-slot-registery.service.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/component-slot.directive.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/component-slot.module.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/component-slot.types.mjs +1 -1
- package/esm2022/common/lib/layout/component-slot/index.mjs +1 -1
- package/esm2022/common/lib/layout/grid-layout/grid-layout.directive.mjs +1 -1
- package/esm2022/common/lib/layout/grid-layout/grid-layout.types.mjs +1 -1
- package/esm2022/common/lib/layout/grid-layout/index.mjs +1 -1
- package/esm2022/common/lib/layout/index.mjs +1 -1
- package/esm2022/common/lib/layout/layout.service.mjs +1 -1
- package/esm2022/common/lib/layout/logo/index.mjs +1 -1
- package/esm2022/common/lib/layout/logo/logo.component.mjs +3 -3
- package/esm2022/common/lib/layout/logo/logo.types.mjs +1 -1
- package/esm2022/common/lib/layout/menu/index.mjs +1 -1
- package/esm2022/common/lib/layout/menu/menu.loader.mjs +1 -1
- package/esm2022/common/lib/layout/menu/menu.types.mjs +1 -1
- package/esm2022/common/lib/layout/sticky.directive.mjs +1 -1
- package/esm2022/common/lib/layout/theme/components/slots/footer-text-slot.component.mjs +5 -5
- package/esm2022/common/lib/layout/theme/components/slots/index.mjs +1 -1
- package/esm2022/common/lib/layout/theme/components/slots/navbar-slot.component.mjs +9 -9
- package/esm2022/common/lib/layout/theme/components/slots/theme-slot.component.mjs +16 -16
- package/esm2022/common/lib/layout/theme/store/admin-layout.actions.mjs +1 -1
- package/esm2022/common/lib/layout/theme/store/admin-layout.effects.mjs +1 -1
- package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +1 -1
- package/esm2022/common/lib/layout/theme/store/admin-layout.selectors.mjs +1 -1
- package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +1 -1
- package/esm2022/common/lib/layout/theme/store/index.mjs +1 -1
- package/esm2022/common/lib/schema/component-loader.mjs +1 -1
- package/esm2022/common/lib/schema/entity/entity-registery.service.mjs +1 -1
- package/esm2022/common/lib/schema/entity/entity.class.mjs +1 -1
- package/esm2022/common/lib/schema/entity/entity.loader.mjs +1 -1
- package/esm2022/common/lib/schema/entity/index.mjs +1 -1
- package/esm2022/common/lib/schema/formats.mjs +1 -1
- package/esm2022/common/lib/schema/index.mjs +1 -1
- package/esm2022/common/lib/schema/schema-registery.service.mjs +1 -1
- package/esm2022/common/lib/schema/schema.module.mjs +1 -1
- package/esm2022/common/lib/schema/schema.types.mjs +1 -1
- package/esm2022/common/lib/schema/widget/index.mjs +1 -1
- package/esm2022/common/lib/schema/widget/widget-base.mjs +1 -1
- package/esm2022/common/lib/schema/widget/widget-column-renderer.mjs +17 -17
- package/esm2022/common/lib/schema/widget/widget-filter-renderer.mjs +13 -13
- package/esm2022/common/lib/schema/widget/widget-renderer.mjs +13 -13
- package/esm2022/common/lib/schema/widget/widget-token.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-edit.component.mjs +68 -68
- package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-view.component.mjs +16 -16
- package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-column.component.mjs +31 -31
- package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-edit.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-view.component.mjs +25 -25
- package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +76 -76
- package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +86 -86
- package/esm2022/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.mjs +68 -68
- package/esm2022/common/lib/schema/widgets/common-widgets.module.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-column.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.mjs +100 -100
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +60 -60
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-view.component.mjs +21 -21
- package/esm2022/common/lib/schema/widgets/email/email-widget-column.component.mjs +23 -23
- package/esm2022/common/lib/schema/widgets/email/email-widget-edit.component.mjs +134 -134
- package/esm2022/common/lib/schema/widgets/email/email-widget-view.component.mjs +65 -65
- package/esm2022/common/lib/schema/widgets/file/file-widget-column.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/file/file-widget-edit.component.mjs +116 -116
- package/esm2022/common/lib/schema/widgets/file/file-widget-filter.component.mjs +6 -6
- package/esm2022/common/lib/schema/widgets/file/file-widget-view.component.mjs +70 -70
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-edit.component.mjs +125 -125
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-filter.component.mjs +6 -6
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-types.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-view.component.mjs +109 -109
- package/esm2022/common/lib/schema/widgets/index.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-column.component.mjs +3 -3
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-edit.component.mjs +48 -44
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +66 -66
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-view.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/map/map-widget-edit.component.mjs +5 -5
- package/esm2022/common/lib/schema/widgets/map/map-widget-view.component.mjs +5 -5
- package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-column.component.mjs +23 -23
- package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-edit.component.mjs +88 -88
- package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-view.component.mjs +67 -67
- package/esm2022/common/lib/schema/widgets/number/number-widget-edit.component.mjs +15 -15
- package/esm2022/common/lib/schema/widgets/number/number-widget-view.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/password/change-password.component.mjs +100 -100
- package/esm2022/common/lib/schema/widgets/password/password-widget-column.component.mjs +37 -37
- package/esm2022/common/lib/schema/widgets/password/password-widget-edit.component.mjs +15 -15
- package/esm2022/common/lib/schema/widgets/password/password-widget-view.component.mjs +58 -58
- package/esm2022/common/lib/schema/widgets/phone/phone-widget-column.component.mjs +41 -41
- package/esm2022/common/lib/schema/widgets/phone/phone-widget-edit.component.mjs +146 -142
- package/esm2022/common/lib/schema/widgets/phone/phone-widget-view.component.mjs +69 -69
- package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-column.component.mjs +23 -23
- package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-edit.component.mjs +9 -9
- package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-view.component.mjs +9 -9
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-column.component.mjs +17 -17
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-edit.component.mjs +29 -29
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-filter.component.mjs +20 -20
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-view.component.mjs +9 -9
- package/esm2022/common/lib/schema/widgets/signature-pad/signature-pad-widget-edit.component.mjs +56 -56
- package/esm2022/common/lib/schema/widgets/signature-pad/signature-pad-widget-view.component.mjs +17 -17
- package/esm2022/common/lib/schema/widgets/text/largetext-widget-edit.component.mjs +13 -13
- package/esm2022/common/lib/schema/widgets/text/text-widget-column.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/text/text-widget-edit.component.mjs +88 -88
- package/esm2022/common/lib/schema/widgets/text/text-widget-view.component.mjs +21 -21
- package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-column.component.mjs +33 -33
- package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-edit.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-view.component.mjs +25 -25
- package/esm2022/common/lib/settings/index.mjs +1 -1
- package/esm2022/common/lib/settings/settings.loader.mjs +1 -1
- package/esm2022/common/lib/settings/settings.service.mjs +1 -1
- package/esm2022/common/lib/settings/settings.types.mjs +1 -1
- package/esm2022/common/lib/store/common.actions.mjs +1 -1
- package/esm2022/common/lib/store/common.effects.mjs +1 -1
- package/esm2022/common/lib/store/index.mjs +1 -1
- package/esm2022/common/lib/utils/clipboard-service.mjs +1 -1
- package/esm2022/common/lib/utils/data-generator.mjs +1 -1
- package/esm2022/common/lib/utils/index.mjs +1 -1
- package/esm2022/common/lib/utils/pdf.service.mjs +1 -1
- package/esm2022/common/lib/utils/router-util.service.mjs +1 -1
- package/esm2022/common/lib/workflows/common.workflow.mjs +1 -1
- package/esm2022/common/lib/workflows/error-handler.mjs +1 -1
- package/esm2022/common/lib/workflows/index.mjs +1 -1
- package/esm2022/index.mjs +1 -1
- package/esm2022/layout/builder/index.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/builder.module.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/builder.service.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/index.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/layout.types.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/widget-column-renderer.mjs +17 -17
- package/esm2022/layout/builder/lib/builder/widget-container.component.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/widget-registery.service.mjs +1 -1
- package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +19 -19
- package/esm2022/layout/builder/lib/builder/widget.types.mjs +1 -1
- package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +28 -13
- package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +1 -1
- package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +64 -57
- package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +4 -8
- package/esm2022/layout/entity/lib/entity-master-update.viewmodel.mjs +1 -1
- package/esm2022/layout/entity/lib/entity-registery.service.mjs +1 -1
- package/esm2022/layout/entity/lib/entity.config.mjs +1 -1
- package/esm2022/layout/entity/lib/entity.module.mjs +16 -19
- package/esm2022/layout/entity/lib/entity.viewmodel.mjs +1 -1
- package/esm2022/layout/entity/lib/index.mjs +1 -1
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +81 -72
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +105 -83
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +1 -1
- package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +11 -8
- package/esm2022/layout/entity/lib/workflows/delete-entity.workflow.mjs +3 -3
- package/esm2022/layout/entity/lib/workflows/modify-section.workflow.mjs +1 -1
- package/esm2022/layout/entity/lib/workflows/show-details.workflow.mjs +1 -2
- package/esm2022/layout/entity/lib/workflows/show-list.workflow.mjs +1 -1
- package/esm2022/layouts/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/admin.module.mjs +9 -2
- package/esm2022/layouts/lib/admin/admin.routes.mjs +1 -1
- package/esm2022/layouts/lib/admin/custom-reuse.strategy.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +6 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +7 -5
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-import-view/entity-import-view.component.mjs +91 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +4 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +4 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +4 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.mjs +20 -20
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.mjs +4 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +18 -6
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.mjs +9 -5
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +6 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +5 -3
- package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/import-entity.workflow.mjs +77 -0
- package/esm2022/layouts/lib/admin/entity-layout/workflows/index.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-section.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/show-details.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/show-list.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/show-quick-view.workflow.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity.resolver.mjs +1 -1
- package/esm2022/layouts/lib/admin/index.mjs +1 -1
- package/esm2022/layouts/lib/layout.module.mjs +1 -1
- package/esm2022/mocks/index.mjs +1 -1
- package/esm2022/mocks/lib/mocks.module.mjs +1 -1
- package/esm2022/mocks/lib/services/mocker.service.mjs +1 -1
- package/esm2022/mocks/lib/storage/storage.mock.service.mjs +1 -1
- package/esm2022/native/index.mjs +1 -1
- package/esm2022/native/lib/native.service.mjs +1 -1
- package/esm2022/themes/default/index.mjs +1 -1
- package/esm2022/themes/default/lib/default.module.mjs +1 -1
- package/esm2022/themes/default/lib/entity-reuse.strategy.mjs +1 -1
- package/esm2022/themes/default/lib/layout.routes.mjs +1 -1
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +14 -21
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +8 -5
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +38 -29
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +17 -13
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +13 -9
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +8 -5
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +10 -7
- package/esm2022/themes/default/lib/layouts/root-layout/components/footer/footer.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/root-layout/index.mjs +1 -1
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +1 -1
- package/esm2022/themes/default/lib/pages/errors/error-401/error-401.component.mjs +3 -3
- package/esm2022/themes/default/lib/pages/errors/error-404/error-404.component.mjs +3 -3
- package/esm2022/themes/default/lib/pages/errors/error-offline/error-offline.component.mjs +3 -3
- package/esm2022/widgets/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-column.component.mjs +25 -25
- package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-edit.component.mjs +9 -9
- package/esm2022/widgets/lib/editors/checkbox/checkbox-widget-view.component.mjs +29 -29
- package/esm2022/widgets/lib/editors/checkbox/checkbox-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/checkbox/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.mjs +54 -54
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +17 -17
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/date-time-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-column.component.mjs +21 -21
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-edit.component.mjs +142 -142
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-view.component.mjs +69 -69
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/email-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-edit.component.mjs +112 -112
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget-view.component.mjs +64 -64
- package/esm2022/widgets/lib/editors/file-box-widget/file-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/file-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-edit.component.mjs +107 -107
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-types.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget-view.component.mjs +97 -97
- package/esm2022/widgets/lib/editors/gallery-widget/gallery-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/gallery-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/link-widget/index.mjs +8 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-column.component.mjs +19 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-designer.component.mjs +19 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-edit.component.mjs +391 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-filter.component.mjs +20 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-view.component.mjs +120 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget.config.mjs +24 -0
- package/esm2022/widgets/lib/editors/map-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-edit.component.mjs +5 -5
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget-view.component.mjs +5 -5
- package/esm2022/widgets/lib/editors/map-box-widget/map-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-edit.component.mjs +74 -71
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-view.component.mjs +17 -17
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-edit.component.mjs +9 -9
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget-view.component.mjs +45 -45
- package/esm2022/widgets/lib/editors/password-box-widget/password-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/phone-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-column.component.mjs +21 -21
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-edit.component.mjs +141 -139
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-view.component.mjs +69 -69
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.mjs +9 -9
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.mjs +9 -9
- package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-edit.component.mjs +26 -26
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-view.component.mjs +23 -23
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/selection-list-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-column.component.mjs +13 -13
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-edit.component.mjs +31 -31
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-view.component.mjs +9 -9
- package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +68 -58
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.mjs +17 -17
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.mjs +62 -62
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-view.component.mjs +17 -17
- package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-column.component.mjs +25 -25
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-edit.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget-view.component.mjs +25 -25
- package/esm2022/widgets/lib/editors/toggle-widget/toggle-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/layout/block-widget/block-widget.component.mjs +11 -11
- package/esm2022/widgets/lib/layout/block-widget/block-widget.config.mjs +1 -1
- package/esm2022/widgets/lib/layout/block-widget/index.mjs +1 -1
- package/esm2022/widgets/lib/widgets.module.mjs +4 -1
- package/esm2022/workflow/index.mjs +1 -1
- package/esm2022/workflow/lib/actions/start-workflow.action.mjs +1 -1
- package/esm2022/workflow/lib/errors.types.mjs +1 -1
- package/esm2022/workflow/lib/workflow-event-dispatcher.service.mjs +1 -1
- package/esm2022/workflow/lib/workflow-registery.service.mjs +1 -1
- package/esm2022/workflow/lib/workflow.module.mjs +1 -1
- package/esm2022/workflow/lib/workflow.service.mjs +1 -1
- package/esm2022/workflow/lib/workflow.types.mjs +1 -1
- package/fesm2022/acorex-platform-auth.mjs +14 -15
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs → acorex-platform-common-avatar-widget-edit.component-BtnVjoMi.mjs} +68 -68
- package/fesm2022/acorex-platform-common-avatar-widget-edit.component-BtnVjoMi.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs → acorex-platform-common-avatar-widget-view.component-0-hGLYLK.mjs} +16 -16
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-0-hGLYLK.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs → acorex-platform-common-boolean-widget-filter.component-CMkjO_x1.mjs} +76 -76
- package/fesm2022/acorex-platform-common-boolean-widget-filter.component-CMkjO_x1.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-change-password.component-NvrMMq9e.mjs → acorex-platform-common-change-password.component-CULJjn0l.mjs} +100 -100
- package/fesm2022/acorex-platform-common-change-password.component-CULJjn0l.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs → acorex-platform-common-checkbox-widget-column.component-C91gG8nm.mjs} +31 -31
- package/fesm2022/acorex-platform-common-checkbox-widget-column.component-C91gG8nm.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-_jtT03Vn.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs → acorex-platform-common-checkbox-widget-view.component-BDAtJB1B.mjs} +25 -25
- package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs.map → acorex-platform-common-checkbox-widget-view.component-BDAtJB1B.mjs.map} +1 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-column.component-5ljYmtHI.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-D8FSiqAo.mjs → acorex-platform-common-dateTime-widget-edit.component-DdqtbOY1.mjs} +100 -100
- package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-DdqtbOY1.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-Df0DuDtw.mjs → acorex-platform-common-dateTime-widget-filter.component-BjtIJkeC.mjs} +60 -60
- package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-BjtIJkeC.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-CjVjQkPh.mjs → acorex-platform-common-dateTime-widget-view.component-Dxmnor_-.mjs} +21 -21
- package/fesm2022/acorex-platform-common-dateTime-widget-view.component-Dxmnor_-.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-column.component-BgNdL62k.mjs → acorex-platform-common-email-widget-column.component-DlPoexcx.mjs} +23 -23
- package/fesm2022/acorex-platform-common-email-widget-column.component-DlPoexcx.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-edit.component-CgHPGccx.mjs → acorex-platform-common-email-widget-edit.component-CLl0gmdM.mjs} +134 -134
- package/fesm2022/acorex-platform-common-email-widget-edit.component-CLl0gmdM.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-view.component-C2aQ14k-.mjs → acorex-platform-common-email-widget-view.component-C4M7KGUS.mjs} +65 -65
- package/fesm2022/acorex-platform-common-email-widget-view.component-C4M7KGUS.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-file-widget-column.component-CwFzLLHt.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-file-widget-edit.component-DxoQR4CU.mjs → acorex-platform-common-file-widget-edit.component-ZXhaXwWN.mjs} +116 -116
- package/fesm2022/acorex-platform-common-file-widget-edit.component-ZXhaXwWN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-filter.component-BvG0iaKU.mjs → acorex-platform-common-file-widget-filter.component-DqYmxdx_.mjs} +6 -6
- package/fesm2022/acorex-platform-common-file-widget-filter.component-DqYmxdx_.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-view.component-BC9l3YrO.mjs → acorex-platform-common-file-widget-view.component-B0C9oJLT.mjs} +70 -70
- package/fesm2022/acorex-platform-common-file-widget-view.component-B0C9oJLT.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-BihOIJ9T.mjs → acorex-platform-common-gallery-widget-edit.component-DB0-6pik.mjs} +125 -125
- package/fesm2022/acorex-platform-common-gallery-widget-edit.component-DB0-6pik.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-DS1PCIJp.mjs → acorex-platform-common-gallery-widget-filter.component-Btrq4HP9.mjs} +6 -6
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-Btrq4HP9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-view.component-CnQONVdg.mjs → acorex-platform-common-gallery-widget-view.component-Bp5cEEiY.mjs} +109 -109
- package/fesm2022/acorex-platform-common-gallery-widget-view.component-Bp5cEEiY.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-BCtGkz1a.mjs → acorex-platform-common-largetext-widget-edit.component-DJhPlQ0G.mjs} +13 -13
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DJhPlQ0G.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-column.component-Cl-vO5XW.mjs → acorex-platform-common-lookup-widget-column.component-CtvP7V_w.mjs} +3 -3
- package/fesm2022/acorex-platform-common-lookup-widget-column.component-CtvP7V_w.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-Do_yV2hi.mjs → acorex-platform-common-lookup-widget-edit.component-JjtWsg2g.mjs} +48 -44
- package/fesm2022/acorex-platform-common-lookup-widget-edit.component-JjtWsg2g.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-AKqbYe-l.mjs → acorex-platform-common-lookup-widget-filter.component-B4C5JB_p.mjs} +66 -66
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-B4C5JB_p.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-lookup-widget-view.component-BHqYDEuU.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-map-widget-edit.component-SSrR3xxv.mjs → acorex-platform-common-map-widget-edit.component-BjrRrklq.mjs} +5 -5
- package/fesm2022/acorex-platform-common-map-widget-edit.component-BjrRrklq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-map-widget-view.component-DrGG3gzg.mjs → acorex-platform-common-map-widget-view.component-C5gL9-oB.mjs} +5 -5
- package/fesm2022/acorex-platform-common-map-widget-view.component-C5gL9-oB.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-column.component-BJ_XzNKc.mjs → acorex-platform-common-messenger-widget-column.component-BQSYcyso.mjs} +23 -23
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-BQSYcyso.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-B_FG_n0O.mjs → acorex-platform-common-messenger-widget-edit.component-BjqtP0ls.mjs} +88 -88
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-BjqtP0ls.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-view.component-EBiPO9ds.mjs → acorex-platform-common-messenger-widget-view.component-B4Yt68Vn.mjs} +67 -67
- package/fesm2022/acorex-platform-common-messenger-widget-view.component-B4Yt68Vn.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-edit.component-B1XXga-9.mjs → acorex-platform-common-number-widget-edit.component-D9dC514F.mjs} +15 -15
- package/fesm2022/acorex-platform-common-number-widget-edit.component-D9dC514F.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-filter.component-B2JCpDjU.mjs → acorex-platform-common-number-widget-filter.component-BkKeBL6p.mjs} +86 -86
- package/fesm2022/acorex-platform-common-number-widget-filter.component-BkKeBL6p.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-number-widget-view.component-DD0tkoc4.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-password-widget-column.component-eyqgQlAt.mjs → acorex-platform-common-password-widget-column.component-C0-x1_Np.mjs} +37 -37
- package/fesm2022/acorex-platform-common-password-widget-column.component-C0-x1_Np.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-edit.component-C2yNb9Pl.mjs → acorex-platform-common-password-widget-edit.component-BbYqIGEP.mjs} +15 -15
- package/fesm2022/acorex-platform-common-password-widget-edit.component-BbYqIGEP.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-view.component-o9S7pwJW.mjs → acorex-platform-common-password-widget-view.component-B6vGWi9I.mjs} +59 -59
- package/fesm2022/acorex-platform-common-password-widget-view.component-B6vGWi9I.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-phone-widget-column.component-BL9Xl2XH.mjs → acorex-platform-common-phone-widget-column.component-uAeAPCog.mjs} +41 -41
- package/fesm2022/acorex-platform-common-phone-widget-column.component-uAeAPCog.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-phone-widget-edit.component-DSh9zoZj.mjs → acorex-platform-common-phone-widget-edit.component-Dj_tdhZw.mjs} +146 -142
- package/fesm2022/acorex-platform-common-phone-widget-edit.component-Dj_tdhZw.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-phone-widget-view.component-Br3xbaDd.mjs → acorex-platform-common-phone-widget-view.component-D_A5NXzA.mjs} +69 -69
- package/fesm2022/acorex-platform-common-phone-widget-view.component-D_A5NXzA.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-DDT58tca.mjs → acorex-platform-common-rich-text-widget-column.component-DDJn1WqG.mjs} +23 -23
- package/fesm2022/acorex-platform-common-rich-text-widget-column.component-DDJn1WqG.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-Dz1toc21.mjs → acorex-platform-common-rich-text-widget-edit.component-f30-VPMJ.mjs} +9 -9
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-f30-VPMJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-CxTPcEIQ.mjs → acorex-platform-common-rich-text-widget-view.component-Y214kMe4.mjs} +9 -9
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-Y214kMe4.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-BCCmg8MI.mjs → acorex-platform-common-selection-list-widget-column.component-4uQzk7WQ.mjs} +17 -17
- package/fesm2022/acorex-platform-common-selection-list-widget-column.component-4uQzk7WQ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-B5eUdN2R.mjs → acorex-platform-common-selection-list-widget-edit.component-BY7A969M.mjs} +29 -29
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-BY7A969M.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-DPpZq1TB.mjs → acorex-platform-common-selection-list-widget-filter.component-hbxBcirf.mjs} +20 -20
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-hbxBcirf.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-Bxvd_AKZ.mjs → acorex-platform-common-selection-list-widget-view.component-HzxEiWgp.mjs} +9 -9
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-HzxEiWgp.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-CNjYCEi6.mjs → acorex-platform-common-signature-pad-widget-edit.component-C6VI3F_S.mjs} +56 -56
- package/fesm2022/acorex-platform-common-signature-pad-widget-edit.component-C6VI3F_S.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-CsiBv_7i.mjs → acorex-platform-common-signature-pad-widget-view.component-CEiBtv9t.mjs} +17 -17
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CEiBtv9t.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-string-widget-filter.component-CrGt6Bov.mjs → acorex-platform-common-string-widget-filter.component-BZiyRHfg.mjs} +68 -68
- package/fesm2022/acorex-platform-common-string-widget-filter.component-BZiyRHfg.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-text-widget-column.component-qXusAevm.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-text-widget-edit.component-ed0MUYnD.mjs → acorex-platform-common-text-widget-edit.component-DSwPteMX.mjs} +88 -88
- package/fesm2022/acorex-platform-common-text-widget-edit.component-DSwPteMX.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-view.component-BpxTaeQW.mjs → acorex-platform-common-text-widget-view.component-CKg9nvbY.mjs} +21 -21
- package/fesm2022/acorex-platform-common-text-widget-view.component-CKg9nvbY.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BqiUQrmV.mjs → acorex-platform-common-toggle-widget-column.component-_IrciAj-.mjs} +33 -33
- package/fesm2022/acorex-platform-common-toggle-widget-column.component-_IrciAj-.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-toggle-widget-edit.component-CDG62BJN.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-toggle-widget-view.component-DWYcIPTd.mjs → acorex-platform-common-toggle-widget-view.component-B5JwQ8X-.mjs} +25 -25
- package/fesm2022/acorex-platform-common-toggle-widget-view.component-B5JwQ8X-.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +125 -121
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +34 -34
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +384 -342
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-DgPPnU8S.mjs +110 -0
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-DgPPnU8S.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-entity-import-view.component-V50y5Jjs.mjs +93 -0
- package/fesm2022/acorex-platform-layouts-entity-import-view.component-V50y5Jjs.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-Bwz4yVpK.mjs +91 -0
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-Bwz4yVpK.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts.mjs +150 -55
- package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
- package/fesm2022/acorex-platform-mocks.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-qOxuoK6c.mjs +99 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-qOxuoK6c.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BJcpG94Q.mjs +88 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BJcpG94Q.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-BeQ4_BgW.mjs +31 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-BeQ4_BgW.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-BYDiT6Ns.mjs +25 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-BYDiT6Ns.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DUtW3w_g.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DUtW3w_g.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +83 -78
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-Cx6WLV3_.mjs → acorex-platform-widgets-checkbox-widget-column.component-CFCwedxX.mjs} +25 -25
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-CFCwedxX.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-C_68pr-9.mjs → acorex-platform-widgets-checkbox-widget-view.component-CCTIjDb0.mjs} +29 -29
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-CCTIjDb0.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +1990 -1376
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/layout/builder/README.md +3 -3
- package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +2 -1
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +9 -7
- package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -0
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +5 -4
- package/layout/entity/lib/workflows/create-entity.workflow.d.ts +1 -0
- package/layouts/README.md +3 -3
- package/layouts/lib/admin/entity-layout/entity-import-view/entity-import-view.component.d.ts +27 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +2 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.d.ts +2 -1
- package/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.d.ts +1 -0
- package/layouts/lib/admin/entity-layout/workflows/import-entity.workflow.d.ts +27 -0
- package/mocks/README.md +3 -3
- package/package.json +4 -1
- package/themes/default/README.md +3 -3
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +3 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +1 -1
- package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +1 -1
- package/widgets/README.md +3 -3
- package/widgets/lib/editors/link-widget/index.d.ts +7 -0
- package/widgets/lib/editors/link-widget/link-widget-column.component.d.ts +6 -0
- package/widgets/lib/editors/link-widget/link-widget-designer.component.d.ts +6 -0
- package/widgets/lib/editors/link-widget/link-widget-edit.component.d.ts +45 -0
- package/widgets/lib/editors/link-widget/link-widget-filter.component.d.ts +6 -0
- package/widgets/lib/editors/link-widget/link-widget-print.component.d.ts +6 -0
- package/widgets/lib/editors/link-widget/link-widget-view.component.d.ts +13 -0
- package/widgets/lib/editors/link-widget/link-widget.config.d.ts +2 -0
- package/widgets/lib/editors/number-box-widget/number-box-widget-edit.component.d.ts +4 -1
- package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.d.ts +2 -0
- package/workflow/README.md +3 -3
- package/fesm2022/acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-change-password.component-NvrMMq9e.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-D8FSiqAo.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-Df0DuDtw.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-view.component-CjVjQkPh.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-column.component-BgNdL62k.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-edit.component-CgHPGccx.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-view.component-C2aQ14k-.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-edit.component-DxoQR4CU.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-filter.component-BvG0iaKU.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-view.component-BC9l3YrO.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-edit.component-BihOIJ9T.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-DS1PCIJp.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-view.component-CnQONVdg.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-BCtGkz1a.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-column.component-Cl-vO5XW.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-edit.component-Do_yV2hi.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-AKqbYe-l.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-edit.component-SSrR3xxv.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-view.component-DrGG3gzg.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-BJ_XzNKc.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-B_FG_n0O.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-view.component-EBiPO9ds.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-edit.component-B1XXga-9.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-filter.component-B2JCpDjU.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-column.component-eyqgQlAt.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-edit.component-C2yNb9Pl.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-view.component-o9S7pwJW.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-column.component-BL9Xl2XH.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-edit.component-DSh9zoZj.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-view.component-Br3xbaDd.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-column.component-DDT58tca.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Dz1toc21.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-CxTPcEIQ.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-column.component-BCCmg8MI.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-B5eUdN2R.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DPpZq1TB.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-Bxvd_AKZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-signature-pad-widget-edit.component-CNjYCEi6.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CsiBv_7i.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-string-widget-filter.component-CrGt6Bov.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-text-widget-edit.component-ed0MUYnD.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-text-widget-view.component-BpxTaeQW.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-toggle-widget-column.component-BqiUQrmV.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-toggle-widget-view.component-DWYcIPTd.mjs.map +0 -1
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-fkKPKxlb.mjs +0 -107
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-fkKPKxlb.mjs.map +0 -1
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-D1h1xORH.mjs +0 -88
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-D1h1xORH.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-BxYT9KhH.mjs +0 -96
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-BxYT9KhH.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-F7dr-osu.mjs +0 -85
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-F7dr-osu.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-Djuin07Z.mjs +0 -31
- package/fesm2022/acorex-platform-themes-default-error-401.component-Djuin07Z.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-C-RyiLkk.mjs +0 -25
- package/fesm2022/acorex-platform-themes-default-error-404.component-C-RyiLkk.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-WCfy9-cr.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-WCfy9-cr.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-Cx6WLV3_.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C_68pr-9.mjs.map +0 -1
package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs
CHANGED
|
@@ -7,12 +7,12 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, TemplateRef, Vie
|
|
|
7
7
|
import { ActivatedRoute } from '@angular/router';
|
|
8
8
|
import { Store } from '@ngrx/store';
|
|
9
9
|
import { AXUnsubscriber } from '@acorex/core/utils';
|
|
10
|
-
import { AXPLayoutChildDrawerToggle, AXPLayoutService, AXP_MENU_LOADER } from '@acorex/platform/common';
|
|
10
|
+
import { AXPLayoutChildDrawerToggle, AXPLayoutService, AXP_MENU_LOADER, convertPropertiesToColumns, } from '@acorex/platform/common';
|
|
11
11
|
import { AXPWorkflowService, ofType } from '@acorex/platform/workflow';
|
|
12
12
|
import { AXPEntityCreateEvent } from '../../entity-layout/workflows/create-entity.workflow';
|
|
13
13
|
import { AXPEntityDeletedEvent } from '../../entity-layout/workflows/delete-entity.workflow';
|
|
14
|
+
import { AXPImportEntityEvent } from '../workflows/import-entity.workflow';
|
|
14
15
|
import { AXPEntityCreateCustomViewComponent } from './components/entity-custom-view/entity-custom-view.component';
|
|
15
|
-
import { convertPropertiesToColumns } from '@acorex/platform/common';
|
|
16
16
|
import * as i0 from "@angular/core";
|
|
17
17
|
import * as i1 from "@acorex/components/action-sheet";
|
|
18
18
|
import * as i2 from "@acorex/core/utils";
|
|
@@ -31,6 +31,7 @@ import * as i14 from "@acorex/platform/auth";
|
|
|
31
31
|
import * as i15 from "./components/list-view-option-columns/list-view-option-columns.component";
|
|
32
32
|
import * as i16 from "./components/list-view-option-conditions/list-view-option-conditions.component";
|
|
33
33
|
import * as i17 from "./components/list-view-option-sorting/list-view-option-sorting.component";
|
|
34
|
+
import * as i18 from "@acorex/core/translation";
|
|
34
35
|
export class AXPEntityListViewComponent {
|
|
35
36
|
constructor(actionSheetService, unsubscriber, platform, cdr) {
|
|
36
37
|
this.actionSheetService = actionSheetService;
|
|
@@ -67,6 +68,7 @@ export class AXPEntityListViewComponent {
|
|
|
67
68
|
this.canDelete = this.loader.entity.editOptions?.delete ?? true;
|
|
68
69
|
this.canCreate = this.loader.entity.editOptions?.create ?? true;
|
|
69
70
|
this.canUpdate = this.loader.entity.editOptions?.update ?? true;
|
|
71
|
+
this.canImport = this.loader.entity.editOptions?.import ?? false;
|
|
70
72
|
this.popupService = inject(AXPopupService);
|
|
71
73
|
this.dropdownRowItems = [
|
|
72
74
|
{
|
|
@@ -100,7 +102,9 @@ export class AXPEntityListViewComponent {
|
|
|
100
102
|
//TODO: namespace, module name issues
|
|
101
103
|
this.title = this.manuLoader.currentMenuItem()?.text ?? this.loader.entity.formats?.list ?? this.loader.entity.formats?.default ?? 'Title';
|
|
102
104
|
//
|
|
103
|
-
this.workflow.events
|
|
105
|
+
this.workflow.events$
|
|
106
|
+
.pipe(ofType(AXPEntityDeletedEvent, AXPEntityCreateEvent, AXPImportEntityEvent), this.unsubscriber.takeUntilDestroy)
|
|
107
|
+
.subscribe((event) => {
|
|
104
108
|
if (event.payload.entity == this.loader.entity.name && event.payload.module == this.loader.entity.module) {
|
|
105
109
|
this.grid.selectedRows = [];
|
|
106
110
|
this.grid?.refresh();
|
|
@@ -180,6 +184,14 @@ export class AXPEntityListViewComponent {
|
|
|
180
184
|
},
|
|
181
185
|
});
|
|
182
186
|
}
|
|
187
|
+
handleImportClick() {
|
|
188
|
+
this.workflow.execute('import-entity', {
|
|
189
|
+
payload: {
|
|
190
|
+
module: this.loader.entity.module,
|
|
191
|
+
entity: this.loader.entity.name,
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
}
|
|
183
195
|
handleCommandClick(command) {
|
|
184
196
|
switch (command) {
|
|
185
197
|
case 'delete':
|
|
@@ -268,11 +280,11 @@ export class AXPEntityListViewComponent {
|
|
|
268
280
|
this.dataSource.reset();
|
|
269
281
|
}
|
|
270
282
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityListViewComponent, deps: [{ token: i1.AXActionSheetService }, { token: i2.AXUnsubscriber }, { token: i3.AXPlatform }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
271
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityListViewComponent, selector: "ng-component", providers: [AXUnsubscriber], viewQueries: [{ propertyName: "viewsTemplate", first: true, predicate: ["viewsTemplate"], descendants: true }, { propertyName: "grid", first: true, predicate: ["grid"], descendants: true }, { propertyName: "entityViewDrawer", first: true, predicate: ["entityViewDrawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"true\" [mode]=\"platform.is('SM') ? 'overlay' : 'push'\">\r\n <ax-content class=\"ax-w-64 ax-border-e\">\r\n <div class=\"ax-p-6 ax-py-4 ax-gap-6 ax-flex ax-flex-col\">\r\n <p class=\"ax-text-2xl ax-font-bold\">Folders</p>\r\n <ax-side-menu>\r\n <ng-container *ngFor=\"let node of menuItems\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\r\n </ng-container>\r\n </ax-side-menu>\r\n <ng-template #sideMenu let-item>\r\n <ax-side-menu-item [text]=\"item.text\">\r\n <ax-prefix>\r\n <ax-icon class=\"fa-solid fa-folder ax-text-warning-500\"></ax-icon>\r\n </ax-prefix>\r\n <ng-container *ngIf=\"item.children\">\r\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\r\n </ng-container>\r\n </ng-container>\r\n </ax-side-menu-item>\r\n </ng-template>\r\n </div>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n @if(platform.is('MD')){\r\n <div class=\"ax-flex ax-justify-between ax-mb-4\">\r\n @if(this.grid?.selectedRows?.length==0){\r\n <div class=\"ax-text-xl ax-font-bold\">{{ title }}</div>\r\n <div class=\"ax-flex ax-items-center ax-gap-2\">\r\n @if(canCreate)\r\n {\r\n <ax-button color=\"primary\" class=\"ax-sm\" (onClick)=\"handleCreateClick()\">\r\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\r\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\r\n <span (click)=\"clearSelectedItems()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n <div class=\"ax-flex ax-items-center ax-gap-2\">\r\n @if(canDelete)\r\n {\r\n <ax-button color=\"danger\" class=\"ax-sm\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-icon class=\"fa-solid fa-trash\"> </ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\r\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\r\n </ax-button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ax-flex ax-items-center ax-justify-between\">\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" [text]=\"(view$ | async)?.title\" color=\"ghost\">\r\n <ax-icon class=\"fa-solid fa-eye ax-text-neutral-400\"> </ax-icon>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item *ngFor=\"let v of customViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item (onClick)=\"addCustomViewPopup()\" text=\"Add Custom View\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n <div class=\"ax-flex ax-gap-2\">\r\n @if(searchBoxTitle){\r\n <ax-button *feature=\"'axp-entity-list-quick-search'\" (onClick)=\"toggleSearchBox()\"\r\n [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\">\r\n <ax-icon class=\"fa-solid fa-search ax-text-neutral-400\"> </ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-bars ax-text-neutral-400\"> </ax-icon>\r\n </ax-button>\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\"\r\n (onClick)=\"conditionsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-sliders ax-text-neutral-400\"> </ax-icon>\r\n @if ((conditionsCount$ | async)) {\r\n <ax-suffix>\r\n <ax-badge [color]=\"'primary'\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-bars-sort ax-text-neutral-400\"> </ax-icon>\r\n @if ((sortCount$ | async)) {\r\n <ax-suffix>\r\n <ax-badge [color]=\"'primary'\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n </div>\r\n </div>\r\n <div *feature=\"'axp-entity-list-quick-search'\" [class.collapsed-search-box]=\"searchBoxCollapsed\"\r\n class=\"ax-transition-all ax-mt-4\">\r\n <ax-search-box [title]=\"searchBoxTitle\"\r\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n } @else {\r\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-3\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold ax-mb-2\">{{ title }}</div>\r\n @if(this.grid?.selectedRows?.length==0){\r\n <div class=\"ax-flex ax-gap-3\">\r\n @if(canCreate)\r\n {\r\n <ax-button text=\"Create New\" color=\"primary\" (onClick)=\"handleCreateClick()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-add\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n <ax-button text=\"Actions\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-gap-3\">\r\n @if(canDelete)\r\n {\r\n <ax-button text=\"Delete Items\" color=\"danger\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-trash\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n <ax-button text=\"Actions\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ax-flex ax-items-center ax-justify-between\">\r\n <!----------------------- View Mode --------------------->\r\n @if(this.grid?.selectedRows?.length==0) {\r\n <div class=\"ax-flex ax-w-full ax-justify-between ax-gap-3\">\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button [text]=\"(view$ | async)?.title\" #views color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-eye\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item class=\"ax-pe-4 ax-flex ax-justify-between\" *ngFor=\"let v of customViews$ | async\"\r\n [text]=\"v.title\" [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\">\r\n <ax-suffix>\r\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\r\n <ax-icon class=\"far fa-edit\"> </ax-icon>\r\n </ax-button>\r\n </ax-suffix>\r\n </ax-button-item>\r\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n @if(searchBoxTitle){\r\n <div class=\"ax-w-72\" *feature=\"'axp-entity-list-quick-search'\">\r\n <ax-search-box [title]=\"searchBoxTitle\" [(ngModel)]=\"searchValue\"\r\n (onValueChanged)=\"handleChangeSearchValue($event)\"\r\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button text=\"Columns\" color=\"ghost\" #columns (onClick)=\"columnsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"{{ columnsCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\" #conditions>\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-sliders\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"{{ conditionsCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Sort\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars-sort\"></i>\r\n </ax-prefix>\r\n <ax-suffix *ngIf=\"(sortCount$ | async)! > 0\">\r\n <ax-badge text=\"{{ sortCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <!----------------------- Selection Mode --------------------->\r\n <div>\r\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\r\n <span (click)=\"clearSelectedItems()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-overflow-auto\">\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [dataSource]=\"dataSource\" [paging]=\"true\"\r\n [fetchDataMode]=\"'manual'\" (onRowDbClick)=\"handleRowDbClick($event)\"\r\n [loading]=\"{ enabled: true, animation: true }\">\r\n <!-- <ax-index-column *ngIf=\"!platform.is('SM')\" [width]=\"'85px'\"></ax-index-column> -->\r\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\r\n @for(col of (columns$ | async);track col.name) {\r\n <axp-widget-column-renderer *ngIf=\"col.visible\" [schema]=\"col.schema\" [dataField]=\"col.name\"\r\n [caption]=\"col.title\" [options]=\"col.options\" [displayFormat]=\"col.displayFormat\" width=\"180px\"\r\n [allowSorting]=\"false\">\r\n </axp-widget-column-renderer>\r\n }\r\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\r\n <ax-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getInlineRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\r\n </ax-data-table>\r\n </div>\r\n </ax-content>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-columns [loader]=\"loader\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\r\n <axp-list-view-option-conditions [loader]=\"loader\"\r\n (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [loader]=\"loader\"></axp-list-view-option-sorting>\r\n </ax-content>\r\n </ax-drawer>\r\n</ax-drawer-container>", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i6.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i6.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i6.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i7.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { 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: "component", type: i8.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i8.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i8.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: "component", type: i9.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i10.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i11.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i11.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "component", type: i12.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i13.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["width", "caption", "headerTemplate", "allowSorting", "fixed", "footerTemplate", "cellTemplate", "options", "dataField", "displayFormat", "schema"] }, { kind: "directive", type: i14.AXPFeatureDirective, selector: "[feature]", inputs: ["feature", "featureElse"] }, { kind: "component", type: i15.AXPListViewOptionsColumnsComponent, selector: "axp-list-view-option-columns", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "component", type: i16.AXPListViewOptionConditionsComponent, selector: "axp-list-view-option-conditions", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "component", type: i17.AXPListViewOptionSortingComponent, selector: "axp-list-view-option-sorting", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
283
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityListViewComponent, selector: "ng-component", providers: [AXUnsubscriber], viewQueries: [{ propertyName: "viewsTemplate", first: true, predicate: ["viewsTemplate"], descendants: true }, { propertyName: "grid", first: true, predicate: ["grid"], descendants: true }, { propertyName: "entityViewDrawer", first: true, predicate: ["entityViewDrawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"true\" [mode]=\"platform.is('SM') ? 'overlay' : 'push'\">\n <ax-content class=\"ax-w-64 ax-border-e\">\n <div class=\"ax-p-6 ax-py-4 ax-gap-6 ax-flex ax-flex-col\">\n <p class=\"ax-text-2xl ax-font-bold\">Folders</p>\n <ax-side-menu>\n <ng-container *ngFor=\"let node of menuItems\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ax-side-menu>\n <ng-template #sideMenu let-item>\n <ax-side-menu-item [text]=\"item.text\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-folder ax-text-warning-500\"></ax-icon>\n </ax-prefix>\n <ng-container *ngIf=\"item.children\">\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n </ng-template>\n </div>\n </ax-content>\n </ax-drawer> -->\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n >\n @if(platform.is('MD')){\n <div class=\"ax-flex ax-justify-between ax-mb-4\">\n @if(this.grid?.selectedRows?.length==0){\n <div class=\"ax-text-xl ax-font-bold\">{{ title }}</div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n @if(canCreate) {\n <ax-button color=\"primary\" class=\"ax-sm\" (onClick)=\"handleCreateClick()\">\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-button>\n }\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list>\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\n <span (click)=\"clearSelectedItems()\" class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >Clear Items</span\n >\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n @if(canDelete) {\n <ax-button color=\"danger\" class=\"ax-sm\" (onClick)=\"handleCommandClick('delete')\">\n <ax-icon class=\"fa-solid fa-trash\"> </ax-icon>\n </ax-button>\n }\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\n </ax-button>\n </div>\n }\n </div>\n\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" [text]=\"(view$ | async)?.title\" color=\"ghost\">\n <ax-icon class=\"fa-solid fa-eye ax-text-neutral-400\"> </ax-icon>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-bg-surface\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">{{ 'entity.public-view' | translate | async }}</ax-title>\n <ax-button-item\n *ngFor=\"let v of publicViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n ></ax-button-item>\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\n <ax-button-item\n *ngFor=\"let v of customViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n ></ax-button-item>\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\n <ax-divider></ax-divider>\n <ax-button-item (onClick)=\"addCustomViewPopup()\" text=\"Add Custom View\" class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\n </ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <div class=\"ax-flex ax-gap-2\">\n @if(searchBoxTitle){\n <ax-button (onClick)=\"toggleSearchBox()\" [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\">\n <ax-icon class=\"fa-solid fa-search ax-text-neutral-400\"> </ax-icon>\n </ax-button>\n }\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-bars ax-text-neutral-400\"> </ax-icon>\n </ax-button>\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-sliders ax-text-neutral-400\"> </ax-icon>\n @if ((conditionsCount$ | async)) {\n <ax-suffix>\n <ax-badge [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-bars-sort ax-text-neutral-400\"> </ax-icon>\n @if ((sortCount$ | async)) {\n <ax-suffix>\n <ax-badge [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n </div>\n </div>\n <div [class.collapsed-search-box]=\"searchBoxCollapsed\" class=\"ax-transition-all ax-mt-4\">\n <ax-search-box [title]=\"searchBoxTitle\" [placeholder]=\"('widget.lookup.search' | translate | async) + searchBoxPlaceholder\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n } @else {\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-3\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold ax-mb-2\">{{ title }}</div>\n @if(this.grid?.selectedRows?.length==0){\n <div class=\"ax-flex ax-gap-3\">\n @if(canCreate) {\n <ax-button [text]=\"'create-new' | translate | async\" color=\"primary\" (onClick)=\"handleCreateClick()\">\n <ax-prefix>\n <i class=\"fa-solid fa-add\"></i>\n </ax-prefix>\n </ax-button>\n }\n <ax-button [text]=\"'Actions' | translate | async\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list>\n @if(canImport){\n <ax-button-item (onClick)=\"handleImportClick()\" text=\"Import\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-import\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }@else {\n <div class=\"ax-flex ax-gap-3\">\n @if(canDelete) {\n <ax-button text=\"Delete Items\" color=\"danger\" (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix>\n <i class=\"fa-solid fa-trash\"></i>\n </ax-prefix>\n </ax-button>\n }\n <ax-button [text]=\"'Actions' | translate | async\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n <!----------------------- View Mode --------------------->\n @if(this.grid?.selectedRows?.length==0) {\n <div class=\"ax-flex ax-w-full ax-justify-between ax-gap-3\">\n <div class=\"ax-flex ax-gap-3\">\n <ax-button [text]=\"(view$ | async)?.title\" #views color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-bg-surface\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">{{ 'entity.public-view' | translate | async }}</ax-title>\n <ax-button-item\n *ngFor=\"let v of publicViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n ></ax-button-item>\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\n <ax-button-item\n class=\"ax-pe-4 ax-flex ax-justify-between\"\n *ngFor=\"let v of customViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n >\n <ax-suffix>\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\n <ax-icon class=\"far fa-edit\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-button-item>\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\n <ax-divider></ax-divider>\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\" class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\n </ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n @if(searchBoxTitle){\n <div class=\"ax-w-72\">\n <ax-search-box\n [title]=\"searchBoxTitle\"\n [(ngModel)]=\"searchValue\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [placeholder]=\"('widget.lookup.search' | translate | async) + searchBoxPlaceholder\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n }\n </div>\n\n <div class=\"ax-flex ax-gap-3\">\n <ax-button [text]=\"'entity.columns' | translate | async\" color=\"ghost\" #columns (onClick)=\"columnsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge text=\"{{ columnsCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\" #conditions>\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge text=\"{{ conditionsCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n <ax-button [text]=\"'entity.sort' | translate | async\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n <ax-suffix *ngIf=\"(sortCount$ | async)! > 0\">\n <ax-badge text=\"{{ sortCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n </div>\n </div>\n\n } @else{\n <!----------------------- Selection Mode --------------------->\n <div>\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\n <span (click)=\"clearSelectedItems()\" class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >Clear Items</span\n >\n </div>\n </div>\n }\n </div>\n }\n </div>\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-overflow-auto\">\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n [loading]=\"{ enabled: true, animation: true }\"\n >\n <!-- <ax-index-column *ngIf=\"!platform.is('SM')\" [width]=\"'85px'\"></ax-index-column> -->\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of (columns$ | async);track col.name) {\n <axp-widget-column-renderer\n *ngIf=\"col.visible\"\n [schema]=\"col.schema\"\n [dataField]=\"col.name\"\n [caption]=\"col.title\"\n [options]=\"col.options\"\n [displayFormat]=\"col.displayFormat\"\n [width]=\"'180px'\"\n [allowSorting]=\"false\"\n >\n </axp-widget-column-renderer>\n }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n <ax-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getInlineRowItems\" (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\n </ax-data-table>\n </div>\n </ax-content>\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-columns [loader]=\"loader\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\n </ax-content>\n </ax-drawer>\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\n <axp-list-view-option-conditions [loader]=\"loader\" (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions>\n </ax-content>\n </ax-drawer>\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [loader]=\"loader\"></axp-list-view-option-sorting>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i6.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i6.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i6.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i7.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "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: "component", type: i8.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i8.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i8.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: "component", type: i9.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i10.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i11.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i11.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "component", type: i12.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i13.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["width", "caption", "headerTemplate", "allowSorting", "fixed", "footerTemplate", "cellTemplate", "options", "dataField", "displayFormat", "schema"] }, { kind: "directive", type: i14.AXPFeatureDirective, selector: "[feature]", inputs: ["feature", "featureElse"] }, { kind: "component", type: i15.AXPListViewOptionsColumnsComponent, selector: "axp-list-view-option-columns", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "component", type: i16.AXPListViewOptionConditionsComponent, selector: "axp-list-view-option-conditions", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "component", type: i17.AXPListViewOptionSortingComponent, selector: "axp-list-view-option-sorting", inputs: ["loader"], outputs: ["onClosed"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i18.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
272
284
|
}
|
|
273
285
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityListViewComponent, decorators: [{
|
|
274
286
|
type: Component,
|
|
275
|
-
args: [{ encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], template: "<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"true\" [mode]=\"platform.is('SM') ? 'overlay' : 'push'\">\r\n <ax-content class=\"ax-w-64 ax-border-e\">\r\n <div class=\"ax-p-6 ax-py-4 ax-gap-6 ax-flex ax-flex-col\">\r\n <p class=\"ax-text-2xl ax-font-bold\">Folders</p>\r\n <ax-side-menu>\r\n <ng-container *ngFor=\"let node of menuItems\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\r\n </ng-container>\r\n </ax-side-menu>\r\n <ng-template #sideMenu let-item>\r\n <ax-side-menu-item [text]=\"item.text\">\r\n <ax-prefix>\r\n <ax-icon class=\"fa-solid fa-folder ax-text-warning-500\"></ax-icon>\r\n </ax-prefix>\r\n <ng-container *ngIf=\"item.children\">\r\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\r\n </ng-container>\r\n </ng-container>\r\n </ax-side-menu-item>\r\n </ng-template>\r\n </div>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n @if(platform.is('MD')){\r\n <div class=\"ax-flex ax-justify-between ax-mb-4\">\r\n @if(this.grid?.selectedRows?.length==0){\r\n <div class=\"ax-text-xl ax-font-bold\">{{ title }}</div>\r\n <div class=\"ax-flex ax-items-center ax-gap-2\">\r\n @if(canCreate)\r\n {\r\n <ax-button color=\"primary\" class=\"ax-sm\" (onClick)=\"handleCreateClick()\">\r\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\r\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\r\n <span (click)=\"clearSelectedItems()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n <div class=\"ax-flex ax-items-center ax-gap-2\">\r\n @if(canDelete)\r\n {\r\n <ax-button color=\"danger\" class=\"ax-sm\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-icon class=\"fa-solid fa-trash\"> </ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\r\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\r\n </ax-button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ax-flex ax-items-center ax-justify-between\">\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" [text]=\"(view$ | async)?.title\" color=\"ghost\">\r\n <ax-icon class=\"fa-solid fa-eye ax-text-neutral-400\"> </ax-icon>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item *ngFor=\"let v of customViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item (onClick)=\"addCustomViewPopup()\" text=\"Add Custom View\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n <div class=\"ax-flex ax-gap-2\">\r\n @if(searchBoxTitle){\r\n <ax-button *feature=\"'axp-entity-list-quick-search'\" (onClick)=\"toggleSearchBox()\"\r\n [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\">\r\n <ax-icon class=\"fa-solid fa-search ax-text-neutral-400\"> </ax-icon>\r\n </ax-button>\r\n }\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-bars ax-text-neutral-400\"> </ax-icon>\r\n </ax-button>\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\"\r\n (onClick)=\"conditionsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-sliders ax-text-neutral-400\"> </ax-icon>\r\n @if ((conditionsCount$ | async)) {\r\n <ax-suffix>\r\n <ax-badge [color]=\"'primary'\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-icon class=\"fa-solid fa-bars-sort ax-text-neutral-400\"> </ax-icon>\r\n @if ((sortCount$ | async)) {\r\n <ax-suffix>\r\n <ax-badge [color]=\"'primary'\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n </div>\r\n </div>\r\n <div *feature=\"'axp-entity-list-quick-search'\" [class.collapsed-search-box]=\"searchBoxCollapsed\"\r\n class=\"ax-transition-all ax-mt-4\">\r\n <ax-search-box [title]=\"searchBoxTitle\"\r\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n } @else {\r\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-3\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold ax-mb-2\">{{ title }}</div>\r\n @if(this.grid?.selectedRows?.length==0){\r\n <div class=\"ax-flex ax-gap-3\">\r\n @if(canCreate)\r\n {\r\n <ax-button text=\"Create New\" color=\"primary\" (onClick)=\"handleCreateClick()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-add\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n <ax-button text=\"Actions\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\r\n <ax-prefix>\r\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-gap-3\">\r\n @if(canDelete)\r\n {\r\n <ax-button text=\"Delete Items\" color=\"danger\" (onClick)=\"handleCommandClick('delete')\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-trash\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n <ax-button text=\"Actions\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n </ax-button>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ax-flex ax-items-center ax-justify-between\">\r\n <!----------------------- View Mode --------------------->\r\n @if(this.grid?.selectedRows?.length==0) {\r\n <div class=\"ax-flex ax-w-full ax-justify-between ax-gap-3\">\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button [text]=\"(view$ | async)?.title\" #views color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-eye\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of publicViews$ | async\" [text]=\"v.title\"\r\n [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\"></ax-button-item>\r\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item class=\"ax-pe-4 ax-flex ax-justify-between\" *ngFor=\"let v of customViews$ | async\"\r\n [text]=\"v.title\" [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\">\r\n <ax-suffix>\r\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\r\n <ax-icon class=\"far fa-edit\"> </ax-icon>\r\n </ax-button>\r\n </ax-suffix>\r\n </ax-button-item>\r\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container>\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n @if(searchBoxTitle){\r\n <div class=\"ax-w-72\" *feature=\"'axp-entity-list-quick-search'\">\r\n <ax-search-box [title]=\"searchBoxTitle\" [(ngModel)]=\"searchValue\"\r\n (onValueChanged)=\"handleChangeSearchValue($event)\"\r\n [placeholder]=\"'Search on ' + searchBoxPlaceholder\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button text=\"Columns\" color=\"ghost\" #columns (onClick)=\"columnsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"{{ columnsCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\" #conditions>\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-sliders\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"{{ conditionsCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Sort\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars-sort\"></i>\r\n </ax-prefix>\r\n <ax-suffix *ngIf=\"(sortCount$ | async)! > 0\">\r\n <ax-badge text=\"{{ sortCount$ | async }}\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <!----------------------- Selection Mode --------------------->\r\n <div>\r\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\r\n <span (click)=\"clearSelectedItems()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-overflow-auto\">\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [dataSource]=\"dataSource\" [paging]=\"true\"\r\n [fetchDataMode]=\"'manual'\" (onRowDbClick)=\"handleRowDbClick($event)\"\r\n [loading]=\"{ enabled: true, animation: true }\">\r\n <!-- <ax-index-column *ngIf=\"!platform.is('SM')\" [width]=\"'85px'\"></ax-index-column> -->\r\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\r\n @for(col of (columns$ | async);track col.name) {\r\n <axp-widget-column-renderer *ngIf=\"col.visible\" [schema]=\"col.schema\" [dataField]=\"col.name\"\r\n [caption]=\"col.title\" [options]=\"col.options\" [displayFormat]=\"col.displayFormat\" width=\"180px\"\r\n [allowSorting]=\"false\">\r\n </axp-widget-column-renderer>\r\n }\r\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\r\n <ax-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getInlineRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\r\n </ax-data-table>\r\n </div>\r\n </ax-content>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-columns [loader]=\"loader\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\r\n <axp-list-view-option-conditions [loader]=\"loader\"\r\n (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [loader]=\"loader\"></axp-list-view-option-sorting>\r\n </ax-content>\r\n </ax-drawer>\r\n</ax-drawer-container>", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}\n"] }]
|
|
287
|
+
args: [{ encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"true\" [mode]=\"platform.is('SM') ? 'overlay' : 'push'\">\n <ax-content class=\"ax-w-64 ax-border-e\">\n <div class=\"ax-p-6 ax-py-4 ax-gap-6 ax-flex ax-flex-col\">\n <p class=\"ax-text-2xl ax-font-bold\">Folders</p>\n <ax-side-menu>\n <ng-container *ngFor=\"let node of menuItems\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ax-side-menu>\n <ng-template #sideMenu let-item>\n <ax-side-menu-item [text]=\"item.text\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-folder ax-text-warning-500\"></ax-icon>\n </ax-prefix>\n <ng-container *ngIf=\"item.children\">\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n </ng-template>\n </div>\n </ax-content>\n </ax-drawer> -->\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-0 md:ax-gap-4 ax-px-4 ax-py-3 md:ax-py-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n >\n @if(platform.is('MD')){\n <div class=\"ax-flex ax-justify-between ax-mb-4\">\n @if(this.grid?.selectedRows?.length==0){\n <div class=\"ax-text-xl ax-font-bold\">{{ title }}</div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n @if(canCreate) {\n <ax-button color=\"primary\" class=\"ax-sm\" (onClick)=\"handleCreateClick()\">\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-button>\n }\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list>\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\n <span (click)=\"clearSelectedItems()\" class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >Clear Items</span\n >\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n @if(canDelete) {\n <ax-button color=\"danger\" class=\"ax-sm\" (onClick)=\"handleCommandClick('delete')\">\n <ax-icon class=\"fa-solid fa-trash\"> </ax-icon>\n </ax-button>\n }\n <ax-button color=\"ghost\" class=\"ax-sm\" #more>\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"> </ax-icon>\n </ax-button>\n </div>\n }\n </div>\n\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" [text]=\"(view$ | async)?.title\" color=\"ghost\">\n <ax-icon class=\"fa-solid fa-eye ax-text-neutral-400\"> </ax-icon>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-bg-surface\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">{{ 'entity.public-view' | translate | async }}</ax-title>\n <ax-button-item\n *ngFor=\"let v of publicViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n ></ax-button-item>\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\n <ax-button-item\n *ngFor=\"let v of customViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n ></ax-button-item>\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\n <ax-divider></ax-divider>\n <ax-button-item (onClick)=\"addCustomViewPopup()\" text=\"Add Custom View\" class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\n </ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <div class=\"ax-flex ax-gap-2\">\n @if(searchBoxTitle){\n <ax-button (onClick)=\"toggleSearchBox()\" [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\">\n <ax-icon class=\"fa-solid fa-search ax-text-neutral-400\"> </ax-icon>\n </ax-button>\n }\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-bars ax-text-neutral-400\"> </ax-icon>\n </ax-button>\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-sliders ax-text-neutral-400\"> </ax-icon>\n @if ((conditionsCount$ | async)) {\n <ax-suffix>\n <ax-badge [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n <ax-button [disabled]=\"this.grid?.selectedRows?.length != 0\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\n <ax-icon class=\"fa-solid fa-bars-sort ax-text-neutral-400\"> </ax-icon>\n @if ((sortCount$ | async)) {\n <ax-suffix>\n <ax-badge [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n </div>\n </div>\n <div [class.collapsed-search-box]=\"searchBoxCollapsed\" class=\"ax-transition-all ax-mt-4\">\n <ax-search-box [title]=\"searchBoxTitle\" [placeholder]=\"('widget.lookup.search' | translate | async) + searchBoxPlaceholder\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n } @else {\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-3\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold ax-mb-2\">{{ title }}</div>\n @if(this.grid?.selectedRows?.length==0){\n <div class=\"ax-flex ax-gap-3\">\n @if(canCreate) {\n <ax-button [text]=\"'create-new' | translate | async\" color=\"primary\" (onClick)=\"handleCreateClick()\">\n <ax-prefix>\n <i class=\"fa-solid fa-add\"></i>\n </ax-prefix>\n </ax-button>\n }\n <ax-button [text]=\"'Actions' | translate | async\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list>\n @if(canImport){\n <ax-button-item (onClick)=\"handleImportClick()\" text=\"Import\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-import\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n <ax-button-item text=\"Export\" class=\"ax-font-semibold\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-file-export\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }@else {\n <div class=\"ax-flex ax-gap-3\">\n @if(canDelete) {\n <ax-button text=\"Delete Items\" color=\"danger\" (onClick)=\"handleCommandClick('delete')\">\n <ax-prefix>\n <i class=\"fa-solid fa-trash\"></i>\n </ax-prefix>\n </ax-button>\n }\n <ax-button [text]=\"'Actions' | translate | async\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-between\">\n <!----------------------- View Mode --------------------->\n @if(this.grid?.selectedRows?.length==0) {\n <div class=\"ax-flex ax-w-full ax-justify-between ax-gap-3\">\n <div class=\"ax-flex ax-gap-3\">\n <ax-button [text]=\"(view$ | async)?.title\" #views color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-bg-surface\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">{{ 'entity.public-view' | translate | async }}</ax-title>\n <ax-button-item\n *ngFor=\"let v of publicViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n ></ax-button-item>\n <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\n <ax-button-item\n class=\"ax-pe-4 ax-flex ax-justify-between\"\n *ngFor=\"let v of customViews$ | async\"\n [text]=\"v.title\"\n [class.ax-bg-on-surface]=\"(view$ | async) == v\"\n (onClick)=\"loader.setView(v.name)\"\n >\n <ax-suffix>\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\n <ax-icon class=\"far fa-edit\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-button-item>\n <ng-container *feature=\"'axp-entity-list-custom-view'\">\n <ax-divider></ax-divider>\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\" class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\n </ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n @if(searchBoxTitle){\n <div class=\"ax-w-72\">\n <ax-search-box\n [title]=\"searchBoxTitle\"\n [(ngModel)]=\"searchValue\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [placeholder]=\"('widget.lookup.search' | translate | async) + searchBoxPlaceholder\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n }\n </div>\n\n <div class=\"ax-flex ax-gap-3\">\n <ax-button [text]=\"'entity.columns' | translate | async\" color=\"ghost\" #columns (onClick)=\"columnsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge text=\"{{ columnsCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\" #conditions>\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge text=\"{{ conditionsCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n <ax-button [text]=\"'entity.sort' | translate | async\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n <ax-suffix *ngIf=\"(sortCount$ | async)! > 0\">\n <ax-badge text=\"{{ sortCount$ | async }}\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n </div>\n </div>\n\n } @else{\n <!----------------------- Selection Mode --------------------->\n <div>\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\"> {{ this.grid?.selectedRows?.length }} Items Selected </span>\n <span (click)=\"clearSelectedItems()\" class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >Clear Items</span\n >\n </div>\n </div>\n }\n </div>\n }\n </div>\n <div class=\"ax-flex-1 ax-px-6 ax-py-4 ax-flex ax-overflow-auto\">\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n [loading]=\"{ enabled: true, animation: true }\"\n >\n <!-- <ax-index-column *ngIf=\"!platform.is('SM')\" [width]=\"'85px'\"></ax-index-column> -->\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of (columns$ | async);track col.name) {\n <axp-widget-column-renderer\n *ngIf=\"col.visible\"\n [schema]=\"col.schema\"\n [dataField]=\"col.name\"\n [caption]=\"col.title\"\n [options]=\"col.options\"\n [displayFormat]=\"col.displayFormat\"\n [width]=\"'180px'\"\n [allowSorting]=\"false\"\n >\n </axp-widget-column-renderer>\n }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n <ax-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getInlineRowItems\" (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\n </ax-data-table>\n </div>\n </ax-content>\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-columns [loader]=\"loader\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\n </ax-content>\n </ax-drawer>\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\n <axp-list-view-option-conditions [loader]=\"loader\" (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions>\n </ax-content>\n </ax-drawer>\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [loader]=\"loader\"></axp-list-view-option-sorting>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}\n"] }]
|
|
276
288
|
}], ctorParameters: () => [{ type: i1.AXActionSheetService }, { type: i2.AXUnsubscriber }, { type: i3.AXPlatform }, { type: i0.ChangeDetectorRef }], propDecorators: { viewsTemplate: [{
|
|
277
289
|
type: ViewChild,
|
|
278
290
|
args: ['viewsTemplate']
|
|
@@ -283,4 +295,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
283
295
|
type: ViewChild,
|
|
284
296
|
args: ['entityViewDrawer']
|
|
285
297
|
}] } });
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWxpc3Qtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dHMvc3JjL2xpYi9hZG1pbi9lbnRpdHktbGF5b3V0L2VudGl0eS1saXN0LXZpZXcvZW50aXR5LWxpc3Qtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dHMvc3JjL2xpYi9hZG1pbi9lbnRpdHktbGF5b3V0L2VudGl0eS1saXN0LXZpZXcvZW50aXR5LWxpc3Qtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQWdELE1BQU0sK0JBQStCLENBQUM7QUFDbkgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSXBDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQXVCLDBCQUEwQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdILE9BQU8sRUFBRSxrQkFB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cG9ydCB7IEFYQWN0aW9uU2hlZXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2FjdGlvbi1zaGVldCc7XHJcbmltcG9ydCB7IEFYRGF0YVRhYmxlQ29tcG9uZW50LCBBWFJvd0NvbW1hbmRJdGVtLCBBWFJvd0NvbW1hbmRJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcclxuaW1wb3J0IHsgQVhEcmF3ZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJhd2VyJztcclxuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xyXG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuXHJcbmltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xyXG5pbXBvcnQgeyBBWERhdGFUYWJsZVJvd0RiQ2xpY2sgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0YS10YWJsZS9saWIvYmFzZS1kYXRhLXRhYmxlLmNsYXNzJztcclxuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xyXG5pbXBvcnQgeyBBWFBBZG1pbkxheW91dFN0YXRlLCBBWFBMYXlvdXRDaGlsZERyYXdlclRvZ2dsZSwgQVhQTGF5b3V0U2VydmljZSwgQVhQX01FTlVfTE9BREVSIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xyXG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UsIG9mVHlwZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlDcmVhdGVFdmVudCB9IGZyb20gJy4uLy4uL2VudGl0eS1sYXlvdXQvd29ya2Zsb3dzL2NyZWF0ZS1lbnRpdHkud29ya2Zsb3cnO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlEZWxldGVkRXZlbnQgfSBmcm9tICcuLi8uLi9lbnRpdHktbGF5b3V0L3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93JztcclxuaW1wb3J0IHsgQVhQRW50aXR5Q3JlYXRlQ3VzdG9tVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbnRpdHktY3VzdG9tLXZpZXcvZW50aXR5LWN1c3RvbS12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYUExpc3RWaWV3TG9hZGVyIH0gZnJvbSAnLi9saXN0LXZpZXcuY29uZmlnJztcclxuaW1wb3J0IHsgY29udmVydFByb3BlcnRpZXNUb0NvbHVtbnMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJ2VudGl0eS1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydlbnRpdHktbGlzdC12aWV3LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtBWFVuc3Vic2NyaWJlcl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlMaXN0Vmlld0NvbXBvbmVudCB7XHJcbiAgcHJpdmF0ZSBzdG9yZSA9IGluamVjdChTdG9yZTxBWFBBZG1pbkxheW91dFN0YXRlPik7XHJcbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xyXG4gIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KEFYUExheW91dFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG4gIHByaXZhdGUgbWFudUxvYWRlciA9IGluamVjdChBWFBfTUVOVV9MT0FERVIpO1xyXG5cclxuICBwcm90ZWN0ZWQgbG9hZGVyID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhWydsb2FkZXInXSBhcyBBWFBMaXN0Vmlld0xvYWRlcjtcclxuICBwcm90ZWN0ZWQgdGl0bGU6IHN0cmluZyA9ICcnO1xyXG4gIHByb3RlY3RlZCBzZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgcHJvdGVjdGVkIHNlYXJjaEJveFBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBwcm90ZWN0ZWQgc2VhcmNoQm94VGl0bGU6IHN0cmluZyA9ICcnO1xyXG4gIHByb3RlY3RlZCBzZWFyY2hCb3hDb2xsYXBzZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcm90ZWN0ZWQgcHVibGljVmlld3MkID0gdGhpcy5sb2FkZXIucHVibGljVmlld3MkO1xyXG4gIHByb3RlY3RlZCBjdXN0b21WaWV3cyQgPSB0aGlzLmxvYWRlci5jdXN0b21WaWV3cyQ7XHJcbiAgcHJvdGVjdGVkIGhhc0N1c3RvbVZpZXdzJCA9IHRoaXMubG9hZGVyLmhhc0N1c3RvbVZpZXdzJDtcclxuICBwcm90ZWN0ZWQgdmlldyQgPSB0aGlzLmxvYWRlci52aWV3JDtcclxuICAvL1xyXG4gIHByb3RlY3RlZCBjb25kaXRpb25zJCA9IHRoaXMubG9hZGVyLmNvbmRpdGlvbnMkO1xyXG4gIHByb3RlY3RlZCBjb25kaXRpb25zQ291bnQkID0gdGhpcy5sb2FkZXIuY29uZGl0aW9uc0NvdW50JDtcclxuICAvL1xyXG4gIHByb3RlY3RlZCBjb2x1bW5zJCA9IHRoaXMubG9hZGVyLmRpc3BsYXlDb2x1bW5zJDtcclxuICBwcm90ZWN0ZWQgY29sdW1uc0NvdW50JCA9IHRoaXMubG9hZGVyLmRpc3BsYXlDb2x1bW5zQ291bnQkO1xyXG4gIC8vXHJcbiAgcHJvdGVjdGVkIHNvcnQkID0gdGhpcy5sb2FkZXIuc29ydHMkO1xyXG4gIHByb3RlY3RlZCBzb3J0Q291bnQkID0gdGhpcy5sb2FkZXIuc29ydHNDb3VudCQ7XHJcbiAgLy9cclxuICBwcm90ZWN0ZWQgZGF0YVNvdXJjZSA9IHRoaXMubG9hZGVyLmRhdGFTb3VyY2U7XHJcbiAgLy9cclxuICBwcm90ZWN0ZWQgY2FuRGVsZXRlID0gdGhpcy5sb2FkZXIuZW50aXR5LmVkaXRPcHRpb25zPy5kZWxldGUgPz8gdHJ1ZTtcclxuICBwcm90ZWN0ZWQgY2FuQ3JlYXRlID0gdGhpcy5sb2FkZXIuZW50aXR5LmVkaXRPcHRpb25zPy5jcmVhdGUgPz8gdHJ1ZTtcclxuICBwcm90ZWN0ZWQgY2FuVXBkYXRlID0gdGhpcy5sb2FkZXIuZW50aXR5LmVkaXRPcHRpb25zPy51cGRhdGUgPz8gdHJ1ZTtcclxuICAvL1xyXG4gIHByb3RlY3RlZCBmb2N1c2VkUm93OiBhbnk7XHJcbiAgLy9cclxuICBAVmlld0NoaWxkKCd2aWV3c1RlbXBsYXRlJykgdmlld3NUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIC8vIEBWaWV3Q2hpbGQoJ2dyaWQnKSBncmlkITogQVhEYXRhVGFibGVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZ3JpZCcpIGdyaWQhOiBBWERhdGFUYWJsZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdlbnRpdHlWaWV3RHJhd2VyJykgZW50aXR5Vmlld0RyYXdlciE6IEFYRHJhd2VyQ29tcG9uZW50O1xyXG5cclxuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhY3Rpb25TaGVldFNlcnZpY2U6IEFYQWN0aW9uU2hlZXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZXI6IEFYVW5zdWJzY3JpYmVyLFxyXG4gICAgcHJvdGVjdGVkIHBsYXRmb3JtOiBBWFBsYXRmb3JtLFxyXG4gICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIC8vVE9ETzogbmFtZXNwYWNlLCBtb2R1bGUgbmFtZSBpc3N1ZXNcclxuICAgIHRoaXMudGl0bGUgPSB0aGlzLm1hbnVMb2FkZXIuY3VycmVudE1lbnVJdGVtKCk/LnRleHQgPz8gdGhpcy5sb2FkZXIuZW50aXR5LmZvcm1hdHM/Lmxpc3QgPz8gdGhpcy5sb2FkZXIuZW50aXR5LmZvcm1hdHM/LmRlZmF1bHQgPz8gJ1RpdGxlJztcclxuICAgIC8vXHJcblxyXG4gICAgdGhpcy53b3JrZmxvdy5ldmVudHMkLnBpcGUob2ZUeXBlKEFYUEVudGl0eURlbGV0ZWRFdmVudCwgQVhQRW50aXR5Q3JlYXRlRXZlbnQpLCB0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChldmVudC5wYXlsb2FkLmVudGl0eSA9PSB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSAmJiBldmVudC5wYXlsb2FkLm1vZHVsZSA9PSB0aGlzLmxvYWRlci5lbnRpdHkubW9kdWxlKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkLnNlbGVjdGVkUm93cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZ3JpZD8ucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vXHJcbiAgICB0aGlzLmRhdGFTb3VyY2Uub25Mb2FkaW5nQ2hhbmdlZC5waXBlKHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcodmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9nZXRJbmxpbmVDb25kaXRpb25UaXRsZXMoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMubG9hZGVyLnNldERlZmF1bHRWaWV3KCk7XHJcbiAgfVxyXG5cclxuICBfZ2V0SW5saW5lQ29uZGl0aW9uVGl0bGVzKCkge1xyXG4gICAgY29uc3QgdGl0bGVzID0gdGhpcy5sb2FkZXIuZ2V0SW5saW5lRmlsdGVyVGl0bGVzKCk7XHJcbiAgICB0aGlzLnNlYXJjaEJveFRpdGxlID0gdGl0bGVzLmpvaW4oJywgJyk7XHJcbiAgICBpZiAodGl0bGVzLmxlbmd0aCA+IDIpIHRoaXMuc2VhcmNoQm94UGxhY2Vob2xkZXIgPSB0aXRsZXMuc2xpY2UoMCwgMikuam9pbignLCAnKSArICcgLi4uJztcclxuICAgIGVsc2UgdGhpcy5zZWFyY2hCb3hQbGFjZWhvbGRlciA9IHRpdGxlcy5qb2luKCcsICcpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZVZpZXdzUG9wb3ZlcigpIHtcclxuICAgIHRoaXMuYWN0aW9uU2hlZXRTZXJ2aWNlLm9wZW4oeyBjb250ZW50OiB0aGlzLnZpZXdzVGVtcGxhdGUgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVEcmF3ZXJDbGljaygpIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQVhQTGF5b3V0Q2hpbGREcmF3ZXJUb2dnbGUoKSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVTZWFyY2hCb3goKSB7XHJcbiAgICB0aGlzLnNlYXJjaEJveENvbGxhcHNlZCA9ICF0aGlzLnNlYXJjaEJveENvbGxhcHNlZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJvcGRvd25Sb3dJdGVtczogQVhSb3dDb21tYW5kSXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICB0ZXh0OiAnRGV0YWlscycsXHJcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS1leWUnLFxyXG4gICAgICBuYW1lOiAnZWRpdCcsXHJcbiAgICAgIGRpdmlkZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OiAnRGVsZXRlJyxcclxuICAgICAgaWNvbjogJ2ZhLXNvbGlkIGZhLXRyYXNoLWNhbicsXHJcbiAgICAgIG5hbWU6ICdkZWxldGUnLFxyXG4gICAgICBjb2xvcjogJ2RhbmdlcicsXHJcbiAgICAgIGRpc2FibGVkOiAhdGhpcy5jYW5EZWxldGUsXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIHByaXZhdGUgaW5saW5lUm93SXRlbXM6IEFYUm93Q29tbWFuZEl0ZW1bXSA9IFtcclxuICAgIHtcclxuICAgICAgdGV4dDogJ1ZpZXcnLFxyXG4gICAgICBpY29uOiAnZmEtc29saWQgIGZhLWV5ZScsXHJcbiAgICAgIG5hbWU6ICd2aWV3JyxcclxuICAgICAgZGl2aWRlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXTtcclxuXHJcbiAgcHJvdGVjdGVkIGdldERyb3Bkb3duUm93SXRlbXMgPSAocm93RGF0YTogdW5rbm93bik6IFByb21pc2U8QVhSb3dDb21tYW5kSXRlbVtdPiA9PiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuZHJvcGRvd25Sb3dJdGVtcyk7XHJcbiAgfTtcclxuXHJcbiAgcHJvdGVjdGVkIGdldElubGluZVJvd0l0ZW1zID0gKHJvd0RhdGE6IHVua25vd24pOiBBWFJvd0NvbW1hbmRJdGVtW10gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5saW5lUm93SXRlbXM7XHJcbiAgfTtcclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZVJvd0RiQ2xpY2soZTogQVhEYXRhVGFibGVSb3dEYkNsaWNrKSB7XHJcbiAgICBjb25zdCBkOiBBWFJvd0NvbW1hbmRJdGVtQ2xpY2tFdmVudCA9IHtcclxuICAgICAgY29tcG9uZW50OiBlLmNvbXBvbmVudCxcclxuICAgICAgbmFtZTogdGhpcy5kcm9wZG93blJvd0l0ZW1zWzBdLm5hbWUsXHJcbiAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgIH07XHJcbiAgICB0aGlzLmhhbmRsZVJvd0NvbW1hbmRDbGljayhkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVSb3dDb21tYW5kQ2xpY2soZTogQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQpIHtcclxuICAgIHN3aXRjaCAoZS5uYW1lKSB7XHJcbiAgICAgIGNhc2UgJ3ZpZXcnOiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdzaG93LXF1aWNrLXZpZXcnLCB7XHJcbiAgICAgICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgICAgIG1vZHVsZTogdGhpcy5sb2FkZXIuZW50aXR5Lm1vZHVsZSxcclxuICAgICAgICAgICAgZW50aXR5OiB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSxcclxuICAgICAgICAgICAgZGF0YTogZS5kYXRhLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdlZGl0Jzoge1xyXG4gICAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnc2hvdy1kZXRhaWxzJywge1xyXG4gICAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgICBtb2R1bGU6IHRoaXMubG9hZGVyLmVudGl0eS5tb2R1bGUsXHJcbiAgICAgICAgICAgIGVudGl0eTogdGhpcy5sb2FkZXIuZW50aXR5Lm5hbWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgaWQ6IGUuZGF0YS5pZCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdkZWxldGUnOiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdkZWxldGUtZW50aXR5Jywge1xyXG4gICAgICAgICAgbW9kdWxlOiB0aGlzLmxvYWRlci5lbnRpdHkubW9kdWxlLFxyXG4gICAgICAgICAgZW50aXR5OiB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSxcclxuICAgICAgICAgIGlkczogW2UuZGF0YS5pZF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBoYW5kbGVDcmVhdGVDbGljaygpIHtcclxuICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLWVudGl0eScsIHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIG1vZHVsZTogdGhpcy5sb2FkZXIuZW50aXR5Lm1vZHVsZSxcclxuICAgICAgICBlbnRpdHk6IHRoaXMubG9hZGVyLmVudGl0eS5uYW1lLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlQ29tbWFuZENsaWNrKGNvbW1hbmQ6IHN0cmluZykge1xyXG4gICAgc3dpdGNoIChjb21tYW5kKSB7XHJcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XHJcbiAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdkZWxldGUtZW50aXR5Jywge1xyXG4gICAgICAgICAgbW9kdWxlOiB0aGlzLmxvYWRlci5lbnRpdHkubW9kdWxlLFxyXG4gICAgICAgICAgZW50aXR5OiB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSxcclxuICAgICAgICAgIGlkczogdGhpcy5ncmlkLnNlbGVjdGVkUm93cy5tYXAoKGMpID0+IChjIGFzIGFueSlbJ2lkJ10pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNsZWFyU2VsZWN0ZWRJdGVtcygpIHtcclxuICAgIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3MgPSBbXTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjbG9zZURyYXdlcihuYW1lOiBzdHJpbmcsIGNvbGxhcHNlZDogYm9vbGVhbikge1xyXG4gICAgaWYgKGNvbGxhcHNlZCAhPSBmYWxzZSkge1xyXG4gICAgICBzd2l0Y2ggKG5hbWUpIHtcclxuICAgICAgICBjYXNlICdjb25kaXRpb25zJzpcclxuICAgICAgICAgIHRoaXMubG9hZGVyLnJlc2V0Q29uZGl0aW9ucygpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnY29sdW1ucyc6XHJcbiAgICAgICAgICB0aGlzLmxvYWRlci5yZXNldENvbHVtbnMoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3NvcnRzJzpcclxuICAgICAgICAgIHRoaXMubG9hZGVyLnJlc2V0U29ydCgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGFuZ2VTZWFyY2hWYWx1ZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XHJcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xyXG4gICAgICB0aGlzLmxvYWRlci5oYW5kbGVJbmxpbmVTZWFyY2goZS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgYWRkQ3VzdG9tVmlld1BvcHVwKCkge1xyXG4gICAgY29uc3QgbmV3VmlldyA9IHtcclxuICAgICAgbmFtZTogJ2N1c3RvbS12aWV3JyxcclxuICAgICAgdGl0bGU6ICdDdXN0b20gVmlldycsXHJcbiAgICAgIGZpeGVkOiBmYWxzZSxcclxuICAgICAgc29ydHM6IFtdLFxyXG4gICAgICBjb2x1bW5zOiBjb252ZXJ0UHJvcGVydGllc1RvQ29sdW1ucyguLi50aGlzLmxvYWRlci5lbnRpdHkucHJvcGVydGllcyksXHJcbiAgICAgIGNvbmRpdGlvbnM6IFtdLFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBwb3B1cCA9IGF3YWl0IHRoaXMucG9wdXBTZXJ2aWNlLm9wZW4oQVhQRW50aXR5Q3JlYXRlQ3VzdG9tVmlld0NvbXBvbmVudCwge1xyXG4gICAgICB0aXRsZTogJ0NyZWF0ZSBDdXN0b20gVmlldycsXHJcbiAgICAgIHNpemU6IHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykgPyAnZnVsbCcgOiAnbWQnLFxyXG4gICAgICBjbG9zZU9uQmFja2Ryb3BDbGljazogdHJ1ZSxcclxuICAgICAgZHJhZ2dhYmxlOiBmYWxzZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxvYWRlcjogdGhpcy5sb2FkZXIsXHJcbiAgICAgICAgc2VsZWN0ZWRWaWV3OiBuZXdWaWV3LFxyXG4gICAgICAgIG1vZGU6ICdjcmVhdGUnLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICBpZiAocG9wdXAuZGF0YT8uc2F2ZSA9PSB0cnVlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCd1cGRhdGVkVmlldzogJywgcG9wdXAuZGF0YS51cGRhdGVkVmlldyk7XHJcbiAgICAgIHRoaXMubG9hZGVyLmNyZWF0ZVZpZXcocG9wdXAuZGF0YS51cGRhdGVkVmlldyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBhc3luYyB1cGRhdGVWaWV3UG9wdXAoZTogQVhDbGlja0V2ZW50LCBzZWxlY3RlZFZpZXc6IGFueSkge1xyXG4gICAgLy8gKGUubmF0aXZlRXZlbnQgYXMgVUlFdmVudCkuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBjb25zdCBwb3B1cCA9IGF3YWl0IHRoaXMucG9wdXBTZXJ2aWNlLm9wZW4oQVhQRW50aXR5Q3JlYXRlQ3VzdG9tVmlld0NvbXBvbmVudCwge1xyXG4gICAgICB0aXRsZTogJ01vZGlmeSBDdXN0b20gVmlldycsXHJcbiAgICAgIHNpemU6IHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykgPyAnZnVsbCcgOiAnbWQnLFxyXG4gICAgICBjbG9zZU9uQmFja2Ryb3BDbGljazogdHJ1ZSxcclxuICAgICAgZHJhZ2dhYmxlOiBmYWxzZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxvYWRlcjogdGhpcy5sb2FkZXIsXHJcbiAgICAgICAgc2VsZWN0ZWRWaWV3LFxyXG4gICAgICAgIG1vZGU6ICdlZGl0JyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgaWYgKHBvcHVwLmRhdGE/LmRlbGV0ZSA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMubG9hZGVyLmRlbGV0ZVZpZXcocG9wdXAuZGF0YS52aWV3TmFtZSk7XHJcbiAgICB9XHJcbiAgICBpZiAocG9wdXAuZGF0YT8uc2F2ZSA9PSB0cnVlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCd1cGRhdGVkVmlldzogJywgcG9wdXAuZGF0YS51cGRhdGVkVmlldyk7XHJcbiAgICAgIHRoaXMubG9hZGVyLnVwZGF0ZVZpZXcocG9wdXAuZGF0YS51cGRhdGVkVmlldyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5yZXNldCgpO1xyXG4gIH1cclxufVxyXG4iLCI8YXgtZHJhd2VyLWNvbnRhaW5lcj5cclxuICA8IS0tIDxheC1kcmF3ZXIgI2RyYXdlciBsb2NhdGlvbj1cInN0YXJ0XCIgW2NvbGxhcHNlZF09XCJ0cnVlXCIgW21vZGVdPVwicGxhdGZvcm0uaXMoJ1NNJykgPyAnb3ZlcmxheScgOiAncHVzaCdcIj5cclxuICAgIDxheC1jb250ZW50IGNsYXNzPVwiYXgtdy02NCBheC1ib3JkZXItZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtcC02IGF4LXB5LTQgYXgtZ2FwLTYgYXgtZmxleCBheC1mbGV4LWNvbFwiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiYXgtdGV4dC0yeGwgYXgtZm9udC1ib2xkXCI+Rm9sZGVyczwvcD5cclxuICAgICAgICA8YXgtc2lkZS1tZW51PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbm9kZSBvZiBtZW51SXRlbXNcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJzaWRlTWVudVwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogbm9kZSB9XCI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2F4LXNpZGUtbWVudT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3NpZGVNZW51IGxldC1pdGVtPlxyXG4gICAgICAgICAgPGF4LXNpZGUtbWVudS1pdGVtIFt0ZXh0XT1cIml0ZW0udGV4dFwiPlxyXG4gICAgICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtZm9sZGVyIGF4LXRleHQtd2FybmluZy01MDBcIj48L2F4LWljb24+XHJcbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW5cIiBbbmdUZW1wbGF0ZU91dGxldF09XCJzaWRlTWVudVwiXHJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNoaWxkIH1cIj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2F4LXNpZGUtbWVudS1pdGVtPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9heC1jb250ZW50PlxyXG4gIDwvYXgtZHJhd2VyPiAtLT5cclxuICA8YXgtY29udGVudCBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMCBtZDpheC1nYXAtNCBheC1weC00IGF4LXB5LTMgbWQ6YXgtcHktNCBtZDpheC1weC02IGF4LWJnLXN1cmZhY2UgYXgtYm9yZGVyLWIgbWQ6YXgtYm9yZGVyLTAgbWQ6YXgtYmctZGVmYXVsdFwiPlxyXG4gICAgICBAaWYocGxhdGZvcm0uaXMoJ01EJykpe1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtbWItNFwiPlxyXG4gICAgICAgIEBpZih0aGlzLmdyaWQ/LnNlbGVjdGVkUm93cz8ubGVuZ3RoPT0wKXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC14bCBheC1mb250LWJvbGRcIj57eyB0aXRsZSB9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMlwiPlxyXG4gICAgICAgICAgQGlmKGNhbkNyZWF0ZSlcclxuICAgICAgICAgIHtcclxuICAgICAgICAgIDxheC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cImhhbmRsZUNyZWF0ZUNsaWNrKClcIj5cclxuICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1hZGRcIj48L2F4LWljb24+XHJcbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGNsYXNzPVwiYXgtc21cIiAjbW9yZT5cclxuICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1lbGxpcHNpcy12ZXJ0aWNhbFwiPiA8L2F4LWljb24+XHJcbiAgICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbCBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgIDxheC1idXR0b24taXRlbS1saXN0PlxyXG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJFeHBvcnRcIiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtZmlsZS1leHBvcnRcIj4gPC9heC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XHJcbiAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxyXG4gICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxyXG4gICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfUBlbHNlIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTNcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC14bCBheC1mb250LWJvbGRcIj4ge3sgdGhpcy5ncmlkPy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCB9fSBJdGVtcyBTZWxlY3RlZCA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiY2xlYXJTZWxlY3RlZEl0ZW1zKClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1wcmltYXJ5IGRhcms6YXgtdGV4dC1wcmltYXJ5LTMwMCBheC11bmRlcmxpbmUgYXgtY3Vyc29yLXBvaW50ZXJcIj5DbGVhclxyXG4gICAgICAgICAgICBJdGVtczwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTJcIj5cclxuICAgICAgICAgIEBpZihjYW5EZWxldGUpXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwiZGFuZ2VyXCIgY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cImhhbmRsZUNvbW1hbmRDbGljaygnZGVsZXRlJylcIj5cclxuICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS10cmFzaFwiPiA8L2F4LWljb24+XHJcbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGNsYXNzPVwiYXgtc21cIiAjbW9yZT5cclxuICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1lbGxpcHNpcy12ZXJ0aWNhbFwiPiA8L2F4LWljb24+XHJcbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgIDxheC1idXR0b24gW2Rpc2FibGVkXT1cInRoaXMuZ3JpZD8uc2VsZWN0ZWRSb3dzPy5sZW5ndGggIT0gMFwiIFt0ZXh0XT1cIih2aWV3JCB8IGFzeW5jKT8udGl0bGVcIiBjb2xvcj1cImdob3N0XCI+XHJcbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWV5ZSBheC10ZXh0LW5ldXRyYWwtNDAwXCI+IDwvYXgtaWNvbj5cclxuICAgICAgICAgIDxheC1zdWZmaXg+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2FyZXQtZG93blwiPjwvaT5cclxuICAgICAgICAgIDwvYXgtc3VmZml4PlxyXG4gICAgICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsIFthZGFwdGl2aXR5RW5hYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxheC1idXR0b24taXRlbS1saXN0IGNsYXNzPVwiYXgtYmctc3VyZmFjZVwiPlxyXG4gICAgICAgICAgICAgIDxheC10aXRsZSBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC1vcGFjaXR5LTEwMFwiPlB1YmxpYyBWaWV3czwvYXgtdGl0bGU+XHJcbiAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtICpuZ0Zvcj1cImxldCB2IG9mIHB1YmxpY1ZpZXdzJCB8IGFzeW5jXCIgW3RleHRdPVwidi50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYXgtYmctb24tc3VyZmFjZV09XCIodmlldyQgfCBhc3luYykgPT0gdlwiIChvbkNsaWNrKT1cImxvYWRlci5zZXRWaWV3KHYubmFtZSlcIj48L2F4LWJ1dHRvbi1pdGVtPlxyXG4gICAgICAgICAgICAgIDxheC10aXRsZSBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC1vcGFjaXR5LTEwMFwiICpuZ0lmPVwiaGFzQ3VzdG9tVmlld3MkIHwgYXN5bmNcIj5DcmVhdGVkIGJ5IG1lPC9heC10aXRsZT5cclxuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gKm5nRm9yPVwibGV0IHYgb2YgY3VzdG9tVmlld3MkIHwgYXN5bmNcIiBbdGV4dF09XCJ2LnRpdGxlXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5heC1iZy1vbi1zdXJmYWNlXT1cIih2aWV3JCB8IGFzeW5jKSA9PSB2XCIgKG9uQ2xpY2spPVwibG9hZGVyLnNldFZpZXcodi5uYW1lKVwiPjwvYXgtYnV0dG9uLWl0ZW0+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZmVhdHVyZT1cIidheHAtZW50aXR5LWxpc3QtY3VzdG9tLXZpZXcnXCI+XHJcbiAgICAgICAgICAgICAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gKG9uQ2xpY2spPVwiYWRkQ3VzdG9tVmlld1BvcHVwKClcIiB0ZXh0PVwiQWRkIEN1c3RvbSBWaWV3XCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1mb250LXNlbWlib2xkIGF4LXRleHQtcHJpbWFyeVwiPjwvYXgtYnV0dG9uLWl0ZW0+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cclxuICAgICAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XHJcbiAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTJcIj5cclxuICAgICAgICAgIEBpZihzZWFyY2hCb3hUaXRsZSl7XHJcbiAgICAgICAgICA8YXgtYnV0dG9uICpmZWF0dXJlPVwiJ2F4cC1lbnRpdHktbGlzdC1xdWljay1zZWFyY2gnXCIgKG9uQ2xpY2spPVwidG9nZ2xlU2VhcmNoQm94KClcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwidGhpcy5ncmlkPy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCAhPSAwXCIgY29sb3I9XCJnaG9zdFwiPlxyXG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLXNlYXJjaCBheC10ZXh0LW5ldXRyYWwtNDAwXCI+IDwvYXgtaWNvbj5cclxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPGF4LWJ1dHRvbiBbZGlzYWJsZWRdPVwidGhpcy5ncmlkPy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCAhPSAwXCIgY29sb3I9XCJnaG9zdFwiIChvbkNsaWNrKT1cImNvbHVtbnNEcmF3ZXIub3BlbigpXCI+XHJcbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtYmFycyBheC10ZXh0LW5ldXRyYWwtNDAwXCI+IDwvYXgtaWNvbj5cclxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgPGF4LWJ1dHRvbiBbZGlzYWJsZWRdPVwidGhpcy5ncmlkPy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCAhPSAwXCIgY29sb3I9XCJnaG9zdFwiXHJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNvbmRpdGlvbnNEcmF3ZXIub3BlbigpXCI+XHJcbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtc2xpZGVycyBheC10ZXh0LW5ldXRyYWwtNDAwXCI+IDwvYXgtaWNvbj5cclxuICAgICAgICAgICAgQGlmICgoY29uZGl0aW9uc0NvdW50JCB8IGFzeW5jKSkge1xyXG4gICAgICAgICAgICA8YXgtc3VmZml4PlxyXG4gICAgICAgICAgICAgIDxheC1iYWRnZSBbY29sb3JdPVwiJ3ByaW1hcnknXCI+PC9heC1iYWRnZT5cclxuICAgICAgICAgICAgPC9heC1zdWZmaXg+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgPGF4LWJ1dHRvbiBbZGlzYWJsZWRdPVwidGhpcy5ncmlkPy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCAhPSAwXCIgY29sb3I9XCJnaG9zdFwiIChvbkNsaWNrKT1cInNvcnRzRHJhd2VyLm9wZW4oKVwiPlxyXG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWJhcnMtc29ydCBheC10ZXh0LW5ldXRyYWwtNDAwXCI+IDwvYXgtaWNvbj5cclxuICAgICAgICAgICAgQGlmICgoc29ydENvdW50JCB8IGFzeW5jKSkge1xyXG4gICAgICAgICAgICA8YXgtc3VmZml4PlxyXG4gICAgICAgICAgICAgIDxheC1iYWRnZSBbY29sb3JdPVwiJ3ByaW1hcnknXCI+PC9heC1iYWRnZT5cclxuICAgICAgICAgICAgPC9heC1zdWZmaXg+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqZmVhdHVyZT1cIidheHAtZW50aXR5LWxpc3QtcXVpY2stc2VhcmNoJ1wiIFtjbGFzcy5jb2xsYXBzZWQtc2VhcmNoLWJveF09XCJzZWFyY2hCb3hDb2xsYXBzZWRcIlxyXG4gICAgICAgIGNsYXNzPVwiYXgtdHJhbnNpdGlvbi1hbGwgYXgtbXQtNFwiPlxyXG4gICAgICAgIDxheC1zZWFyY2gtYm94IFt0aXRsZV09XCJzZWFyY2hCb3hUaXRsZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlYXJjaCBvbiAnICsgc2VhcmNoQm94UGxhY2Vob2xkZXJcIj48YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPjwvYXgtc2VhcmNoLWJveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWdhcC0zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQteGwgbWQ6YXgtdGV4dC0zeGwgYXgtZm9udC1ib2xkIGF4LW1iLTJcIj57eyB0aXRsZSB9fTwvZGl2PlxyXG4gICAgICAgIEBpZih0aGlzLmdyaWQ/LnNlbGVjdGVkUm93cz8ubGVuZ3RoPT0wKXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtM1wiPlxyXG4gICAgICAgICAgQGlmKGNhbkNyZWF0ZSlcclxuICAgICAgICAgIHtcclxuICAgICAgICAgIDxheC1idXR0b24gdGV4dD1cIkNyZWF0ZSBOZXdcIiBjb2xvcj1cInByaW1hcnlcIiAob25DbGljayk9XCJoYW5kbGVDcmVhdGVDbGljaygpXCI+XHJcbiAgICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1hZGRcIj48L2k+XHJcbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8YXgtYnV0dG9uIHRleHQ9XCJBY3Rpb25zXCIgY29sb3I9XCJnaG9zdFwiPlxyXG4gICAgICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZWxsaXBzaXMtdmVydGljYWxcIj48L2k+XHJcbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWwgW2FkYXB0aXZpdHlFbmFibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cclxuICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSB0ZXh0PVwiRXhwb3J0XCIgY2xhc3M9XCJheC1mb250LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkIGZhLWZpbGUtZXhwb3J0XCI+IDwvYXgtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxyXG4gICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cclxuICAgICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cclxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTNcIj5cclxuICAgICAgICAgIEBpZihjYW5EZWxldGUpXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICA8YXgtYnV0dG9uIHRleHQ9XCJEZWxldGUgSXRlbXNcIiBjb2xvcj1cImRhbmdlclwiIChvbkNsaWNrKT1cImhhbmRsZUNvbW1hbmRDbGljaygnZGVsZXRlJylcIj5cclxuICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXRyYXNoXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPGF4LWJ1dHRvbiB0ZXh0PVwiQWN0aW9uc1wiIGNvbG9yPVwiZ2hvc3RcIj5cclxuICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWVsbGlwc2lzLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICBWaWV3IE1vZGUgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0+XHJcbiAgICAgICAgQGlmKHRoaXMuZ3JpZD8uc2VsZWN0ZWRSb3dzPy5sZW5ndGg9PTApIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC13LWZ1bGwgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWdhcC0zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtM1wiPlxyXG4gICAgICAgICAgICA8YXgtYnV0dG9uIFt0ZXh0XT1cIih2aWV3JCB8IGFzeW5jKT8udGl0bGVcIiAjdmlld3MgY29sb3I9XCJnaG9zdFwiPlxyXG4gICAgICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWV5ZVwiPjwvaT5cclxuICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgICAgICA8YXgtc3VmZml4PlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jYXJldC1kb3duXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYXgtc3VmZml4PlxyXG4gICAgICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbCBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3QgY2xhc3M9XCJheC1iZy1zdXJmYWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxheC10aXRsZSBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC1vcGFjaXR5LTEwMFwiPlB1YmxpYyBWaWV3czwvYXgtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSAqbmdGb3I9XCJsZXQgdiBvZiBwdWJsaWNWaWV3cyQgfCBhc3luY1wiIFt0ZXh0XT1cInYudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1iZy1vbi1zdXJmYWNlXT1cIih2aWV3JCB8IGFzeW5jKSA9PSB2XCIgKG9uQ2xpY2spPVwibG9hZGVyLnNldFZpZXcodi5uYW1lKVwiPjwvYXgtYnV0dG9uLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDxheC10aXRsZSBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC1vcGFjaXR5LTEwMFwiICpuZ0lmPVwiaGFzQ3VzdG9tVmlld3MkIHwgYXN5bmNcIj5DcmVhdGVkIGJ5IG1lPC9heC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIGNsYXNzPVwiYXgtcGUtNCBheC1mbGV4IGF4LWp1c3RpZnktYmV0d2VlblwiICpuZ0Zvcj1cImxldCB2IG9mIGN1c3RvbVZpZXdzJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJ2LnRpdGxlXCIgW2NsYXNzLmF4LWJnLW9uLXN1cmZhY2VdPVwiKHZpZXckIHwgYXN5bmMpID09IHZcIiAob25DbGljayk9XCJsb2FkZXIuc2V0Vmlldyh2Lm5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGF4LXN1ZmZpeD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24gKG9uQ2xpY2spPVwidXBkYXRlVmlld1BvcHVwKCRldmVudCwgdilcIiBjbGFzcz1cImF4LXhzXCIgbG9vaz1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYXIgZmEtZWRpdFwiPiA8L2F4LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2F4LXN1ZmZpeD5cclxuICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZmVhdHVyZT1cIidheHAtZW50aXR5LWxpc3QtY3VzdG9tLXZpZXcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSB0ZXh0PVwiQWRkIEN1c3RvbSBWaWV3XCIgKG9uQ2xpY2spPVwiYWRkQ3VzdG9tVmlld1BvcHVwKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1mb250LXNlbWlib2xkIGF4LXRleHQtcHJpbWFyeVwiPjwvYXgtYnV0dG9uLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxyXG4gICAgICAgICAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICBAaWYoc2VhcmNoQm94VGl0bGUpe1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdy03MlwiICpmZWF0dXJlPVwiJ2F4cC1lbnRpdHktbGlzdC1xdWljay1zZWFyY2gnXCI+XHJcbiAgICAgICAgICAgICAgPGF4LXNlYXJjaC1ib3ggW3RpdGxlXT1cInNlYXJjaEJveFRpdGxlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlQ2hhbmdlU2VhcmNoVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlYXJjaCBvbiAnICsgc2VhcmNoQm94UGxhY2Vob2xkZXJcIj48YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPjwvYXgtc2VhcmNoLWJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0zXCI+XHJcbiAgICAgICAgICAgIDxheC1idXR0b24gdGV4dD1cIkNvbHVtbnNcIiBjb2xvcj1cImdob3N0XCIgI2NvbHVtbnMgKG9uQ2xpY2spPVwiY29sdW1uc0RyYXdlci5vcGVuKClcIj5cclxuICAgICAgICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1iYXJzXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgIDxheC1zdWZmaXg+XHJcbiAgICAgICAgICAgICAgICA8YXgtYmFkZ2UgdGV4dD1cInt7IGNvbHVtbnNDb3VudCQgfCBhc3luYyB9fVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvYXgtYmFkZ2U+XHJcbiAgICAgICAgICAgICAgPC9heC1zdWZmaXg+XHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICA8YXgtYnV0dG9uIHRleHQ9XCJGaWx0ZXJzXCIgY29sb3I9XCJnaG9zdFwiIChvbkNsaWNrKT1cImNvbmRpdGlvbnNEcmF3ZXIub3BlbigpXCIgI2NvbmRpdGlvbnM+XHJcbiAgICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtc2xpZGVyc1wiPjwvaT5cclxuICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgICAgICA8YXgtc3VmZml4PlxyXG4gICAgICAgICAgICAgICAgPGF4LWJhZGdlIHRleHQ9XCJ7eyBjb25kaXRpb25zQ291bnQkIHwgYXN5bmMgfX1cIiBjb2xvcj1cInByaW1hcnlcIj48L2F4LWJhZGdlPlxyXG4gICAgICAgICAgICAgIDwvYXgtc3VmZml4PlxyXG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgPGF4LWJ1dHRvbiB0ZXh0PVwiU29ydFwiIGNvbG9yPVwiZ2hvc3RcIiAob25DbGljayk9XCJzb3J0c0RyYXdlci5vcGVuKClcIj5cclxuICAgICAgICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1iYXJzLXNvcnRcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgPGF4LXN1ZmZpeCAqbmdJZj1cIihzb3J0Q291bnQkIHwgYXN5bmMpISA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxheC1iYWRnZSB0ZXh0PVwie3sgc29ydENvdW50JCB8IGFzeW5jIH19XCIgY29sb3I9XCJwcmltYXJ5XCI+PC9heC1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2F4LXN1ZmZpeD5cclxuICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgfSBAZWxzZXtcclxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICBTZWxlY3Rpb24gTW9kZSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTMgYXgtaXRlbXMtY2VudGVyIGF4LWgtMTBcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXhsIGF4LWZvbnQtYm9sZFwiPiB7eyB0aGlzLmdyaWQ/LnNlbGVjdGVkUm93cz8ubGVuZ3RoIH19IEl0ZW1zIFNlbGVjdGVkIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cImNsZWFyU2VsZWN0ZWRJdGVtcygpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1wcmltYXJ5IGRhcms6YXgtdGV4dC1wcmltYXJ5LTMwMCBheC11bmRlcmxpbmUgYXgtY3Vyc29yLXBvaW50ZXJcIj5DbGVhclxyXG4gICAgICAgICAgICAgIEl0ZW1zPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleC0xIGF4LXB4LTYgYXgtcHktNCBheC1mbGV4IGF4LW92ZXJmbG93LWF1dG9cIj5cclxuICAgICAgPGF4LWRhdGEtdGFibGUgI2dyaWQgW3Nob3dGb290ZXJdPVwiZmFsc2VcIiBjbGFzcz1cImF4LWZsZXgtMVwiIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBbcGFnaW5nXT1cInRydWVcIlxyXG4gICAgICAgIFtmZXRjaERhdGFNb2RlXT1cIidtYW51YWwnXCIgKG9uUm93RGJDbGljayk9XCJoYW5kbGVSb3dEYkNsaWNrKCRldmVudClcIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cInsgZW5hYmxlZDogdHJ1ZSwgYW5pbWF0aW9uOiB0cnVlIH1cIj5cclxuICAgICAgICA8IS0tIDxheC1pbmRleC1jb2x1bW4gKm5nSWY9XCIhcGxhdGZvcm0uaXMoJ1NNJylcIiBbd2lkdGhdPVwiJzg1cHgnXCI+PC9heC1pbmRleC1jb2x1bW4+IC0tPlxyXG4gICAgICAgIDxheC1zZWxlY3QtY29sdW1uIGZpeGVkPVwic3RhcnRcIiBbd2lkdGhdPVwiJzUwcHgnXCI+PC9heC1zZWxlY3QtY29sdW1uPlxyXG4gICAgICAgIEBmb3IoY29sIG9mIChjb2x1bW5zJCB8IGFzeW5jKTt0cmFjayBjb2wubmFtZSkge1xyXG4gICAgICAgIDxheHAtd2lkZ2V0LWNvbHVtbi1yZW5kZXJlciAqbmdJZj1cImNvbC52aXNpYmxlXCIgW3NjaGVtYV09XCJjb2wuc2NoZW1hXCIgW2RhdGFGaWVsZF09XCJjb2wubmFtZVwiXHJcbiAgICAgICAgICBbY2FwdGlvbl09XCJjb2wudGl0bGVcIiBbb3B0aW9uc109XCJjb2wub3B0aW9uc1wiIFtkaXNwbGF5Rm9ybWF0XT1cImNvbC5kaXNwbGF5Rm9ybWF0XCIgd2lkdGg9XCIxODBweFwiXHJcbiAgICAgICAgICBbYWxsb3dTb3J0aW5nXT1cImZhbHNlXCI+XHJcbiAgICAgICAgPC9heHAtd2lkZ2V0LWNvbHVtbi1yZW5kZXJlcj5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGF4LWRyb3Bkb3duLWNvbW1hbmQtY29sdW1uIGZpeGVkPVwiZW5kXCIgW3dpZHRoXT1cIic2MHB4J1wiIFtpdGVtc109XCJnZXREcm9wZG93blJvd0l0ZW1zXCJcclxuICAgICAgICAgIChvbkl0ZW1DbGljayk9XCJoYW5kbGVSb3dDb21tYW5kQ2xpY2soJGV2ZW50KVwiPjwvYXgtZHJvcGRvd24tY29tbWFuZC1jb2x1bW4+XHJcbiAgICAgICAgPGF4LWNvbW1hbmQtY29sdW1uIGZpeGVkPVwiZW5kXCIgW3dpZHRoXT1cIic2MHB4J1wiIFtpdGVtc109XCJnZXRJbmxpbmVSb3dJdGVtc1wiXHJcbiAgICAgICAgICAob25JdGVtQ2xpY2spPVwiaGFuZGxlUm93Q29tbWFuZENsaWNrKCRldmVudClcIj48L2F4LWNvbW1hbmQtY29sdW1uPlxyXG4gICAgICA8L2F4LWRhdGEtdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2F4LWNvbnRlbnQ+XHJcbiAgPGF4LWRyYXdlciAoY29sbGFwc2VkQ2hhbmdlKT1cImNsb3NlRHJhd2VyKCdjb2x1bW5zJywgJGV2ZW50KVwiICNjb2x1bW5zRHJhd2VyIGxvY2F0aW9uPVwiZW5kXCIgW21vZGVdPVwiJ292ZXJsYXknXCI+XHJcbiAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LXctWzg1dnddIG1kOmF4LXctWzQ1dnddIGxnOmF4LXctWzM1dnddIDJ4bDpheC13LVsyMHZ3XSBheC1ib3JkZXItZVwiPlxyXG4gICAgICA8YXhwLWxpc3Qtdmlldy1vcHRpb24tY29sdW1ucyBbbG9hZGVyXT1cImxvYWRlclwiIChvbkNsb3NlZCk9XCJjb2x1bW5zRHJhd2VyLmNsb3NlKClcIj48L2F4cC1saXN0LXZpZXctb3B0aW9uLWNvbHVtbnM+XHJcbiAgICA8L2F4LWNvbnRlbnQ+XHJcbiAgPC9heC1kcmF3ZXI+XHJcbiAgPGF4LWRyYXdlciAoY29sbGFwc2VkQ2hhbmdlKT1cImNsb3NlRHJhd2VyKCdjb25kaXRpb25zJywgJGV2ZW50KVwiICNjb25kaXRpb25zRHJhd2VyIGxvY2F0aW9uPVwiZW5kXCIgW21vZGVdPVwiJ292ZXJsYXknXCI+XHJcbiAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LXctWzg1dnddIG1kOmF4LXctWzQ1dnddIGxnOmF4LXctWzM1dnddIDJ4bDpheC13LVsyNXZ3XSBheC1ib3JkZXItZVwiPlxyXG4gICAgICA8YXhwLWxpc3Qtdmlldy1vcHRpb24tY29uZGl0aW9ucyBbbG9hZGVyXT1cImxvYWRlclwiXHJcbiAgICAgICAgKG9uQ2xvc2VkKT1cImNvbmRpdGlvbnNEcmF3ZXIuY2xvc2UoKVwiPjwvYXhwLWxpc3Qtdmlldy1vcHRpb24tY29uZGl0aW9ucz5cclxuICAgIDwvYXgtY29udGVudD5cclxuICA8L2F4LWRyYXdlcj5cclxuICA8YXgtZHJhd2VyIChjb2xsYXBzZWRDaGFuZ2UpPVwiY2xvc2VEcmF3ZXIoJ3NvcnRzJywgJGV2ZW50KVwiICNzb3J0c0RyYXdlciBsb2NhdGlvbj1cImVuZFwiIFttb2RlXT1cIidvdmVybGF5J1wiPlxyXG4gICAgPGF4LWNvbnRlbnQgY2xhc3M9XCJheC13LVs4NXZ3XSBtZDpheC13LVs0NXZ3XSBsZzpheC13LVszNXZ3XSAyeGw6YXgtdy1bMjB2d10gYXgtYm9yZGVyLWVcIj5cclxuICAgICAgPGF4cC1saXN0LXZpZXctb3B0aW9uLXNvcnRpbmcgKG9uQ2xvc2VkKT1cInNvcnRzRHJhd2VyLmNsb3NlKClcIiBbbG9hZGVyXT1cImxvYWRlclwiPjwvYXhwLWxpc3Qtdmlldy1vcHRpb24tc29ydGluZz5cclxuICAgIDwvYXgtY29udGVudD5cclxuICA8L2F4LWRyYXdlcj5cclxuPC9heC1kcmF3ZXItY29udGFpbmVyPiJdfQ==
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWxpc3Qtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dHMvc3JjL2xpYi9hZG1pbi9lbnRpdHktbGF5b3V0L2VudGl0eS1saXN0LXZpZXcvZW50aXR5LWxpc3Qtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dHMvc3JjL2xpYi9hZG1pbi9lbnRpdHktbGF5b3V0L2VudGl0eS1saXN0LXZpZXcvZW50aXR5LWxpc3Qtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQWdELE1BQU0sK0JBQStCLENBQUM7QUFDbkgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSXBDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBRUwsMEJBQTBCLEVBQzFCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsMEJBQTBCLEdBQzNCLE1BQU0seUJBQXlCLENBQUM7QUFDakMs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LEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQXBSVSwwQkFBMEI7a0dBQTFCLDBCQUEwQix1Q0FGMUIsQ0FBQyxjQUFjLENBQUMsZ1VDL0I3QixpN2ZBNlVBOzsyRkQ1U2EsMEJBQTBCO2tCQVB0QyxTQUFTO29DQUdPLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLENBQUM7K0tBdUNDLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFFUCxJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBQ2MsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQWN0aW9uU2hlZXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2FjdGlvbi1zaGVldCc7XG5pbXBvcnQgeyBBWERhdGFUYWJsZUNvbXBvbmVudCwgQVhSb3dDb21tYW5kSXRlbSwgQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0YS10YWJsZSc7XG5pbXBvcnQgeyBBWERyYXdlckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcmF3ZXInO1xuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEYXRhVGFibGVSb3dEYkNsaWNrIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RhdGEtdGFibGUvbGliL2Jhc2UtZGF0YS10YWJsZS5jbGFzcyc7XG5pbXBvcnQgeyBBWFVuc3Vic2NyaWJlciB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBBWFBBZG1pbkxheW91dFN0YXRlLFxuICBBWFBMYXlvdXRDaGlsZERyYXdlclRvZ2dsZSxcbiAgQVhQTGF5b3V0U2VydmljZSxcbiAgQVhQX01FTlVfTE9BREVSLFxuICBjb252ZXJ0UHJvcGVydGllc1RvQ29sdW1ucyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlLCBvZlR5cGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUEVudGl0eUNyZWF0ZUV2ZW50IH0gZnJvbSAnLi4vLi4vZW50aXR5LWxheW91dC93b3JrZmxvd3MvY3JlYXRlLWVudGl0eS53b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWxldGVkRXZlbnQgfSBmcm9tICcuLi8uLi9lbnRpdHktbGF5b3V0L3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93JztcbmltcG9ydCB7IEFYUEltcG9ydEVudGl0eUV2ZW50IH0gZnJvbSAnLi4vd29ya2Zsb3dzL2ltcG9ydC1lbnRpdHkud29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQRW50aXR5Q3JlYXRlQ3VzdG9tVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbnRpdHktY3VzdG9tLXZpZXcvZW50aXR5LWN1c3RvbS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBMaXN0Vmlld0xvYWRlciB9IGZyb20gJy4vbGlzdC12aWV3LmNvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJ2VudGl0eS1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZW50aXR5LWxpc3Qtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbQVhVbnN1YnNjcmliZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlMaXN0Vmlld0NvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RvcmUgPSBpbmplY3QoU3RvcmU8QVhQQWRtaW5MYXlvdXRTdGF0ZT4pO1xuICBwcml2YXRlIHdvcmtmbG93ID0gaW5qZWN0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KEFYUExheW91dFNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSBtYW51TG9hZGVyID0gaW5qZWN0KEFYUF9NRU5VX0xPQURFUik7XG5cbiAgcHJvdGVjdGVkIGxvYWRlciA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsnbG9hZGVyJ10gYXMgQVhQTGlzdFZpZXdMb2FkZXI7XG4gIHByb3RlY3RlZCB0aXRsZTogc3RyaW5nID0gJyc7XG4gIHByb3RlY3RlZCBzZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHByb3RlY3RlZCBzZWFyY2hCb3hQbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG4gIHByb3RlY3RlZCBzZWFyY2hCb3hUaXRsZTogc3RyaW5nID0gJyc7XG4gIHByb3RlY3RlZCBzZWFyY2hCb3hDb2xsYXBzZWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHByb3RlY3RlZCBwdWJsaWNWaWV3cyQgPSB0aGlzLmxvYWRlci5wdWJsaWNWaWV3cyQ7XG4gIHByb3RlY3RlZCBjdXN0b21WaWV3cyQgPSB0aGlzLmxvYWRlci5jdXN0b21WaWV3cyQ7XG4gIHByb3RlY3RlZCBoYXNDdXN0b21WaWV3cyQgPSB0aGlzLmxvYWRlci5oYXNDdXN0b21WaWV3cyQ7XG4gIHByb3RlY3RlZCB2aWV3JCA9IHRoaXMubG9hZGVyLnZpZXckO1xuICAvL1xuICBwcm90ZWN0ZWQgY29uZGl0aW9ucyQgPSB0aGlzLmxvYWRlci5jb25kaXRpb25zJDtcbiAgcHJvdGVjdGVkIGNvbmRpdGlvbnNDb3VudCQgPSB0aGlzLmxvYWRlci5jb25kaXRpb25zQ291bnQkO1xuICAvL1xuICBwcm90ZWN0ZWQgY29sdW1ucyQgPSB0aGlzLmxvYWRlci5kaXNwbGF5Q29sdW1ucyQ7XG4gIHByb3RlY3RlZCBjb2x1bW5zQ291bnQkID0gdGhpcy5sb2FkZXIuZGlzcGxheUNvbHVtbnNDb3VudCQ7XG4gIC8vXG4gIHByb3RlY3RlZCBzb3J0JCA9IHRoaXMubG9hZGVyLnNvcnRzJDtcbiAgcHJvdGVjdGVkIHNvcnRDb3VudCQgPSB0aGlzLmxvYWRlci5zb3J0c0NvdW50JDtcbiAgLy9cbiAgcHJvdGVjdGVkIGRhdGFTb3VyY2UgPSB0aGlzLmxvYWRlci5kYXRhU291cmNlO1xuICAvL1xuICBwcm90ZWN0ZWQgY2FuRGVsZXRlID0gdGhpcy5sb2FkZXIuZW50aXR5LmVkaXRPcHRpb25zPy5kZWxldGUgPz8gdHJ1ZTtcbiAgcHJvdGVjdGVkIGNhbkNyZWF0ZSA9IHRoaXMubG9hZGVyLmVudGl0eS5lZGl0T3B0aW9ucz8uY3JlYXRlID8/IHRydWU7XG4gIHByb3RlY3RlZCBjYW5VcGRhdGUgPSB0aGlzLmxvYWRlci5lbnRpdHkuZWRpdE9wdGlvbnM/LnVwZGF0ZSA/PyB0cnVlO1xuICBwcm90ZWN0ZWQgY2FuSW1wb3J0ID0gdGhpcy5sb2FkZXIuZW50aXR5LmVkaXRPcHRpb25zPy5pbXBvcnQgPz8gZmFsc2U7XG4gIC8vXG4gIHByb3RlY3RlZCBmb2N1c2VkUm93OiBhbnk7XG4gIC8vXG4gIEBWaWV3Q2hpbGQoJ3ZpZXdzVGVtcGxhdGUnKSB2aWV3c1RlbXBsYXRlITogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIC8vIEBWaWV3Q2hpbGQoJ2dyaWQnKSBncmlkITogQVhEYXRhVGFibGVDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2dyaWQnKSBncmlkITogQVhEYXRhVGFibGVDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2VudGl0eVZpZXdEcmF3ZXInKSBlbnRpdHlWaWV3RHJhd2VyITogQVhEcmF3ZXJDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9uU2hlZXRTZXJ2aWNlOiBBWEFjdGlvblNoZWV0U2VydmljZSxcbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlcjogQVhVbnN1YnNjcmliZXIsXG4gICAgcHJvdGVjdGVkIHBsYXRmb3JtOiBBWFBsYXRmb3JtLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIC8vVE9ETzogbmFtZXNwYWNlLCBtb2R1bGUgbmFtZSBpc3N1ZXNcbiAgICB0aGlzLnRpdGxlID0gdGhpcy5tYW51TG9hZGVyLmN1cnJlbnRNZW51SXRlbSgpPy50ZXh0ID8/IHRoaXMubG9hZGVyLmVudGl0eS5mb3JtYXRzPy5saXN0ID8/IHRoaXMubG9hZGVyLmVudGl0eS5mb3JtYXRzPy5kZWZhdWx0ID8/ICdUaXRsZSc7XG4gICAgLy9cblxuICAgIHRoaXMud29ya2Zsb3cuZXZlbnRzJFxuICAgICAgLnBpcGUob2ZUeXBlKEFYUEVudGl0eURlbGV0ZWRFdmVudCwgQVhQRW50aXR5Q3JlYXRlRXZlbnQsIEFYUEltcG9ydEVudGl0eUV2ZW50KSwgdGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5wYXlsb2FkLmVudGl0eSA9PSB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSAmJiBldmVudC5wYXlsb2FkLm1vZHVsZSA9PSB0aGlzLmxvYWRlci5lbnRpdHkubW9kdWxlKSB7XG4gICAgICAgICAgdGhpcy5ncmlkLnNlbGVjdGVkUm93cyA9IFtdO1xuICAgICAgICAgIHRoaXMuZ3JpZD8ucmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMuZGF0YVNvdXJjZS5vbkxvYWRpbmdDaGFuZ2VkLnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcodmFsdWUpO1xuICAgIH0pO1xuICAgIHRoaXMuX2dldElubGluZUNvbmRpdGlvblRpdGxlcygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubG9hZGVyLnNldERlZmF1bHRWaWV3KCk7XG4gIH1cblxuICBfZ2V0SW5saW5lQ29uZGl0aW9uVGl0bGVzKCkge1xuICAgIGNvbnN0IHRpdGxlcyA9IHRoaXMubG9hZGVyLmdldElubGluZUZpbHRlclRpdGxlcygpO1xuICAgIHRoaXMuc2VhcmNoQm94VGl0bGUgPSB0aXRsZXMuam9pbignLCAnKTtcbiAgICBpZiAodGl0bGVzLmxlbmd0aCA+IDIpIHRoaXMuc2VhcmNoQm94UGxhY2Vob2xkZXIgPSB0aXRsZXMuc2xpY2UoMCwgMikuam9pbignLCAnKSArICcgLi4uJztcbiAgICBlbHNlIHRoaXMuc2VhcmNoQm94UGxhY2Vob2xkZXIgPSB0aXRsZXMuam9pbignLCAnKTtcbiAgfVxuXG4gIF9oYW5kbGVWaWV3c1BvcG92ZXIoKSB7XG4gICAgdGhpcy5hY3Rpb25TaGVldFNlcnZpY2Uub3Blbih7IGNvbnRlbnQ6IHRoaXMudmlld3NUZW1wbGF0ZSB9KTtcbiAgfVxuXG4gIGhhbmRsZURyYXdlckNsaWNrKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQVhQTGF5b3V0Q2hpbGREcmF3ZXJUb2dnbGUoKSk7XG4gIH1cblxuICB0b2dnbGVTZWFyY2hCb3goKSB7XG4gICAgdGhpcy5zZWFyY2hCb3hDb2xsYXBzZWQgPSAhdGhpcy5zZWFyY2hCb3hDb2xsYXBzZWQ7XG4gIH1cblxuICBwcml2YXRlIGRyb3Bkb3duUm93SXRlbXM6IEFYUm93Q29tbWFuZEl0ZW1bXSA9IFtcbiAgICB7XG4gICAgICB0ZXh0OiAnRGV0YWlscycsXG4gICAgICBpY29uOiAnZmEtc29saWQgZmEtZXllJyxcbiAgICAgIG5hbWU6ICdlZGl0JyxcbiAgICAgIGRpdmlkZWQ6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OiAnRGVsZXRlJyxcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS10cmFzaC1jYW4nLFxuICAgICAgbmFtZTogJ2RlbGV0ZScsXG4gICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICBkaXNhYmxlZDogIXRoaXMuY2FuRGVsZXRlLFxuICAgIH0sXG4gIF07XG5cbiAgcHJpdmF0ZSBpbmxpbmVSb3dJdGVtczogQVhSb3dDb21tYW5kSXRlbVtdID0gW1xuICAgIHtcbiAgICAgIHRleHQ6ICdWaWV3JyxcbiAgICAgIGljb246ICdmYS1zb2xpZCAgZmEtZXllJyxcbiAgICAgIG5hbWU6ICd2aWV3JyxcbiAgICAgIGRpdmlkZWQ6IHRydWUsXG4gICAgfSxcbiAgXTtcblxuICBwcm90ZWN0ZWQgZ2V0RHJvcGRvd25Sb3dJdGVtcyA9IChyb3dEYXRhOiB1bmtub3duKTogUHJvbWlzZTxBWFJvd0NvbW1hbmRJdGVtW10+ID0+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuZHJvcGRvd25Sb3dJdGVtcyk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldElubGluZVJvd0l0ZW1zID0gKHJvd0RhdGE6IHVua25vd24pOiBBWFJvd0NvbW1hbmRJdGVtW10gPT4ge1xuICAgIHJldHVybiB0aGlzLmlubGluZVJvd0l0ZW1zO1xuICB9O1xuXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dEYkNsaWNrKGU6IEFYRGF0YVRhYmxlUm93RGJDbGljaykge1xuICAgIGNvbnN0IGQ6IEFYUm93Q29tbWFuZEl0ZW1DbGlja0V2ZW50ID0ge1xuICAgICAgY29tcG9uZW50OiBlLmNvbXBvbmVudCxcbiAgICAgIG5hbWU6IHRoaXMuZHJvcGRvd25Sb3dJdGVtc1swXS5uYW1lLFxuICAgICAgZGF0YTogZS5kYXRhLFxuICAgIH07XG4gICAgdGhpcy5oYW5kbGVSb3dDb21tYW5kQ2xpY2soZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlUm93Q29tbWFuZENsaWNrKGU6IEFYUm93Q29tbWFuZEl0ZW1DbGlja0V2ZW50KSB7XG4gICAgc3dpdGNoIChlLm5hbWUpIHtcbiAgICAgIGNhc2UgJ3ZpZXcnOiB7XG4gICAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnc2hvdy1xdWljay12aWV3Jywge1xuICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgIG1vZHVsZTogdGhpcy5sb2FkZXIuZW50aXR5Lm1vZHVsZSxcbiAgICAgICAgICAgIGVudGl0eTogdGhpcy5sb2FkZXIuZW50aXR5Lm5hbWUsXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZWRpdCc6IHtcbiAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdzaG93LWRldGFpbHMnLCB7XG4gICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgbW9kdWxlOiB0aGlzLmxvYWRlci5lbnRpdHkubW9kdWxlLFxuICAgICAgICAgICAgZW50aXR5OiB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlkOiBlLmRhdGEuaWQsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2RlbGV0ZSc6IHtcbiAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdkZWxldGUtZW50aXR5Jywge1xuICAgICAgICAgIG1vZHVsZTogdGhpcy5sb2FkZXIuZW50aXR5Lm1vZHVsZSxcbiAgICAgICAgICBlbnRpdHk6IHRoaXMubG9hZGVyLmVudGl0eS5uYW1lLFxuICAgICAgICAgIGlkczogW2UuZGF0YS5pZF0sXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ3JlYXRlQ2xpY2soKSB7XG4gICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdjcmVhdGUtZW50aXR5Jywge1xuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBtb2R1bGU6IHRoaXMubG9hZGVyLmVudGl0eS5tb2R1bGUsXG4gICAgICAgIGVudGl0eTogdGhpcy5sb2FkZXIuZW50aXR5Lm5hbWUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHByb3RlY3RlZCBoYW5kbGVJbXBvcnRDbGljaygpIHtcbiAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2ltcG9ydC1lbnRpdHknLCB7XG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIG1vZHVsZTogdGhpcy5sb2FkZXIuZW50aXR5Lm1vZHVsZSxcbiAgICAgICAgZW50aXR5OiB0aGlzLmxvYWRlci5lbnRpdHkubmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29tbWFuZENsaWNrKGNvbW1hbmQ6IHN0cmluZykge1xuICAgIHN3aXRjaCAoY29tbWFuZCkge1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdkZWxldGUtZW50aXR5Jywge1xuICAgICAgICAgIG1vZHVsZTogdGhpcy5sb2FkZXIuZW50aXR5Lm1vZHVsZSxcbiAgICAgICAgICBlbnRpdHk6IHRoaXMubG9hZGVyLmVudGl0eS5uYW1lLFxuICAgICAgICAgIGlkczogdGhpcy5ncmlkLnNlbGVjdGVkUm93cy5tYXAoKGMpID0+IChjIGFzIGFueSlbJ2lkJ10pLFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJTZWxlY3RlZEl0ZW1zKCkge1xuICAgIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3MgPSBbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZURyYXdlcihuYW1lOiBzdHJpbmcsIGNvbGxhcHNlZDogYm9vbGVhbikge1xuICAgIGlmIChjb2xsYXBzZWQgIT0gZmFsc2UpIHtcbiAgICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgICBjYXNlICdjb25kaXRpb25zJzpcbiAgICAgICAgICB0aGlzLmxvYWRlci5yZXNldENvbmRpdGlvbnMoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY29sdW1ucyc6XG4gICAgICAgICAgdGhpcy5sb2FkZXIucmVzZXRDb2x1bW5zKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3NvcnRzJzpcbiAgICAgICAgICB0aGlzLmxvYWRlci5yZXNldFNvcnQoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVDaGFuZ2VTZWFyY2hWYWx1ZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMubG9hZGVyLmhhbmRsZUlubGluZVNlYXJjaChlLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYWRkQ3VzdG9tVmlld1BvcHVwKCkge1xuICAgIGNvbnN0IG5ld1ZpZXcgPSB7XG4gICAgICBuYW1lOiAnY3VzdG9tLXZpZXcnLFxuICAgICAgdGl0bGU6ICdDdXN0b20gVmlldycsXG4gICAgICBmaXhlZDogZmFsc2UsXG4gICAgICBzb3J0czogW10sXG4gICAgICBjb2x1bW5zOiBjb252ZXJ0UHJvcGVydGllc1RvQ29sdW1ucyguLi50aGlzLmxvYWRlci5lbnRpdHkucHJvcGVydGllcyksXG4gICAgICBjb25kaXRpb25zOiBbXSxcbiAgICB9O1xuXG4gICAgY29uc3QgcG9wdXAgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKEFYUEVudGl0eUNyZWF0ZUN1c3RvbVZpZXdDb21wb25lbnQsIHtcbiAgICAgIHRpdGxlOiAnQ3JlYXRlIEN1c3RvbSBWaWV3JyxcbiAgICAgIHNpemU6IHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykgPyAnZnVsbCcgOiAnbWQnLFxuICAgICAgY2xvc2VPbkJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgZGF0YToge1xuICAgICAgICBsb2FkZXI6IHRoaXMubG9hZGVyLFxuICAgICAgICBzZWxlY3RlZFZpZXc6IG5ld1ZpZXcsXG4gICAgICAgIG1vZGU6ICdjcmVhdGUnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBpZiAocG9wdXAuZGF0YT8uc2F2ZSA9PSB0cnVlKSB7XG4gICAgICBjb25zb2xlLmxvZygndXBkYXRlZFZpZXc6ICcsIHBvcHVwLmRhdGEudXBkYXRlZFZpZXcpO1xuICAgICAgdGhpcy5sb2FkZXIuY3JlYXRlVmlldyhwb3B1cC5kYXRhLnVwZGF0ZWRWaWV3KTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZVZpZXdQb3B1cChlOiBBWENsaWNrRXZlbnQsIHNlbGVjdGVkVmlldzogYW55KSB7XG4gICAgLy8gKGUubmF0aXZlRXZlbnQgYXMgVUlFdmVudCkuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgcG9wdXAgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKEFYUEVudGl0eUNyZWF0ZUN1c3RvbVZpZXdDb21wb25lbnQsIHtcbiAgICAgIHRpdGxlOiAnTW9kaWZ5IEN1c3RvbSBWaWV3JyxcbiAgICAgIHNpemU6IHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykgPyAnZnVsbCcgOiAnbWQnLFxuICAgICAgY2xvc2VPbkJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgZGF0YToge1xuICAgICAgICBsb2FkZXI6IHRoaXMubG9hZGVyLFxuICAgICAgICBzZWxlY3RlZFZpZXcsXG4gICAgICAgIG1vZGU6ICdlZGl0JyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKHBvcHVwLmRhdGE/LmRlbGV0ZSA9PSB0cnVlKSB7XG4gICAgICB0aGlzLmxvYWRlci5kZWxldGVWaWV3KHBvcHVwLmRhdGEudmlld05hbWUpO1xuICAgIH1cbiAgICBpZiAocG9wdXAuZGF0YT8uc2F2ZSA9PSB0cnVlKSB7XG4gICAgICBjb25zb2xlLmxvZygndXBkYXRlZFZpZXc6ICcsIHBvcHVwLmRhdGEudXBkYXRlZFZpZXcpO1xuICAgICAgdGhpcy5sb2FkZXIudXBkYXRlVmlldyhwb3B1cC5kYXRhLnVwZGF0ZWRWaWV3KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UucmVzZXQoKTtcbiAgfVxufVxuIiwiPGF4LWRyYXdlci1jb250YWluZXI+XG4gIDwhLS0gPGF4LWRyYXdlciAjZHJhd2VyIGxvY2F0aW9uPVwic3RhcnRcIiBbY29sbGFwc2VkXT1cInRydWVcIiBbbW9kZV09XCJwbGF0Zm9ybS5pcygnU00nKSA/ICdvdmVybGF5JyA6ICdwdXNoJ1wiPlxuICAgIDxheC1jb250ZW50IGNsYXNzPVwiYXgtdy02NCBheC1ib3JkZXItZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LXAtNiBheC1weS00IGF4LWdhcC02IGF4LWZsZXggYXgtZmxleC1jb2xcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJheC10ZXh0LTJ4bCBheC1mb250LWJvbGRcIj5Gb2xkZXJzPC9wPlxuICAgICAgICA8YXgtc2lkZS1tZW51PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG5vZGUgb2YgbWVudUl0ZW1zXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9heC1zaWRlLW1lbnU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2lkZU1lbnUgbGV0LWl0ZW0+XG4gICAgICAgICAgPGF4LXNpZGUtbWVudS1pdGVtIFt0ZXh0XT1cIml0ZW0udGV4dFwiPlxuICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1mb2xkZXIgYXgtdGV4dC13YXJuaW5nLTUwMFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgaXRlbS5jaGlsZHJlblwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNpZGVNZW51XCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNoaWxkIH1cIj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2F4LXNpZGUtbWVudS1pdGVtPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9heC1jb250ZW50PlxuICA8L2F4LWRyYXdlcj4gLS0+XG4gIDxheC1jb250ZW50IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1vdmVyZmxvdy1oaWRkZW5cIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTAgbWQ6YXgtZ2FwLTQgYXgtcHgtNCBheC1weS0zIG1kOmF4LXB5LTQgbWQ6YXgtcHgtNiBheC1iZy1zdXJmYWNlIGF4LWJvcmRlci1iIG1kOmF4LWJvcmRlci0wIG1kOmF4LWJnLWRlZmF1bHRcIlxuICAgID5cbiAgICAgIEBpZihwbGF0Zm9ybS5pcygnTUQnKSl7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtbWItNFwiPlxuICAgICAgICBAaWYodGhpcy5ncmlkPy5zZWxlY3RlZFJvd3M/Lmxlbmd0aD09MCl7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXhsIGF4LWZvbnQtYm9sZFwiPnt7IHRpdGxlIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMlwiPlxuICAgICAgICAgIEBpZihjYW5DcmVhdGUpIHtcbiAgICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiYXgtc21cIiAob25DbGljayk9XCJoYW5kbGVDcmVhdGVDbGljaygpXCI+XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWFkZFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGF4LWJ1dHRvbiBjb2xvcj1cImdob3N0XCIgY2xhc3M9XCJheC1zbVwiICNtb3JlPlxuICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1lbGxpcHNpcy12ZXJ0aWNhbFwiPiA8L2F4LWljb24+XG4gICAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWwgW2FkYXB0aXZpdHlFbmFibGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJFeHBvcnRcIiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1zb2xpZCBmYS1maWxlLWV4cG9ydFwiPiA8L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0zXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXhsIGF4LWZvbnQtYm9sZFwiPiB7eyB0aGlzLmdyaWQ/LnNlbGVjdGVkUm93cz8ubGVuZ3RoIH19IEl0ZW1zIFNlbGVjdGVkIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiY2xlYXJTZWxlY3RlZEl0ZW1zKClcIiBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1wcmltYXJ5IGRhcms6YXgtdGV4dC1wcmltYXJ5LTMwMCBheC11bmRlcmxpbmUgYXgtY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgPkNsZWFyIEl0ZW1zPC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0yXCI+XG4gICAgICAgICAgQGlmKGNhbkRlbGV0ZSkge1xuICAgICAgICAgIDxheC1idXR0b24gY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ29tbWFuZENsaWNrKCdkZWxldGUnKVwiPlxuICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS10cmFzaFwiPiA8L2F4LWljb24+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGNsYXNzPVwiYXgtc21cIiAjbW9yZT5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtZWxsaXBzaXMtdmVydGljYWxcIj4gPC9heC1pY29uPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGF4LWJ1dHRvbiBbZGlzYWJsZWRdPVwidGhpcy5ncmlkPy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCAhPSAwXCIgW3RleHRdPVwiKHZpZXckIHwgYXN5bmMpPy50aXRsZVwiIGNvbG9yPVwiZ2hvc3RcIj5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWV5ZSBheC10ZXh0LW5ldXRyYWwtNDAwXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICA8YXgtc3VmZml4PlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jYXJldC1kb3duXCI+PC9pPlxuICAgICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbCBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3QgY2xhc3M9XCJheC1iZy1zdXJmYWNlXCI+XG4gICAgICAgICAgICAgIDxheC10aXRsZSBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC1vcGFjaXR5LTEwMFwiPnt7ICdlbnRpdHkucHVibGljLXZpZXcnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LXRpdGxlPlxuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdiBvZiBwdWJsaWNWaWV3cyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW3RleHRdPVwidi50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmF4LWJnLW9uLXN1cmZhY2VdPVwiKHZpZXckIHwgYXN5bmMpID09IHZcIlxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImxvYWRlci5zZXRWaWV3KHYubmFtZSlcIlxuICAgICAgICAgICAgICA+PC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgPGF4LXRpdGxlIGNsYXNzPVwiYXgtZm9udC1ib2xkIGF4LW9wYWNpdHktMTAwXCIgKm5nSWY9XCJoYXNDdXN0b21WaWV3cyQgfCBhc3luY1wiPkNyZWF0ZWQgYnkgbWU8L2F4LXRpdGxlPlxuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdiBvZiBjdXN0b21WaWV3cyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW3RleHRdPVwidi50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmF4LWJnLW9uLXN1cmZhY2VdPVwiKHZpZXckIHwgYXN5bmMpID09IHZcIlxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImxvYWRlci5zZXRWaWV3KHYubmFtZSlcIlxuICAgICAgICAgICAgICA+PC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZmVhdHVyZT1cIidheHAtZW50aXR5LWxpc3QtY3VzdG9tLXZpZXcnXCI+XG4gICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSAob25DbGljayk9XCJhZGRDdXN0b21WaWV3UG9wdXAoKVwiIHRleHQ9XCJBZGQgQ3VzdG9tIFZpZXdcIiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGQgYXgtdGV4dC1wcmltYXJ5XCI+PC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0yXCI+XG4gICAgICAgICAgQGlmKHNlYXJjaEJveFRpdGxlKXtcbiAgICAgICAgICA8YXgtYnV0dG9uIChvbkNsaWNrKT1cInRvZ2dsZVNlYXJjaEJveCgpXCIgW2Rpc2FibGVkXT1cInRoaXMuZ3JpZD8uc2VsZWN0ZWRSb3dzPy5sZW5ndGggIT0gMFwiIGNvbG9yPVwiZ2hvc3RcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtc2VhcmNoIGF4LXRleHQtbmV1dHJhbC00MDBcIj4gPC9heC1pY29uPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8YXgtYnV0dG9uIFtkaXNhYmxlZF09XCJ0aGlzLmdyaWQ/LnNlbGVjdGVkUm93cz8ubGVuZ3RoICE9IDBcIiBjb2xvcj1cImdob3N0XCIgKG9uQ2xpY2spPVwiY29sdW1uc0RyYXdlci5vcGVuKClcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtYmFycyBheC10ZXh0LW5ldXRyYWwtNDAwXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICA8YXgtYnV0dG9uIFtkaXNhYmxlZF09XCJ0aGlzLmdyaWQ/LnNlbGVjdGVkUm93cz8ubGVuZ3RoICE9IDBcIiBjb2xvcj1cImdob3N0XCIgKG9uQ2xpY2spPVwiY29uZGl0aW9uc0RyYXdlci5vcGVuKClcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtc2xpZGVycyBheC10ZXh0LW5ldXRyYWwtNDAwXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICAgIEBpZiAoKGNvbmRpdGlvbnNDb3VudCQgfCBhc3luYykpIHtcbiAgICAgICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgICAgIDxheC1iYWRnZSBbY29sb3JdPVwiJ3ByaW1hcnknXCI+PC9heC1iYWRnZT5cbiAgICAgICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgIDxheC1idXR0b24gW2Rpc2FibGVkXT1cInRoaXMuZ3JpZD8uc2VsZWN0ZWRSb3dzPy5sZW5ndGggIT0gMFwiIGNvbG9yPVwiZ2hvc3RcIiAob25DbGljayk9XCJzb3J0c0RyYXdlci5vcGVuKClcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtYmFycy1zb3J0IGF4LXRleHQtbmV1dHJhbC00MDBcIj4gPC9heC1pY29uPlxuICAgICAgICAgICAgQGlmICgoc29ydENvdW50JCB8IGFzeW5jKSkge1xuICAgICAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICAgICAgPGF4LWJhZGdlIFtjb2xvcl09XCIncHJpbWFyeSdcIj48L2F4LWJhZGdlPlxuICAgICAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IFtjbGFzcy5jb2xsYXBzZWQtc2VhcmNoLWJveF09XCJzZWFyY2hCb3hDb2xsYXBzZWRcIiBjbGFzcz1cImF4LXRyYW5zaXRpb24tYWxsIGF4LW10LTRcIj5cbiAgICAgICAgPGF4LXNlYXJjaC1ib3ggW3RpdGxlXT1cInNlYXJjaEJveFRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cIignd2lkZ2V0Lmxvb2t1cC5zZWFyY2gnIHwgdHJhbnNsYXRlIHwgYXN5bmMpICsgc2VhcmNoQm94UGxhY2Vob2xkZXJcIlxuICAgICAgICAgID48YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uXG4gICAgICAgID48L2F4LXNlYXJjaC1ib3g+XG4gICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktYmV0d2VlbiBheC1nYXAtM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC14bCBtZDpheC10ZXh0LTN4bCBheC1mb250LWJvbGQgYXgtbWItMlwiPnt7IHRpdGxlIH19PC9kaXY+XG4gICAgICAgIEBpZih0aGlzLmdyaWQ/LnNlbGVjdGVkUm93cz8ubGVuZ3RoPT0wKXtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTNcIj5cbiAgICAgICAgICBAaWYoY2FuQ3JlYXRlKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvbiBbdGV4dF09XCInY3JlYXRlLW5ldycgfCB0cmFuc2xhdGUgfCBhc3luY1wiIGNvbG9yPVwicHJpbWFyeVwiIChvbkNsaWNrKT1cImhhbmRsZUNyZWF0ZUNsaWNrKClcIj5cbiAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtYWRkXCI+PC9pPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxheC1idXR0b24gW3RleHRdPVwiJ0FjdGlvbnMnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIiBjb2xvcj1cImdob3N0XCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWVsbGlwc2lzLXZlcnRpY2FsXCI+PC9pPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWwgW2FkYXB0aXZpdHlFbmFibGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgICAgQGlmKGNhbkltcG9ydCl7XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIChvbkNsaWNrKT1cImhhbmRsZUltcG9ydENsaWNrKClcIiB0ZXh0PVwiSW1wb3J0XCIgY2xhc3M9XCJheC1mb250LXNlbWlib2xkXCI+XG4gICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtZmlsZS1pbXBvcnRcIj4gPC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJFeHBvcnRcIiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1zb2xpZCBmYS1maWxlLWV4cG9ydFwiPiA8L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTNcIj5cbiAgICAgICAgICBAaWYoY2FuRGVsZXRlKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvbiB0ZXh0PVwiRGVsZXRlIEl0ZW1zXCIgY29sb3I9XCJkYW5nZXJcIiAob25DbGljayk9XCJoYW5kbGVDb21tYW5kQ2xpY2soJ2RlbGV0ZScpXCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXRyYXNoXCI+PC9pPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxheC1idXR0b24gW3RleHRdPVwiJ0FjdGlvbnMnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIiBjb2xvcj1cImdob3N0XCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWVsbGlwc2lzLXZlcnRpY2FsXCI+PC9pPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgVmlldyBNb2RlICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuICAgICAgICBAaWYodGhpcy5ncmlkPy5zZWxlY3RlZFJvd3M/Lmxlbmd0aD09MCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC13LWZ1bGwgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWdhcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTNcIj5cbiAgICAgICAgICAgIDxheC1idXR0b24gW3RleHRdPVwiKHZpZXckIHwgYXN5bmMpPy50aXRsZVwiICN2aWV3cyBjb2xvcj1cImdob3N0XCI+XG4gICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1leWVcIj48L2k+XG4gICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICA8YXgtc3VmZml4PlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2FyZXQtZG93blwiPjwvaT5cbiAgICAgICAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbCBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbS1saXN0IGNsYXNzPVwiYXgtYmctc3VyZmFjZVwiPlxuICAgICAgICAgICAgICAgICAgPGF4LXRpdGxlIGNsYXNzPVwiYXgtZm9udC1ib2xkIGF4LW9wYWNpdHktMTAwXCI+e3sgJ2VudGl0eS5wdWJsaWMtdmlldycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYXgtdGl0bGU+XG4gICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHYgb2YgcHVibGljVmlld3MkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJ2LnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWJnLW9uLXN1cmZhY2VdPVwiKHZpZXckIHwgYXN5bmMpID09IHZcIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJsb2FkZXIuc2V0Vmlldyh2Lm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgID48L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgICAgICAgPGF4LXRpdGxlIGNsYXNzPVwiYXgtZm9udC1ib2xkIGF4LW9wYWNpdHktMTAwXCIgKm5nSWY9XCJoYXNDdXN0b21WaWV3cyQgfCBhc3luY1wiPkNyZWF0ZWQgYnkgbWU8L2F4LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtcGUtNCBheC1mbGV4IGF4LWp1c3RpZnktYmV0d2VlblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB2IG9mIGN1c3RvbVZpZXdzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwidi50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1iZy1vbi1zdXJmYWNlXT1cIih2aWV3JCB8IGFzeW5jKSA9PSB2XCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwibG9hZGVyLnNldFZpZXcodi5uYW1lKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiAob25DbGljayk9XCJ1cGRhdGVWaWV3UG9wdXAoJGV2ZW50LCB2KVwiIGNsYXNzPVwiYXgteHNcIiBsb29rPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYXIgZmEtZWRpdFwiPiA8L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmZlYXR1cmU9XCInYXhwLWVudGl0eS1saXN0LWN1c3RvbS12aWV3J1wiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSB0ZXh0PVwiQWRkIEN1c3RvbSBWaWV3XCIgKG9uQ2xpY2spPVwiYWRkQ3VzdG9tVmlld1BvcHVwKClcIiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGQgYXgtdGV4dC1wcmltYXJ5XCI+PC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgQGlmKHNlYXJjaEJveFRpdGxlKXtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC13LTcyXCI+XG4gICAgICAgICAgICAgIDxheC1zZWFyY2gtYm94XG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cInNlYXJjaEJveFRpdGxlXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCJcbiAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlQ2hhbmdlU2VhcmNoVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIignd2lkZ2V0Lmxvb2t1cC5zZWFyY2gnIHwgdHJhbnNsYXRlIHwgYXN5bmMpICsgc2VhcmNoQm94UGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgID48YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uXG4gICAgICAgICAgICAgID48L2F4LXNlYXJjaC1ib3g+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0zXCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIFt0ZXh0XT1cIidlbnRpdHkuY29sdW1ucycgfCB0cmFuc2xhdGUgfCBhc3luY1wiIGNvbG9yPVwiZ2hvc3RcIiAjY29sdW1ucyAob25DbGljayk9XCJjb2x1bW5zRHJhd2VyLm9wZW4oKVwiPlxuICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtYmFyc1wiPjwvaT5cbiAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgICAgICAgPGF4LWJhZGdlIHRleHQ9XCJ7eyBjb2x1bW5zQ291bnQkIHwgYXN5bmMgfX1cIiBjb2xvcj1cInByaW1hcnlcIj48L2F4LWJhZGdlPlxuICAgICAgICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiB0ZXh0PVwiRmlsdGVyc1wiIGNvbG9yPVwiZ2hvc3RcIiAob25DbGljayk9XCJjb25kaXRpb25zRHJhd2VyLm9wZW4oKVwiICNjb25kaXRpb25zPlxuICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtc2xpZGVyc1wiPjwvaT5cbiAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgICAgICAgPGF4LWJhZGdlIHRleHQ9XCJ7eyBjb25kaXRpb25zQ291bnQkIHwgYXN5bmMgfX1cIiBjb2xvcj1cInByaW1hcnlcIj48L2F4LWJhZGdlPlxuICAgICAgICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiBbdGV4dF09XCInZW50aXR5LnNvcnQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIiBjb2xvcj1cImdob3N0XCIgKG9uQ2xpY2spPVwic29ydHNEcmF3ZXIub3BlbigpXCI+XG4gICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1iYXJzLXNvcnRcIj48L2k+XG4gICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICA8YXgtc3VmZml4ICpuZ0lmPVwiKHNvcnRDb3VudCQgfCBhc3luYykhID4gMFwiPlxuICAgICAgICAgICAgICAgIDxheC1iYWRnZSB0ZXh0PVwie3sgc29ydENvdW50JCB8IGFzeW5jIH19XCIgY29sb3I9XCJwcmltYXJ5XCI+PC9heC1iYWRnZT5cbiAgICAgICAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgfSBAZWxzZXtcbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgU2VsZWN0aW9uIE1vZGUgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTMgYXgtaXRlbXMtY2VudGVyIGF4LWgtMTBcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC14bCBheC1mb250LWJvbGRcIj4ge3sgdGhpcy5ncmlkPy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCB9fSBJdGVtcyBTZWxlY3RlZCA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiY2xlYXJTZWxlY3RlZEl0ZW1zKClcIiBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1wcmltYXJ5IGRhcms6YXgtdGV4dC1wcmltYXJ5LTMwMCBheC11bmRlcmxpbmUgYXgtY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICA+Q2xlYXIgSXRlbXM8L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4LTEgYXgtcHgtNiBheC1weS00IGF4LWZsZXggYXgtb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgPGF4LWRhdGEtdGFibGVcbiAgICAgICAgI2dyaWRcbiAgICAgICAgW3Nob3dGb290ZXJdPVwiZmFsc2VcIlxuICAgICAgICBjbGFzcz1cImF4LWZsZXgtMVwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuICAgICAgICBbcGFnaW5nXT1cInRydWVcIlxuICAgICAgICBbZmV0Y2hEYXRhTW9kZV09XCInbWFudWFsJ1wiXG4gICAgICAgIChvblJvd0RiQ2xpY2spPVwiaGFuZGxlUm93RGJDbGljaygkZXZlbnQpXCJcbiAgICAgICAgW2xvYWRpbmddPVwieyBlbmFibGVkOiB0cnVlLCBhbmltYXRpb246IHRydWUgfVwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gPGF4LWluZGV4LWNvbHVtbiAqbmdJZj1cIiFwbGF0Zm9ybS5pcygnU00nKVwiIFt3aWR0aF09XCInODVweCdcIj48L2F4LWluZGV4LWNvbHVtbj4gLS0+XG4gICAgICAgIDxheC1zZWxlY3QtY29sdW1uIGZpeGVkPVwic3RhcnRcIiBbd2lkdGhdPVwiJzUwcHgnXCI+PC9heC1zZWxlY3QtY29sdW1uPlxuICAgICAgICBAZm9yKGNvbCBvZiAoY29sdW1ucyQgfCBhc3luYyk7dHJhY2sgY29sLm5hbWUpIHtcbiAgICAgICAgPGF4cC13aWRnZXQtY29sdW1uLXJlbmRlcmVyXG4gICAgICAgICAgKm5nSWY9XCJjb2wudmlzaWJsZVwiXG4gICAgICAgICAgW3NjaGVtYV09XCJjb2wuc2NoZW1hXCJcbiAgICAgICAgICBbZGF0YUZpZWxkXT1cImNvbC5uYW1lXCJcbiAgICAgICAgICBbY2FwdGlvbl09XCJjb2wudGl0bGVcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImNvbC5vcHRpb25zXCJcbiAgICAgICAgICBbZGlzcGxheUZvcm1hdF09XCJjb2wuZGlzcGxheUZvcm1hdFwiXG4gICAgICAgICAgW3dpZHRoXT1cIicxODBweCdcIlxuICAgICAgICAgIFthbGxvd1NvcnRpbmddPVwiZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXhwLXdpZGdldC1jb2x1bW4tcmVuZGVyZXI+XG4gICAgICAgIH1cbiAgICAgICAgPGF4LWRyb3Bkb3duLWNvbW1hbmQtY29sdW1uXG4gICAgICAgICAgZml4ZWQ9XCJlbmRcIlxuICAgICAgICAgIFt3aWR0aF09XCInNjBweCdcIlxuICAgICAgICAgIFtpdGVtc109XCJnZXREcm9wZG93blJvd0l0ZW1zXCJcbiAgICAgICAgICAob25JdGVtQ2xpY2spPVwiaGFuZGxlUm93Q29tbWFuZENsaWNrKCRldmVudClcIlxuICAgICAgICA+PC9heC1kcm9wZG93bi1jb21tYW5kLWNvbHVtbj5cbiAgICAgICAgPGF4LWNvbW1hbmQtY29sdW1uIGZpeGVkPVwiZW5kXCIgW3dpZHRoXT1cIic2MHB4J1wiIFtpdGVtc109XCJnZXRJbmxpbmVSb3dJdGVtc1wiIChvbkl0ZW1DbGljayk9XCJoYW5kbGVSb3dDb21tYW5kQ2xpY2soJGV2ZW50KVwiPjwvYXgtY29tbWFuZC1jb2x1bW4+XG4gICAgICA8L2F4LWRhdGEtdGFibGU+XG4gICAgPC9kaXY+XG4gIDwvYXgtY29udGVudD5cbiAgPGF4LWRyYXdlciAoY29sbGFwc2VkQ2hhbmdlKT1cImNsb3NlRHJhd2VyKCdjb2x1bW5zJywgJGV2ZW50KVwiICNjb2x1bW5zRHJhd2VyIGxvY2F0aW9uPVwiZW5kXCIgW21vZGVdPVwiJ292ZXJsYXknXCI+XG4gICAgPGF4LWNvbnRlbnQgY2xhc3M9XCJheC13LVs4NXZ3XSBtZDpheC13LVs0NXZ3XSBsZzpheC13LVszNXZ3XSAyeGw6YXgtdy1bMjB2d10gYXgtYm9yZGVyLWVcIj5cbiAgICAgIDxheHAtbGlzdC12aWV3LW9wdGlvbi1jb2x1bW5zIFtsb2FkZXJdPVwibG9hZGVyXCIgKG9uQ2xvc2VkKT1cImNvbHVtbnNEcmF3ZXIuY2xvc2UoKVwiPjwvYXhwLWxpc3Qtdmlldy1vcHRpb24tY29sdW1ucz5cbiAgICA8L2F4LWNvbnRlbnQ+XG4gIDwvYXgtZHJhd2VyPlxuICA8YXgtZHJhd2VyIChjb2xsYXBzZWRDaGFuZ2UpPVwiY2xvc2VEcmF3ZXIoJ2NvbmRpdGlvbnMnLCAkZXZlbnQpXCIgI2NvbmRpdGlvbnNEcmF3ZXIgbG9jYXRpb249XCJlbmRcIiBbbW9kZV09XCInb3ZlcmxheSdcIj5cbiAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LXctWzg1dnddIG1kOmF4LXctWzQ1dnddIGxnOmF4LXctWzM1dnddIDJ4bDpheC13LVsyNXZ3XSBheC1ib3JkZXItZVwiPlxuICAgICAgPGF4cC1saXN0LXZpZXctb3B0aW9uLWNvbmRpdGlvbnMgW2xvYWRlcl09XCJsb2FkZXJcIiAob25DbG9zZWQpPVwiY29uZGl0aW9uc0RyYXdlci5jbG9zZSgpXCI+PC9heHAtbGlzdC12aWV3LW9wdGlvbi1jb25kaXRpb25zPlxuICAgIDwvYXgtY29udGVudD5cbiAgPC9heC1kcmF3ZXI+XG4gIDxheC1kcmF3ZXIgKGNvbGxhcHNlZENoYW5nZSk9XCJjbG9zZURyYXdlcignc29ydHMnLCAkZXZlbnQpXCIgI3NvcnRzRHJhd2VyIGxvY2F0aW9uPVwiZW5kXCIgW21vZGVdPVwiJ292ZXJsYXknXCI+XG4gICAgPGF4LWNvbnRlbnQgY2xhc3M9XCJheC13LVs4NXZ3XSBtZDpheC13LVs0NXZ3XSBsZzpheC13LVszNXZ3XSAyeGw6YXgtdy1bMjB2d10gYXgtYm9yZGVyLWVcIj5cbiAgICAgIDxheHAtbGlzdC12aWV3LW9wdGlvbi1zb3J0aW5nIChvbkNsb3NlZCk9XCJzb3J0c0RyYXdlci5jbG9zZSgpXCIgW2xvYWRlcl09XCJsb2FkZXJcIj48L2F4cC1saXN0LXZpZXctb3B0aW9uLXNvcnRpbmc+XG4gICAgPC9heC1jb250ZW50PlxuICA8L2F4LWRyYXdlcj5cbjwvYXgtZHJhd2VyLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -2,4 +2,4 @@ export * from './components';
|
|
|
2
2
|
export * from './entity-list-view.component';
|
|
3
3
|
export * from './list-view.module';
|
|
4
4
|
export * from './list-view.config';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dHMvc3JjL2xpYi9hZG1pbi9lbnRpdHktbGF5b3V0L2VudGl0eS1saXN0LXZpZXcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnXG5leHBvcnQgKiBmcm9tICcuL2VudGl0eS1saXN0LXZpZXcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saXN0LXZpZXcubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saXN0LXZpZXcuY29uZmlnJyJdfQ==
|