angular-toolbox 1.4.5 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/fesm2022/angular-toolbox.mjs +447 -174
- package/fesm2022/angular-toolbox.mjs.map +1 -1
- package/lib/framework/dialog/dialog-backdrop-type.enum.d.ts +20 -0
- package/lib/framework/dialog/dialog-backdrop.type.d.ts +11 -0
- package/lib/framework/dialog/dialog-default-config.d.ts +12 -0
- package/lib/framework/dialog/dialog-outlet-event-type.d.ts +11 -0
- package/lib/framework/dialog/dialog-outlet.event.d.ts +40 -0
- package/lib/framework/dialog/dialog-service.d.ts +47 -0
- package/lib/framework/dialog/dialog-service.error.d.ts +19 -0
- package/lib/framework/dialog/dialog.config.d.ts +18 -0
- package/lib/framework/dialog/dialog.outlet.d.ts +59 -0
- package/lib/framework/dialog/index.d.ts +15 -0
- package/lib/framework/index.d.ts +1 -0
- package/package.json +1 -3
- package/esm2022/angular-toolbox.mjs +0 -5
- package/esm2022/lib/angular-toolbox.module.mjs +0 -25
- package/esm2022/lib/collection/array-list-event-type.enum.mjs +0 -30
- package/esm2022/lib/collection/array-list.event.mjs +0 -23
- package/esm2022/lib/collection/array-list.mjs +0 -158
- package/esm2022/lib/collection/index.mjs +0 -11
- package/esm2022/lib/component/angular-toolbox-logo/angular-toolbox-logo.component.mjs +0 -18
- package/esm2022/lib/component/dropdown/dropdown.component.mjs +0 -139
- package/esm2022/lib/component/index.mjs +0 -11
- package/esm2022/lib/component/layout/border-layout/border-layout.component.mjs +0 -149
- package/esm2022/lib/component/layout/border-layout/util/border-layout-bounds-manager.mjs +0 -211
- package/esm2022/lib/component/layout/border-layout/util/border-layout-renderer.mjs +0 -267
- package/esm2022/lib/component/layout/border-layout/util/resize-method.mjs +0 -9
- package/esm2022/lib/component/layout/border-layout-container/border-layout-container.component.mjs +0 -145
- package/esm2022/lib/component/layout/index.mjs +0 -3
- package/esm2022/lib/core/abstract/abstract-subscription-manager.mjs +0 -113
- package/esm2022/lib/core/abstract/abstract-version-manager.mjs +0 -37
- package/esm2022/lib/core/abstract/index.mjs +0 -3
- package/esm2022/lib/core/bridge/app-bridge.mjs +0 -76
- package/esm2022/lib/core/error/app-bridge-error.mjs +0 -24
- package/esm2022/lib/core/error/http-mock-service-error.mjs +0 -26
- package/esm2022/lib/core/error/index.mjs +0 -5
- package/esm2022/lib/core/error/integrity-error.mjs +0 -26
- package/esm2022/lib/core/error/subscription-error.mjs +0 -26
- package/esm2022/lib/core/impl/index.mjs +0 -2
- package/esm2022/lib/core/impl/lang/identifiable-component.mjs +0 -47
- package/esm2022/lib/core/impl/lang/index.mjs +0 -2
- package/esm2022/lib/core/impl/version/version.impl.mjs +0 -36
- package/esm2022/lib/core/index.mjs +0 -4
- package/esm2022/lib/directive/anchor-link.directive.mjs +0 -62
- package/esm2022/lib/directive/button-role.directive.mjs +0 -102
- package/esm2022/lib/directive/content-renderer.directive.mjs +0 -61
- package/esm2022/lib/directive/index.mjs +0 -5
- package/esm2022/lib/directive/navigate-to-url.directive.mjs +0 -51
- package/esm2022/lib/directive/navigation-directive-base.mjs +0 -23
- package/esm2022/lib/framework/index.mjs +0 -5
- package/esm2022/lib/framework/logging/connector/console-log-connector.mjs +0 -48
- package/esm2022/lib/framework/logging/connector/default-log-connector.mjs +0 -34
- package/esm2022/lib/framework/logging/connector/html-log-connector.mjs +0 -177
- package/esm2022/lib/framework/logging/connector/index.mjs +0 -4
- package/esm2022/lib/framework/logging/impl/abstract-logger.mjs +0 -100
- package/esm2022/lib/framework/logging/impl/index.mjs +0 -3
- package/esm2022/lib/framework/logging/impl/log-impl.mjs +0 -31
- package/esm2022/lib/framework/logging/index.mjs +0 -4
- package/esm2022/lib/framework/logging/util/index.mjs +0 -4
- package/esm2022/lib/framework/logging/util/log.builder.mjs +0 -28
- package/esm2022/lib/framework/logging/util/log.constant.mjs +0 -24
- package/esm2022/lib/framework/logging/util/log.util.mjs +0 -142
- package/esm2022/lib/framework/mock/documentation/component/atx-mock-description/atx-mock-description.component.mjs +0 -27
- package/esm2022/lib/framework/mock/documentation/component/atx-mock-documentation/atx-mock-documentation.component.mjs +0 -77
- package/esm2022/lib/framework/mock/documentation/component/atx-mock-full-description/atx-mock-full-description.component.mjs +0 -27
- package/esm2022/lib/framework/mock/documentation/component/atx-mock-methods/atx-mock-methods.component.mjs +0 -71
- package/esm2022/lib/framework/mock/documentation/component/atx-mock-param/atx-mock-param.component.mjs +0 -27
- package/esm2022/lib/framework/mock/documentation/index.mjs +0 -2
- package/esm2022/lib/framework/mock/documentation/model/business/full-description.type.mjs +0 -9
- package/esm2022/lib/framework/mock/documentation/model/business/method-doc-descriptor.type.mjs +0 -9
- package/esm2022/lib/framework/mock/http/config/http-mock-parameters.mjs +0 -9
- package/esm2022/lib/framework/mock/http/config/http-mock.decorator.mjs +0 -48
- package/esm2022/lib/framework/mock/http/config/index.mjs +0 -3
- package/esm2022/lib/framework/mock/http/config/route-mock-config.mjs +0 -9
- package/esm2022/lib/framework/mock/http/core/data-storage.mjs +0 -9
- package/esm2022/lib/framework/mock/http/core/response-delay.mjs +0 -9
- package/esm2022/lib/framework/mock/http/event/event-target.impl.mjs +0 -136
- package/esm2022/lib/framework/mock/http/event/progress-event-mock.mjs +0 -48
- package/esm2022/lib/framework/mock/http/index.mjs +0 -4
- package/esm2022/lib/framework/mock/http/logging/http-mock-logger.mjs +0 -15
- package/esm2022/lib/framework/mock/http/logging/http-mock-logging-metadata.builder.mjs +0 -35
- package/esm2022/lib/framework/mock/http/path-to-regexp/constants.mjs +0 -111
- package/esm2022/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.mjs +0 -34
- package/esm2022/lib/framework/mock/http/path-to-regexp/get-flags.mjs +0 -28
- package/esm2022/lib/framework/mock/http/path-to-regexp/iter.mjs +0 -76
- package/esm2022/lib/framework/mock/http/path-to-regexp/lexer.mjs +0 -96
- package/esm2022/lib/framework/mock/http/path-to-regexp/loose-replacer.mjs +0 -28
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/decode-key-to-string.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/encode.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/key.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/lex-token.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/lexer-type.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/loose-replacer-provider.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/non-delimiter-encoder-provider.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/parse-options.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/path-to-regexp-options.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/route-string-tokenizer.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/simple-tokens.mjs +0 -30
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/token-data-regexp-factory.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/token-type.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/token.mjs +0 -17
- package/esm2022/lib/framework/mock/http/path-to-regexp/string-to-token-data.mjs +0 -87
- package/esm2022/lib/framework/mock/http/path-to-regexp/to-key-regexp.mjs +0 -41
- package/esm2022/lib/framework/mock/http/path-to-regexp/to-stringify.mjs +0 -29
- package/esm2022/lib/framework/mock/http/path-to-regexp/token-data-to-regexp.mjs +0 -49
- package/esm2022/lib/framework/mock/http/path-to-regexp/token-data.mjs +0 -33
- package/esm2022/lib/framework/mock/http/util/data-storage.builder.mjs +0 -37
- package/esm2022/lib/framework/mock/http/util/fetch-client-response-type.enum.mjs +0 -40
- package/esm2022/lib/framework/mock/http/util/fetch-client.builder.mjs +0 -52
- package/esm2022/lib/framework/mock/http/util/http-headers-mock.builder.mjs +0 -138
- package/esm2022/lib/framework/mock/http/util/http-headers.util.mjs +0 -71
- package/esm2022/lib/framework/mock/http/util/http-method-ref.enum.mjs +0 -60
- package/esm2022/lib/framework/mock/http/util/http-mock-max-delay.mjs +0 -12
- package/esm2022/lib/framework/mock/http/util/http-mock-response-delay.util.mjs +0 -33
- package/esm2022/lib/framework/mock/http/util/http-mock-response.builder.mjs +0 -141
- package/esm2022/lib/framework/mock/http/util/http-status-text-finder.mjs +0 -146
- package/esm2022/lib/framework/mock/http/util/http-status-text.enum.mjs +0 -260
- package/esm2022/lib/framework/mock/http/util/index.mjs +0 -8
- package/esm2022/lib/framework/mock/http/xhr/delegate-xhr.mjs +0 -372
- package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.impl.mjs +0 -30
- package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.mjs +0 -20
- package/esm2022/lib/framework/mock/http/xhr/index.mjs +0 -2
- package/esm2022/lib/framework/mock/http/xhr/xhr-base.mjs +0 -123
- package/esm2022/lib/framework/mock/http/xhr/xhr-proxy-impl.mjs +0 -178
- package/esm2022/lib/framework/mock/http-monitoring-console/component/abstract/log-renderer-base.mjs +0 -34
- package/esm2022/lib/framework/mock/http-monitoring-console/component/console-footer/console-footer.component.mjs +0 -29
- package/esm2022/lib/framework/mock/http-monitoring-console/component/console-menu/console-menu.component.mjs +0 -40
- package/esm2022/lib/framework/mock/http-monitoring-console/component/http-monitoring-console/http-monitoring-console.component.mjs +0 -62
- package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/icon-renderer/icon-renderer.component.mjs +0 -62
- package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer/json-viewer.component.mjs +0 -45
- package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer-panel/json-viewer-panel.component.mjs +0 -35
- package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/payload-renderer/payload-renderer.component.mjs +0 -70
- package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/request-info-renderer/request-info-renderer.component.mjs +0 -43
- package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/request-list-renderer/request-list-renderer.component.mjs +0 -116
- package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/response-body-renderer/response-body-renderer.component.mjs +0 -89
- package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/response-preview-renderer/response-preview-renderer.component.mjs +0 -115
- package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/spinner/spinner.component.mjs +0 -22
- package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/timing-renderer/timing-renderer.component.mjs +0 -81
- package/esm2022/lib/framework/mock/http-monitoring-console/component/request-details/request-details.component.mjs +0 -91
- package/esm2022/lib/framework/mock/http-monitoring-console/connector/http-monitoring-console-log-connector.mjs +0 -59
- package/esm2022/lib/framework/mock/http-monitoring-console/index.mjs +0 -2
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-action-type.mjs +0 -40
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-action.mjs +0 -9
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-json.mjs +0 -9
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-is-imported-log.mjs +0 -14
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-timeline-data.mjs +0 -9
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-body-dto.mjs +0 -9
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-header-dto.mjs +0 -9
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log-metadata.dto.mjs +0 -9
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log.dto.mjs +0 -9
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request-metadata.dto.ts.mjs +0 -9
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request.dto.mjs +0 -9
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-response.dto.mjs +0 -9
- package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/hmfl.mjs +0 -9
- package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-log-io.service.mjs +0 -105
- package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-monitoring-console.controller.mjs +0 -96
- package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-monitoring-console.state.mjs +0 -126
- package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-user-action.service.mjs +0 -40
- package/esm2022/lib/framework/mock/http-monitoring-console/util/console-body-type.mjs +0 -50
- package/esm2022/lib/framework/mock/http-monitoring-console/util/console-type-class.mjs +0 -45
- package/esm2022/lib/framework/mock/http-monitoring-console/util/data.util.mjs +0 -95
- package/esm2022/lib/framework/mock/http-monitoring-console/util/io/body-converter.mjs +0 -40
- package/esm2022/lib/framework/mock/http-monitoring-console/util/io/body-serializer.mjs +0 -58
- package/esm2022/lib/framework/mock/http-monitoring-console/util/io/form-data-serializer.mjs +0 -33
- package/esm2022/lib/framework/mock/http-monitoring-console/util/io/hmfl-builder.mjs +0 -27
- package/esm2022/lib/framework/mock/http-monitoring-console/util/io/http-request-converter.mjs +0 -62
- package/esm2022/lib/framework/mock/http-monitoring-console/util/io/http-response-converter.mjs +0 -50
- package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-converter.mjs +0 -43
- package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-headers-converter.mjs +0 -53
- package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-message.util.mjs +0 -30
- package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-metadata-converter.mjs +0 -45
- package/esm2022/lib/framework/mock/http-monitoring-console/util/io/request-metadata-converter.mjs +0 -47
- package/esm2022/lib/framework/mock/http-monitoring-console/util/size.util.mjs +0 -57
- package/esm2022/lib/framework/mock/http-monitoring-console/util/timeline.util.mjs +0 -28
- package/esm2022/lib/framework/mock/http-monitoring-console/util/url.util.mjs +0 -51
- package/esm2022/lib/model/business/index.mjs +0 -8
- package/esm2022/lib/model/business/lang/app-bridge-command.mjs +0 -9
- package/esm2022/lib/model/business/lang/destroyable.mjs +0 -9
- package/esm2022/lib/model/business/lang/identifiable.mjs +0 -9
- package/esm2022/lib/model/business/lang/index.mjs +0 -5
- package/esm2022/lib/model/business/lang/instantiable.mjs +0 -9
- package/esm2022/lib/model/business/logging/atx-logger-config.provider.mjs +0 -21
- package/esm2022/lib/model/business/logging/http-mock-logging-constant.enum.mjs +0 -34
- package/esm2022/lib/model/business/logging/index.mjs +0 -8
- package/esm2022/lib/model/business/logging/log-connector.mjs +0 -9
- package/esm2022/lib/model/business/logging/log-level.enum.mjs +0 -34
- package/esm2022/lib/model/business/logging/log.mjs +0 -9
- package/esm2022/lib/model/business/logging/logger-config.mjs +0 -9
- package/esm2022/lib/model/business/logging/logger.mjs +0 -2
- package/esm2022/lib/model/business/logging/transactional-logger.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/config/http-mock-production-policy.enum.mjs +0 -27
- package/esm2022/lib/model/business/mock/http/config/http-mocking-framework-config.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/config/http-mocking-framework-config.provider.mjs +0 -33
- package/esm2022/lib/model/business/mock/http/config/index.mjs +0 -4
- package/esm2022/lib/model/business/mock/http/fetch-client.mjs +0 -14
- package/esm2022/lib/model/business/mock/http/http-method-mock.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/http-mock-config.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/http-mock-endpoint-descriptor.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/http-mock-endpoint.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/http-mock-error.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/http-mock-interceptor.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/http-mock-method-descriptor.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/http-mock-parameter-descriptor.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/http-mock-request-metadata.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/http-response-mock.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/index.mjs +0 -15
- package/esm2022/lib/model/business/mock/http/logging/http-mock-logging-metadata.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/logging/http-mock-logging-prefetch-metadata.mjs +0 -9
- package/esm2022/lib/model/business/mock/http/logging/index.mjs +0 -3
- package/esm2022/lib/model/business/mock/http/xhr-proxy.mjs +0 -9
- package/esm2022/lib/model/business/navigator/battery-manager.mjs +0 -9
- package/esm2022/lib/model/business/navigator/connection-type.mjs +0 -9
- package/esm2022/lib/model/business/navigator/effective-connection-type.mjs +0 -9
- package/esm2022/lib/model/business/navigator/index.mjs +0 -5
- package/esm2022/lib/model/business/navigator/network-information.mjs +0 -9
- package/esm2022/lib/model/business/subscription/index.mjs +0 -2
- package/esm2022/lib/model/business/subscription/subscription-manager.mjs +0 -9
- package/esm2022/lib/model/business/ui/dark-mode-config.mjs +0 -9
- package/esm2022/lib/model/business/ui/dark-mode-config.provider.mjs +0 -43
- package/esm2022/lib/model/business/ui/dark-mode.constant.mjs +0 -16
- package/esm2022/lib/model/business/ui/dropdown/dropdown-event-type.enum.mjs +0 -22
- package/esm2022/lib/model/business/ui/dropdown/dropdown-position.mjs +0 -9
- package/esm2022/lib/model/business/ui/dropdown/dropdown-state.mjs +0 -9
- package/esm2022/lib/model/business/ui/dropdown/dropdown.event.mjs +0 -27
- package/esm2022/lib/model/business/ui/dropdown/index.mjs +0 -6
- package/esm2022/lib/model/business/ui/dropdown/popover-state.mjs +0 -9
- package/esm2022/lib/model/business/ui/index.mjs +0 -8
- package/esm2022/lib/model/business/ui/layout/index.mjs +0 -6
- package/esm2022/lib/model/business/ui/layout/layout-constraints.mjs +0 -9
- package/esm2022/lib/model/business/ui/layout/layout-drag-event-type.enum.mjs +0 -26
- package/esm2022/lib/model/business/ui/layout/layout-drag.event.mjs +0 -23
- package/esm2022/lib/model/business/ui/layout/layout-region.error.mjs +0 -22
- package/esm2022/lib/model/business/ui/layout/layout-region.mjs +0 -35
- package/esm2022/lib/model/business/ui/scroll-behavior.type.mjs +0 -9
- package/esm2022/lib/model/business/ui/window/index.mjs +0 -5
- package/esm2022/lib/model/business/ui/window/window-feature-state.mjs +0 -22
- package/esm2022/lib/model/business/ui/window/window-init.mjs +0 -9
- package/esm2022/lib/model/business/ui/window/window-ref.mjs +0 -9
- package/esm2022/lib/model/business/ui/window/window-target.mjs +0 -34
- package/esm2022/lib/model/business/version/index.mjs +0 -5
- package/esm2022/lib/model/business/version/version-config.mjs +0 -9
- package/esm2022/lib/model/business/version/version-config.provider.mjs +0 -40
- package/esm2022/lib/model/business/version/version-manager.mjs +0 -10
- package/esm2022/lib/model/business/version/version.mjs +0 -10
- package/esm2022/lib/model/index.mjs +0 -3
- package/esm2022/lib/model/service/index.mjs +0 -6
- package/esm2022/lib/model/service/logging/index.mjs +0 -2
- package/esm2022/lib/model/service/logging/logger-service.mjs +0 -41
- package/esm2022/lib/model/service/mock/http/http-mock.service.mjs +0 -279
- package/esm2022/lib/model/service/mock/http/index.mjs +0 -3
- package/esm2022/lib/model/service/mock/http/logging/atx-http-mock-console.service.mjs +0 -92
- package/esm2022/lib/model/service/mock/http/logging/http-mock-logging-service.mjs +0 -117
- package/esm2022/lib/model/service/mock/http/logging/index.mjs +0 -3
- package/esm2022/lib/model/service/subscription/subscription.service.mjs +0 -30
- package/esm2022/lib/model/service/ui/app-bridge.service.mjs +0 -142
- package/esm2022/lib/model/service/ui/dark-mode.service.mjs +0 -183
- package/esm2022/lib/model/service/ui/index.mjs +0 -5
- package/esm2022/lib/model/service/ui/scroll.service.mjs +0 -93
- package/esm2022/lib/model/service/ui/window/abstract-window.service.mjs +0 -49
- package/esm2022/lib/model/service/ui/window/index.mjs +0 -3
- package/esm2022/lib/model/service/ui/window/window.service.mjs +0 -103
- package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +0 -37
- package/esm2022/lib/model/service/version/index.mjs +0 -3
- package/esm2022/lib/model/service/version/version.service.mjs +0 -35
- package/esm2022/lib/pipe/index.mjs +0 -2
- package/esm2022/lib/pipe/safe/safe-html.pipe.mjs +0 -34
- package/esm2022/lib/util/aria-role.constant.mjs +0 -16
- package/esm2022/lib/util/default-scroll-behavior.mjs +0 -13
- package/esm2022/lib/util/empty-string.const.mjs +0 -12
- package/esm2022/lib/util/http-mocking-framework-config.manager.mjs +0 -129
- package/esm2022/lib/util/index.mjs +0 -6
- package/esm2022/lib/util/js-type.mjs +0 -40
- package/esm2022/lib/util/uuid.mjs +0 -126
- package/esm2022/lib/util/version.util.mjs +0 -44
- package/esm2022/lib/util/window/window-features-builder.mjs +0 -90
- package/esm2022/lib/util/window/window-header-tag-util.mjs +0 -42
- package/esm2022/public-api.mjs +0 -20
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
-
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
-
*/
|
|
8
|
-
import { EventEmitter } from '@angular/core';
|
|
9
|
-
import { EMPTY_STRING } from '../../../../util';
|
|
10
|
-
import { LayoutDragEvent, LayoutDragEventType, LayoutRegion, LayoutRegionError } from '../../../../model';
|
|
11
|
-
import { IdentifiableComponent } from '../../../../core';
|
|
12
|
-
import { BorderLayoutBoundsManager } from './border-layout-bounds-manager';
|
|
13
|
-
/**
|
|
14
|
-
* @private
|
|
15
|
-
*/
|
|
16
|
-
const MOUSEMOVE = "mousemove";
|
|
17
|
-
/**
|
|
18
|
-
* @private
|
|
19
|
-
*/
|
|
20
|
-
const MOUSEUP = "mouseup";
|
|
21
|
-
/**
|
|
22
|
-
* @private
|
|
23
|
-
*/
|
|
24
|
-
const REGION_ERR_MSG = "A container with the same identifier has already been registered: ";
|
|
25
|
-
/**
|
|
26
|
-
* @private
|
|
27
|
-
*/
|
|
28
|
-
const LAYOUT_ERR_MSG = "No layout container has been registered.";
|
|
29
|
-
/**
|
|
30
|
-
* @private
|
|
31
|
-
* A controller object responsible for handling user actions on a `BorderLayout` container.
|
|
32
|
-
*/
|
|
33
|
-
export class BorderLayoutRenderer extends IdentifiableComponent {
|
|
34
|
-
/**
|
|
35
|
-
* @private
|
|
36
|
-
*/
|
|
37
|
-
constructor(subscribeSvc, document) {
|
|
38
|
-
super();
|
|
39
|
-
this.subscribeSvc = subscribeSvc;
|
|
40
|
-
this.document = document;
|
|
41
|
-
/**
|
|
42
|
-
* Emits events each time the user starts, or stops dragging handle.
|
|
43
|
-
*/
|
|
44
|
-
this.userAction = new EventEmitter();
|
|
45
|
-
/**
|
|
46
|
-
* @private
|
|
47
|
-
*/
|
|
48
|
-
this.containerList = [];
|
|
49
|
-
/**
|
|
50
|
-
* @private
|
|
51
|
-
*/
|
|
52
|
-
this.storedStopHandler = null;
|
|
53
|
-
/**
|
|
54
|
-
* @private
|
|
55
|
-
*/
|
|
56
|
-
this.storedMoveHandler = null;
|
|
57
|
-
this.boundsManager = new BorderLayoutBoundsManager();
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Add the list `BorderLayoutContainer` objects associated with the main container to this controller.
|
|
61
|
-
*
|
|
62
|
-
* @param containers the list `BorderLayoutContainer` objects associated with the main container.
|
|
63
|
-
*/
|
|
64
|
-
addContainers(containers) {
|
|
65
|
-
let regionValidator = EMPTY_STRING;
|
|
66
|
-
containers.forEach(container => {
|
|
67
|
-
const constraints = container.constraints;
|
|
68
|
-
const r = constraints.region;
|
|
69
|
-
if (regionValidator.indexOf(r) !== -1)
|
|
70
|
-
throw new LayoutRegionError(REGION_ERR_MSG + r);
|
|
71
|
-
regionValidator += r;
|
|
72
|
-
this.subscribeSvc.register(this, container.resizeStart.subscribe(container => this.resizeEnter(container)));
|
|
73
|
-
this.boundsManager.initBounds(container);
|
|
74
|
-
this.containerList.push(container);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
;
|
|
78
|
-
/**
|
|
79
|
-
* Sets the reference to the HTML container associated with the main container.
|
|
80
|
-
*
|
|
81
|
-
* @param lytContainer The reference to the HTML container associated with the main container.
|
|
82
|
-
*/
|
|
83
|
-
setLayoutContainer(lytContainer) {
|
|
84
|
-
this.lytContainerElm = lytContainer;
|
|
85
|
-
}
|
|
86
|
-
;
|
|
87
|
-
/**
|
|
88
|
-
* @private
|
|
89
|
-
* For test purpose only.
|
|
90
|
-
* Returns the reference to the internal `BorderLayoutBoundsManager` instance.
|
|
91
|
-
*/
|
|
92
|
-
getBoundsManager() {
|
|
93
|
-
return this.boundsManager;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Changes the constraints of the region specified by the `LayoutConstraints.region` property.
|
|
97
|
-
*
|
|
98
|
-
* @param constraints The new constraints of the associated region.
|
|
99
|
-
*/
|
|
100
|
-
setConstraints(constraints) {
|
|
101
|
-
const region = constraints.region;
|
|
102
|
-
const container = this.containerList.find((container) => container.constraints.region === region);
|
|
103
|
-
if (!container)
|
|
104
|
-
throw new LayoutRegionError(`Invalid region: no container with the region '${region}' has been found.`);
|
|
105
|
-
if (constraints.size === undefined)
|
|
106
|
-
constraints.size = container.getSize();
|
|
107
|
-
container.constraints = constraints;
|
|
108
|
-
this.paint();
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Makes this object elligible for garbage collection.
|
|
112
|
-
*/
|
|
113
|
-
destroy() {
|
|
114
|
-
if (this.storedStopHandler) {
|
|
115
|
-
this.document.removeEventListener(MOUSEMOVE, this.storedMoveHandler);
|
|
116
|
-
this.document.removeEventListener(MOUSEUP, this.storedStopHandler);
|
|
117
|
-
this.deleteStoredHandlers();
|
|
118
|
-
}
|
|
119
|
-
this.subscribeSvc.clearAll(this);
|
|
120
|
-
this.lytContainerElm = null;
|
|
121
|
-
this.boundsManager.destroy();
|
|
122
|
-
this.boundsManager = null;
|
|
123
|
-
this.containerList.length = 0;
|
|
124
|
-
this.containerList = null;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Forces the layout of all `BorderLayoutContainer` objects associated with the main container.
|
|
128
|
-
*/
|
|
129
|
-
paint() {
|
|
130
|
-
this.checkLytContainer();
|
|
131
|
-
this.render(this.lytContainerElm.offsetWidth);
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Returns the `BorderLayoutContainer` component associated with the specified region.
|
|
135
|
-
*
|
|
136
|
-
* @param region The region for which to retreive the container.
|
|
137
|
-
*
|
|
138
|
-
* @returns The `BorderLayoutContainer` component associated with the specified region,
|
|
139
|
-
* or `undefined` whether no container has been found.
|
|
140
|
-
*/
|
|
141
|
-
getBorderLayoutContainer(region) {
|
|
142
|
-
return this.containerList.find((c) => c.constraints.region === region);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Resizes the specified region of the associated container.
|
|
146
|
-
*
|
|
147
|
-
* @param region The region to resize.
|
|
148
|
-
* @param size The new size of the region to resize.
|
|
149
|
-
*
|
|
150
|
-
* @returns `true` whether the specified region has been resized; `false` otherwise.
|
|
151
|
-
*/
|
|
152
|
-
resizeRegion(region, size) {
|
|
153
|
-
if (region === LayoutRegion.CENTER)
|
|
154
|
-
return false;
|
|
155
|
-
const container = this.getBorderLayoutContainer(region);
|
|
156
|
-
if (!container)
|
|
157
|
-
return false;
|
|
158
|
-
container.setSize(size);
|
|
159
|
-
this.boundsManager.initBounds(container);
|
|
160
|
-
this.paint();
|
|
161
|
-
return true;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* @private
|
|
165
|
-
*/
|
|
166
|
-
resizeEnter(container) {
|
|
167
|
-
this.checkLytContainer();
|
|
168
|
-
const lytNativeElm = this.lytContainerElm;
|
|
169
|
-
const width = lytNativeElm.offsetWidth;
|
|
170
|
-
const height = lytNativeElm.offsetHeight;
|
|
171
|
-
const bounds = lytNativeElm.getBoundingClientRect();
|
|
172
|
-
const constraints = container.constraints;
|
|
173
|
-
const region = constraints.region;
|
|
174
|
-
const minSize = constraints.minSize;
|
|
175
|
-
const maxSize = constraints.maxSize;
|
|
176
|
-
const doc = this.document;
|
|
177
|
-
let size = 0;
|
|
178
|
-
this.boundsManager.setOrigin(bounds.x, bounds.y);
|
|
179
|
-
let resizeMethod = this.boundsManager.getResizeMethod(region);
|
|
180
|
-
container.selected = true;
|
|
181
|
-
const onMoveHandler = (event) => {
|
|
182
|
-
event.stopPropagation();
|
|
183
|
-
event.preventDefault();
|
|
184
|
-
size = resizeMethod(event, width, height, minSize, maxSize);
|
|
185
|
-
container.setSize(size);
|
|
186
|
-
this.render(width);
|
|
187
|
-
this.fireEvent(container, LayoutDragEventType.DRAGGING);
|
|
188
|
-
};
|
|
189
|
-
const onStopHandler = (event) => {
|
|
190
|
-
event.stopPropagation();
|
|
191
|
-
event.preventDefault();
|
|
192
|
-
doc.removeEventListener(MOUSEMOVE, onMoveHandler);
|
|
193
|
-
doc.removeEventListener(MOUSEUP, onStopHandler);
|
|
194
|
-
this.deleteStoredHandlers();
|
|
195
|
-
container.selected = false;
|
|
196
|
-
size = resizeMethod(event, width, height, minSize, maxSize);
|
|
197
|
-
container.setSize(size);
|
|
198
|
-
this.render(width);
|
|
199
|
-
this.fireEvent(container, LayoutDragEventType.DRAG_STOP);
|
|
200
|
-
};
|
|
201
|
-
this.storedMoveHandler = onMoveHandler;
|
|
202
|
-
this.storedStopHandler = onStopHandler;
|
|
203
|
-
this.fireEvent(container, LayoutDragEventType.DRAG_START);
|
|
204
|
-
doc.addEventListener(MOUSEMOVE, onMoveHandler);
|
|
205
|
-
doc.addEventListener(MOUSEUP, onStopHandler);
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* @private
|
|
209
|
-
*/
|
|
210
|
-
fireEvent(target, type) {
|
|
211
|
-
const evt = new LayoutDragEvent(target, type);
|
|
212
|
-
this.userAction.emit(evt);
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* @private
|
|
216
|
-
*/
|
|
217
|
-
render(width) {
|
|
218
|
-
const bounds = this.boundsManager.getBounds();
|
|
219
|
-
const top = bounds.top;
|
|
220
|
-
const bottom = bounds.bottom;
|
|
221
|
-
const left = bounds.left;
|
|
222
|
-
const right = bounds.right;
|
|
223
|
-
const cList = this.containerList;
|
|
224
|
-
let cursor = cList.length - 1;
|
|
225
|
-
while (cursor >= 0) {
|
|
226
|
-
const cont = cList[cursor];
|
|
227
|
-
const r = cont.constraints.region;
|
|
228
|
-
cursor--;
|
|
229
|
-
if (r === LayoutRegion.NORTH || r === LayoutRegion.SOUTH)
|
|
230
|
-
continue;
|
|
231
|
-
if (r === LayoutRegion.WEST) {
|
|
232
|
-
cont.setTopPos(top);
|
|
233
|
-
cont.setRightPos(width - left);
|
|
234
|
-
cont.setBottomPos(bottom - top);
|
|
235
|
-
continue;
|
|
236
|
-
}
|
|
237
|
-
if (r === LayoutRegion.CENTER) {
|
|
238
|
-
cont.setTopPos(top);
|
|
239
|
-
cont.setLeftPos(left);
|
|
240
|
-
cont.setRightPos(right - left);
|
|
241
|
-
cont.setBottomPos(bottom - top);
|
|
242
|
-
continue;
|
|
243
|
-
}
|
|
244
|
-
if (r === LayoutRegion.EAST) {
|
|
245
|
-
cont.setTopPos(top);
|
|
246
|
-
cont.setLeftPos(width - (right - left));
|
|
247
|
-
cont.setBottomPos(bottom - top);
|
|
248
|
-
continue;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* @private
|
|
255
|
-
*/
|
|
256
|
-
checkLytContainer() {
|
|
257
|
-
if (!this.lytContainerElm)
|
|
258
|
-
throw new ReferenceError(LAYOUT_ERR_MSG);
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* @private
|
|
262
|
-
*/
|
|
263
|
-
deleteStoredHandlers() {
|
|
264
|
-
this.storedMoveHandler = this.storedStopHandler = null;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9yZGVyLWxheW91dC1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2NvbXBvbmVudC9sYXlvdXQvYm9yZGVyLWxheW91dC91dGlsL2JvcmRlci1sYXlvdXQtcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFrQyxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUF5QyxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pMLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFOztHQUVHO0FBQ0gsTUFBTSxTQUFTLEdBQVEsV0FBVyxDQUFDO0FBRW5DOztHQUVHO0FBQ0gsTUFBTSxPQUFPLEdBQVEsU0FBUyxDQUFDO0FBRS9COztHQUVHO0FBQ0gsTUFBTSxjQUFjLEdBQVcsb0VBQW9FLENBQUM7QUFFcEc7O0dBRUc7QUFDSCxNQUFNLGNBQWMsR0FBVywwQ0FBMEMsQ0FBQztBQUUxRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEscUJBQXFCO0lBZ0M3RDs7T0FFRztJQUNILFlBQW9CLFlBQWlDLEVBQ2pDLFFBQWtCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRlUsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFsQ3RDOztXQUVHO1FBQ2EsZUFBVSxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTy9FOztXQUVHO1FBQ0ssa0JBQWEsR0FBNEIs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Q0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxTQUFTO1lBQ1gsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQ2hDLFNBQVM7WUFDWCxDQUFDO1FBQ0gsQ0FBQztRQUFBLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQUUsTUFBTSxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDekQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm9yZGVyTGF5b3V0Q29udGFpbmVyIH0gZnJvbSAnLi4vLi4vYm9yZGVyLWxheW91dC1jb250YWluZXIvYm9yZGVyLWxheW91dC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWwnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUsIExheW91dENvbnN0cmFpbnRzLCBMYXlvdXREcmFnRXZlbnQsIExheW91dERyYWdFdmVudFR5cGUsIExheW91dFJlZ2lvbiwgTGF5b3V0UmVnaW9uVHlwZSwgU3Vic2NyaXB0aW9uU2VydmljZSwgTGF5b3V0UmVnaW9uRXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBJZGVudGlmaWFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IEJvcmRlckxheW91dEJvdW5kc01hbmFnZXIgfSBmcm9tICcuL2JvcmRlci1sYXlvdXQtYm91bmRzLW1hbmFnZXInO1xuaW1wb3J0IHsgUmVzaXplTWV0aG9kIH0gZnJvbSAnLi9yZXNpemUtbWV0aG9kJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBNT1VTRU1PVkU6IGFueSA9IFwibW91c2Vtb3ZlXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgTU9VU0VVUDogYW55ID0gXCJtb3VzZXVwXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgUkVHSU9OX0VSUl9NU0c6IHN0cmluZyA9IFwiQSBjb250YWluZXIgd2l0aCB0aGUgc2FtZSBpZGVudGlmaWVyIGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZDogXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgTEFZT1VUX0VSUl9NU0c6IHN0cmluZyA9IFwiTm8gbGF5b3V0IGNvbnRhaW5lciBoYXMgYmVlbiByZWdpc3RlcmVkLlwiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKiBBIGNvbnRyb2xsZXIgb2JqZWN0IHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyB1c2VyIGFjdGlvbnMgb24gYSBgQm9yZGVyTGF5b3V0YCBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3JkZXJMYXlvdXRSZW5kZXJlciBleHRlbmRzIElkZW50aWZpYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIERlc3Ryb3lhYmxlIHtcblxuICAvKipcbiAgICogRW1pdHMgZXZlbnRzIGVhY2ggdGltZSB0aGUgdXNlciBzdGFydHMsIG9yIHN0b3BzIGRyYWdnaW5nIGhhbmRsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyQWN0aW9uOiBFdmVudEVtaXR0ZXI8TGF5b3V0RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgbHl0Q29udGFpbmVyRWxtITogSFRNTERpdkVsZW1lbnQ7XG4gIFxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY29udGFpbmVyTGlzdDogQm9yZGVyTGF5b3V0Q29udGFpbmVyW10gPSBbXTtcbiAgXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBib3VuZHNNYW5hZ2VyOiBCb3JkZXJMYXlvdXRCb3VuZHNNYW5hZ2VyOyBcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgc3RvcmVkU3RvcEhhbmRsZXI6IGFueSA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHN0b3JlZE1vdmVIYW5kbGVyOiBhbnkgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdWJzY3JpYmVTdmM6IFN1YnNjcmlwdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmJvdW5kc01hbmFnZXIgPSBuZXcgQm9yZGVyTGF5b3V0Qm91bmRzTWFuYWdlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgbGlzdCBgQm9yZGVyTGF5b3V0Q29udGFpbmVyYCBvYmplY3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWFpbiBjb250YWluZXIgdG8gdGhpcyBjb250cm9sbGVyLlxuICAgKiBcbiAgICogQHBhcmFtIGNvbnRhaW5lcnMgdGhlIGxpc3QgYEJvcmRlckxheW91dENvbnRhaW5lcmAgb2JqZWN0cyBhc3NvY2lhdGVkIHdpdGggdGhlIG1haW4gY29udGFpbmVyLlxuICAgKi9cbiAgcHVibGljIGFkZENvbnRhaW5lcnMoY29udGFpbmVyczogUXVlcnlMaXN0PEJvcmRlckxheW91dENvbnRhaW5lcj4pOiB2b2lkIHtcbiAgICBsZXQgcmVnaW9uVmFsaWRhdG9yOiBzdHJpbmcgPSBFTVBUWV9TVFJJTkc7XG4gICAgY29udGFpbmVycy5mb3JFYWNoKGNvbnRhaW5lciA9PiB7XG4gICAgICBjb25zdCBjb25zdHJhaW50czogTGF5b3V0Q29uc3RyYWludHMgPSBjb250YWluZXIuY29uc3RyYWludHM7XG4gICAgICBjb25zdCByOiBzdHJpbmcgPSBjb25zdHJhaW50cy5yZWdpb24gYXMgc3RyaW5nO1xuICAgICAgaWYgKHJlZ2lvblZhbGlkYXRvci5pbmRleE9mKHIpICE9PSAtMSkgdGhyb3cgbmV3IExheW91dFJlZ2lvbkVycm9yKFJFR0lPTl9FUlJfTVNHICsgcik7XG4gICAgICByZWdpb25WYWxpZGF0b3IgKz0gcjtcbiAgICAgIHRoaXMuc3Vic2NyaWJlU3ZjLnJlZ2lzdGVyKHRoaXMsXG4gICAgICAgIGNvbnRhaW5lci5yZXNpemVTdGFydC5zdWJzY3JpYmUoY29udGFpbmVyPT4gdGhpcy5yZXNpemVFbnRlcihjb250YWluZXIpKVxuICAgICAgKTtcbiAgICAgIHRoaXMuYm91bmRzTWFuYWdlci5pbml0Qm91bmRzKGNvbnRhaW5lcik7XG4gICAgICB0aGlzLmNvbnRhaW5lckxpc3QucHVzaChjb250YWluZXIpO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSByZWZlcmVuY2UgdG8gdGhlIEhUTUwgY29udGFpbmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWFpbiBjb250YWluZXIuXG4gICAqIFxuICAgKiBAcGFyYW0gbHl0Q29udGFpbmVyIFRoZSByZWZlcmVuY2UgdG8gdGhlIEhUTUwgY29udGFpbmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWFpbiBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgc2V0TGF5b3V0Q29udGFpbmVyKGx5dENvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmx5dENvbnRhaW5lckVsbSA9IGx5dENvbnRhaW5lcjtcbiAgfTtcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICogRm9yIHRlc3QgcHVycG9zZSBvbmx5LlxuICAgKiBSZXR1cm5zIHRoZSByZWZlcmVuY2UgdG8gdGhlIGludGVybmFsIGBCb3JkZXJMYXlvdXRCb3VuZHNNYW5hZ2VyYCBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBnZXRCb3VuZHNNYW5hZ2VyKCk6IEJvcmRlckxheW91dEJvdW5kc01hbmFnZXIge1xuICAgIHJldHVybiB0aGlzLmJvdW5kc01hbmFnZXI7IFxuICB9XG4gIFxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgY29uc3RyYWludHMgb2YgdGhlIHJlZ2lvbiBzcGVjaWZpZWQgYnkgdGhlIGBMYXlvdXRDb25zdHJhaW50cy5yZWdpb25gIHByb3BlcnR5LlxuICAgKiBcbiAgICogQHBhcmFtIGNvbnN0cmFpbnRzIFRoZSBuZXcgY29uc3RyYWludHMgb2YgdGhlIGFzc29jaWF0ZWQgcmVnaW9uLlxuICAgKi9cbiAgcHVibGljIHNldENvbnN0cmFpbnRzKGNvbnN0cmFpbnRzOiBMYXlvdXRDb25zdHJhaW50cyk6IHZvaWQge1xuICAgIGNvbnN0IHJlZ2lvbjogTGF5b3V0UmVnaW9uVHlwZSA9IGNvbnN0cmFpbnRzLnJlZ2lvbiBhcyBMYXlvdXRSZWdpb25UeXBlO1xuICAgIGNvbnN0IGNvbnRhaW5lcjogQm9yZGVyTGF5b3V0Q29udGFpbmVyIHwgdW5kZWZpbmVkID0gdGhpcy5jb250YWluZXJMaXN0LmZpbmQoKGNvbnRhaW5lcjogQm9yZGVyTGF5b3V0Q29udGFpbmVyKSA9PiBjb250YWluZXIuY29uc3RyYWludHMucmVnaW9uID09PSByZWdpb24pO1xuICAgIGlmICghY29udGFpbmVyKSB0aHJvdyBuZXcgTGF5b3V0UmVnaW9uRXJyb3IoYEludmFsaWQgcmVnaW9uOiBubyBjb250YWluZXIgd2l0aCB0aGUgcmVnaW9uICcke3JlZ2lvbn0nIGhhcyBiZWVuIGZvdW5kLmApO1xuICAgIGlmIChjb25zdHJhaW50cy5zaXplID09PSB1bmRlZmluZWQpIGNvbnN0cmFpbnRzLnNpemUgPSBjb250YWluZXIuZ2V0U2l6ZSgpO1xuICAgIGNvbnRhaW5lci5jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzO1xuICAgIHRoaXMucGFpbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlcyB0aGlzIG9iamVjdCBlbGxpZ2libGUgZm9yIGdhcmJhZ2UgY29sbGVjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0b3JlZFN0b3BIYW5kbGVyKSB7XG4gICAgICB0aGlzLmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoTU9VU0VNT1ZFLCB0aGlzLnN0b3JlZE1vdmVIYW5kbGVyKTtcbiAgICAgIHRoaXMuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihNT1VTRVVQLCB0aGlzLnN0b3JlZFN0b3BIYW5kbGVyKTtcbiAgICAgIHRoaXMuZGVsZXRlU3RvcmVkSGFuZGxlcnMoKTtcbiAgICB9XG4gICAgdGhpcy5zdWJzY3JpYmVTdmMuY2xlYXJBbGwodGhpcyk7XG4gICAgdGhpcy5seXRDb250YWluZXJFbG0gPSBudWxsIGFzIGFueTtcbiAgICB0aGlzLmJvdW5kc01hbmFnZXIuZGVzdHJveSgpO1xuICAgIHRoaXMuYm91bmRzTWFuYWdlciA9IG51bGwgYXMgYW55O1xuICAgIHRoaXMuY29udGFpbmVyTGlzdC5sZW5ndGggPSAwO1xuICAgIHRoaXMuY29udGFpbmVyTGlzdCA9IG51bGwgYXMgYW55O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlcyB0aGUgbGF5b3V0IG9mIGFsbCBgQm9yZGVyTGF5b3V0Q29udGFpbmVyYCBvYmplY3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWFpbiBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgcGFpbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja0x5dENvbnRhaW5lcigpO1xuICAgIHRoaXMucmVuZGVyKHRoaXMubHl0Q29udGFpbmVyRWxtLm9mZnNldFdpZHRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgQm9yZGVyTGF5b3V0Q29udGFpbmVyYCBjb21wb25lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVnaW9uLlxuICAgKiBcbiAgICogQHBhcmFtIHJlZ2lvbiBUaGUgcmVnaW9uIGZvciB3aGljaCB0byByZXRyZWl2ZSB0aGUgY29udGFpbmVyLlxuICAgKiBcbiAgICogQHJldHVybnMgVGhlIGBCb3JkZXJMYXlvdXRDb250YWluZXJgIGNvbXBvbmVudCBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCByZWdpb24sXG4gICAqICAgICAgICAgIG9yIGB1bmRlZmluZWRgIHdoZXRoZXIgbm8gY29udGFpbmVyIGhhcyBiZWVuIGZvdW5kLlxuICAgKi9cbiAgcHVibGljIGdldEJvcmRlckxheW91dENvbnRhaW5lcihyZWdpb246IExheW91dFJlZ2lvblR5cGUpOiBCb3JkZXJMYXlvdXRDb250YWluZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbnRhaW5lckxpc3QuZmluZCgoYzogQm9yZGVyTGF5b3V0Q29udGFpbmVyKT0+IGMuY29uc3RyYWludHMucmVnaW9uID09PSByZWdpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2l6ZXMgdGhlIHNwZWNpZmllZCByZWdpb24gb2YgdGhlIGFzc29jaWF0ZWQgY29udGFpbmVyLlxuICAgKiBcbiAgICogQHBhcmFtIHJlZ2lvbiBUaGUgcmVnaW9uIHRvIHJlc2l6ZS5cbiAgICogQHBhcmFtIHNpemUgVGhlIG5ldyBzaXplIG9mIHRoZSByZWdpb24gdG8gcmVzaXplLlxuICAgKiBcbiAgICogQHJldHVybnMgYHRydWVgIHdoZXRoZXIgdGhlIHNwZWNpZmllZCByZWdpb24gaGFzIGJlZW4gcmVzaXplZDsgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgcmVzaXplUmVnaW9uKHJlZ2lvbjogTGF5b3V0UmVnaW9uLCBzaXplOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAocmVnaW9uID09PSBMYXlvdXRSZWdpb24uQ0VOVEVSKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgY29udGFpbmVyOiBCb3JkZXJMYXlvdXRDb250YWluZXIgfCB1bmRlZmluZWQgPSB0aGlzLmdldEJvcmRlckxheW91dENvbnRhaW5lcihyZWdpb24pO1xuICAgIGlmICghY29udGFpbmVyKSByZXR1cm4gZmFsc2U7XG4gICAgY29udGFpbmVyLnNldFNpemUoc2l6ZSk7XG4gICAgdGhpcy5ib3VuZHNNYW5hZ2VyLmluaXRCb3VuZHMoY29udGFpbmVyKTtcbiAgICB0aGlzLnBhaW50KCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVzaXplRW50ZXIoY29udGFpbmVyOiBCb3JkZXJMYXlvdXRDb250YWluZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrTHl0Q29udGFpbmVyKCk7XG4gICAgY29uc3QgbHl0TmF0aXZlRWxtOiBIVE1MRGl2RWxlbWVudCA9IHRoaXMubHl0Q29udGFpbmVyRWxtO1xuICAgIGNvbnN0IHdpZHRoOiBudW1iZXIgPSBseXROYXRpdmVFbG0ub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgaGVpZ2h0OiBudW1iZXIgPSBseXROYXRpdmVFbG0ub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IGJvdW5kczogRE9NUmVjdCA9IGx5dE5hdGl2ZUVsbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBjb25zdHJhaW50czogTGF5b3V0Q29uc3RyYWludHMgPSBjb250YWluZXIuY29uc3RyYWludHM7XG4gICAgY29uc3QgcmVnaW9uOiBMYXlvdXRSZWdpb24gPSBjb25zdHJhaW50cy5yZWdpb24gYXMgTGF5b3V0UmVnaW9uO1xuICAgIGNvbnN0IG1pblNpemU6IG51bWJlciB8IHVuZGVmaW5lZCA9IGNvbnN0cmFpbnRzLm1pblNpemU7XG4gICAgY29uc3QgbWF4U2l6ZTogbnVtYmVyIHwgdW5kZWZpbmVkID0gY29uc3RyYWludHMubWF4U2l6ZTtcbiAgICBjb25zdCBkb2M6IERvY3VtZW50ID0gdGhpcy5kb2N1bWVudDtcbiAgICBsZXQgc2l6ZTogbnVtYmVyID0gMDtcbiAgICB0aGlzLmJvdW5kc01hbmFnZXIuc2V0T3JpZ2luKGJvdW5kcy54LCBib3VuZHMueSk7XG4gICAgbGV0IHJlc2l6ZU1ldGhvZDogUmVzaXplTWV0aG9kID0gdGhpcy5ib3VuZHNNYW5hZ2VyLmdldFJlc2l6ZU1ldGhvZChyZWdpb24pO1xuICAgIGNvbnRhaW5lci5zZWxlY3RlZCA9IHRydWU7XG4gICAgY29uc3Qgb25Nb3ZlSGFuZGxlciA9IChldmVudDogTW91c2VFdmVudCk9PiB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBzaXplID0gcmVzaXplTWV0aG9kKGV2ZW50LCB3aWR0aCwgaGVpZ2h0LCBtaW5TaXplLCBtYXhTaXplKTtcbiAgICAgIGNvbnRhaW5lci5zZXRTaXplKHNpemUpO1xuICAgICAgdGhpcy5yZW5kZXIod2lkdGgpO1xuICAgICAgdGhpcy5maXJlRXZlbnQoY29udGFpbmVyLCBMYXlvdXREcmFnRXZlbnRUeXBlLkRSQUdHSU5HKTtcbiAgICB9O1xuICAgIGNvbnN0IG9uU3RvcEhhbmRsZXIgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpPT4ge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoTU9VU0VNT1ZFLCBvbk1vdmVIYW5kbGVyKTtcbiAgICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKE1PVVNFVVAsIG9uU3RvcEhhbmRsZXIpO1xuICAgICAgdGhpcy5kZWxldGVTdG9yZWRIYW5kbGVycygpO1xuICAgICAgY29udGFpbmVyLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICBzaXplID0gcmVzaXplTWV0aG9kKGV2ZW50LCB3aWR0aCwgaGVpZ2h0LCBtaW5TaXplLCBtYXhTaXplKTtcbiAgICAgIGNvbnRhaW5lci5zZXRTaXplKHNpemUpO1xuICAgICAgdGhpcy5yZW5kZXIod2lkdGgpO1xuICAgICAgdGhpcy5maXJlRXZlbnQoY29udGFpbmVyLCBMYXlvdXREcmFnRXZlbnRUeXBlLkRSQUdfU1RPUCk7XG4gICAgfTtcbiAgICB0aGlzLnN0b3JlZE1vdmVIYW5kbGVyID0gb25Nb3ZlSGFuZGxlcjtcbiAgICB0aGlzLnN0b3JlZFN0b3BIYW5kbGVyID0gb25TdG9wSGFuZGxlcjtcbiAgICB0aGlzLmZpcmVFdmVudChjb250YWluZXIsIExheW91dERyYWdFdmVudFR5cGUuRFJBR19TVEFSVCk7XG4gICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoTU9VU0VNT1ZFLCBvbk1vdmVIYW5kbGVyKTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihNT1VTRVVQLCBvblN0b3BIYW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBmaXJlRXZlbnQodGFyZ2V0OiBCb3JkZXJMYXlvdXRDb250YWluZXIsIHR5cGU6IExheW91dERyYWdFdmVudFR5cGUpOiB2b2lkIHtcbiAgICBjb25zdCBldnQ6IExheW91dERyYWdFdmVudCA9IG5ldyBMYXlvdXREcmFnRXZlbnQodGFyZ2V0LCB0eXBlKTtcbiAgICB0aGlzLnVzZXJBY3Rpb24uZW1pdChldnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlbmRlcih3aWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgYm91bmRzOiBET01SZWN0ID0gdGhpcy5ib3VuZHNNYW5hZ2VyLmdldEJvdW5kcygpO1xuICAgIGNvbnN0IHRvcDogbnVtYmVyID0gYm91bmRzLnRvcDtcbiAgICBjb25zdCBib3R0b206IG51bWJlciA9IGJvdW5kcy5ib3R0b207XG4gICAgY29uc3QgbGVmdDogbnVtYmVyID0gYm91bmRzLmxlZnQ7XG4gICAgY29uc3QgcmlnaHQ6IG51bWJlciA9IGJvdW5kcy5yaWdodDtcbiAgICBjb25zdCBjTGlzdDogQm9yZGVyTGF5b3V0Q29udGFpbmVyW10gPSB0aGlzLmNvbnRhaW5lckxpc3Q7XG4gICAgbGV0IGN1cnNvcjogbnVtYmVyID0gY0xpc3QubGVuZ3RoIC0gMTtcbiAgICB3aGlsZShjdXJzb3IgPj0gMCkge1xuICAgICAgY29uc3QgY29udDogQm9yZGVyTGF5b3V0Q29udGFpbmVyID0gY0xpc3RbY3Vyc29yXTtcbiAgICAgIGNvbnN0IHI6IExheW91dFJlZ2lvbiA9IGNvbnQuY29uc3RyYWludHMucmVnaW9uIGFzIExheW91dFJlZ2lvbjtcbiAgICAgIGN1cnNvci0tO1xuICAgICAgaWYgKHIgPT09IExheW91dFJlZ2lvbi5OT1JUSCB8fCByID09PSBMYXlvdXRSZWdpb24uU09VVEgpIGNvbnRpbnVlO1xuICAgICAgaWYgKHIgPT09IExheW91dFJlZ2lvbi5XRVNUKSB7XG4gICAgICAgIGNvbnQuc2V0VG9wUG9zKHRvcCk7XG4gICAgICAgIGNvbnQuc2V0UmlnaHRQb3Mod2lkdGggLSBsZWZ0KTtcbiAgICAgICAgY29udC5zZXRCb3R0b21Qb3MoYm90dG9tIC0gdG9wKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAociA9PT0gTGF5b3V0UmVnaW9uLkNFTlRFUikge1xuICAgICAgICBjb250LnNldFRvcFBvcyh0b3ApO1xuICAgICAgICBjb250LnNldExlZnRQb3MobGVmdCk7XG4gICAgICAgIGNvbnQuc2V0UmlnaHRQb3MocmlnaHQgLSBsZWZ0KTtcbiAgICAgICAgY29udC5zZXRCb3R0b21Qb3MoYm90dG9tIC0gdG9wKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAociA9PT0gTGF5b3V0UmVnaW9uLkVBU1QpIHtcbiAgICAgICAgY29udC5zZXRUb3BQb3ModG9wKTtcbiAgICAgICAgY29udC5zZXRMZWZ0UG9zKHdpZHRoIC0gKHJpZ2h0IC0gbGVmdCkpO1xuICAgICAgICBjb250LnNldEJvdHRvbVBvcyhib3R0b20gLSB0b3ApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGNoZWNrTHl0Q29udGFpbmVyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5seXRDb250YWluZXJFbG0pIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihMQVlPVVRfRVJSX01TRyk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBkZWxldGVTdG9yZWRIYW5kbGVycygpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlZE1vdmVIYW5kbGVyID0gdGhpcy5zdG9yZWRTdG9wSGFuZGxlciA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
-
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW1ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2NvbXBvbmVudC9sYXlvdXQvYm9yZGVyLWxheW91dC91dGlsL3Jlc2l6ZS1tZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKiBBIGNvbnZlbmllbnQgdHlwZSB0aGF0IGRlc2NyaWJlcyBtZXRob2RzIHVzZWQgdG8gY29tcHV0ZSB0aGUgc2l6ZSBvZiBhIGBCb3JkZXJsYXlvdXRDb250YWluZXJgIG9iamVjdCxcbiAqIGRlcGVuZGluZyBvbiBpdHMgcmVnaW9uLlxuICovXG5leHBvcnQgdHlwZSBSZXNpemVNZXRob2QgPSAoZXZlbnQ6IE1vdXNlRXZlbnQsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBtaW5TaXplOiBudW1iZXIgfCB1bmRlZmluZWQsIG1heFNpemU6IG51bWJlciB8IHVuZGVmaW5lZCk9PiBudW1iZXI7XG4iXX0=
|
package/esm2022/lib/component/layout/border-layout-container/border-layout-container.component.mjs
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
-
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
-
*/
|
|
8
|
-
import { Component, Input, HostBinding, EventEmitter } from '@angular/core';
|
|
9
|
-
import { LayoutRegion } from '../../../model';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
/**
|
|
12
|
-
* @private
|
|
13
|
-
*/
|
|
14
|
-
const PX = "px";
|
|
15
|
-
/**
|
|
16
|
-
* A container that defines the region of a `BorderLayout` component instance.
|
|
17
|
-
*/
|
|
18
|
-
export class BorderLayoutContainer {
|
|
19
|
-
/**
|
|
20
|
-
* Gets the CSS class associated with the region constraint of the `BorderLayoutContainer` object.
|
|
21
|
-
*/
|
|
22
|
-
get class() {
|
|
23
|
-
return this.region;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Gets or sets the constraints for this `BorderLayoutContainer` object.
|
|
27
|
-
*/
|
|
28
|
-
get constraints() {
|
|
29
|
-
return this.atxConstraints;
|
|
30
|
-
}
|
|
31
|
-
set constraints(constraints) {
|
|
32
|
-
this.atxConstraints = constraints;
|
|
33
|
-
this.region = constraints.region;
|
|
34
|
-
if (constraints.resizable)
|
|
35
|
-
this.initHandle();
|
|
36
|
-
else
|
|
37
|
-
this.resizable = false;
|
|
38
|
-
this.setSize(constraints.size);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* @private
|
|
42
|
-
*/
|
|
43
|
-
constructor(elRef) {
|
|
44
|
-
this.elRef = elRef;
|
|
45
|
-
/**
|
|
46
|
-
* @private
|
|
47
|
-
* Indicates to the parent `BorderLayout` instance that the user starts to resize this container.
|
|
48
|
-
*/
|
|
49
|
-
this.resizeStart = new EventEmitter(false);
|
|
50
|
-
/**
|
|
51
|
-
* @private
|
|
52
|
-
*/
|
|
53
|
-
this.selected = false;
|
|
54
|
-
/**
|
|
55
|
-
* @private
|
|
56
|
-
*/
|
|
57
|
-
this.resizable = false;
|
|
58
|
-
this.style = this.elRef.nativeElement.style;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Sets the size of this container depending on the specified region.
|
|
62
|
-
*
|
|
63
|
-
* @param size The new size for this container, in pixels.
|
|
64
|
-
*/
|
|
65
|
-
setSize(size) {
|
|
66
|
-
const r = this.region;
|
|
67
|
-
if (r === LayoutRegion.CENTER)
|
|
68
|
-
return;
|
|
69
|
-
if (r === LayoutRegion.NORTH || r === LayoutRegion.SOUTH) {
|
|
70
|
-
this.size = size ? size : 50;
|
|
71
|
-
this.style.height = this.size + PX;
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
if (r === LayoutRegion.EAST || r === LayoutRegion.WEST) {
|
|
75
|
-
this.size = size ? size : 100;
|
|
76
|
-
this.style.width = this.size + PX;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Returns the size of the container, in pixels.
|
|
81
|
-
*
|
|
82
|
-
* @returns The size of the container.
|
|
83
|
-
*/
|
|
84
|
-
getSize() {
|
|
85
|
-
return this.size;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Sets the left-hand side position of this container.
|
|
89
|
-
*
|
|
90
|
-
* @param position The left-hand side position of this container, in pixels.
|
|
91
|
-
*/
|
|
92
|
-
setLeftPos(position) {
|
|
93
|
-
this.style.left = position + PX;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Sets the right-hand side position of this container.
|
|
97
|
-
*
|
|
98
|
-
* @param position The right-hand side position of this container, in pixels.
|
|
99
|
-
*/
|
|
100
|
-
setRightPos(position) {
|
|
101
|
-
this.style.right = position + PX;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Sets the top position of this container.
|
|
105
|
-
*
|
|
106
|
-
* @param position The top position of this container, in pixels.
|
|
107
|
-
*/
|
|
108
|
-
setTopPos(position) {
|
|
109
|
-
this.style.top = position + PX;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Sets the bottom position of this container.
|
|
113
|
-
*
|
|
114
|
-
* @param position The bottom position of this container, in pixels.
|
|
115
|
-
*/
|
|
116
|
-
setBottomPos(position) {
|
|
117
|
-
this.style.bottom = position + PX;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* @private
|
|
121
|
-
*/
|
|
122
|
-
resizetart() {
|
|
123
|
-
this.resizeStart.emit(this);
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* @private
|
|
127
|
-
*/
|
|
128
|
-
initHandle() {
|
|
129
|
-
if (this.region === LayoutRegion.CENTER)
|
|
130
|
-
return;
|
|
131
|
-
this.resizable = true;
|
|
132
|
-
}
|
|
133
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayoutContainer, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
134
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: BorderLayoutContainer, isStandalone: true, selector: "atx-border-layout-container", inputs: { constraints: "constraints" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<ng-content></ng-content>\n@if (resizable) {\n <div class=\"atx-handle\" [class.atx-handle-selected]=\"selected\" (mousedown)=\"resizetart()\"></div>\n}\n", styles: [":host{box-sizing:border-box;padding:0;margin:0}:host.north{position:absolute;z-index:10;top:0;left:0;right:0}:host.north>.atx-handle{left:0;right:0;bottom:0;height:4px;cursor:ns-resize}:host.west{position:absolute;z-index:5;left:0;height:unset!important}:host.west>.atx-handle{right:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.east{position:absolute;z-index:5;right:0;height:unset!important}:host.east>.atx-handle{left:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.south{position:absolute;z-index:10;bottom:0;left:0;right:0}:host.south>.atx-handle{left:0;right:0;top:0;height:4px;cursor:ns-resize}:host.center{position:absolute}.atx-handle{position:absolute}.atx-handle:hover,.atx-handle.atx-handle-selected{background-color:var(--atx-handle-color, #469afa)}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }); }
|
|
135
|
-
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayoutContainer, decorators: [{
|
|
137
|
-
type: Component,
|
|
138
|
-
args: [{ selector: 'atx-border-layout-container', standalone: true, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<ng-content></ng-content>\n@if (resizable) {\n <div class=\"atx-handle\" [class.atx-handle-selected]=\"selected\" (mousedown)=\"resizetart()\"></div>\n}\n", styles: [":host{box-sizing:border-box;padding:0;margin:0}:host.north{position:absolute;z-index:10;top:0;left:0;right:0}:host.north>.atx-handle{left:0;right:0;bottom:0;height:4px;cursor:ns-resize}:host.west{position:absolute;z-index:5;left:0;height:unset!important}:host.west>.atx-handle{right:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.east{position:absolute;z-index:5;right:0;height:unset!important}:host.east>.atx-handle{left:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.south{position:absolute;z-index:10;bottom:0;left:0;right:0}:host.south>.atx-handle{left:0;right:0;top:0;height:4px;cursor:ns-resize}:host.center{position:absolute}.atx-handle{position:absolute}.atx-handle:hover,.atx-handle.atx-handle-selected{background-color:var(--atx-handle-color, #469afa)}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
|
|
139
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { class: [{
|
|
140
|
-
type: HostBinding,
|
|
141
|
-
args: ['class']
|
|
142
|
-
}], constraints: [{
|
|
143
|
-
type: Input
|
|
144
|
-
}] } });
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9yZGVyLWxheW91dC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvY29tcG9uZW50L2xheW91dC9ib3JkZXItbGF5b3V0LWNvbnRhaW5lci9ib3JkZXItbGF5b3V0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9jb21wb25lbnQvbGF5b3V0L2JvcmRlci1sYXlvdXQtY29udGFpbmVyL2JvcmRlci1sYXlvdXQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBYyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFxQixZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFakU7O0dBRUc7QUFDSCxNQUFNLEVBQUUsR0FBVyxJQUFJLENBQUM7QUFFeEI7O0dBRUc7QUFPSCxNQUFNLE9BQU8scUJBQXFCO0lBYWhDOztPQUVHO0lBQ0gsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUEyQkQ7O09BRUc7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUNXLFdBQVcsQ0FBQyxXQUE4QjtRQUNuRCxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFzQixDQUFDO1FBQ2pELElBQUcsV0FBVyxDQUFDLFNBQVM7WUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7O1lBQ3ZDLElBQUks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KlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGF5b3V0Q29uc3RyYWludHMsIExheW91dFJlZ2lvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVsJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBQWDogc3RyaW5nID0gXCJweFwiO1xuXG4vKipcbiAqIEEgY29udGFpbmVyIHRoYXQgZGVmaW5lcyB0aGUgcmVnaW9uIG9mIGEgYEJvcmRlckxheW91dGAgY29tcG9uZW50IGluc3RhbmNlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdHgtYm9yZGVyLWxheW91dC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYm9yZGVyLWxheW91dC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ib3JkZXItbGF5b3V0LWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJvcmRlckxheW91dENvbnRhaW5lciB7XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqIEluZGljYXRlcyB0byB0aGUgcGFyZW50IGBCb3JkZXJMYXlvdXRgIGluc3RhbmNlIHRoYXQgdGhlIHVzZXIgc3RhcnRzIHRvIHJlc2l6ZSB0aGlzIGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNpemVTdGFydDogRXZlbnRFbWl0dGVyPEJvcmRlckxheW91dENvbnRhaW5lcj4gPSBuZXcgRXZlbnRFbWl0dGVyKGZhbHNlKTtcbiAgXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHVibGljIHNlbGVjdGVkOiBCb29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIENTUyBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhlIHJlZ2lvbiBjb25zdHJhaW50IG9mIHRoZSBgQm9yZGVyTGF5b3V0Q29udGFpbmVyYCBvYmplY3QuXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVnaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVnaW9uITogTGF5b3V0UmVnaW9uO1xuICBcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGF0eENvbnN0cmFpbnRzITogTGF5b3V0Q29uc3RyYWludHM7XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNpemUhOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uO1xuXG4gIC8qKlxuICAgKiBHZXRzIG9yIHNldHMgdGhlIGNvbnN0cmFpbnRzIGZvciB0aGlzIGBCb3JkZXJMYXlvdXRDb250YWluZXJgIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29uc3RyYWludHMoKTogTGF5b3V0Q29uc3RyYWludHMgIHtcbiAgICByZXR1cm4gdGhpcy5hdHhDb25zdHJhaW50cztcbiAgfVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzOiBMYXlvdXRDb25zdHJhaW50cykge1xuICAgIHRoaXMuYXR4Q29uc3RyYWludHMgPSBjb25zdHJhaW50cztcbiAgICB0aGlzLnJlZ2lvbiA9IGNvbnN0cmFpbnRzLnJlZ2lvbiBhcyBMYXlvdXRSZWdpb247XG4gICAgaWYoY29uc3RyYWludHMucmVzaXphYmxlKSB0aGlzLmluaXRIYW5kbGUoKTtcbiAgICBlbHNlIHRoaXMucmVzaXphYmxlID0gZmFsc2U7XG4gICAgdGhpcy5zZXRTaXplKGNvbnN0cmFpbnRzLnNpemUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5zdHlsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzaXplIG9mIHRoaXMgY29udGFpbmVyIGRlcGVuZGluZyBvbiB0aGUgc3BlY2lmaWVkIHJlZ2lvbi5cbiAgICogXG4gICAqIEBwYXJhbSBzaXplIFRoZSBuZXcgc2l6ZSBmb3IgdGhpcyBjb250YWluZXIsIGluIHBpeGVscy5cbiAgICovXG4gIHB1YmxpYyBzZXRTaXplKHNpemU6IG51bWJlciB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IHI6IExheW91dFJlZ2lvbiA9IHRoaXMucmVnaW9uO1xuICAgIGlmIChyID09PSBMYXlvdXRSZWdpb24uQ0VOVEVSKSByZXR1cm47XG4gICAgaWYgKHIgPT09IExheW91dFJlZ2lvbi5OT1JUSCB8fCByID09PSBMYXlvdXRSZWdpb24uU09VVEgpIHtcbiAgICAgIHRoaXMuc2l6ZSA9IHNpemUgPyBzaXplIDogNTA7XG4gICAgICB0aGlzLnN0eWxlLmhlaWdodCA9IHRoaXMuc2l6ZSArIFBYO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAociA9PT0gTGF5b3V0UmVnaW9uLkVBU1QgfHwgciA9PT0gTGF5b3V0UmVnaW9uLldFU1QpIHtcbiAgICAgIHRoaXMuc2l6ZSA9IHNpemUgPyBzaXplIDogMTAwO1xuICAgICAgdGhpcy5zdHlsZS53aWR0aCA9IHRoaXMuc2l6ZSArIFBYO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIsIGluIHBpeGVscy5cbiAgICogXG4gICAqIEByZXR1cm5zIFRoZSBzaXplIG9mIHRoZSBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0U2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNpemU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgbGVmdC1oYW5kIHNpZGUgcG9zaXRpb24gb2YgdGhpcyBjb250YWluZXIuXG4gICAqIFxuICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIGxlZnQtaGFuZCBzaWRlIHBvc2l0aW9uIG9mIHRoaXMgY29udGFpbmVyLCBpbiBwaXhlbHMuXG4gICAqL1xuICBwdWJsaWMgc2V0TGVmdFBvcyhwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zdHlsZS5sZWZ0ID0gcG9zaXRpb24gKyBQWDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSByaWdodC1oYW5kIHNpZGUgcG9zaXRpb24gb2YgdGhpcyBjb250YWluZXIuXG4gICAqIFxuICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIHJpZ2h0LWhhbmQgc2lkZSBwb3NpdGlvbiBvZiB0aGlzIGNvbnRhaW5lciwgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcHVibGljIHNldFJpZ2h0UG9zKHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnN0eWxlLnJpZ2h0ID0gcG9zaXRpb24gKyBQWDtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFNldHMgdGhlIHRvcCBwb3NpdGlvbiBvZiB0aGlzIGNvbnRhaW5lci5cbiAgICogXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBUaGUgdG9wIHBvc2l0aW9uIG9mIHRoaXMgY29udGFpbmVyLCBpbiBwaXhlbHMuXG4gICAqL1xuICBwdWJsaWMgc2V0VG9wUG9zKHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnN0eWxlLnRvcCA9IHBvc2l0aW9uICsgUFg7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBib3R0b20gcG9zaXRpb24gb2YgdGhpcyBjb250YWluZXIuXG4gICAqIFxuICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIGJvdHRvbSBwb3NpdGlvbiBvZiB0aGlzIGNvbnRhaW5lciwgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcHVibGljIHNldEJvdHRvbVBvcyhwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zdHlsZS5ib3R0b20gPSBwb3NpdGlvbiArIFBYO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzaXpldGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6ZVN0YXJ0LmVtaXQodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgaW5pdEhhbmRsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWdpb24gPT09IExheW91dFJlZ2lvbi5DRU5URVIpIHJldHVybjtcbiAgICB0aGlzLnJlc2l6YWJsZSA9IHRydWU7XG4gIH1cbn1cbiIsIjwhLS1cbiAqIExJQ0VOU0VcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXG4tLT5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuQGlmIChyZXNpemFibGUpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXR4LWhhbmRsZVwiIFtjbGFzcy5hdHgtaGFuZGxlLXNlbGVjdGVkXT1cInNlbGVjdGVkXCIgKG1vdXNlZG93bik9XCJyZXNpemV0YXJ0KClcIj48L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from "./border-layout/border-layout.component";
|
|
2
|
-
export * from "./border-layout-container/border-layout-container.component";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9jb21wb25lbnQvbGF5b3V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2REFBNkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2JvcmRlci1sYXlvdXQvYm9yZGVyLWxheW91dC5jb21wb25lbnRcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vYm9yZGVyLWxheW91dC1jb250YWluZXIvYm9yZGVyLWxheW91dC1jb250YWluZXIuY29tcG9uZW50XCI7Il19
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
-
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
-
*/
|
|
8
|
-
import { SubscriptionError } from '../error';
|
|
9
|
-
import { IdentifiableComponent } from '../impl';
|
|
10
|
-
import { STRING } from '../../util';
|
|
11
|
-
/**
|
|
12
|
-
* The abstract class for all services that implement the `SubscriptionManager` interface.
|
|
13
|
-
*/
|
|
14
|
-
export class AbstractSubscriptionManager {
|
|
15
|
-
constructor() {
|
|
16
|
-
/**
|
|
17
|
-
* @private
|
|
18
|
-
* Stores an internal reference to the last reference used with the `register()`
|
|
19
|
-
* method.
|
|
20
|
-
*/
|
|
21
|
-
this._lastRef = null;
|
|
22
|
-
/**
|
|
23
|
-
* @private
|
|
24
|
-
* The internal `Subscription` instances storage.
|
|
25
|
-
*/
|
|
26
|
-
this._subMap = new Map();
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Stores a new `Subscription` instance associated with the specified reference.
|
|
30
|
-
*
|
|
31
|
-
* @param ref The reference for which to store a new `Subscription` instance.
|
|
32
|
-
* Can be either a string or an `Identifiable` object.
|
|
33
|
-
* @param subscription The `Subscription` instance to register.
|
|
34
|
-
*
|
|
35
|
-
* @returns A reference to this `SubscriptionService` instance.
|
|
36
|
-
*/
|
|
37
|
-
register(ref, subscription) {
|
|
38
|
-
const REF = this.getRef(ref);
|
|
39
|
-
this._lastRef = REF;
|
|
40
|
-
if (!this._subMap.has(REF))
|
|
41
|
-
this._subMap.set(REF, []);
|
|
42
|
-
this._subMap.get(REF)?.push(subscription);
|
|
43
|
-
return this;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Stores a new `Subscription` instance associated with the reference specified
|
|
47
|
-
* by the last `register()` method invokation.
|
|
48
|
-
*
|
|
49
|
-
* @param subscription The `Subscription` instance to register.
|
|
50
|
-
*
|
|
51
|
-
* @returns A reference to this `SubscriptionService` instance.
|
|
52
|
-
*/
|
|
53
|
-
append(subscription) {
|
|
54
|
-
if (!this._lastRef)
|
|
55
|
-
throw new SubscriptionError("Illegal Access Error: you must call the register() method before invoking the append() method.");
|
|
56
|
-
return this.register(this._lastRef, subscription);
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Unsubscribes and removes all `Subscription` instances associated with the specified reference.
|
|
60
|
-
*
|
|
61
|
-
* @param ref The reference for which to remove all `Subscription` instances.
|
|
62
|
-
* Can be either a string or an `Identifiable` object.
|
|
63
|
-
*
|
|
64
|
-
* @returns `true` whether the specified reference exists; `false` otherwise.
|
|
65
|
-
*/
|
|
66
|
-
clearAll(ref) {
|
|
67
|
-
const REF = this.getRef(ref);
|
|
68
|
-
let result = false;
|
|
69
|
-
if (this._lastRef === REF)
|
|
70
|
-
this._lastRef = null;
|
|
71
|
-
if (this._subMap.has(REF)) {
|
|
72
|
-
this._subMap.get(REF)?.forEach(subscription => {
|
|
73
|
-
if (!subscription.closed)
|
|
74
|
-
subscription.unsubscribe();
|
|
75
|
-
});
|
|
76
|
-
this._subMap.delete(REF);
|
|
77
|
-
result = true;
|
|
78
|
-
}
|
|
79
|
-
return result;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Returns all `Subscription` instances associated with the specified reference.
|
|
83
|
-
*
|
|
84
|
-
* @param ref The reference for which to remove get `Subscription` instances.
|
|
85
|
-
* Can be either a string or an `Identifiable` object.
|
|
86
|
-
*
|
|
87
|
-
* @returns All `Subscription` instances associated with the specified reference, or
|
|
88
|
-
* `null` whether the specified reference does not exists.
|
|
89
|
-
*/
|
|
90
|
-
get(ref) {
|
|
91
|
-
return this._subMap.get(this.getRef(ref)) || null;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* @private
|
|
95
|
-
* Returns the string reference for the regsitration process.
|
|
96
|
-
*
|
|
97
|
-
* @param ref The reference to be used the regsitration process.
|
|
98
|
-
* Can be either a string or an `Identifiable` object.
|
|
99
|
-
*
|
|
100
|
-
* @returns the string reference for the regsitration process.
|
|
101
|
-
*/
|
|
102
|
-
getRef(ref) {
|
|
103
|
-
let targetRef;
|
|
104
|
-
if (typeof ref === STRING)
|
|
105
|
-
targetRef = ref;
|
|
106
|
-
else if (ref instanceof IdentifiableComponent)
|
|
107
|
-
targetRef = ref.getID().toString();
|
|
108
|
-
else
|
|
109
|
-
throw new TypeError("ref must be of type of string or Identifiable");
|
|
110
|
-
return targetRef;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc3Vic2NyaXB0aW9uLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9jb3JlL2Fic3RyYWN0L2Fic3RyYWN0LXN1YnNjcmlwdGlvbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUlILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM3QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwQzs7R0FFRztBQUNILE1BQU0sT0FBZ0IsMkJBQTJCO0lBQWpEO1FBRUk7Ozs7V0FJRztRQUNLLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBRXZDOzs7V0FHRztRQUNLLFlBQU8sR0FBcUMsSUFBSSxHQUFHLEVBQStCLENBQUM7SUFtRi9GLENBQUM7SUFqRkc7Ozs7Ozs7O09BUUc7SUFDSSxRQUFRLENBQUMsR0FBMEIsRUFBRSxZQUEwQjtRQUNsRSxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFlBQTBCO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxnR0FBZ0csQ0FBQyxDQUFDO1FBQ2xKLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksUUFBUSxDQUFDLEdBQTBCO1FBQ3RDLE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsSUFBSSxNQUFNLEdBQVksS0FBSyxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO29CQUFFLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEdBQUcsQ0FBQyxHQUEwQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ssTUFBTSxDQUFDLEdBQTBCO1FBQ3JDLElBQUksU0FBaUIsQ0FBQztRQUN0QixJQUFJLE9BQU8sR0FBRyxLQUFLLE1BQU07WUFBRSxTQUFTLEdBQUcsR0FBYSxDQUFDO2FBQ2hELElBQUksR0FBRyxZQUFZLHFCQUFxQjtZQUFFLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7O1lBQzdFLE1BQU0sSUFBSSxTQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUMxRSxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIFxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElkZW50aWZpYWJsZSwgU3Vic2NyaXB0aW9uTWFuYWdlciB9IGZyb20gJy4uLy4uL21vZGVsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbkVycm9yIH0gZnJvbSAnLi4vZXJyb3InO1xuaW1wb3J0IHsgSWRlbnRpZmlhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1wbCc7XG5pbXBvcnQgeyBTVFJJTkcgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBUaGUgYWJzdHJhY3QgY2xhc3MgZm9yIGFsbCBzZXJ2aWNlcyB0aGF0IGltcGxlbWVudCB0aGUgYFN1YnNjcmlwdGlvbk1hbmFnZXJgIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3Vic2NyaXB0aW9uTWFuYWdlciBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvbk1hbmFnZXIge1xuXG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBTdG9yZXMgYW4gaW50ZXJuYWwgcmVmZXJlbmNlIHRvIHRoZSBsYXN0IHJlZmVyZW5jZSB1c2VkIHdpdGggdGhlIGByZWdpc3RlcigpYFxuICAgICAqIG1ldGhvZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9sYXN0UmVmOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogVGhlIGludGVybmFsIGBTdWJzY3JpcHRpb25gIGluc3RhbmNlcyBzdG9yYWdlLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3N1Yk1hcDogTWFwPHN0cmluZywgQXJyYXk8U3Vic2NyaXB0aW9uPj4gPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8U3Vic2NyaXB0aW9uPj4oKTtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyBhIG5ldyBgU3Vic2NyaXB0aW9uYCBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCByZWZlcmVuY2UuXG4gICAgICogXG4gICAgICogQHBhcmFtIHJlZiBUaGUgcmVmZXJlbmNlIGZvciB3aGljaCB0byBzdG9yZSBhIG5ldyBgU3Vic2NyaXB0aW9uYCBpbnN0YW5jZS5cbiAgICAgKiAgICAgICAgICAgIENhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gYElkZW50aWZpYWJsZWAgb2JqZWN0LlxuICAgICAqIEBwYXJhbSBzdWJzY3JpcHRpb24gVGhlIGBTdWJzY3JpcHRpb25gIGluc3RhbmNlIHRvIHJlZ2lzdGVyLlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoaXMgYFN1YnNjcmlwdGlvblNlcnZpY2VgIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3RlcihyZWY6IHN0cmluZyB8IElkZW50aWZpYWJsZSwgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24pOiBTdWJzY3JpcHRpb25NYW5hZ2VyIHtcbiAgICAgICAgY29uc3QgUkVGOiBzdHJpbmcgPSB0aGlzLmdldFJlZihyZWYpO1xuICAgICAgICB0aGlzLl9sYXN0UmVmID0gUkVGO1xuICAgICAgICBpZiAoIXRoaXMuX3N1Yk1hcC5oYXMoUkVGKSkgdGhpcy5fc3ViTWFwLnNldChSRUYsIFtdKTtcbiAgICAgICAgdGhpcy5fc3ViTWFwLmdldChSRUYpPy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyBhIG5ldyBgU3Vic2NyaXB0aW9uYCBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlZmVyZW5jZSBzcGVjaWZpZWRcbiAgICAgKiBieSB0aGUgbGFzdCBgcmVnaXN0ZXIoKWAgbWV0aG9kIGludm9rYXRpb24uXG4gICAgICogXG4gICAgICogQHBhcmFtIHN1YnNjcmlwdGlvbiBUaGUgYFN1YnNjcmlwdGlvbmAgaW5zdGFuY2UgdG8gcmVnaXN0ZXIuXG4gICAgICogXG4gICAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhpcyBgU3Vic2NyaXB0aW9uU2VydmljZWAgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIGFwcGVuZChzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbik6IFN1YnNjcmlwdGlvbk1hbmFnZXIge1xuICAgICAgICBpZiAoIXRoaXMuX2xhc3RSZWYpIHRocm93IG5ldyBTdWJzY3JpcHRpb25FcnJvcihcIklsbGVnYWwgQWNjZXNzIEVycm9yOiB5b3UgbXVzdCBjYWxsIHRoZSByZWdpc3RlcigpIG1ldGhvZCBiZWZvcmUgaW52b2tpbmcgdGhlIGFwcGVuZCgpIG1ldGhvZC5cIik7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyKHRoaXMuX2xhc3RSZWYsIHN1YnNjcmlwdGlvbik7XG4gICAgfVxuIFxuICAgIC8qKlxuICAgICAqIFVuc3Vic2NyaWJlcyBhbmQgcmVtb3ZlcyBhbGwgYFN1YnNjcmlwdGlvbmAgaW5zdGFuY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHJlZmVyZW5jZS5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gcmVmIFRoZSByZWZlcmVuY2UgZm9yIHdoaWNoIHRvIHJlbW92ZSBhbGwgYFN1YnNjcmlwdGlvbmAgaW5zdGFuY2VzLlxuICAgICAqICAgICAgICAgICAgQ2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhbiBgSWRlbnRpZmlhYmxlYCBvYmplY3QuXG4gICAgICogXG4gICAgICogQHJldHVybnMgYHRydWVgIHdoZXRoZXIgdGhlIHNwZWNpZmllZCByZWZlcmVuY2UgZXhpc3RzOyBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXJBbGwocmVmOiBzdHJpbmcgfCBJZGVudGlmaWFibGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgUkVGOiBzdHJpbmcgPSB0aGlzLmdldFJlZihyZWYpO1xuICAgICAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLl9sYXN0UmVmID09PSBSRUYpIHRoaXMuX2xhc3RSZWYgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5fc3ViTWFwLmhhcyhSRUYpKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJNYXAuZ2V0KFJFRik/LmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXN1YnNjcmlwdGlvbi5jbG9zZWQpIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fc3ViTWFwLmRlbGV0ZShSRUYpO1xuICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYWxsIGBTdWJzY3JpcHRpb25gIGluc3RhbmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCByZWZlcmVuY2UuXG4gICAgICogXG4gICAgICogQHBhcmFtIHJlZiBUaGUgcmVmZXJlbmNlIGZvciB3aGljaCB0byByZW1vdmUgZ2V0IGBTdWJzY3JpcHRpb25gIGluc3RhbmNlcy5cbiAgICAgKiAgICAgICAgICAgIENhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gYElkZW50aWZpYWJsZWAgb2JqZWN0LlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEFsbCBgU3Vic2NyaXB0aW9uYCBpbnN0YW5jZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVmZXJlbmNlLCBvciBcbiAgICAgKiAgICAgICAgICBgbnVsbGAgd2hldGhlciB0aGUgc3BlY2lmaWVkIHJlZmVyZW5jZSBkb2VzIG5vdCBleGlzdHMuXG4gICAgICovXG4gICAgcHVibGljIGdldChyZWY6IHN0cmluZyB8IElkZW50aWZpYWJsZSk6IEFycmF5PFN1YnNjcmlwdGlvbj4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1Yk1hcC5nZXQodGhpcy5nZXRSZWYocmVmKSkgfHwgbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZSBcbiAgICAgKiBSZXR1cm5zIHRoZSBzdHJpbmcgcmVmZXJlbmNlIGZvciB0aGUgcmVnc2l0cmF0aW9uIHByb2Nlc3MuIFxuICAgICAqIFxuICAgICAqIEBwYXJhbSByZWYgVGhlIHJlZmVyZW5jZSB0byBiZSB1c2VkIHRoZSByZWdzaXRyYXRpb24gcHJvY2Vzcy4gXG4gICAgICogICAgICAgICAgICBDYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIGBJZGVudGlmaWFibGVgIG9iamVjdC5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyB0aGUgc3RyaW5nIHJlZmVyZW5jZSBmb3IgdGhlIHJlZ3NpdHJhdGlvbiBwcm9jZXNzLiBcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFJlZihyZWY6IHN0cmluZyB8IElkZW50aWZpYWJsZSk6IHN0cmluZyB7XG4gICAgICAgIGxldCB0YXJnZXRSZWY6IHN0cmluZztcbiAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09IFNUUklORykgdGFyZ2V0UmVmID0gcmVmIGFzIHN0cmluZztcbiAgICAgICAgZWxzZSBpZiAocmVmIGluc3RhbmNlb2YgSWRlbnRpZmlhYmxlQ29tcG9uZW50KSB0YXJnZXRSZWYgPSByZWYuZ2V0SUQoKS50b1N0cmluZygpO1xuICAgICAgICBlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoXCJyZWYgbXVzdCBiZSBvZiB0eXBlIG9mIHN0cmluZyBvciBJZGVudGlmaWFibGVcIik7XG4gICAgICAgIHJldHVybiB0YXJnZXRSZWY7XG4gICAgfVxufVxuIl19
|