@microsoft/windows-admin-center-sdk 4.123.0 → 4.232.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/angular/assets/strings/cs-CZ/strings.json +1 -1
- package/angular/assets/strings/de-DE/strings.json +1 -1
- package/angular/assets/strings/es-ES/strings.json +1 -1
- package/angular/assets/strings/fr-FR/strings.json +1 -1
- package/angular/assets/strings/hu-HU/strings.json +1 -1
- package/angular/assets/strings/id-ID/strings.json +1 -1
- package/angular/assets/strings/it-IT/strings.json +1 -1
- package/angular/assets/strings/ja-JP/strings.json +1 -1
- package/angular/assets/strings/ko-KR/strings.json +1 -1
- package/angular/assets/strings/nl-NL/strings.json +1 -1
- package/angular/assets/strings/pl-PL/strings.json +1 -1
- package/angular/assets/strings/pt-BR/strings.json +1 -1
- package/angular/assets/strings/pt-PT/strings.json +1 -1
- package/angular/assets/strings/ru-RU/strings.json +1 -1
- package/angular/assets/strings/strings.json +1 -1
- package/angular/assets/strings/sv-SE/strings.json +1 -1
- package/angular/assets/strings/tr-TR/strings.json +1 -1
- package/angular/assets/strings/zh-CN/strings.json +1 -1
- package/angular/assets/strings/zh-TW/strings.json +1 -1
- package/angular/esm2020/src/controls/accordion/accordion-panel/accordion-panel.component.mjs +36 -12
- package/angular/esm2020/src/controls/actions/containers/action-container.component.mjs +2 -3
- package/angular/esm2020/src/controls/alert-bar/alert-bar.component.mjs +2 -2
- package/angular/esm2020/src/controls/breadcrumb-header/breadcrumb-header.component.mjs +1 -1
- package/angular/esm2020/src/controls/common/base.component.mjs +1 -1
- package/angular/esm2020/src/controls/common/spacer-base.component.mjs +25 -1
- package/angular/esm2020/src/controls/context-menu/context-menu.component.mjs +2 -3
- package/angular/esm2020/src/controls/data-table/data-table.component.mjs +7 -7
- package/angular/esm2020/src/controls/dialog/base-dialog.component.mjs +2 -4
- package/angular/esm2020/src/controls/dialog/confirmation-list-dialog/confirmation-list-dialog.component.mjs +2 -2
- package/angular/esm2020/src/controls/dropdown/dropdown.component.mjs +1 -4
- package/angular/esm2020/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.mjs +59 -0
- package/angular/esm2020/src/controls/form/form-field/array/array-form-field.component.mjs +24 -35
- package/angular/esm2020/src/controls/form/form-field/clock/clock-form-field.component.mjs +10 -7
- package/angular/esm2020/src/controls/form/form-field/form-field-accessibility-manager-base.service.mjs +105 -0
- package/angular/esm2020/src/controls/form/form-field/form-field.component.mjs +1 -1
- package/angular/esm2020/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.mjs +38 -0
- package/angular/esm2020/src/controls/form/form-field/list/list-form-field.component.mjs +56 -38
- package/angular/esm2020/src/controls/form/form-field/number/number-form-field.component.mjs +22 -4
- package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.mjs +54 -0
- package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.mjs +67 -67
- package/angular/esm2020/src/controls/form/form-field/radio-group/classic/radio-group-form-field.component.mjs +5 -5
- package/angular/esm2020/src/controls/form/forms.module.mjs +19 -2
- package/angular/esm2020/src/controls/icon/icon-text/icon-text.component.mjs +6 -6
- package/angular/esm2020/src/controls/icon/layered-icon/status/status-icon.component.mjs +1 -1
- package/angular/esm2020/src/controls/layout/editable-layout.component.mjs +2 -3
- package/angular/esm2020/src/controls/node-credentials-form/node-credentials-form.component.mjs +2 -2
- package/angular/esm2020/src/controls/page-alert-bar/page-alert-bar.component.mjs +4 -4
- package/angular/esm2020/src/controls/property-grid/property-grid.component.mjs +33 -13
- package/angular/esm2020/src/controls/schema/tabbed-form-loader.component.mjs +2 -2
- package/angular/esm2020/src/controls/settings/common-settings/common-settings.component.mjs +5 -5
- package/angular/esm2020/src/controls/settings/settings-form.directive.mjs +3 -7
- package/angular/esm2020/src/controls/settings/settings-form.service.mjs +2 -4
- package/angular/esm2020/src/controls/snap-in-extension/snap-in-extension.component.mjs +1 -1
- package/angular/esm2020/src/controls/split-view/split-view.component.mjs +2 -2
- package/angular/esm2020/src/controls/wizard/models/wizard-step-snap-in-output.mjs +1 -1
- package/angular/esm2020/src/controls/wizard-lite/wizard-navigation-button/wizard-navigation-button.component.mjs +3 -3
- package/angular/esm2020/src/data/extension-broker/snap-in-listener.mjs +80 -0
- package/angular/esm2020/src/data/index.mjs +2 -1
- package/angular/esm2020/src/directives/router/router-link.directive.mjs +2 -2
- package/angular/esm2020/src/directives/svg/svg.directive.mjs +2 -3
- package/angular/esm2020/src/generated/strings.mjs +1 -1
- package/angular/esm2020/src/service/navigation.service.mjs +3 -8
- package/angular/esm2020/src/service/user-alive.service.mjs +2 -4
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs +665 -239
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
- package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs +636 -237
- package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
- package/angular/package.json +1 -1
- package/angular/src/controls/accordion/accordion-panel/accordion-panel.component.d.ts +13 -4
- package/angular/src/controls/common/spacer-base.component.d.ts +11 -2
- package/angular/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.d.ts +38 -0
- package/angular/src/controls/form/form-field/array/array-form-field.component.d.ts +3 -1
- package/angular/src/controls/form/form-field/form-field-accessibility-manager-base.service.d.ts +37 -0
- package/angular/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.d.ts +25 -0
- package/angular/src/controls/form/form-field/list/list-form-field.component.d.ts +12 -2
- package/angular/src/controls/form/form-field/number/number-form-field.component.d.ts +8 -0
- package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.d.ts +37 -0
- package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.d.ts +12 -8
- package/angular/src/controls/icon/icon-text/icon-text.component.d.ts +1 -1
- package/angular/src/controls/property-grid/property-grid.component.d.ts +2 -0
- package/angular/src/controls/wizard/models/wizard-step-snap-in-output.d.ts +1 -1
- package/{core → angular/src}/data/extension-broker/snap-in-listener.d.ts +49 -46
- package/angular/src/data/index.d.ts +1 -0
- package/angular/src/directives/svg/svg.directive.d.ts +1 -2
- package/angular/src/generated/strings.d.ts +12 -0
- package/core/async/cancellation.js +312 -0
- package/core/async/index.js +312 -0
- package/core/async/progress.js +312 -0
- package/core/azure/azure-constants.d.ts +2 -2
- package/core/azure/azure-constants.d.ts.map +1 -1
- package/core/azure/azure-constants.js +322 -3
- package/core/azure/azure-constants.js.map +1 -1
- package/core/azure/azure-logging.js +312 -0
- package/core/azure/azure-manager.js +312 -0
- package/core/azure/models/aadAppConfig-data.js +312 -0
- package/core/azure/models/azureArcStatusEnum.js +312 -0
- package/core/azure/models/azureTokenResult-data.js +312 -0
- package/core/azure/resources/deployment-operation-request-body.js +312 -0
- package/core/azure/resources/deployment-operation-response.js +312 -0
- package/core/azure/resources/location-data.js +315 -0
- package/core/azure/resources/resource-group-data.js +312 -0
- package/core/azure/resources/subscription-data.js +312 -0
- package/core/base/data-store/browser-storage-data-store.js +315 -0
- package/core/base/data-store/cached-data-store.js +312 -0
- package/core/base/data-store/data-store.js +312 -0
- package/core/base/data-store/local-data-store.js +312 -0
- package/core/base/data-store/memory-data-store.js +312 -0
- package/core/base/data-store/session-data-store.js +312 -0
- package/core/base/date/date-like.js +312 -0
- package/core/base/date/date-range.js +312 -0
- package/core/base/date/date-time.js +312 -0
- package/core/base/date/date-type.js +312 -0
- package/core/base/date/time-unit.js +312 -0
- package/core/base/decorators/base.js +312 -0
- package/core/base/decorators/debounce.decorators.js +312 -0
- package/core/base/decorators/delay.decorator.js +315 -0
- package/core/base/decorators/yield.decorator.js +312 -0
- package/core/base/environment.js +312 -0
- package/core/base/json.js +312 -0
- package/core/base/msft-sme.mock.js +316 -0
- package/core/base/polyfills/array.js +315 -0
- package/core/base/polyfills/string.js +312 -0
- package/core/base/rxjs-lifetime-manager.js +312 -0
- package/core/base/utilities.js +312 -0
- package/core/base/versioned-object.js +312 -0
- package/core/data/accessibility-manager.js +312 -0
- package/core/data/active-directory/active-directory.js +312 -0
- package/core/data/active-directory/models/account-info.js +312 -0
- package/core/data/active-directory/models/active-directory-search-options.js +312 -0
- package/core/data/active-directory/models/search-type.js +312 -0
- package/core/data/animation.js +312 -0
- package/core/data/app-context.js +312 -0
- package/core/data/asset-manager.js +315 -0
- package/core/data/base64-array-buffer.js +312 -0
- package/core/data/batch-connection.js +312 -0
- package/core/data/cim-connection.js +312 -0
- package/core/data/cim-stream.js +312 -0
- package/core/data/cim.js +312 -0
- package/core/data/column-picker.js +312 -0
- package/core/data/cookie.js +312 -0
- package/core/data/core-environment.js +315 -0
- package/core/data/crypto.js +312 -0
- package/core/data/deployment-share.js +312 -0
- package/core/data/disposable.js +312 -0
- package/core/data/electron.js +315 -0
- package/core/data/error-extended.js +312 -0
- package/core/data/extension-broker/dialog-listener.js +312 -0
- package/core/data/extension-broker/extension-broker.js +312 -0
- package/core/data/extension-broker/extension-listener.js +312 -0
- package/core/data/extension-broker/model/extension-broker-request-payload.js +312 -0
- package/core/data/extension-broker/model/extension-broker-response-error.js +312 -0
- package/core/data/extension-broker/model/extension-broker-response-payload.js +312 -0
- package/core/data/extension-broker/model/extension-entries.js +315 -0
- package/core/data/extension-broker/model/extension-instance.js +315 -0
- package/core/data/extension-broker/model/extension-rect.js +312 -0
- package/core/data/extension-broker/model/extension-search-options.js +312 -0
- package/core/data/extension-broker/service-listener.js +312 -0
- package/core/data/extension-broker/worker-listener.js +312 -0
- package/core/data/extension-broker/worker-set.js +312 -0
- package/core/data/file-transfer.js +312 -0
- package/core/data/gateway-connection.js +312 -0
- package/core/data/gateway-status.js +312 -0
- package/core/data/gateway-url-builder.js +312 -0
- package/core/data/gateway-url-translator.d.ts +1 -0
- package/core/data/gateway-url-translator.d.ts.map +1 -1
- package/core/data/gateway-url-translator.js +337 -6
- package/core/data/gateway-url-translator.js.map +1 -1
- package/core/data/gateway-urls.js +312 -0
- package/core/data/globalization.js +315 -0
- package/core/data/http-constants.js +315 -0
- package/core/data/http.js +312 -0
- package/core/data/jobs/jobs-manager.js +312 -0
- package/core/data/jobs/models/job-credentials.js +312 -0
- package/core/data/jobs/models/job-node.js +312 -0
- package/core/data/jobs/models/job-paginated-response.js +315 -0
- package/core/data/jobs/models/job-pagination-options.js +315 -0
- package/core/data/jobs/models/job.js +312 -0
- package/core/data/jobs/models/node-job.js +312 -0
- package/core/data/jobs/models/powershell-job.js +312 -0
- package/core/data/language.js +315 -0
- package/core/data/lifetime-data.js +312 -0
- package/core/data/localization-manager.js +312 -0
- package/core/data/native-q.js +312 -0
- package/core/data/net.d.ts.map +1 -1
- package/core/data/net.js +313 -1
- package/core/data/net.js.map +1 -1
- package/core/data/node-connection.d.ts.map +1 -1
- package/core/data/node-connection.js +312 -2
- package/core/data/node-connection.js.map +1 -1
- package/core/data/node-extension-install.js +312 -0
- package/core/data/powershell-alternate.js +312 -0
- package/core/data/powershell-batch.js +312 -0
- package/core/data/powershell-connection.js +312 -0
- package/core/data/powershell-crypto.js +312 -0
- package/core/data/powershell-stream.js +312 -0
- package/core/data/powershell.js +312 -0
- package/core/data/query-cache.js +312 -0
- package/core/data/resource-cache.js +312 -0
- package/core/data/schedule-reboot.js +312 -0
- package/core/data/settings-manager.js +312 -0
- package/core/data/settings-manger.mock.js +312 -0
- package/core/data/sme-extension.js +312 -0
- package/core/data/ssh-stream.js +312 -0
- package/core/data/units.js +312 -0
- package/core/data/uri-builder.js +315 -0
- package/core/data/wdac-operations.js +312 -0
- package/core/data/websocket-stream.js +312 -0
- package/core/diagnostics/error-monitor.js +312 -0
- package/core/diagnostics/log-level.js +312 -0
- package/core/diagnostics/log-record.js +312 -0
- package/core/diagnostics/logging-constants.js +312 -0
- package/core/diagnostics/logging.js +312 -0
- package/core/diagnostics/logging.mock.js +312 -0
- package/core/diagnostics/sme-web-telemetry-models.js +312 -0
- package/core/diagnostics/sme-web-telemetry.d.ts +1 -2
- package/core/diagnostics/sme-web-telemetry.d.ts.map +1 -1
- package/core/diagnostics/sme-web-telemetry.js +336 -15
- package/core/diagnostics/sme-web-telemetry.js.map +1 -1
- package/core/diagnostics/telemetry-control-type.js +312 -0
- package/core/diagnostics/telemetry-options.js +312 -0
- package/core/diagnostics/telemetry-record.js +312 -0
- package/core/dom/dom.js +312 -0
- package/core/frame/frame-connection.js +312 -0
- package/core/frame/frame-connection.mock.js +312 -0
- package/core/frame/shell-navigation-connection.js +312 -0
- package/core/generated/powershell-scripts.d.ts.map +1 -1
- package/core/generated/powershell-scripts.js +313 -1
- package/core/generated/powershell-scripts.js.map +1 -1
- package/core/generated/strings.js +312 -0
- package/core/host/host-core-manager.js +312 -0
- package/core/host/host-core-message-type.js +312 -0
- package/core/host/host-core-messages.js +312 -0
- package/core/index.d.ts +0 -1
- package/core/index.d.ts.map +1 -1
- package/core/index.js +312 -1
- package/core/index.js.map +1 -1
- package/core/manifest/environment-modules.js +312 -0
- package/core/manifest/manifest-loader.js +312 -0
- package/core/notification/client-notification-instance.js +312 -0
- package/core/notification/client-notification.js +312 -0
- package/core/notification/notification-connection.js +312 -0
- package/core/notification/notification-link-type.js +312 -0
- package/core/notification/notification-manager.js +312 -0
- package/core/notification/notification-message.js +312 -0
- package/core/notification/notification-state.js +312 -0
- package/core/notification/notification.js +312 -0
- package/core/notification/powershell-notification.js +312 -0
- package/core/notification/socket-signalr.js +312 -0
- package/core/notification/work-item-connection.js +312 -0
- package/core/notification/work-item-manager.js +312 -0
- package/core/notification/work-item-request.js +312 -0
- package/core/performance/performance-profile-data-type.js +312 -0
- package/core/performance/performance-profile-data.js +312 -0
- package/core/performance/performance-profile-database.js +312 -0
- package/core/performance/performance-profile-record.js +312 -0
- package/core/performance/performance-profile.d.ts.map +1 -1
- package/core/performance/performance-profile.js +321 -9
- package/core/performance/performance-profile.js.map +1 -1
- package/core/performance/performance-tracker.js +312 -0
- package/core/polyfills.js +312 -0
- package/core/resources/scripts/public/crypto/Get-DecryptedDataFromNode.ps1 +216 -0
- package/core/resources/scripts/public/crypto/Get-EncryptionJWKOnNode.ps1 +216 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32LogicalDisk.ps1 +218 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32NetworkAdapter.ps1 +216 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32PhysicalMemory.ps1 +216 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32Processor.ps1 +216 -0
- package/core/resources/scripts/public/inventory/Get-ClusterInventory.ps1 +216 -0
- package/core/resources/scripts/public/inventory/Get-ClusterNodes.ps1 +216 -0
- package/core/resources/scripts/public/inventory/Get-ServerInventory.ps1 +246 -8
- package/core/rpc/alive/rpc-alive-client.js +312 -0
- package/core/rpc/alive/rpc-alive-handler.js +312 -0
- package/core/rpc/alive/rpc-alive-model.js +315 -0
- package/core/rpc/alive/rpc-alive-subject-server.js +312 -0
- package/core/rpc/alive/rpc-observable-alive-client.js +312 -0
- package/core/rpc/alive/rpc-observable-alive-model.js +312 -0
- package/core/rpc/alive/rpc-observable-alive-server.js +312 -0
- package/core/rpc/azure/rpc-azure-model.js +312 -0
- package/core/rpc/azure/rpc-azure-request-client.js +312 -0
- package/core/rpc/azure/rpc-azure-request-handler.js +312 -0
- package/core/rpc/azure/rpc-azure-request-subject-server.js +312 -0
- package/core/rpc/azure/rpc-azure-response-client.js +312 -0
- package/core/rpc/azure/rpc-azure-response-handler.js +315 -0
- package/core/rpc/credssp/rpc-credssp-model.js +312 -0
- package/core/rpc/credssp/rpc-credssp-request-client.js +312 -0
- package/core/rpc/credssp/rpc-credssp-request-handler.js +315 -0
- package/core/rpc/credssp/rpc-credssp-request-subject-server.js +312 -0
- package/core/rpc/credssp/rpc-credssp-response-client.js +312 -0
- package/core/rpc/credssp/rpc-credssp-response-handler.js +315 -0
- package/core/rpc/dialog/rpc-dialog-client.js +312 -0
- package/core/rpc/dialog/rpc-dialog-handler.js +312 -0
- package/core/rpc/dialog/rpc-dialog-model.js +312 -0
- package/core/rpc/dialog/rpc-dialog-subject-server.js +315 -0
- package/core/rpc/electron/rpc-electron-model.js +312 -0
- package/core/rpc/electron/rpc-electron-request-client.js +312 -0
- package/core/rpc/electron/rpc-electron-request-handler.js +312 -0
- package/core/rpc/electron/rpc-electron-request-subject-server.js +312 -0
- package/core/rpc/electron/rpc-electron-response-client.js +312 -0
- package/core/rpc/electron/rpc-electron-response-handler.js +312 -0
- package/core/rpc/elevate/rpc-observable-elevate-client.js +312 -0
- package/core/rpc/elevate/rpc-observable-elevate-model.js +312 -0
- package/core/rpc/elevate/rpc-observable-elevate-server.js +312 -0
- package/core/rpc/error-monitor/rpc-observable-error-monitor-client.js +312 -0
- package/core/rpc/error-monitor/rpc-observable-error-monitor-model.js +315 -0
- package/core/rpc/error-monitor/rpc-observable-error-monitor-server.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-model.js +315 -0
- package/core/rpc/extension-broker/rpc-extension-broker-module-request-subject-server.js +315 -0
- package/core/rpc/extension-broker/rpc-extension-broker-request-client.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-request-handler.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-request-subject-server.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-response-client.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-response-handler.js +312 -0
- package/core/rpc/extension-data/rpc-observable-extension-data-client.js +312 -0
- package/core/rpc/extension-data/rpc-observable-extension-data-model.js +312 -0
- package/core/rpc/extension-data/rpc-observable-extension-data-server.js +312 -0
- package/core/rpc/forward/rpc-forward-auto-client.js +312 -0
- package/core/rpc/forward/rpc-forward-down-client.js +315 -0
- package/core/rpc/forward/rpc-forward-down-handler.js +312 -0
- package/core/rpc/forward/rpc-forward-model.js +312 -0
- package/core/rpc/forward/rpc-forward-up-client.js +312 -0
- package/core/rpc/forward/rpc-forward-up-handler.js +312 -0
- package/core/rpc/forward/rpc-forward-up-subject-server.js +312 -0
- package/core/rpc/log/rpc-log-client.js +312 -0
- package/core/rpc/log/rpc-log-handler.js +312 -0
- package/core/rpc/log/rpc-log-model.js +312 -0
- package/core/rpc/log/rpc-log-subject-server.js +312 -0
- package/core/rpc/notification/rpc-notification-client.js +312 -0
- package/core/rpc/notification/rpc-notification-handler.js +312 -0
- package/core/rpc/notification/rpc-notification-model.js +312 -0
- package/core/rpc/notification/rpc-notification-subject-server.js +312 -0
- package/core/rpc/overlay/rpc-overlay-close-client.js +312 -0
- package/core/rpc/overlay/rpc-overlay-close-handler.js +312 -0
- package/core/rpc/overlay/rpc-overlay-model.js +312 -0
- package/core/rpc/overlay/rpc-overlay-open-client.js +315 -0
- package/core/rpc/overlay/rpc-overlay-open-handler.js +312 -0
- package/core/rpc/overlay/rpc-overlay-open-subject-server.js +312 -0
- package/core/rpc/performance/rpc-observable-performance-client.js +312 -0
- package/core/rpc/performance/rpc-observable-performance-config-client.js +312 -0
- package/core/rpc/performance/rpc-observable-performance-config-server.js +312 -0
- package/core/rpc/performance/rpc-observable-performance-model.js +312 -0
- package/core/rpc/performance/rpc-observable-performance-server.js +312 -0
- package/core/rpc/report/rpc-report-client.js +312 -0
- package/core/rpc/report/rpc-report-handler.js +312 -0
- package/core/rpc/report/rpc-report-model.js +312 -0
- package/core/rpc/report/rpc-report-subject-server.js +315 -0
- package/core/rpc/rpc-base.js +312 -0
- package/core/rpc/rpc-channel.js +312 -0
- package/core/rpc/rpc-forwarder.js +312 -0
- package/core/rpc/rpc-inbound-client.js +312 -0
- package/core/rpc/rpc-inbound.js +312 -0
- package/core/rpc/rpc-manager.js +312 -0
- package/core/rpc/rpc-module-subject-server.js +315 -0
- package/core/rpc/rpc-observable-client.js +312 -0
- package/core/rpc/rpc-observable-request.js +312 -0
- package/core/rpc/rpc-observable-result.js +312 -0
- package/core/rpc/rpc-observable-server.js +312 -0
- package/core/rpc/rpc-outbound-client.js +312 -0
- package/core/rpc/rpc-outbound.js +312 -0
- package/core/rpc/rpc-subject-server.js +312 -0
- package/core/rpc/rpc.js +312 -0
- package/core/rpc/seek/rpc-seek-client.js +312 -0
- package/core/rpc/seek/rpc-seek-handler.js +315 -0
- package/core/rpc/seek/rpc-seek-model.js +312 -0
- package/core/rpc/settings/rpc-settings-client.js +315 -0
- package/core/rpc/settings/rpc-settings-handler.js +312 -0
- package/core/rpc/settings/rpc-settings-model.js +312 -0
- package/core/rpc/settings/rpc-settings-subject-server.js +312 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-client.js +312 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-handler.js +312 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-model.js +312 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-subject-server.js +312 -0
- package/core/rpc/sme-extension/rpc-sme-extension-model.js +315 -0
- package/core/rpc/sme-extension/rpc-sme-extension-request-client.js +312 -0
- package/core/rpc/sme-extension/rpc-sme-extension-request-handler.js +312 -0
- package/core/rpc/sme-extension/rpc-sme-extension-request-subject-server.js +312 -0
- package/core/rpc/sme-extension/rpc-sme-extension-response-client.js +312 -0
- package/core/rpc/sme-extension/rpc-sme-extension-response-handler.js +312 -0
- package/core/rpc/telemetry/rpc-telemetry-client.js +312 -0
- package/core/rpc/telemetry/rpc-telemetry-handler.js +315 -0
- package/core/rpc/telemetry/rpc-telemetry-model.js +312 -0
- package/core/rpc/telemetry/rpc-telemetry-subject-server.js +312 -0
- package/core/rpc/update-data/rpc-update-data-client.js +312 -0
- package/core/rpc/update-data/rpc-update-data-handler.js +312 -0
- package/core/rpc/update-data/rpc-update-data-model.js +312 -0
- package/core/rpc/update-data/rpc-update-data-subject-server.js +312 -0
- package/core/rpc/update-theme/rpc-observable-update-theme-client.js +312 -0
- package/core/rpc/update-theme/rpc-observable-update-theme-model.js +312 -0
- package/core/rpc/update-theme/rpc-observable-update-theme-server.js +312 -0
- package/core/rpc/work-item/rpc-work-item-client.js +312 -0
- package/core/rpc/work-item/rpc-work-item-handler.js +312 -0
- package/core/rpc/work-item/rpc-work-item-model.js +312 -0
- package/core/rpc/work-item/rpc-work-item-subject-server.js +312 -0
- package/core/rpc/work-item-find/rpc-work-item-find-client.js +312 -0
- package/core/rpc/work-item-find/rpc-work-item-find-handler.js +312 -0
- package/core/rpc/work-item-find/rpc-work-item-find-model.js +312 -0
- package/core/rpc/work-item-find/rpc-work-item-find-subject-server.js +312 -0
- package/core/security/active-connection.js +312 -0
- package/core/security/authorization-manager.js +312 -0
- package/core/security/connection-manager-settings/common-connection-settings.js +315 -0
- package/core/security/connection-manager-settings/connection-settings.js +312 -0
- package/core/security/connection-manager.js +312 -0
- package/core/security/connection-stream.js +312 -0
- package/core/security/connection.js +312 -0
- package/core/security/credssp-manager.js +312 -0
- package/core/security/sign-on-manager.js +312 -0
- package/core/security/tag-manager.js +312 -0
- package/core/security/tool-condition-validator.js +312 -0
- package/core/security/tool-connection-query.js +312 -0
- package/core/security/user-principal.js +312 -0
- package/core/shared/cluster-inventory/cluster-inventory-cache.js +312 -0
- package/core/shared/cluster-inventory/cluster-inventory.js +312 -0
- package/core/shared/cluster-inventory/cluster-node-inventory.js +312 -0
- package/core/shared/gateway-inventory/gateway-inventory-cache.js +312 -0
- package/core/shared/gateway-inventory/gateway-inventory-detail-cache.js +312 -0
- package/core/shared/gateway-inventory/gateway-inventory-detail.js +312 -0
- package/core/shared/gateway-inventory/gateway-inventory.js +312 -0
- package/core/shared/inventory-query-caches.js +312 -0
- package/core/shared/server-inventory/server-inventory-cache.js +312 -0
- package/core/shared/server-inventory/server-inventory-detail-cache.js +312 -0
- package/core/shared/server-inventory/server-inventory-detail.js +315 -0
- package/core/shared/server-inventory/server-inventory.js +312 -0
- package/core/shared/shared-cache.js +312 -0
- package/core/shared/tool-inventory/tool-inventory-cache.js +312 -0
- package/core/shared/tool-inventory/tool-inventory.js +312 -0
- package/core/special.js +315 -0
- package/core/test-utilities/accessibility-tester.js +312 -0
- package/core/test-utilities/console.mock.js +312 -0
- package/core/test-utilities/jasmine-axe-matcher.js +312 -0
- package/core/test-utilities/wait-async.js +312 -0
- package/core/test.js +312 -0
- package/core/testing.js +312 -0
- package/core/workflow/persistent-local-storage.js +312 -0
- package/core/workflow/persistent-work-item-apply-state.js +316 -0
- package/core/workflow/persistent-work-item-state.js +312 -0
- package/core/workflow/persistent-work-item.js +315 -0
- package/core/workflow/persistent-workflow-builder.js +312 -0
- package/core/workflow/persistent-workflow-context.js +312 -0
- package/core/workflow/persistent-workflow-runner.js +312 -0
- package/core/workflow/persistent-workflow-snapshot.js +312 -0
- package/core/workflow/persistent-workflow-store.js +312 -0
- package/core/workflow/persistent-workflow.js +312 -0
- package/package.json +11 -9
- package/styles/css/main-v2.css +1 -1
- package/styles/fonts/SegoeUI/Bold/SegoeUIBold-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/Light/SegoeUILight-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/Normal/SegoeUI-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/SemiBold/SegoeUISemiBold-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/SemiLight/SegoeUISemiLight-5.27.woff +0 -0
- package/styles/fonts/ServMDL2/ServMDL2-4.66.woff +0 -0
- package/tools/build/webpack/index-html.transform.js +312 -0
- package/tools/build/webpack/shell.index-html.transform.js +312 -0
- package/tools/build/webpack/shell.webpack.config.js +312 -0
- package/tools/build/webpack/webpack.config.js +312 -0
- package/tools/code-formatter/.eslintrc.base.json +3 -1
- package/tools/code-formatter/lint.d.ts.map +1 -1
- package/tools/code-formatter/lint.js +319 -1
- package/tools/code-formatter/lint.js.map +1 -1
- package/tools/code-formatter/utilities.d.ts +7 -0
- package/tools/code-formatter/utilities.d.ts.map +1 -0
- package/tools/code-formatter/utilities.js +395 -0
- package/tools/code-formatter/utilities.js.map +1 -0
- package/tools/gulp-doc-generator/index.js +312 -0
- package/tools/gulp-manifest-resource/index.js +312 -0
- package/tools/gulp-manifest-validator/index.js +312 -0
- package/tools/gulp-merge-json-in-folders/index.js +312 -0
- package/tools/gulp-merge-json-in-folders/json-merge.js +312 -0
- package/tools/gulp-ps-cim/index.js +315 -0
- package/tools/gulp-ps-code/index.d.ts.map +1 -1
- package/tools/gulp-ps-code/index.js +323 -2
- package/tools/gulp-ps-code/index.js.map +1 -1
- package/tools/gulp-ps-code/ps-code-convert.js +312 -0
- package/tools/gulp-ps-manifest/index.js +312 -0
- package/tools/gulp-ps-module/index.d.ts.map +1 -1
- package/tools/gulp-ps-module/index.js +327 -3
- package/tools/gulp-ps-module/index.js.map +1 -1
- package/tools/gulp-ps-resjson/index.js +315 -0
- package/tools/gulp-resjson/index.js +315 -0
- package/tools/gulp-resjson/resjson-convert.js +312 -0
- package/tools/gulp-schema-form/index.js +312 -0
- package/tools/gulp-svg-code/index.js +312 -0
- package/tools/gulp-svg-code/svg-code-convert.js +312 -0
- package/tools/gulp-update-notes-resource/index.d.ts.map +1 -1
- package/tools/gulp-update-notes-resource/index.js +316 -4
- package/tools/gulp-update-notes-resource/index.js.map +1 -1
- package/tools/module-template/.eslintrc.json +3 -0
- package/tools/module-template/build/increment-package-version.ps1 +216 -0
- package/tools/module-template/build/push-incremented-version.ps1 +216 -1
- package/tools/module-template/build/update-powershell-code.ps1 +216 -0
- package/tools/module-template/gulpfile.ts/common/clean.ts +2 -0
- package/tools/module-template/gulpfile.ts/common/pack.ts +17 -5
- package/tools/module-template/gulpfile.ts/common/powershell.ts +40 -2
- package/tools/module-template/gulpfile.ts/common/utilities.ts +1 -0
- package/tools/pack-nuget/index.d.ts.map +1 -1
- package/tools/pack-nuget/index.js +321 -3
- package/tools/pack-nuget/index.js.map +1 -1
- package/tools/scripts/Invoke-PesterTest.ps1 +216 -0
- package/tools/scripts/New-ExtensionPackage.ps1 +373 -6
- package/tools/scripts/Search-NonAsciiText.ps1 +216 -0
- package/tools/scripts/package-information/README.md +3 -0
- package/tools/scripts/package-information/ms-logo.png +0 -0
- package/tools/test-runner/index.js +312 -0
- package/tools/utilities/index.js +312 -0
- package/tools/wac-cli/src/angular15/configs/angular-json-config.js +312 -0
- package/tools/wac-cli/src/angular15/configs/ci-build-yml-config.js +315 -0
- package/tools/wac-cli/src/angular15/configs/config.js +312 -0
- package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.d.ts +9 -0
- package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.d.ts.map +1 -0
- package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js +328 -0
- package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js.map +1 -0
- package/tools/wac-cli/src/angular15/configs/git-ignore-config.js +312 -0
- package/tools/wac-cli/src/angular15/configs/jasmine-test-config.js +315 -0
- package/tools/wac-cli/src/angular15/configs/package-json-config.js +312 -0
- package/tools/wac-cli/src/angular15/configs/replace-config.js +315 -0
- package/tools/wac-cli/src/angular15/configs/tsconfig-config.js +312 -0
- package/tools/wac-cli/src/angular15/configs/ui-test-automation-lagacy-config.js +312 -0
- package/tools/wac-cli/src/angular15/main.d.ts +19 -3
- package/tools/wac-cli/src/angular15/main.d.ts.map +1 -1
- package/tools/wac-cli/src/angular15/main.js +353 -7
- package/tools/wac-cli/src/angular15/main.js.map +1 -1
- package/tools/wac-cli/src/angular15/upgrader/angular-json-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/ajax-response-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/css-syntax-error-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/declare-override-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/error-updater-angular15.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/form-control-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/iif-updater-util.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/load-children-callback-updater.js +315 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/log-parser.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/observable-throw-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/parameter-count-violation-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/string-replace-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/subjuct-next-updater-util.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/ci-build-yml-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.d.ts +18 -0
- package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.d.ts.map +1 -0
- package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js +361 -0
- package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js.map +1 -0
- package/tools/wac-cli/src/angular15/upgrader/file-replacement-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/git-ignore-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/jasmine-test-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/package-json-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/remove-upgrader.js +315 -0
- package/tools/wac-cli/src/angular15/upgrader/replace-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/tsconfig-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/ui-test-automation-legacy-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/version-json-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/utils/add-item.js +312 -0
- package/tools/wac-cli/src/angular15/utils/command-runner.js +312 -0
- package/tools/wac-cli/src/angular15/utils/file-comparison.js +315 -0
- package/tools/wac-cli/src/angular15/utils/file-replacement.js +312 -0
- package/tools/wac-cli/src/angular15/utils/file-writer.js +312 -0
- package/tools/wac-cli/src/angular15/utils/logger.js +312 -0
- package/tools/wac-cli/src/angular15/utils/main-debugger.js +312 -0
- package/tools/wac-cli/src/angular15/utils/relative-path.js +312 -0
- package/tools/wac-cli/src/angular15/utils/remove-item.js +312 -0
- package/tools/wac-cli/src/angular15/utils/space-generator.js +312 -0
- package/tools/wac-cli/src/angular15/utils/update-shell-references.js +316 -0
- package/tools/wac-cli/src/common.js +312 -0
- package/tools/wac-cli/src/create/main.js +312 -0
- package/tools/wac-cli/src/eslint/main.js +312 -0
- package/tools/wac-cli/src/index.js +312 -0
- package/tools/wac-cli/src/upgrade/error-updater.js +312 -0
- package/tools/wac-cli/src/upgrade/error-updaters/component-selector-updater.js +315 -0
- package/tools/wac-cli/src/upgrade/error-updaters/only-arrow-functions-updater.js +315 -0
- package/tools/wac-cli/src/upgrade/error-updaters/updater-lookup.js +312 -0
- package/tools/wac-cli/src/upgrade/file-updater.js +312 -0
- package/tools/wac-cli/src/upgrade/get-files.js +312 -0
- package/tools/wac-cli/src/upgrade/main.js +312 -0
- package/tools/wac-cli/src/upgrade/models/error-result.js +312 -0
- package/tools/wac-cli/src/upgrade/models/updater-interface.js +312 -0
- package/tools/wac-cli/src/upgrade/package-updater.js +312 -0
- package/tools/wac-cli/templates/wac-template/src/favicon.ico +0 -0
- package/tools/wac-cli/templates/wac-template/src/karma.conf.js +312 -0
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Error.ps1 +216 -0
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Exception.ps1 +216 -0
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Process.ps1 +216 -1
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Service.ps1 +216 -1
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-WinRmState.ps1 +216 -1
- package/core/data/extension-broker/snap-in-listener.d.ts.map +0 -1
- package/core/data/extension-broker/snap-in-listener.js +0 -73
- package/core/data/extension-broker/snap-in-listener.js.map +0 -1
- package/microsoft-windows-admin-center-sdk-4.123.0.tgz +0 -0
|
@@ -1,41 +1,43 @@
|
|
|
1
|
-
import { Component, HostBinding, Injector } from '@angular/core';
|
|
2
|
-
import { Dom } from '@microsoft/windows-admin-center-sdk/core/dom/dom';
|
|
1
|
+
import { Component, ElementRef, HostBinding, Injector, ViewChild } from '@angular/core';
|
|
3
2
|
import { SmeInternalFormFieldComponent } from '../form-field.component';
|
|
3
|
+
import { ListFormFieldAccessibilityManagerService } from './list-form-field-accessibility-manager.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
6
|
-
import * as i2 from "@angular/
|
|
7
|
-
import * as i3 from "
|
|
8
|
-
import * as i4 from "
|
|
9
|
-
import * as i5 from "../../
|
|
10
|
-
|
|
5
|
+
import * as i1 from "./list-form-field-accessibility-manager.service";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@angular/forms";
|
|
8
|
+
import * as i4 from "../../../tooltip/tooltip.directive";
|
|
9
|
+
import * as i5 from "../../validation-alert/validation-alert.component";
|
|
10
|
+
import * as i6 from "../../form-field-layout/form-field-layout.component";
|
|
11
|
+
const _c0 = ["addButton"];
|
|
12
|
+
const _c1 = ["type", "list"];
|
|
11
13
|
function ListFormFieldComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
-
const
|
|
13
|
-
i0.ɵɵelementStart(0, "div",
|
|
14
|
-
i0.ɵɵlistener("ngModelChange", function ListFormFieldComponent_div_1_div_1_Template_input_ngModelChange_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(
|
|
14
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
15
|
+
i0.ɵɵelementStart(0, "div", 8)(1, "input", 9);
|
|
16
|
+
i0.ɵɵlistener("ngModelChange", function ListFormFieldComponent_div_1_div_1_Template_input_ngModelChange_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r6); const i_r4 = restoredCtx.index; const ctx_r5 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r5.value[i_r4] = $event)); })("input", function ListFormFieldComponent_div_1_div_1_Template_input_input_1_listener() { i0.ɵɵrestoreView(_r6); const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.triggerValueChange()); });
|
|
15
17
|
i0.ɵɵelementEnd();
|
|
16
|
-
i0.ɵɵelementStart(2, "button",
|
|
17
|
-
i0.ɵɵlistener("click", function ListFormFieldComponent_div_1_div_1_Template_button_click_2_listener() { const restoredCtx = i0.ɵɵrestoreView(
|
|
18
|
-
i0.ɵɵelement(3, "span",
|
|
18
|
+
i0.ɵɵelementStart(2, "button", 10);
|
|
19
|
+
i0.ɵɵlistener("click", function ListFormFieldComponent_div_1_div_1_Template_button_click_2_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const i_r4 = restoredCtx.index; const ctx_r8 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r8.removeItemAt(i_r4)); });
|
|
20
|
+
i0.ɵɵelement(3, "span", 11);
|
|
19
21
|
i0.ɵɵelementEnd()();
|
|
20
22
|
} if (rf & 2) {
|
|
21
|
-
const
|
|
23
|
+
const i_r4 = ctx.index;
|
|
22
24
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
23
25
|
i0.ɵɵadvance(1);
|
|
24
|
-
i0.ɵɵproperty("ngModel", ctx_r1.value[
|
|
25
|
-
i0.ɵɵattribute("aria-label", ctx_r1.strings.MsftSmeShell.Angular.Form.List.itemAriaLabel.format(ctx_r1.label,
|
|
26
|
+
i0.ɵɵproperty("ngModel", ctx_r1.value[i_r4]);
|
|
27
|
+
i0.ɵɵattribute("aria-label", ctx_r1.strings.MsftSmeShell.Angular.Form.List.itemAriaLabel.format(ctx_r1.label, i_r4 + 1, ctx_r1.value.length));
|
|
26
28
|
i0.ɵɵadvance(1);
|
|
27
29
|
i0.ɵɵproperty("title", ctx_r1.strings.MsftSmeShell.Angular.Form.List.removeButtonTooltip);
|
|
28
30
|
i0.ɵɵattribute("aria-label", ctx_r1.strings.MsftSmeShell.Angular.Form.List.removeButtonAriaLabel);
|
|
29
31
|
} }
|
|
30
32
|
function ListFormFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
-
const
|
|
33
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
32
34
|
i0.ɵɵelementStart(0, "div", 3);
|
|
33
35
|
i0.ɵɵtemplate(1, ListFormFieldComponent_div_1_div_1_Template, 4, 4, "div", 4);
|
|
34
|
-
i0.ɵɵelementStart(2, "button", 5);
|
|
35
|
-
i0.ɵɵlistener("click", function ListFormFieldComponent_div_1_Template_button_click_2_listener() { i0.ɵɵrestoreView(
|
|
36
|
-
i0.ɵɵelement(
|
|
37
|
-
i0.ɵɵelementStart(
|
|
38
|
-
i0.ɵɵtext(
|
|
36
|
+
i0.ɵɵelementStart(2, "button", 5, 6);
|
|
37
|
+
i0.ɵɵlistener("click", function ListFormFieldComponent_div_1_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.addListItem()); });
|
|
38
|
+
i0.ɵɵelement(4, "span", 7);
|
|
39
|
+
i0.ɵɵelementStart(5, "span");
|
|
40
|
+
i0.ɵɵtext(6);
|
|
39
41
|
i0.ɵɵelementEnd()()();
|
|
40
42
|
} if (rf & 2) {
|
|
41
43
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -43,8 +45,8 @@ function ListFormFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
43
45
|
i0.ɵɵproperty("ngForOf", ctx_r0.value)("ngForTrackBy", ctx_r0.trackByIndex);
|
|
44
46
|
i0.ɵɵadvance(1);
|
|
45
47
|
i0.ɵɵproperty("title", ctx_r0.strings.MsftSmeShell.Angular.Form.List.addButtonTooltip);
|
|
46
|
-
i0.ɵɵattribute("aria-label", ctx_r0.
|
|
47
|
-
i0.ɵɵadvance(
|
|
48
|
+
i0.ɵɵattribute("aria-label", ctx_r0.addButtonAriaLabel);
|
|
49
|
+
i0.ɵɵadvance(4);
|
|
48
50
|
i0.ɵɵtextInterpolate(ctx_r0.strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel);
|
|
49
51
|
} }
|
|
50
52
|
/**
|
|
@@ -54,8 +56,9 @@ export class ListFormFieldComponent extends SmeInternalFormFieldComponent {
|
|
|
54
56
|
/**
|
|
55
57
|
* Initializes a new instance of the ListFormFieldComponent
|
|
56
58
|
*/
|
|
57
|
-
constructor(injector) {
|
|
59
|
+
constructor(injector, listFormFieldAccessibilityManagerService) {
|
|
58
60
|
super(injector);
|
|
61
|
+
this.listFormFieldAccessibilityManagerService = listFormFieldAccessibilityManagerService;
|
|
59
62
|
}
|
|
60
63
|
/**
|
|
61
64
|
* The source name to use for logging
|
|
@@ -69,6 +72,15 @@ export class ListFormFieldComponent extends SmeInternalFormFieldComponent {
|
|
|
69
72
|
get ariaLabel() {
|
|
70
73
|
return this.getMergedDescriptionLabel();
|
|
71
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* It gets the aria label for the add button that can respect when the field is required.
|
|
77
|
+
*/
|
|
78
|
+
get addButtonAriaLabel() {
|
|
79
|
+
if (this.required) {
|
|
80
|
+
return this.strings.MsftSmeShell.Angular.Calendar.AriaLabel.Required.format(this.strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel);
|
|
81
|
+
}
|
|
82
|
+
return this.strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel;
|
|
83
|
+
}
|
|
72
84
|
/**
|
|
73
85
|
* The method called after the component is initialized.
|
|
74
86
|
*/
|
|
@@ -81,6 +93,7 @@ export class ListFormFieldComponent extends SmeInternalFormFieldComponent {
|
|
|
81
93
|
*/
|
|
82
94
|
addListItem(value = '') {
|
|
83
95
|
this.value = [...this.value, value];
|
|
96
|
+
this.listFormFieldAccessibilityManagerService.add(this.value, this.addButton, this.hostElement);
|
|
84
97
|
}
|
|
85
98
|
/**
|
|
86
99
|
* Removes an item at the given index
|
|
@@ -89,10 +102,7 @@ export class ListFormFieldComponent extends SmeInternalFormFieldComponent {
|
|
|
89
102
|
const value = [...this.value];
|
|
90
103
|
value.splice(index, 1);
|
|
91
104
|
this.value = value;
|
|
92
|
-
|
|
93
|
-
if (firstFocusable) {
|
|
94
|
-
firstFocusable.focus();
|
|
95
|
-
}
|
|
105
|
+
this.listFormFieldAccessibilityManagerService.delete(this.value, this.addButton, this.hostElement);
|
|
96
106
|
}
|
|
97
107
|
/**
|
|
98
108
|
* The method called when a <select> element's value changes.
|
|
@@ -133,12 +143,17 @@ export class ListFormFieldComponent extends SmeInternalFormFieldComponent {
|
|
|
133
143
|
return super.validate(c);
|
|
134
144
|
}
|
|
135
145
|
}
|
|
136
|
-
/** @nocollapse */ ListFormFieldComponent.ɵfac = function ListFormFieldComponent_Factory(t) { return new (t || ListFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
|
|
137
|
-
/** @nocollapse */ ListFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ListFormFieldComponent, selectors: [["sme-form-field", "type", "list"]],
|
|
146
|
+
/** @nocollapse */ ListFormFieldComponent.ɵfac = function ListFormFieldComponent_Factory(t) { return new (t || ListFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.ListFormFieldAccessibilityManagerService)); };
|
|
147
|
+
/** @nocollapse */ ListFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ListFormFieldComponent, selectors: [["sme-form-field", "type", "list"]], viewQuery: function ListFormFieldComponent_Query(rf, ctx) { if (rf & 1) {
|
|
148
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
149
|
+
} if (rf & 2) {
|
|
150
|
+
let _t;
|
|
151
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.addButton = _t.first);
|
|
152
|
+
} }, hostVars: 1, hostBindings: function ListFormFieldComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
138
153
|
i0.ɵɵattribute("aria-label", ctx.ariaLabel);
|
|
139
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], attrs:
|
|
154
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 3, vars: 3, consts: [[3, "formField"], ["class", "sme-margin-bottom-xs sme-form-field-editor", 4, "ngIf"], [3, "alert"], [1, "sme-margin-bottom-xs", "sme-form-field-editor"], ["class", "sme-arrange-stack-h sme-margin-bottom-xs sme-form-field-width", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["type", "button", 1, "sme-button-trigger", "sme-button-auto-width", "sme-margin-bottom-xs", 3, "title", "click"], ["addButton", ""], [1, "sme-icon", "sme-icon-add"], [1, "sme-arrange-stack-h", "sme-margin-bottom-xs", "sme-form-field-width"], ["type", "text", 1, "sme-position-flex-auto", "sme-margin-right-xs", 3, "ngModel", "ngModelChange", "input"], ["type", "button", 1, "sme-button-trigger", "sme-position-flex-none", "sme-button-auto-width", 3, "title", "click"], [1, "sme-icon", "sme-icon-cancel", "sme-color-red"]], template: function ListFormFieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
140
155
|
i0.ɵɵelementStart(0, "sme-form-field-layout", 0);
|
|
141
|
-
i0.ɵɵtemplate(1, ListFormFieldComponent_div_1_Template,
|
|
156
|
+
i0.ɵɵtemplate(1, ListFormFieldComponent_div_1_Template, 7, 5, "div", 1);
|
|
142
157
|
i0.ɵɵelement(2, "sme-validation-alert", 2);
|
|
143
158
|
i0.ɵɵelementEnd();
|
|
144
159
|
} if (rf & 2) {
|
|
@@ -147,12 +162,15 @@ export class ListFormFieldComponent extends SmeInternalFormFieldComponent {
|
|
|
147
162
|
i0.ɵɵproperty("ngIf", ctx.value);
|
|
148
163
|
i0.ɵɵadvance(1);
|
|
149
164
|
i0.ɵɵproperty("alert", ctx.alert);
|
|
150
|
-
} }, dependencies: [
|
|
165
|
+
} }, dependencies: [i2.NgForOf, i2.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.TooltipDirective, i5.ValidationAlertComponent, i6.FormFieldLayoutComponent], encapsulation: 2 });
|
|
151
166
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListFormFieldComponent, [{
|
|
152
167
|
type: Component,
|
|
153
|
-
args: [{ selector: 'sme-form-field[type="list"]', template: "<sme-form-field-layout [formField]=\"this\">\r\n <div *ngIf=\"value\" class=\"sme-margin-bottom-xs sme-form-field-editor\">\r\n <div *ngFor=\"let item of value;trackBy: trackByIndex; let i = index\"\r\n class=\"sme-arrange-stack-h sme-margin-bottom-xs sme-form-field-width\">\r\n <input class=\"sme-position-flex-auto sme-margin-right-xs\" type=\"text\" [(ngModel)]=\"value[i]\"\r\n (input)=\"triggerValueChange()\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.List.itemAriaLabel.format(label, i + 1, value.length)\" />\r\n <button type=\"button\" class=\"sme-button-trigger sme-position-flex-none sme-button-auto-width\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.List.removeButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.List.removeButtonTooltip\" (click)=\"removeItemAt(i)\">\r\n <span class=\"sme-icon sme-icon-cancel sme-color-red\"></span>\r\n </button>\r\n </div>\r\n <button type=\"button\" class=\"sme-button-trigger sme-button-auto-width sme-margin-bottom-xs\"\r\n [attr.aria-label]=\"
|
|
154
|
-
}], function () { return [{ type: i0.Injector }]; }, {
|
|
168
|
+
args: [{ selector: 'sme-form-field[type="list"]', template: "<sme-form-field-layout [formField]=\"this\">\r\n <div *ngIf=\"value\" class=\"sme-margin-bottom-xs sme-form-field-editor\">\r\n <div *ngFor=\"let item of value;trackBy: trackByIndex; let i = index\"\r\n class=\"sme-arrange-stack-h sme-margin-bottom-xs sme-form-field-width\">\r\n <input class=\"sme-position-flex-auto sme-margin-right-xs\" type=\"text\" [(ngModel)]=\"value[i]\"\r\n (input)=\"triggerValueChange()\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.List.itemAriaLabel.format(label, i + 1, value.length)\" />\r\n <button type=\"button\" class=\"sme-button-trigger sme-position-flex-none sme-button-auto-width\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.List.removeButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.List.removeButtonTooltip\" (click)=\"removeItemAt(i)\">\r\n <span class=\"sme-icon sme-icon-cancel sme-color-red\"></span>\r\n </button>\r\n </div>\r\n <button #addButton type=\"button\" class=\"sme-button-trigger sme-button-auto-width sme-margin-bottom-xs\"\r\n [attr.aria-label]=\"addButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.List.addButtonTooltip\" (click)=\"addListItem()\">\r\n <span class=\"sme-icon sme-icon-add\"></span>\r\n <span>{{ strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel }}</span>\r\n </button>\r\n </div>\r\n <sme-validation-alert [alert]=\"alert\"></sme-validation-alert>\r\n</sme-form-field-layout>" }]
|
|
169
|
+
}], function () { return [{ type: i0.Injector }, { type: i1.ListFormFieldAccessibilityManagerService }]; }, { addButton: [{
|
|
170
|
+
type: ViewChild,
|
|
171
|
+
args: ['addButton']
|
|
172
|
+
}], ariaLabel: [{
|
|
155
173
|
type: HostBinding,
|
|
156
174
|
args: ['attr.aria-label']
|
|
157
175
|
}] }); })();
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2Zvcm0vZm9ybS1maWVsZC9saXN0L2xpc3QtZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9mb3JtL2Zvcm0tZmllbGQvbGlzdC9saXN0LWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUV2RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7OztJQ0ZwRSw4QkFDd0UsZUFBQTtJQUNBLG9TQUFzQiw0SkFDakYsZUFBQSwyQkFBb0IsQ0FBQSxJQUQ2RDtJQUE1RixpQkFFZ0g7SUFDaEgsaUNBRWlHO0lBQTFCLDhOQUFTLGVBQUEseUJBQWUsQ0FBQSxJQUFDO0lBQzlGLDJCQUE0RDtJQUM5RCxpQkFBUyxFQUFBOzs7O0lBUDZELGVBQXNCO0lBQXRCLDRDQUFzQjtJQUUxRiw2SUFBMkc7SUFHM0csZUFBb0U7SUFBcEUseUZBQW9FO0lBRHBFLGlHQUFnRjs7OztJQVB0Riw4QkFBc0U7SUFDcEUsNkVBVU07SUFDTixpQ0FFNEY7SUFBeEIsbUtBQVMsZUFBQSxvQkFBYSxDQUFBLElBQUM7SUFDekYsMEJBQTJDO0lBQzNDLDRCQUFNO0lBQUEsWUFBNkQ7SUFBQSxpQkFBTyxFQUFBLEVBQUE7OztJQWZ0RCxlQUFTO0lBQVQsc0NBQVMscUNBQUE7SUFhN0IsZUFBaUU7SUFBakUsc0ZBQWlFO0lBRGpFLDhGQUE2RTtJQUd2RSxl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QWdCNUIsU0FBUztrQkFEbkIsV0FBVzttQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEb20gfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RvbS9kb20nO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uQWxlcnRzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbi1hbGVydC92YWxpZGF0aW9uLWFsZXJ0JztcclxuaW1wb3J0IHsgU21lSW50ZXJuYWxGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQWNjZXNzaWJsZSBJbXBsZW1lbnRhdGlvbiBvZiBhIGZvcm0gZmllbGQgZm9yIGEgc3RyaW5nIGFycmF5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWZvcm0tZmllbGRbdHlwZT1cImxpc3RcIl0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExpc3RGb3JtRmllbGRDb21wb25lbnQgZXh0ZW5kcyBTbWVJbnRlcm5hbEZvcm1GaWVsZENvbXBvbmVudDxzdHJpbmdbXT4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNvdXJjZSBuYW1lIHRvIHVzZSBmb3IgbG9nZ2luZ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGxvZ1NvdXJjZU5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuICdMaXN0Rm9ybUZpZWxkQ29tcG9uZW50JztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBhcmlhIGxhYmVsIGZvciB0aGlzIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXHJcbiAgICBwdWJsaWMgZ2V0IGFyaWFMYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1lcmdlZERlc2NyaXB0aW9uTGFiZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBMaXN0Rm9ybUZpZWxkQ29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1ldGhvZCBjYWxsZWQgYWZ0ZXIgdGhlIGNvbXBvbmVudCBpcyBpbml0aWFsaXplZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnZ3JvdXAnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYW4gaXRlbSB0byB0aGUgbGlzdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkTGlzdEl0ZW0odmFsdWU6IHN0cmluZyA9ICcnKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IFsuLi50aGlzLnZhbHVlLCB2YWx1ZV07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIGFuIGl0ZW0gYXQgdGhlIGdpdmVuIGluZGV4XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZW1vdmVJdGVtQXQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gWy4uLnRoaXMudmFsdWVdO1xyXG4gICAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IERvbS5nZXRGaXJzdEZvY3VzYWJsZURlc2NlbmRlbnQodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICBpZiAoZmlyc3RGb2N1c2FibGUpIHtcclxuICAgICAgICAgICAgZmlyc3RGb2N1c2FibGUuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWV0aG9kIGNhbGxlZCB3aGVuIGEgPHNlbGVjdD4gZWxlbWVudCdzIHZhbHVlIGNoYW5nZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmlnZ2VyVmFsdWVDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IFsuLi50aGlzLnZhbHVlXTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGluZGV4IHRvIHRyYWNrIGl0ZW1zIGluIHRoZSBhcnJheSBieVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHJhY2tCeUluZGV4KGluZGV4LCBpdGVtKSB7IHJldHVybiBpbmRleDsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyB0aGUgaWRCYWcgdXNlZCBieSB0aGlzIGNvbXBvbmVudCB0byBzdG9yZSB1bmlxdWUgZWxlbWVudCBpZHMuXHJcbiAgICAgKiBpZCB2YWx1ZXMgd2lsbCBiZSBhc3NpZ25lZCBiZSB0aGUgQHNlZSBCYXNlQ29tcG9uZW50IHN1cGVyIGNsYXNzLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlSWRCYWcoKTogTXNmdFNtZS5TdHJpbmdNYXA8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgZGV0YWlsc1NwYW46ICcnXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcmZvcm1zIHZhbGlkYXRpb24gdGhhdCBpcyBpbnRlcm5hbCB0byB0aGlzIGNvbnRyb2wuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGMgVGhlIGZvcm0gY29udHJvbCBhdHRhY2hlZCB0byB0aGlzIGluc3RhbmNlLlxyXG4gICAgICogQHJldHVybnMgQW55IHZhbGlkYXRpb24gYWxlcnRzIGZvciB0aGlzIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCB2YWxpZGF0ZShjOiBGb3JtQ29udHJvbCk6IFZhbGlkYXRpb25BbGVydHMge1xyXG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVkICYmIChNc2Z0U21lLmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudmFsdWUpIHx8IHRoaXMudmFsdWUubGVuZ3RoID09PSAwKSkge1xyXG4gICAgICAgICAgICByZXR1cm4geyByZXF1aXJlZDogdHJ1ZSB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFNc2Z0U21lLmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudmFsdWUpICYmIHRoaXMudmFsdWUuc29tZSgoeCkgPT4gTXNmdFNtZS5pc051bGxPcldoaXRlU3BhY2UoeCkpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBudWxsVmFsdWU6IHtcclxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuRm9ybS5MaXN0LmVtcHR5VmFsdWVzXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gc3VwZXIudmFsaWRhdGUoYyk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHNtZS1mb3JtLWZpZWxkLWxheW91dCBbZm9ybUZpZWxkXT1cInRoaXNcIj5cclxuICA8ZGl2ICpuZ0lmPVwidmFsdWVcIiBjbGFzcz1cInNtZS1tYXJnaW4tYm90dG9tLXhzIHNtZS1mb3JtLWZpZWxkLWVkaXRvclwiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiB2YWx1ZTt0cmFja0J5OiB0cmFja0J5SW5kZXg7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLWggc21lLW1hcmdpbi1ib3R0b20teHMgc21lLWZvcm0tZmllbGQtd2lkdGhcIj5cclxuICAgICAgPGlucHV0IGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtYXV0byBzbWUtbWFyZ2luLXJpZ2h0LXhzXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInZhbHVlW2ldXCJcclxuICAgICAgICAoaW5wdXQpPVwidHJpZ2dlclZhbHVlQ2hhbmdlKClcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Gb3JtLkxpc3QuaXRlbUFyaWFMYWJlbC5mb3JtYXQobGFiZWwsIGkgKyAxLCB2YWx1ZS5sZW5ndGgpXCIgLz5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzbWUtYnV0dG9uLXRyaWdnZXIgc21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtYnV0dG9uLWF1dG8td2lkdGhcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Gb3JtLkxpc3QucmVtb3ZlQnV0dG9uQXJpYUxhYmVsXCJcclxuICAgICAgICBbdGl0bGVdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Gb3JtLkxpc3QucmVtb3ZlQnV0dG9uVG9vbHRpcFwiIChjbGljayk9XCJyZW1vdmVJdGVtQXQoaSlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLWNhbmNlbCBzbWUtY29sb3ItcmVkXCI+PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzbWUtYnV0dG9uLXRyaWdnZXIgc21lLWJ1dHRvbi1hdXRvLXdpZHRoIHNtZS1tYXJnaW4tYm90dG9tLXhzXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkZvcm0uTGlzdC5hZGRCdXR0b25BcmlhTGFiZWxcIlxyXG4gICAgICBbdGl0bGVdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Gb3JtLkxpc3QuYWRkQnV0dG9uVG9vbHRpcFwiIChjbGljayk9XCJhZGRMaXN0SXRlbSgpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic21lLWljb24gc21lLWljb24tYWRkXCI+PC9zcGFuPlxyXG4gICAgICA8c3Bhbj57e3N0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuRm9ybS5MaXN0LmFkZEJ1dHRvbkFyaWFMYWJlbH19PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPHNtZS12YWxpZGF0aW9uLWFsZXJ0IFthbGVydF09XCJhbGVydFwiPjwvc21lLXZhbGlkYXRpb24tYWxlcnQ+XHJcbjwvc21lLWZvcm0tZmllbGQtbGF5b3V0PiJdfQ==
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2Zvcm0vZm9ybS1maWVsZC9saXN0L2xpc3QtZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9mb3JtL2Zvcm0tZmllbGQvbGlzdC9saXN0LWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7Ozs7Ozs7OztJQ0Z2Ryw4QkFDd0UsZUFBQTtJQUNBLG9TQUFzQiw0SkFDakYsZUFBQSwyQkFBb0IsQ0FBQSxJQUQ2RDtJQUE1RixpQkFFZ0g7SUFDaEgsa0NBRWlHO0lBQTFCLDhOQUFTLGVBQUEseUJBQWUsQ0FBQSxJQUFDO0lBQzlGLDJCQUE0RDtJQUM5RCxpQkFBUyxFQUFBOzs7O0lBUDZELGVBQXNCO0lBQXRCLDRDQUFzQjtJQUUxRiw2SUFBMkc7SUFHM0csZUFBb0U7SUFBcEUseUZBQW9FO0lBRHBFLGlHQUFnRjs7OztJQVB0Riw4QkFBc0U7SUFDcEUsNkVBVU07SUFDTixvQ0FFNEY7SUFBeEIsb0tBQVMsZUFBQSxvQkFBYSxDQUFBLElBQUM7SUFDekYsMEJBQTJDO0lBQzNDLDRCQUFNO0lBQUEsWUFBK0Q7SUFBQSxpQkFBTyxFQUFBLEVBQUE7OztJQWZ4RCxlQUFTO0lBQVQsc0NBQVMscUNBQUE7SUFhN0IsZUFBaUU7SUFBakUsc0ZB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SUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pHLE9BQU87Z0JBQ0gsU0FBUyxFQUFFO29CQUNQLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO2lCQUNuRTthQUNKLENBQUM7U0FDTDtRQUVELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOzsrR0FsSFEsc0JBQXNCO3dHQUF0QixzQkFBc0I7Ozs7Ozs7O1FDYm5DLGdEQUEwQztRQUN4Qyx1RUFrQk07UUFDTiwwQ0FBNkQ7UUFDL0QsaUJBQXdCOztRQXJCRCwrQkFBa0I7UUFDakMsZUFBVztRQUFYLGdDQUFXO1FBbUJLLGVBQWU7UUFBZixpQ0FBZTs7dUZEUDFCLHNCQUFzQjtjQUpsQyxTQUFTOzJCQUNJLDZCQUE2QjtrSEFTaEMsU0FBUztrQkFEZixTQUFTO21CQUFDLFdBQVc7WUFjWCxTQUFTO2tCQURuQixXQUFXO21CQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEluamVjdG9yLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkFsZXJ0cyB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24tYWxlcnQvdmFsaWRhdGlvbi1hbGVydCc7XHJcbmltcG9ydCB7IFNtZUludGVybmFsRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0Rm9ybUZpZWxkQWNjZXNzaWJpbGl0eU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9saXN0LWZvcm0tZmllbGQtYWNjZXNzaWJpbGl0eS1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEFjY2Vzc2libGUgSW1wbGVtZW50YXRpb24gb2YgYSBmb3JtIGZpZWxkIGZvciBhIHN0cmluZyBhcnJheVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1mb3JtLWZpZWxkW3R5cGU9XCJsaXN0XCJdJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9saXN0LWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaXN0Rm9ybUZpZWxkQ29tcG9uZW50IGV4dGVuZHMgU21lSW50ZXJuYWxGb3JtRmllbGRDb21wb25lbnQ8c3RyaW5nW10+IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB2aWV3IGNoaWxkIGNvbXBvbmVudCBmb3IgdGhlIGFkZCBidXR0b25cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnYWRkQnV0dG9uJylcclxuICAgIHB1YmxpYyBhZGRCdXR0b246IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ0xpc3RGb3JtRmllbGRDb21wb25lbnQnO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGFyaWEgbGFiZWwgZm9yIHRoaXMgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsJylcclxuICAgIHB1YmxpYyBnZXQgYXJpYUxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVyZ2VkRGVzY3JpcHRpb25MYWJlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIExpc3RGb3JtRmllbGRDb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBsaXN0Rm9ybUZpZWxkQWNjZXNzaWJpbGl0eU1hbmFnZXJTZXJ2aWNlOiBMaXN0Rm9ybUZpZWxkQWNjZXNzaWJpbGl0eU1hbmFnZXJTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBnZXRzIHRoZSBhcmlhIGxhYmVsIGZvciB0aGUgYWRkIGJ1dHRvbiB0aGF0IGNhbiByZXNwZWN0IHdoZW4gdGhlIGZpZWxkIGlzIHJlcXVpcmVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGFkZEJ1dHRvbkFyaWFMYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQ2FsZW5kYXIuQXJpYUxhYmVsLlJlcXVpcmVkLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Gb3JtLkxpc3QuYWRkQnV0dG9uQXJpYUxhYmVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Gb3JtLkxpc3QuYWRkQnV0dG9uQXJpYUxhYmVsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1ldGhvZCBjYWxsZWQgYWZ0ZXIgdGhlIGNvbXBvbmVudCBpcyBpbml0aWFsaXplZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnZ3JvdXAnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYW4gaXRlbSB0byB0aGUgbGlzdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkTGlzdEl0ZW0odmFsdWU6IHN0cmluZyA9ICcnKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IFsuLi50aGlzLnZhbHVlLCB2YWx1ZV07XHJcblxyXG4gICAgICAgIHRoaXMubGlzdEZvcm1GaWVsZEFjY2Vzc2liaWxpdHlNYW5hZ2VyU2VydmljZS5hZGQodGhpcy52YWx1ZSwgdGhpcy5hZGRCdXR0b24sIHRoaXMuaG9zdEVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhbiBpdGVtIGF0IHRoZSBnaXZlbiBpbmRleFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVtb3ZlSXRlbUF0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IFsuLi50aGlzLnZhbHVlXTtcclxuICAgICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5saXN0Rm9ybUZpZWxkQWNjZXNzaWJpbGl0eU1hbmFnZXJTZXJ2aWNlLmRlbGV0ZSh0aGlzLnZhbHVlLCB0aGlzLmFkZEJ1dHRvbiwgdGhpcy5ob3N0RWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWV0aG9kIGNhbGxlZCB3aGVuIGEgPHNlbGVjdD4gZWxlbWVudCdzIHZhbHVlIGNoYW5nZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmlnZ2VyVmFsdWVDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IFsuLi50aGlzLnZhbHVlXTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGluZGV4IHRvIHRyYWNrIGl0ZW1zIGluIHRoZSBhcnJheSBieVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHJhY2tCeUluZGV4KGluZGV4LCBpdGVtKSB7IHJldHVybiBpbmRleDsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyB0aGUgaWRCYWcgdXNlZCBieSB0aGlzIGNvbXBvbmVudCB0byBzdG9yZSB1bmlxdWUgZWxlbWVudCBpZHMuXHJcbiAgICAgKiBpZCB2YWx1ZXMgd2lsbCBiZSBhc3NpZ25lZCBiZSB0aGUgQHNlZSBCYXNlQ29tcG9uZW50IHN1cGVyIGNsYXNzLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlSWRCYWcoKTogTXNmdFNtZS5TdHJpbmdNYXA8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgZGV0YWlsc1NwYW46ICcnXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcmZvcm1zIHZhbGlkYXRpb24gdGhhdCBpcyBpbnRlcm5hbCB0byB0aGlzIGNvbnRyb2wuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGMgVGhlIGZvcm0gY29udHJvbCBhdHRhY2hlZCB0byB0aGlzIGluc3RhbmNlLlxyXG4gICAgICogQHJldHVybnMgQW55IHZhbGlkYXRpb24gYWxlcnRzIGZvciB0aGlzIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCB2YWxpZGF0ZShjOiBGb3JtQ29udHJvbCk6IFZhbGlkYXRpb25BbGVydHMge1xyXG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVkICYmIChNc2Z0U21lLmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudmFsdWUpIHx8IHRoaXMudmFsdWUubGVuZ3RoID09PSAwKSkge1xyXG4gICAgICAgICAgICByZXR1cm4geyByZXF1aXJlZDogdHJ1ZSB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFNc2Z0U21lLmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudmFsdWUpICYmIHRoaXMudmFsdWUuc29tZSgoeCkgPT4gTXNmdFNtZS5pc051bGxPcldoaXRlU3BhY2UoeCkpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBudWxsVmFsdWU6IHtcclxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuRm9ybS5MaXN0LmVtcHR5VmFsdWVzXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gc3VwZXIudmFsaWRhdGUoYyk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHNtZS1mb3JtLWZpZWxkLWxheW91dCBbZm9ybUZpZWxkXT1cInRoaXNcIj5cclxuICA8ZGl2ICpuZ0lmPVwidmFsdWVcIiBjbGFzcz1cInNtZS1tYXJnaW4tYm90dG9tLXhzIHNtZS1mb3JtLWZpZWxkLWVkaXRvclwiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiB2YWx1ZTt0cmFja0J5OiB0cmFja0J5SW5kZXg7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLWggc21lLW1hcmdpbi1ib3R0b20teHMgc21lLWZvcm0tZmllbGQtd2lkdGhcIj5cclxuICAgICAgPGlucHV0IGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtYXV0byBzbWUtbWFyZ2luLXJpZ2h0LXhzXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInZhbHVlW2ldXCJcclxuICAgICAgICAoaW5wdXQpPVwidHJpZ2dlclZhbHVlQ2hhbmdlKClcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Gb3JtLkxpc3QuaXRlbUFyaWFMYWJlbC5mb3JtYXQobGFiZWwsIGkgKyAxLCB2YWx1ZS5sZW5ndGgpXCIgLz5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzbWUtYnV0dG9uLXRyaWdnZXIgc21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtYnV0dG9uLWF1dG8td2lkdGhcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Gb3JtLkxpc3QucmVtb3ZlQnV0dG9uQXJpYUxhYmVsXCJcclxuICAgICAgICBbdGl0bGVdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Gb3JtLkxpc3QucmVtb3ZlQnV0dG9uVG9vbHRpcFwiIChjbGljayk9XCJyZW1vdmVJdGVtQXQoaSlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLWNhbmNlbCBzbWUtY29sb3ItcmVkXCI+PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiAjYWRkQnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNtZS1idXR0b24tdHJpZ2dlciBzbWUtYnV0dG9uLWF1dG8td2lkdGggc21lLW1hcmdpbi1ib3R0b20teHNcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFkZEJ1dHRvbkFyaWFMYWJlbFwiXHJcbiAgICAgIFt0aXRsZV09XCJzdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkZvcm0uTGlzdC5hZGRCdXR0b25Ub29sdGlwXCIgKGNsaWNrKT1cImFkZExpc3RJdGVtKClcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtaWNvbiBzbWUtaWNvbi1hZGRcIj48L3NwYW4+XHJcbiAgICAgIDxzcGFuPnt7IHN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuRm9ybS5MaXN0LmFkZEJ1dHRvbkFyaWFMYWJlbCB9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxzbWUtdmFsaWRhdGlvbi1hbGVydCBbYWxlcnRdPVwiYWxlcnRcIj48L3NtZS12YWxpZGF0aW9uLWFsZXJ0PlxyXG48L3NtZS1mb3JtLWZpZWxkLWxheW91dD4iXX0=
|
|
@@ -39,19 +39,25 @@ function NumberFormFieldComponent_div_3_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
39
39
|
i0.ɵɵlistener("click", function NumberFormFieldComponent_div_3_span_4_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r8); const ctx_r9 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r9.decrement()); });
|
|
40
40
|
i0.ɵɵelement(6, "span", 15);
|
|
41
41
|
i0.ɵɵelementEnd()();
|
|
42
|
+
} if (rf & 2) {
|
|
43
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
44
|
+
i0.ɵɵadvance(1);
|
|
45
|
+
i0.ɵɵattribute("aria-label", ctx_r4.ariaLabelIncrease);
|
|
46
|
+
i0.ɵɵadvance(3);
|
|
47
|
+
i0.ɵɵattribute("aria-label", ctx_r4.ariaLabelDecrease);
|
|
42
48
|
} }
|
|
43
49
|
function NumberFormFieldComponent_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
44
50
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
45
51
|
i0.ɵɵelementStart(0, "div", 5, 6)(2, "input", 7, 8);
|
|
46
52
|
i0.ɵɵlistener("ngModelChange", function NumberFormFieldComponent_div_3_Template_input_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.value = $event); })("focus", function NumberFormFieldComponent_div_3_Template_input_focus_2_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.onInputFocus($event)); })("focusout", function NumberFormFieldComponent_div_3_Template_input_focusout_2_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.onInputFocusOut($event)); })("keydown", function NumberFormFieldComponent_div_3_Template_input_keydown_2_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.onInputKeydown($event)); });
|
|
47
53
|
i0.ɵɵelementEnd();
|
|
48
|
-
i0.ɵɵtemplate(4, NumberFormFieldComponent_div_3_span_4_Template, 7,
|
|
54
|
+
i0.ɵɵtemplate(4, NumberFormFieldComponent_div_3_span_4_Template, 7, 2, "span", 9);
|
|
49
55
|
i0.ɵɵelementEnd();
|
|
50
56
|
} if (rf & 2) {
|
|
51
57
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
52
58
|
i0.ɵɵadvance(2);
|
|
53
59
|
i0.ɵɵproperty("ngModel", ctx_r1.value)("required", ctx_r1.required)("disabled", ctx_r1.loadingOrDisabled)("max", ctx_r1.max)("min", ctx_r1.min)("step", ctx_r1.step)("placeholder", ctx_r1.placeholder);
|
|
54
|
-
i0.ɵɵattribute("role", ctx_r1.showSpinButton ? "
|
|
60
|
+
i0.ɵɵattribute("role", ctx_r1.showSpinButton ? "spinbutton" : null)("aria-valuemax", ctx_r1.max)("aria-valuemin", ctx_r1.min)("aria-label", ctx_r1.label)("aria-required", ctx_r1.required);
|
|
55
61
|
i0.ɵɵadvance(2);
|
|
56
62
|
i0.ɵɵproperty("ngIf", ctx_r1.showSpinButton);
|
|
57
63
|
} }
|
|
@@ -100,6 +106,18 @@ let NumberFormFieldComponent = class NumberFormFieldComponent extends SmeInterna
|
|
|
100
106
|
? MsftSme.isNullOrUndefined(this.step) ? 1 : this.step
|
|
101
107
|
: this.incrementBy;
|
|
102
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Getter aria label increase for spin button increase.
|
|
111
|
+
*/
|
|
112
|
+
get ariaLabelIncrease() {
|
|
113
|
+
return this.strings.MsftSmeShell.Angular.Form.SpinButton.increase.format(this.incrementBy);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Getter aria label increase for spin button decrease.
|
|
117
|
+
*/
|
|
118
|
+
get ariaLabelDecrease() {
|
|
119
|
+
return this.strings.MsftSmeShell.Angular.Form.SpinButton.decrease.format(this.incrementBy);
|
|
120
|
+
}
|
|
103
121
|
/**
|
|
104
122
|
* Handle keydown events on the number input
|
|
105
123
|
*/
|
|
@@ -345,7 +363,7 @@ NumberFormFieldComponent = __decorate([
|
|
|
345
363
|
export { NumberFormFieldComponent };
|
|
346
364
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NumberFormFieldComponent, [{
|
|
347
365
|
type: Component,
|
|
348
|
-
args: [{ selector: 'sme-form-field[type="number"]', template: "<sme-form-field-layout [formField]=\"this\">\r\n <div class=\"sme-form-field-editor\">\r\n <span *ngIf=\"readonly\">{{ value }}</span>\r\n <div #container *ngIf=\"!readonly\" class=\"sme-number-form-field-container\">\r\n <input #input type=\"number\" autocomplete=\"off\" [(ngModel)]=\"value\" class=\"sme-hidden-focus\" [attr.role]=\"showSpinButton ? '
|
|
366
|
+
args: [{ selector: 'sme-form-field[type="number"]', template: "<sme-form-field-layout [formField]=\"this\">\r\n <div class=\"sme-form-field-editor\">\r\n <span *ngIf=\"readonly\">{{ value }}</span>\r\n <div #container *ngIf=\"!readonly\" class=\"sme-number-form-field-container\">\r\n <input #input type=\"number\" autocomplete=\"off\" [(ngModel)]=\"value\" class=\"sme-hidden-focus\" [attr.role]=\"showSpinButton ? 'spinbutton': null\"\r\n [required]=\"required\" [disabled]=\"loadingOrDisabled\" [max]=\"max\" [min]=\"min\" [step]=\"step\" [placeholder]=\"placeholder\"\r\n [attr.aria-valuemax]=\"max\" [attr.aria-valuemin]=\"min\" [attr.aria-label]=\"label\" [attr.aria-required]=\"required\"\r\n (focus)=\"onInputFocus($event)\" (focusout)=\"onInputFocusOut($event)\" (keydown)=\"onInputKeydown($event)\">\r\n <span *ngIf=\"showSpinButton\" class=\"sme-arrange-stack-v sme-form-field-number-button-group\">\r\n <button #incrementButton type=\"button\" class=\"sme-button-auto-width\" tabindex=\"-1\" (click)=\"increment()\" [attr.aria-label]=\"ariaLabelIncrease\">\r\n <span class=\"sme-icon sme-icon-chevronUpSmall\"></span>\r\n </button>\r\n <button #decrementButton type=\"button\" class=\"sme-button-auto-width\" tabindex=\"-1\" (click)=\"decrement()\" [attr.aria-label]=\"ariaLabelDecrease\">\r\n <span class=\"sme-icon sme-icon-chevronDownSmall\"></span>\r\n </button>\r\n </span>\r\n </div>\r\n </div>\r\n <sme-validation-alert [alert]=\"alert\"></sme-validation-alert>\r\n</sme-form-field-layout>\r\n" }]
|
|
349
367
|
}], function () { return [{ type: i0.Injector }]; }, { input: [{
|
|
350
368
|
type: ViewChild,
|
|
351
369
|
args: ['input']
|
|
@@ -369,4 +387,4 @@ export { NumberFormFieldComponent };
|
|
|
369
387
|
}], max: [{
|
|
370
388
|
type: Input
|
|
371
389
|
}] }); })();
|
|
372
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZvcm0tZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZm9ybS9mb3JtLWZpZWxkL251bWJlci9udW1iZXItZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9mb3JtL2Zvcm0tZmllbGQvbnVtYmVyL251bWJlci1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZm9ybS9mb3JtLWZpZWxkL251bWJlci9udW1iZXItc2NoZW1hLWRyaXZlbi1mb3JtLXRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBaUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7SUNMcEUsNEJBQXVCO0lBQUEsWUFBVztJQUFBLGlCQUFPOzs7SUFBbEIsZUFBVztJQUFYLGtDQUFXOzs7O0lBTWhDLGdDQUE0RixxQkFBQTtJQUNQLDZLQUFTLGVBQUEsa0JBQVcsQ0FBQSxJQUFDO0lBQ3RHLDJCQUFzRDtJQUN4RCxpQkFBUztJQUNULHNDQUF5RztJQUF0Qiw2S0FBUyxlQUFBLGtCQUFXLENBQUEsSUFBQztJQUN0RywyQkFBd0Q7SUFDMUQsaUJBQVMsRUFBQTs7OztJQVhiLGlDQUEwRSxrQkFBQTtJQUN6QixzT0FBbUIsK0pBR3ZELGVBQUEsNEJBQW9CLENBQUEsSUFIbUMscUtBR3JCLGVBQUEsK0JBQXVCLENBQUEsSUFIRixtS0FHZSxlQUFBLDhCQUFzQixDQUFBLElBSHJDO0lBQWxFLGlCQUd5RztJQUN6RyxpRkFPTztJQUNULGlCQUFNOzs7SUFaMkMsZUFBbUI7SUFBbkIsc0NBQW1CLDZCQUFBLHNDQUFBLG1CQUFBLG1CQUFBLHFCQUFBLG1DQUFBO0lBQTBCLG1FQUFpRCw2QkFBQSw2QkFBQSw0QkFBQSxrQ0FBQTtJQUl0SSxlQUFvQjtJQUFwQiw0Q0FBb0I7O0FEQ2pDLDRCQUE0QjtBQUk1QiwyQkFBMkI7QUFDM0IsTUFBTSxPQUFPLDhCQUErQixTQUFRLHdDQUF3Qzs7NlVBQS9FLDhCQUE4QixTQUE5Qiw4QkFBOEI7Z0hBQTlCLDhCQUE4QjtRRWQzQyw0Q0Fld0k7UUFmbkcsOEpBQWtCLDhIQWNuQyx3REFBZ0QsUUFBUSxJQWRyQixvTEFlVSxxRUFBNkQsUUFBUSxJQWYvRTtRQWdCdkQsaUJBQWlCOztRQWhCb0Isa0NBQWtCLGlDQUFBLGlEQUFBLHlDQUFBLDZEQUFBLHdFQUFBLGtIQUFBLHFFQUFBLHFFQUFBLHVFQUFBLDJGQUFBLHFJQUFBLDRFQUFBLGtJQUFBO21HRmtFMUMsd0JBQXdCO3VGQXBEeEIsOEJBQThCO2NBSjFDLFNBQVM7OztBQU9WOztHQUVHO0FBK0NJLElBQU0sd0JBQXdCLEdBQTlCLE1BQU0sd0JBQXlCLFNBQVEsNkJBQXFDO0lBK0QvRTs7T0FFRztJQUNILFlBQ0ksUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBcENwQjs7V0FFRztRQUVJLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBaUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNiLDBCQUEwQjtJQUM5QixDQUFDO0lBdEVEOztPQUVHO0lBQ0gsSUFBYyxhQUFhO1FBQ3ZCLE9BQU8sMEJBQTBCLENBQUM7SUFDdEMsQ0FBQztJQW1FTSxRQUFRO1FBQ1gsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLDZFQUE2RTtRQUM3RSxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQzFELENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ3RELENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWMsQ0FBQyxNQUFxQjtRQUN2Qyw0R0FBNEc7UUFDNUcsUUFBUSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3BCLEtBQUssT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3hCLDhEQUE4RDtnQkFDOUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdkQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTTthQUNUO1lBQ0QsS0FBSyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3BCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDeEIsOERBQThEO2dCQUM5RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNsRCxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN2RCxDQUFDLENBQUMsQ0FBQztnQkFDSCxNQUFNO2FBQ1Q7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFBRSxPQUFPO2FBQUU7U0FDdkI7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTO1FBQ1osSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3JFLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzFCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDbEIsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTO1FBQ1osSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3JFLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzFCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDbEIsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZLENBQUMsTUFBTTtRQUN0QixJQUFJLE1BQU0sRUFBRTtZQUNSLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMzQjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZUFBZSxDQUFDLE1BQU07UUFDekIsSUFBSSxNQUFNLEVBQUU7WUFDUixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDM0I7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sV0FBVztRQUNqQixPQUFPO1lBQ0gsV0FBVyxFQUFFLEVBQUU7U0FDbEIsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNPLGFBQWE7UUFDbkIsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFFBQVEsQ0FBQyxDQUFjO1FBQzdCLDZFQUE2RTtRQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN6RCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0IsT0FBTztnQkFDSCxVQUFVLEVBQUU7b0JBQ1IsS0FBSyxFQUFFLEtBQUs7b0JBQ1osT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO29CQUN4RyxRQUFRLEVBQUUsdUJBQXVCLENBQUMsS0FBSztpQkFDMUM7YUFDSixDQUFDO1NBQ0w7UUFDRCxpRkFBaUY7UUFDakYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQy9ELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksTUFBTSxFQUFFO2dCQUFFLE9BQU8sTUFBTSxDQUFDO2FBQUU7U0FDakM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxNQUFNLEVBQUU7Z0JBQUUsT0FBTyxNQUFNLENBQUM7YUFBRTtTQUNqQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZDLHdGQUF3RjtZQUN4RixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUUsd0ZBQXdGO1lBQ3hGLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUUvRCxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ1gsT0FBTztvQkFDSCxrQkFBa0IsRUFBRTt3QkFDaEIsS0FBSyxFQUFFLEtBQUs7d0JBQ1osT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhOzZCQUMxRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7d0JBQ2hELFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxLQUFLO3FCQUMxQztpQkFDSixDQUFDO2FBQ0w7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLGdCQUFnQixDQUFDLEtBQWEsRUFBRSxPQUFlO1FBQ3JELE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDcEUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN4RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM3RCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0UsT0FBTyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sZ0JBQWdCLENBQUMsT0FBbUIsRUFBRSxRQUFRLEdBQUcsSUFBSTtRQUMzRCxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRTtZQUN6QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN0RSxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdEQ7UUFFRCxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN0RSxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDekQ7SUFDTCxDQUFDOzttSEF0UVEsd0JBQXdCOzBHQUF4Qix3QkFBd0I7Ozs7Ozs7Ozs7OztRQ2xFckMsZ0RBQTBDLGFBQUE7UUFFdEMsMkVBQXlDO1FBQ3pDLDBFQWFNO1FBQ1IsaUJBQU07UUFDTiwwQ0FBNkQ7UUFDL0QsaUJBQXdCOztRQW5CRCwrQkFBa0I7UUFFOUIsZUFBYztRQUFkLG1DQUFjO1FBQ0osZUFBZTtRQUFmLG9DQUFlO1FBZVosZUFBZTtRQUFmLGlDQUFlOztBRGdEMUIsd0JBQXdCO0lBOUNwQyxpQkFBaUIsQ0FBQztRQUNmLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO1FBQ2hDLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLFdBQVcsRUFBRSwrQ0FBK0M7UUFDNUQsZUFBZSxFQUFFLDhCQUE4QjtRQUMvQyxnQkFBZ0IsRUFBRTtZQUNkO2dCQUNJLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO2dCQUNoQyxNQUFNLEVBQUUsU0FBUztnQkFDakIsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLG1CQUFtQjtnQkFDMUIsWUFBWSxFQUFFLENBQUM7Z0JBQ2YsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsT0FBTyxFQUFFO29CQUNMLFlBQVksRUFBRSxLQUFLO2lCQUN0QjthQUNKO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU07Z0JBQ2hDLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixJQUFJLEVBQUUsS0FBSztnQkFDWCxLQUFLLEVBQUUsbUJBQW1CO2dCQUMxQixZQUFZLEVBQUUsR0FBRztnQkFDakIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsT0FBTyxFQUFFO29CQUNMLFlBQVksRUFBRSxLQUFLO2lCQUN0QjthQUNKO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU07Z0JBQ2hDLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsb0JBQW9CO2dCQUMzQixZQUFZLEVBQUUsQ0FBQztnQkFDZixRQUFRLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUU7b0JBQ0wsWUFBWSxFQUFFLEtBQUs7aUJBQ3RCO2FBQ0o7U0FDSjtLQUNKLENBQUM7cUNBd0VnQixRQUFRO0dBbkViLHdCQUF3QixDQXVRcEM7U0F2UVksd0JBQXdCO3VGQUF4Qix3QkFBd0I7Y0FKcEMsU0FBUzsyQkFDSSwrQkFBK0I7MkRBZ0JsQyxLQUFLO2tCQURYLFNBQVM7bUJBQUMsT0FBTztZQU9YLFNBQVM7a0JBRGYsU0FBUzttQkFBQyxXQUFXO1lBT2YsZUFBZTtrQkFEckIsU0FBUzttQkFBQyxpQkFBaUI7WUFPckIsZUFBZTtrQkFEckIsU0FBUzttQkFBQyxpQkFBaUI7WUFPckIsY0FBYztrQkFEcEIsS0FBSztZQU9DLElBQUk7a0JBRFYsS0FBSztZQU9DLFdBQVc7a0JBRGpCLEtBQUs7WUFPQyxHQUFHO2tCQURULEtBQUs7WUFPQyxHQUFHO2tCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEtleUNvZGUgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RhdGEvYWNjZXNzaWJpbGl0eS1tYW5hZ2VyJztcclxuaW1wb3J0IHsgU21lU2NoZW1hUHJvcGVydHkgfSBmcm9tICcuLi8uLi8uLi9zY2hlbWEvc2NoZW1hLWRlY29yYXRvcic7XHJcbmltcG9ydCB7IFNpbXBsZVByb3BlcnR5U2NoZW1hRmllbGRMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zY2hlbWEvc2NoZW1hLWZpZWxkLWhvc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2NoZW1hUHJpbWl0aXZlVHlwZSB9IGZyb20gJy4uLy4uLy4uL3NjaGVtYS9zY2hlbWEtbW9kZWxzJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkFsZXJ0U2V2ZXJpdHkgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uLWFsZXJ0L3ZhbGlkYXRpb24tYWxlcnQnO1xyXG5pbXBvcnQgeyBTbWVJbnRlcm5hbEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQuY29tcG9uZW50JztcclxuXHJcbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLXNjaGVtYS1kcml2ZW4tZm9ybS10ZW1wbGF0ZS5odG1sJ1xyXG59KVxyXG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4gKi9cclxuZXhwb3J0IGNsYXNzIE51bWJlckZvcm1GaWVsZExvYWRlckNvbXBvbmVudCBleHRlbmRzIFNpbXBsZVByb3BlcnR5U2NoZW1hRmllbGRMb2FkZXJDb21wb25lbnQge1xyXG59XHJcblxyXG4vKipcclxuICogQWNjZXNzaWJsZSBudW1iZXIgZmllbGQgaW1wbGVtZW50YXRpb25cclxuICovXHJcbkBTbWVTY2hlbWFQcm9wZXJ0eSh7XHJcbiAgICB0eXBlOiBTY2hlbWFQcmltaXRpdmVUeXBlLk51bWJlcixcclxuICAgIGZvcm1hdDogJ3RleHRib3gnLFxyXG4gICAgaXNEZWZhdWx0Rm9ybWF0OiB0cnVlLFxyXG4gICAgZGVzY3JpcHRpb246ICdBIHNpbmdsZSBsaW5lIHRleHRib3ggYmluZGluZyB0byBudW1iZXIgZGF0YS4nLFxyXG4gICAgbG9hZGVyQ29tcG9uZW50OiBOdW1iZXJGb3JtRmllbGRMb2FkZXJDb21wb25lbnQsXHJcbiAgICBvcHRpb25Qcm9wZXJ0aWVzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTY2hlbWFQcmltaXRpdmVUeXBlLk51bWJlcixcclxuICAgICAgICAgICAgZm9ybWF0OiAndGV4dGJveCcsXHJcbiAgICAgICAgICAgIG5hbWU6ICdtaW4nLFxyXG4gICAgICAgICAgICBsYWJlbDogJ2FjdHVhbF9zdHJpbmc6TWluJyxcclxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiAwLFxyXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIG11bHRpcGxlbGluZTogZmFsc2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTY2hlbWFQcmltaXRpdmVUeXBlLk51bWJlcixcclxuICAgICAgICAgICAgZm9ybWF0OiAndGV4dGJveCcsXHJcbiAgICAgICAgICAgIG5hbWU6ICdtYXgnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ2FjdHVhbF9zdHJpbmc6TWF4JyxcclxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiAxMDAsXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgbXVsdGlwbGVsaW5lOiBmYWxzZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IFNjaGVtYVByaW1pdGl2ZVR5cGUuTnVtYmVyLFxyXG4gICAgICAgICAgICBmb3JtYXQ6ICd0ZXh0Ym94JyxcclxuICAgICAgICAgICAgbmFtZTogJ3N0ZXAnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ2FjdHVhbF9zdHJpbmc6U3RlcCcsXHJcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogMSxcclxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBtdWx0aXBsZWxpbmU6IGZhbHNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICBdXHJcbn0pXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtZm9ybS1maWVsZFt0eXBlPVwibnVtYmVyXCJdJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE51bWJlckZvcm1GaWVsZENvbXBvbmVudCBleHRlbmRzIFNtZUludGVybmFsRm9ybUZpZWxkQ29tcG9uZW50PG51bWJlcj4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNvdXJjZSBuYW1lIHRvIHVzZSBmb3IgbG9nZ2luZ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGxvZ1NvdXJjZU5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuICdOdW1iZXJGb3JtRmllbGRDb21wb25lbnQnO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGlucHV0IGZyb20gbnVtYmVyIGZvcm0gZmllbGRcclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnKVxyXG4gICAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNvbnRhaW5lciBmb3IgdGhlIGlucHV0IGJveCBhbmQgc3BpbiBidXR0b25zXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpXHJcbiAgICBwdWJsaWMgY29udGFpbmVyOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGluY3JlbWVudCBidXR0b24gVUkgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdpbmNyZW1lbnRCdXR0b24nKVxyXG4gICAgcHVibGljIGluY3JlbWVudEJ1dHRvbjogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBkZWNyZW1lbnQgYnV0dG9uIFVJIGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnZGVjcmVtZW50QnV0dG9uJylcclxuICAgIHB1YmxpYyBkZWNyZW1lbnRCdXR0b246IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBkZXRlcm1pbmUgd2hldGhlciB0byBzaG93IHRoZSBzcGluIGJ1dHRvbi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93U3BpbkJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNpemUgb2YgZWFjaCBtb3ZlbWVudCBvZiB0aGUgc2xpZGVyLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHN0ZXA6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzaXplIG9mIGVhY2ggaW5jcmVtZW50L2RlY3JlbWVudCB2YWx1ZSBvZiB0aGUgc2xpZGVyLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGluY3JlbWVudEJ5OiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgc2xpZGVyXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWluOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWF4aW11bSB2YWx1ZSBvZiB0aGUgc2xpZGVyXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWF4OiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgU2xpZGVyRm9ybUZpZWxkQ29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgICAgIHRoaXMubWluID0gMDtcclxuICAgICAgICAvLyBObyBkZWZhdWx0IG1heGltdW0vc3RlcFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgICAgICAvLyBJZiBpbmNyZW1lbnRCeSBpcyBub3Qgc2V0LCB1c2Ugc3RlcC4gSWYgc3RlcCBpcyBub3Qgc2V0IGRlZmF1bHQgdG8gMSAob25lKVxyXG4gICAgICAgIHRoaXMuaW5jcmVtZW50QnkgPSBNc2Z0U21lLmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuaW5jcmVtZW50QnkpXHJcbiAgICAgICAgICAgID8gTXNmdFNtZS5pc051bGxPclVuZGVmaW5lZCh0aGlzLnN0ZXApID8gMSA6IHRoaXMuc3RlcFxyXG4gICAgICAgICAgICA6IHRoaXMuaW5jcmVtZW50Qnk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGUga2V5ZG93biBldmVudHMgb24gdGhlIG51bWJlciBpbnB1dFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25JbnB1dEtleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgLy8gSW4gTWljcm9zb2Z0IEVkZ2UgYW5kIElFLCBudW1lcmljIGlucHV0cyB3aWxsIHNjcm9sbCB0aGUgcGFnZSB3aGlsZSBpbmNyZW1lbnRpbmcvZGVjcmVtZW50aW5nIHRoZSBudW1iZXIuXHJcbiAgICAgICAgc3dpdGNoICgkZXZlbnQua2V5Q29kZSkge1xyXG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuVXBBcnJvdzoge1xyXG4gICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAvLyBmaXJpbmcgdGhlIGNsaWNrIGV2ZW50IHRvIHRyaWdnZXIgdGhlIGNsaWNrIHN0eWxlIHRvIHJlbmRlclxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbmNyZW1lbnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlRm9jdXNFdmVudCh0aGlzLmluY3JlbWVudEJ1dHRvbiwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZUZvY3VzRXZlbnQodGhpcy5pbmNyZW1lbnRCdXR0b24sIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkRvd25BcnJvdzoge1xyXG4gICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAvLyBmaXJpbmcgdGhlIGNsaWNrIGV2ZW50IHRvIHRyaWdnZXIgdGhlIGNsaWNrIHN0eWxlIHRvIHJlbmRlclxyXG4gICAgICAgICAgICAgICAgdGhpcy5kZWNyZW1lbnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlRm9jdXNFdmVudCh0aGlzLmRlY3JlbWVudEJ1dHRvbiwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZUZvY3VzRXZlbnQodGhpcy5kZWNyZW1lbnRCdXR0b24sIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGVmYXVsdDogeyByZXR1cm47IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmNyZW1lbnRzIHRoZSBjb250cm9scyB2YWx1ZSBieSAxIFwic3RlcFwiXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbmNyZW1lbnQoKSB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gTXNmdFNtZS5pc051bWJlcih0aGlzLnZhbHVlKSA/IHRoaXMudmFsdWUgOiB0aGlzLm1pbiAtIDE7XHJcbiAgICAgICAgdmFsdWUgKz0gdGhpcy5pbmNyZW1lbnRCeTtcclxuICAgICAgICBpZiAodmFsdWUgPiB0aGlzLm1heCkge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMubWF4O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWNyZW1lbnRzIHRoZSBjb250cm9scyB2YWx1ZSBieSAxIFwic3RlcFwiXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWNyZW1lbnQoKSB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gTXNmdFNtZS5pc051bWJlcih0aGlzLnZhbHVlKSA/IHRoaXMudmFsdWUgOiB0aGlzLm1pbiArIDE7XHJcbiAgICAgICAgdmFsdWUgLT0gdGhpcy5pbmNyZW1lbnRCeTtcclxuICAgICAgICBpZiAodmFsdWUgPCB0aGlzLm1pbikge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMubWluO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZnVuY3Rpb25hbGl0eSB0byBmb2N1cyBvbiB0aGUgaW5wdXQgZmllbGRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uSW5wdXRGb2N1cygkZXZlbnQpIHtcclxuICAgICAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50b2dnbGVGb2N1c0V2ZW50KHRoaXMuY29udGFpbmVyLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBmdW5jdGlvbmFsaXR5IHRvIGZvY3VzIG91dCBvbiB0aGUgaW5wdXQgZmllbGRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gJGV2ZW50IHRoZSBmb2N1cyBldmVudCBvYmplY3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uSW5wdXRGb2N1c091dCgkZXZlbnQpIHtcclxuICAgICAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50b2dnbGVGb2N1c0V2ZW50KHRoaXMuY29udGFpbmVyLCBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIHRoZSBpZEJhZyB1c2VkIGJ5IHRoaXMgY29tcG9uZW50IHRvIHN0b3JlIHVuaXF1ZSBlbGVtZW50IGlkcy5cclxuICAgICAqIGlkIHZhbHVlcyB3aWxsIGJlIGFzc2lnbmVkIGJlIHRoZSBAc2VlIEJhc2VDb21wb25lbnQgc3VwZXIgY2xhc3MuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBjcmVhdGVJZEJhZygpOiBNc2Z0U21lLlN0cmluZ01hcDxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBkZXRhaWxzU3BhbjogJydcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgdmFsdWUgdG8gdXNlIHdoZW4gY2xlYXJpbmcgdGhlIGZpZWxkIGJhc2VkIG9uIHRoZSBpbml0aWFsIHZhbHVlIHR5cGVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldENsZWFyVmFsdWUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gTXNmdFNtZS5pc051bGxPclVuZGVmaW5lZCh0aGlzLm1pbikgPyAwIDogdGhpcy5taW47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJmb3JtcyB2YWxpZGF0aW9uIHRoYXQgaXMgaW50ZXJuYWwgdG8gdGhpcyBjb250cm9sXHJcbiAgICAgKiBAcGFyYW0gYyBUaGUgZm9ybSBjb250cm9sIGF0dGFjaGVkIHRvIHRoaXMgaW5zdGFuY2VcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XHJcbiAgICAgICAgLy8gaWYgbm90IHJlcXVpcmVkLCBkb24ndCBwcm9jZXNzIG51bGwgb3IgZW1wdHkgdmFsdWVzIGZvciBmdXJ0aGVyIHZhbGlkYXRpb25cclxuICAgICAgICBpZiAoIXRoaXMucmVxdWlyZWQgJiYgKE1zZnRTbWUuaXNOdWxsT3JXaGl0ZVNwYWNlKGMudmFsdWUpKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gc3VwZXIudmFsaWRhdGUoYyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIU1zZnRTbWUuaXNOdW1iZXIodGhpcy52YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIG5vdEFOdW1iZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkNvbW1vbi5Gb3JtLlZhbGlkYXRpb24uaXNOdW1iZXIuZm9ybWF0LmZvcm1hdCh0aGlzLmZpZWxkTmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFZhbGlkYXRpb25BbGVydFNldmVyaXR5LkVycm9yXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGFuZ3VsYXIncyBtaW4gYW5kIG1heCB2YWxpZGF0b3Igb25seSB3b3JrIHZpYSBjb2RlLiBTbyB3ZSBpbXBsZW1lbnQgdGhlbSBoZXJlLlxyXG4gICAgICAgIGlmICghTXNmdFNtZS5pc051bGxPclVuZGVmaW5lZCh0aGlzLm1pbikgJiYgdGhpcy52YWx1ZSA8IHRoaXMubWluKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9IFZhbGlkYXRvcnMubWluKHRoaXMubWluKShjKTtcclxuICAgICAgICAgICAgaWYgKGVycm9ycykgeyByZXR1cm4gZXJyb3JzOyB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIU1zZnRTbWUuaXNOdWxsT3JVbmRlZmluZWQodGhpcy5tYXgpICYmIHRoaXMudmFsdWUgPiB0aGlzLm1heCkge1xyXG4gICAgICAgICAgICBjb25zdCBlcnJvcnMgPSBWYWxpZGF0b3JzLm1heCh0aGlzLm1heCkoYyk7XHJcbiAgICAgICAgICAgIGlmIChlcnJvcnMpIHsgcmV0dXJuIGVycm9yczsgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFNc2Z0U21lLmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuc3RlcCkpIHtcclxuICAgICAgICAgICAgLy8gSWYgc3RlcCBpcyB1c2VkIGNoZWNrIGlmIHRoZSBjdXJyZW50IHZhbHVlIGZhbGxzIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgdGhlIGxlZ2FsIHZhbHVlc1xyXG4gICAgICAgICAgICBjb25zdCBzYWZlUmVtID0gdGhpcy5nZXRTYWZlUmVtYWluZGVyKCh0aGlzLnZhbHVlIC0gdGhpcy5taW4pLCB0aGlzLnN0ZXApO1xyXG4gICAgICAgICAgICAvLyBSb3VuZCBvZmYgdG8gdGhlIG5lYXJlc3QgaW50ZWdlciwgaGFuZGxlIGFueSBmbG9hdGluZyBwcmVjaXNpb24gZXJyb3JzIHRoYXQgbWF5IG9jY3VyXHJcbiAgICAgICAgICAgIGNvbnN0IHJlbSA9IE1hdGgucm91bmQoKHNhZmVSZW0gKyBOdW1iZXIuRVBTSUxPTikgKiAxMDApIC8gMTAwO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlbSAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBub3RBTXVsdGlwbGVPZlN0ZXA6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQ29tbW9uLkZvcm0uVmFsaWRhdGlvbi5JbGxlZ2FsTnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KHRoaXMuZmllbGROYW1lLCB0aGlzLnN0ZXAsIHRoaXMubWluKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFZhbGlkYXRpb25BbGVydFNldmVyaXR5LkVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLnZhbGlkYXRlKGMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgcmVtYWluZGVyIG9mIGEgZGl2aXNpb24gb3BlcmF0aW9uIGJ5IGNvbnZlcnRpbmcgYW55IGRlY2ltYWxzIHRvIGludGVnZXJzIGZpcnN0XHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIG51bWJlciB0byBiZSBkaXZpZGVkXHJcbiAgICAgKiBAcGFyYW0gZGl2aXNvciBUaGUgZGl2aWRpbmcgbnVtYmVyXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRTYWZlUmVtYWluZGVyKHZhbHVlOiBudW1iZXIsIGRpdmlzb3I6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVEZWNpbWFscyA9ICh2YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJylbMV0gfHwgJycpLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBkaXZpc29yRGVjaW1hbHMgPSAoZGl2aXNvci50b1N0cmluZygpLnNwbGl0KCcuJylbMV0gfHwgJycpLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBtYXhEZWNpbWFscyA9IE1hdGgubWF4KHZhbHVlRGVjaW1hbHMsIGRpdmlzb3JEZWNpbWFscyk7XHJcbiAgICAgICAgY29uc3QgdmFsdWVJbnQgPSBwYXJzZUludCh2YWx1ZS50b0ZpeGVkKG1heERlY2ltYWxzKS5yZXBsYWNlKCcuJywgJycpLCAxMCk7XHJcbiAgICAgICAgY29uc3QgZGl2aXNvckludCA9IHBhcnNlSW50KGRpdmlzb3IudG9GaXhlZChtYXhEZWNpbWFscykucmVwbGFjZSgnLicsICcnKSwgMTApO1xyXG4gICAgICAgIHJldHVybiAodmFsdWVJbnQgJSBkaXZpc29ySW50KSAvIE1hdGgucG93KDEwLCBtYXhEZWNpbWFscyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCB0b2dnbGVzIHRoZSBmb2N1cyBzdGF0ZSBmb3IgcGFzc2VkIGluIFVJIGVsZW1lbnRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudCB0aGUgZWxlbWVudCBmb3IgZm9jdXNpbmdcclxuICAgICAqIEBwYXJhbSBhZGRDbGFzcyBpdCBkZXRlcm1pbmVzIHdoZXRoZXIgdG8gYWRkIG9yIHJlbW92ZSBjbGFzcyBzdGF0ZVxyXG4gICAgICogQHJldHVybnMgdm9pZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgdG9nZ2xlRm9jdXNFdmVudChlbGVtZW50OiBFbGVtZW50UmVmLCBhZGRDbGFzcyA9IHRydWUpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGFkZENsYXNzICYmICFlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lLmluY2x1ZGVzKCdzbWUtZm9jdXNlZCcpKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdzbWUtZm9jdXNlZCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFhZGRDbGFzcyAmJiBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lLmluY2x1ZGVzKCdzbWUtZm9jdXNlZCcpKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdzbWUtZm9jdXNlZCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8c21lLWZvcm0tZmllbGQtbGF5b3V0IFtmb3JtRmllbGRdPVwidGhpc1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJzbWUtZm9ybS1maWVsZC1lZGl0b3JcIj5cclxuICAgIDxzcGFuICpuZ0lmPVwicmVhZG9ubHlcIj57eyB2YWx1ZSB9fTwvc3Bhbj5cclxuICAgIDxkaXYgI2NvbnRhaW5lciAqbmdJZj1cIiFyZWFkb25seVwiIGNsYXNzPVwic21lLW51bWJlci1mb3JtLWZpZWxkLWNvbnRhaW5lclwiPlxyXG4gICAgICA8aW5wdXQgI2lucHV0IHR5cGU9XCJudW1iZXJcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgY2xhc3M9XCJzbWUtaGlkZGVuLWZvY3VzXCIgW2F0dHIucm9sZV09XCJzaG93U3BpbkJ1dHRvbiA/ICdzcGluQnV0dG9uJzogbnVsbFwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW2Rpc2FibGVkXT1cImxvYWRpbmdPckRpc2FibGVkXCIgW21heF09XCJtYXhcIiBbbWluXT1cIm1pblwiIFtzdGVwXT1cInN0ZXBcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtdmFsdWVtYXhdPVwibWF4XCIgIFthdHRyLmFyaWEtdmFsdWVtaW5dPVwibWluXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiIChmb2N1c291dCk9XCJvbklucHV0Rm9jdXNPdXQoJGV2ZW50KVwiIChrZXlkb3duKT1cIm9uSW5wdXRLZXlkb3duKCRldmVudClcIj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJzaG93U3BpbkJ1dHRvblwiIGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2stdiBzbWUtZm9ybS1maWVsZC1udW1iZXItYnV0dG9uLWdyb3VwXCI+XHJcbiAgICAgICAgPGJ1dHRvbiAjaW5jcmVtZW50QnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNtZS1idXR0b24tYXV0by13aWR0aFwiIHRhYmluZGV4PVwiLTFcIiAoY2xpY2spPVwiaW5jcmVtZW50KClcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic21lLWljb24gc21lLWljb24tY2hldnJvblVwU21hbGxcIj48L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiAjZGVjcmVtZW50QnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNtZS1idXR0b24tYXV0by13aWR0aFwiIHRhYmluZGV4PVwiLTFcIiAoY2xpY2spPVwiZGVjcmVtZW50KClcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic21lLWljb24gc21lLWljb24tY2hldnJvbkRvd25TbWFsbFwiPjwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPHNtZS12YWxpZGF0aW9uLWFsZXJ0IFthbGVydF09XCJhbGVydFwiPjwvc21lLXZhbGlkYXRpb24tYWxlcnQ+XHJcbjwvc21lLWZvcm0tZmllbGQtbGF5b3V0PlxyXG4iLCI8c21lLWZvcm0tZmllbGQgI2ZpZWxkIHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cImRhdGFcIlxyXG4gIFtuYW1lXT1cInByb3BlcnR5U2NoZW1hLm5hbWVcIlxyXG4gIFtsYWJlbF09XCJsb2NhbGl6ZShwcm9wZXJ0eVNjaGVtYS5sYWJlbClcIlxyXG4gIFtyZXF1aXJlZF09XCJwcm9wZXJ0eVNjaGVtYS5yZXF1aXJlZFwiXHJcbiAgW2Rlc2NyaXB0aW9uXT1cImxvY2FsaXplKHByb3BlcnR5U2NoZW1hLmRlc2NyaXB0aW9uKVwiXHJcbiAgW3JlYWRvbmx5XT1cIiEhZXZhbEV4cHJlc3Npb24ocHJvcGVydHlTY2hlbWEucmVhZG9ubHlDb25kaXRpb24pXCJcclxuICBbZGlzYWJsZWRdPVwiISEocHJvcGVydHlTY2hlbWEuZGlzYWJsZWRDb25kaXRpb24gJiYgZXZhbEV4cHJlc3Npb24ocHJvcGVydHlTY2hlbWEuZGlzYWJsZWRDb25kaXRpb24pKVwiXHJcbiAgW21pbl09XCJwcm9wZXJ0eVNjaGVtYS5vcHRpb25zICYmIHByb3BlcnR5U2NoZW1hLm9wdGlvbnMubWluXCJcclxuICBbbWF4XT1cInByb3BlcnR5U2NoZW1hLm9wdGlvbnMgJiYgcHJvcGVydHlTY2hlbWEub3B0aW9ucy5tYXhcIlxyXG4gIFtzdGVwXT1cInByb3BlcnR5U2NoZW1hLm9wdGlvbnMgJiYgcHJvcGVydHlTY2hlbWEub3B0aW9ucy5zdGVwXCJcclxuICBbc2hvd1NwaW5CdXR0b25dPVwicHJvcGVydHlTY2hlbWEub3B0aW9ucyAmJiBwcm9wZXJ0eVNjaGVtYS5vcHRpb25zLnNob3dTcGluQnV0dG9uXCJcclxuICBbcGVuZGluZ01lc3NhZ2VdPVwicHJvcGVydHlTY2hlbWEuY3VzdG9tQXN5bmNWYWxpZGF0aW9uICYmIGxvY2FsaXplKHByb3BlcnR5U2NoZW1hLmN1c3RvbUFzeW5jVmFsaWRhdGlvbi5wZW5kaW5nTWVzc2FnZSlcIlxyXG4gIFtjdXN0b21Bc3luY1ZhbGlkYXRlRGlzYWJsZWRdPVwic2hvdWxkQ3VzdG9tQXN5bmNWYWxpZGF0aW9uQmVEaXNhYmxlZCgpXCJcclxuICBbY3VzdG9tQXN5bmNWYWxpZGF0ZURlYm91bmNlVGltZV09XCJwcm9wZXJ0eVNjaGVtYS5jdXN0b21Bc3luY1ZhbGlkYXRpb24gJiYgK3Byb3BlcnR5U2NoZW1hLmN1c3RvbUFzeW5jVmFsaWRhdGlvbi5oYW5kbGVyXCJcclxuICAoY3VzdG9tVmFsaWRhdGUpPVwicmVzb2x2ZUZ1bmN0aW9uKHByb3BlcnR5U2NoZW1hLmN1c3RvbVZhbGlkYXRpb24pKCRldmVudClcIlxyXG4gIChjdXN0b21Bc3luY1ZhbGlkYXRlKT1cInByb3BlcnR5U2NoZW1hLmN1c3RvbUFzeW5jVmFsaWRhdGlvbiAmJiByZXNvbHZlRnVuY3Rpb24ocHJvcGVydHlTY2hlbWEuY3VzdG9tQXN5bmNWYWxpZGF0aW9uLmhhbmRsZXIpKCRldmVudClcIj5cclxuPC9zbWUtZm9ybS1maWVsZD5cclxuIl19
|
|
390
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZvcm0tZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZm9ybS9mb3JtLWZpZWxkL251bWJlci9udW1iZXItZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9mb3JtL2Zvcm0tZmllbGQvbnVtYmVyL251bWJlci1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZm9ybS9mb3JtLWZpZWxkL251bWJlci9udW1iZXItc2NoZW1hLWRyaXZlbi1mb3JtLXRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBaUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7SUNMcEUsNEJBQXVCO0lBQUEsWUFBVztJQUFBLGlCQUFPOzs7SUFBbEIsZUFBVztJQUFYLGtDQUFX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QUFLLEVBQUUsb0JBQW9CO2dCQUMzQixZQUFZLEVBQUUsQ0FBQztnQkFDZixRQUFRLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUU7b0JBQ0wsWUFBWSxFQUFFLEtBQUs7aUJBQ3RCO2FBQ0o7U0FDSjtLQUNKLENBQUM7cUNBd0VnQixRQUFRO0dBbkViLHdCQUF3QixDQXFScEM7U0FyUlksd0JBQXdCO3VGQUF4Qix3QkFBd0I7Y0FKcEMsU0FBUzsyQkFDSSwrQkFBK0I7MkRBZ0JsQyxLQUFLO2tCQURYLFNBQVM7bUJBQUMsT0FBTztZQU9YLFNBQVM7a0JBRGYsU0FBUzttQkFBQyxXQUFXO1lBT2YsZUFBZTtrQkFEckIsU0FBUzttQkFBQyxpQkFBaUI7WUFPckIsZUFBZTtrQkFEckIsU0FBUzttQkFBQyxpQkFBaUI7WUFPckIsY0FBYztrQkFEcEIsS0FBSztZQU9DLElBQUk7a0JBRFYsS0FBSztZQU9DLFdBQVc7a0JBRGpCLEtBQUs7WUFPQyxHQUFHO2tCQURULEtBQUs7WUFPQyxHQUFHO2tCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEtleUNvZGUgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RhdGEvYWNjZXNzaWJpbGl0eS1tYW5hZ2VyJztcclxuaW1wb3J0IHsgU21lU2NoZW1hUHJvcGVydHkgfSBmcm9tICcuLi8uLi8uLi9zY2hlbWEvc2NoZW1hLWRlY29yYXRvcic7XHJcbmltcG9ydCB7IFNpbXBsZVByb3BlcnR5U2NoZW1hRmllbGRMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zY2hlbWEvc2NoZW1hLWZpZWxkLWhvc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2NoZW1hUHJpbWl0aXZlVHlwZSB9IGZyb20gJy4uLy4uLy4uL3NjaGVtYS9zY2hlbWEtbW9kZWxzJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkFsZXJ0U2V2ZXJpdHkgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uLWFsZXJ0L3ZhbGlkYXRpb24tYWxlcnQnO1xyXG5pbXBvcnQgeyBTbWVJbnRlcm5hbEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQuY29tcG9uZW50JztcclxuXHJcbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLXNjaGVtYS1kcml2ZW4tZm9ybS10ZW1wbGF0ZS5odG1sJ1xyXG59KVxyXG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4gKi9cclxuZXhwb3J0IGNsYXNzIE51bWJlckZvcm1GaWVsZExvYWRlckNvbXBvbmVudCBleHRlbmRzIFNpbXBsZVByb3BlcnR5U2NoZW1hRmllbGRMb2FkZXJDb21wb25lbnQge1xyXG59XHJcblxyXG4vKipcclxuICogQWNjZXNzaWJsZSBudW1iZXIgZmllbGQgaW1wbGVtZW50YXRpb25cclxuICovXHJcbkBTbWVTY2hlbWFQcm9wZXJ0eSh7XHJcbiAgICB0eXBlOiBTY2hlbWFQcmltaXRpdmVUeXBlLk51bWJlcixcclxuICAgIGZvcm1hdDogJ3RleHRib3gnLFxyXG4gICAgaXNEZWZhdWx0Rm9ybWF0OiB0cnVlLFxyXG4gICAgZGVzY3JpcHRpb246ICdBIHNpbmdsZSBsaW5lIHRleHRib3ggYmluZGluZyB0byBudW1iZXIgZGF0YS4nLFxyXG4gICAgbG9hZGVyQ29tcG9uZW50OiBOdW1iZXJGb3JtRmllbGRMb2FkZXJDb21wb25lbnQsXHJcbiAgICBvcHRpb25Qcm9wZXJ0aWVzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTY2hlbWFQcmltaXRpdmVUeXBlLk51bWJlcixcclxuICAgICAgICAgICAgZm9ybWF0OiAndGV4dGJveCcsXHJcbiAgICAgICAgICAgIG5hbWU6ICdtaW4nLFxyXG4gICAgICAgICAgICBsYWJlbDogJ2FjdHVhbF9zdHJpbmc6TWluJyxcclxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiAwLFxyXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIG11bHRpcGxlbGluZTogZmFsc2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTY2hlbWFQcmltaXRpdmVUeXBlLk51bWJlcixcclxuICAgICAgICAgICAgZm9ybWF0OiAndGV4dGJveCcsXHJcbiAgICAgICAgICAgIG5hbWU6ICdtYXgnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ2FjdHVhbF9zdHJpbmc6TWF4JyxcclxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiAxMDAsXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgbXVsdGlwbGVsaW5lOiBmYWxzZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IFNjaGVtYVByaW1pdGl2ZVR5cGUuTnVtYmVyLFxyXG4gICAgICAgICAgICBmb3JtYXQ6ICd0ZXh0Ym94JyxcclxuICAgICAgICAgICAgbmFtZTogJ3N0ZXAnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ2FjdHVhbF9zdHJpbmc6U3RlcCcsXHJcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogMSxcclxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBtdWx0aXBsZWxpbmU6IGZhbHNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICBdXHJcbn0pXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtZm9ybS1maWVsZFt0eXBlPVwibnVtYmVyXCJdJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE51bWJlckZvcm1GaWVsZENvbXBvbmVudCBleHRlbmRzIFNtZUludGVybmFsRm9ybUZpZWxkQ29tcG9uZW50PG51bWJlcj4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNvdXJjZSBuYW1lIHRvIHVzZSBmb3IgbG9nZ2luZ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGxvZ1NvdXJjZU5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuICdOdW1iZXJGb3JtRmllbGRDb21wb25lbnQnO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGlucHV0IGZyb20gbnVtYmVyIGZvcm0gZmllbGRcclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnKVxyXG4gICAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNvbnRhaW5lciBmb3IgdGhlIGlucHV0IGJveCBhbmQgc3BpbiBidXR0b25zXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpXHJcbiAgICBwdWJsaWMgY29udGFpbmVyOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGluY3JlbWVudCBidXR0b24gVUkgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdpbmNyZW1lbnRCdXR0b24nKVxyXG4gICAgcHVibGljIGluY3JlbWVudEJ1dHRvbjogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBkZWNyZW1lbnQgYnV0dG9uIFVJIGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnZGVjcmVtZW50QnV0dG9uJylcclxuICAgIHB1YmxpYyBkZWNyZW1lbnRCdXR0b246IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBkZXRlcm1pbmUgd2hldGhlciB0byBzaG93IHRoZSBzcGluIGJ1dHRvbi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93U3BpbkJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNpemUgb2YgZWFjaCBtb3ZlbWVudCBvZiB0aGUgc2xpZGVyLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHN0ZXA6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzaXplIG9mIGVhY2ggaW5jcmVtZW50L2RlY3JlbWVudCB2YWx1ZSBvZiB0aGUgc2xpZGVyLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGluY3JlbWVudEJ5OiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgc2xpZGVyXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWluOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWF4aW11bSB2YWx1ZSBvZiB0aGUgc2xpZGVyXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWF4OiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgU2xpZGVyRm9ybUZpZWxkQ29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgICAgIHRoaXMubWluID0gMDtcclxuICAgICAgICAvLyBObyBkZWZhdWx0IG1heGltdW0vc3RlcFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgICAgICAvLyBJZiBpbmNyZW1lbnRCeSBpcyBub3Qgc2V0LCB1c2Ugc3RlcC4gSWYgc3RlcCBpcyBub3Qgc2V0IGRlZmF1bHQgdG8gMSAob25lKVxyXG4gICAgICAgIHRoaXMuaW5jcmVtZW50QnkgPSBNc2Z0U21lLmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuaW5jcmVtZW50QnkpXHJcbiAgICAgICAgICAgID8gTXNmdFNtZS5pc051bGxPclVuZGVmaW5lZCh0aGlzLnN0ZXApID8gMSA6IHRoaXMuc3RlcFxyXG4gICAgICAgICAgICA6IHRoaXMuaW5jcmVtZW50Qnk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXR0ZXIgYXJpYSBsYWJlbCBpbmNyZWFzZSBmb3Igc3BpbiBidXR0b24gaW5jcmVhc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgYXJpYUxhYmVsSW5jcmVhc2UoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkZvcm0uU3BpbkJ1dHRvbi5pbmNyZWFzZS5mb3JtYXQodGhpcy5pbmNyZW1lbnRCeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXR0ZXIgYXJpYSBsYWJlbCBpbmNyZWFzZSBmb3Igc3BpbiBidXR0b24gZGVjcmVhc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgYXJpYUxhYmVsRGVjcmVhc2UoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkZvcm0uU3BpbkJ1dHRvbi5kZWNyZWFzZS5mb3JtYXQodGhpcy5pbmNyZW1lbnRCeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGUga2V5ZG93biBldmVudHMgb24gdGhlIG51bWJlciBpbnB1dFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25JbnB1dEtleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgLy8gSW4gTWljcm9zb2Z0IEVkZ2UgYW5kIElFLCBudW1lcmljIGlucHV0cyB3aWxsIHNjcm9sbCB0aGUgcGFnZSB3aGlsZSBpbmNyZW1lbnRpbmcvZGVjcmVtZW50aW5nIHRoZSBudW1iZXIuXHJcbiAgICAgICAgc3dpdGNoICgkZXZlbnQua2V5Q29kZSkge1xyXG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuVXBBcnJvdzoge1xyXG4gICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAvLyBmaXJpbmcgdGhlIGNsaWNrIGV2ZW50IHRvIHRyaWdnZXIgdGhlIGNsaWNrIHN0eWxlIHRvIHJlbmRlclxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbmNyZW1lbnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlRm9jdXNFdmVudCh0aGlzLmluY3JlbWVudEJ1dHRvbiwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZUZvY3VzRXZlbnQodGhpcy5pbmNyZW1lbnRCdXR0b24sIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkRvd25BcnJvdzoge1xyXG4gICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAvLyBmaXJpbmcgdGhlIGNsaWNrIGV2ZW50IHRvIHRyaWdnZXIgdGhlIGNsaWNrIHN0eWxlIHRvIHJlbmRlclxyXG4gICAgICAgICAgICAgICAgdGhpcy5kZWNyZW1lbnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlRm9jdXNFdmVudCh0aGlzLmRlY3JlbWVudEJ1dHRvbiwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZUZvY3VzRXZlbnQodGhpcy5kZWNyZW1lbnRCdXR0b24sIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGVmYXVsdDogeyByZXR1cm47IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmNyZW1lbnRzIHRoZSBjb250cm9scyB2YWx1ZSBieSAxIFwic3RlcFwiXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbmNyZW1lbnQoKSB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gTXNmdFNtZS5pc051bWJlcih0aGlzLnZhbHVlKSA/IHRoaXMudmFsdWUgOiB0aGlzLm1pbiAtIDE7XHJcbiAgICAgICAgdmFsdWUgKz0gdGhpcy5pbmNyZW1lbnRCeTtcclxuICAgICAgICBpZiAodmFsdWUgPiB0aGlzLm1heCkge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMubWF4O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWNyZW1lbnRzIHRoZSBjb250cm9scyB2YWx1ZSBieSAxIFwic3RlcFwiXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWNyZW1lbnQoKSB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gTXNmdFNtZS5pc051bWJlcih0aGlzLnZhbHVlKSA/IHRoaXMudmFsdWUgOiB0aGlzLm1pbiArIDE7XHJcbiAgICAgICAgdmFsdWUgLT0gdGhpcy5pbmNyZW1lbnRCeTtcclxuICAgICAgICBpZiAodmFsdWUgPCB0aGlzLm1pbikge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMubWluO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZnVuY3Rpb25hbGl0eSB0byBmb2N1cyBvbiB0aGUgaW5wdXQgZmllbGRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uSW5wdXRGb2N1cygkZXZlbnQpIHtcclxuICAgICAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50b2dnbGVGb2N1c0V2ZW50KHRoaXMuY29udGFpbmVyLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBmdW5jdGlvbmFsaXR5IHRvIGZvY3VzIG91dCBvbiB0aGUgaW5wdXQgZmllbGRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gJGV2ZW50IHRoZSBmb2N1cyBldmVudCBvYmplY3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uSW5wdXRGb2N1c091dCgkZXZlbnQpIHtcclxuICAgICAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50b2dnbGVGb2N1c0V2ZW50KHRoaXMuY29udGFpbmVyLCBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIHRoZSBpZEJhZyB1c2VkIGJ5IHRoaXMgY29tcG9uZW50IHRvIHN0b3JlIHVuaXF1ZSBlbGVtZW50IGlkcy5cclxuICAgICAqIGlkIHZhbHVlcyB3aWxsIGJlIGFzc2lnbmVkIGJlIHRoZSBAc2VlIEJhc2VDb21wb25lbnQgc3VwZXIgY2xhc3MuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBjcmVhdGVJZEJhZygpOiBNc2Z0U21lLlN0cmluZ01hcDxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBkZXRhaWxzU3BhbjogJydcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgdmFsdWUgdG8gdXNlIHdoZW4gY2xlYXJpbmcgdGhlIGZpZWxkIGJhc2VkIG9uIHRoZSBpbml0aWFsIHZhbHVlIHR5cGVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldENsZWFyVmFsdWUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gTXNmdFNtZS5pc051bGxPclVuZGVmaW5lZCh0aGlzLm1pbikgPyAwIDogdGhpcy5taW47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJmb3JtcyB2YWxpZGF0aW9uIHRoYXQgaXMgaW50ZXJuYWwgdG8gdGhpcyBjb250cm9sXHJcbiAgICAgKiBAcGFyYW0gYyBUaGUgZm9ybSBjb250cm9sIGF0dGFjaGVkIHRvIHRoaXMgaW5zdGFuY2VcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XHJcbiAgICAgICAgLy8gaWYgbm90IHJlcXVpcmVkLCBkb24ndCBwcm9jZXNzIG51bGwgb3IgZW1wdHkgdmFsdWVzIGZvciBmdXJ0aGVyIHZhbGlkYXRpb25cclxuICAgICAgICBpZiAoIXRoaXMucmVxdWlyZWQgJiYgKE1zZnRTbWUuaXNOdWxsT3JXaGl0ZVNwYWNlKGMudmFsdWUpKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gc3VwZXIudmFsaWRhdGUoYyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIU1zZnRTbWUuaXNOdW1iZXIodGhpcy52YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIG5vdEFOdW1iZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkNvbW1vbi5Gb3JtLlZhbGlkYXRpb24uaXNOdW1iZXIuZm9ybWF0LmZvcm1hdCh0aGlzLmZpZWxkTmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFZhbGlkYXRpb25BbGVydFNldmVyaXR5LkVycm9yXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGFuZ3VsYXIncyBtaW4gYW5kIG1heCB2YWxpZGF0b3Igb25seSB3b3JrIHZpYSBjb2RlLiBTbyB3ZSBpbXBsZW1lbnQgdGhlbSBoZXJlLlxyXG4gICAgICAgIGlmICghTXNmdFNtZS5pc051bGxPclVuZGVmaW5lZCh0aGlzLm1pbikgJiYgdGhpcy52YWx1ZSA8IHRoaXMubWluKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9IFZhbGlkYXRvcnMubWluKHRoaXMubWluKShjKTtcclxuICAgICAgICAgICAgaWYgKGVycm9ycykgeyByZXR1cm4gZXJyb3JzOyB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIU1zZnRTbWUuaXNOdWxsT3JVbmRlZmluZWQodGhpcy5tYXgpICYmIHRoaXMudmFsdWUgPiB0aGlzLm1heCkge1xyXG4gICAgICAgICAgICBjb25zdCBlcnJvcnMgPSBWYWxpZGF0b3JzLm1heCh0aGlzLm1heCkoYyk7XHJcbiAgICAgICAgICAgIGlmIChlcnJvcnMpIHsgcmV0dXJuIGVycm9yczsgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFNc2Z0U21lLmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuc3RlcCkpIHtcclxuICAgICAgICAgICAgLy8gSWYgc3RlcCBpcyB1c2VkIGNoZWNrIGlmIHRoZSBjdXJyZW50IHZhbHVlIGZhbGxzIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgdGhlIGxlZ2FsIHZhbHVlc1xyXG4gICAgICAgICAgICBjb25zdCBzYWZlUmVtID0gdGhpcy5nZXRTYWZlUmVtYWluZGVyKCh0aGlzLnZhbHVlIC0gdGhpcy5taW4pLCB0aGlzLnN0ZXApO1xyXG4gICAgICAgICAgICAvLyBSb3VuZCBvZmYgdG8gdGhlIG5lYXJlc3QgaW50ZWdlciwgaGFuZGxlIGFueSBmbG9hdGluZyBwcmVjaXNpb24gZXJyb3JzIHRoYXQgbWF5IG9jY3VyXHJcbiAgICAgICAgICAgIGNvbnN0IHJlbSA9IE1hdGgucm91bmQoKHNhZmVSZW0gKyBOdW1iZXIuRVBTSUxPTikgKiAxMDApIC8gMTAwO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlbSAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBub3RBTXVsdGlwbGVPZlN0ZXA6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQ29tbW9uLkZvcm0uVmFsaWRhdGlvbi5JbGxlZ2FsTnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KHRoaXMuZmllbGROYW1lLCB0aGlzLnN0ZXAsIHRoaXMubWluKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFZhbGlkYXRpb25BbGVydFNldmVyaXR5LkVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLnZhbGlkYXRlKGMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgcmVtYWluZGVyIG9mIGEgZGl2aXNpb24gb3BlcmF0aW9uIGJ5IGNvbnZlcnRpbmcgYW55IGRlY2ltYWxzIHRvIGludGVnZXJzIGZpcnN0XHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIG51bWJlciB0byBiZSBkaXZpZGVkXHJcbiAgICAgKiBAcGFyYW0gZGl2aXNvciBUaGUgZGl2aWRpbmcgbnVtYmVyXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRTYWZlUmVtYWluZGVyKHZhbHVlOiBudW1iZXIsIGRpdmlzb3I6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVEZWNpbWFscyA9ICh2YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJylbMV0gfHwgJycpLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBkaXZpc29yRGVjaW1hbHMgPSAoZGl2aXNvci50b1N0cmluZygpLnNwbGl0KCcuJylbMV0gfHwgJycpLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBtYXhEZWNpbWFscyA9IE1hdGgubWF4KHZhbHVlRGVjaW1hbHMsIGRpdmlzb3JEZWNpbWFscyk7XHJcbiAgICAgICAgY29uc3QgdmFsdWVJbnQgPSBwYXJzZUludCh2YWx1ZS50b0ZpeGVkKG1heERlY2ltYWxzKS5yZXBsYWNlKCcuJywgJycpLCAxMCk7XHJcbiAgICAgICAgY29uc3QgZGl2aXNvckludCA9IHBhcnNlSW50KGRpdmlzb3IudG9GaXhlZChtYXhEZWNpbWFscykucmVwbGFjZSgnLicsICcnKSwgMTApO1xyXG4gICAgICAgIHJldHVybiAodmFsdWVJbnQgJSBkaXZpc29ySW50KSAvIE1hdGgucG93KDEwLCBtYXhEZWNpbWFscyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCB0b2dnbGVzIHRoZSBmb2N1cyBzdGF0ZSBmb3IgcGFzc2VkIGluIFVJIGVsZW1lbnRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudCB0aGUgZWxlbWVudCBmb3IgZm9jdXNpbmdcclxuICAgICAqIEBwYXJhbSBhZGRDbGFzcyBpdCBkZXRlcm1pbmVzIHdoZXRoZXIgdG8gYWRkIG9yIHJlbW92ZSBjbGFzcyBzdGF0ZVxyXG4gICAgICogQHJldHVybnMgdm9pZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgdG9nZ2xlRm9jdXNFdmVudChlbGVtZW50OiBFbGVtZW50UmVmLCBhZGRDbGFzcyA9IHRydWUpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGFkZENsYXNzICYmICFlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lLmluY2x1ZGVzKCdzbWUtZm9jdXNlZCcpKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdzbWUtZm9jdXNlZCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFhZGRDbGFzcyAmJiBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lLmluY2x1ZGVzKCdzbWUtZm9jdXNlZCcpKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdzbWUtZm9jdXNlZCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8c21lLWZvcm0tZmllbGQtbGF5b3V0IFtmb3JtRmllbGRdPVwidGhpc1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJzbWUtZm9ybS1maWVsZC1lZGl0b3JcIj5cclxuICAgIDxzcGFuICpuZ0lmPVwicmVhZG9ubHlcIj57eyB2YWx1ZSB9fTwvc3Bhbj5cclxuICAgIDxkaXYgI2NvbnRhaW5lciAqbmdJZj1cIiFyZWFkb25seVwiIGNsYXNzPVwic21lLW51bWJlci1mb3JtLWZpZWxkLWNvbnRhaW5lclwiPlxyXG4gICAgICA8aW5wdXQgI2lucHV0IHR5cGU9XCJudW1iZXJcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgY2xhc3M9XCJzbWUtaGlkZGVuLWZvY3VzXCIgW2F0dHIucm9sZV09XCJzaG93U3BpbkJ1dHRvbiA/ICdzcGluYnV0dG9uJzogbnVsbFwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW2Rpc2FibGVkXT1cImxvYWRpbmdPckRpc2FibGVkXCIgW21heF09XCJtYXhcIiBbbWluXT1cIm1pblwiIFtzdGVwXT1cInN0ZXBcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtdmFsdWVtYXhdPVwibWF4XCIgIFthdHRyLmFyaWEtdmFsdWVtaW5dPVwibWluXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiIChmb2N1c291dCk9XCJvbklucHV0Rm9jdXNPdXQoJGV2ZW50KVwiIChrZXlkb3duKT1cIm9uSW5wdXRLZXlkb3duKCRldmVudClcIj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJzaG93U3BpbkJ1dHRvblwiIGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2stdiBzbWUtZm9ybS1maWVsZC1udW1iZXItYnV0dG9uLWdyb3VwXCI+XHJcbiAgICAgICAgPGJ1dHRvbiAjaW5jcmVtZW50QnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNtZS1idXR0b24tYXV0by13aWR0aFwiIHRhYmluZGV4PVwiLTFcIiAoY2xpY2spPVwiaW5jcmVtZW50KClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbEluY3JlYXNlXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLWNoZXZyb25VcFNtYWxsXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gI2RlY3JlbWVudEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzbWUtYnV0dG9uLWF1dG8td2lkdGhcIiB0YWJpbmRleD1cIi0xXCIgKGNsaWNrKT1cImRlY3JlbWVudCgpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxEZWNyZWFzZVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtaWNvbiBzbWUtaWNvbi1jaGV2cm9uRG93blNtYWxsXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8c21lLXZhbGlkYXRpb24tYWxlcnQgW2FsZXJ0XT1cImFsZXJ0XCI+PC9zbWUtdmFsaWRhdGlvbi1hbGVydD5cclxuPC9zbWUtZm9ybS1maWVsZC1sYXlvdXQ+XHJcbiIsIjxzbWUtZm9ybS1maWVsZCAjZmllbGQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwiZGF0YVwiXHJcbiAgW25hbWVdPVwicHJvcGVydHlTY2hlbWEubmFtZVwiXHJcbiAgW2xhYmVsXT1cImxvY2FsaXplKHByb3BlcnR5U2NoZW1hLmxhYmVsKVwiXHJcbiAgW3JlcXVpcmVkXT1cInByb3BlcnR5U2NoZW1hLnJlcXVpcmVkXCJcclxuICBbZGVzY3JpcHRpb25dPVwibG9jYWxpemUocHJvcGVydHlTY2hlbWEuZGVzY3JpcHRpb24pXCJcclxuICBbcmVhZG9ubHldPVwiISFldmFsRXhwcmVzc2lvbihwcm9wZXJ0eVNjaGVtYS5yZWFkb25seUNvbmRpdGlvbilcIlxyXG4gIFtkaXNhYmxlZF09XCIhIShwcm9wZXJ0eVNjaGVtYS5kaXNhYmxlZENvbmRpdGlvbiAmJiBldmFsRXhwcmVzc2lvbihwcm9wZXJ0eVNjaGVtYS5kaXNhYmxlZENvbmRpdGlvbikpXCJcclxuICBbbWluXT1cInByb3BlcnR5U2NoZW1hLm9wdGlvbnMgJiYgcHJvcGVydHlTY2hlbWEub3B0aW9ucy5taW5cIlxyXG4gIFttYXhdPVwicHJvcGVydHlTY2hlbWEub3B0aW9ucyAmJiBwcm9wZXJ0eVNjaGVtYS5vcHRpb25zLm1heFwiXHJcbiAgW3N0ZXBdPVwicHJvcGVydHlTY2hlbWEub3B0aW9ucyAmJiBwcm9wZXJ0eVNjaGVtYS5vcHRpb25zLnN0ZXBcIlxyXG4gIFtzaG93U3BpbkJ1dHRvbl09XCJwcm9wZXJ0eVNjaGVtYS5vcHRpb25zICYmIHByb3BlcnR5U2NoZW1hLm9wdGlvbnMuc2hvd1NwaW5CdXR0b25cIlxyXG4gIFtwZW5kaW5nTWVzc2FnZV09XCJwcm9wZXJ0eVNjaGVtYS5jdXN0b21Bc3luY1ZhbGlkYXRpb24gJiYgbG9jYWxpemUocHJvcGVydHlTY2hlbWEuY3VzdG9tQXN5bmNWYWxpZGF0aW9uLnBlbmRpbmdNZXNzYWdlKVwiXHJcbiAgW2N1c3RvbUFzeW5jVmFsaWRhdGVEaXNhYmxlZF09XCJzaG91bGRDdXN0b21Bc3luY1ZhbGlkYXRpb25CZURpc2FibGVkKClcIlxyXG4gIFtjdXN0b21Bc3luY1ZhbGlkYXRlRGVib3VuY2VUaW1lXT1cInByb3BlcnR5U2NoZW1hLmN1c3RvbUFzeW5jVmFsaWRhdGlvbiAmJiArcHJvcGVydHlTY2hlbWEuY3VzdG9tQXN5bmNWYWxpZGF0aW9uLmhhbmRsZXJcIlxyXG4gIChjdXN0b21WYWxpZGF0ZSk9XCJyZXNvbHZlRnVuY3Rpb24ocHJvcGVydHlTY2hlbWEuY3VzdG9tVmFsaWRhdGlvbikoJGV2ZW50KVwiXHJcbiAgKGN1c3RvbUFzeW5jVmFsaWRhdGUpPVwicHJvcGVydHlTY2hlbWEuY3VzdG9tQXN5bmNWYWxpZGF0aW9uICYmIHJlc29sdmVGdW5jdGlvbihwcm9wZXJ0eVNjaGVtYS5jdXN0b21Bc3luY1ZhbGlkYXRpb24uaGFuZGxlcikoJGV2ZW50KVwiPlxyXG48L3NtZS1mb3JtLWZpZWxkPlxyXG4iXX0=
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { FormFieldAccessibilityManagerBaseService } from '../form-field-accessibility-manager-base.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../form-field-accessibility-manager-base.service";
|
|
5
|
+
export class OrderedListFormFieldAccessibilityManagerService {
|
|
6
|
+
constructor(formFieldAccessibilityManagerBaseService) {
|
|
7
|
+
this.formFieldAccessibilityManagerBaseService = formFieldAccessibilityManagerBaseService;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* It handles the focus when deleting an item from the list.
|
|
11
|
+
* @param value the value for the list.
|
|
12
|
+
* @param addButton the element reference for the add button.
|
|
13
|
+
* @param hostElement the element reference for the host element.
|
|
14
|
+
* @returns void
|
|
15
|
+
*/
|
|
16
|
+
delete(value, addButton, hostElement) {
|
|
17
|
+
this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* It handles the focus when adding an item to the list.
|
|
21
|
+
* @param value the value for the list.
|
|
22
|
+
* @param addButton the element reference for the add button.
|
|
23
|
+
* @param hostElement the element reference for the host element.
|
|
24
|
+
* @returns void
|
|
25
|
+
*/
|
|
26
|
+
add(value, addButton, hostElement) {
|
|
27
|
+
this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement, false);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* It handles the focus when promoting an item in the list.
|
|
31
|
+
* @param hostElement The element reference for the host element.
|
|
32
|
+
* @param index the current index.
|
|
33
|
+
*/
|
|
34
|
+
promote(value, hostElement, buttonId) {
|
|
35
|
+
this.formFieldAccessibilityManagerBaseService.deferredFocusOnTargetBySelector(value, hostElement, buttonId);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* It handles the focus when demoting an item in the list.
|
|
39
|
+
* @param hostElement The element reference for the host element.
|
|
40
|
+
* @param index the current index.
|
|
41
|
+
*/
|
|
42
|
+
demote(value, hostElement, buttonId) {
|
|
43
|
+
this.formFieldAccessibilityManagerBaseService.deferredFocusOnTargetBySelector(value, hostElement, buttonId);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** @nocollapse */ OrderedListFormFieldAccessibilityManagerService.ɵfac = function OrderedListFormFieldAccessibilityManagerService_Factory(t) { return new (t || OrderedListFormFieldAccessibilityManagerService)(i0.ɵɵinject(i1.FormFieldAccessibilityManagerBaseService)); };
|
|
47
|
+
/** @nocollapse */ OrderedListFormFieldAccessibilityManagerService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: OrderedListFormFieldAccessibilityManagerService, factory: OrderedListFormFieldAccessibilityManagerService.ɵfac, providedIn: 'root' });
|
|
48
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OrderedListFormFieldAccessibilityManagerService, [{
|
|
49
|
+
type: Injectable,
|
|
50
|
+
args: [{
|
|
51
|
+
providedIn: 'root'
|
|
52
|
+
}]
|
|
53
|
+
}], function () { return [{ type: i1.FormFieldAccessibilityManagerBaseService }]; }, null); })();
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJlZC1saXN0LWZvcm0tZmllbGQtYWNjZXNzaWJpbGl0eS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9mb3JtL2Zvcm0tZmllbGQvb3JkZXJlZC1saXN0L29yZGVyZWQtbGlzdC1mb3JtLWZpZWxkLWFjY2Vzc2liaWxpdHktbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sa0RBQWtELENBQUM7OztBQUs1RyxNQUFNLE9BQU8sK0NBQStDO0lBQ3hELFlBQXNCLHdDQUFrRjtRQUFsRiw2Q0FBd0MsR0FBeEMsd0NBQXdDLENBQTBDO0lBQUcsQ0FBQztJQUM1Rzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsS0FBWSxFQUFFLFNBQXFCLEVBQUUsV0FBdUI7UUFDdEUsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLHlDQUF5QyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEdBQUcsQ0FBQyxLQUFZLEVBQUUsU0FBcUIsRUFBRSxXQUF1QjtRQUNuRSxJQUFJLENBQUMsd0NBQXdDLENBQUMseUNBQXlDLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEksQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxPQUFPLENBQUMsS0FBWSxFQUFFLFdBQXVCLEVBQUUsUUFBZ0I7UUFDbEUsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLCtCQUErQixDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsS0FBWSxFQUFFLFdBQXVCLEVBQUUsUUFBZ0I7UUFDakUsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLCtCQUErQixDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEgsQ0FBQzs7aUtBeENRLCtDQUErQztvSUFBL0MsK0NBQStDLFdBQS9DLCtDQUErQyxtQkFGOUMsTUFBTTt1RkFFUCwrQ0FBK0M7Y0FIM0QsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRBY2Nlc3NpYmlsaXR5TWFuYWdlckJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vZm9ybS1maWVsZC1hY2Nlc3NpYmlsaXR5LW1hbmFnZXItYmFzZS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE9yZGVyZWRMaXN0Rm9ybUZpZWxkQWNjZXNzaWJpbGl0eU1hbmFnZXJTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBmb3JtRmllbGRBY2Nlc3NpYmlsaXR5TWFuYWdlckJhc2VTZXJ2aWNlOiBGb3JtRmllbGRBY2Nlc3NpYmlsaXR5TWFuYWdlckJhc2VTZXJ2aWNlKSB7fVxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBoYW5kbGVzIHRoZSBmb2N1cyB3aGVuIGRlbGV0aW5nIGFuIGl0ZW0gZnJvbSB0aGUgbGlzdC5cclxuICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgZm9yIHRoZSBsaXN0LlxyXG4gICAgICogQHBhcmFtIGFkZEJ1dHRvbiB0aGUgZWxlbWVudCByZWZlcmVuY2UgZm9yIHRoZSBhZGQgYnV0dG9uLlxyXG4gICAgICogQHBhcmFtIGhvc3RFbGVtZW50IHRoZSBlbGVtZW50IHJlZmVyZW5jZSBmb3IgdGhlIGhvc3QgZWxlbWVudC5cclxuICAgICAqIEByZXR1cm5zIHZvaWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlbGV0ZSh2YWx1ZTogYW55W10sIGFkZEJ1dHRvbjogRWxlbWVudFJlZiwgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1GaWVsZEFjY2Vzc2liaWxpdHlNYW5hZ2VyQmFzZVNlcnZpY2UubGlzdEZvcm1GaWVsZEZvY3VzSGFuZGxlck9uS2V5Ym9hcmRBY3Rpb24odmFsdWUsIGFkZEJ1dHRvbiwgaG9zdEVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgaGFuZGxlcyB0aGUgZm9jdXMgd2hlbiBhZGRpbmcgYW4gaXRlbSB0byB0aGUgbGlzdC5cclxuICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgZm9yIHRoZSBsaXN0LlxyXG4gICAgICogQHBhcmFtIGFkZEJ1dHRvbiB0aGUgZWxlbWVudCByZWZlcmVuY2UgZm9yIHRoZSBhZGQgYnV0dG9uLlxyXG4gICAgICogQHBhcmFtIGhvc3RFbGVtZW50IHRoZSBlbGVtZW50IHJlZmVyZW5jZSBmb3IgdGhlIGhvc3QgZWxlbWVudC5cclxuICAgICAqIEByZXR1cm5zIHZvaWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZCh2YWx1ZTogYW55W10sIGFkZEJ1dHRvbjogRWxlbWVudFJlZiwgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1GaWVsZEFjY2Vzc2liaWxpdHlNYW5hZ2VyQmFzZVNlcnZpY2UubGlzdEZvcm1GaWVsZEZvY3VzSGFuZGxlck9uS2V5Ym9hcmRBY3Rpb24odmFsdWUsIGFkZEJ1dHRvbiwgaG9zdEVsZW1lbnQsIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGhhbmRsZXMgdGhlIGZvY3VzIHdoZW4gcHJvbW90aW5nIGFuIGl0ZW0gaW4gdGhlIGxpc3QuXHJcbiAgICAgKiBAcGFyYW0gaG9zdEVsZW1lbnQgVGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZvciB0aGUgaG9zdCBlbGVtZW50LlxyXG4gICAgICogQHBhcmFtIGluZGV4IHRoZSBjdXJyZW50IGluZGV4LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcHJvbW90ZSh2YWx1ZTogYW55W10sIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLCBidXR0b25JZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtRmllbGRBY2Nlc3NpYmlsaXR5TWFuYWdlckJhc2VTZXJ2aWNlLmRlZmVycmVkRm9jdXNPblRhcmdldEJ5U2VsZWN0b3IodmFsdWUsIGhvc3RFbGVtZW50LCBidXR0b25JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBoYW5kbGVzIHRoZSBmb2N1cyB3aGVuIGRlbW90aW5nIGFuIGl0ZW0gaW4gdGhlIGxpc3QuXHJcbiAgICAgKiBAcGFyYW0gaG9zdEVsZW1lbnQgVGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZvciB0aGUgaG9zdCBlbGVtZW50LlxyXG4gICAgICogQHBhcmFtIGluZGV4IHRoZSBjdXJyZW50IGluZGV4LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVtb3RlKHZhbHVlOiBhbnlbXSwgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYsIGJ1dHRvbklkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1GaWVsZEFjY2Vzc2liaWxpdHlNYW5hZ2VyQmFzZVNlcnZpY2UuZGVmZXJyZWRGb2N1c09uVGFyZ2V0QnlTZWxlY3Rvcih2YWx1ZSwgaG9zdEVsZW1lbnQsIGJ1dHRvbklkKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|