@fundamental-ngx/core 0.43.0-rc.2 → 0.43.0-rc.21
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/carousel/carousel.component.d.ts +4 -2
- package/dialog/dialog-container/dialog-container.component.d.ts +4 -2
- package/esm2020/action-bar/action-bar-actions/action-bar-actions.directive.mjs +3 -3
- package/esm2020/action-bar/action-bar-back/action-bar-back.directive.mjs +3 -3
- package/esm2020/action-bar/action-bar-description/action-bar-description.directive.mjs +3 -3
- package/esm2020/action-bar/action-bar-header/action-bar-header.directive.mjs +3 -3
- package/esm2020/action-bar/action-bar-mobile/action-bar-mobile.directive.mjs +3 -3
- package/esm2020/action-bar/action-bar-title/action-bar-title.component.mjs +3 -3
- package/esm2020/action-bar/action-bar.component.mjs +3 -3
- package/esm2020/action-bar/action-bar.module.mjs +4 -4
- package/esm2020/action-sheet/action-sheet-body/action-sheet-body.component.mjs +3 -3
- package/esm2020/action-sheet/action-sheet-control/action-sheet-control.component.mjs +3 -3
- package/esm2020/action-sheet/action-sheet-item/action-sheet-item.component.mjs +3 -3
- package/esm2020/action-sheet/action-sheet-mobile/action-sheet-mobile.component.mjs +3 -3
- package/esm2020/action-sheet/action-sheet-mobile/action-sheet-mobile.module.mjs +4 -4
- package/esm2020/action-sheet/action-sheet.component.mjs +3 -3
- package/esm2020/action-sheet/action-sheet.module.mjs +4 -4
- package/esm2020/action-sheet/deprecated-action-sheet-compact.directive.mjs +3 -3
- package/esm2020/alert/alert-service/alert.service.mjs +3 -3
- package/esm2020/alert/alert-utils/alert-container.component.mjs +3 -3
- package/esm2020/alert/alert.component.mjs +3 -3
- package/esm2020/alert/alert.module.mjs +4 -4
- package/esm2020/avatar/avatar.component.mjs +3 -3
- package/esm2020/avatar/avatar.module.mjs +4 -4
- package/esm2020/avatar-group/avatar-group.component.mjs +3 -3
- package/esm2020/avatar-group/avatar-group.module.mjs +4 -4
- package/esm2020/avatar-group/directives/avatar-group-focusable-avatar.directive.mjs +3 -3
- package/esm2020/avatar-group/directives/avatar-group-item.directive.mjs +3 -3
- package/esm2020/avatar-group/directives/avatar-group-overflow-body.directive.mjs +3 -3
- package/esm2020/avatar-group/directives/avatar-group-overflow-button-text.directive.mjs +3 -3
- package/esm2020/avatar-group/directives/avatar-group-overflow-button.directive.mjs +3 -3
- package/esm2020/avatar-group/directives/avatar-group-overflow-item.directive.mjs +3 -3
- package/esm2020/avatar-group/directives/avatar-group-popover-control.directive.mjs +3 -3
- package/esm2020/bar/bar.component.mjs +3 -3
- package/esm2020/bar/bar.module.mjs +4 -4
- package/esm2020/bar/button-bar/button-bar.component.mjs +3 -3
- package/esm2020/bar/deprecated-bar-button-content-density.directive.mjs +3 -3
- package/esm2020/bar/deprecated-bar-content-density.directive.mjs +3 -3
- package/esm2020/bar/directives/bar-element.directive.mjs +3 -3
- package/esm2020/bar/directives/bar-left.directive.mjs +3 -3
- package/esm2020/bar/directives/bar-middle.directive.mjs +3 -3
- package/esm2020/bar/directives/bar-right.directive.mjs +3 -3
- package/esm2020/breadcrumb/breadcrumb-item.component.mjs +3 -3
- package/esm2020/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2020/breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2020/breadcrumb/deprecated-breadcrumbs-compact.directive.mjs +3 -3
- package/esm2020/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.mjs +3 -3
- package/esm2020/busy-indicator/busy-indicator.component.mjs +3 -3
- package/esm2020/busy-indicator/busy-indicator.module.mjs +4 -4
- package/esm2020/button/base-button.mjs +3 -3
- package/esm2020/button/button.component.mjs +3 -3
- package/esm2020/button/button.module.mjs +4 -4
- package/esm2020/button/deprecated-button-content-density.directive.mjs +3 -3
- package/esm2020/calendar/calendar-directives.mjs +3 -3
- package/esm2020/calendar/calendar-header/calendar-header.component.mjs +3 -3
- package/esm2020/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.mjs +3 -3
- package/esm2020/calendar/calendar-views/calendar-day-view/calendar-day-view.component.mjs +3 -3
- package/esm2020/calendar/calendar-views/calendar-month-view/calendar-month-view.component.mjs +3 -3
- package/esm2020/calendar/calendar-views/calendar-year-view/calendar-year-view.component.mjs +3 -3
- package/esm2020/calendar/calendar.component.mjs +3 -3
- package/esm2020/calendar/calendar.module.mjs +4 -4
- package/esm2020/calendar/calendar.service.mjs +3 -3
- package/esm2020/calendar/deprecated-calendar-content-density.directive.mjs +3 -3
- package/esm2020/calendar/i18n/calendar-i18n-labels.mjs +3 -3
- package/esm2020/card/card-content.component.mjs +3 -3
- package/esm2020/card/card-counter.directive.mjs +3 -3
- package/esm2020/card/card-footer-action-item.directive.mjs +3 -3
- package/esm2020/card/card-footer.component.mjs +3 -3
- package/esm2020/card/card-header.component.mjs +3 -3
- package/esm2020/card/card-loader.component.mjs +3 -3
- package/esm2020/card/card-second-subtitle.directive.mjs +3 -3
- package/esm2020/card/card-subtitle.directive.mjs +3 -3
- package/esm2020/card/card-title.directive.mjs +3 -3
- package/esm2020/card/card.component.mjs +3 -3
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/card/deprecated-card-content-density.directive.mjs +3 -3
- package/esm2020/card/kpi/card-kpi-analytics-content.directive.mjs +3 -3
- package/esm2020/card/kpi/card-kpi-analytics-label.directive.mjs +3 -3
- package/esm2020/card/kpi/card-kpi-analytics.directive.mjs +3 -3
- package/esm2020/card/kpi/card-kpi-header.component.mjs +3 -3
- package/esm2020/card/kpi/card-kpi-scale-icon.directive.mjs +3 -3
- package/esm2020/card/kpi/card-kpi-scale-text.directive.mjs +3 -3
- package/esm2020/card/kpi/card-kpi-value.directive.mjs +3 -3
- package/esm2020/carousel/carousel-item/carousel-item.component.mjs +3 -3
- package/esm2020/carousel/carousel-item.directive.mjs +3 -3
- package/esm2020/carousel/carousel.component.mjs +10 -4
- package/esm2020/carousel/carousel.directive.mjs +3 -3
- package/esm2020/carousel/carousel.module.mjs +4 -4
- package/esm2020/carousel/carousel.service.mjs +3 -3
- package/esm2020/checkbox/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/checkbox/deprecated-checkbox-content-density.directive.mjs +3 -3
- package/esm2020/combobox/combobox-mobile/combobox-mobile.component.mjs +5 -5
- package/esm2020/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
- package/esm2020/combobox/combobox.component.mjs +4 -4
- package/esm2020/combobox/combobox.module.mjs +4 -4
- package/esm2020/combobox/deprecated-combobox-content-density.directive.mjs +3 -3
- package/esm2020/combobox/list-group.pipe.mjs +3 -3
- package/esm2020/content-density/classes/deprecated-compact.directive.mjs +3 -3
- package/esm2020/content-density/classes/deprecated-condensed.directive.mjs +3 -3
- package/esm2020/content-density/classes/deprecated-content-density.directive.mjs +3 -3
- package/esm2020/content-density/classes/deprecated-cozy.directive.mjs +3 -3
- package/esm2020/content-density/content-density.module.mjs +4 -4
- package/esm2020/content-density/directives/content-density.directive.mjs +3 -3
- package/esm2020/content-density/providers/local-content-density-storage.mjs +3 -3
- package/esm2020/content-density/providers/memory-content-density-storage.mjs +3 -3
- package/esm2020/content-density/providers/url-content-density-storage.mjs +3 -3
- package/esm2020/content-density/services/content-density-observer.service.mjs +3 -3
- package/esm2020/content-density/services/deprecated-content-density.service.mjs +3 -3
- package/esm2020/content-density/services/global-content-density.service.mjs +3 -3
- package/esm2020/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/date-picker/date-picker.module.mjs +4 -4
- package/esm2020/date-picker/deprecated-date-picker-compact.directive.mjs +3 -3
- package/esm2020/datetime/datetime-format.pipes.mjs +9 -9
- package/esm2020/datetime/fd-datetime-adapter.mjs +3 -3
- package/esm2020/datetime/fd-datetime-pipes.module.mjs +4 -4
- package/esm2020/datetime/fd-datetime.module.mjs +8 -8
- package/esm2020/datetime-picker/datetime-picker.component.mjs +3 -3
- package/esm2020/datetime-picker/datetime-picker.module.mjs +4 -4
- package/esm2020/datetime-picker/deprecated-date-time-picker-content-density.directive.mjs +3 -3
- package/esm2020/dialog/base/dialog-base.class.mjs +3 -3
- package/esm2020/dialog/base/dialog-base.service.mjs +3 -3
- package/esm2020/dialog/base/dialog-footer-base.class.mjs +3 -3
- package/esm2020/dialog/base/dialog-header-base.class.mjs +3 -3
- package/esm2020/dialog/dialog-body/dialog-body.component.mjs +3 -3
- package/esm2020/dialog/dialog-close-button/dialog-close-button.component.mjs +3 -3
- package/esm2020/dialog/dialog-container/dialog-container.component.mjs +11 -5
- package/esm2020/dialog/dialog-default/dialog-default.component.mjs +5 -5
- package/esm2020/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
- package/esm2020/dialog/dialog-footer-button/dialog-footer-button.component.mjs +3 -3
- package/esm2020/dialog/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2020/dialog/dialog-service/dialog.service.mjs +3 -3
- package/esm2020/dialog/dialog.component.mjs +3 -3
- package/esm2020/dialog/dialog.module.mjs +4 -4
- package/esm2020/dialog/directives/dialog-decisive-button.directive.mjs +3 -3
- package/esm2020/dialog/directives/dialog-title.directive.mjs +3 -3
- package/esm2020/dialog/utils/dialog-config.class.mjs +3 -3
- package/esm2020/dialog/utils/dialog-overlay.container.mjs +3 -3
- package/esm2020/dialog/utils/dialog-ref.class.mjs +3 -3
- package/esm2020/dynamic-page/deprecated-dynamic-page-compact.directive.mjs +3 -3
- package/esm2020/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +3 -3
- package/esm2020/dynamic-page/directives/dynamic-page-header-title.directive.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-base-actions.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-global-actions.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page-wrapper.directive.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page.config.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page.module.mjs +4 -4
- package/esm2020/dynamic-page/dynamic-page.service.mjs +3 -3
- package/esm2020/dynamic-side-content/dynamic-side-content-main.component.mjs +3 -3
- package/esm2020/dynamic-side-content/dynamic-side-content-side.component.mjs +3 -3
- package/esm2020/dynamic-side-content/dynamic-side-content.component.mjs +3 -3
- package/esm2020/dynamic-side-content/dynamic-side-content.module.mjs +4 -4
- package/esm2020/facets/content/facet-content.component.mjs +3 -3
- package/esm2020/facets/facet/facet.component.mjs +3 -3
- package/esm2020/facets/facet-group.component.mjs +3 -3
- package/esm2020/facets/facet.module.mjs +4 -4
- package/esm2020/feed-input/directives/feed-input-avatar.directive.mjs +3 -3
- package/esm2020/feed-input/directives/feed-input-button.directive.mjs +3 -3
- package/esm2020/feed-input/directives/feed-input-textarea.directive.mjs +3 -3
- package/esm2020/feed-input/feed-input.component.mjs +3 -3
- package/esm2020/feed-input/feed-input.module.mjs +4 -4
- package/esm2020/feed-list-item/components/feed-list-action/feed-list-action.component.mjs +3 -3
- package/esm2020/feed-list-item/components/feed-list-avatar/feed-list-avatar.component.mjs +3 -3
- package/esm2020/feed-list-item/components/feed-list-footer/feed-list-footer.component.mjs +3 -3
- package/esm2020/feed-list-item/components/item/feed-list-item.component.mjs +3 -3
- package/esm2020/feed-list-item/components/list/feed-list.component.mjs +3 -3
- package/esm2020/feed-list-item/directives/byline.directive.mjs +3 -3
- package/esm2020/feed-list-item/feed-list-item.module.mjs +4 -4
- package/esm2020/file-uploader/deprecated-file-uploader-content-density.directive.mjs +3 -3
- package/esm2020/file-uploader/directives/file-uploader-dragndrop.directive.mjs +3 -3
- package/esm2020/file-uploader/directives/file-uploader-select.directive.mjs +3 -3
- package/esm2020/file-uploader/file-uploader.component.mjs +3 -3
- package/esm2020/file-uploader/file-uploader.module.mjs +4 -4
- package/esm2020/file-uploader/file-uploader.service.mjs +3 -3
- package/esm2020/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.mjs +3 -3
- package/esm2020/fixed-card-layout/fixed-card-layout.component.mjs +6 -6
- package/esm2020/fixed-card-layout/fixed-card-layout.module.mjs +4 -4
- package/esm2020/flexible-column-layout/flexible-column-layout.component.mjs +3 -3
- package/esm2020/flexible-column-layout/flexible-column-layout.module.mjs +4 -4
- package/esm2020/form/fieldset/fieldset.component.mjs +3 -3
- package/esm2020/form/fieldset/fieldset.module.mjs +4 -4
- package/esm2020/form/form-control/deprecated-form-control-content-density.directive.mjs +3 -3
- package/esm2020/form/form-control/form-control.component.mjs +3 -3
- package/esm2020/form/form-control/form-control.module.mjs +4 -4
- package/esm2020/form/form-control/input-form-control.directive.mjs +3 -3
- package/esm2020/form/form-control/textarea-form-control.directive.mjs +3 -3
- package/esm2020/form/form-group/form-group.component.mjs +3 -3
- package/esm2020/form/form-group/form-group.module.mjs +4 -4
- package/esm2020/form/form-header/form-header.component.mjs +3 -3
- package/esm2020/form/form-header/form-header.module.mjs +4 -4
- package/esm2020/form/form-input-message-group/form-input-message-group.component.mjs +3 -3
- package/esm2020/form/form-input-message-group/form-input-message-group.module.mjs +4 -4
- package/esm2020/form/form-item/form-item.component.mjs +3 -3
- package/esm2020/form/form-item/form-item.module.mjs +4 -4
- package/esm2020/form/form-label/form-label.component.mjs +3 -3
- package/esm2020/form/form-label/form-label.module.mjs +4 -4
- package/esm2020/form/form-legend/form-legend.directive.mjs +3 -3
- package/esm2020/form/form-legend/form-legend.module.mjs +4 -4
- package/esm2020/form/form-message/form-message.component.mjs +3 -3
- package/esm2020/form/form-message/form-message.module.mjs +4 -4
- package/esm2020/form/form-message/popover-form-message.service.mjs +3 -3
- package/esm2020/form/form.module.mjs +4 -4
- package/esm2020/formatted-text/formatted-text.component.mjs +3 -3
- package/esm2020/formatted-text/formatted-text.module.mjs +4 -4
- package/esm2020/fundamental-ngx.module.mjs +4 -4
- package/esm2020/grid-list/components/grid-list/grid-list-base.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list/grid-list.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-footer/grid-list-footer.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-group-header/grid-list-group-header.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-item/grid-list-item.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-title-bar/grid-list-title-bar.directive.mjs +3 -3
- package/esm2020/grid-list/components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component.mjs +3 -3
- package/esm2020/grid-list/directives/grid-list-item-body.directive.mjs +3 -3
- package/esm2020/grid-list/directives/grid-list-item-image.directive.mjs +3 -3
- package/esm2020/grid-list/grid-list.module.mjs +4 -4
- package/esm2020/icon/icon.component.mjs +3 -3
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/illustrated-message/components/illustrated-message-actions/illustrated-message-actions.component.mjs +3 -3
- package/esm2020/illustrated-message/components/illustrated-message-figcaption/illustrated-message-figcaption.component.mjs +3 -3
- package/esm2020/illustrated-message/directives/illustrated-message-text/illustrated-message-text.directive.mjs +3 -3
- package/esm2020/illustrated-message/directives/illustrated-message-title/illustrated-message-title.directive.mjs +3 -3
- package/esm2020/illustrated-message/illustrated-message.component.mjs +3 -3
- package/esm2020/illustrated-message/illustrated-message.module.mjs +4 -4
- package/esm2020/infinite-scroll/infinite-scroll.directive.mjs +3 -3
- package/esm2020/infinite-scroll/infinite-scroll.module.mjs +4 -4
- package/esm2020/info-label/info-label.component.mjs +3 -3
- package/esm2020/info-label/info-label.module.mjs +4 -4
- package/esm2020/inline-help/inline-help.directive.mjs +3 -3
- package/esm2020/inline-help/inline-help.module.mjs +4 -4
- package/esm2020/input-group/deprecated-input-group-compact.directive.mjs +3 -3
- package/esm2020/input-group/input-group-directives.mjs +12 -12
- package/esm2020/input-group/input-group.component.mjs +3 -3
- package/esm2020/input-group/input-group.module.mjs +4 -4
- package/esm2020/layout-grid/directives/layout-grid-col.directive.mjs +3 -3
- package/esm2020/layout-grid/directives/layout-grid-row.directive.mjs +3 -3
- package/esm2020/layout-grid/layout-grid.component.mjs +3 -3
- package/esm2020/layout-grid/layout-grid.module.mjs +4 -4
- package/esm2020/layout-panel/layout-panel-actions/layout-panel-actions.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-body/layout-panel-body.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-description/layout-panel-description.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-filters/layout-panel-filters.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-footer/layout-panel-footer.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-head/layout-panel-head.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-header/layout-panel-header.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel-title/layout-panel-title.directive.mjs +3 -3
- package/esm2020/layout-panel/layout-panel.component.mjs +3 -3
- package/esm2020/layout-panel/layout-panel.module.mjs +4 -4
- package/esm2020/link/link.component.mjs +3 -3
- package/esm2020/link/link.module.mjs +4 -4
- package/esm2020/list/deprecated-list-content-density,directive.mjs +3 -3
- package/esm2020/list/directives/byline/list-byline-left.directive.mjs +3 -3
- package/esm2020/list/directives/byline/list-byline-right.directive.mjs +3 -3
- package/esm2020/list/directives/byline/list-byline.directive.mjs +3 -3
- package/esm2020/list/directives/byline/list-content.directive.mjs +3 -3
- package/esm2020/list/directives/byline/list-thumbnail.directive.mjs +3 -3
- package/esm2020/list/directives/list-footer.directive.mjs +3 -3
- package/esm2020/list/directives/list-group-header.directive.mjs +3 -3
- package/esm2020/list/directives/list-icon.directive.mjs +3 -3
- package/esm2020/list/directives/list-link.directive.mjs +3 -3
- package/esm2020/list/directives/list-navigation-item-arrow.directive.mjs +3 -3
- package/esm2020/list/directives/list-navigation-item-text.directive.mjs +3 -3
- package/esm2020/list/directives/list-secondary.directive.mjs +3 -3
- package/esm2020/list/directives/list-title-text.directive.mjs +3 -3
- package/esm2020/list/directives/list-title.directive.mjs +3 -3
- package/esm2020/list/list-focus-item.model.mjs +3 -3
- package/esm2020/list/list-item/list-item.component.mjs +13 -4
- package/esm2020/list/list-message.directive.mjs +3 -3
- package/esm2020/list/list-navigation-item/list-navigation-item.component.mjs +3 -3
- package/esm2020/list/list.component.mjs +3 -3
- package/esm2020/list/list.module.mjs +4 -4
- package/esm2020/menu/directives/deprecated-menu-compact.directive.mjs +3 -3
- package/esm2020/menu/directives/menu-addon.directive.mjs +3 -3
- package/esm2020/menu/directives/menu-interactive.directive.mjs +3 -3
- package/esm2020/menu/directives/menu-shortcut.directive.mjs +3 -3
- package/esm2020/menu/directives/menu-title.directive.mjs +3 -3
- package/esm2020/menu/directives/menu-trigger.directive.mjs +3 -3
- package/esm2020/menu/menu-item/menu-item.component.mjs +6 -6
- package/esm2020/menu/menu-keyboard.service.mjs +3 -3
- package/esm2020/menu/menu-mobile/menu-mobile.component.mjs +5 -5
- package/esm2020/menu/menu-mobile/menu-mobile.module.mjs +4 -4
- package/esm2020/menu/menu-separator/menu-separator.component.mjs +3 -3
- package/esm2020/menu/menu.component.mjs +3 -3
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/menu/services/menu.service.mjs +3 -3
- package/esm2020/message-box/directives/message-box-decisive-button.directive.mjs +3 -3
- package/esm2020/message-box/message-box-body/message-box-body.component.mjs +3 -3
- package/esm2020/message-box/message-box-container/message-box-container.component.mjs +5 -6
- package/esm2020/message-box/message-box-default/message-box-default.component.mjs +5 -5
- package/esm2020/message-box/message-box-footer/message-box-footer.component.mjs +3 -3
- package/esm2020/message-box/message-box-footer-button/message-box-footer-button.component.mjs +3 -3
- package/esm2020/message-box/message-box-header/message-box-header.component.mjs +3 -3
- package/esm2020/message-box/message-box-semantic-icon/message-box-semantic-icon.component.mjs +3 -3
- package/esm2020/message-box/message-box.component.mjs +3 -3
- package/esm2020/message-box/message-box.module.mjs +4 -4
- package/esm2020/message-box/services/message-box.service.mjs +3 -3
- package/esm2020/message-box/utils/message-box-config.class.mjs +3 -3
- package/esm2020/message-box/utils/message-box-ref.class.mjs +3 -3
- package/esm2020/message-page/message-page-actions/message-page-actions.component.mjs +3 -3
- package/esm2020/message-page/message-page-more/message-page-more.component.mjs +3 -3
- package/esm2020/message-page/message-page-subtitle/message-page-subtitle.component.mjs +3 -3
- package/esm2020/message-page/message-page-title/message-page-title.component.mjs +3 -3
- package/esm2020/message-page/message-page.component.mjs +3 -3
- package/esm2020/message-page/message-page.module.mjs +4 -4
- package/esm2020/message-strip/alert/message-strip-alert/message-strip-alert.component.mjs +3 -3
- package/esm2020/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.mjs +3 -3
- package/esm2020/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.mjs +3 -3
- package/esm2020/message-strip/alert/message-strip-alert.service.mjs +3 -3
- package/esm2020/message-strip/auto-dismiss-message-strip.directive.mjs +3 -3
- package/esm2020/message-strip/message-strip.component.mjs +3 -3
- package/esm2020/message-strip/message-strip.module.mjs +4 -4
- package/esm2020/message-toast/components/message-toast-text.component.mjs +3 -3
- package/esm2020/message-toast/message-toast.component.mjs +3 -3
- package/esm2020/message-toast/message-toast.module.mjs +4 -4
- package/esm2020/message-toast/message-toast.service.mjs +3 -3
- package/esm2020/message-toast/toast-overlay-container.class.mjs +3 -3
- package/esm2020/micro-process-flow/components/micro-process-flow/deprecated-micro-process-flow-content-density.directive.mjs +3 -3
- package/esm2020/micro-process-flow/components/micro-process-flow/micro-process-flow.component.mjs +3 -3
- package/esm2020/micro-process-flow/components/micro-process-flow-icon/micro-process-flow-icon.component.mjs +3 -3
- package/esm2020/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.mjs +3 -3
- package/esm2020/micro-process-flow/micro-process-flow-focusable-item.directive.mjs +3 -3
- package/esm2020/micro-process-flow/micro-process-flow-intermediary-item.directive.mjs +3 -3
- package/esm2020/micro-process-flow/micro-process-flow.module.mjs +4 -4
- package/esm2020/multi-combobox/base-multi-combobox.class.mjs +3 -3
- package/esm2020/multi-combobox/mobile/mobile-multi-combobox.component.mjs +3 -3
- package/esm2020/multi-combobox/mobile/mobile-multi-combobox.module.mjs +4 -4
- package/esm2020/multi-combobox/multi-combobox-config.mjs +3 -3
- package/esm2020/multi-combobox/multi-combobox.component.mjs +4 -4
- package/esm2020/multi-combobox/multi-combobox.module.mjs +4 -4
- package/esm2020/multi-combobox/select-all-toggler/select-all-toggler.component.mjs +3 -3
- package/esm2020/multi-input/deprecated-multi-input-compact.directive.mjs +3 -3
- package/esm2020/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +3 -3
- package/esm2020/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
- package/esm2020/multi-input/multi-input.component.mjs +4 -4
- package/esm2020/multi-input/multi-input.module.mjs +4 -4
- package/esm2020/nested-list/deprecated-nested-list-compact.directive.mjs +3 -3
- package/esm2020/nested-list/nested-content/nested-list-content.directive.mjs +3 -3
- package/esm2020/nested-list/nested-item/nested-item.directive.mjs +3 -3
- package/esm2020/nested-list/nested-link/nested-link.directive.mjs +3 -3
- package/esm2020/nested-list/nested-list/nested-list.directive.mjs +3 -3
- package/esm2020/nested-list/nested-list-directives.mjs +12 -12
- package/esm2020/nested-list/nested-list-keyboard.service.mjs +3 -3
- package/esm2020/nested-list/nested-list-popover/nested-list-popover.component.mjs +3 -3
- package/esm2020/nested-list/nested-list-state.service.mjs +3 -3
- package/esm2020/nested-list/nested-list.module.mjs +4 -4
- package/esm2020/nested-list/prepared-nested-list/prepared-nested-list.component.mjs +3 -3
- package/esm2020/notification/directives/notification-footer-content.directive.mjs +3 -3
- package/esm2020/notification/directives/notification-indicator.directive.mjs +3 -3
- package/esm2020/notification/directives/notification-limit-description.directive.mjs +3 -3
- package/esm2020/notification/directives/notification-limit-title.directive.mjs +3 -3
- package/esm2020/notification/directives/notification-paragraph.directive.mjs +3 -3
- package/esm2020/notification/directives/notification-separator.directive.mjs +3 -3
- package/esm2020/notification/directives/notification-title.directive.mjs +3 -3
- package/esm2020/notification/notification/notification.component.mjs +3 -3
- package/esm2020/notification/notification-actions/notification-actions.component.mjs +3 -3
- package/esm2020/notification/notification-body/notification-body.component.mjs +3 -3
- package/esm2020/notification/notification-content/notification-content.component.mjs +3 -3
- package/esm2020/notification/notification-footer/notification-footer.component.mjs +3 -3
- package/esm2020/notification/notification-group/notification-group.component.mjs +3 -3
- package/esm2020/notification/notification-group-header/notification-group-header.component.mjs +3 -3
- package/esm2020/notification/notification-group-list/notification-group-list.component.mjs +3 -3
- package/esm2020/notification/notification-header/notification-header.component.mjs +3 -3
- package/esm2020/notification/notification-limit/notification-limit.component.mjs +3 -3
- package/esm2020/notification/notification-service/notification.service.mjs +3 -3
- package/esm2020/notification/notification-utils/notification-container.mjs +3 -3
- package/esm2020/notification/notification-utils/notification-group-base.mjs +3 -3
- package/esm2020/notification/notification.module.mjs +4 -4
- package/esm2020/object-identifier/object-identifier.component.mjs +3 -3
- package/esm2020/object-identifier/object-identifier.module.mjs +4 -4
- package/esm2020/object-marker/object-marker.component.mjs +3 -3
- package/esm2020/object-marker/object-marker.module.mjs +4 -4
- package/esm2020/object-number/object-number.component.mjs +3 -3
- package/esm2020/object-number/object-number.module.mjs +4 -4
- package/esm2020/object-status/object-status.component.mjs +3 -3
- package/esm2020/object-status/object-status.module.mjs +4 -4
- package/esm2020/overflow-layout/directives/overflow-expand.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-item-container-ref.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-item-ref.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-layout-focusable-item.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-layout-item-container.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-layout-item.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-layout-popover-content.directive.mjs +3 -3
- package/esm2020/overflow-layout/overflow-layout.component.mjs +3 -3
- package/esm2020/overflow-layout/overflow-layout.module.mjs +4 -4
- package/esm2020/overflow-layout/overflow-layout.service.mjs +3 -3
- package/esm2020/pagination/deprecated-pagination-compact.directive.mjs +3 -3
- package/esm2020/pagination/pagination.component.mjs +3 -3
- package/esm2020/pagination/pagination.module.mjs +4 -4
- package/esm2020/pagination/pagination.service.mjs +3 -3
- package/esm2020/panel/deprecated-panel-compact.directive.mjs +3 -3
- package/esm2020/panel/panel-content/panel-content.directive.mjs +3 -3
- package/esm2020/panel/panel-title/panel-title.directive.mjs +3 -3
- package/esm2020/panel/panel.component.mjs +3 -3
- package/esm2020/panel/panel.module.mjs +4 -4
- package/esm2020/popover/base/base-popover.class.mjs +3 -3
- package/esm2020/popover/popover-body/popover-body-directives/popover-body-footer.directive.mjs +3 -3
- package/esm2020/popover/popover-body/popover-body-directives/popover-body-header.directive.mjs +3 -3
- package/esm2020/popover/popover-body/popover-body.component.mjs +14 -4
- package/esm2020/popover/popover-container/popover-container.directive.mjs +3 -3
- package/esm2020/popover/popover-control/popover-control.component.mjs +3 -3
- package/esm2020/popover/popover-mobile/popover-mobile.component.mjs +5 -5
- package/esm2020/popover/popover-mobile/popover-mobile.module.mjs +4 -4
- package/esm2020/popover/popover-service/popover.service.mjs +25 -5
- package/esm2020/popover/popover-trigger.directive.mjs +3 -3
- package/esm2020/popover/popover.component.mjs +23 -22
- package/esm2020/popover/popover.module.mjs +4 -4
- package/esm2020/product-switch/product-switch/product-switch.component.mjs +3 -3
- package/esm2020/product-switch/product-switch-body/product-switch-body.component.mjs +3 -3
- package/esm2020/product-switch/product-switch.module.mjs +4 -4
- package/esm2020/progress-indicator/progress-indicator.component.mjs +3 -3
- package/esm2020/progress-indicator/progress-indicator.module.mjs +4 -4
- package/esm2020/quick-view/quick-view/quick-view.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-group/quick-view-group.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-group-item/quick-view-group-item.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-group-item-content/quick-view-group-item-content-element.directive.mjs +3 -3
- package/esm2020/quick-view/quick-view-group-item-content/quick-view-group-item-content.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-group-item-label/quick-view-group-item-label.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-group-title/quick-view-group-title.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-subheader/quick-view-subheader.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-subheader-subtitle/quick-view-subheader-subtitle.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-subheader-title/quick-view-subheader-title.component.mjs +3 -3
- package/esm2020/quick-view/quick-view-title/quick-view-title.component.mjs +3 -3
- package/esm2020/quick-view/quick-view.module.mjs +4 -4
- package/esm2020/radio/deprecated-radio-button-compact.directive.mjs +3 -3
- package/esm2020/radio/radio-button/radio-button.component.mjs +3 -3
- package/esm2020/radio/radio.module.mjs +4 -4
- package/esm2020/rating-indicator/components/rating-indicator.component.mjs +3 -3
- package/esm2020/rating-indicator/pipes/rating-star-label.pipe.mjs +3 -3
- package/esm2020/rating-indicator/rating-indicator.module.mjs +4 -4
- package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +3 -3
- package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +3 -3
- package/esm2020/resizable-card-layout/resizable-card-layout.module.mjs +4 -4
- package/esm2020/scroll-spy/scroll-spy.directive.mjs +3 -3
- package/esm2020/scroll-spy/scroll-spy.module.mjs +4 -4
- package/esm2020/scrollbar/scrollbar.directive.mjs +9 -5
- package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
- package/esm2020/segmented-button/segmented-button.component.mjs +3 -3
- package/esm2020/segmented-button/segmented-button.module.mjs +4 -4
- package/esm2020/select/deprecated-select-compact.directive.mjs +3 -3
- package/esm2020/select/option/option.component.mjs +3 -3
- package/esm2020/select/select-key-manager.service.mjs +3 -3
- package/esm2020/select/select-mobile/select-mobile.component.mjs +3 -3
- package/esm2020/select/select-mobile/select-mobile.module.mjs +4 -4
- package/esm2020/select/select.component.mjs +6 -6
- package/esm2020/select/select.module.mjs +4 -4
- package/esm2020/shared/services/value-state-message.service.mjs +3 -3
- package/esm2020/shellbar/deprecated-shellbar-compact.directive.mjs +3 -3
- package/esm2020/shellbar/product-menu/product-menu.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-action/shellbar-action.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-actions/shellbar-actions.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-logo/shellbar-logo.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-sidenav.directive.mjs +3 -3
- package/esm2020/shellbar/shellbar-subtitle/shellbar-subtitle.component.mjs +3 -3
- package/esm2020/shellbar/shellbar-title/shellbar-title.component.mjs +3 -3
- package/esm2020/shellbar/shellbar.component.mjs +3 -3
- package/esm2020/shellbar/shellbar.module.mjs +4 -4
- package/esm2020/shellbar/user-menu/shellbar-user-menu.component.mjs +3 -3
- package/esm2020/side-navigation/side-navigation-main.directive.mjs +3 -3
- package/esm2020/side-navigation/side-navigation-utility.directive.mjs +3 -3
- package/esm2020/side-navigation/side-navigation.component.mjs +3 -3
- package/esm2020/side-navigation/side-navigation.module.mjs +4 -4
- package/esm2020/skeleton/components/skeleton.component.mjs +3 -3
- package/esm2020/skeleton/skeleton.module.mjs +4 -4
- package/esm2020/slider/deprecated-slider-cozy.directive.mjs +3 -3
- package/esm2020/slider/slider-position.directive.mjs +3 -3
- package/esm2020/slider/slider.component.mjs +3 -3
- package/esm2020/slider/slider.module.mjs +4 -4
- package/esm2020/split-button/deprecated-split-button-compact.directive.mjs +3 -3
- package/esm2020/split-button/split-button-utils/split-button.directives.mjs +3 -3
- package/esm2020/split-button/split-button.component.mjs +3 -3
- package/esm2020/split-button/split-button.module.mjs +4 -4
- package/esm2020/splitter/splitter-pagination/splitter-pagination.component.mjs +3 -3
- package/esm2020/splitter/splitter-pane-container/splitter-pane-container.component.mjs +6 -6
- package/esm2020/splitter/splitter-resizer/splitter-resizer.component.mjs +3 -3
- package/esm2020/splitter/splitter-split-pane/splitter-split-pane.component.mjs +3 -3
- package/esm2020/splitter/splitter.component.mjs +3 -3
- package/esm2020/splitter/splitter.module.mjs +4 -4
- package/esm2020/status-indicator/status-indicator.component.mjs +3 -3
- package/esm2020/status-indicator/status-indicator.module.mjs +4 -4
- package/esm2020/step-input/deprecated-step-input-compact.directive.mjs +3 -3
- package/esm2020/step-input/step-input.component.mjs +3 -3
- package/esm2020/step-input/step-input.module.mjs +4 -4
- package/esm2020/switch/deprecated-switch-compact.directive.mjs +3 -3
- package/esm2020/switch/switch.component.mjs +3 -3
- package/esm2020/switch/switch.module.mjs +4 -4
- package/esm2020/table/deprecated-table-compact.directive.mjs +3 -3
- package/esm2020/table/deprecated-table-condensed.directive.mjs +3 -3
- package/esm2020/table/directives/table-body.directive.mjs +3 -3
- package/esm2020/table/directives/table-cell.directive.mjs +3 -3
- package/esm2020/table/directives/table-fixed.directive.mjs +3 -3
- package/esm2020/table/directives/table-footer.directive.mjs +3 -3
- package/esm2020/table/directives/table-header.directive.mjs +3 -3
- package/esm2020/table/directives/table-icon.directive.mjs +3 -3
- package/esm2020/table/directives/table-inner.directive.mjs +3 -3
- package/esm2020/table/directives/table-popover.directive.mjs +3 -3
- package/esm2020/table/directives/table-responsive-wrapper.directive.mjs +3 -3
- package/esm2020/table/directives/table-row.directive.mjs +3 -3
- package/esm2020/table/directives/table-status-indicator.directive.mjs +3 -3
- package/esm2020/table/directives/table-text.directive.mjs +3 -3
- package/esm2020/table/table-wrapper.component.mjs +3 -3
- package/esm2020/table/table.component.mjs +3 -3
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/tabs/deprecated-tabs-compact.directive.mjs +3 -3
- package/esm2020/tabs/tab-item/tab-item.directive.mjs +3 -3
- package/esm2020/tabs/tab-item-expand/tab-item-expand.component.mjs +3 -3
- package/esm2020/tabs/tab-link/tab-link.directive.mjs +3 -3
- package/esm2020/tabs/tab-list.component.mjs +11 -4
- package/esm2020/tabs/tab-nav/tab-nav.component.mjs +3 -3
- package/esm2020/tabs/tab-panel/tab-panel.component.mjs +10 -4
- package/esm2020/tabs/tab-utils/tab-directives.mjs +30 -30
- package/esm2020/tabs/tabs.module.mjs +4 -4
- package/esm2020/text/text.component.mjs +3 -3
- package/esm2020/text/text.module.mjs +4 -4
- package/esm2020/theming/theming.module.mjs +4 -4
- package/esm2020/theming/theming.service.mjs +3 -3
- package/esm2020/tile/directives/numeric-content.directives.mjs +27 -27
- package/esm2020/tile/directives/tile.directives.mjs +69 -69
- package/esm2020/tile/tile.component.mjs +3 -3
- package/esm2020/tile/tile.module.mjs +4 -4
- package/esm2020/time/deprecated-time-content-density.directive.mjs +3 -3
- package/esm2020/time/i18n/time-i18n.mjs +3 -3
- package/esm2020/time/time-column/time-column.component.mjs +3 -3
- package/esm2020/time/time.component.mjs +3 -3
- package/esm2020/time/time.module.mjs +4 -4
- package/esm2020/time-picker/deprecated-timepicker-compact.directive.mjs +3 -3
- package/esm2020/time-picker/time-picker.component.mjs +3 -3
- package/esm2020/time-picker/time-picker.module.mjs +4 -4
- package/esm2020/timeline/components/timeline-node/timeline-node.component.mjs +3 -3
- package/esm2020/timeline/components/timeline-node-body/timeline-node-body.component.mjs +3 -3
- package/esm2020/timeline/components/timeline-node-footer/timeline-node-footer.component.mjs +3 -3
- package/esm2020/timeline/components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.component.mjs +3 -3
- package/esm2020/timeline/components/timeline-node-header/timeline-node-header.component.mjs +3 -3
- package/esm2020/timeline/directives/class-bindings/timeline-header-info-sub-title.directive.mjs +3 -3
- package/esm2020/timeline/directives/class-bindings/timeline-node-header-info-text.directive.mjs +3 -3
- package/esm2020/timeline/directives/class-bindings/timeline-node-header-info-title.directive.mjs +3 -3
- package/esm2020/timeline/directives/timeline-first-list-outlet.directive.mjs +3 -3
- package/esm2020/timeline/directives/timeline-node-def.directive.mjs +3 -3
- package/esm2020/timeline/directives/timeline-second-list-outlet.directive.mjs +3 -3
- package/esm2020/timeline/services/timeline-position-control.service.mjs +3 -3
- package/esm2020/timeline/timeline.component.mjs +3 -3
- package/esm2020/timeline/timeline.module.mjs +4 -4
- package/esm2020/title/title.component.mjs +3 -3
- package/esm2020/title/title.module.mjs +4 -4
- package/esm2020/token/deprecated-tokenizer-content-density.directive.mjs +3 -3
- package/esm2020/token/token-input.directive.mjs +3 -3
- package/esm2020/token/token.component.mjs +3 -3
- package/esm2020/token/token.module.mjs +4 -4
- package/esm2020/token/tokenizer.component.mjs +3 -3
- package/esm2020/toolbar/deprecated-toolbar-size.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-form-label.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-item.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-label.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-overflow-button-menu.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-overflow-button.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar-separator.component.mjs +3 -3
- package/esm2020/toolbar/toolbar-spacer.directive.mjs +3 -3
- package/esm2020/toolbar/toolbar.component.mjs +3 -3
- package/esm2020/toolbar/toolbar.module.mjs +4 -4
- package/esm2020/tree/components/tree-item/tree-item.component.mjs +3 -3
- package/esm2020/tree/directives/tree-item-button.directive.mjs +3 -3
- package/esm2020/tree/directives/tree-item-def.directive.mjs +3 -3
- package/esm2020/tree/directives/tree-item-icon.directive.mjs +6 -6
- package/esm2020/tree/directives/tree-item.directive.mjs +3 -3
- package/esm2020/tree/models/base-tree-item.class.mjs +3 -3
- package/esm2020/tree/tree.component.mjs +3 -3
- package/esm2020/tree/tree.module.mjs +4 -4
- package/esm2020/tree/tree.service.mjs +3 -3
- package/esm2020/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +3 -3
- package/esm2020/upload-collection/upload-collection-form-item/upload-collection-form-item.component.mjs +3 -3
- package/esm2020/upload-collection/upload-collection-item.directive.mjs +3 -3
- package/esm2020/upload-collection/upload-collection-simple.directives.mjs +21 -21
- package/esm2020/upload-collection/upload-collection.component.mjs +3 -3
- package/esm2020/upload-collection/upload-collection.module.mjs +4 -4
- package/esm2020/vertical-navigation/vertical-navigation-group-header.directive.mjs +3 -3
- package/esm2020/vertical-navigation/vertical-navigation-main-navigation.component.mjs +3 -3
- package/esm2020/vertical-navigation/vertical-navigation.component.mjs +3 -3
- package/esm2020/vertical-navigation/vertical-navigation.module.mjs +4 -4
- package/esm2020/wizard/deprecated-wizard-compact.directive.mjs +3 -3
- package/esm2020/wizard/wizard-content/wizard-content.component.mjs +3 -3
- package/esm2020/wizard/wizard-navigation/wizard-navigation.component.mjs +3 -3
- package/esm2020/wizard/wizard-next-step/wizard-next-step.component.mjs +3 -3
- package/esm2020/wizard/wizard-progress-bar/wizard-progress-bar.directive.mjs +3 -3
- package/esm2020/wizard/wizard-step/wizard-step.component.mjs +3 -3
- package/esm2020/wizard/wizard-step-indicator/wizard-step-indicator.component.mjs +3 -3
- package/esm2020/wizard/wizard.component.mjs +3 -3
- package/esm2020/wizard/wizard.module.mjs +4 -4
- package/esm2020/wizard/wizard.service.mjs +3 -3
- package/fesm2015/fundamental-ngx-core-action-bar.mjs +25 -25
- package/fesm2015/fundamental-ngx-core-action-sheet.mjs +26 -26
- package/fesm2015/fundamental-ngx-core-alert.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-avatar-group.mjs +28 -28
- package/fesm2015/fundamental-ngx-core-avatar.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-bar.mjs +28 -28
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-busy-indicator.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-button.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-calendar.mjs +34 -34
- package/fesm2015/fundamental-ngx-core-card.mjs +58 -58
- package/fesm2015/fundamental-ngx-core-carousel.mjs +26 -19
- package/fesm2015/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-checkbox.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-combobox.mjs +22 -22
- package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-content-density.mjs +37 -37
- package/fesm2015/fundamental-ngx-core-date-picker.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-datetime.mjs +24 -24
- package/fesm2015/fundamental-ngx-core-dialog.mjs +66 -60
- package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +49 -49
- package/fesm2015/fundamental-ngx-core-dynamic-side-content.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-facets.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-feed-input.mjs +16 -16
- package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +22 -22
- package/fesm2015/fundamental-ngx-core-file-uploader.mjs +19 -19
- package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-form.mjs +79 -79
- package/fesm2015/fundamental-ngx-core-formatted-text.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-grid-list.mjs +46 -46
- package/fesm2015/fundamental-ngx-core-icon.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-illustrated-message.mjs +19 -19
- package/fesm2015/fundamental-ngx-core-infinite-scroll.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-info-label.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-inline-help.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-input-group.mjs +22 -22
- package/fesm2015/fundamental-ngx-core-layout-grid.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-layout-panel.mjs +31 -31
- package/fesm2015/fundamental-ngx-core-link.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-list.mjs +73 -64
- package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-menu.mjs +48 -48
- package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-box.mjs +41 -42
- package/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-page.mjs +19 -19
- package/fesm2015/fundamental-ngx-core-message-strip.mjs +22 -22
- package/fesm2015/fundamental-ngx-core-message-toast.mjs +16 -16
- package/fesm2015/fundamental-ngx-core-micro-process-flow.mjs +22 -22
- package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +24 -24
- package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-input.mjs +18 -18
- package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-nested-list.mjs +43 -43
- package/fesm2015/fundamental-ngx-core-notification.mjs +64 -64
- package/fesm2015/fundamental-ngx-core-object-identifier.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-object-marker.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-object-number.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-object-status.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-overflow-layout.mjs +31 -31
- package/fesm2015/fundamental-ngx-core-pagination.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-panel.mjs +16 -16
- package/fesm2015/fundamental-ngx-core-popover.mjs +89 -59
- package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-product-switch.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-progress-indicator.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-quick-view.mjs +37 -37
- package/fesm2015/fundamental-ngx-core-radio.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-rating-indicator.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-scroll-spy.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-scrollbar.mjs +12 -8
- package/fesm2015/fundamental-ngx-core-scrollbar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-segmented-button.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-select.mjs +25 -25
- package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-shared.mjs +3 -3
- package/fesm2015/fundamental-ngx-core-shellbar.mjs +37 -37
- package/fesm2015/fundamental-ngx-core-side-navigation.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-skeleton.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-slider.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-split-button.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-splitter.mjs +22 -22
- package/fesm2015/fundamental-ngx-core-status-indicator.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-step-input.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-switch.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-table.mjs +52 -52
- package/fesm2015/fundamental-ngx-core-tabs.mjs +68 -55
- package/fesm2015/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-text.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-theming.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-tile.mjs +103 -103
- package/fesm2015/fundamental-ngx-core-time-picker.mjs +10 -10
- package/fesm2015/fundamental-ngx-core-time.mjs +16 -16
- package/fesm2015/fundamental-ngx-core-timeline.mjs +43 -43
- package/fesm2015/fundamental-ngx-core-title.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-token.mjs +16 -16
- package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-toolbar.mjs +31 -31
- package/fesm2015/fundamental-ngx-core-tree.mjs +31 -31
- package/fesm2015/fundamental-ngx-core-upload-collection.mjs +37 -37
- package/fesm2015/fundamental-ngx-core-vertical-navigation.mjs +13 -13
- package/fesm2015/fundamental-ngx-core-wizard.mjs +31 -31
- package/fesm2015/fundamental-ngx-core.mjs +4 -4
- package/fesm2020/fundamental-ngx-core-action-bar.mjs +25 -25
- package/fesm2020/fundamental-ngx-core-action-sheet.mjs +26 -26
- package/fesm2020/fundamental-ngx-core-alert.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-avatar-group.mjs +28 -28
- package/fesm2020/fundamental-ngx-core-avatar.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-bar.mjs +28 -28
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-busy-indicator.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-button.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-calendar.mjs +34 -34
- package/fesm2020/fundamental-ngx-core-card.mjs +58 -58
- package/fesm2020/fundamental-ngx-core-carousel.mjs +25 -19
- package/fesm2020/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-checkbox.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-combobox.mjs +22 -22
- package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-content-density.mjs +37 -37
- package/fesm2020/fundamental-ngx-core-date-picker.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-datetime.mjs +24 -24
- package/fesm2020/fundamental-ngx-core-dialog.mjs +66 -60
- package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +49 -49
- package/fesm2020/fundamental-ngx-core-dynamic-side-content.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-facets.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-feed-input.mjs +16 -16
- package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +22 -22
- package/fesm2020/fundamental-ngx-core-file-uploader.mjs +19 -19
- package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-form.mjs +79 -79
- package/fesm2020/fundamental-ngx-core-formatted-text.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-grid-list.mjs +46 -46
- package/fesm2020/fundamental-ngx-core-icon.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-illustrated-message.mjs +19 -19
- package/fesm2020/fundamental-ngx-core-infinite-scroll.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-info-label.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-inline-help.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-input-group.mjs +22 -22
- package/fesm2020/fundamental-ngx-core-layout-grid.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-layout-panel.mjs +31 -31
- package/fesm2020/fundamental-ngx-core-link.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-list.mjs +73 -64
- package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-menu.mjs +48 -48
- package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-box.mjs +41 -42
- package/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-page.mjs +19 -19
- package/fesm2020/fundamental-ngx-core-message-strip.mjs +22 -22
- package/fesm2020/fundamental-ngx-core-message-toast.mjs +16 -16
- package/fesm2020/fundamental-ngx-core-micro-process-flow.mjs +22 -22
- package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +24 -24
- package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-input.mjs +18 -18
- package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-nested-list.mjs +43 -43
- package/fesm2020/fundamental-ngx-core-notification.mjs +64 -64
- package/fesm2020/fundamental-ngx-core-object-identifier.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-object-marker.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-object-number.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-object-status.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-overflow-layout.mjs +31 -31
- package/fesm2020/fundamental-ngx-core-pagination.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-panel.mjs +16 -16
- package/fesm2020/fundamental-ngx-core-popover.mjs +89 -59
- package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-product-switch.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-progress-indicator.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-quick-view.mjs +37 -37
- package/fesm2020/fundamental-ngx-core-radio.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-rating-indicator.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-scroll-spy.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-scrollbar.mjs +12 -8
- package/fesm2020/fundamental-ngx-core-scrollbar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-segmented-button.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-select.mjs +25 -25
- package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-shared.mjs +3 -3
- package/fesm2020/fundamental-ngx-core-shellbar.mjs +37 -37
- package/fesm2020/fundamental-ngx-core-side-navigation.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-skeleton.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-slider.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-split-button.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-splitter.mjs +22 -22
- package/fesm2020/fundamental-ngx-core-status-indicator.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-step-input.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-switch.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-table.mjs +52 -52
- package/fesm2020/fundamental-ngx-core-tabs.mjs +68 -55
- package/fesm2020/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-text.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-theming.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-tile.mjs +103 -103
- package/fesm2020/fundamental-ngx-core-time-picker.mjs +10 -10
- package/fesm2020/fundamental-ngx-core-time.mjs +16 -16
- package/fesm2020/fundamental-ngx-core-timeline.mjs +43 -43
- package/fesm2020/fundamental-ngx-core-title.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-token.mjs +16 -16
- package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-toolbar.mjs +31 -31
- package/fesm2020/fundamental-ngx-core-tree.mjs +31 -31
- package/fesm2020/fundamental-ngx-core-upload-collection.mjs +37 -37
- package/fesm2020/fundamental-ngx-core-vertical-navigation.mjs +13 -13
- package/fesm2020/fundamental-ngx-core-wizard.mjs +31 -31
- package/fesm2020/fundamental-ngx-core.mjs +4 -4
- package/fundamental-ngx-core-v0.43.0-rc.21.tgz +0 -0
- package/list/list-item/list-item.component.d.ts +5 -1
- package/package.json +11 -11
- package/popover/popover-body/popover-body.component.d.ts +7 -2
- package/popover/popover-service/popover.service.d.ts +4 -0
- package/popover/popover.component.d.ts +2 -2
- package/schematics/add-dependencies/index.js +6 -6
- package/scrollbar/scrollbar.directive.d.ts +2 -0
- package/tabs/tab-list.component.d.ts +3 -1
- package/tabs/tab-panel/tab-panel.component.d.ts +2 -0
- package/fundamental-ngx-core-v0.43.0-rc.2.tgz +0 -0
|
@@ -120,6 +120,12 @@ export class CarouselComponent {
|
|
|
120
120
|
this._subscribeToRtl();
|
|
121
121
|
}
|
|
122
122
|
/** @hidden */
|
|
123
|
+
ngOnChanges(changes) {
|
|
124
|
+
if (changes.visibleSlidesCount && this.slides?.length > 0) {
|
|
125
|
+
this._notifySlideChange(SlideDirection.None);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/** @hidden */
|
|
123
129
|
ngAfterContentInit() {
|
|
124
130
|
// On carousel load, display first slide + number of slide visible
|
|
125
131
|
this.currentActiveSlidesStartIndex = 0;
|
|
@@ -572,9 +578,9 @@ export class CarouselComponent {
|
|
|
572
578
|
return slides;
|
|
573
579
|
}
|
|
574
580
|
}
|
|
575
|
-
CarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
576
|
-
CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: CarouselComponent, selector: "fd-carousel", inputs: { id: "id", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", pageIndicatorsOrientation: "pageIndicatorsOrientation", height: "height", width: "width", loop: "loop", leftNavigationBtnLabel: "leftNavigationBtnLabel", rightNavigationBtnLabel: "rightNavigationBtnLabel", navigation: "navigation", navigatorInPageIndicator: "navigatorInPageIndicator", numericIndicator: "numericIndicator", pageIndicatorContainer: "pageIndicatorContainer", pageIndicator: "pageIndicator", resourceStrings: "resourceStrings", slideTransitionDuration: "slideTransitionDuration", swipeEnabled: "swipeEnabled", vertical: "vertical", visibleSlidesCount: "visibleSlidesCount" }, outputs: { slideChange: "slideChange" }, host: { listeners: { "keydown.arrowright": "onKeydownArrowRight($event)", "keydown.arrowleft": "onKeydownArrowLeft($event)" }, properties: { "style.width": "width", "attr.id": "this.id" } }, providers: [CarouselService], queries: [{ propertyName: "slides", predicate: CarouselItemComponent, descendants: true }], viewQueries: [{ propertyName: "slideContainer", first: true, predicate: ["slideContainer"], descendants: true }, { propertyName: "carouselContainer", first: true, predicate: ["carouselContainer"], descendants: true }], ngImport: i0, template: "<div\n class=\"fd-carousel\"\n [class.fd-carousel--no-navigation]=\"!navigation\"\n data-ride=\"carousel\"\n tabindex=\"0\"\n [style.height]=\"height\"\n [style.width]=\"width\"\n [attr.dir]=\"dir\"\n role=\"region\"\n #carouselContainer\n (click)=\"_focus()\"\n>\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'top'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-carousel__content\"\n [class.fd-carousel__content--horizontal]=\"!vertical\"\n [style.width]=\"_contentSizePx\"\n >\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <div #slideContainer class=\"fd-carousel__slides\">\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'bottom'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div style=\"display: none\" role=\"region\" [attr.id]=\"id + '-accessibility'\" aria-live=\"polite\" dir=\"ltr\">\n {{ screenReaderLabel }}\n </div>\n</div>\n\n<ng-template #pageIndicatorContainer>\n <div class=\"fd-carousel__page-indicator-container\">\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"pageIndicators\"> </ng-container>\n\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageIndicators>\n <ng-container *ngIf=\"numericIndicator\">\n <div class=\"fd-carousel__page-indicators\">\n <ng-container *ngIf=\"pageIndicator\">\n <div class=\"fd-carousel__text\" dir=\"ltr\">\n {{ getPageIndicatorLabel }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!numericIndicator && _showNavigationButtonInPageIndicatorContainer\">\n <ol class=\"fd-carousel__page-indicators\" [attr.dir]=\"dir\">\n <ng-container *ngIf=\"pageIndicator\">\n <ng-container *ngFor=\"let item of pageIndicatorsCountArray; let i = index\">\n <li\n [attr.data-slide-to]=\"i + 1\"\n class=\"fd-carousel__page-indicator\"\n [class.fd-carousel__page-indicator--active]=\"i === currentActiveSlidesStartIndex\"\n ></li>\n </ng-container>\n </ng-container>\n </ol>\n </ng-container>\n</ng-template>\n\n<ng-template #buttonLeft>\n <button\n fd-button\n class=\"fd-carousel__button fd-carousel__button--left\"\n [style.z-index]=\"1\"\n data-slide=\"previous\"\n [attr.aria-label]=\"leftNavigationBtnLabel || ('coreCarousel.leftNavigationBtnLabel' | fdTranslate)\"\n (click)=\"previous(); $event.stopPropagation()\"\n [disabled]=\"leftButtonDisabled\"\n [attr.title]=\"leftNavigationBtnLabel || ('coreCarousel.leftNavigationBtnLabel' | fdTranslate)\"\n glyph=\"slim-arrow-left\"\n ></button>\n</ng-template>\n\n<ng-template #buttonRight>\n <button\n fd-button\n class=\"fd-carousel__button fd-carousel__button--right\"\n [style.z-index]=\"1\"\n data-slide=\"next\"\n [attr.aria-label]=\"rightNavigationBtnLabel || ('coreCarousel.rightNavigationBtnLabel' | fdTranslate)\"\n (click)=\"next(); $event.stopPropagation()\"\n [disabled]=\"rightButtonDisabled\"\n [attr.title]=\"rightNavigationBtnLabel || ('coreCarousel.rightNavigationBtnLabel' | fdTranslate)\"\n glyph=\"slim-arrow-right\"\n ></button>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-carousel{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;max-width:100%;min-width:15.5rem;padding:0;width:100%}.fd-carousel:after,.fd-carousel:before{box-sizing:inherit;font-size:inherit}.fd-carousel.is-focus,.fd-carousel:focus{outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth)}.fd-carousel.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel:hover .fd-carousel__content .fd-carousel__button{display:block}.fd-carousel .fd-carousel__content{-webkit-box-sizing:border-box;-ms-flex-preferred-size:100%;background:var(--fdCarousel_Content_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);flex-basis:100%;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;position:relative}.fd-carousel .fd-carousel__content:after,.fd-carousel .fd-carousel__content:before{box-sizing:inherit;font-size:inherit}.fd-carousel .fd-carousel__content .fd-carousel__button{-webkit-box-shadow:var(--sapContent_Shadow1);-webkit-transform:translateY(-50%);box-shadow:var(--sapContent_Shadow1);display:none;margin:0;position:absolute;top:50%;transform:translateY(-50%)}.fd-carousel .fd-carousel__content .fd-carousel__button--left{left:.5rem}.fd-carousel .fd-carousel__content .fd-carousel__button--left[dir=rtl],[dir=rtl] .fd-carousel .fd-carousel__content .fd-carousel__button--left{left:auto;right:.5rem}.fd-carousel .fd-carousel__content .fd-carousel__button--right{right:.5rem}.fd-carousel .fd-carousel__content .fd-carousel__button--right[dir=rtl],[dir=rtl] .fd-carousel .fd-carousel__content .fd-carousel__button--right{left:.5rem;right:auto}.fd-carousel .fd-carousel__content .fd-carousel__item img{height:auto;min-width:100%}.fd-carousel .fd-carousel__content--horizontal .fd-carousel__slides{-ms-touch-action:pan-y;display:flex;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;touch-action:pan-y;width:100%}.fd-carousel .fd-carousel__content--horizontal .fd-carousel__item img{min-height:100%;min-width:auto;width:auto}.fd-carousel__slides{-webkit-box-sizing:border-box;-ms-touch-action:pan-x;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;min-height:-moz-fit-content;min-height:fit-content;padding:0;touch-action:pan-x;user-select:none}.fd-carousel__slides:after,.fd-carousel__slides:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;display:none;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);line-height:0;margin:0;padding:0}.fd-carousel__item:after,.fd-carousel__item:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item--active{display:block}.fd-carousel__item img{pointer-events:none}.fd-carousel__page-indicator-container{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:var(--sapPageFooter_Background);border:0;border-top:var(--fdCarousel_Pagination_Border);box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:3.5rem;min-height:2.75rem;padding:.375rem .5rem}.fd-carousel__page-indicator-container:after,.fd-carousel__page-indicator-container:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator-container:first-child{border-bottom:var(--fdCarousel_Pagination_Border);border-top:none}.fd-carousel__page-indicators{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;min-width:9rem;padding:.5rem}.fd-carousel__page-indicators:after,.fd-carousel__page-indicators:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator{-webkit-box-sizing:border-box;background-color:var(--fdCarousel_Dot_Background);border:0;border:var(--fdCarousel_Dot_Border);border-radius:50%;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdCarousel_Dot_Size);line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;margin:var(--fdCarousel_Dot_Margin);padding:0;width:var(--fdCarousel_Dot_Size)}.fd-carousel__page-indicator:after,.fd-carousel__page-indicator:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator--active{background-color:var(--fdCarousel_Dot_Selected_Background);border:var(--fdCarousel_Dot_Selected_Border);height:.5rem;margin:0 .25rem;width:.5rem}.fd-carousel__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapPageFooter_TextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.fd-carousel__text:after,.fd-carousel__text:before{box-sizing:inherit;font-size:inherit}.fd-carousel .fd-carousel__button{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:50%;display:flex;height:2.125rem;justify-content:center;margin:.25rem;max-height:2.125rem;max-width:2.125rem;min-height:2.125rem;min-width:2.125rem;padding:0;width:2.125rem}.fd-carousel .fd-carousel__button:before{inset:-.25rem;width:auto}.fd-carousel .fd-carousel__button[dir=rtl]>[class*=sap-icon],[dir=rtl] .fd-carousel .fd-carousel__button>[class*=sap-icon]{transform:rotate(180deg)}.fd-carousel .fd-carousel__button.is-hover,.fd-carousel .fd-carousel__button:hover{box-shadow:var(--sapContent_Shadow1)}.fd-carousel--no-navigation .fd-carousel__button,.fd-carousel--no-navigation.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel--no-navigation:hover .fd-carousel__content .fd-carousel__button{display:none}.fd-carousel__item fd-busy-indicator{display:block;height:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: i5.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
577
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
581
|
+
CarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CarouselComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.CarouselService }, { token: i0.NgZone }, { token: i2.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
582
|
+
CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CarouselComponent, selector: "fd-carousel", inputs: { id: "id", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", pageIndicatorsOrientation: "pageIndicatorsOrientation", height: "height", width: "width", loop: "loop", leftNavigationBtnLabel: "leftNavigationBtnLabel", rightNavigationBtnLabel: "rightNavigationBtnLabel", navigation: "navigation", navigatorInPageIndicator: "navigatorInPageIndicator", numericIndicator: "numericIndicator", pageIndicatorContainer: "pageIndicatorContainer", pageIndicator: "pageIndicator", resourceStrings: "resourceStrings", slideTransitionDuration: "slideTransitionDuration", swipeEnabled: "swipeEnabled", vertical: "vertical", visibleSlidesCount: "visibleSlidesCount" }, outputs: { slideChange: "slideChange" }, host: { listeners: { "keydown.arrowright": "onKeydownArrowRight($event)", "keydown.arrowleft": "onKeydownArrowLeft($event)" }, properties: { "style.width": "width", "attr.id": "this.id" } }, providers: [CarouselService], queries: [{ propertyName: "slides", predicate: CarouselItemComponent, descendants: true }], viewQueries: [{ propertyName: "slideContainer", first: true, predicate: ["slideContainer"], descendants: true }, { propertyName: "carouselContainer", first: true, predicate: ["carouselContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"fd-carousel\"\n [class.fd-carousel--no-navigation]=\"!navigation\"\n data-ride=\"carousel\"\n tabindex=\"0\"\n [style.height]=\"height\"\n [style.width]=\"width\"\n [attr.dir]=\"dir\"\n role=\"region\"\n #carouselContainer\n (click)=\"_focus()\"\n>\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'top'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-carousel__content\"\n [class.fd-carousel__content--horizontal]=\"!vertical\"\n [style.width]=\"_contentSizePx\"\n >\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <div #slideContainer class=\"fd-carousel__slides\">\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'bottom'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div style=\"display: none\" role=\"region\" [attr.id]=\"id + '-accessibility'\" aria-live=\"polite\" dir=\"ltr\">\n {{ screenReaderLabel }}\n </div>\n</div>\n\n<ng-template #pageIndicatorContainer>\n <div class=\"fd-carousel__page-indicator-container\">\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"pageIndicators\"> </ng-container>\n\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageIndicators>\n <ng-container *ngIf=\"numericIndicator\">\n <div class=\"fd-carousel__page-indicators\">\n <ng-container *ngIf=\"pageIndicator\">\n <div class=\"fd-carousel__text\" dir=\"ltr\">\n {{ getPageIndicatorLabel }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!numericIndicator && _showNavigationButtonInPageIndicatorContainer\">\n <ol class=\"fd-carousel__page-indicators\" [attr.dir]=\"dir\">\n <ng-container *ngIf=\"pageIndicator\">\n <ng-container *ngFor=\"let item of pageIndicatorsCountArray; let i = index\">\n <li\n [attr.data-slide-to]=\"i + 1\"\n class=\"fd-carousel__page-indicator\"\n [class.fd-carousel__page-indicator--active]=\"i === currentActiveSlidesStartIndex\"\n ></li>\n </ng-container>\n </ng-container>\n </ol>\n </ng-container>\n</ng-template>\n\n<ng-template #buttonLeft>\n <button\n fd-button\n class=\"fd-carousel__button fd-carousel__button--left\"\n [style.z-index]=\"1\"\n data-slide=\"previous\"\n [attr.aria-label]=\"leftNavigationBtnLabel || ('coreCarousel.leftNavigationBtnLabel' | fdTranslate)\"\n (click)=\"previous(); $event.stopPropagation()\"\n [disabled]=\"leftButtonDisabled\"\n [attr.title]=\"leftNavigationBtnLabel || ('coreCarousel.leftNavigationBtnLabel' | fdTranslate)\"\n glyph=\"slim-arrow-left\"\n ></button>\n</ng-template>\n\n<ng-template #buttonRight>\n <button\n fd-button\n class=\"fd-carousel__button fd-carousel__button--right\"\n [style.z-index]=\"1\"\n data-slide=\"next\"\n [attr.aria-label]=\"rightNavigationBtnLabel || ('coreCarousel.rightNavigationBtnLabel' | fdTranslate)\"\n (click)=\"next(); $event.stopPropagation()\"\n [disabled]=\"rightButtonDisabled\"\n [attr.title]=\"rightNavigationBtnLabel || ('coreCarousel.rightNavigationBtnLabel' | fdTranslate)\"\n glyph=\"slim-arrow-right\"\n ></button>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-carousel{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;max-width:100%;min-width:15.5rem;padding:0;width:100%}.fd-carousel:after,.fd-carousel:before{box-sizing:inherit;font-size:inherit}.fd-carousel.is-focus,.fd-carousel:focus{outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth)}.fd-carousel.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel:hover .fd-carousel__content .fd-carousel__button{display:block}.fd-carousel .fd-carousel__content{-webkit-box-sizing:border-box;-ms-flex-preferred-size:100%;background:var(--fdCarousel_Content_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);flex-basis:100%;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;position:relative}.fd-carousel .fd-carousel__content:after,.fd-carousel .fd-carousel__content:before{box-sizing:inherit;font-size:inherit}.fd-carousel .fd-carousel__content .fd-carousel__button{-webkit-box-shadow:var(--sapContent_Shadow1);-webkit-transform:translateY(-50%);box-shadow:var(--sapContent_Shadow1);display:none;margin:0;position:absolute;top:50%;transform:translateY(-50%)}.fd-carousel .fd-carousel__content .fd-carousel__button--left{left:.5rem}.fd-carousel .fd-carousel__content .fd-carousel__button--left[dir=rtl],[dir=rtl] .fd-carousel .fd-carousel__content .fd-carousel__button--left{left:auto;right:.5rem}.fd-carousel .fd-carousel__content .fd-carousel__button--right{right:.5rem}.fd-carousel .fd-carousel__content .fd-carousel__button--right[dir=rtl],[dir=rtl] .fd-carousel .fd-carousel__content .fd-carousel__button--right{left:.5rem;right:auto}.fd-carousel .fd-carousel__content .fd-carousel__item img{height:auto;min-width:100%}.fd-carousel .fd-carousel__content--horizontal .fd-carousel__slides{-ms-touch-action:pan-y;display:flex;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;touch-action:pan-y;width:100%}.fd-carousel .fd-carousel__content--horizontal .fd-carousel__item img{min-height:100%;min-width:auto;width:auto}.fd-carousel__slides{-webkit-box-sizing:border-box;-ms-touch-action:pan-x;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;min-height:-moz-fit-content;min-height:fit-content;padding:0;touch-action:pan-x;user-select:none}.fd-carousel__slides:after,.fd-carousel__slides:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;display:none;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);line-height:0;margin:0;padding:0}.fd-carousel__item:after,.fd-carousel__item:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item--active{display:block}.fd-carousel__item img{pointer-events:none}.fd-carousel__page-indicator-container{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:var(--sapPageFooter_Background);border:0;border-top:var(--fdCarousel_Pagination_Border);box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:3.5rem;min-height:2.75rem;padding:.375rem .5rem}.fd-carousel__page-indicator-container:after,.fd-carousel__page-indicator-container:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator-container:first-child{border-bottom:var(--fdCarousel_Pagination_Border);border-top:none}.fd-carousel__page-indicators{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;min-width:9rem;padding:.5rem}.fd-carousel__page-indicators:after,.fd-carousel__page-indicators:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator{-webkit-box-sizing:border-box;background-color:var(--fdCarousel_Dot_Background);border:0;border:var(--fdCarousel_Dot_Border);border-radius:50%;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdCarousel_Dot_Size);line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;margin:var(--fdCarousel_Dot_Margin);padding:0;width:var(--fdCarousel_Dot_Size)}.fd-carousel__page-indicator:after,.fd-carousel__page-indicator:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator--active{background-color:var(--fdCarousel_Dot_Selected_Background);border:var(--fdCarousel_Dot_Selected_Border);height:.5rem;margin:0 .25rem;width:.5rem}.fd-carousel__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapPageFooter_TextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.fd-carousel__text:after,.fd-carousel__text:before{box-sizing:inherit;font-size:inherit}.fd-carousel .fd-carousel__button{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:50%;display:flex;height:2.125rem;justify-content:center;margin:.25rem;max-height:2.125rem;max-width:2.125rem;min-height:2.125rem;min-width:2.125rem;padding:0;width:2.125rem}.fd-carousel .fd-carousel__button:before{inset:-.25rem;width:auto}.fd-carousel .fd-carousel__button[dir=rtl]>[class*=sap-icon],[dir=rtl] .fd-carousel .fd-carousel__button>[class*=sap-icon]{transform:rotate(180deg)}.fd-carousel .fd-carousel__button.is-hover,.fd-carousel .fd-carousel__button:hover{box-shadow:var(--sapContent_Shadow1)}.fd-carousel--no-navigation .fd-carousel__button,.fd-carousel--no-navigation.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel--no-navigation:hover .fd-carousel__content .fd-carousel__button{display:none}.fd-carousel__item fd-busy-indicator{display:block;height:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: i5.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
583
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CarouselComponent, decorators: [{
|
|
578
584
|
type: Component,
|
|
579
585
|
args: [{ selector: 'fd-carousel', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CarouselService], host: {
|
|
580
586
|
'[style.width]': 'width'
|
|
@@ -642,4 +648,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
642
648
|
type: HostListener,
|
|
643
649
|
args: ['keydown.arrowleft', ['$event']]
|
|
644
650
|
}] } });
|
|
645
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHlCQUF5QixFQUE2QixNQUFNLDJCQUEyQixDQUFDO0FBQ2pHLE9BQU8sRUFBeUMsZUFBZSxFQUFnQixNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBRTFHLGtEQUFrRDtBQUNsRCxNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBQztBQUlwQyxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3RCLG1EQUFJLENBQUE7SUFDSixtREFBSSxDQUFBO0lBQ0osMkRBQVEsQ0FBQTtBQUNaLENBQUMsRUFKVyxjQUFjLEtBQWQs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S0FBSztnQkFLTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQVFGLGVBQWU7c0JBRGxCLEtBQUs7Z0JBY04sdUJBQXVCO3NCQUR0QixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS0Ysa0JBQWtCO3NCQURyQixLQUFLO2dCQVlHLFdBQVc7c0JBRG5CLE1BQU07Z0JBS1AsTUFBTTtzQkFETCxlQUFlO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFLN0QsY0FBYztzQkFEYixTQUFTO3VCQUFDLGdCQUFnQjtnQkFLM0IsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLG1CQUFtQjtnQkF3SzlCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFROUMsa0JBQWtCO3NCQURqQixZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHJlc2l6ZU9ic2VydmFibGUsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmltcG9ydCB7IENhcm91c2VsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY2Fyb3VzZWwtaXRlbS9jYXJvdXNlbC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJvdXNlbFJlc291cmNlU3RyaW5nc0VOLCBGZENhcm91c2VsUmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi9pMThuL2Nhcm91c2VsLXJlc291cmNlcyc7XG5pbXBvcnQgeyBDYXJvdXNlbENvbmZpZywgQ2Fyb3VzZWxJdGVtSW50ZXJmYWNlLCBDYXJvdXNlbFNlcnZpY2UsIFBhbkVuZE91dHB1dCB9IGZyb20gJy4vY2Fyb3VzZWwuc2VydmljZSc7XG5cbi8qKiBQYWdlIGxpbWl0IHRvIHN3aXRjaCB0byBudW1lcmljYWwgaW5kaWNhdG9yICovXG5jb25zdCBJQ09OX1BBR0VfSU5ESUNBVE9SX0xJTUlUID0gODtcblxuZXhwb3J0IHR5cGUgUGFnZUluZGljYXRvcnNPcmllbnRhdGlvbiA9ICdib3R0b20nIHwgJ3RvcCc7XG5cbmV4cG9ydCBlbnVtIFNsaWRlRGlyZWN0aW9uIHtcbiAgICBOb25lLFxuICAgIE5FWFQsXG4gICAgUFJFVklPVVNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaXR0aW5nU2xpZGVzQW5kV2lkdGgge1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgc2xpZGVzOiBudW1iZXI7XG59XG5cbmxldCBjYXJvdXNlbENvdW50ZXIgPSAwO1xuXG5jbGFzcyBDYXJvdXNlbEFjdGl2ZVNsaWRlcyB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGFjdGl2ZUl0ZW1zOiBDYXJvdXNlbEl0ZW1Db21wb25lbnRbXSwgcHVibGljIHJlYWRvbmx5IHNsaWRlRGlyZWN0aW9uOiBzdHJpbmcpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtY2Fyb3VzZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXJvdXNlbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW0Nhcm91c2VsU2VydmljZV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW3N0eWxlLndpZHRoXSc6ICd3aWR0aCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIENhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkRlc3Ryb3kge1xuICAgIC8qKiBJRCBmb3IgdGhlIENhcm91c2VsLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBpZCA9IGBmZC1jYXJvdXNlbC0ke2Nhcm91c2VsQ291bnRlcisrfWA7XG5cbiAgICAvKiogU2V0cyBhcmlhLWxhYmVsIGF0dHJpYnV0ZSBmb3IgY2Fyb3VzZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbCA9IG51bGw7XG5cbiAgICAvKiogU2V0cyBhcmlhLWxhYmVsbGVkYnkgYXR0cmlidXRlIGZvciBjYXJvdXNlbCAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnk6IHN0cmluZztcblxuICAgIC8qKiBTZXRzIGFyaWEtZGVzY3JpYmVkYnkgYXR0cmlidXRlIGZvciBjYXJvdXNlbCAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYURlc2NyaWJlZEJ5OiBzdHJpbmc7XG5cbiAgICAvKiogU2V0cyBwb3NpdGlvbiBvZiBwYWdlIGluZGljYXRvciBjb250YWluZXIuIERlZmF1bHQgcG9zaXRpb24gaXMgYm90dG9tLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGFnZUluZGljYXRvcnNPcmllbnRhdGlvbjogUGFnZUluZGljYXRvcnNPcmllbnRhdGlvbiA9ICdib3R0b20nO1xuXG4gICAgLyoqIEhlaWdodCBmb3IgY2Fyb3VzZWwgY29udGFpbmVyICovXG4gICAgQElucHV0KClcbiAgICBoZWlnaHQ6IHN0cmluZztcblxuICAgIC8qKiBXaWR0aCBmb3IgY2Fyb3VzZWwgY29udGFpbmVyICovXG4gICAgQElucHV0KClcbiAgICB3aWR0aCA9ICcxMDAlJztcblxuICAgIC8qKiBJZiBjYXJvdXNlbCBpcyBpbiBjaXJjdWxhciBsb29wICovXG4gICAgQElucHV0KClcbiAgICBsb29wID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZFxuICAgICAqIExhYmVsIGZvciBsZWZ0IG5hdmlnYXRpb24gYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBsZWZ0TmF2aWdhdGlvbkJ0bkxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZFxuICAgICAqIExhYmVsIGZvciByaWdodCBuYXZpZ2F0aW9uIGJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmlnaHROYXZpZ2F0aW9uQnRuTGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBTaG93cy9oaWRlcyBvcHRpb25hbCBuYXZpZ2F0aW9uIGJ1dHRvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGlvbiA9IHRydWU7XG5cbiAgICAvKiogU2hvdyBuYXZpZ2F0aW9uIGJ1dHRvbiBpbiBwYWdlIGluZGljYXRvciBjb250YWluZXIgb3IgaW5zaWRlIGNvbnRlbnQuIERlZmF1bHQgaXMgcGFnZSBpbmRpY2F0b3IgY29udGFpbmVyIG9uIHRydWUgdmFsdWUgKi9cbiAgICBASW5wdXQoKVxuICAgIG5hdmlnYXRvckluUGFnZUluZGljYXRvciA9IHRydWU7XG5cbiAgICAvKiogQ29udmVydCB0byBOdW1lcmljIHBhZ2UgaW5kaWNhdG9yICovXG4gICAgQElucHV0KClcbiAgICBudW1lcmljSW5kaWNhdG9yID0gZmFsc2U7XG5cbiAgICAvKiogU2hvd3MvaGlkZXMgb3B0aW9uYWwgcGFnZSBpbmRpY2F0b3IgY29udGFpbmVyICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGFnZUluZGljYXRvckNvbnRhaW5lciA9IHRydWU7XG5cbiAgICAvKiogU2hvd3MvaGlkZXMgb3B0aW9uYWwgcGFnZSBpbmRpY2F0b3IgKi9cbiAgICBASW5wdXQoKVxuICAgIHBhZ2VJbmRpY2F0b3IgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gYWNjZXNzb3IgdGhhdCBzZXRzIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqIEJ5IGRlZmF1bHQgaXQgdXNlcyBFTiByZXNvdXJjZXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgcmVzb3VyY2VTdHJpbmdzKHZhbHVlOiBGZENhcm91c2VsUmVzb3VyY2VTdHJpbmdzKSB7XG4gICAgICAgIHRoaXMuX3Jlc291cmNlU3RyaW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX3Jlc291cmNlU3RyaW5ncywgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIGFjY2Vzc29yIHRoYXQgcmV0dXJucyB0aGUgcmVzb3VyY2Ugc3RyaW5ncy5cbiAgICAgKi9cbiAgICBnZXQgcmVzb3VyY2VTdHJpbmdzKCk6IEZkQ2Fyb3VzZWxSZXNvdXJjZVN0cmluZ3Mge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VTdHJpbmdzO1xuICAgIH1cblxuICAgIC8qKiBTZXRzIHNsaWRpbmcgZHVyYXRpb24gaW4gbWlsbGllIHNlY29uZHMuIERlZmF1bHQgaXMgMTUwICovXG4gICAgQElucHV0KClcbiAgICBzbGlkZVRyYW5zaXRpb25EdXJhdGlvbiA9IDE1MDtcblxuICAgIC8qKiBJcyBzd2lwZSBlbmFibGVkICovXG4gICAgQElucHV0KClcbiAgICBzd2lwZUVuYWJsZWQgPSB0cnVlO1xuXG4gICAgLyoqIElzIGNhcm91c2VsIGlzIHZlcnRpY2FsLiBEZWZhdWx0IHZhbHVlIGlzIGZhbHNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmVydGljYWwgPSBmYWxzZTtcblxuICAgIC8qKiBOdW1iZXIgb2YgaXRlbXMgdG8gYmUgdmlzaWJsZSBhdCBhIHRpbWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2aXNpYmxlU2xpZGVzQ291bnQodmFsdWU6IG51bWJlciB8ICdhdXRvJykge1xuICAgICAgICB0aGlzLl92aXNpYmxlU2xpZGVzQ291bnQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudCA9IHRoaXMuX2dldFZpc2libGVTbGlkZXNDb3VudCgpO1xuICAgIH1cblxuICAgIGdldCB2aXNpYmxlU2xpZGVzQ291bnQoKTogbnVtYmVyIHwgJ2F1dG8nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVTbGlkZXNDb3VudDtcbiAgICB9XG5cbiAgICAvKiogQW4gZXZlbnQgdGhhdCBpcyBlbWl0dGVkIGFmdGVyIGEgc2xpZGUgdHJhbnNpdGlvbiBoYXMgaGFwcGVuZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzbGlkZUNoYW5nZTogRXZlbnRFbWl0dGVyPENhcm91c2VsQWN0aXZlU2xpZGVzPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2Fyb3VzZWxBY3RpdmVTbGlkZXM+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oQ2Fyb3VzZWxJdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgc2xpZGVzOiBRdWVyeUxpc3Q8Q2Fyb3VzZWxJdGVtQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnc2xpZGVDb250YWluZXInKVxuICAgIHNsaWRlQ29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIENhcm91c2VsIGNvbnRhaW5lciBlbGVtZW50LiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2Nhcm91c2VsQ29udGFpbmVyJylcbiAgICBjYXJvdXNlbENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuIFN0YXJ0IGluZGV4IG9mIGN1cnJlbnRseSBhY3RpdmUgaXRlbXMgKi9cbiAgICBjdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiBoYW5kbGVzIHJ0bCBzZXJ2aWNlICovXG4gICAgZGlyOiBEaXJlY3Rpb24gPSAnbHRyJztcblxuICAgIC8qKiBAaGlkZGVuIE1ha2UgbGVmdCBuYXZpZ2F0aW9uIGJ1dHRvbiBkaXNhYmxlZCAqL1xuICAgIGxlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gTWFrZSByaWdodCBuYXZpZ2F0aW9uIGJ1dHRvbiBkaXNhYmxlZCAqL1xuICAgIHJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuIEZha2UgYXJyYXkgZm9yIGNvdW50aW5nIG51bWJlciBvZiBwYWdlIGluZGljYXRvciAqL1xuICAgIHBhZ2VJbmRpY2F0b3JzQ291bnRBcnJheTogbnVtYmVyW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NsaWRlc1dyYXBwZXJTaXplID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9jb250ZW50U2l6ZVB4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zbGlkZXNXcmFwcGVyU2l6ZSA/IGAke3RoaXMuX3NsaWRlc1dyYXBwZXJTaXplfXB4YCA6IHRoaXMud2lkdGg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92aXNpYmxlU2xpZGVzQ291bnQ6IG51bWJlciB8ICdhdXRvJyA9IDE7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Zpc2libGVTbGlkZXNOdW1lcmljQ291bnQgPSAxO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNvdXJjZVN0cmluZ3MgPSBDYXJvdXNlbFJlc291cmNlU3RyaW5nc0VOO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb25maWc6IENhcm91c2VsQ29uZmlnID0ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NsaWRlc0NvcHk6IENhcm91c2VsSXRlbUNvbXBvbmVudFtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3ByZXZpb3VzVmlzaWJsZVNsaWRlc0NvdW50OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NsaWRlU3dpcGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jYXJvdXNlbFNlcnZpY2U6IENhcm91c2VsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfem9uZTogTmdab25lLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlVG9SdGwoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gT24gY2Fyb3VzZWwgbG9hZCwgZGlzcGxheSBmaXJzdCBzbGlkZSArIG51bWJlciBvZiBzbGlkZSB2aXNpYmxlXG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSAwO1xuXG4gICAgICAgIC8vIENoYW5nZSBwYWdpbmF0aW9uIGRpc3BsYXkgdG8gbnVtZXJpYywgaWYgaXRlbSBjb3VudCBpcyBtb3JlIHRoYW4gOFxuICAgICAgICBpZiAodGhpcy5zbGlkZXMubGVuZ3RoID4gSUNPTl9QQUdFX0lORElDQVRPUl9MSU1JVCkge1xuICAgICAgICAgICAgdGhpcy5udW1lcmljSW5kaWNhdG9yID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNsaWRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplQ2Fyb3VzZWwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIC8vIERpc2FibGUgc3dpcGUgd2hlbiB0aGVyZSBpcyBubyBjYXJvdXNlbCBpdGVtXG4gICAgICAgICAgICB0aGlzLnN3aXBlRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBLZWVwIGNvcHkgb2Ygb3JpZ2luYWwgc2xpZGUgYXJyYXksIGZvciBpbmRpY2F0b3IgcHVycG9zZS5cbiAgICAgICAgLy8gSW4gY2FzZSBvZiBsb29wZWQgY2Fyb3VzZWwsIG9yaWdpbmFsIHNsaWRlcyBhcnJheSBjaGFuZ2VzLlxuICAgICAgICB0aGlzLl9zbGlkZXNDb3B5ID0gdGhpcy5zbGlkZXMudG9BcnJheSgpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmliZVNlcnZpY2VFdmVudHMoKTtcblxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gZHluYW1pYyB1cGRhdGUgb2Ygc2xpZGVzXG4gICAgICAgIHRoaXMuc2xpZGVzLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9vblNsaWRlVXBkYXRlcygpKTtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZVNlcnZpY2VDb25maWcoKTtcbiAgICAgICAgdGhpcy5fY2Fyb3VzZWxTZXJ2aWNlLmluaXRpYWxpc2UodGhpcy5fY29uZmlnLCB0aGlzLnNsaWRlcywgdGhpcy5zbGlkZUNvbnRhaW5lcik7XG4gICAgICAgIHRoaXMuX3ByZXZpb3VzVmlzaWJsZVNsaWRlc0NvdW50ID0gdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudDtcblxuICAgICAgICB0aGlzLl9yZXNpemVDb250ZW50Q29udGFpbmVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1Zpc2libGVTbGlkZXNDb3VudCAmJiB0aGlzLl9wcmV2aW91c1Zpc2libGVTbGlkZXNDb3VudCAhPT0gdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZUNhcm91c2VsKCk7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplU2VydmljZUNvbmZpZygpO1xuICAgICAgICAgICAgdGhpcy5fY2Fyb3VzZWxTZXJ2aWNlLnVwZGF0ZUNvbmZpZyh0aGlzLl9jb25maWcpO1xuICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNWaXNpYmxlU2xpZGVzQ291bnQgPSB0aGlzLl92aXNpYmxlU2xpZGVzTnVtZXJpY0NvdW50O1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfc2hvd05hdmlnYXRpb25CdXR0b25JblBhZ2VJbmRpY2F0b3JDb250YWluZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRvckluUGFnZUluZGljYXRvciAmJiB0aGlzLnBhZ2VJbmRpY2F0b3JzQ291bnRBcnJheS5sZW5ndGggPiAxO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9zaG93TmF2aWdhdGlvbkJ1dHRvbkluQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLm5hdmlnYXRvckluUGFnZUluZGljYXRvciAmJiB0aGlzLnBhZ2VJbmRpY2F0b3JzQ291bnRBcnJheS5sZW5ndGggPiAxO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9zaG93UGFnZUluZGljYXRvckNvbnRhaW5lcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZUluZGljYXRvckNvbnRhaW5lciAmJiAodGhpcy5wYWdlSW5kaWNhdG9yc0NvdW50QXJyYXkubGVuZ3RoID4gMCB8fCB0aGlzLm51bWVyaWNJbmRpY2F0b3IpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGdldFBhZ2VJbmRpY2F0b3JMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCArIDF9ICR7dGhpcy5yZXNvdXJjZVN0cmluZ3MuZmRfY2Fyb3VzZWxfb2Z9ICR7XG4gICAgICAgICAgICB0aGlzLnBhZ2VJbmRpY2F0b3JzQ291bnRBcnJheS5sZW5ndGhcbiAgICAgICAgfWA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgc2NyZWVuUmVhZGVyTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMucmVzb3VyY2VTdHJpbmdzLmZkX2Nhcm91c2VsX3JlYWRlcn0gJHt0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ICsgMX0gJHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VTdHJpbmdzLmZkX2Nhcm91c2VsX29mXG4gICAgICAgIH0gJHt0aGlzLnBhZ2VJbmRpY2F0b3JzQ291bnRBcnJheS5sZW5ndGh9YDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChlbCAhPT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgZWwuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIGdldCB2YWx1ZSBmb3IgcnRsICovXG4gICAgX2lzUnRsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnRsU2VydmljZT8ucnRsLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93cmlnaHQnLCBbJyRldmVudCddKVxuICAgIG9uS2V5ZG93bkFycm93UmlnaHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5faXNSdGwoKSA/IHRoaXMucHJldmlvdXMoKSA6IHRoaXMubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2xlZnQnLCBbJyRldmVudCddKVxuICAgIG9uS2V5ZG93bkFycm93TGVmdChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLl9pc1J0bCgpID8gdGhpcy5uZXh0KCkgOiB0aGlzLnByZXZpb3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIFRyYW5zaXRpb25zIHRvIHRoZSBwcmV2aW91cyBzbGlkZSBpbiB0aGUgY2Fyb3VzZWwuICovXG4gICAgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5sb29wICYmIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9hZGp1c3RBY3RpdmVJdGVtUG9zaXRpb24oU2xpZGVEaXJlY3Rpb24uUFJFVklPVVMpO1xuICAgICAgICB0aGlzLl9wcmV2ZW50RGVmYXVsdEJ0bkZvY3VzKCk7XG4gICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5waWNrUHJldmlvdXMoKTtcblxuICAgICAgICB0aGlzLl9ub3RpZnlTbGlkZUNoYW5nZShTbGlkZURpcmVjdGlvbi5QUkVWSU9VUyk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogVHJhbnNpdGlvbnMgdG8gdGhlIG5leHQgc2xpZGUgaW4gdGhlIGNhcm91c2VsLiAqL1xuICAgIG5leHQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5sb29wICYmIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPj0gdGhpcy5wYWdlSW5kaWNhdG9yc0NvdW50QXJyYXkubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTW92aW5nIHRvIG5leHQgc2xpZGVcbiAgICAgICAgdGhpcy5sZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fYWRqdXN0QWN0aXZlSXRlbVBvc2l0aW9uKFNsaWRlRGlyZWN0aW9uLk5FWFQpO1xuICAgICAgICB0aGlzLl9wcmV2ZW50RGVmYXVsdEJ0bkZvY3VzKCk7XG4gICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5waWNrTmV4dCgpO1xuICAgICAgICB0aGlzLl9ub3RpZnlTbGlkZUNoYW5nZShTbGlkZURpcmVjdGlvbi5ORVhUKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFN1YnNjcmliZSB0byBjYXJvdXNlbCBzZXJ2aWNlIGV2ZW50cyAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmliZVNlcnZpY2VFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5hY3RpdmVDaGFuZ2UkLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuX29uU2xpZGVTd2lwZShldmVudCkpO1xuICAgICAgICB0aGlzLl9jYXJvdXNlbFNlcnZpY2UuZHJhZ1N0YXRlQ2hhbmdlJC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB0aGlzLl9vblNsaWRlRHJhZyhldmVudCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gUHJldmVudCBuYXRpdmUgZm9jdXMgZmxvdyByZWxhdGVkIHRvIGJ1dHRvbiwgaWYgYnV0dG9uIHdpbGwgYmUgZGlzYWJsZSBvbiBmb2N1cyBzdGF0ZS5cbiAgICAgKiBJdCB3b3JrcyBvbmx5IGlmIGNhcm91c2VsIGlzIG5vdCBpbiBjaXJjdWxhciBsb29wLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3ByZXZlbnREZWZhdWx0QnRuRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxvb3ApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0ZpcnN0ID0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9PT0gMDtcbiAgICAgICAgY29uc3QgaXNMYXN0ID0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9PT0gdGhpcy5wYWdlSW5kaWNhdG9yc0NvdW50QXJyYXkubGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKGlzRmlyc3QgfHwgaXNMYXN0KSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQWRqdXN0IHBvc2l0aW9uIG9mIGFjdGl2ZSBpdGVtLCBiYXNlZCBvbiBzbGlkZSBkaXJlY3Rpb24gKi9cbiAgICBwcml2YXRlIF9hZGp1c3RBY3RpdmVJdGVtUG9zaXRpb24oc2xpZGVEaXJlY3Rpb246IFNsaWRlRGlyZWN0aW9uLCBzdGVwOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgICAgIC8vIE1vdmUgb25lIHN0ZXAgaW4gdGhlIGRpcmVjdGlvblxuICAgICAgICBjb25zdCBwb3NpdGlvbkFkanVzdG1lbnQgPSBzbGlkZURpcmVjdGlvbiA9PT0gU2xpZGVEaXJlY3Rpb24uTkVYVCA/IHN0ZXAgOiAtc3RlcDtcbiAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggKyBwb3NpdGlvbkFkanVzdG1lbnQ7XG5cbiAgICAgICAgLy8gSWYgY2Fyb3VzZWwgc2V0IHRvIGxvb3BcbiAgICAgICAgaWYgKHRoaXMubG9vcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IHRoaXMuc2xpZGVzLmxlbmd0aCArIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPj0gdGhpcy5zbGlkZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggJSB0aGlzLnNsaWRlcy5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9idXR0b25WaXNpYmlsaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBIYW5kbGVzIG5hdmlnYXRpb24gYnV0dG9uIHZpc2liaWxpdHkgKi9cbiAgICBwcml2YXRlIF9idXR0b25WaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubG9vcCkge1xuICAgICAgICAgICAgLy8gTmVlZCB0byBkaXNhYmxlIG5hdmlnYXRpb24gYnV0dG9uIGlmIGVpdGhlciBkaXJlY3Rpb24gbGltaXQgaGFzIHJlYWNoZWQuXG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zbGlkZXMubGVuZ3RoIC0gMSA9PT0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudCA+IDEgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ICsgdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudCA+PSB0aGlzLnNsaWRlcy5sZW5ndGhcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnNsaWRlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEhhbmRsZSB3aGVuIHNsaWRlIGlzIGFkZGVkIG9yIHJlbW92ZWQgKi9cbiAgICBwcml2YXRlIF9vblNsaWRlVXBkYXRlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2xpZGVzQ29weSA9IHRoaXMuc2xpZGVzLnRvQXJyYXkoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IDA7XG4gICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5pbml0aWFsaXNlKHRoaXMuX2NvbmZpZywgdGhpcy5zbGlkZXMsIHRoaXMuc2xpZGVDb250YWluZXIpO1xuICAgICAgICB0aGlzLl9jYXJvdXNlbFNlcnZpY2UuYWN0aXZlID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMudmVydGljYWwpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuc2xpZGVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsICd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlWSgwcHgpJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNsaWRlQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50LCAndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZVgoMHB4KScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVDYXJvdXNlbCgpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gSW5pdGlhbGl6ZSBjYXJvdXNlbCB3aXRoIHZpc2libGUgaXRlbXMgKi9cbiAgICBwcml2YXRlIF9pbml0aWFsaXplQ2Fyb3VzZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3pvbmUub25NaWNyb3Rhc2tFbXB0eS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAvLyBIYW5kbGVzIG5hdmlnYXRvciBidXR0b24gZW5hYmxlZC9kaXNhYmxlZCBzdGF0ZVxuICAgICAgICAgICAgdGhpcy5fYnV0dG9uVmlzaWJpbGl0eSgpO1xuXG4gICAgICAgICAgICBsZXQgYXJyYXlMZW5ndGg6IG51bWJlcjtcbiAgICAgICAgICAgIC8vIHNldCBwYWdlIGluZGljYXRvciBjb3VudCB3aXRoIGZha2UgYXJyYXksIHRvIHVzZSBpbiB0ZW1wbGF0ZVxuICAgICAgICAgICAgaWYgKHRoaXMubG9vcCAmJiB0aGlzLl92aXNpYmxlU2xpZGVzTnVtZXJpY0NvdW50ID4gMSkge1xuICAgICAgICAgICAgICAgIC8vIElmIGxvb3Agd2l0aCBtdWx0aSBpdGVtIHZpc2libGUuXG4gICAgICAgICAgICAgICAgYXJyYXlMZW5ndGggPSB0aGlzLnNsaWRlcy5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFycmF5TGVuZ3RoID0gdGhpcy5zbGlkZXMubGVuZ3RoIC0gdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHBhZ2VJbmRpY2F0b3JzSWZaZXJvQ291bnQgPSB0aGlzLnNsaWRlcy5sZW5ndGggPT09IDAgPyAwIDogMTtcblxuICAgICAgICAgICAgdGhpcy5wYWdlSW5kaWNhdG9yc0NvdW50QXJyYXkgPSBuZXcgQXJyYXkoYXJyYXlMZW5ndGggPiAwID8gYXJyYXlMZW5ndGggOiBwYWdlSW5kaWNhdG9yc0lmWmVyb0NvdW50KTtcblxuICAgICAgICAgICAgdGhpcy5fZ29Ub0ZpcnN0SXRlbSgpO1xuXG4gICAgICAgICAgICB0aGlzLnNsaWRlcy5mb3JFYWNoKChfc2xpZGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBpbmRleCA+PSB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ICYmXG4gICAgICAgICAgICAgICAgICAgIGluZGV4IDwgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCArIHRoaXMuX3Zpc2libGVTbGlkZXNOdW1lcmljQ291bnRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgX3NsaWRlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgX3NsaWRlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dvVG9GaXJzdEl0ZW0oKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMucGFnZUluZGljYXRvcnNDb3VudEFycmF5Lmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAgICAgdGhpcy5fY2Fyb3VzZWxTZXJ2aWNlLmN1cnJlbnRUcmFuc2l0aW9uUHggIT09IDAgJiZcbiAgICAgICAgICAgIHRoaXMuc2xpZGVzLmxlbmd0aCA+IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID0gMDtcbiAgICAgICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5nb1RvSXRlbSh0aGlzLnNsaWRlcy5maXJzdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBJbml0aWFsaXplIGNvbmZpZyBmb3IgQ2Fyb3VzZWwgc2VydmljZSAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxpemVTZXJ2aWNlQ29uZmlnKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb25maWcudmVydGljYWwgPSB0aGlzLnZlcnRpY2FsO1xuICAgICAgICB0aGlzLl9jb25maWcuZWxlbWVudHNBdE9uY2UgPSB0aGlzLl92aXNpYmxlU2xpZGVzTnVtZXJpY0NvdW50O1xuICAgICAgICB0aGlzLl9jb25maWcuZ2VzdHVyZVN1cHBvcnQgPSB0aGlzLnN3aXBlRW5hYmxlZDtcbiAgICAgICAgdGhpcy5fY29uZmlnLmluZmluaXRlID0gdGhpcy5sb29wO1xuICAgICAgICB0aGlzLl9jb25maWcudHJhbnNpdGlvbiA9IFN0cmluZyh0aGlzLnNsaWRlVHJhbnNpdGlvbkR1cmF0aW9uKSArICdtcyc7XG4gICAgICAgIC8vIENhcm91c2VsIHNlcnZpY2UgZXhwZWN0cyB0cmFuc2l0aW9uIGluIHN0cmluZyBmb3JtYXQgd2l0aCB1bml0LlxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gUmV0dXJucyB0aGUgc2xpZGUgc3dhcHBpbmcgc3RlcHNcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRTdGVwVGFrZW4oZXZlbnQ6IFBhbkVuZE91dHB1dCwgYWN0dWFsQWN0aXZlU2xpZGVJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHN0ZXBzQ2FsY3VsYXRlZDogbnVtYmVyO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoIXRoaXMuX2lzUnRsKCkgJiYgZXZlbnQuYWZ0ZXIpIHx8XG4gICAgICAgICAgICAodGhpcy5faXNSdGwoKSAmJiAhZXZlbnQuYWZ0ZXIgJiYgIXRoaXMudmVydGljYWwpIHx8XG4gICAgICAgICAgICAodGhpcy52ZXJ0aWNhbCAmJiBldmVudC5hZnRlcilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAoYWN0dWFsQWN0aXZlU2xpZGVJbmRleCA9PT0gMCAmJiB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgc3RlcHNDYWxjdWxhdGVkID0gMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0dWFsQWN0aXZlU2xpZGVJbmRleCA+IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXgpIHtcbiAgICAgICAgICAgICAgICBzdGVwc0NhbGN1bGF0ZWQgPSBhY3R1YWxBY3RpdmVTbGlkZUluZGV4IC0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3RlcHNDYWxjdWxhdGVkID0gdGhpcy5zbGlkZXMubGVuZ3RoIC0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCArIGFjdHVhbEFjdGl2ZVNsaWRlSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UsIHdoZW4gZmlyc3QgbGVmdCBzd2lwZSBiZWZvcmUgc2xpZGVzIGFyZSByb3RhdGVkIGluIGNhcm91c2VsIHNlcnZpY2VcbiAgICAgICAgICAgIGlmIChhY3R1YWxBY3RpdmVTbGlkZUluZGV4ID09PSAwICYmIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICBzdGVwc0NhbGN1bGF0ZWQgPSAwO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChhY3R1YWxBY3RpdmVTbGlkZUluZGV4IDwgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCkge1xuICAgICAgICAgICAgICAgIHN0ZXBzQ2FsY3VsYXRlZCA9IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggLSBhY3R1YWxBY3RpdmVTbGlkZUluZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGVwc0NhbGN1bGF0ZWQgPSB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ICsgdGhpcy5zbGlkZXMubGVuZ3RoIC0gYWN0dWFsQWN0aXZlU2xpZGVJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RlcHNDYWxjdWxhdGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEhhbmRsZXMgbm90aWZpY2F0aW9uIG9uIHZpc2libGUgc2xpZGUgY2hhbmdlICovXG4gICAgcHJpdmF0ZSBfbm90aWZ5U2xpZGVDaGFuZ2Uoc2xpZGVEaXJlY3Rpb246IFNsaWRlRGlyZWN0aW9uLCBmaXJzdEFjdGl2ZVNsaWRlPzogQ2Fyb3VzZWxJdGVtSW50ZXJmYWNlIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhY3RpdmVTbGlkZXM6IENhcm91c2VsSXRlbUNvbXBvbmVudFtdID0gW107XG4gICAgICAgIGxldCBmaXJzdEFjdGl2ZVNsaWRlSW5kZXg6IG51bWJlcjtcblxuICAgICAgICBpZiAodGhpcy5sb29wKSB7XG4gICAgICAgICAgICBmaXJzdEFjdGl2ZVNsaWRlID0gdGhpcy5fY2Fyb3VzZWxTZXJ2aWNlLmFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaXJzdEFjdGl2ZVNsaWRlKSB7XG4gICAgICAgICAgICBmaXJzdEFjdGl2ZVNsaWRlSW5kZXggPSB0aGlzLnNsaWRlcy50b0FycmF5KCkuZmluZEluZGV4KChfaXRlbSkgPT4gX2l0ZW0gPT09IGZpcnN0QWN0aXZlU2xpZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlyc3RBY3RpdmVTbGlkZUluZGV4ID0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGFjdGl2ZVNsaWRlSW5kZXggPSAwOyBhY3RpdmVTbGlkZUluZGV4IDwgdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudDsgYWN0aXZlU2xpZGVJbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGZpcnN0QWN0aXZlU2xpZGVJbmRleCArIGFjdGl2ZVNsaWRlSW5kZXg7XG4gICAgICAgICAgICBjb25zdCBzbGlkZSA9IHRoaXMuc2xpZGVzLmdldChpbmRleCk7XG4gICAgICAgICAgICBpZiAoc2xpZGUpIHtcbiAgICAgICAgICAgICAgICBhY3RpdmVTbGlkZXMucHVzaChzbGlkZSk7XG4gICAgICAgICAgICAgICAgc2xpZGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX21hbmFnZVNsaWRlVmlzaWJpbGl0eShmaXJzdEFjdGl2ZVNsaWRlSW5kZXgpO1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBzbGlkZURpcmVjdGlvbiA9PT0gU2xpZGVEaXJlY3Rpb24uTkVYVCA/ICdOZXh0JyA6ICdQcmV2aW91cyc7XG4gICAgICAgIHRoaXMuc2xpZGVDaGFuZ2UuZW1pdChuZXcgQ2Fyb3VzZWxBY3RpdmVTbGlkZXMoYWN0aXZlU2xpZGVzLCBkaXJlY3Rpb24pKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBNYW5hZ2VzIHZpc2liaWxpdHkgZm9yIHNsaWRlcy4gVXNlZnVsIGluIG1hbmFnaW5nIHRhYiBvcmRlciAqL1xuICAgIHByaXZhdGUgX21hbmFnZVNsaWRlVmlzaWJpbGl0eShmaXJzdEFjdGl2ZVNsaWRlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVzLmZvckVhY2goKF9zbGlkZXMsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID49IGZpcnN0QWN0aXZlU2xpZGVJbmRleCAmJiBpbmRleCA8IGZpcnN0QWN0aXZlU2xpZGVJbmRleCArIHRoaXMuX3Zpc2libGVTbGlkZXNOdW1lcmljQ291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9zbGlkZXMudmlzaWJpbGl0eSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zbGlkZXMudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfc2xpZGVzLnZpc2liaWxpdHkgPT09ICd2aXNpYmxlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3NsaWRlcy52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9LCB0aGlzLnNsaWRlVHJhbnNpdGlvbkR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSdGwgY2hhbmdlIHN1YnNjcmlwdGlvbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmliZVRvUnRsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWZyZXNoRGlyZWN0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXIgPSB0aGlzLl9pc1J0bCgpID8gJ3J0bCcgOiAnbHRyJztcbiAgICAgICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5pc1J0bCA9IHRoaXMuZGlyID09PSAncnRsJztcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2Nhcm91c2VsU2VydmljZS5pdGVtcyAmJiB0aGlzLl9jYXJvdXNlbFNlcnZpY2UuYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2Fyb3VzZWxTZXJ2aWNlLmdvVG9JdGVtKHRoaXMuX2Nhcm91c2VsU2VydmljZS5hY3RpdmUsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVmcmVzaERpcmVjdGlvbigpO1xuICAgICAgICB0aGlzLl9ydGxTZXJ2aWNlPy5ydGwucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiByZWZyZXNoRGlyZWN0aW9uKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIE9uIFN3aXBpbmcgb2Ygc2xpZGUsIG1hbmFnZSBwYWdlIGluZGljYXRvciAqL1xuICAgIHByaXZhdGUgX29uU2xpZGVTd2lwZShldmVudDogUGFuRW5kT3V0cHV0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NsaWRlU3dpcGVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZmlyc3RBY3RpdmVTbGlkZSA9IGV2ZW50Lml0ZW07XG4gICAgICAgIGNvbnN0IGFjdHVhbEFjdGl2ZVNsaWRlSW5kZXggPSB0aGlzLl9zbGlkZXNDb3B5LmZpbmRJbmRleCgoX3NsaWRlKSA9PiBfc2xpZGUgPT09IGZpcnN0QWN0aXZlU2xpZGUpO1xuICAgICAgICBjb25zdCBzdGVwVGFrZW4gPSB0aGlzLl9nZXRTdGVwVGFrZW4oZXZlbnQsIGFjdHVhbEFjdGl2ZVNsaWRlSW5kZXgpO1xuICAgICAgICBpZiAoc3RlcFRha2VuID4gMCkge1xuICAgICAgICAgICAgbGV0IHNsaWRlRGlyZWN0aW9uOiBTbGlkZURpcmVjdGlvbjtcbiAgICAgICAgICAgIGlmICghdGhpcy5faXNSdGwoKSkge1xuICAgICAgICAgICAgICAgIHNsaWRlRGlyZWN0aW9uID0gZXZlbnQuYWZ0ZXIgPyBTbGlkZURpcmVjdGlvbi5ORVhUIDogU2xpZGVEaXJlY3Rpb24uUFJFVklPVVM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIHZlcnRpY2FsIGNhcm91c2VsIHNsaWRlIGRpcmVjdGlvbiBpcyBzYW1lIGluIGx0ciBhbmQgcnRsXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVEaXJlY3Rpb24gPSBldmVudC5hZnRlciA/IFNsaWRlRGlyZWN0aW9uLk5FWFQgOiBTbGlkZURpcmVjdGlvbi5QUkVWSU9VUztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzbGlkZURpcmVjdGlvbiA9IGV2ZW50LmFmdGVyID8gU2xpZGVEaXJlY3Rpb24uUFJFVklPVVMgOiBTbGlkZURpcmVjdGlvbi5ORVhUO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2FkanVzdEFjdGl2ZUl0ZW1Qb3NpdGlvbihzbGlkZURpcmVjdGlvbiwgc3RlcFRha2VuKTtcbiAgICAgICAgICAgIHRoaXMuX25vdGlmeVNsaWRlQ2hhbmdlKHNsaWRlRGlyZWN0aW9uLCBmaXJzdEFjdGl2ZVNsaWRlKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gTWFraW5nIHNsaWRlcyB2aXNpYmxlIHdoZW4gc2xpZGVzIGFyZSBkcmFnZ2VkLiBPdGhlcndpc2UsIGl0IGxvb3NlcyB0aGUgZWZmZWN0LlxuICAgICAqL1xuICAgIHByaXZhdGUgX29uU2xpZGVEcmFnKGlzRHJhZ2dpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVzLmZvckVhY2goKF9zbGlkZSkgPT4ge1xuICAgICAgICAgICAgICAgIF9zbGlkZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9zbGlkZVN3aXBlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBBZnRlciBzbGlkZSBsaW1pdCByZWFjaGVkLCBpZiBkcmFnZ2luZyBzdGFydHMgdGhlbiByZXZlcnQgdmlzaWJpbGl0eVxuICAgICAgICAgICAgaWYgKCF0aGlzLl9zbGlkZVN3aXBlZCAmJiAhdGhpcy5sb29wKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWFuYWdlU2xpZGVWaXNpYmlsaXR5KHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFJlc2l6ZXMgaW5uZXIgY2Fyb3VzZWwgY29udGFpbmVyIHRvIGZpdCBhbGwgaXRlbXMgaW4gdGhlIHZpZXdwb3J0IGFuZCBoaWRlIHRob3NlIHdoaWNoIGFyZSBub3QgZnVsbHkgaW4gaXQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmVzaXplQ29udGVudENvbnRhaW5lcigpOiB2b2lkIHtcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuc2xpZGVDb250YWluZXIubmF0aXZlRWxlbWVudCksXG4gICAgICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuY2Fyb3VzZWxDb250YWluZXIubmF0aXZlRWxlbWVudClcbiAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIHNsaWRlcyB9ID0gdGhpcy5fZ2V0Rml0dGluZ1NsaWRlc0FuZFdpZHRoKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy52aXNpYmxlU2xpZGVzQ291bnQgPT09ICdhdXRvJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92aXNpYmxlU2xpZGVzTnVtZXJpY0NvdW50ID0gc2xpZGVzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3RhbFNsaWRlcyA9IHRoaXMuc2xpZGVzLmxlbmd0aDtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZGxlU2xpZGVJbmRleCA9IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXg7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgYW1vdW50IG9mIHNsaWRlcyBpbnN1ZmZpY2llbnQgdG8gZmlsbCB3aG9sZSBjYXJvdXNlbCwgc2xpZGUgYmFjayBhIGJpdC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggKyBzbGlkZXMgPiB0b3RhbFNsaWRlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZGxlU2xpZGVJbmRleCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggKyBzbGlkZXMgLSB0b3RhbFNsaWRlcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZWVkbGVTbGlkZSA9IHRoaXMuc2xpZGVzLmdldChuZWVkbGVTbGlkZUluZGV4KTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID0gbmVlZGxlU2xpZGVJbmRleDtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYXJvdXNlbFNlcnZpY2UuYWN0aXZlID0gbmVlZGxlU2xpZGU7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gUmVmcmVzaCBjYXJvdXNlbCBjb25maWcgYW5kIHRyYW5zaXRpb24gdG8gdGhlIGN1cnJlbnQgc2xpZGUuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVDYXJvdXNlbCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIG5lZWRsZVNsaWRlICYmIHRoaXMuX2Nhcm91c2VsU2VydmljZS5nb1RvSXRlbShuZWVkbGVTbGlkZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmeVNsaWRlQ2hhbmdlKFNsaWRlRGlyZWN0aW9uLk5vbmUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zbGlkZXNXcmFwcGVyU2l6ZSAhPT0gd2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2xpZGVzV3JhcHBlclNpemUgPSB3aWR0aDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ2FsY3VsYXRlcyBob3cgbWFueSBzbGlkZXMgY2FuIGJlIHNob3duIHdpdGhpbiBjdXJyZW50IGNhcm91c2VsIHZpZXdwb3J0LlxuICAgICAqIEByZXR1cm5zIE9iamVjdCBjb250YWluaW5nIGZpdHRpbmcgc2xpZGVzIGNvdW50IGFuZCB0b3RhbCB3aWR0aCBvZiB0aG9zZSBzbGlkZXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0Rml0dGluZ1NsaWRlc0FuZFdpZHRoKCk6IEZpdHRpbmdTbGlkZXNBbmRXaWR0aCB7XG4gICAgICAgIGlmICghdGhpcy5jYXJvdXNlbENvbnRhaW5lcikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgICAgICBzbGlkZXM6IDFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHdpZHRoIH0gPSB0aGlzLmNhcm91c2VsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGxldCBtYXhTaXplID0gMDtcbiAgICAgICAgbGV0IHNsaWRlc0NvdW50ID0gMDtcblxuICAgICAgICBjb25zdCBjYXJvdXNlbFNsaWRlcyA9IHRoaXMuc2xpZGVzLnRvQXJyYXkoKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNTbGlkZXMgPSBjYXJvdXNlbFNsaWRlcy5zcGxpY2UoMCwgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCk7XG5cbiAgICAgICAgY29uc3QgZ2V0U2xpZGVzID0gKHNsaWRlczogQ2Fyb3VzZWxJdGVtQ29tcG9uZW50W10pOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc2xpZGUgb2Ygc2xpZGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2xpZGVXaWR0aCA9IHNsaWRlLmdldFdpZHRoKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXNsaWRlV2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3U2l6ZSA9IG1heFNpemUgKyBzbGlkZVdpZHRoO1xuXG4gICAgICAgICAgICAgICAgaWYgKG5ld1NpemUgPiB3aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBtYXhTaXplID0gbmV3U2l6ZTtcbiAgICAgICAgICAgICAgICBzbGlkZXNDb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGdldFNsaWRlcyhjYXJvdXNlbFNsaWRlcyk7XG5cbiAgICAgICAgLy8gSWYgd2l0aCBvZiB0aGUgcmVzdCBvZiB0aGUgc2xpZGVzIGlzIGxlc3NlciB0aGFuIGNhcm91c2UncyB2aWV3cG9ydCwgYWRkIHByZXZpb3VzIHNsaWRlcyB0byBpdC5cbiAgICAgICAgaWYgKG1heFNpemUgPCB3aWR0aCkge1xuICAgICAgICAgICAgZ2V0U2xpZGVzKHByZXZpb3VzU2xpZGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB3aWR0aDogbWF4U2l6ZSxcbiAgICAgICAgICAgIHNsaWRlczogc2xpZGVzQ291bnRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFZpc2libGVTbGlkZXNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5fdmlzaWJsZVNsaWRlc0NvdW50ICE9PSAnYXV0bycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlU2xpZGVzQ291bnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHNsaWRlcyB9ID0gdGhpcy5fZ2V0Rml0dGluZ1NsaWRlc0FuZFdpZHRoKCk7XG4gICAgICAgIHJldHVybiBzbGlkZXM7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZmQtY2Fyb3VzZWxcIlxuICAgIFtjbGFzcy5mZC1jYXJvdXNlbC0tbm8tbmF2aWdhdGlvbl09XCIhbmF2aWdhdGlvblwiXG4gICAgZGF0YS1yaWRlPVwiY2Fyb3VzZWxcIlxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIlxuICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgW2F0dHIuZGlyXT1cImRpclwiXG4gICAgcm9sZT1cInJlZ2lvblwiXG4gICAgI2Nhcm91c2VsQ29udGFpbmVyXG4gICAgKGNsaWNrKT1cIl9mb2N1cygpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3Nob3dQYWdlSW5kaWNhdG9yQ29udGFpbmVyICYmIHBhZ2VJbmRpY2F0b3JzT3JpZW50YXRpb24gPT09ICd0b3AnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlSW5kaWNhdG9yQ29udGFpbmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtY2Fyb3VzZWxfX2NvbnRlbnRcIlxuICAgICAgICBbY2xhc3MuZmQtY2Fyb3VzZWxfX2NvbnRlbnQtLWhvcml6b250YWxdPVwiIXZlcnRpY2FsXCJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cIl9jb250ZW50U2l6ZVB4XCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfc2hvd05hdmlnYXRpb25CdXR0b25JbkNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25MZWZ0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgI3NsaWRlQ29udGFpbmVyIGNsYXNzPVwiZmQtY2Fyb3VzZWxfX3NsaWRlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3Nob3dOYXZpZ2F0aW9uQnV0dG9uSW5Db250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uUmlnaHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3Nob3dQYWdlSW5kaWNhdG9yQ29udGFpbmVyICYmIHBhZ2VJbmRpY2F0b3JzT3JpZW50YXRpb24gPT09ICdib3R0b20nXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlSW5kaWNhdG9yQ29udGFpbmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIHJvbGU9XCJyZWdpb25cIiBbYXR0ci5pZF09XCJpZCArICctYWNjZXNzaWJpbGl0eSdcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBkaXI9XCJsdHJcIj5cbiAgICAgICAge3sgc2NyZWVuUmVhZGVyTGFiZWwgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3BhZ2VJbmRpY2F0b3JDb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cImZkLWNhcm91c2VsX19wYWdlLWluZGljYXRvci1jb250YWluZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9zaG93TmF2aWdhdGlvbkJ1dHRvbkluUGFnZUluZGljYXRvckNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkxlZnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VJbmRpY2F0b3JzXCI+IDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfc2hvd05hdmlnYXRpb25CdXR0b25JblBhZ2VJbmRpY2F0b3JDb250YWluZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25SaWdodFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGFnZUluZGljYXRvcnM+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm51bWVyaWNJbmRpY2F0b3JcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZkLWNhcm91c2VsX19wYWdlLWluZGljYXRvcnNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlSW5kaWNhdG9yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWNhcm91c2VsX190ZXh0XCIgZGlyPVwibHRyXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldFBhZ2VJbmRpY2F0b3JMYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbnVtZXJpY0luZGljYXRvciAmJiBfc2hvd05hdmlnYXRpb25CdXR0b25JblBhZ2VJbmRpY2F0b3JDb250YWluZXJcIj5cbiAgICAgICAgPG9sIGNsYXNzPVwiZmQtY2Fyb3VzZWxfX3BhZ2UtaW5kaWNhdG9yc1wiIFthdHRyLmRpcl09XCJkaXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlSW5kaWNhdG9yXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwYWdlSW5kaWNhdG9yc0NvdW50QXJyYXk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXNsaWRlLXRvXT1cImkgKyAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtY2Fyb3VzZWxfX3BhZ2UtaW5kaWNhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1jYXJvdXNlbF9fcGFnZS1pbmRpY2F0b3ItLWFjdGl2ZV09XCJpID09PSBjdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgID48L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvb2w+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbkxlZnQ+XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJmZC1jYXJvdXNlbF9fYnV0dG9uIGZkLWNhcm91c2VsX19idXR0b24tLWxlZnRcIlxuICAgICAgICBbc3R5bGUuei1pbmRleF09XCIxXCJcbiAgICAgICAgZGF0YS1zbGlkZT1cInByZXZpb3VzXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsZWZ0TmF2aWdhdGlvbkJ0bkxhYmVsIHx8ICgnY29yZUNhcm91c2VsLmxlZnROYXZpZ2F0aW9uQnRuTGFiZWwnIHwgZmRUcmFuc2xhdGUpXCJcbiAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJsZWZ0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJsZWZ0TmF2aWdhdGlvbkJ0bkxhYmVsIHx8ICgnY29yZUNhcm91c2VsLmxlZnROYXZpZ2F0aW9uQnRuTGFiZWwnIHwgZmRUcmFuc2xhdGUpXCJcbiAgICAgICAgZ2x5cGg9XCJzbGltLWFycm93LWxlZnRcIlxuICAgID48L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uUmlnaHQ+XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJmZC1jYXJvdXNlbF9fYnV0dG9uIGZkLWNhcm91c2VsX19idXR0b24tLXJpZ2h0XCJcbiAgICAgICAgW3N0eWxlLnotaW5kZXhdPVwiMVwiXG4gICAgICAgIGRhdGEtc2xpZGU9XCJuZXh0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyaWdodE5hdmlnYXRpb25CdG5MYWJlbCB8fCAoJ2NvcmVDYXJvdXNlbC5yaWdodE5hdmlnYXRpb25CdG5MYWJlbCcgfCBmZFRyYW5zbGF0ZSlcIlxuICAgICAgICAoY2xpY2spPVwibmV4dCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwicmlnaHRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cInJpZ2h0TmF2aWdhdGlvbkJ0bkxhYmVsIHx8ICgnY29yZUNhcm91c2VsLnJpZ2h0TmF2aWdhdGlvbkJ0bkxhYmVsJyB8IGZkVHJhbnNsYXRlKVwiXG4gICAgICAgIGdseXBoPVwic2xpbS1hcnJvdy1yaWdodFwiXG4gICAgPjwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
651
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFJTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBRVQsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHlCQUF5QixFQUE2QixNQUFNLDJCQUEyQixDQUFDO0FBQ2pHLE9BQU8sRUFBeUMsZUFBZSxFQUFnQixNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBRTFHLGtEQUFrRDtBQUNsRCxNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBQztBQUlwQyxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3RCLG1EQUFJLENBQUE7SUFDSixtREFBSSxDQUFBO0lBQ0osMkRBQVEsQ0FBQTtBQUNaLENBQUMsRUFKVyxjQUFjLEtBQWQs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TTtzQkFETCxLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixJQUFJO3NCQURILEtBQUs7Z0JBUU4sc0JBQXNCO3NCQURyQixLQUFLO2dCQVFOLHVCQUF1QjtzQkFEdEIsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBS04sd0JBQXdCO3NCQUR2QixLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBUUYsZUFBZTtzQkFEbEIsS0FBSztnQkFjTix1QkFBdUI7c0JBRHRCLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLRixrQkFBa0I7c0JBRHJCLEtBQUs7Z0JBWUcsV0FBVztzQkFEbkIsTUFBTTtnQkFLUCxNQUFNO3NCQURMLGVBQWU7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUs3RCxjQUFjO3NCQURiLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUszQixpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsbUJBQW1CO2dCQStLOUIsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVE5QyxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgcmVzaXplT2JzZXJ2YWJsZSwgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuaW1wb3J0IHsgQ2Fyb3VzZWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJvdXNlbC1pdGVtL2Nhcm91c2VsLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IENhcm91c2VsUmVzb3VyY2VTdHJpbmdzRU4sIEZkQ2Fyb3VzZWxSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuL2kxOG4vY2Fyb3VzZWwtcmVzb3VyY2VzJztcbmltcG9ydCB7IENhcm91c2VsQ29uZmlnLCBDYXJvdXNlbEl0ZW1JbnRlcmZhY2UsIENhcm91c2VsU2VydmljZSwgUGFuRW5kT3V0cHV0IH0gZnJvbSAnLi9jYXJvdXNlbC5zZXJ2aWNlJztcblxuLyoqIFBhZ2UgbGltaXQgdG8gc3dpdGNoIHRvIG51bWVyaWNhbCBpbmRpY2F0b3IgKi9cbmNvbnN0IElDT05fUEFHRV9JTkRJQ0FUT1JfTElNSVQgPSA4O1xuXG5leHBvcnQgdHlwZSBQYWdlSW5kaWNhdG9yc09yaWVudGF0aW9uID0gJ2JvdHRvbScgfCAndG9wJztcblxuZXhwb3J0IGVudW0gU2xpZGVEaXJlY3Rpb24ge1xuICAgIE5vbmUsXG4gICAgTkVYVCxcbiAgICBQUkVWSU9VU1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpdHRpbmdTbGlkZXNBbmRXaWR0aCB7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBzbGlkZXM6IG51bWJlcjtcbn1cblxubGV0IGNhcm91c2VsQ291bnRlciA9IDA7XG5cbmNsYXNzIENhcm91c2VsQWN0aXZlU2xpZGVzIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgYWN0aXZlSXRlbXM6IENhcm91c2VsSXRlbUNvbXBvbmVudFtdLCBwdWJsaWMgcmVhZG9ubHkgc2xpZGVEaXJlY3Rpb246IHN0cmluZykge31cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1jYXJvdXNlbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYXJvdXNlbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbQ2Fyb3VzZWxTZXJ2aWNlXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbc3R5bGUud2lkdGhdJzogJ3dpZHRoJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQ2Fyb3VzZWxDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgICAvKiogSUQgZm9yIHRoZSBDYXJvdXNlbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgaWQgPSBgZmQtY2Fyb3VzZWwtJHtjYXJvdXNlbENvdW50ZXIrK31gO1xuXG4gICAgLyoqIFNldHMgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgZm9yIGNhcm91c2VsICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWwgPSBudWxsO1xuXG4gICAgLyoqIFNldHMgYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSBmb3IgY2Fyb3VzZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmc7XG5cbiAgICAvKiogU2V0cyBhcmlhLWRlc2NyaWJlZGJ5IGF0dHJpYnV0ZSBmb3IgY2Fyb3VzZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFEZXNjcmliZWRCeTogc3RyaW5nO1xuXG4gICAgLyoqIFNldHMgcG9zaXRpb24gb2YgcGFnZSBpbmRpY2F0b3IgY29udGFpbmVyLiBEZWZhdWx0IHBvc2l0aW9uIGlzIGJvdHRvbS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBhZ2VJbmRpY2F0b3JzT3JpZW50YXRpb246IFBhZ2VJbmRpY2F0b3JzT3JpZW50YXRpb24gPSAnYm90dG9tJztcblxuICAgIC8qKiBIZWlnaHQgZm9yIGNhcm91c2VsIGNvbnRhaW5lciAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGVpZ2h0OiBzdHJpbmc7XG5cbiAgICAvKiogV2lkdGggZm9yIGNhcm91c2VsIGNvbnRhaW5lciAqL1xuICAgIEBJbnB1dCgpXG4gICAgd2lkdGggPSAnMTAwJSc7XG5cbiAgICAvKiogSWYgY2Fyb3VzZWwgaXMgaW4gY2lyY3VsYXIgbG9vcCAqL1xuICAgIEBJbnB1dCgpXG4gICAgbG9vcCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWRcbiAgICAgKiBMYWJlbCBmb3IgbGVmdCBuYXZpZ2F0aW9uIGJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGVmdE5hdmlnYXRpb25CdG5MYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWRcbiAgICAgKiBMYWJlbCBmb3IgcmlnaHQgbmF2aWdhdGlvbiBidXR0b25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJpZ2h0TmF2aWdhdGlvbkJ0bkxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogU2hvd3MvaGlkZXMgb3B0aW9uYWwgbmF2aWdhdGlvbiBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIG5hdmlnYXRpb24gPSB0cnVlO1xuXG4gICAgLyoqIFNob3cgbmF2aWdhdGlvbiBidXR0b24gaW4gcGFnZSBpbmRpY2F0b3IgY29udGFpbmVyIG9yIGluc2lkZSBjb250ZW50LiBEZWZhdWx0IGlzIHBhZ2UgaW5kaWNhdG9yIGNvbnRhaW5lciBvbiB0cnVlIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0b3JJblBhZ2VJbmRpY2F0b3IgPSB0cnVlO1xuXG4gICAgLyoqIENvbnZlcnQgdG8gTnVtZXJpYyBwYWdlIGluZGljYXRvciAqL1xuICAgIEBJbnB1dCgpXG4gICAgbnVtZXJpY0luZGljYXRvciA9IGZhbHNlO1xuXG4gICAgLyoqIFNob3dzL2hpZGVzIG9wdGlvbmFsIHBhZ2UgaW5kaWNhdG9yIGNvbnRhaW5lciAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBhZ2VJbmRpY2F0b3JDb250YWluZXIgPSB0cnVlO1xuXG4gICAgLyoqIFNob3dzL2hpZGVzIG9wdGlvbmFsIHBhZ2UgaW5kaWNhdG9yICovXG4gICAgQElucHV0KClcbiAgICBwYWdlSW5kaWNhdG9yID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEFuIGFjY2Vzc29yIHRoYXQgc2V0cyB0aGUgcmVzb3VyY2Ugc3RyaW5ncy5cbiAgICAgKiBCeSBkZWZhdWx0IGl0IHVzZXMgRU4gcmVzb3VyY2VzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHJlc291cmNlU3RyaW5ncyh2YWx1ZTogRmRDYXJvdXNlbFJlc291cmNlU3RyaW5ncykge1xuICAgICAgICB0aGlzLl9yZXNvdXJjZVN0cmluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9yZXNvdXJjZVN0cmluZ3MsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBhY2Nlc3NvciB0aGF0IHJldHVybnMgdGhlIHJlc291cmNlIHN0cmluZ3MuXG4gICAgICovXG4gICAgZ2V0IHJlc291cmNlU3RyaW5ncygpOiBGZENhcm91c2VsUmVzb3VyY2VTdHJpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlU3RyaW5ncztcbiAgICB9XG5cbiAgICAvKiogU2V0cyBzbGlkaW5nIGR1cmF0aW9uIGluIG1pbGxpZSBzZWNvbmRzLiBEZWZhdWx0IGlzIDE1MCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2xpZGVUcmFuc2l0aW9uRHVyYXRpb24gPSAxNTA7XG5cbiAgICAvKiogSXMgc3dpcGUgZW5hYmxlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3dpcGVFbmFibGVkID0gdHJ1ZTtcblxuICAgIC8qKiBJcyBjYXJvdXNlbCBpcyB2ZXJ0aWNhbC4gRGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHZlcnRpY2FsID0gZmFsc2U7XG5cbiAgICAvKiogTnVtYmVyIG9mIGl0ZW1zIHRvIGJlIHZpc2libGUgYXQgYSB0aW1lICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdmlzaWJsZVNsaWRlc0NvdW50KHZhbHVlOiBudW1iZXIgfCAnYXV0bycpIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZVNsaWRlc0NvdW50ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3Zpc2libGVTbGlkZXNOdW1lcmljQ291bnQgPSB0aGlzLl9nZXRWaXNpYmxlU2xpZGVzQ291bnQoKTtcbiAgICB9XG5cbiAgICBnZXQgdmlzaWJsZVNsaWRlc0NvdW50KCk6IG51bWJlciB8ICdhdXRvJyB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlU2xpZGVzQ291bnQ7XG4gICAgfVxuXG4gICAgLyoqIEFuIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCBhZnRlciBhIHNsaWRlIHRyYW5zaXRpb24gaGFzIGhhcHBlbmVkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2xpZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDYXJvdXNlbEFjdGl2ZVNsaWRlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPENhcm91c2VsQWN0aXZlU2xpZGVzPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKENhcm91c2VsSXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHNsaWRlczogUXVlcnlMaXN0PENhcm91c2VsSXRlbUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3NsaWRlQ29udGFpbmVyJylcbiAgICBzbGlkZUNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIC8qKiBDYXJvdXNlbCBjb250YWluZXIgZWxlbWVudC4gKi9cbiAgICBAVmlld0NoaWxkKCdjYXJvdXNlbENvbnRhaW5lcicpXG4gICAgY2Fyb3VzZWxDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQGhpZGRlbiBTdGFydCBpbmRleCBvZiBjdXJyZW50bHkgYWN0aXZlIGl0ZW1zICovXG4gICAgY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gaGFuZGxlcyBydGwgc2VydmljZSAqL1xuICAgIGRpcjogRGlyZWN0aW9uID0gJ2x0cic7XG5cbiAgICAvKiogQGhpZGRlbiBNYWtlIGxlZnQgbmF2aWdhdGlvbiBidXR0b24gZGlzYWJsZWQgKi9cbiAgICBsZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuIE1ha2UgcmlnaHQgbmF2aWdhdGlvbiBidXR0b24gZGlzYWJsZWQgKi9cbiAgICByaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiBGYWtlIGFycmF5IGZvciBjb3VudGluZyBudW1iZXIgb2YgcGFnZSBpbmRpY2F0b3IgKi9cbiAgICBwYWdlSW5kaWNhdG9yc0NvdW50QXJyYXk6IG51bWJlcltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zbGlkZXNXcmFwcGVyU2l6ZSA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfY29udGVudFNpemVQeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2xpZGVzV3JhcHBlclNpemUgPyBgJHt0aGlzLl9zbGlkZXNXcmFwcGVyU2l6ZX1weGAgOiB0aGlzLndpZHRoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmlzaWJsZVNsaWRlc0NvdW50OiBudW1iZXIgfCAnYXV0bycgPSAxO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92aXNpYmxlU2xpZGVzTnVtZXJpY0NvdW50ID0gMTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzb3VyY2VTdHJpbmdzID0gQ2Fyb3VzZWxSZXNvdXJjZVN0cmluZ3NFTjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY29uZmlnOiBDYXJvdXNlbENvbmZpZyA9IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zbGlkZXNDb3B5OiBDYXJvdXNlbEl0ZW1Db21wb25lbnRbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wcmV2aW91c1Zpc2libGVTbGlkZXNDb3VudDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zbGlkZVN3aXBlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKSAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2Fyb3VzZWxTZXJ2aWNlOiBDYXJvdXNlbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3pvbmU6IE5nWm9uZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfcnRsU2VydmljZTogUnRsU2VydmljZVxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmliZVRvUnRsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnZpc2libGVTbGlkZXNDb3VudCAmJiB0aGlzLnNsaWRlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fbm90aWZ5U2xpZGVDaGFuZ2UoU2xpZGVEaXJlY3Rpb24uTm9uZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gT24gY2Fyb3VzZWwgbG9hZCwgZGlzcGxheSBmaXJzdCBzbGlkZSArIG51bWJlciBvZiBzbGlkZSB2aXNpYmxlXG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSAwO1xuXG4gICAgICAgIC8vIENoYW5nZSBwYWdpbmF0aW9uIGRpc3BsYXkgdG8gbnVtZXJpYywgaWYgaXRlbSBjb3VudCBpcyBtb3JlIHRoYW4gOFxuICAgICAgICBpZiAodGhpcy5zbGlkZXMubGVuZ3RoID4gSUNPTl9QQUdFX0lORElDQVRPUl9MSU1JVCkge1xuICAgICAgICAgICAgdGhpcy5udW1lcmljSW5kaWNhdG9yID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNsaWRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplQ2Fyb3VzZWwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIC8vIERpc2FibGUgc3dpcGUgd2hlbiB0aGVyZSBpcyBubyBjYXJvdXNlbCBpdGVtXG4gICAgICAgICAgICB0aGlzLnN3aXBlRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBLZWVwIGNvcHkgb2Ygb3JpZ2luYWwgc2xpZGUgYXJyYXksIGZvciBpbmRpY2F0b3IgcHVycG9zZS5cbiAgICAgICAgLy8gSW4gY2FzZSBvZiBsb29wZWQgY2Fyb3VzZWwsIG9yaWdpbmFsIHNsaWRlcyBhcnJheSBjaGFuZ2VzLlxuICAgICAgICB0aGlzLl9zbGlkZXNDb3B5ID0gdGhpcy5zbGlkZXMudG9BcnJheSgpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmliZVNlcnZpY2VFdmVudHMoKTtcblxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gZHluYW1pYyB1cGRhdGUgb2Ygc2xpZGVzXG4gICAgICAgIHRoaXMuc2xpZGVzLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9vblNsaWRlVXBkYXRlcygpKTtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZVNlcnZpY2VDb25maWcoKTtcbiAgICAgICAgdGhpcy5fY2Fyb3VzZWxTZXJ2aWNlLmluaXRpYWxpc2UodGhpcy5fY29uZmlnLCB0aGlzLnNsaWRlcywgdGhpcy5zbGlkZUNvbnRhaW5lcik7XG4gICAgICAgIHRoaXMuX3ByZXZpb3VzVmlzaWJsZVNsaWRlc0NvdW50ID0gdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudDtcblxuICAgICAgICB0aGlzLl9yZXNpemVDb250ZW50Q29udGFpbmVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1Zpc2libGVTbGlkZXNDb3VudCAmJiB0aGlzLl9wcmV2aW91c1Zpc2libGVTbGlkZXNDb3VudCAhPT0gdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZUNhcm91c2VsKCk7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplU2VydmljZUNvbmZpZygpO1xuICAgICAgICAgICAgdGhpcy5fY2Fyb3VzZWxTZXJ2aWNlLnVwZGF0ZUNvbmZpZyh0aGlzLl9jb25maWcpO1xuICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNWaXNpYmxlU2xpZGVzQ291bnQgPSB0aGlzLl92aXNpYmxlU2xpZGVzTnVtZXJpY0NvdW50O1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfc2hvd05hdmlnYXRpb25CdXR0b25JblBhZ2VJbmRpY2F0b3JDb250YWluZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRvckluUGFnZUluZGljYXRvciAmJiB0aGlzLnBhZ2VJbmRpY2F0b3JzQ291bnRBcnJheS5sZW5ndGggPiAxO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9zaG93TmF2aWdhdGlvbkJ1dHRvbkluQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLm5hdmlnYXRvckluUGFnZUluZGljYXRvciAmJiB0aGlzLnBhZ2VJbmRpY2F0b3JzQ291bnRBcnJheS5sZW5ndGggPiAxO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9zaG93UGFnZUluZGljYXRvckNvbnRhaW5lcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZUluZGljYXRvckNvbnRhaW5lciAmJiAodGhpcy5wYWdlSW5kaWNhdG9yc0NvdW50QXJyYXkubGVuZ3RoID4gMCB8fCB0aGlzLm51bWVyaWNJbmRpY2F0b3IpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGdldFBhZ2VJbmRpY2F0b3JMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCArIDF9ICR7dGhpcy5yZXNvdXJjZVN0cmluZ3MuZmRfY2Fyb3VzZWxfb2Z9ICR7XG4gICAgICAgICAgICB0aGlzLnBhZ2VJbmRpY2F0b3JzQ291bnRBcnJheS5sZW5ndGhcbiAgICAgICAgfWA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgc2NyZWVuUmVhZGVyTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMucmVzb3VyY2VTdHJpbmdzLmZkX2Nhcm91c2VsX3JlYWRlcn0gJHt0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ICsgMX0gJHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VTdHJpbmdzLmZkX2Nhcm91c2VsX29mXG4gICAgICAgIH0gJHt0aGlzLnBhZ2VJbmRpY2F0b3JzQ291bnRBcnJheS5sZW5ndGh9YDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChlbCAhPT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgZWwuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIGdldCB2YWx1ZSBmb3IgcnRsICovXG4gICAgX2lzUnRsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnRsU2VydmljZT8ucnRsLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93cmlnaHQnLCBbJyRldmVudCddKVxuICAgIG9uS2V5ZG93bkFycm93UmlnaHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5faXNSdGwoKSA/IHRoaXMucHJldmlvdXMoKSA6IHRoaXMubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2xlZnQnLCBbJyRldmVudCddKVxuICAgIG9uS2V5ZG93bkFycm93TGVmdChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLl9pc1J0bCgpID8gdGhpcy5uZXh0KCkgOiB0aGlzLnByZXZpb3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIFRyYW5zaXRpb25zIHRvIHRoZSBwcmV2aW91cyBzbGlkZSBpbiB0aGUgY2Fyb3VzZWwuICovXG4gICAgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5sb29wICYmIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9hZGp1c3RBY3RpdmVJdGVtUG9zaXRpb24oU2xpZGVEaXJlY3Rpb24uUFJFVklPVVMpO1xuICAgICAgICB0aGlzLl9wcmV2ZW50RGVmYXVsdEJ0bkZvY3VzKCk7XG4gICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5waWNrUHJldmlvdXMoKTtcblxuICAgICAgICB0aGlzLl9ub3RpZnlTbGlkZUNoYW5nZShTbGlkZURpcmVjdGlvbi5QUkVWSU9VUyk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogVHJhbnNpdGlvbnMgdG8gdGhlIG5leHQgc2xpZGUgaW4gdGhlIGNhcm91c2VsLiAqL1xuICAgIG5leHQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5sb29wICYmIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPj0gdGhpcy5wYWdlSW5kaWNhdG9yc0NvdW50QXJyYXkubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTW92aW5nIHRvIG5leHQgc2xpZGVcbiAgICAgICAgdGhpcy5sZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fYWRqdXN0QWN0aXZlSXRlbVBvc2l0aW9uKFNsaWRlRGlyZWN0aW9uLk5FWFQpO1xuICAgICAgICB0aGlzLl9wcmV2ZW50RGVmYXVsdEJ0bkZvY3VzKCk7XG4gICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5waWNrTmV4dCgpO1xuICAgICAgICB0aGlzLl9ub3RpZnlTbGlkZUNoYW5nZShTbGlkZURpcmVjdGlvbi5ORVhUKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFN1YnNjcmliZSB0byBjYXJvdXNlbCBzZXJ2aWNlIGV2ZW50cyAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmliZVNlcnZpY2VFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5hY3RpdmVDaGFuZ2UkLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuX29uU2xpZGVTd2lwZShldmVudCkpO1xuICAgICAgICB0aGlzLl9jYXJvdXNlbFNlcnZpY2UuZHJhZ1N0YXRlQ2hhbmdlJC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB0aGlzLl9vblNsaWRlRHJhZyhldmVudCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gUHJldmVudCBuYXRpdmUgZm9jdXMgZmxvdyByZWxhdGVkIHRvIGJ1dHRvbiwgaWYgYnV0dG9uIHdpbGwgYmUgZGlzYWJsZSBvbiBmb2N1cyBzdGF0ZS5cbiAgICAgKiBJdCB3b3JrcyBvbmx5IGlmIGNhcm91c2VsIGlzIG5vdCBpbiBjaXJjdWxhciBsb29wLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3ByZXZlbnREZWZhdWx0QnRuRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxvb3ApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0ZpcnN0ID0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9PT0gMDtcbiAgICAgICAgY29uc3QgaXNMYXN0ID0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9PT0gdGhpcy5wYWdlSW5kaWNhdG9yc0NvdW50QXJyYXkubGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKGlzRmlyc3QgfHwgaXNMYXN0KSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQWRqdXN0IHBvc2l0aW9uIG9mIGFjdGl2ZSBpdGVtLCBiYXNlZCBvbiBzbGlkZSBkaXJlY3Rpb24gKi9cbiAgICBwcml2YXRlIF9hZGp1c3RBY3RpdmVJdGVtUG9zaXRpb24oc2xpZGVEaXJlY3Rpb246IFNsaWRlRGlyZWN0aW9uLCBzdGVwOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgICAgIC8vIE1vdmUgb25lIHN0ZXAgaW4gdGhlIGRpcmVjdGlvblxuICAgICAgICBjb25zdCBwb3NpdGlvbkFkanVzdG1lbnQgPSBzbGlkZURpcmVjdGlvbiA9PT0gU2xpZGVEaXJlY3Rpb24uTkVYVCA/IHN0ZXAgOiAtc3RlcDtcbiAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggKyBwb3NpdGlvbkFkanVzdG1lbnQ7XG5cbiAgICAgICAgLy8gSWYgY2Fyb3VzZWwgc2V0IHRvIGxvb3BcbiAgICAgICAgaWYgKHRoaXMubG9vcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IHRoaXMuc2xpZGVzLmxlbmd0aCArIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPj0gdGhpcy5zbGlkZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggJSB0aGlzLnNsaWRlcy5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9idXR0b25WaXNpYmlsaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBIYW5kbGVzIG5hdmlnYXRpb24gYnV0dG9uIHZpc2liaWxpdHkgKi9cbiAgICBwcml2YXRlIF9idXR0b25WaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubG9vcCkge1xuICAgICAgICAgICAgLy8gTmVlZCB0byBkaXNhYmxlIG5hdmlnYXRpb24gYnV0dG9uIGlmIGVpdGhlciBkaXJlY3Rpb24gbGltaXQgaGFzIHJlYWNoZWQuXG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zbGlkZXMubGVuZ3RoIC0gMSA9PT0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudCA+IDEgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ICsgdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudCA+PSB0aGlzLnNsaWRlcy5sZW5ndGhcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnNsaWRlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEhhbmRsZSB3aGVuIHNsaWRlIGlzIGFkZGVkIG9yIHJlbW92ZWQgKi9cbiAgICBwcml2YXRlIF9vblNsaWRlVXBkYXRlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2xpZGVzQ29weSA9IHRoaXMuc2xpZGVzLnRvQXJyYXkoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IDA7XG4gICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5pbml0aWFsaXNlKHRoaXMuX2NvbmZpZywgdGhpcy5zbGlkZXMsIHRoaXMuc2xpZGVDb250YWluZXIpO1xuICAgICAgICB0aGlzLl9jYXJvdXNlbFNlcnZpY2UuYWN0aXZlID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMudmVydGljYWwpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuc2xpZGVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsICd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlWSgwcHgpJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNsaWRlQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50LCAndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZVgoMHB4KScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVDYXJvdXNlbCgpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gSW5pdGlhbGl6ZSBjYXJvdXNlbCB3aXRoIHZpc2libGUgaXRlbXMgKi9cbiAgICBwcml2YXRlIF9pbml0aWFsaXplQ2Fyb3VzZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3pvbmUub25NaWNyb3Rhc2tFbXB0eS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAvLyBIYW5kbGVzIG5hdmlnYXRvciBidXR0b24gZW5hYmxlZC9kaXNhYmxlZCBzdGF0ZVxuICAgICAgICAgICAgdGhpcy5fYnV0dG9uVmlzaWJpbGl0eSgpO1xuXG4gICAgICAgICAgICBsZXQgYXJyYXlMZW5ndGg6IG51bWJlcjtcbiAgICAgICAgICAgIC8vIHNldCBwYWdlIGluZGljYXRvciBjb3VudCB3aXRoIGZha2UgYXJyYXksIHRvIHVzZSBpbiB0ZW1wbGF0ZVxuICAgICAgICAgICAgaWYgKHRoaXMubG9vcCAmJiB0aGlzLl92aXNpYmxlU2xpZGVzTnVtZXJpY0NvdW50ID4gMSkge1xuICAgICAgICAgICAgICAgIC8vIElmIGxvb3Agd2l0aCBtdWx0aSBpdGVtIHZpc2libGUuXG4gICAgICAgICAgICAgICAgYXJyYXlMZW5ndGggPSB0aGlzLnNsaWRlcy5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFycmF5TGVuZ3RoID0gdGhpcy5zbGlkZXMubGVuZ3RoIC0gdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHBhZ2VJbmRpY2F0b3JzSWZaZXJvQ291bnQgPSB0aGlzLnNsaWRlcy5sZW5ndGggPT09IDAgPyAwIDogMTtcblxuICAgICAgICAgICAgdGhpcy5wYWdlSW5kaWNhdG9yc0NvdW50QXJyYXkgPSBuZXcgQXJyYXkoYXJyYXlMZW5ndGggPiAwID8gYXJyYXlMZW5ndGggOiBwYWdlSW5kaWNhdG9yc0lmWmVyb0NvdW50KTtcblxuICAgICAgICAgICAgdGhpcy5fZ29Ub0ZpcnN0SXRlbSgpO1xuXG4gICAgICAgICAgICB0aGlzLnNsaWRlcy5mb3JFYWNoKChfc2xpZGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBpbmRleCA+PSB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ICYmXG4gICAgICAgICAgICAgICAgICAgIGluZGV4IDwgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCArIHRoaXMuX3Zpc2libGVTbGlkZXNOdW1lcmljQ291bnRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgX3NsaWRlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgX3NsaWRlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dvVG9GaXJzdEl0ZW0oKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMucGFnZUluZGljYXRvcnNDb3VudEFycmF5Lmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAgICAgdGhpcy5fY2Fyb3VzZWxTZXJ2aWNlLmN1cnJlbnRUcmFuc2l0aW9uUHggIT09IDAgJiZcbiAgICAgICAgICAgIHRoaXMuc2xpZGVzLmxlbmd0aCA+IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID0gMDtcbiAgICAgICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5nb1RvSXRlbSh0aGlzLnNsaWRlcy5maXJzdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBJbml0aWFsaXplIGNvbmZpZyBmb3IgQ2Fyb3VzZWwgc2VydmljZSAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxpemVTZXJ2aWNlQ29uZmlnKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb25maWcudmVydGljYWwgPSB0aGlzLnZlcnRpY2FsO1xuICAgICAgICB0aGlzLl9jb25maWcuZWxlbWVudHNBdE9uY2UgPSB0aGlzLl92aXNpYmxlU2xpZGVzTnVtZXJpY0NvdW50O1xuICAgICAgICB0aGlzLl9jb25maWcuZ2VzdHVyZVN1cHBvcnQgPSB0aGlzLnN3aXBlRW5hYmxlZDtcbiAgICAgICAgdGhpcy5fY29uZmlnLmluZmluaXRlID0gdGhpcy5sb29wO1xuICAgICAgICB0aGlzLl9jb25maWcudHJhbnNpdGlvbiA9IFN0cmluZyh0aGlzLnNsaWRlVHJhbnNpdGlvbkR1cmF0aW9uKSArICdtcyc7XG4gICAgICAgIC8vIENhcm91c2VsIHNlcnZpY2UgZXhwZWN0cyB0cmFuc2l0aW9uIGluIHN0cmluZyBmb3JtYXQgd2l0aCB1bml0LlxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gUmV0dXJucyB0aGUgc2xpZGUgc3dhcHBpbmcgc3RlcHNcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRTdGVwVGFrZW4oZXZlbnQ6IFBhbkVuZE91dHB1dCwgYWN0dWFsQWN0aXZlU2xpZGVJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHN0ZXBzQ2FsY3VsYXRlZDogbnVtYmVyO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoIXRoaXMuX2lzUnRsKCkgJiYgZXZlbnQuYWZ0ZXIpIHx8XG4gICAgICAgICAgICAodGhpcy5faXNSdGwoKSAmJiAhZXZlbnQuYWZ0ZXIgJiYgIXRoaXMudmVydGljYWwpIHx8XG4gICAgICAgICAgICAodGhpcy52ZXJ0aWNhbCAmJiBldmVudC5hZnRlcilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAoYWN0dWFsQWN0aXZlU2xpZGVJbmRleCA9PT0gMCAmJiB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgc3RlcHNDYWxjdWxhdGVkID0gMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0dWFsQWN0aXZlU2xpZGVJbmRleCA+IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXgpIHtcbiAgICAgICAgICAgICAgICBzdGVwc0NhbGN1bGF0ZWQgPSBhY3R1YWxBY3RpdmVTbGlkZUluZGV4IC0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3RlcHNDYWxjdWxhdGVkID0gdGhpcy5zbGlkZXMubGVuZ3RoIC0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCArIGFjdHVhbEFjdGl2ZVNsaWRlSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UsIHdoZW4gZmlyc3QgbGVmdCBzd2lwZSBiZWZvcmUgc2xpZGVzIGFyZSByb3RhdGVkIGluIGNhcm91c2VsIHNlcnZpY2VcbiAgICAgICAgICAgIGlmIChhY3R1YWxBY3RpdmVTbGlkZUluZGV4ID09PSAwICYmIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICBzdGVwc0NhbGN1bGF0ZWQgPSAwO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChhY3R1YWxBY3RpdmVTbGlkZUluZGV4IDwgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCkge1xuICAgICAgICAgICAgICAgIHN0ZXBzQ2FsY3VsYXRlZCA9IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggLSBhY3R1YWxBY3RpdmVTbGlkZUluZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGVwc0NhbGN1bGF0ZWQgPSB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ICsgdGhpcy5zbGlkZXMubGVuZ3RoIC0gYWN0dWFsQWN0aXZlU2xpZGVJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RlcHNDYWxjdWxhdGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEhhbmRsZXMgbm90aWZpY2F0aW9uIG9uIHZpc2libGUgc2xpZGUgY2hhbmdlICovXG4gICAgcHJpdmF0ZSBfbm90aWZ5U2xpZGVDaGFuZ2Uoc2xpZGVEaXJlY3Rpb246IFNsaWRlRGlyZWN0aW9uLCBmaXJzdEFjdGl2ZVNsaWRlPzogQ2Fyb3VzZWxJdGVtSW50ZXJmYWNlIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhY3RpdmVTbGlkZXM6IENhcm91c2VsSXRlbUNvbXBvbmVudFtdID0gW107XG4gICAgICAgIGxldCBmaXJzdEFjdGl2ZVNsaWRlSW5kZXg6IG51bWJlcjtcblxuICAgICAgICBpZiAodGhpcy5sb29wKSB7XG4gICAgICAgICAgICBmaXJzdEFjdGl2ZVNsaWRlID0gdGhpcy5fY2Fyb3VzZWxTZXJ2aWNlLmFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaXJzdEFjdGl2ZVNsaWRlKSB7XG4gICAgICAgICAgICBmaXJzdEFjdGl2ZVNsaWRlSW5kZXggPSB0aGlzLnNsaWRlcy50b0FycmF5KCkuZmluZEluZGV4KChfaXRlbSkgPT4gX2l0ZW0gPT09IGZpcnN0QWN0aXZlU2xpZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlyc3RBY3RpdmVTbGlkZUluZGV4ID0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGFjdGl2ZVNsaWRlSW5kZXggPSAwOyBhY3RpdmVTbGlkZUluZGV4IDwgdGhpcy5fdmlzaWJsZVNsaWRlc051bWVyaWNDb3VudDsgYWN0aXZlU2xpZGVJbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGZpcnN0QWN0aXZlU2xpZGVJbmRleCArIGFjdGl2ZVNsaWRlSW5kZXg7XG4gICAgICAgICAgICBjb25zdCBzbGlkZSA9IHRoaXMuc2xpZGVzLmdldChpbmRleCk7XG4gICAgICAgICAgICBpZiAoc2xpZGUpIHtcbiAgICAgICAgICAgICAgICBhY3RpdmVTbGlkZXMucHVzaChzbGlkZSk7XG4gICAgICAgICAgICAgICAgc2xpZGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX21hbmFnZVNsaWRlVmlzaWJpbGl0eShmaXJzdEFjdGl2ZVNsaWRlSW5kZXgpO1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBzbGlkZURpcmVjdGlvbiA9PT0gU2xpZGVEaXJlY3Rpb24uTkVYVCA/ICdOZXh0JyA6ICdQcmV2aW91cyc7XG4gICAgICAgIHRoaXMuc2xpZGVDaGFuZ2UuZW1pdChuZXcgQ2Fyb3VzZWxBY3RpdmVTbGlkZXMoYWN0aXZlU2xpZGVzLCBkaXJlY3Rpb24pKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBNYW5hZ2VzIHZpc2liaWxpdHkgZm9yIHNsaWRlcy4gVXNlZnVsIGluIG1hbmFnaW5nIHRhYiBvcmRlciAqL1xuICAgIHByaXZhdGUgX21hbmFnZVNsaWRlVmlzaWJpbGl0eShmaXJzdEFjdGl2ZVNsaWRlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVzLmZvckVhY2goKF9zbGlkZXMsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID49IGZpcnN0QWN0aXZlU2xpZGVJbmRleCAmJiBpbmRleCA8IGZpcnN0QWN0aXZlU2xpZGVJbmRleCArIHRoaXMuX3Zpc2libGVTbGlkZXNOdW1lcmljQ291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9zbGlkZXMudmlzaWJpbGl0eSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9zbGlkZXMudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfc2xpZGVzLnZpc2liaWxpdHkgPT09ICd2aXNpYmxlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3NsaWRlcy52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9LCB0aGlzLnNsaWRlVHJhbnNpdGlvbkR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSdGwgY2hhbmdlIHN1YnNjcmlwdGlvbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmliZVRvUnRsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWZyZXNoRGlyZWN0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXIgPSB0aGlzLl9pc1J0bCgpID8gJ3J0bCcgOiAnbHRyJztcbiAgICAgICAgICAgIHRoaXMuX2Nhcm91c2VsU2VydmljZS5pc1J0bCA9IHRoaXMuZGlyID09PSAncnRsJztcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2Nhcm91c2VsU2VydmljZS5pdGVtcyAmJiB0aGlzLl9jYXJvdXNlbFNlcnZpY2UuYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2Fyb3VzZWxTZXJ2aWNlLmdvVG9JdGVtKHRoaXMuX2Nhcm91c2VsU2VydmljZS5hY3RpdmUsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVmcmVzaERpcmVjdGlvbigpO1xuICAgICAgICB0aGlzLl9ydGxTZXJ2aWNlPy5ydGwucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiByZWZyZXNoRGlyZWN0aW9uKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIE9uIFN3aXBpbmcgb2Ygc2xpZGUsIG1hbmFnZSBwYWdlIGluZGljYXRvciAqL1xuICAgIHByaXZhdGUgX29uU2xpZGVTd2lwZShldmVudDogUGFuRW5kT3V0cHV0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NsaWRlU3dpcGVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZmlyc3RBY3RpdmVTbGlkZSA9IGV2ZW50Lml0ZW07XG4gICAgICAgIGNvbnN0IGFjdHVhbEFjdGl2ZVNsaWRlSW5kZXggPSB0aGlzLl9zbGlkZXNDb3B5LmZpbmRJbmRleCgoX3NsaWRlKSA9PiBfc2xpZGUgPT09IGZpcnN0QWN0aXZlU2xpZGUpO1xuICAgICAgICBjb25zdCBzdGVwVGFrZW4gPSB0aGlzLl9nZXRTdGVwVGFrZW4oZXZlbnQsIGFjdHVhbEFjdGl2ZVNsaWRlSW5kZXgpO1xuICAgICAgICBpZiAoc3RlcFRha2VuID4gMCkge1xuICAgICAgICAgICAgbGV0IHNsaWRlRGlyZWN0aW9uOiBTbGlkZURpcmVjdGlvbjtcbiAgICAgICAgICAgIGlmICghdGhpcy5faXNSdGwoKSkge1xuICAgICAgICAgICAgICAgIHNsaWRlRGlyZWN0aW9uID0gZXZlbnQuYWZ0ZXIgPyBTbGlkZURpcmVjdGlvbi5ORVhUIDogU2xpZGVEaXJlY3Rpb24uUFJFVklPVVM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIHZlcnRpY2FsIGNhcm91c2VsIHNsaWRlIGRpcmVjdGlvbiBpcyBzYW1lIGluIGx0ciBhbmQgcnRsXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVEaXJlY3Rpb24gPSBldmVudC5hZnRlciA/IFNsaWRlRGlyZWN0aW9uLk5FWFQgOiBTbGlkZURpcmVjdGlvbi5QUkVWSU9VUztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzbGlkZURpcmVjdGlvbiA9IGV2ZW50LmFmdGVyID8gU2xpZGVEaXJlY3Rpb24uUFJFVklPVVMgOiBTbGlkZURpcmVjdGlvbi5ORVhUO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2FkanVzdEFjdGl2ZUl0ZW1Qb3NpdGlvbihzbGlkZURpcmVjdGlvbiwgc3RlcFRha2VuKTtcbiAgICAgICAgICAgIHRoaXMuX25vdGlmeVNsaWRlQ2hhbmdlKHNsaWRlRGlyZWN0aW9uLCBmaXJzdEFjdGl2ZVNsaWRlKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gTWFraW5nIHNsaWRlcyB2aXNpYmxlIHdoZW4gc2xpZGVzIGFyZSBkcmFnZ2VkLiBPdGhlcndpc2UsIGl0IGxvb3NlcyB0aGUgZWZmZWN0LlxuICAgICAqL1xuICAgIHByaXZhdGUgX29uU2xpZGVEcmFnKGlzRHJhZ2dpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVzLmZvckVhY2goKF9zbGlkZSkgPT4ge1xuICAgICAgICAgICAgICAgIF9zbGlkZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9zbGlkZVN3aXBlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBBZnRlciBzbGlkZSBsaW1pdCByZWFjaGVkLCBpZiBkcmFnZ2luZyBzdGFydHMgdGhlbiByZXZlcnQgdmlzaWJpbGl0eVxuICAgICAgICAgICAgaWYgKCF0aGlzLl9zbGlkZVN3aXBlZCAmJiAhdGhpcy5sb29wKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWFuYWdlU2xpZGVWaXNpYmlsaXR5KHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFJlc2l6ZXMgaW5uZXIgY2Fyb3VzZWwgY29udGFpbmVyIHRvIGZpdCBhbGwgaXRlbXMgaW4gdGhlIHZpZXdwb3J0IGFuZCBoaWRlIHRob3NlIHdoaWNoIGFyZSBub3QgZnVsbHkgaW4gaXQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmVzaXplQ29udGVudENvbnRhaW5lcigpOiB2b2lkIHtcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuc2xpZGVDb250YWluZXIubmF0aXZlRWxlbWVudCksXG4gICAgICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuY2Fyb3VzZWxDb250YWluZXIubmF0aXZlRWxlbWVudClcbiAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIHNsaWRlcyB9ID0gdGhpcy5fZ2V0Rml0dGluZ1NsaWRlc0FuZFdpZHRoKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy52aXNpYmxlU2xpZGVzQ291bnQgPT09ICdhdXRvJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92aXNpYmxlU2xpZGVzTnVtZXJpY0NvdW50ID0gc2xpZGVzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3RhbFNsaWRlcyA9IHRoaXMuc2xpZGVzLmxlbmd0aDtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZGxlU2xpZGVJbmRleCA9IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXg7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgYW1vdW50IG9mIHNsaWRlcyBpbnN1ZmZpY2llbnQgdG8gZmlsbCB3aG9sZSBjYXJvdXNlbCwgc2xpZGUgYmFjayBhIGJpdC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggKyBzbGlkZXMgPiB0b3RhbFNsaWRlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZGxlU2xpZGVJbmRleCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggKyBzbGlkZXMgLSB0b3RhbFNsaWRlcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZWVkbGVTbGlkZSA9IHRoaXMuc2xpZGVzLmdldChuZWVkbGVTbGlkZUluZGV4KTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID0gbmVlZGxlU2xpZGVJbmRleDtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYXJvdXNlbFNlcnZpY2UuYWN0aXZlID0gbmVlZGxlU2xpZGU7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gUmVmcmVzaCBjYXJvdXNlbCBjb25maWcgYW5kIHRyYW5zaXRpb24gdG8gdGhlIGN1cnJlbnQgc2xpZGUuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVDYXJvdXNlbCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIG5lZWRsZVNsaWRlICYmIHRoaXMuX2Nhcm91c2VsU2VydmljZS5nb1RvSXRlbShuZWVkbGVTbGlkZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmeVNsaWRlQ2hhbmdlKFNsaWRlRGlyZWN0aW9uLk5vbmUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zbGlkZXNXcmFwcGVyU2l6ZSAhPT0gd2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2xpZGVzV3JhcHBlclNpemUgPSB3aWR0aDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ2FsY3VsYXRlcyBob3cgbWFueSBzbGlkZXMgY2FuIGJlIHNob3duIHdpdGhpbiBjdXJyZW50IGNhcm91c2VsIHZpZXdwb3J0LlxuICAgICAqIEByZXR1cm5zIE9iamVjdCBjb250YWluaW5nIGZpdHRpbmcgc2xpZGVzIGNvdW50IGFuZCB0b3RhbCB3aWR0aCBvZiB0aG9zZSBzbGlkZXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0Rml0dGluZ1NsaWRlc0FuZFdpZHRoKCk6IEZpdHRpbmdTbGlkZXNBbmRXaWR0aCB7XG4gICAgICAgIGlmICghdGhpcy5jYXJvdXNlbENvbnRhaW5lcikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgICAgICBzbGlkZXM6IDFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHdpZHRoIH0gPSB0aGlzLmNhcm91c2VsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGxldCBtYXhTaXplID0gMDtcbiAgICAgICAgbGV0IHNsaWRlc0NvdW50ID0gMDtcblxuICAgICAgICBjb25zdCBjYXJvdXNlbFNsaWRlcyA9IHRoaXMuc2xpZGVzLnRvQXJyYXkoKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNTbGlkZXMgPSBjYXJvdXNlbFNsaWRlcy5zcGxpY2UoMCwgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCk7XG5cbiAgICAgICAgY29uc3QgZ2V0U2xpZGVzID0gKHNsaWRlczogQ2Fyb3VzZWxJdGVtQ29tcG9uZW50W10pOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc2xpZGUgb2Ygc2xpZGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2xpZGVXaWR0aCA9IHNsaWRlLmdldFdpZHRoKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXNsaWRlV2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3U2l6ZSA9IG1heFNpemUgKyBzbGlkZVdpZHRoO1xuXG4gICAgICAgICAgICAgICAgaWYgKG5ld1NpemUgPiB3aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBtYXhTaXplID0gbmV3U2l6ZTtcbiAgICAgICAgICAgICAgICBzbGlkZXNDb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGdldFNsaWRlcyhjYXJvdXNlbFNsaWRlcyk7XG5cbiAgICAgICAgLy8gSWYgd2l0aCBvZiB0aGUgcmVzdCBvZiB0aGUgc2xpZGVzIGlzIGxlc3NlciB0aGFuIGNhcm91c2UncyB2aWV3cG9ydCwgYWRkIHByZXZpb3VzIHNsaWRlcyB0byBpdC5cbiAgICAgICAgaWYgKG1heFNpemUgPCB3aWR0aCkge1xuICAgICAgICAgICAgZ2V0U2xpZGVzKHByZXZpb3VzU2xpZGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB3aWR0aDogbWF4U2l6ZSxcbiAgICAgICAgICAgIHNsaWRlczogc2xpZGVzQ291bnRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFZpc2libGVTbGlkZXNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5fdmlzaWJsZVNsaWRlc0NvdW50ICE9PSAnYXV0bycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlU2xpZGVzQ291bnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHNsaWRlcyB9ID0gdGhpcy5fZ2V0Rml0dGluZ1NsaWRlc0FuZFdpZHRoKCk7XG4gICAgICAgIHJldHVybiBzbGlkZXM7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZmQtY2Fyb3VzZWxcIlxuICAgIFtjbGFzcy5mZC1jYXJvdXNlbC0tbm8tbmF2aWdhdGlvbl09XCIhbmF2aWdhdGlvblwiXG4gICAgZGF0YS1yaWRlPVwiY2Fyb3VzZWxcIlxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIlxuICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgW2F0dHIuZGlyXT1cImRpclwiXG4gICAgcm9sZT1cInJlZ2lvblwiXG4gICAgI2Nhcm91c2VsQ29udGFpbmVyXG4gICAgKGNsaWNrKT1cIl9mb2N1cygpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3Nob3dQYWdlSW5kaWNhdG9yQ29udGFpbmVyICYmIHBhZ2VJbmRpY2F0b3JzT3JpZW50YXRpb24gPT09ICd0b3AnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlSW5kaWNhdG9yQ29udGFpbmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtY2Fyb3VzZWxfX2NvbnRlbnRcIlxuICAgICAgICBbY2xhc3MuZmQtY2Fyb3VzZWxfX2NvbnRlbnQtLWhvcml6b250YWxdPVwiIXZlcnRpY2FsXCJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cIl9jb250ZW50U2l6ZVB4XCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfc2hvd05hdmlnYXRpb25CdXR0b25JbkNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25MZWZ0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgI3NsaWRlQ29udGFpbmVyIGNsYXNzPVwiZmQtY2Fyb3VzZWxfX3NsaWRlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3Nob3dOYXZpZ2F0aW9uQnV0dG9uSW5Db250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uUmlnaHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3Nob3dQYWdlSW5kaWNhdG9yQ29udGFpbmVyICYmIHBhZ2VJbmRpY2F0b3JzT3JpZW50YXRpb24gPT09ICdib3R0b20nXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlSW5kaWNhdG9yQ29udGFpbmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIHJvbGU9XCJyZWdpb25cIiBbYXR0ci5pZF09XCJpZCArICctYWNjZXNzaWJpbGl0eSdcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBkaXI9XCJsdHJcIj5cbiAgICAgICAge3sgc2NyZWVuUmVhZGVyTGFiZWwgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3BhZ2VJbmRpY2F0b3JDb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cImZkLWNhcm91c2VsX19wYWdlLWluZGljYXRvci1jb250YWluZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9zaG93TmF2aWdhdGlvbkJ1dHRvbkluUGFnZUluZGljYXRvckNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkxlZnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VJbmRpY2F0b3JzXCI+IDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfc2hvd05hdmlnYXRpb25CdXR0b25JblBhZ2VJbmRpY2F0b3JDb250YWluZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25SaWdodFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGFnZUluZGljYXRvcnM+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm51bWVyaWNJbmRpY2F0b3JcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZkLWNhcm91c2VsX19wYWdlLWluZGljYXRvcnNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlSW5kaWNhdG9yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWNhcm91c2VsX190ZXh0XCIgZGlyPVwibHRyXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldFBhZ2VJbmRpY2F0b3JMYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbnVtZXJpY0luZGljYXRvciAmJiBfc2hvd05hdmlnYXRpb25CdXR0b25JblBhZ2VJbmRpY2F0b3JDb250YWluZXJcIj5cbiAgICAgICAgPG9sIGNsYXNzPVwiZmQtY2Fyb3VzZWxfX3BhZ2UtaW5kaWNhdG9yc1wiIFthdHRyLmRpcl09XCJkaXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlSW5kaWNhdG9yXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwYWdlSW5kaWNhdG9yc0NvdW50QXJyYXk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXNsaWRlLXRvXT1cImkgKyAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtY2Fyb3VzZWxfX3BhZ2UtaW5kaWNhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1jYXJvdXNlbF9fcGFnZS1pbmRpY2F0b3ItLWFjdGl2ZV09XCJpID09PSBjdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgID48L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvb2w+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbkxlZnQ+XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJmZC1jYXJvdXNlbF9fYnV0dG9uIGZkLWNhcm91c2VsX19idXR0b24tLWxlZnRcIlxuICAgICAgICBbc3R5bGUuei1pbmRleF09XCIxXCJcbiAgICAgICAgZGF0YS1zbGlkZT1cInByZXZpb3VzXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsZWZ0TmF2aWdhdGlvbkJ0bkxhYmVsIHx8ICgnY29yZUNhcm91c2VsLmxlZnROYXZpZ2F0aW9uQnRuTGFiZWwnIHwgZmRUcmFuc2xhdGUpXCJcbiAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJsZWZ0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJsZWZ0TmF2aWdhdGlvbkJ0bkxhYmVsIHx8ICgnY29yZUNhcm91c2VsLmxlZnROYXZpZ2F0aW9uQnRuTGFiZWwnIHwgZmRUcmFuc2xhdGUpXCJcbiAgICAgICAgZ2x5cGg9XCJzbGltLWFycm93LWxlZnRcIlxuICAgID48L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uUmlnaHQ+XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJmZC1jYXJvdXNlbF9fYnV0dG9uIGZkLWNhcm91c2VsX19idXR0b24tLXJpZ2h0XCJcbiAgICAgICAgW3N0eWxlLnotaW5kZXhdPVwiMVwiXG4gICAgICAgIGRhdGEtc2xpZGU9XCJuZXh0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyaWdodE5hdmlnYXRpb25CdG5MYWJlbCB8fCAoJ2NvcmVDYXJvdXNlbC5yaWdodE5hdmlnYXRpb25CdG5MYWJlbCcgfCBmZFRyYW5zbGF0ZSlcIlxuICAgICAgICAoY2xpY2spPVwibmV4dCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwicmlnaHRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cInJpZ2h0TmF2aWdhdGlvbkJ0bkxhYmVsIHx8ICgnY29yZUNhcm91c2VsLnJpZ2h0TmF2aWdhdGlvbkJ0bkxhYmVsJyB8IGZkVHJhbnNsYXRlKVwiXG4gICAgICAgIGdseXBoPVwic2xpbS1hcnJvdy1yaWdodFwiXG4gICAgPjwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -36,9 +36,9 @@ export class CarouselDirective {
|
|
|
36
36
|
this._carouselService.pickNext();
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
CarouselDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
40
|
-
CarouselDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
39
|
+
CarouselDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CarouselDirective, deps: [{ token: i0.ElementRef }, { token: i1.CarouselService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
40
|
+
CarouselDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CarouselDirective, selector: "[fdCarousel]", inputs: { config: "config", active: "active" }, outputs: { activeChange: "activeChange", dragStateChange: "dragStateChange" }, host: { classAttribute: "fd-carousel_" }, providers: [CarouselService], queries: [{ propertyName: "items", predicate: CarouselItemDirective, descendants: true }], ngImport: i0 });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CarouselDirective, decorators: [{
|
|
42
42
|
type: Directive,
|
|
43
43
|
args: [{
|
|
44
44
|
selector: '[fdCarousel]',
|
|
@@ -11,10 +11,10 @@ import { CarouselService } from './carousel.service';
|
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
export class CarouselModule {
|
|
13
13
|
}
|
|
14
|
-
CarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
15
|
-
CarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
16
|
-
CarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
14
|
+
CarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
+
CarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: CarouselModule, declarations: [CarouselItemDirective, CarouselDirective, CarouselComponent, CarouselItemComponent], imports: [CommonModule, BusyIndicatorModule, ButtonModule, I18nModule], exports: [CarouselItemDirective, CarouselDirective, CarouselComponent, CarouselItemComponent] });
|
|
16
|
+
CarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CarouselModule, providers: [CarouselService], imports: [CommonModule, BusyIndicatorModule, ButtonModule, I18nModule] });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CarouselModule, decorators: [{
|
|
18
18
|
type: NgModule,
|
|
19
19
|
args: [{
|
|
20
20
|
imports: [CommonModule, BusyIndicatorModule, ButtonModule, I18nModule],
|
|
@@ -319,9 +319,9 @@ export class CarouselService {
|
|
|
319
319
|
return window.TouchEvent && event instanceof TouchEvent;
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
|
-
CarouselService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
323
|
-
CarouselService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
324
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
322
|
+
CarouselService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CarouselService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
323
|
+
CarouselService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CarouselService, providedIn: 'root' });
|
|
324
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CarouselService, decorators: [{
|
|
325
325
|
type: Injectable,
|
|
326
326
|
args: [{
|
|
327
327
|
providedIn: 'root'
|
|
@@ -182,8 +182,8 @@ export class CheckboxComponent {
|
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
|
-
CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
186
|
-
CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
185
|
+
CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ElementRef }, { token: 'tabIndexValue', attribute: true }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.ContentDensityObserver }, { token: LIST_ITEM_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
186
|
+
CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CheckboxComponent, selector: "fd-checkbox", inputs: { ariaLabel: "ariaLabel", value: "value", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", title: "title", inputId: "inputId", state: "state", name: "name", label: "label", disabled: "disabled", tristate: "tristate", tristateSelectable: "tristateSelectable", labelClass: "labelClass", required: "required", values: "values", standalone: "standalone" }, outputs: { focusChange: "focusChange" }, host: { properties: { "attr.tabindex": "-1", "class.fd-checkbox--standalone": "this.standalone", "style.position": "this.position", "style.outline": "this.outline" } }, providers: [
|
|
187
187
|
{
|
|
188
188
|
provide: NG_VALUE_ACCESSOR,
|
|
189
189
|
useExisting: forwardRef(() => CheckboxComponent),
|
|
@@ -196,7 +196,7 @@ CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
196
196
|
registerFormItemControl(CheckboxComponent),
|
|
197
197
|
contentDensityObserverProviders()
|
|
198
198
|
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["labelElement"], descendants: true }], ngImport: i0, template: "<input\n #inputElement\n type=\"checkbox\"\n class=\"fd-checkbox\"\n [id]=\"inputId\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isChecked\"\n [attr.tabindex]=\"tabIndexValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-required]=\"required\"\n [class]=\"state ? 'is-' + state : ''\"\n (click)=\"_onInputClick($event)\"\n (blur)=\"_onBlur()\"\n (focus)=\"_onFocus()\"\n/>\n\n<label\n class=\"fd-checkbox__label\"\n #labelElement\n [for]=\"inputId\"\n [class]=\"labelClass\"\n [attr.title]=\"title\"\n [class.fd-checkbox__label--required]=\"required\"\n (click)=\"_onLabelClick($event)\"\n>\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n <div class=\"fd-checkbox__label-container\">\n <ng-container *ngIf=\"label\">\n <span class=\"fd-checkbox__text\">\n {{ label }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!label\">\n <span class=\"fd-checkbox__text\">\n <ng-content></ng-content>\n </span>\n </ng-container>\n </div>\n</label>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-checkbox\n*/.fd-checkbox{-webkit-box-sizing:border-box;-webkit-appearance:none;appearance:none;background-color:var(--sapField_Background);border:0;border-color:var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);border-style:solid;border-width:var(--sapField_BorderWidth);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;opacity:.0001;outline:none;overflow:hidden;padding:0;position:absolute;text-overflow:ellipsis;white-space:nowrap}.fd-checkbox:after,.fd-checkbox:before{box-sizing:inherit;font-size:inherit}.fd-checkbox::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:italic}.fd-checkbox::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-checkbox.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle)}.fd-checkbox.is-success.is-hover,.fd-checkbox.is-success:hover{-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-checkbox.is-success.is-focus,.fd-checkbox.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color);z-index:5}.fd-checkbox.is-success.is-focus.is-hover,.fd-checkbox.is-success.is-focus:hover,.fd-checkbox.is-success:focus.is-hover,.fd-checkbox.is-success:focus:hover{box-shadow:none}.fd-checkbox.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle)}.fd-checkbox.is-error.is-hover,.fd-checkbox.is-error:hover{-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-checkbox.is-error.is-focus,.fd-checkbox.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color);z-index:5}.fd-checkbox.is-error.is-focus.is-hover,.fd-checkbox.is-error.is-focus:hover,.fd-checkbox.is-error:focus.is-hover,.fd-checkbox.is-error:focus:hover{box-shadow:none}.fd-checkbox.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-checkbox.is-warning.is-hover,.fd-checkbox.is-warning:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-checkbox.is-warning.is-focus,.fd-checkbox.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-checkbox.is-warning.is-focus.is-hover,.fd-checkbox.is-warning.is-focus:hover,.fd-checkbox.is-warning:focus.is-hover,.fd-checkbox.is-warning:focus:hover{box-shadow:none}.fd-checkbox.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-checkbox.is-alert.is-hover,.fd-checkbox.is-alert:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-checkbox.is-alert.is-focus,.fd-checkbox.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-checkbox.is-alert.is-focus.is-hover,.fd-checkbox.is-alert.is-focus:hover,.fd-checkbox.is-alert:focus.is-hover,.fd-checkbox.is-alert:focus:hover{box-shadow:none}.fd-checkbox.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle)}.fd-checkbox.is-information.is-hover,.fd-checkbox.is-information:hover{-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-checkbox.is-information.is-focus,.fd-checkbox.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color);z-index:5}.fd-checkbox.is-information.is-focus.is-hover,.fd-checkbox.is-information.is-focus:hover,.fd-checkbox.is-information:focus.is-hover,.fd-checkbox.is-information:focus:hover{box-shadow:none}.fd-checkbox.is-alert.is-focus,.fd-checkbox.is-alert:focus,.fd-checkbox.is-error.is-focus,.fd-checkbox.is-error:focus,.fd-checkbox.is-information.is-focus,.fd-checkbox.is-information:focus,.fd-checkbox.is-warning.is-focus,.fd-checkbox.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-checkbox.is-disabled,.fd-checkbox:disabled,.fd-checkbox[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-checkbox.is-readonly,.fd-checkbox[aria-readonly=true],.fd-checkbox[readonly]{background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius)}.fd-checkbox.is-readonly.is-hover,.fd-checkbox.is-readonly:hover,.fd-checkbox[aria-readonly=true].is-hover,.fd-checkbox[aria-readonly=true]:hover,.fd-checkbox[readonly].is-hover,.fd-checkbox[readonly]:hover{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);box-shadow:none}.fd-checkbox.is-readonly.is-focus,.fd-checkbox.is-readonly:focus,.fd-checkbox[aria-readonly=true].is-focus,.fd-checkbox[aria-readonly=true]:focus,.fd-checkbox[readonly].is-focus,.fd-checkbox[readonly]:focus{background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);z-index:5}.fd-checkbox,.fd-checkbox.is-error,.fd-checkbox.is-information,.fd-checkbox.is-success,.fd-checkbox.is-warning{border-style:initial}.fd-checkbox__label{-webkit-box-sizing:border-box;-ms-flex-item-align:start;align-items:center;align-self:flex-start;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);cursor:text;cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:1rem;margin:0 .5rem 0 0;max-width:100%;overflow:hidden;padding:0;padding:var(--fdCheckbox_Padding);position:relative;text-overflow:ellipsis;white-space:nowrap;width:-moz-fit-content;width:fit-content}.fd-checkbox__label:after,.fd-checkbox__label:before{box-sizing:inherit;font-size:inherit}.fd-checkbox__label[dir=rtl],[dir=rtl] .fd-checkbox__label{margin-left:.5rem;margin-right:0}.fd-checkbox__label:before{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:var(--fdCheckbox_Background_Color);border:var(--fdCheckbox_Border);border-radius:var(--sapField_BorderCornerRadius);color:var(--fdCheckbox_Selected_Color);content:\"\";display:inline-flex;font-family:SAP-icons;height:var(--fdCheckbox_Dimensions);justify-content:center;min-width:var(--fdCheckbox_Dimensions);width:var(--fdCheckbox_Dimensions)}.fd-checkbox__label:after{padding-left:.125rem;position:relative}.fd-checkbox__label.is-empty,.fd-checkbox__label:empty{margin:0}.fd-checkbox__label[dir=rtl]:after,[dir=rtl] .fd-checkbox__label:after{padding-left:0;padding-right:.125rem}.fd-checkbox__label.is-hover:before,.fd-checkbox__label:hover:before{-webkit-box-shadow:var(--fdCheckbox_Hover_Shadow);background-color:var(--fdCheckbox_Hover_Background);border-color:var(--fdCheckbox_Hover_Border_Color);box-shadow:var(--fdCheckbox_Hover_Shadow)}.fd-checkbox__label:focus{outline:none}.fd-checkbox__label--required .fd-checkbox__text,.fd-checkbox__label[aria-required=true] .fd-checkbox__text{padding-right:.5rem}.fd-checkbox__label--required .fd-checkbox__text[dir=rtl],.fd-checkbox__label[aria-required=true] .fd-checkbox__text[dir=rtl],[dir=rtl] .fd-checkbox__label--required .fd-checkbox__text,[dir=rtl] .fd-checkbox__label[aria-required=true] .fd-checkbox__text{padding-left:.5rem;padding-right:0}.fd-checkbox__label--required .fd-checkbox__text:after,.fd-checkbox__label[aria-required=true] .fd-checkbox__text:after{color:var(--sapField_RequiredColor);content:\"*\";font-size:var(--sapFontSize);font-weight:700;padding-left:.125rem;position:absolute}.fd-checkbox__label--required .fd-checkbox__text[dir=rtl]:after,.fd-checkbox__label[aria-required=true] .fd-checkbox__text[dir=rtl]:after,[dir=rtl] .fd-checkbox__label--required .fd-checkbox__text:after,[dir=rtl] .fd-checkbox__label[aria-required=true] .fd-checkbox__text:after{padding-left:0;padding-right:.125rem}.fd-checkbox__label-container{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:1rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0;pointer-events:none;width:100%}.fd-checkbox__label-container:after,.fd-checkbox__label-container:before{box-sizing:inherit;font-size:inherit}.fd-checkbox__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;margin-left:var(--fdCheckbox_Padding);margin-right:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fd-checkbox__text:after,.fd-checkbox__text:before{box-sizing:inherit;font-size:inherit}.fd-checkbox__text[dir=rtl],[dir=rtl] .fd-checkbox__text{margin-left:0;margin-right:var(--fdCheckbox_Padding)}.fd-checkbox:checked+.fd-checkbox__label:before{content:\"\\e05b\"}.fd-checkbox:indeterminate+.fd-checkbox__label:after{background-color:var(--fdCheckbox_Selected_Color);content:\"\";height:var(--fdCheckbox_Tristate_Size);margin-left:var(--fdCheckbox_Tristate_Offset);position:absolute;width:var(--fdCheckbox_Tristate_Size)}.fd-checkbox[dir=rtl]:indeterminate+.fd-checkbox__label:after,[dir=rtl] .fd-checkbox:indeterminate+.fd-checkbox__label:after{margin-left:0;margin-right:var(--fdCheckbox_Tristate_Offset)}.fd-checkbox.is-alert+.fd-checkbox__label,.fd-checkbox.is-warning+.fd-checkbox__label{--fdCheckbox_Background_Color:var(--sapField_WarningBackground);--fdCheckbox_Hover_Background:var(--fdCheckbox_State_Hover_Background);--fdCheckbox_Border:var(--sapField_WarningBorderWidth) var(--fdCheckbox_Warning_Error_Information_Border_Style) var(--sapField_WarningColor);--fdCheckbox_Hover_Shadow:var(--fdCheckbox_Warning_State_Shadow);--fdCheckbox_Hover_Border_Color:var(--sapField_WarningColor);--fdCheckbox_Selected_Color:var(--sapField_TextColor)}.fd-checkbox.is-error+.fd-checkbox__label{--fdCheckbox_Background_Color:var(--sapField_InvalidBackground);--fdCheckbox_Hover_Background:var(--fdCheckbox_State_Hover_Background);--fdCheckbox_Border:var(--sapField_InvalidBorderWidth) var(--fdCheckbox_Warning_Error_Information_Border_Style) var(--sapField_InvalidColor);--fdCheckbox_Hover_Shadow:var(--fdCheckbox_Error_State_Shadow);--fdCheckbox_Hover_Border_Color:var(--sapField_InvalidColor);--fdCheckbox_Selected_Color:var(--sapField_InvalidColor)}.fd-checkbox.is-success+.fd-checkbox__label{--fdCheckbox_Background_Color:var(--sapField_SuccessBackground);--fdCheckbox_Hover_Background:var(--fdCheckbox_State_Hover_Background);--fdCheckbox_Border:var(--sapField_SuccessBorderWidth) solid var(--sapField_SuccessColor);--fdCheckbox_Hover_Shadow:var(--fdCheckbox_Success_State_Shadow);--fdCheckbox_Hover_Border_Color:var(--sapField_SuccessColor);--fdCheckbox_Selected_Color:var(--sapField_SuccessColor)}.fd-checkbox.is-information+.fd-checkbox__label{--fdCheckbox_Background_Color:var(--sapField_InformationBackground);--fdCheckbox_Hover_Background:var(--fdCheckbox_State_Hover_Background);--fdCheckbox_Border:var(--sapField_InformationBorderWidth) var(--fdCheckbox_Warning_Error_Information_Border_Style) var(--sapField_InformationColor);--fdCheckbox_Hover_Shadow:var(--fdCheckbox_Information_State_Shadow);--fdCheckbox_Hover_Border_Color:var(--sapField_InformationColor);--fdCheckbox_Selected_Color:var(--sapField_InformationColor)}.fd-checkbox.is-readonly+.fd-checkbox__label,.fd-checkbox[readonly]+.fd-checkbox__label{--fdCheckbox_Background_Color:var(--sapField_ReadOnly_Background);--fdCheckbox_Hover_Background:var(--fdCheckbox_State_Hover_Background);--fdCheckbox_Border:var(--fdCheckbox_Readonly_Border_Width) var(--fdCheckbox_Readonly_Border_Type) var(--sapField_ReadOnly_BorderColor);--fdCheckbox_Hover_Shadow:none;--fdCheckbox_Hover_Border_Color:var(--sapField_ReadOnly_BorderColor);--fdCheckbox_Selected_Color:var(--sapContent_NonInteractiveIconColor)}.fd-checkbox.is-focus,.fd-checkbox:focus{z-index:5}.fd-checkbox.is-focus+.fd-checkbox__label,.fd-checkbox:focus+.fd-checkbox__label{border-radius:var(--fdCheckbox_Outline_Border_Radius);outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);outline-offset:calc(var(--fdCheckbox_Focus_Outline_Offset) - var(--fdCheckbox_Padding))}.fd-checkbox.is-disabled,.fd-checkbox:disabled,.fd-checkbox[aria-disabled=true]{opacity:.0001}.fd-checkbox.is-disabled+.fd-checkbox__label,.fd-checkbox:disabled+.fd-checkbox__label,.fd-checkbox[aria-disabled=true]+.fd-checkbox__label{opacity:.4;pointer-events:none}.fd-checkbox[class*=-compact]+.fd-checkbox__label,.fd-checkbox[class*=-condensed]+.fd-checkbox__label,[class*=-compact] .fd-checkbox:not([class*=-cozy])+.fd-checkbox__label,[class*=-condensed] .fd-checkbox:not([class*=-cozy])+.fd-checkbox__label{--fdCheckbox_Dimensions:var(--fdCheckbox_Compact_Dimensions);--fdCheckbox_Padding:var(--fdCheckbox_Compact_Padding)}.fd-checkbox[class*=-compact]:indeterminate+.fd-checkbox__label,.fd-checkbox[class*=-condensed]:indeterminate+.fd-checkbox__label,[class*=-compact] .fd-checkbox:not([class*=-cozy]):indeterminate+.fd-checkbox__label,[class*=-condensed] .fd-checkbox:not([class*=-cozy]):indeterminate+.fd-checkbox__label{--fdCheckbox_Tristate_Size:var(--fdCheckbox_Tristate_Compact_Size);--fdCheckbox_Tristate_Offset:var(--fdCheckbox_Tristate_Compact_Offset)}.fd-checkbox[class*=-compact].is-focus,.fd-checkbox[class*=-compact]:focus,.fd-checkbox[class*=-condensed].is-focus,.fd-checkbox[class*=-condensed]:focus,[class*=-compact] .fd-checkbox:not([class*=-cozy]).is-focus,[class*=-compact] .fd-checkbox:not([class*=-cozy]):focus,[class*=-condensed] .fd-checkbox:not([class*=-cozy]).is-focus,[class*=-condensed] .fd-checkbox:not([class*=-cozy]):focus{z-index:5}.fd-checkbox[class*=-compact].is-focus+.fd-checkbox__label,.fd-checkbox[class*=-compact]:focus+.fd-checkbox__label,.fd-checkbox[class*=-condensed].is-focus+.fd-checkbox__label,.fd-checkbox[class*=-condensed]:focus+.fd-checkbox__label,[class*=-compact] .fd-checkbox:not([class*=-cozy]).is-focus+.fd-checkbox__label,[class*=-compact] .fd-checkbox:not([class*=-cozy]):focus+.fd-checkbox__label,[class*=-condensed] .fd-checkbox:not([class*=-cozy]).is-focus+.fd-checkbox__label,[class*=-condensed] .fd-checkbox:not([class*=-cozy]):focus+.fd-checkbox__label{--fdCheckbox_Outline_Border_Radius:var(--fdCheckbox_Compact_Outline_Border_Radius)}fd-checkbox .fd-checkbox__text:empty{margin:0}fd-checkbox .fd-checkbox__label{-webkit-user-select:none;user-select:none}fd-checkbox.fd-checkbox--standalone .fd-checkbox__label{margin:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
200
200
|
type: Component,
|
|
201
201
|
args: [{ selector: 'fd-checkbox', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
202
202
|
{
|
|
@@ -7,10 +7,10 @@ import { ContentDensityModule } from '@fundamental-ngx/core/content-density';
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class CheckboxModule {
|
|
9
9
|
}
|
|
10
|
-
CheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
11
|
-
CheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
12
|
-
CheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
10
|
+
CheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
CheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: CheckboxModule, declarations: [CheckboxComponent, DeprecatedCheckboxContentDensityDirective], imports: [CommonModule, FormsModule, ContentDensityModule], exports: [CheckboxComponent, DeprecatedCheckboxContentDensityDirective, ContentDensityModule] });
|
|
12
|
+
CheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxModule, imports: [CommonModule, FormsModule, ContentDensityModule, ContentDensityModule] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxModule, decorators: [{
|
|
14
14
|
type: NgModule,
|
|
15
15
|
args: [{
|
|
16
16
|
declarations: [CheckboxComponent, DeprecatedCheckboxContentDensityDirective],
|
|
@@ -7,14 +7,14 @@ export class DeprecatedCheckboxContentDensityDirective extends DeprecatedCompact
|
|
|
7
7
|
super('fd-checkbox');
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
DeprecatedCheckboxContentDensityDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
11
|
-
DeprecatedCheckboxContentDensityDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
10
|
+
DeprecatedCheckboxContentDensityDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedCheckboxContentDensityDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
11
|
+
DeprecatedCheckboxContentDensityDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedCheckboxContentDensityDirective, selector: "fd-checkbox[compact]", providers: [
|
|
12
12
|
{
|
|
13
13
|
provide: CONTENT_DENSITY_DIRECTIVE,
|
|
14
14
|
useExisting: forwardRef(() => DeprecatedCheckboxContentDensityDirective)
|
|
15
15
|
}
|
|
16
16
|
], usesInheritance: true, ngImport: i0 });
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedCheckboxContentDensityDirective, decorators: [{
|
|
18
18
|
type: Directive,
|
|
19
19
|
args: [{
|
|
20
20
|
// eslint-disable-next-line @angular-eslint/directive-selector
|