@theseam/ui-common 0.4.0-beta.5 → 0.4.0-beta.6
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/breadcrumbs/breadcrumb.d.ts +1 -1
- package/breadcrumbs/breadcrumbs-resolver.d.ts +1 -1
- package/core/common-behaviors/active.d.ts +1 -1
- package/core/common-behaviors/constructor.d.ts +1 -1
- package/core/common-behaviors/disabled.d.ts +1 -1
- package/core/common-behaviors/initialized.d.ts +1 -1
- package/core/common-behaviors/size.d.ts +1 -1
- package/core/common-behaviors/tabindex.d.ts +1 -1
- package/core/common-behaviors/theme.d.ts +1 -1
- package/data-exporter/data-exporter.d.ts +1 -1
- package/data-filters/data-filter.d.ts +3 -3
- package/data-filters/filters/data-filter-search/search-filter-options.d.ts +1 -1
- package/datatable/datatable-column/datatable-column.component.d.ts +1 -1
- package/datatable/models/preferences.d.ts +1 -1
- package/datatable/models/table-column.d.ts +1 -1
- package/datatable/services/columns-manager.service.d.ts +1 -1
- package/datatable-dynamic/datatable-dynamic-def.d.ts +3 -3
- package/datatable-dynamic/models/dynamic-datatable-action-menu-record.d.ts +1 -1
- package/dynamic/models/dynamic-value-base-type.d.ts +1 -1
- package/dynamic/models/dynamic-value-evaluatable-type.d.ts +1 -1
- package/dynamic/models/dynamic-value-primitive.d.ts +1 -1
- package/dynamic/models/dynamic-value.d.ts +1 -1
- package/dynamic/tokens/api-config.d.ts +1 -1
- package/esm2020/asset-reader/asset-reader-helper.service.mjs +3 -3
- package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
- package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +12 -12
- package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +3 -3
- package/esm2020/breadcrumbs/breadcrumbs.module.mjs +4 -4
- package/esm2020/breadcrumbs/breadcrumbs.service.mjs +3 -3
- package/esm2020/buttons/badge-button/badge-button.component.mjs +6 -6
- package/esm2020/buttons/button/button.component.mjs +9 -9
- package/esm2020/buttons/buttons.module.mjs +4 -4
- package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +3 -3
- package/esm2020/buttons/toggle-button/toggle-button.component.mjs +5 -5
- package/esm2020/card/card-action/card-action.component.mjs +3 -3
- package/esm2020/card/card-body/card-body.component.mjs +3 -3
- package/esm2020/card/card-footer/card-footer.component.mjs +3 -3
- package/esm2020/card/card-header/card-header.component.mjs +3 -3
- package/esm2020/card/card.component.mjs +3 -3
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/checkbox/checkbox.component.mjs +43 -43
- package/esm2020/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/confirm-dialog/confirm-click.directive.mjs +9 -9
- package/esm2020/confirm-dialog/confirm-dialog.component.mjs +3 -3
- package/esm2020/confirm-dialog/confirm-dialog.module.mjs +4 -4
- package/esm2020/confirm-dialog/confirm-dialog.service.mjs +3 -3
- package/esm2020/core/common-behaviors/active.mjs +3 -3
- package/esm2020/core/common-behaviors/disabled.mjs +3 -3
- package/esm2020/core/common-behaviors/size.mjs +6 -6
- package/esm2020/core/common-behaviors/tabindex.mjs +5 -5
- package/esm2020/core/common-behaviors/theme.mjs +6 -6
- package/esm2020/data-exporter/data-exporter.module.mjs +4 -4
- package/esm2020/data-exporter/exporters/csv-exporter.mjs +3 -3
- package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +3 -3
- package/esm2020/data-filters/data-filters.module.mjs +4 -4
- package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +10 -10
- package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +10 -10
- package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +11 -11
- package/esm2020/datatable/datatable/datatable.component.mjs +108 -108
- package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +3 -3
- package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +3 -3
- package/esm2020/datatable/datatable-column/datatable-column.component.mjs +7 -7
- package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +3 -3
- package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +3 -3
- package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +7 -7
- package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
- package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +8 -8
- package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +3 -3
- package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +3 -3
- package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +3 -3
- package/esm2020/datatable/datatable.module.mjs +4 -4
- package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +3 -3
- package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +11 -11
- package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +3 -3
- package/esm2020/datatable/directives/datatable-filter.directive.mjs +3 -3
- package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +3 -3
- package/esm2020/datatable/services/columns-alterations-manager.service.mjs +3 -3
- package/esm2020/datatable/services/columns-manager.service.mjs +3 -3
- package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
- package/esm2020/datatable/services/datatable-preferences.service.mjs +6 -6
- package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +3 -3
- package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +12 -12
- package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +8 -8
- package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +6 -6
- package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +8 -8
- package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
- package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +7 -7
- package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +3 -3
- package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +3 -3
- package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +3 -3
- package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +3 -3
- package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +3 -3
- package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +3 -3
- package/esm2020/dynamic/dynamic-value-helper.service.mjs +3 -3
- package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +3 -3
- package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +3 -3
- package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
- package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +3 -3
- package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +3 -3
- package/esm2020/footer-bar/footer-bar.module.mjs +4 -4
- package/esm2020/form-field/form-field-error.directive.mjs +6 -6
- package/esm2020/form-field/form-field-help-text.directive.mjs +3 -3
- package/esm2020/form-field/form-field-label-tpl.directive.mjs +3 -3
- package/esm2020/form-field/form-field-required-indicator.component.mjs +3 -3
- package/esm2020/form-field/form-field.component.mjs +48 -48
- package/esm2020/form-field/form-field.module.mjs +4 -4
- package/esm2020/form-field/input.directive.mjs +43 -43
- package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +3 -3
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +3 -3
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +3 -3
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +92 -92
- package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
- package/esm2020/framework/base-layout/base-layout.component.mjs +6 -6
- package/esm2020/framework/base-layout/base-layout.module.mjs +4 -4
- package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +10 -10
- package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +18 -18
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +12 -12
- package/esm2020/framework/dashboard/dashboard.component.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
- package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +4 -4
- package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +3 -3
- package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +3 -3
- package/esm2020/framework/schema-form/schema-form-framework.component.mjs +3 -3
- package/esm2020/framework/schema-form/schema-form-framework.mjs +3 -3
- package/esm2020/framework/schema-form/schema-form.module.mjs +4 -4
- package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +4 -4
- package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +3 -3
- package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +24 -24
- package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +3 -3
- package/esm2020/framework/side-nav/side-nav.component.mjs +17 -17
- package/esm2020/framework/side-nav/side-nav.module.mjs +4 -4
- package/esm2020/framework/side-nav/side-nav.service.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-item.directive.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar.component.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
- package/esm2020/google-maps/google-maps/google-maps.component.mjs +17 -17
- package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +103 -0
- package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +25 -0
- package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +19 -19
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +7 -7
- package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +7 -7
- package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +7 -7
- package/esm2020/google-maps/google-maps.module.mjs +4 -4
- package/esm2020/google-maps/google-maps.service.mjs +5 -5
- package/esm2020/google-maps/map-control.component.mjs +9 -9
- package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +3 -3
- package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
- package/esm2020/google-maps/public-api.mjs +4 -1
- package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +5 -5
- package/esm2020/graphql/datatable/datatable-graphql.service.mjs +3 -3
- package/esm2020/icon/icon/icon.component.mjs +3 -3
- package/esm2020/icon/icon-btn/icon-btn.component.mjs +24 -24
- package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/layout/layout.module.mjs +4 -4
- package/esm2020/layout/layout.service.mjs +3 -3
- package/esm2020/loading/loading/loading.component.mjs +7 -7
- package/esm2020/loading/loading-overlay.service.mjs +3 -3
- package/esm2020/loading/loading.module.mjs +4 -4
- package/esm2020/menu/menu-divider.component.mjs +3 -3
- package/esm2020/menu/menu-footer/menu-footer.component.mjs +3 -3
- package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +7 -7
- package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
- package/esm2020/menu/menu-item.component.mjs +3 -3
- package/esm2020/menu/menu-toggle.directive.mjs +42 -42
- package/esm2020/menu/menu.component.mjs +15 -15
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/modal/directives/modal-close.directive.mjs +11 -11
- package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +3 -3
- package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +3 -3
- package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +3 -3
- package/esm2020/modal/directives/modal-title.directive.mjs +3 -3
- package/esm2020/modal/directives/modal.directive.mjs +3 -3
- package/esm2020/modal/modal/modal.component.mjs +19 -19
- package/esm2020/modal/modal-body/modal-body.component.mjs +3 -3
- package/esm2020/modal/modal-container/modal-container.component.mjs +12 -12
- package/esm2020/modal/modal-footer/modal-footer.component.mjs +3 -3
- package/esm2020/modal/modal-header/modal-header.component.mjs +3 -3
- package/esm2020/modal/modal.module.mjs +4 -4
- package/esm2020/modal/modal.service.mjs +16 -16
- package/esm2020/modal/route-modal/route-modal.component.mjs +3 -3
- package/esm2020/popover/popover/popover.component.mjs +18 -18
- package/esm2020/popover/popover.directive.mjs +32 -32
- package/esm2020/popover/popover.module.mjs +4 -4
- package/esm2020/progress/progress-circle/progress-circle.component.mjs +9 -9
- package/esm2020/progress/progress.module.mjs +4 -4
- package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +10 -10
- package/esm2020/scrollbar/overlay-scrollbars.service.mjs +3 -3
- package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
- package/esm2020/services/asset-loader.service.mjs +3 -3
- package/esm2020/services/font-loader.service.mjs +3 -3
- package/esm2020/services/router-helpers.service.mjs +3 -3
- package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +3 -3
- package/esm2020/shared/directives/auto-focus.directive.mjs +3 -3
- package/esm2020/shared/directives/click-outside.directive.mjs +9 -9
- package/esm2020/shared/directives/disable-control.directive.mjs +7 -7
- package/esm2020/shared/directives/elem-resized.directive.mjs +3 -3
- package/esm2020/shared/directives/hover-class-toggle.directive.mjs +10 -10
- package/esm2020/shared/directives/hover-class.directive.mjs +9 -9
- package/esm2020/shared/directives/ng-select-extra.directive.mjs +26 -26
- package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +10 -10
- package/esm2020/shared/pipes/mask-chars.pipe.mjs +3 -3
- package/esm2020/shared/pipes/truncate.pipe.mjs +3 -3
- package/esm2020/shared/shared.module.mjs +4 -4
- package/esm2020/storage/local-storage.service.mjs +3 -3
- package/esm2020/story-helpers/initial-route.service.mjs +3 -3
- package/esm2020/story-helpers/story-empty-with-route.component.mjs +3 -3
- package/esm2020/story-helpers/story-empty.component.mjs +3 -3
- package/esm2020/story-helpers/story-helper-components.module.mjs +4 -4
- package/esm2020/story-helpers/story-initial-route.mjs +4 -4
- package/esm2020/story-helpers/story-modal-container.component.mjs +6 -6
- package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
- package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +3 -3
- package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +3 -3
- package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +3 -3
- package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +3 -3
- package/esm2020/tabbed/tabbed.component.mjs +13 -13
- package/esm2020/tabbed/tabbed.module.mjs +4 -4
- package/esm2020/tabbed/tabbed.service.mjs +3 -3
- package/esm2020/table/table/table.component.mjs +11 -11
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +3 -3
- package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +3 -3
- package/esm2020/table-cell-type/table-cell-type.module.mjs +4 -4
- package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +31 -31
- package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +6 -6
- package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +23 -23
- package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
- package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
- package/esm2020/tel-input/tel-input/tel-input.component.mjs +34 -34
- package/esm2020/tel-input/tel-input.directive.mjs +18 -18
- package/esm2020/tel-input/tel-input.module.mjs +4 -4
- package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +20 -20
- package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +6 -6
- package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +10 -10
- package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +3 -3
- package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +3 -3
- package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +3 -3
- package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
- package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +3 -3
- package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +3 -3
- package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +3 -3
- package/esm2020/toggle-edit/toggle-edit.component.mjs +16 -16
- package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
- package/esm2020/toggle-group/toggle-group-option.directive.mjs +12 -12
- package/esm2020/toggle-group/toggle-group.directive.mjs +3 -3
- package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
- package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +3 -3
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +3 -3
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +3 -3
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
- package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +37 -37
- package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
- package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +10 -10
- package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +3 -3
- package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +38 -38
- package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
- package/esm2020/widget/directives/widget-drag-handle.directive.mjs +12 -12
- package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +3 -3
- package/esm2020/widget/directives/widget-title-tpl.directive.mjs +3 -3
- package/esm2020/widget/widget/widget.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +7 -7
- package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +15 -15
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +8 -8
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +16 -16
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +4 -4
- package/esm2020/widget/widget-footer/widget-footer.component.mjs +3 -3
- package/esm2020/widget/widget-registry.service.mjs +3 -3
- package/esm2020/widget/widget.module.mjs +4 -4
- package/fesm2015/theseam-ui-common-asset-reader.mjs +18 -18
- package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs +10 -10
- package/fesm2015/theseam-ui-common-buttons.mjs +26 -26
- package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-card.mjs +19 -19
- package/fesm2015/theseam-ui-common-checkbox.mjs +46 -46
- package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs +18 -18
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-core.mjs +18 -18
- package/fesm2015/theseam-ui-common-core.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
- package/fesm2015/theseam-ui-common-data-filters.mjs +32 -32
- package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +46 -46
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable.mjs +208 -208
- package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +7 -7
- package/fesm2015/theseam-ui-common-dynamic.mjs +21 -21
- package/fesm2015/theseam-ui-common-footer-bar.mjs +7 -7
- package/fesm2015/theseam-ui-common-form-field-error.mjs +104 -104
- package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-form-field.mjs +107 -107
- package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-framework.mjs +196 -196
- package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-google-maps.mjs +202 -80
- package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-graphql.mjs +7 -7
- package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-icon.mjs +33 -33
- package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-layout.mjs +7 -7
- package/fesm2015/theseam-ui-common-loading.mjs +13 -13
- package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-menu.mjs +79 -79
- package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-modal.mjs +85 -85
- package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-popover.mjs +52 -52
- package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-progress.mjs +12 -12
- package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-scrollbar.mjs +16 -16
- package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-services.mjs +9 -9
- package/fesm2015/theseam-ui-common-shared.mjs +84 -84
- package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-storage.mjs +3 -3
- package/fesm2015/theseam-ui-common-story-helpers.mjs +25 -25
- package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tabbed.mjs +31 -31
- package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-type.mjs +10 -10
- package/fesm2015/theseam-ui-common-table-cell-types.mjs +80 -80
- package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table.mjs +14 -14
- package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tel-input.mjs +59 -59
- package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tiled-select.mjs +46 -46
- package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-edit.mjs +28 -28
- package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-group.mjs +18 -18
- package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
- package/fesm2015/theseam-ui-common-viewers.mjs +93 -93
- package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-widget.mjs +156 -156
- package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-asset-reader.mjs +18 -18
- package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs +10 -10
- package/fesm2020/theseam-ui-common-buttons.mjs +26 -26
- package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-card.mjs +19 -19
- package/fesm2020/theseam-ui-common-checkbox.mjs +46 -46
- package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs +18 -18
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-core.mjs +18 -18
- package/fesm2020/theseam-ui-common-core.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
- package/fesm2020/theseam-ui-common-data-filters.mjs +32 -32
- package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +46 -46
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable.mjs +208 -208
- package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +7 -7
- package/fesm2020/theseam-ui-common-dynamic.mjs +21 -21
- package/fesm2020/theseam-ui-common-footer-bar.mjs +7 -7
- package/fesm2020/theseam-ui-common-form-field-error.mjs +104 -104
- package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-form-field.mjs +107 -107
- package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-framework.mjs +196 -196
- package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-google-maps.mjs +200 -80
- package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-graphql.mjs +7 -7
- package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-icon.mjs +33 -33
- package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-layout.mjs +7 -7
- package/fesm2020/theseam-ui-common-loading.mjs +13 -13
- package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-menu.mjs +77 -77
- package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-modal.mjs +85 -85
- package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-popover.mjs +52 -52
- package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-progress.mjs +12 -12
- package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-scrollbar.mjs +16 -16
- package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-services.mjs +9 -9
- package/fesm2020/theseam-ui-common-shared.mjs +84 -84
- package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-storage.mjs +3 -3
- package/fesm2020/theseam-ui-common-story-helpers.mjs +25 -25
- package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tabbed.mjs +31 -31
- package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table-cell-type.mjs +10 -10
- package/fesm2020/theseam-ui-common-table-cell-types.mjs +80 -80
- package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table.mjs +14 -14
- package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tel-input.mjs +57 -57
- package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tiled-select.mjs +46 -46
- package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-edit.mjs +28 -28
- package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-group.mjs +18 -18
- package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
- package/fesm2020/theseam-ui-common-viewers.mjs +93 -93
- package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-widget.mjs +156 -156
- package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
- package/framework/base-layout/base-layout-action.d.ts +1 -1
- package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +1 -1
- package/framework/side-nav/side-nav.models.d.ts +1 -1
- package/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.d.ts +73 -0
- package/google-maps/google-maps-api-loader/noop-google-maps-api-loader.d.ts +13 -0
- package/google-maps/map-value-manager.service.d.ts +1 -1
- package/google-maps/public-api.d.ts +3 -0
- package/graphql/datatable/datatable-graphql-query-ref.d.ts +2 -2
- package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
- package/graphql/datatable/datatable-helpers.d.ts +2 -2
- package/graphql/datatable/map-filter-states.d.ts +2 -2
- package/graphql/datatable/map-page-info.d.ts +1 -1
- package/graphql/datatable/mapper-context.d.ts +1 -1
- package/graphql/models/gql-datatable-accessor.d.ts +1 -1
- package/graphql/models/hint-transformer.d.ts +1 -1
- package/icon/icon/icon.component.d.ts +1 -1
- package/icon/icon.d.ts +1 -1
- package/layout/breakpoint-aliases.d.ts +1 -1
- package/loading/loading.models.d.ts +1 -1
- package/modal/modal-config.d.ts +1 -1
- package/models/component-type.d.ts +1 -1
- package/models/size-prefixes.d.ts +1 -1
- package/models/size-types.d.ts +1 -1
- package/models/theme-prefixes.d.ts +1 -1
- package/models/theme-types.d.ts +2 -2
- package/package.json +1 -1
- package/scrollbar/overlay-scrollbars-config-model.d.ts +1 -1
- package/services/font-loader.service.d.ts +1 -1
- package/table/table/table.component.d.ts +1 -1
- package/table-cell-type/table-cell-type-models.d.ts +3 -3
- package/table-cell-type/table-cell-type-name.d.ts +1 -1
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +1 -1
- package/table-cell-types/table-cell-type-date/table-cell-type-date.d.ts +1 -1
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +1 -1
- package/table-cell-types/table-cell-type-icon/table-cell-type-icon-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +1 -1
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +1 -1
- package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-string/table-cell-type-string-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-string/table-cell-type-string.component.d.ts +1 -1
- package/tel-input/utils/coerce-phone-number-format.d.ts +1 -1
- package/tiled-select/components/tiled-select/tiled-select.component.d.ts +1 -1
- package/tiled-select/tiled-select.models.d.ts +2 -2
- package/utils/polling-ticker.d.ts +1 -1
- package/utils/subscriber-count.d.ts +1 -1
- package/widget/directives/widget-drag-handle.directive.d.ts +1 -1
|
@@ -10,45 +10,6 @@ import * as i2 from "@ng-select/ng-select";
|
|
|
10
10
|
// NOTE: Partially based on mat-input: https://github.com/angular/material2/blob/master/src/lib/input/input.ts
|
|
11
11
|
let nextUniqueId = 0;
|
|
12
12
|
export class InputDirective {
|
|
13
|
-
constructor(_elementRef, ngControl, _parentForm, _parentFormGroup,
|
|
14
|
-
// 3rd party support
|
|
15
|
-
_ngSelect) {
|
|
16
|
-
this._elementRef = _elementRef;
|
|
17
|
-
this.ngControl = ngControl;
|
|
18
|
-
this._parentForm = _parentForm;
|
|
19
|
-
this._parentFormGroup = _parentFormGroup;
|
|
20
|
-
this._ngSelect = _ngSelect;
|
|
21
|
-
this._uid = `lib-input-${nextUniqueId++}`;
|
|
22
|
-
// TODO: Remove this being added to all seamInput elements or break this
|
|
23
|
-
// directive up. Some elements in our app already have worked around this
|
|
24
|
-
// class being there, so some refactoring will be required before removal.
|
|
25
|
-
this._isFormControl = true;
|
|
26
|
-
this.seamInputSize = 'normal';
|
|
27
|
-
this._type = 'text';
|
|
28
|
-
/**
|
|
29
|
-
* Implemented as part of MatFormFieldControl.
|
|
30
|
-
* @docs-private
|
|
31
|
-
*/
|
|
32
|
-
this.required = false;
|
|
33
|
-
this._disabled = false;
|
|
34
|
-
this.focused = false;
|
|
35
|
-
this.stateChanges = new Subject();
|
|
36
|
-
// @Input()
|
|
37
|
-
// get value(): string { return this._inputValueAccessor.value; }
|
|
38
|
-
// set value(value: string) {
|
|
39
|
-
// if (value !== this.value) {
|
|
40
|
-
// this._inputValueAccessor.value = value;
|
|
41
|
-
// this.stateChanges.next();
|
|
42
|
-
// }
|
|
43
|
-
// }
|
|
44
|
-
/** Whether the element is readonly. */
|
|
45
|
-
this.readonly = false;
|
|
46
|
-
// Force setter to be called in case id was not specified.
|
|
47
|
-
this.id = this.id;
|
|
48
|
-
if (!this._shouldHaveFormControlCssClass()) {
|
|
49
|
-
this._isFormControl = false;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
13
|
get _isFormControlSmall() {
|
|
53
14
|
return this._isFormControl && this.seamInputSize === 'sm';
|
|
54
15
|
}
|
|
@@ -90,6 +51,45 @@ export class InputDirective {
|
|
|
90
51
|
this.stateChanges.next();
|
|
91
52
|
}
|
|
92
53
|
}
|
|
54
|
+
constructor(_elementRef, ngControl, _parentForm, _parentFormGroup,
|
|
55
|
+
// 3rd party support
|
|
56
|
+
_ngSelect) {
|
|
57
|
+
this._elementRef = _elementRef;
|
|
58
|
+
this.ngControl = ngControl;
|
|
59
|
+
this._parentForm = _parentForm;
|
|
60
|
+
this._parentFormGroup = _parentFormGroup;
|
|
61
|
+
this._ngSelect = _ngSelect;
|
|
62
|
+
this._uid = `lib-input-${nextUniqueId++}`;
|
|
63
|
+
// TODO: Remove this being added to all seamInput elements or break this
|
|
64
|
+
// directive up. Some elements in our app already have worked around this
|
|
65
|
+
// class being there, so some refactoring will be required before removal.
|
|
66
|
+
this._isFormControl = true;
|
|
67
|
+
this.seamInputSize = 'normal';
|
|
68
|
+
this._type = 'text';
|
|
69
|
+
/**
|
|
70
|
+
* Implemented as part of MatFormFieldControl.
|
|
71
|
+
* @docs-private
|
|
72
|
+
*/
|
|
73
|
+
this.required = false;
|
|
74
|
+
this._disabled = false;
|
|
75
|
+
this.focused = false;
|
|
76
|
+
this.stateChanges = new Subject();
|
|
77
|
+
// @Input()
|
|
78
|
+
// get value(): string { return this._inputValueAccessor.value; }
|
|
79
|
+
// set value(value: string) {
|
|
80
|
+
// if (value !== this.value) {
|
|
81
|
+
// this._inputValueAccessor.value = value;
|
|
82
|
+
// this.stateChanges.next();
|
|
83
|
+
// }
|
|
84
|
+
// }
|
|
85
|
+
/** Whether the element is readonly. */
|
|
86
|
+
this.readonly = false;
|
|
87
|
+
// Force setter to be called in case id was not specified.
|
|
88
|
+
this.id = this.id;
|
|
89
|
+
if (!this._shouldHaveFormControlCssClass()) {
|
|
90
|
+
this._isFormControl = false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
93
|
ngDoCheck() {
|
|
94
94
|
if (this._isNgSelect()) {
|
|
95
95
|
this._ngSelect.labelForId = this.id;
|
|
@@ -157,15 +157,15 @@ export class InputDirective {
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
|
-
InputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
161
|
-
InputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
160
|
+
InputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: InputDirective, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i2.NgSelectComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
161
|
+
InputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.6", type: InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput]", inputs: { seamInputSize: "seamInputSize", id: "id", type: "type", placeholder: "placeholder", required: "required", disabled: "disabled", readonly: "readonly" }, host: { properties: { "class.form-control": "this._isFormControl", "class.form-control-sm": "this._isFormControlSmall", "class.is-invalid": "this._isInvalid", "attr.id": "this._attrId", "attr.placeholder": "this._attrPlaceholder", "attr.aria-describedby": "this.ariaDescribedBy" } }, exportAs: ["seamInput"], ngImport: i0 });
|
|
162
162
|
__decorate([
|
|
163
163
|
InputBoolean()
|
|
164
164
|
], InputDirective.prototype, "required", void 0);
|
|
165
165
|
__decorate([
|
|
166
166
|
InputBoolean()
|
|
167
167
|
], InputDirective.prototype, "readonly", void 0);
|
|
168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: InputDirective, decorators: [{
|
|
169
169
|
type: Directive,
|
|
170
170
|
args: [{
|
|
171
171
|
// TODO: Consider removing restriction and instead adding a dev warning. A few
|
|
@@ -216,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
|
|
|
216
216
|
}], readonly: [{
|
|
217
217
|
type: Input
|
|
218
218
|
}] } });
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2Zvcm0tZmllbGQvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBdUIsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWxHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFJOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7OztBQUUxRCw4R0FBOEc7QUFFOUcsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFBO0FBUXBCLE1BQU0sT0FBTyxjQUFjO0lBZ0d6QixZQUNTLFdBQW1GLEVBQy9ELFNBQW9CLEVBQzNCLFdBQW1CLEVBQ25CLGdCQUFvQztJQUN4RCxvQkFBb0I7SUFDQSxTQUE0QjtRQUx6QyxnQkFBVyxHQUFYLFdBQVcsQ0FBd0U7UUFDL0QsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBRXBDLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBakd4QyxTQUFJLEdBQUcsYUFBYSxZQUFZLEVBQUUsRUFBRSxDQUFBO1FBRTlDLHdFQUF3RTtRQUN4RSx5RUFBeUU7UUFDekUsMEVBQTBFO1FBQ3ZDLG1CQUFjLEdBQUcsSUFBSSxDQUFBO1FBWS9DLGtCQUFhLEdBQW9CLFFBQVEsQ0FBQTtRQXFCeEMsVUFBSyxHQUE4QixNQUFNLENBQUE7UUFRbkQ7OztXQUdHO1FBQ3NCLGFBQVEsR0FBWSxLQUFLLENBQUE7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Y0FBYztrQkFOMUIsU0FBUzttQkFBQztvQkFDVCw4RUFBOEU7b0JBQzlFLHVEQUF1RDtvQkFDdkQsUUFBUSxFQUFFLHdMQUF3TDtvQkFDbE0sUUFBUSxFQUFFLFdBQVc7aUJBQ3RCOzswQkFtR0ksUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUVSLFFBQVE7NENBNUZ3QixjQUFjO3NCQUFoRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDUyxtQkFBbUI7c0JBQTVELFdBQVc7dUJBQUMsdUJBQXVCO2dCQUdDLFVBQVU7c0JBQTlDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUlILE9BQU87c0JBQWxDLFdBQVc7dUJBQUMsU0FBUztnQkFDZSxnQkFBZ0I7c0JBQXBELFdBQVc7dUJBQUMsa0JBQWtCO2dCQUNPLGVBQWU7c0JBQXBELFdBQVc7dUJBQUMsdUJBQXVCO2dCQUUzQixhQUFhO3NCQUFyQixLQUFLO2dCQUdGLEVBQUU7c0JBREwsS0FBSztnQkFPRixJQUFJO3NCQURQLEtBQUs7Z0JBbUJHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTW1CLFFBQVE7c0JBQWhDLEtBQUs7Z0JBT0YsUUFBUTtzQkFEWCxLQUFLO2dCQWlDbUIsUUFBUTtzQkFBaEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBEb0NoZWNrLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBOZ1NlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0J1xuXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY29yZSdcbmltcG9ydCB7IHRvZ2dsZUF0dHJpYnV0ZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuLy8gTk9URTogUGFydGlhbGx5IGJhc2VkIG9uIG1hdC1pbnB1dDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvbWF0ZXJpYWwyL2Jsb2IvbWFzdGVyL3NyYy9saWIvaW5wdXQvaW5wdXQudHNcblxubGV0IG5leHRVbmlxdWVJZCA9IDBcblxuQERpcmVjdGl2ZSh7XG4gIC8vIFRPRE86IENvbnNpZGVyIHJlbW92aW5nIHJlc3RyaWN0aW9uIGFuZCBpbnN0ZWFkIGFkZGluZyBhIGRldiB3YXJuaW5nLiBBIGZld1xuICAvLyBpbnB1dHMgaW4gdGhlIGFwcCBuZWVkIHRvIGJlIGNoYW5nZWQgZm9yIHRoaXMgZmlyc3QuXG4gIHNlbGVjdG9yOiAnaW5wdXRbc2VhbUlucHV0XSwgdGV4dGFyZWFbc2VhbUlucHV0XSwgbmctc2VsZWN0W3NlYW1JbnB1dF0sIHNlYW0tY2hlY2tib3hbc2VhbUlucHV0XSBbbmdiUmFkaW9Hcm91cF0sIHNlYW0tdGVsLWlucHV0W3NlYW1JbnB1dF0sIHF1aWxsLWVkaXRvcltzZWFtSW5wdXRdLCBzZWFtLWdvb2dsZS1tYXBzW3NlYW1JbnB1dF0nLFxuICBleHBvcnRBczogJ3NlYW1JbnB1dCcsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgRG9DaGVjayB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZWFkb25seTogQm9vbGVhbklucHV0XG5cbiAgcHJvdGVjdGVkIF91aWQgPSBgbGliLWlucHV0LSR7bmV4dFVuaXF1ZUlkKyt9YFxuXG4gIC8vIFRPRE86IFJlbW92ZSB0aGlzIGJlaW5nIGFkZGVkIHRvIGFsbCBzZWFtSW5wdXQgZWxlbWVudHMgb3IgYnJlYWsgdGhpc1xuICAvLyBkaXJlY3RpdmUgdXAuIFNvbWUgZWxlbWVudHMgaW4gb3VyIGFwcCBhbHJlYWR5IGhhdmUgd29ya2VkIGFyb3VuZCB0aGlzXG4gIC8vIGNsYXNzIGJlaW5nIHRoZXJlLCBzbyBzb21lIHJlZmFjdG9yaW5nIHdpbGwgYmUgcmVxdWlyZWQgYmVmb3JlIHJlbW92YWwuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZm9ybS1jb250cm9sJykgX2lzRm9ybUNvbnRyb2wgPSB0cnVlXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZm9ybS1jb250cm9sLXNtJykgZ2V0IF9pc0Zvcm1Db250cm9sU21hbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRm9ybUNvbnRyb2wgJiYgdGhpcy5zZWFtSW5wdXRTaXplID09PSAnc20nXG4gIH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1pbnZhbGlkJykgZ2V0IF9pc0ludmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLmludmFsaWQgJiYgKHRoaXMubmdDb250cm9sLmRpcnR5IHx8IHRoaXMubmdDb250cm9sLnRvdWNoZWQpXG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBnZXQgX2F0dHJJZCgpIHsgcmV0dXJuIHRoaXMuX2lzTmdTZWxlY3QoKSA/IHVuZGVmaW5lZCA6IHRoaXMuaWQgfVxuICBASG9zdEJpbmRpbmcoJ2F0dHIucGxhY2Vob2xkZXInKSBnZXQgX2F0dHJQbGFjZWhvbGRlcigpIHsgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXIgfVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgQElucHV0KCkgc2VhbUlucHV0U2l6ZTogJ3NtJyB8ICdub3JtYWwnID0gJ25vcm1hbCdcblxuICBASW5wdXQoKVxuICBnZXQgaWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCB7IHJldHVybiB0aGlzLl9pZCB9XG4gIHNldCBpZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkgeyB0aGlzLl9pZCA9IHZhbHVlIHx8IHRoaXMuX3VpZCB9XG4gIHByb3RlY3RlZCBfaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKiogSW5wdXQgdHlwZSBvZiB0aGUgZWxlbWVudC4gKi9cbiAgQElucHV0KClcbiAgZ2V0IHR5cGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCB7IHJldHVybiB0aGlzLl90eXBlIH1cbiAgc2V0IHR5cGUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICB0aGlzLl90eXBlID0gdmFsdWUgfHwgJ3RleHQnXG4gICAgLy8gdGhpcy5fdmFsaWRhdGVUeXBlKClcblxuICAgIC8vIFdoZW4gdXNpbmcgQW5ndWxhciBpbnB1dHMsIGRldmVsb3BlcnMgYXJlIG5vIGxvbmdlciBhYmxlIHRvIHNldCB0aGUgcHJvcGVydGllcyBvbiB0aGUgbmF0aXZlXG4gICAgLy8gaW5wdXQgZWxlbWVudC4gVG8gZW5zdXJlIHRoYXQgYmluZGluZ3MgZm9yIGB0eXBlYCB3b3JrLCB3ZSBuZWVkIHRvIHN5bmMgdGhlIHNldHRlclxuICAgIC8vIHdpdGggdGhlIG5hdGl2ZSBwcm9wZXJ0eS4gVGV4dGFyZWEgZWxlbWVudHMgZG9uJ3Qgc3VwcG9ydCB0aGUgdHlwZSBwcm9wZXJ0eSBvciBhdHRyaWJ1dGUuXG4gICAgaWYgKCghdGhpcy5faXNUZXh0YXJlYSgpICYmICF0aGlzLl9pc05nU2VsZWN0KCkpIC8qICYmIGdldFN1cHBvcnRlZElucHV0VHlwZXMoKS5oYXModGhpcy5fdHlwZSkgKi8pIHtcbiAgICAgICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCkudHlwZSA9IHRoaXMuX3R5cGVcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIF90eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsID0gJ3RleHQnXG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgTWF0Rm9ybUZpZWxkQ29udHJvbC5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBNYXRGb3JtRmllbGRDb250cm9sLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWRcbiAgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcblxuICAgIC8vIEJyb3dzZXJzIG1heSBub3QgZmlyZSB0aGUgYmx1ciBldmVudCBpZiB0aGUgaW5wdXQgaXMgZGlzYWJsZWQgdG9vIHF1aWNrbHkuXG4gICAgLy8gUmVzZXQgZnJvbSBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSBlbGVtZW50IGRvZXNuJ3QgYmVjb21lIHN0dWNrLlxuICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KClcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIF9kaXNhYmxlZCA9IGZhbHNlXG5cbiAgZm9jdXNlZCA9IGZhbHNlXG5cbiAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIC8vIEBJbnB1dCgpXG4gIC8vIGdldCB2YWx1ZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5faW5wdXRWYWx1ZUFjY2Vzc29yLnZhbHVlOyB9XG4gIC8vIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gIC8vICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gIC8vICAgICB0aGlzLl9pbnB1dFZhbHVlQWNjZXNzb3IudmFsdWUgPSB2YWx1ZTtcbiAgLy8gICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgLy8gICB9XG4gIC8vIH1cblxuICAvKiogV2hldGhlciB0aGUgZWxlbWVudCBpcyByZWFkb25seS4gKi9cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudCB8IEhUTUxTZWxlY3RFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudD4sXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIC8vIDNyZCBwYXJ0eSBzdXBwb3J0XG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfbmdTZWxlY3Q6IE5nU2VsZWN0Q29tcG9uZW50XG4gICkge1xuICAgIC8vIEZvcmNlIHNldHRlciB0byBiZSBjYWxsZWQgaW4gY2FzZSBpZCB3YXMgbm90IHNwZWNpZmllZC5cbiAgICB0aGlzLmlkID0gdGhpcy5pZFxuXG4gICAgaWYgKCF0aGlzLl9zaG91bGRIYXZlRm9ybUNvbnRyb2xDc3NDbGFzcygpKSB7XG4gICAgICB0aGlzLl9pc0Zvcm1Db250cm9sID0gZmFsc2VcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuX2lzTmdTZWxlY3QoKSkge1xuICAgICAgdGhpcy5fbmdTZWxlY3QubGFiZWxGb3JJZCA9IHRoaXMuaWRcbiAgICAgIHRoaXMuX25nU2VsZWN0LnNldERpc2FibGVkU3RhdGUodGhpcy5kaXNhYmxlZClcbiAgICB9IGVsc2Uge1xuICAgICAgdG9nZ2xlQXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3JlcXVpcmVkJywgdGhpcy5yZXF1aXJlZClcbiAgICAgIHRvZ2dsZUF0dHJpYnV0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQpXG4gICAgfVxuICB9XG5cbiAgLyoqIFNob3VsZCBvbmx5IGJlIHRleHR1YWwgaW5wdXRzLCBidXQgaW5pdGlhbGx5IG91ciBhcHAgYWRkZWQgdG8gYWxsIGZvcm0gY29udHJvbHMuICovXG4gIHByb3RlY3RlZCBfc2hvdWxkSGF2ZUZvcm1Db250cm9sQ3NzQ2xhc3MoKSB7XG4gICAgcmV0dXJuICF0aGlzLl9pc1NlYW1DaGVja2JveCgpXG4gICAgICAmJiAhdGhpcy5faXNSYWRpb0lucHV0KClcbiAgICAgICYmICF0aGlzLl9pc05nYlJhZGlvR3JvdXAoKVxuICAgICAgJiYgIXRoaXMuX2lzVGVsSW5wdXQoKVxuICAgICAgJiYgIXRoaXMuX2lzUXVpbGxFZGl0b3IoKVxuICB9XG5cbiAgLyoqIERldGVybWluZXMgaWYgdGhlIGNvbXBvbmVudCBob3N0IGlzIGEgdGV4dGFyZWEuICovXG4gIHByb3RlY3RlZCBfaXNUZXh0YXJlYSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICd0ZXh0YXJlYSdcbiAgfVxuXG4gIC8qKiBEZXRlcm1pbmVzIGlmIHRoZSBjb21wb25lbnQgaG9zdCBpcyBhIG5nLXNlbGVjdC4gKi9cbiAgcHJvdGVjdGVkIF9pc05nU2VsZWN0KCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ25nLXNlbGVjdCdcbiAgfVxuXG4gIC8qKiBEZXRlcm1pbmVzIGlmIHRoZSBjb21wb25lbnQgaG9zdCBpcyBhIHNlYW0tY2hlY2tib3guICovXG4gIHByb3RlY3RlZCBfaXNTZWFtQ2hlY2tib3goKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnc2VhbS1jaGVja2JveCdcbiAgfVxuXG4gIC8qKiBEZXRlcm1pbmVzIGlmIHRoZSBjb21wb25lbnQgaG9zdCBpcyBhIHJhZGlvIGlucHV0LiAqL1xuICBwcm90ZWN0ZWQgX2lzUmFkaW9JbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbnB1dCcgJiZcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50eXBlLnRvTG93ZXJDYXNlKCkgPT09ICdyYWRpbydcbiAgfVxuXG4gIHByb3RlY3RlZCBfaXNOZ2JSYWRpb0dyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCduZ2JSYWRpb0dyb3VwJykgIT09IG51bGxcbiAgfVxuXG4gIHByb3RlY3RlZCBfaXNUZWxJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzZWFtLXRlbC1pbnB1dCdcbiAgfVxuXG4gIHByb3RlY3RlZCBfaXNRdWlsbEVkaXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdxdWlsbC1lZGl0b3InXG4gIH1cblxuICAvKiogTWFrZSBzdXJlIHRoZSBpbnB1dCBpcyBhIHN1cHBvcnRlZCB0eXBlLiAqL1xuICAvLyBwcm90ZWN0ZWQgX3ZhbGlkYXRlVHlwZSgpIHtcbiAgLy8gICBpZiAoTUFUX0lOUFVUX0lOVkFMSURfVFlQRVMuaW5kZXhPZih0aGlzLl90eXBlKSA+IC0xKSB7XG4gIC8vICAgICB0aHJvdyBnZXRNYXRJbnB1dFVuc3VwcG9ydGVkVHlwZUVycm9yKHRoaXMuX3R5cGUpXG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLyoqIEZvY3VzZXMgdGhlIGlucHV0LiAqL1xuICBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgLyoqIFVuZm9jdXNlcyB0aGUgaW5wdXQuICovXG4gIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmJsdXIoKVxuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubmdDb250cm9sLmNvbnRyb2xcbiAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWUpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2Zvcm0tZmllbGQvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBdUIsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWxHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFJOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7OztBQUUxRCw4R0FBOEc7QUFFOUcsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFBO0FBUXBCLE1BQU0sT0FBTyxjQUFjO0lBV3pCLElBQTBDLG1CQUFtQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUE7SUFDM0QsQ0FBQztJQUNELElBQXFDLFVBQVU7UUFDN0MsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNyRyxDQUFDO0lBRUQsSUFBNEIsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBQ3pGLElBQXFDLGdCQUFnQixLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQSxDQUFDLENBQUM7SUFL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QWM7a0JBTjFCLFNBQVM7bUJBQUM7b0JBQ1QsOEVBQThFO29CQUM5RSx1REFBdUQ7b0JBQ3ZELFFBQVEsRUFBRSx3TEFBd0w7b0JBQ2xNLFFBQVEsRUFBRSxXQUFXO2lCQUN0Qjs7MEJBbUdJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFDUixRQUFROzswQkFFUixRQUFROzRDQTVGd0IsY0FBYztzQkFBaEQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ1MsbUJBQW1CO3NCQUE1RCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFHQyxVQUFVO3NCQUE5QyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFJSCxPQUFPO3NCQUFsQyxXQUFXO3VCQUFDLFNBQVM7Z0JBQ2UsZ0JBQWdCO3NCQUFwRCxXQUFXO3VCQUFDLGtCQUFrQjtnQkFDTyxlQUFlO3NCQUFwRCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFFM0IsYUFBYTtzQkFBckIsS0FBSztnQkFHRixFQUFFO3NCQURMLEtBQUs7Z0JBT0YsSUFBSTtzQkFEUCxLQUFLO2dCQW1CRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1tQixRQUFRO3NCQUFoQyxLQUFLO2dCQU9GLFFBQVE7c0JBRFgsS0FBSztnQkFpQ21CLFFBQVE7c0JBQWhDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IERpcmVjdGl2ZSwgRG9DaGVjaywgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPcHRpb25hbCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgTmdTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCdcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyB0b2dnbGVBdHRyaWJ1dGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbi8vIE5PVEU6IFBhcnRpYWxseSBiYXNlZCBvbiBtYXQtaW5wdXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL21hdGVyaWFsMi9ibG9iL21hc3Rlci9zcmMvbGliL2lucHV0L2lucHV0LnRzXG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwXG5cbkBEaXJlY3RpdmUoe1xuICAvLyBUT0RPOiBDb25zaWRlciByZW1vdmluZyByZXN0cmljdGlvbiBhbmQgaW5zdGVhZCBhZGRpbmcgYSBkZXYgd2FybmluZy4gQSBmZXdcbiAgLy8gaW5wdXRzIGluIHRoZSBhcHAgbmVlZCB0byBiZSBjaGFuZ2VkIGZvciB0aGlzIGZpcnN0LlxuICBzZWxlY3RvcjogJ2lucHV0W3NlYW1JbnB1dF0sIHRleHRhcmVhW3NlYW1JbnB1dF0sIG5nLXNlbGVjdFtzZWFtSW5wdXRdLCBzZWFtLWNoZWNrYm94W3NlYW1JbnB1dF0gW25nYlJhZGlvR3JvdXBdLCBzZWFtLXRlbC1pbnB1dFtzZWFtSW5wdXRdLCBxdWlsbC1lZGl0b3Jbc2VhbUlucHV0XSwgc2VhbS1nb29nbGUtbWFwc1tzZWFtSW5wdXRdJyxcbiAgZXhwb3J0QXM6ICdzZWFtSW5wdXQnLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dERpcmVjdGl2ZSBpbXBsZW1lbnRzIERvQ2hlY2sge1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcmVxdWlyZWQ6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcmVhZG9ubHk6IEJvb2xlYW5JbnB1dFxuXG4gIHByb3RlY3RlZCBfdWlkID0gYGxpYi1pbnB1dC0ke25leHRVbmlxdWVJZCsrfWBcblxuICAvLyBUT0RPOiBSZW1vdmUgdGhpcyBiZWluZyBhZGRlZCB0byBhbGwgc2VhbUlucHV0IGVsZW1lbnRzIG9yIGJyZWFrIHRoaXNcbiAgLy8gZGlyZWN0aXZlIHVwLiBTb21lIGVsZW1lbnRzIGluIG91ciBhcHAgYWxyZWFkeSBoYXZlIHdvcmtlZCBhcm91bmQgdGhpc1xuICAvLyBjbGFzcyBiZWluZyB0aGVyZSwgc28gc29tZSByZWZhY3RvcmluZyB3aWxsIGJlIHJlcXVpcmVkIGJlZm9yZSByZW1vdmFsLlxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZvcm0tY29udHJvbCcpIF9pc0Zvcm1Db250cm9sID0gdHJ1ZVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZvcm0tY29udHJvbC1zbScpIGdldCBfaXNGb3JtQ29udHJvbFNtYWxsKCkge1xuICAgIHJldHVybiB0aGlzLl9pc0Zvcm1Db250cm9sICYmIHRoaXMuc2VhbUlucHV0U2l6ZSA9PT0gJ3NtJ1xuICB9XG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtaW52YWxpZCcpIGdldCBfaXNJbnZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCAmJiB0aGlzLm5nQ29udHJvbC5pbnZhbGlkICYmICh0aGlzLm5nQ29udHJvbC5kaXJ0eSB8fCB0aGlzLm5nQ29udHJvbC50b3VjaGVkKVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgZ2V0IF9hdHRySWQoKSB7IHJldHVybiB0aGlzLl9pc05nU2VsZWN0KCkgPyB1bmRlZmluZWQgOiB0aGlzLmlkIH1cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnBsYWNlaG9sZGVyJykgZ2V0IF9hdHRyUGxhY2Vob2xkZXIoKSB7IHJldHVybiB0aGlzLnBsYWNlaG9sZGVyIH1cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBhcmlhRGVzY3JpYmVkQnk6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIEBJbnB1dCgpIHNlYW1JbnB1dFNpemU6ICdzbScgfCAnbm9ybWFsJyA9ICdub3JtYWwnXG5cbiAgQElucHV0KClcbiAgZ2V0IGlkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgeyByZXR1cm4gdGhpcy5faWQgfVxuICBzZXQgaWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHsgdGhpcy5faWQgPSB2YWx1ZSB8fCB0aGlzLl91aWQgfVxuICBwcm90ZWN0ZWQgX2lkOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgLyoqIElucHV0IHR5cGUgb2YgdGhlIGVsZW1lbnQuICovXG4gIEBJbnB1dCgpXG4gIGdldCB0eXBlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgeyByZXR1cm4gdGhpcy5fdHlwZSB9XG4gIHNldCB0eXBlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgdGhpcy5fdHlwZSA9IHZhbHVlIHx8ICd0ZXh0J1xuICAgIC8vIHRoaXMuX3ZhbGlkYXRlVHlwZSgpXG5cbiAgICAvLyBXaGVuIHVzaW5nIEFuZ3VsYXIgaW5wdXRzLCBkZXZlbG9wZXJzIGFyZSBubyBsb25nZXIgYWJsZSB0byBzZXQgdGhlIHByb3BlcnRpZXMgb24gdGhlIG5hdGl2ZVxuICAgIC8vIGlucHV0IGVsZW1lbnQuIFRvIGVuc3VyZSB0aGF0IGJpbmRpbmdzIGZvciBgdHlwZWAgd29yaywgd2UgbmVlZCB0byBzeW5jIHRoZSBzZXR0ZXJcbiAgICAvLyB3aXRoIHRoZSBuYXRpdmUgcHJvcGVydHkuIFRleHRhcmVhIGVsZW1lbnRzIGRvbid0IHN1cHBvcnQgdGhlIHR5cGUgcHJvcGVydHkgb3IgYXR0cmlidXRlLlxuICAgIGlmICgoIXRoaXMuX2lzVGV4dGFyZWEoKSAmJiAhdGhpcy5faXNOZ1NlbGVjdCgpKSAvKiAmJiBnZXRTdXBwb3J0ZWRJbnB1dFR5cGVzKCkuaGFzKHRoaXMuX3R5cGUpICovKSB7XG4gICAgICAodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnR5cGUgPSB0aGlzLl90eXBlXG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBfdHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICd0ZXh0J1xuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgTWF0Rm9ybUZpZWxkQ29udHJvbC5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2VcblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBNYXRGb3JtRmllbGRDb250cm9sLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLmRpc2FibGVkICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWRcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkXG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpXG5cbiAgICAvLyBCcm93c2VycyBtYXkgbm90IGZpcmUgdGhlIGJsdXIgZXZlbnQgaWYgdGhlIGlucHV0IGlzIGRpc2FibGVkIHRvbyBxdWlja2x5LlxuICAgIC8vIFJlc2V0IGZyb20gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgZWxlbWVudCBkb2Vzbid0IGJlY29tZSBzdHVjay5cbiAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZVxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpXG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBfZGlzYWJsZWQgPSBmYWxzZVxuXG4gIGZvY3VzZWQgPSBmYWxzZVxuXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICAvLyBASW5wdXQoKVxuICAvLyBnZXQgdmFsdWUoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX2lucHV0VmFsdWVBY2Nlc3Nvci52YWx1ZTsgfVxuICAvLyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAvLyAgIGlmICh2YWx1ZSAhPT0gdGhpcy52YWx1ZSkge1xuICAvLyAgICAgdGhpcy5faW5wdXRWYWx1ZUFjY2Vzc29yLnZhbHVlID0gdmFsdWU7XG4gIC8vICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgcmVhZG9ubHkuICovXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQ+LFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3BhcmVudEZvcm06IE5nRm9ybSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAvLyAzcmQgcGFydHkgc3VwcG9ydFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX25nU2VsZWN0OiBOZ1NlbGVjdENvbXBvbmVudFxuICApIHtcbiAgICAvLyBGb3JjZSBzZXR0ZXIgdG8gYmUgY2FsbGVkIGluIGNhc2UgaWQgd2FzIG5vdCBzcGVjaWZpZWQuXG4gICAgdGhpcy5pZCA9IHRoaXMuaWRcblxuICAgIGlmICghdGhpcy5fc2hvdWxkSGF2ZUZvcm1Db250cm9sQ3NzQ2xhc3MoKSkge1xuICAgICAgdGhpcy5faXNGb3JtQ29udHJvbCA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLl9pc05nU2VsZWN0KCkpIHtcbiAgICAgIHRoaXMuX25nU2VsZWN0LmxhYmVsRm9ySWQgPSB0aGlzLmlkXG4gICAgICB0aGlzLl9uZ1NlbGVjdC5zZXREaXNhYmxlZFN0YXRlKHRoaXMuZGlzYWJsZWQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRvZ2dsZUF0dHJpYnV0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdyZXF1aXJlZCcsIHRoaXMucmVxdWlyZWQpXG4gICAgICB0b2dnbGVBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCB0aGlzLmRpc2FibGVkKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBTaG91bGQgb25seSBiZSB0ZXh0dWFsIGlucHV0cywgYnV0IGluaXRpYWxseSBvdXIgYXBwIGFkZGVkIHRvIGFsbCBmb3JtIGNvbnRyb2xzLiAqL1xuICBwcm90ZWN0ZWQgX3Nob3VsZEhhdmVGb3JtQ29udHJvbENzc0NsYXNzKCkge1xuICAgIHJldHVybiAhdGhpcy5faXNTZWFtQ2hlY2tib3goKVxuICAgICAgJiYgIXRoaXMuX2lzUmFkaW9JbnB1dCgpXG4gICAgICAmJiAhdGhpcy5faXNOZ2JSYWRpb0dyb3VwKClcbiAgICAgICYmICF0aGlzLl9pc1RlbElucHV0KClcbiAgICAgICYmICF0aGlzLl9pc1F1aWxsRWRpdG9yKClcbiAgfVxuXG4gIC8qKiBEZXRlcm1pbmVzIGlmIHRoZSBjb21wb25lbnQgaG9zdCBpcyBhIHRleHRhcmVhLiAqL1xuICBwcm90ZWN0ZWQgX2lzVGV4dGFyZWEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAndGV4dGFyZWEnXG4gIH1cblxuICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgY29tcG9uZW50IGhvc3QgaXMgYSBuZy1zZWxlY3QuICovXG4gIHByb3RlY3RlZCBfaXNOZ1NlbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICduZy1zZWxlY3QnXG4gIH1cblxuICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgY29tcG9uZW50IGhvc3QgaXMgYSBzZWFtLWNoZWNrYm94LiAqL1xuICBwcm90ZWN0ZWQgX2lzU2VhbUNoZWNrYm94KCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3NlYW0tY2hlY2tib3gnXG4gIH1cblxuICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgY29tcG9uZW50IGhvc3QgaXMgYSByYWRpbyBpbnB1dC4gKi9cbiAgcHJvdGVjdGVkIF9pc1JhZGlvSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnICYmXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudHlwZS50b0xvd2VyQ2FzZSgpID09PSAncmFkaW8nXG4gIH1cblxuICBwcm90ZWN0ZWQgX2lzTmdiUmFkaW9Hcm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnbmdiUmFkaW9Hcm91cCcpICE9PSBudWxsXG4gIH1cblxuICBwcm90ZWN0ZWQgX2lzVGVsSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnc2VhbS10ZWwtaW5wdXQnXG4gIH1cblxuICBwcm90ZWN0ZWQgX2lzUXVpbGxFZGl0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAncXVpbGwtZWRpdG9yJ1xuICB9XG5cbiAgLyoqIE1ha2Ugc3VyZSB0aGUgaW5wdXQgaXMgYSBzdXBwb3J0ZWQgdHlwZS4gKi9cbiAgLy8gcHJvdGVjdGVkIF92YWxpZGF0ZVR5cGUoKSB7XG4gIC8vICAgaWYgKE1BVF9JTlBVVF9JTlZBTElEX1RZUEVTLmluZGV4T2YodGhpcy5fdHlwZSkgPiAtMSkge1xuICAvLyAgICAgdGhyb3cgZ2V0TWF0SW5wdXRVbnN1cHBvcnRlZFR5cGVFcnJvcih0aGlzLl90eXBlKVxuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8qKiBGb2N1c2VzIHRoZSBpbnB1dC4gKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKClcbiAgfVxuXG4gIC8qKiBVbmZvY3VzZXMgdGhlIGlucHV0LiAqL1xuICBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ibHVyKClcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sXG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICBjb250cm9sLnNldFZhbHVlKHZhbHVlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -10,12 +10,12 @@ export class FormFieldErrorComponent {
|
|
|
10
10
|
ngOnInit() {
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
FormFieldErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
14
|
-
FormFieldErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
13
|
+
FormFieldErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: FormFieldErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
FormFieldErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: FormFieldErrorComponent, selector: "seam-form-field-error", inputs: { validatorName: "validatorName", message: "message", showValidatorName: "showValidatorName" }, ngImport: i0, template: "<em style=\"display: block;\">\n <span *ngIf=\"showValidatorName && validatorName\"\n style=\"font-weight: bold;\">{{ validatorName }}: </span>\n <span class=\"msg-text\">{{ message }}</span>\n</em>\n", styles: ["@charset \"UTF-8\";.msg-text:empty:after{content:\"\\200b\"}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
15
15
|
__decorate([
|
|
16
16
|
InputBoolean()
|
|
17
17
|
], FormFieldErrorComponent.prototype, "showValidatorName", void 0);
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: FormFieldErrorComponent, decorators: [{
|
|
19
19
|
type: Component,
|
|
20
20
|
args: [{ selector: 'seam-form-field-error', template: "<em style=\"display: block;\">\n <span *ngIf=\"showValidatorName && validatorName\"\n style=\"font-weight: bold;\">{{ validatorName }}: </span>\n <span class=\"msg-text\">{{ message }}</span>\n</em>\n", styles: ["@charset \"UTF-8\";.msg-text:empty:after{content:\"\\200b\"}\n"] }]
|
|
21
21
|
}], ctorParameters: function () { return []; }, propDecorators: { validatorName: [{
|
package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs
CHANGED
|
@@ -8,12 +8,12 @@ export class FormFieldErrorListItemTplDirective {
|
|
|
8
8
|
this.external = false;
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
FormFieldErrorListItemTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
12
|
-
FormFieldErrorListItemTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
11
|
+
FormFieldErrorListItemTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: FormFieldErrorListItemTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
12
|
+
FormFieldErrorListItemTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.6", type: FormFieldErrorListItemTplDirective, selector: "[seamFormFieldErrorListItemTpl]", inputs: { validatorName: "validatorName", external: "external" }, ngImport: i0 });
|
|
13
13
|
__decorate([
|
|
14
14
|
InputBoolean()
|
|
15
15
|
], FormFieldErrorListItemTplDirective.prototype, "external", void 0);
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: FormFieldErrorListItemTplDirective, decorators: [{
|
|
17
17
|
type: Directive,
|
|
18
18
|
args: [{
|
|
19
19
|
selector: '[seamFormFieldErrorListItemTpl]'
|
package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs
CHANGED
|
@@ -5,9 +5,9 @@ export class FormFieldErrorListItemDirective {
|
|
|
5
5
|
this.template = template;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
FormFieldErrorListItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
9
|
-
FormFieldErrorListItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
8
|
+
FormFieldErrorListItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: FormFieldErrorListItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
+
FormFieldErrorListItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.6", type: FormFieldErrorListItemDirective, selector: "[seamFormFieldErrorListItem]", inputs: { validatorName: "validatorName" }, ngImport: i0 });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: FormFieldErrorListItemDirective, decorators: [{
|
|
11
11
|
type: Directive,
|
|
12
12
|
args: [{
|
|
13
13
|
selector: '[seamFormFieldErrorListItem]'
|
|
@@ -12,6 +12,94 @@ import * as i2 from "../form-field-error/form-field-error.component";
|
|
|
12
12
|
* TODO: Cleanup remaining code from before refactor.
|
|
13
13
|
*/
|
|
14
14
|
export class FormFieldErrorListComponent {
|
|
15
|
+
get _display() {
|
|
16
|
+
return this.showErrors ? 'block' : 'none';
|
|
17
|
+
}
|
|
18
|
+
set errors(records) {
|
|
19
|
+
// if (val instanceof Array) {
|
|
20
|
+
// this._errors = val
|
|
21
|
+
// } else {
|
|
22
|
+
// const errs = []
|
|
23
|
+
// for (const k in val) {
|
|
24
|
+
// if (val[k]) {
|
|
25
|
+
// const err = val[k]
|
|
26
|
+
// const newErr = {
|
|
27
|
+
// validatorName: k,
|
|
28
|
+
// error: err,
|
|
29
|
+
// message: '',
|
|
30
|
+
// template: err.template,
|
|
31
|
+
// external: !!err.external
|
|
32
|
+
// }
|
|
33
|
+
// if (err.message) {
|
|
34
|
+
// const msgTmp = err.message
|
|
35
|
+
// if (typeof msgTmp === 'string') {
|
|
36
|
+
// newErr.message = msgTmp
|
|
37
|
+
// } else if (typeof msgTmp === 'function') {
|
|
38
|
+
// newErr.message = msgTmp(err)
|
|
39
|
+
// }
|
|
40
|
+
// } else if (FormFieldErrorListComponent.defaultMessages[k]) {
|
|
41
|
+
// const defaultMsg = FormFieldErrorListComponent.defaultMessages[k]
|
|
42
|
+
// if (typeof defaultMsg === 'string') {
|
|
43
|
+
// newErr.message = defaultMsg
|
|
44
|
+
// } else if (typeof defaultMsg === 'function') {
|
|
45
|
+
// newErr.message = defaultMsg(err)
|
|
46
|
+
// }
|
|
47
|
+
// }
|
|
48
|
+
// errs.push(newErr)
|
|
49
|
+
// }
|
|
50
|
+
// }
|
|
51
|
+
// this._errors = errs
|
|
52
|
+
// }
|
|
53
|
+
this._initErrorInput(records || []);
|
|
54
|
+
}
|
|
55
|
+
// private errorTpl: TemplateRef<any>
|
|
56
|
+
// private _listItemTpls: QueryList<FormFieldErrorListItemTplDirective>
|
|
57
|
+
// private listItemTplsObj = {}
|
|
58
|
+
set _listItemTpls(val) {
|
|
59
|
+
this._initErrorTemplates(val);
|
|
60
|
+
}
|
|
61
|
+
set listItemTpls(val) {
|
|
62
|
+
this._initErrorTemplates(val);
|
|
63
|
+
// for (const v of val.toArray()) {
|
|
64
|
+
// if (v.validatorName !== undefined) {
|
|
65
|
+
// this.listItemTplsObj[v.validatorName] = v
|
|
66
|
+
// }
|
|
67
|
+
// }
|
|
68
|
+
// const tmp = val.find(v => v.validatorName === undefined)
|
|
69
|
+
// if (tmp) {
|
|
70
|
+
// this.errorTpl = tmp.template
|
|
71
|
+
// }
|
|
72
|
+
// this._listItemTpls = val
|
|
73
|
+
}
|
|
74
|
+
get control() { return this._control; }
|
|
75
|
+
set control(value) {
|
|
76
|
+
this._control = value;
|
|
77
|
+
if (value) {
|
|
78
|
+
this._initControlListeners(value);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
set showErrors(val) {
|
|
82
|
+
this._showErrors = val;
|
|
83
|
+
}
|
|
84
|
+
get showErrors() {
|
|
85
|
+
let show = this._showErrors;
|
|
86
|
+
if (show && this.control) {
|
|
87
|
+
if (this.numPaddingErrors > 0) {
|
|
88
|
+
show = true;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
show = !!(this.control.invalid && (this.control.dirty || this.control.touched));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return show;
|
|
95
|
+
}
|
|
96
|
+
get showControlErrors() {
|
|
97
|
+
let show = false;
|
|
98
|
+
if (this.control && this.showErrors) {
|
|
99
|
+
show = !!(this.control.invalid && (this.control.dirty || this.control.touched));
|
|
100
|
+
}
|
|
101
|
+
return show;
|
|
102
|
+
}
|
|
15
103
|
constructor() {
|
|
16
104
|
this._defaultMessages = {
|
|
17
105
|
// required: () => 'Required',
|
|
@@ -122,94 +210,6 @@ export class FormFieldErrorListComponent {
|
|
|
122
210
|
}))
|
|
123
211
|
.pipe(shareReplay(1));
|
|
124
212
|
}
|
|
125
|
-
get _display() {
|
|
126
|
-
return this.showErrors ? 'block' : 'none';
|
|
127
|
-
}
|
|
128
|
-
set errors(records) {
|
|
129
|
-
// if (val instanceof Array) {
|
|
130
|
-
// this._errors = val
|
|
131
|
-
// } else {
|
|
132
|
-
// const errs = []
|
|
133
|
-
// for (const k in val) {
|
|
134
|
-
// if (val[k]) {
|
|
135
|
-
// const err = val[k]
|
|
136
|
-
// const newErr = {
|
|
137
|
-
// validatorName: k,
|
|
138
|
-
// error: err,
|
|
139
|
-
// message: '',
|
|
140
|
-
// template: err.template,
|
|
141
|
-
// external: !!err.external
|
|
142
|
-
// }
|
|
143
|
-
// if (err.message) {
|
|
144
|
-
// const msgTmp = err.message
|
|
145
|
-
// if (typeof msgTmp === 'string') {
|
|
146
|
-
// newErr.message = msgTmp
|
|
147
|
-
// } else if (typeof msgTmp === 'function') {
|
|
148
|
-
// newErr.message = msgTmp(err)
|
|
149
|
-
// }
|
|
150
|
-
// } else if (FormFieldErrorListComponent.defaultMessages[k]) {
|
|
151
|
-
// const defaultMsg = FormFieldErrorListComponent.defaultMessages[k]
|
|
152
|
-
// if (typeof defaultMsg === 'string') {
|
|
153
|
-
// newErr.message = defaultMsg
|
|
154
|
-
// } else if (typeof defaultMsg === 'function') {
|
|
155
|
-
// newErr.message = defaultMsg(err)
|
|
156
|
-
// }
|
|
157
|
-
// }
|
|
158
|
-
// errs.push(newErr)
|
|
159
|
-
// }
|
|
160
|
-
// }
|
|
161
|
-
// this._errors = errs
|
|
162
|
-
// }
|
|
163
|
-
this._initErrorInput(records || []);
|
|
164
|
-
}
|
|
165
|
-
// private errorTpl: TemplateRef<any>
|
|
166
|
-
// private _listItemTpls: QueryList<FormFieldErrorListItemTplDirective>
|
|
167
|
-
// private listItemTplsObj = {}
|
|
168
|
-
set _listItemTpls(val) {
|
|
169
|
-
this._initErrorTemplates(val);
|
|
170
|
-
}
|
|
171
|
-
set listItemTpls(val) {
|
|
172
|
-
this._initErrorTemplates(val);
|
|
173
|
-
// for (const v of val.toArray()) {
|
|
174
|
-
// if (v.validatorName !== undefined) {
|
|
175
|
-
// this.listItemTplsObj[v.validatorName] = v
|
|
176
|
-
// }
|
|
177
|
-
// }
|
|
178
|
-
// const tmp = val.find(v => v.validatorName === undefined)
|
|
179
|
-
// if (tmp) {
|
|
180
|
-
// this.errorTpl = tmp.template
|
|
181
|
-
// }
|
|
182
|
-
// this._listItemTpls = val
|
|
183
|
-
}
|
|
184
|
-
get control() { return this._control; }
|
|
185
|
-
set control(value) {
|
|
186
|
-
this._control = value;
|
|
187
|
-
if (value) {
|
|
188
|
-
this._initControlListeners(value);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
set showErrors(val) {
|
|
192
|
-
this._showErrors = val;
|
|
193
|
-
}
|
|
194
|
-
get showErrors() {
|
|
195
|
-
let show = this._showErrors;
|
|
196
|
-
if (show && this.control) {
|
|
197
|
-
if (this.numPaddingErrors > 0) {
|
|
198
|
-
show = true;
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
show = !!(this.control.invalid && (this.control.dirty || this.control.touched));
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return show;
|
|
205
|
-
}
|
|
206
|
-
get showControlErrors() {
|
|
207
|
-
let show = false;
|
|
208
|
-
if (this.control && this.showErrors) {
|
|
209
|
-
show = !!(this.control.invalid && (this.control.dirty || this.control.touched));
|
|
210
|
-
}
|
|
211
|
-
return show;
|
|
212
|
-
}
|
|
213
213
|
ngOnInit() { }
|
|
214
214
|
ngOnDestroy() {
|
|
215
215
|
this._valueChangeSub.unsubscribe();
|
|
@@ -355,9 +355,9 @@ FormFieldErrorListComponent.defaultMessages = {
|
|
|
355
355
|
// maxlength: (params) => 'The max allowed number of characters is ' + params.requiredLength,
|
|
356
356
|
// pattern: (params) => 'The required pattern is: ' + params.requiredPattern
|
|
357
357
|
};
|
|
358
|
-
FormFieldErrorListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
359
|
-
FormFieldErrorListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
360
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
358
|
+
FormFieldErrorListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: FormFieldErrorListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
359
|
+
FormFieldErrorListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: FormFieldErrorListComponent, selector: "seam-form-field-error-list", inputs: { errors: "errors", showValidatorName: "showValidatorName", numPaddingErrors: "numPaddingErrors", listItemTpls: "listItemTpls", maxErrors: "maxErrors", control: "control", showErrors: "showErrors" }, host: { properties: { "style.display": "this._display" } }, queries: [{ propertyName: "_listItemTpls", predicate: FormFieldErrorListItemTplDirective }], ngImport: i0, template: "<ng-container *ngFor=\"let record of displayRecords$ | async\">\n <ng-container *ngIf=\"record.template; else noTemplate\">\n <div>\n <ng-template\n [ngTemplateOutlet]=\"record.template\"\n [ngTemplateOutletContext]=\"{ $implicit: record.error, errors: record._errors }\">\n </ng-template>\n </div>\n </ng-container>\n <ng-template #noTemplate>\n <seam-form-field-error\n [validatorName]=\"record.validatorName\"\n [message]=\"record.message\"\n [showValidatorName]=\"showValidatorName\">\n </seam-form-field-error>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FormFieldErrorComponent, selector: "seam-form-field-error", inputs: ["validatorName", "message", "showValidatorName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
360
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: FormFieldErrorListComponent, decorators: [{
|
|
361
361
|
type: Component,
|
|
362
362
|
args: [{ selector: 'seam-form-field-error-list', template: "<ng-container *ngFor=\"let record of displayRecords$ | async\">\n <ng-container *ngIf=\"record.template; else noTemplate\">\n <div>\n <ng-template\n [ngTemplateOutlet]=\"record.template\"\n [ngTemplateOutletContext]=\"{ $implicit: record.error, errors: record._errors }\">\n </ng-template>\n </div>\n </ng-container>\n <ng-template #noTemplate>\n <seam-form-field-error\n [validatorName]=\"record.validatorName\"\n [message]=\"record.message\"\n [showValidatorName]=\"showValidatorName\">\n </seam-form-field-error>\n </ng-template>\n</ng-container>\n" }]
|
|
363
363
|
}], ctorParameters: function () { return []; }, propDecorators: { _display: [{
|
|
@@ -381,4 +381,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
|
|
|
381
381
|
}], showErrors: [{
|
|
382
382
|
type: Input
|
|
383
383
|
}] } });
|
|
384
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mb3JtLWZpZWxkLWVycm9yL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC9mb3JtLWZpZWxkLWVycm9yLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci1saXN0L2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBVyxXQUFXLEVBQUUsS0FBSyxFQUE2QyxNQUFNLGVBQWUsQ0FBQTtBQUVsSSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFbEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNENBQTRDLENBQUE7Ozs7QUFhL0Y7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sMkJBQTJCO0lBNk50QztRQWhOaUIscUJBQWdCLEdBQW1FO1FBQ2xHLDhCQUE4QjtRQUM5QixxRkFBcUY7UUFDckYsNkZBQTZGO1FBQzdGLDRFQUE0RTtTQUM3RSxDQUFBO1FBRU8sWUFBTyxHQUFVLEVBQUUsQ0FBQTtRQUVwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQTtRQTRDMUIsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUVsQix3QkFBd0I7UUFDeEIsNEJBQTRCO1FBQzVCLDRCQUE0QjtRQUM1QixlQUFlO1FBQ2YseUNBQXlDO1FBQ3pDLHdGQUF3RjtRQUN4Riw0Q0FBNEM7UUFDNUMsd0RBQXdEO1FBQ3hELGVB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QUFHLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLEtBQUssTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFO1lBQ3RCLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxJQUFJLENBQUE7YUFDWjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDOztBQWhhdUIsMkNBQWUsR0FBbUU7QUFDeEcsOEJBQThCO0FBQzlCLHFGQUFxRjtBQUNyRiw2RkFBNkY7QUFDN0YsNEVBQTRFO0NBQzdFLENBQUE7d0hBWFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsNFdBMElyQixrQ0FBa0MsNkJDdktyRCxnbUJBaUJBOzJGRFlhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSw0QkFBNEI7MEVBTUosUUFBUTtzQkFBekMsV0FBVzt1QkFBQyxlQUFlO2dCQXVCeEIsTUFBTTtzQkFEVCxLQUFLO2dCQXlHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQVFGLGFBQWE7c0JBRGhCLGVBQWU7dUJBQUMsa0NBQWtDO2dCQU0vQyxZQUFZO3NCQURmLEtBQUs7Z0JBc0JHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQXlCRixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRG9DaGVjaywgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBGb3JtRmllbGRFcnJvckxpc3RJdGVtVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9yLWxpc3QtaXRlbS10cGwuZGlyZWN0aXZlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElFcnJvclJlY29yZCB7XG4gIHZhbGlkYXRvck5hbWU6IHN0cmluZ1xuICBlcnJvcjogYW55LFxuICBtZXNzYWdlPzogc3RyaW5nXG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PlxuXG4gIGV4dGVybmFsPzogYm9vbGVhblxuXG4gIF9lcnJvcnM/OiBWYWxpZGF0aW9uRXJyb3JzXG59XG5cbi8qKlxuICogTk9URTogVGhpcyBjbGFzcyBoYXMgc29tZSBpc3N1ZXMgd2l0aCBmaWx0ZXJpbmcgZHVwbGljYXRlIHZhbGlkYXRvcnMuIFRoZVxuICogaW5wdXRzIHdpbGwgYmUgY2xlYW5lZCB1cCBzb29uIHRvIGZpeCB0aGUgaW5wdXQgY29uZnVzaW9uLlxuICpcbiAqIFRPRE86IENsZWFudXAgcmVtYWluaW5nIGNvZGUgZnJvbSBiZWZvcmUgcmVmYWN0b3IuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZm9ybS1maWVsZC1lcnJvci1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrIHtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKSBnZXQgX2Rpc3BsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0Vycm9ycyA/ICdibG9jaycgOiAnbm9uZSdcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRNZXNzYWdlczogeyBbbmFtZTogc3RyaW5nXTogKChwYXJhbXM6IGFueSkgPT4gc3RyaW5nKSB8ICgoKSA9PiBzdHJpbmcpIH0gPSB7XG4gICAgLy8gcmVxdWlyZWQ6ICgpID0+ICdSZXF1aXJlZCcsXG4gICAgLy8gbWlubGVuZ3RoOiAocGFyYW1zKSA9PiAnVGhlIG1pbiBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIG1heGxlbmd0aDogKHBhcmFtcykgPT4gJ1RoZSBtYXggYWxsb3dlZCBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIHBhdHRlcm46IChwYXJhbXMpID0+ICdUaGUgcmVxdWlyZWQgcGF0dGVybiBpczogJyArIHBhcmFtcy5yZXF1aXJlZFBhdHRlcm5cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRNZXNzYWdlczogeyBbbmFtZTogc3RyaW5nXTogKChwYXJhbXM6IGFueSkgPT4gc3RyaW5nKSB8ICgoKSA9PiBzdHJpbmcpIH0gPSB7XG4gICAgLy8gcmVxdWlyZWQ6ICgpID0+ICdSZXF1aXJlZCcsXG4gICAgLy8gbWlubGVuZ3RoOiAocGFyYW1zKSA9PiAnVGhlIG1pbiBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIG1heGxlbmd0aDogKHBhcmFtcykgPT4gJ1RoZSBtYXggYWxsb3dlZCBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIHBhdHRlcm46IChwYXJhbXMpID0+ICdUaGUgcmVxdWlyZWQgcGF0dGVybiBpczogJyArIHBhcmFtcy5yZXF1aXJlZFBhdHRlcm5cbiAgfVxuXG4gIHByaXZhdGUgX2Vycm9yczogYW55W10gPSBbXVxuXG4gIHB1YmxpYyBfcGFkZGluZ0Vycm9ycyA9IFtdXG5cbiAgQElucHV0KClcbiAgc2V0IGVycm9ycyhyZWNvcmRzOiBJRXJyb3JSZWNvcmRbXSB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICAvLyBpZiAodmFsIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAvLyAgIHRoaXMuX2Vycm9ycyA9IHZhbFxuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICBjb25zdCBlcnJzID0gW11cbiAgICAvLyAgIGZvciAoY29uc3QgayBpbiB2YWwpIHtcbiAgICAvLyAgICAgaWYgKHZhbFtrXSkge1xuICAgIC8vICAgICAgIGNvbnN0IGVyciA9IHZhbFtrXVxuICAgIC8vICAgICAgIGNvbnN0IG5ld0VyciA9IHtcbiAgICAvLyAgICAgICAgIHZhbGlkYXRvck5hbWU6IGssXG4gICAgLy8gICAgICAgICBlcnJvcjogZXJyLFxuICAgIC8vICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgLy8gICAgICAgICB0ZW1wbGF0ZTogZXJyLnRlbXBsYXRlLFxuICAgIC8vICAgICAgICAgZXh0ZXJuYWw6ICEhZXJyLmV4dGVybmFsXG4gICAgLy8gICAgICAgfVxuXG4gICAgLy8gICAgICAgaWYgKGVyci5tZXNzYWdlKSB7XG4gICAgLy8gICAgICAgICBjb25zdCBtc2dUbXAgPSBlcnIubWVzc2FnZVxuICAgIC8vICAgICAgICAgaWYgKHR5cGVvZiBtc2dUbXAgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gICAgICAgICAgIG5ld0Vyci5tZXNzYWdlID0gbXNnVG1wXG4gICAgLy8gICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBtc2dUbXAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBtc2dUbXAoZXJyKVxuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH0gZWxzZSBpZiAoRm9ybUZpZWxkRXJyb3JMaXN0Q29tcG9uZW50LmRlZmF1bHRNZXNzYWdlc1trXSkge1xuICAgIC8vICAgICAgICAgY29uc3QgZGVmYXVsdE1zZyA9IEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba11cbiAgICAvLyAgICAgICAgIGlmICh0eXBlb2YgZGVmYXVsdE1zZyA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBkZWZhdWx0TXNnXG4gICAgLy8gICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZhdWx0TXNnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gICAgICAgICAgIG5ld0Vyci5tZXNzYWdlID0gZGVmYXVsdE1zZyhlcnIpXG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgfVxuXG4gICAgLy8gICAgICAgZXJycy5wdXNoKG5ld0VycilcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vICAgdGhpcy5fZXJyb3JzID0gZXJyc1xuICAgIC8vIH1cblxuICAgIHRoaXMuX2luaXRFcnJvcklucHV0KHJlY29yZHMgfHwgW10pXG4gIH1cblxuICAvLyBnZXQgZXJyb3JzKCkge1xuICAvLyAgIGxldCBlcnJzID0gW11cblxuICAvLyAgIGlmICh0aGlzLl9lcnJvcnMpIHtcbiAgLy8gICAgIGlmICghdGhpcy5tZXNzYWdlcykge1xuICAvLyAgICAgICBlcnJzID0gdGhpcy5fZXJyb3JzXG4gIC8vICAgICB9IGVsc2Uge1xuICAvLyAgICAgICBlcnJzID0gdGhpcy5fZXJyb3JzLm1hcChlcnIgPT4ge1xuICAvLyAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VzICYmIGVyci52YWxpZGF0b3JOYW1lICYmIHRoaXMubWVzc2FnZXNbZXJyLnZhbGlkYXRvck5hbWVdKSB7XG4gIC8vICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZXJyLCB7XG4gIC8vICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZXNbZXJyLnZhbGlkYXRvck5hbWVdXG4gIC8vICAgICAgICAgICB9KVxuICAvLyAgICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgICByZXR1cm4gZXJyXG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9KVxuICAvLyAgICAgfVxuICAvLyAgIH1cblxuICAvLyAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgLy8gICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuY29udHJvbC5lcnJvcnMpIHtcbiAgLy8gICAgICAgaWYgKHRoaXMuY29udHJvbC5lcnJvcnNba2V5XSkge1xuICAvLyAgICAgICAgIGNvbnN0IGVyciA9IHRoaXMuY29udHJvbC5lcnJvcnNba2V5XVxuXG4gIC8vICAgICAgICAgY29uc3QgbmV3RXJyID0ge1xuICAvLyAgICAgICAgICAgdmFsaWRhdG9yTmFtZToga2V5LFxuICAvLyAgICAgICAgICAgZXJyb3I6IGVycixcbiAgLy8gICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAvLyAgICAgICAgICAgZXh0ZXJuYWw6IGZhbHNlXG4gIC8vICAgICAgICAgfVxuXG4gIC8vICAgICAgICAgaWYgKEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba2V5XSkge1xuICAvLyAgICAgICAgICAgY29uc3QgZGVmYXVsdE1zZyA9IEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba2V5XVxuICAvLyAgICAgICAgICAgaWYgKHR5cGVvZiBkZWZhdWx0TXNnID09PSAnc3RyaW5nJykge1xuICAvLyAgICAgICAgICAgICBuZXdFcnIubWVzc2FnZSA9IGRlZmF1bHRNc2dcbiAgLy8gICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmF1bHRNc2cgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gICAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBkZWZhdWx0TXNnKGVycilcbiAgLy8gICAgICAgICAgIH1cbiAgLy8gICAgICAgICB9XG5cbiAgLy8gICAgICAgICBlcnJzID0gWyAuLi5lcnJzLCBuZXdFcnIgXVxuICAvLyAgICAgICB9XG4gIC8vICAgICB9XG4gIC8vICAgfVxuXG4gIC8vICAgaWYgKHRoaXMubWF4RXJyb3JzID49IDApIHtcbiAgLy8gICAgIGVycnMgPSBlcnJzLnNsaWNlKDAsIHRoaXMubWF4RXJyb3JzKVxuICAvLyAgIH1cblxuICAvLyAgIGNvbnN0IGNvdW50ID0gdGhpcy5zaG93Q29udHJvbEVycm9ycyA/IHRoaXMubnVtUGFkZGluZ0Vycm9ycyAtIGVycnMubGVuZ3RoIDogdGhpcy5udW1QYWRkaW5nRXJyb3JzXG4gIC8vICAgaWYgKGNvdW50ID4gMCkge1xuICAvLyAgICAgdGhpcy5fcGFkZGluZ0Vycm9ycyA9IFtdXG4gIC8vICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgLy8gICAgICAgdGhpcy5fcGFkZGluZ0Vycm9ycy5wdXNoKHsgdmFsaWRhdG9yTmFtZTogJ19fcGFkZGluZ19fJywgZXJyb3I6IHt9LCBtZXNzYWdlOiAnJywgZXh0ZXJuYWw6IGZhbHNlIH0pXG4gIC8vICAgICB9XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIHRoaXMuX3BhZGRpbmdFcnJvcnMgPSBbXVxuICAvLyAgIH1cblxuICAvLyAgIHJldHVybiBlcnJzXG4gIC8vIH1cblxuICAvLyBASW5wdXQoKSBtZXNzYWdlczogYW55ID0ge31cbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRvck5hbWUgPSBmYWxzZVxuXG4gIEBJbnB1dCgpIG51bVBhZGRpbmdFcnJvcnMgPSAxXG5cbiAgLy8gcHJpdmF0ZSBlcnJvclRwbDogVGVtcGxhdGVSZWY8YW55PlxuXG4gIC8vIHByaXZhdGUgX2xpc3RJdGVtVHBsczogUXVlcnlMaXN0PEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmU+XG4gIC8vIHByaXZhdGUgbGlzdEl0ZW1UcGxzT2JqID0ge31cblxuICBAQ29udGVudENoaWxkcmVuKEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmUpXG4gIHNldCBfbGlzdEl0ZW1UcGxzKHZhbDogUXVlcnlMaXN0PEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmU+KSB7XG4gICAgdGhpcy5faW5pdEVycm9yVGVtcGxhdGVzKHZhbClcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBsaXN0SXRlbVRwbHModmFsOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkRXJyb3JMaXN0SXRlbVRwbERpcmVjdGl2ZT4pIHtcbiAgICB0aGlzLl9pbml0RXJyb3JUZW1wbGF0ZXModmFsKVxuXG4gICAgLy8gZm9yIChjb25zdCB2IG9mIHZhbC50b0FycmF5KCkpIHtcbiAgICAvLyAgIGlmICh2LnZhbGlkYXRvck5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vICAgICB0aGlzLmxpc3RJdGVtVHBsc09ialt2LnZhbGlkYXRvck5hbWVdID0gdlxuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICAgIC8vIGNvbnN0IHRtcCA9IHZhbC5maW5kKHYgPT4gdi52YWxpZGF0b3JOYW1lID09PSB1bmRlZmluZWQpXG4gICAgLy8gaWYgKHRtcCkge1xuICAgIC8vICAgdGhpcy5lcnJvclRwbCA9IHRtcC50ZW1wbGF0ZVxuICAgIC8vIH1cblxuICAgIC8vIHRoaXMuX2xpc3RJdGVtVHBscyA9IHZhbFxuICB9XG5cbiAgLy8gZ2V0IGxpc3RJdGVtVHBscygpOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkRXJyb3JMaXN0SXRlbVRwbERpcmVjdGl2ZT4ge1xuICAvLyAgIHJldHVybiB0aGlzLl9saXN0SXRlbVRwbHNcbiAgLy8gfVxuXG4gIEBJbnB1dCgpIG1heEVycm9ycyA9IC0xXG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlIHwgQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkIHwgbnVsbCB7IHJldHVybiB0aGlzLl9jb250cm9sIH1cbiAgc2V0IGNvbnRyb2wodmFsdWU6IEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSB8IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICB0aGlzLl9jb250cm9sID0gdmFsdWVcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2luaXRDb250cm9sTGlzdGVuZXJzKHZhbHVlKVxuICAgIH1cbiAgfVxuICBwcml2YXRlIF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCBBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VTdWIgPSBTdWJzY3JpcHRpb24uRU1QVFlcbiAgcHJpdmF0ZSBfZXJyb3JUcGxzQ2hhbmdlU3ViID0gU3Vic2NyaXB0aW9uLkVNUFRZXG5cbiAgcHJpdmF0ZSBfY29udHJvbEVycm9ycyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUVycm9yUmVjb3JkW10+KFtdKVxuICBwcml2YXRlIF9lcnJvclRwbHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElFcnJvclJlY29yZFtdPihbXSlcbiAgcHJpdmF0ZSBfZXJyb3JJbnB1dCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUVycm9yUmVjb3JkW10+KFtdKVxuXG4gIHByaXZhdGUgX3Nob3dDb250cm9sRXJyb3JzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgcHVibGljIGRpc3BsYXlSZWNvcmRzJDogT2JzZXJ2YWJsZTxJRXJyb3JSZWNvcmRbXT5cbiAgcHVibGljIHNob3dDb250cm9sRXJyb3JzJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIHByaXZhdGUgX3Nob3dFcnJvcnMgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgc2V0IHNob3dFcnJvcnModmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0Vycm9ycyA9IHZhbFxuICB9XG5cbiAgZ2V0IHNob3dFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgbGV0IHNob3cgPSB0aGlzLl9zaG93RXJyb3JzXG5cbiAgICBpZiAoc2hvdyAmJiB0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGlmICh0aGlzLm51bVBhZGRpbmdFcnJvcnMgPiAwKSB7XG4gICAgICAgIHNob3cgPSB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaG93ID0gISEodGhpcy5jb250cm9sLmludmFsaWQgJiYgKHRoaXMuY29udHJvbC5kaXJ0eSB8fCB0aGlzLmNvbnRyb2wudG91Y2hlZCkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNob3dcbiAgfVxuXG4gIGdldCBzaG93Q29udHJvbEVycm9ycygpOiBib29sZWFuIHtcbiAgICBsZXQgc2hvdyA9IGZhbHNlXG4gICAgaWYgKHRoaXMuY29udHJvbCAmJiB0aGlzLnNob3dFcnJvcnMpIHtcbiAgICAgIHNob3cgPSAhISh0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiAodGhpcy5jb250cm9sLmRpcnR5IHx8IHRoaXMuY29udHJvbC50b3VjaGVkKSlcbiAgICB9XG5cbiAgICByZXR1cm4gc2hvd1xuICB9XG5cbiAgcHVibGljIGVycm9yUmVjb3JkcyQ6IE9ic2VydmFibGU8SUVycm9yUmVjb3JkW10+XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zaG93Q29udHJvbEVycm9ycyQgPSB0aGlzLl9zaG93Q29udHJvbEVycm9yc1N1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAucGlwZShzaGFyZVJlcGxheSgxKSlcblxuICAgIHRoaXMuZXJyb3JSZWNvcmRzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2NvbnRyb2xFcnJvcnMsIHRoaXMuX2Vycm9yVHBscywgdGhpcy5fZXJyb3JJbnB1dF0pXG4gICAgICAucGlwZShtYXAoKFtjdHJsRXJycywgZXJyVHBscywgZXJyb3JJbnB1dF0pID0+IHRoaXMuX2NvbXBvc2VFcnJvcklucHV0cyhjdHJsRXJycywgZXJyVHBscywgZXJyb3JJbnB1dCkpKVxuICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpXG5cbiAgICB0aGlzLmRpc3BsYXlSZWNvcmRzJCA9IHRoaXMuZXJyb3JSZWNvcmRzJFxuICAgICAgLnBpcGUobWFwKHJlY29yZHMgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0UmVjb3JkczogSUVycm9yUmVjb3JkW10gPSBbXVxuXG4gICAgICAgIGlmICghdGhpcy5zaG93RXJyb3JzKSB7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZXJycyA9IFsgLi4ucmVjb3JkcyBdXG5cbiAgICAgICAgICBpZiAodGhpcy5tYXhFcnJvcnMgPj0gMCkge1xuICAgICAgICAgICAgZXJycyA9IGVycnMuc2xpY2UoMCwgdGhpcy5tYXhFcnJvcnMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLnNob3dDb250cm9sRXJyb3JzID8gdGhpcy5udW1QYWRkaW5nRXJyb3JzIC0gZXJycy5sZW5ndGggOiB0aGlzLm51bVBhZGRpbmdFcnJvcnNcbiAgICAgICAgICBjb25zdCBwYWRkaW5nRXJyb3JzOiBJRXJyb3JSZWNvcmRbXSA9IFtdXG4gICAgICAgICAgaWYgKGNvdW50ID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgIHBhZGRpbmdFcnJvcnMucHVzaCh7IHZhbGlkYXRvck5hbWU6ICdfX3BhZGRpbmdfXycsIGVycm9yOiB7fSwgbWVzc2FnZTogJycsIGV4dGVybmFsOiBmYWxzZSB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnNob3dDb250cm9sRXJyb3JzKSB7XG4gICAgICAgICAgICByZXN1bHRSZWNvcmRzID0gWyAuLi5lcnJzLCAuLi5wYWRkaW5nRXJyb3JzIF1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0UmVjb3JkcyA9IFsgLi4ucGFkZGluZ0Vycm9ycyBdXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFJlY29yZHNcbiAgICAgIH0pKVxuICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpXG4gIH1cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKClcbiAgICB0aGlzLl9lcnJvclRwbHNDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIHRoaXMuX3Nob3dDb250cm9sRXJyb3JzU3ViamVjdC5uZXh0KHRoaXMuc2hvd0NvbnRyb2xFcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF9pbml0Q29udHJvbExpc3RlbmVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcbiAgICAvLyBVbnN1YnNjcmliZSBmcm9tIG9sZCBjb250cm9sIGNoYW5nZXNcbiAgICBpZiAodGhpcy5fdmFsdWVDaGFuZ2VTdWIgJiYgIXRoaXMuX3ZhbHVlQ2hhbmdlU3ViLmNsb3NlZCkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKVxuICAgIH1cblxuICAgIGlmIChjb250cm9sLnZhbHVlQ2hhbmdlcyAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VTdWIgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNob3dDb250cm9sRXJyb3JzJCwgY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSldKVxuICAgICAgICAucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSlcbiAgICAgICAgLnN1YnNjcmliZShfID0+IHRoaXMuX3VwZGF0ZUNvbnRyb2xFcnJvcnMoY29udHJvbC5lcnJvcnMpKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXRDb250cm9sRXJyb3JzKFtdKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNvbnRyb2xFcnJvcnMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IGVycnM6IElFcnJvclJlY29yZFtdID0gW11cbiAgICBmb3IgKGNvbnN0IHZhbGlkYXRvck5hbWUgaW4gZXJyb3JzKSB7XG4gICAgICBpZiAoZXJyb3JzLmhhc093blByb3BlcnR5KHZhbGlkYXRvck5hbWUpKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXJyb3JzW3ZhbGlkYXRvck5hbWVdXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLl9wYXJzZU1lc3NhZ2UodGhpcy5fZGVmYXVsdE1lc3NhZ2VzW3ZhbGlkYXRvck5hbWVdLCBlcnJvcilcbiAgICAgICAgY29uc3QgZXh0ZXJuYWwgPSBmYWxzZVxuICAgICAgICBlcnJzLnB1c2goeyB2YWxpZGF0b3JOYW1lLCBlcnJvciwgbWVzc2FnZSwgZXh0ZXJuYWwgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fc2V0Q29udHJvbEVycm9ycyhlcnJzKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0Q29udHJvbEVycm9ycyhlcnJvcnM6IElFcnJvclJlY29yZFtdKSB7XG4gICAgdGhpcy5fY29udHJvbEVycm9ycy5uZXh0KGVycm9ycylcbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlTWVzc2FnZShtZXNzYWdlOiBhbnksIGVycm9yOiBhbnkpIHtcbiAgICBpZiAoIW1lc3NhZ2UpIHsgcmV0dXJuIH1cblxuICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBtZXNzYWdlXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIG1lc3NhZ2UoZXJyb3IpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEVycm9yVGVtcGxhdGVzKHRwbHNRdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxGb3JtRmllbGRFcnJvckxpc3RJdGVtVHBsRGlyZWN0aXZlPikge1xuICAgIGlmICh0aGlzLl9lcnJvclRwbHNDaGFuZ2VTdWIgJiYgIXRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1Yi5jbG9zZWQpIHtcbiAgICAgIHRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1Yi51bnN1YnNjcmliZSgpXG4gICAgfVxuXG4gICAgaWYgKHRwbHNRdWVyeUxpc3QpIHtcbiAgICAgIHRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1YiA9IHRwbHNRdWVyeUxpc3QuY2hhbmdlc1xuICAgICAgICAucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSlcbiAgICAgICAgLnN1YnNjcmliZShfID0+IHRoaXMuX3VwZGF0ZUVycm9yVGVtcGxhdGVzKHRwbHNRdWVyeUxpc3QudG9BcnJheSgpKSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc2V0RXJyb3JUZW1wbGF0ZXMoW10pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRXJyb3JUZW1wbGF0ZXModHBsc0xpc3Q6IEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmVbXSk6IHZvaWQge1xuICAgIGNvbnN0IGVycnM6IElFcnJvclJlY29yZFtdID0gW11cbiAgICBmb3IgKGNvbnN0IHRwbCBvZiB0cGxzTGlzdCkge1xuICAgICAgaWYgKHRwbC52YWxpZGF0b3JOYW1lICE9PSB1bmRlZmluZWQgJiYgdHBsLnZhbGlkYXRvck5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgZXJycy5wdXNoKHtcbiAgICAgICAgICB2YWxpZGF0b3JOYW1lOiB0cGwudmFsaWRhdG9yTmFtZSxcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICB0ZW1wbGF0ZTogdHBsLnRlbXBsYXRlLFxuICAgICAgICAgIGV4dGVybmFsOiAhIXRwbC5leHRlcm5hbFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhpcy5lcnJvclRwbCA9IHRwbC50ZW1wbGF0ZVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9zZXRFcnJvclRlbXBsYXRlcyhlcnJzKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RXJyb3JUZW1wbGF0ZXMoZXJyb3JUcGxzOiBJRXJyb3JSZWNvcmRbXSk6IHZvaWQge1xuICAgIHRoaXMuX2Vycm9yVHBscy5uZXh0KGVycm9yVHBscylcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRFcnJvcklucHV0KGVycm9yczogSUVycm9yUmVjb3JkW10pOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVFcnJvcklucHV0cyhlcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVFcnJvcklucHV0cyhlcnJvcnM6IElFcnJvclJlY29yZFtdKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0RXJyb3JJbnB1dChlcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF9zZXRFcnJvcklucHV0KGVycm9yczogSUVycm9yUmVjb3JkW10pOiB2b2lkIHtcbiAgICB0aGlzLl9lcnJvcklucHV0Lm5leHQoZXJyb3JzKVxuICB9XG5cbiAgcHJpdmF0ZSBfY29tcG9zZUVycm9ySW5wdXRzKFxuICAgIGNvbnRyb2xFcnJvcnM6IElFcnJvclJlY29yZFtdLFxuICAgIGVycm9yVGVtcGxhdGVzOiBJRXJyb3JSZWNvcmRbXSxcbiAgICBlcnJvcklucHV0OiBJRXJyb3JSZWNvcmRbXVxuICApOiBJRXJyb3JSZWNvcmRbXSB7XG4gICAgY29uc3QgZXJyczogSUVycm9yUmVjb3JkW10gPSBbXVxuXG4gICAgY29uc3QgZXJyc01hcDogeyBbbmFtZTogc3RyaW5nXTogSUVycm9yUmVjb3JkIH0gPSB7fVxuXG4gICAgZm9yIChjb25zdCBlcnIgb2YgY29udHJvbEVycm9ycykge1xuICAgICAgaWYgKGVyci5tZXNzYWdlIHx8IGVyci50ZW1wbGF0ZSkge1xuICAgICAgICBlcnJzTWFwW2Vyci52YWxpZGF0b3JOYW1lXSA9IGVyclxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZXJyIG9mIGVycm9ySW5wdXQpIHtcbiAgICAgIGlmIChlcnIubWVzc2FnZSB8fCBlcnIudGVtcGxhdGUpIHtcbiAgICAgICAgZXJyc01hcFtlcnIudmFsaWRhdG9yTmFtZV0gPSBlcnJcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGVyciBvZiBlcnJvclRlbXBsYXRlcykge1xuICAgICAgaWYgKGVyci5tZXNzYWdlIHx8IGVyci50ZW1wbGF0ZSkge1xuICAgICAgICBlcnJzTWFwW2Vyci52YWxpZGF0b3JOYW1lXSA9IGVyclxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgdmFsaWRhdG9yTmFtZSBpbiBlcnJzTWFwKSB7XG4gICAgICBpZiAoZXJyc01hcC5oYXNPd25Qcm9wZXJ0eSh2YWxpZGF0b3JOYW1lKSkge1xuICAgICAgICBlcnJzLnB1c2goZXJyc01hcFt2YWxpZGF0b3JOYW1lXSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sXG4gICAgaWYgKCFjb250cm9sKSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyc1xuICAgICAgLmZpbHRlcihlcnIgPT4gdGhpcy5faXNFcnJvclZhbGlkYXRvcihjb250cm9sLmVycm9ycywgZXJyLnZhbGlkYXRvck5hbWUpKVxuICAgICAgLmZpbHRlcihlcnIgPT4gIWVyci5leHRlcm5hbClcbiAgICAgIC5tYXAoZXJyID0+ICh7XG4gICAgICAgIC4uLmVycixcbiAgICAgICAgZXJyb3I6IGNvbnRyb2wuZXJyb3JzID8gY29udHJvbC5lcnJvcnNbZXJyLnZhbGlkYXRvck5hbWVdIDogbnVsbCxcbiAgICAgICAgX2Vycm9yczogY29udHJvbC5lcnJvcnNcbiAgICAgIH0gYXMgSUVycm9yUmVjb3JkKSlcbiAgfVxuXG4gIHByaXZhdGUgX2lzRXJyb3JWYWxpZGF0b3IoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCwgdmFsaWRhdG9yTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFlcnJvcnMpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBjb25zdCBhcnIgPSB2YWxpZGF0b3JOYW1lLnNwbGl0KCcgJykuZmlsdGVyKHYgPT4gdi50cmltKCkubGVuZ3RoID4gMClcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXJyKSB7XG4gICAgICBpZiAoZXJyb3JzLmhhc093blByb3BlcnR5KGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJlY29yZCBvZiBkaXNwbGF5UmVjb3JkcyQgfCBhc3luY1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVjb3JkLnRlbXBsYXRlOyBlbHNlIG5vVGVtcGxhdGVcIj5cbiAgICA8ZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlY29yZC50ZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcmVjb3JkLmVycm9yLCBlcnJvcnM6IHJlY29yZC5fZXJyb3JzIH1cIj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI25vVGVtcGxhdGU+XG4gICAgPHNlYW0tZm9ybS1maWVsZC1lcnJvclxuICAgICAgW3ZhbGlkYXRvck5hbWVdPVwicmVjb3JkLnZhbGlkYXRvck5hbWVcIlxuICAgICAgW21lc3NhZ2VdPVwicmVjb3JkLm1lc3NhZ2VcIlxuICAgICAgW3Nob3dWYWxpZGF0b3JOYW1lXT1cInNob3dWYWxpZGF0b3JOYW1lXCI+XG4gICAgPC9zZWFtLWZvcm0tZmllbGQtZXJyb3I+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
384
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mb3JtLWZpZWxkLWVycm9yL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC9mb3JtLWZpZWxkLWVycm9yLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci1saXN0L2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBVyxXQUFXLEVBQUUsS0FBSyxFQUE2QyxNQUFNLGVBQWUsQ0FBQTtBQUVsSSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFbEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNENBQTRDLENBQUE7Ozs7QUFhL0Y7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sMkJBQTJCO0lBRXRDLElBQWtDLFFBQVE7UUFDeEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUMzQyxDQUFDO0lBb0JELElBQ0ksTUFBTSxDQUFDLE9BQTBDO1FBQ25ELDhCQUE4QjtRQUM5Qix1QkFBdUI7UUFDdkIsV0FBVztRQUNYLG9CQUFvQjtRQUNwQiwyQkFBMkI7UUFDM0Isb0JBQW9CO1FBQ3BCLDJCQUEyQjtRQUMzQix5QkFBeUI7UUFDekIsNEJBQTRCO1FBQzVCLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsa0NBQWtD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LEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLEtBQUssTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFO1lBQ3RCLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxJQUFJLENBQUE7YUFDWjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDOztBQWhhdUIsMkNBQWUsR0FBbUU7QUFDeEcsOEJBQThCO0FBQzlCLHFGQUFxRjtBQUNyRiw2RkFBNkY7QUFDN0YsNEVBQTRFO0NBQzdFLENBQUE7d0hBWFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsNFdBMElyQixrQ0FBa0MsNkJDdktyRCxnbUJBaUJBOzJGRFlhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSw0QkFBNEI7MEVBTUosUUFBUTtzQkFBekMsV0FBVzt1QkFBQyxlQUFlO2dCQXVCeEIsTUFBTTtzQkFEVCxLQUFLO2dCQXlHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQVFGLGFBQWE7c0JBRGhCLGVBQWU7dUJBQUMsa0NBQWtDO2dCQU0vQyxZQUFZO3NCQURmLEtBQUs7Z0JBc0JHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQXlCRixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRG9DaGVjaywgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBGb3JtRmllbGRFcnJvckxpc3RJdGVtVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9yLWxpc3QtaXRlbS10cGwuZGlyZWN0aXZlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElFcnJvclJlY29yZCB7XG4gIHZhbGlkYXRvck5hbWU6IHN0cmluZ1xuICBlcnJvcjogYW55LFxuICBtZXNzYWdlPzogc3RyaW5nXG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PlxuXG4gIGV4dGVybmFsPzogYm9vbGVhblxuXG4gIF9lcnJvcnM/OiBWYWxpZGF0aW9uRXJyb3JzXG59XG5cbi8qKlxuICogTk9URTogVGhpcyBjbGFzcyBoYXMgc29tZSBpc3N1ZXMgd2l0aCBmaWx0ZXJpbmcgZHVwbGljYXRlIHZhbGlkYXRvcnMuIFRoZVxuICogaW5wdXRzIHdpbGwgYmUgY2xlYW5lZCB1cCBzb29uIHRvIGZpeCB0aGUgaW5wdXQgY29uZnVzaW9uLlxuICpcbiAqIFRPRE86IENsZWFudXAgcmVtYWluaW5nIGNvZGUgZnJvbSBiZWZvcmUgcmVmYWN0b3IuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZm9ybS1maWVsZC1lcnJvci1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrIHtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKSBnZXQgX2Rpc3BsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0Vycm9ycyA/ICdibG9jaycgOiAnbm9uZSdcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRNZXNzYWdlczogeyBbbmFtZTogc3RyaW5nXTogKChwYXJhbXM6IGFueSkgPT4gc3RyaW5nKSB8ICgoKSA9PiBzdHJpbmcpIH0gPSB7XG4gICAgLy8gcmVxdWlyZWQ6ICgpID0+ICdSZXF1aXJlZCcsXG4gICAgLy8gbWlubGVuZ3RoOiAocGFyYW1zKSA9PiAnVGhlIG1pbiBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIG1heGxlbmd0aDogKHBhcmFtcykgPT4gJ1RoZSBtYXggYWxsb3dlZCBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIHBhdHRlcm46IChwYXJhbXMpID0+ICdUaGUgcmVxdWlyZWQgcGF0dGVybiBpczogJyArIHBhcmFtcy5yZXF1aXJlZFBhdHRlcm5cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRNZXNzYWdlczogeyBbbmFtZTogc3RyaW5nXTogKChwYXJhbXM6IGFueSkgPT4gc3RyaW5nKSB8ICgoKSA9PiBzdHJpbmcpIH0gPSB7XG4gICAgLy8gcmVxdWlyZWQ6ICgpID0+ICdSZXF1aXJlZCcsXG4gICAgLy8gbWlubGVuZ3RoOiAocGFyYW1zKSA9PiAnVGhlIG1pbiBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIG1heGxlbmd0aDogKHBhcmFtcykgPT4gJ1RoZSBtYXggYWxsb3dlZCBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIHBhdHRlcm46IChwYXJhbXMpID0+ICdUaGUgcmVxdWlyZWQgcGF0dGVybiBpczogJyArIHBhcmFtcy5yZXF1aXJlZFBhdHRlcm5cbiAgfVxuXG4gIHByaXZhdGUgX2Vycm9yczogYW55W10gPSBbXVxuXG4gIHB1YmxpYyBfcGFkZGluZ0Vycm9ycyA9IFtdXG5cbiAgQElucHV0KClcbiAgc2V0IGVycm9ycyhyZWNvcmRzOiBJRXJyb3JSZWNvcmRbXSB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICAvLyBpZiAodmFsIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAvLyAgIHRoaXMuX2Vycm9ycyA9IHZhbFxuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICBjb25zdCBlcnJzID0gW11cbiAgICAvLyAgIGZvciAoY29uc3QgayBpbiB2YWwpIHtcbiAgICAvLyAgICAgaWYgKHZhbFtrXSkge1xuICAgIC8vICAgICAgIGNvbnN0IGVyciA9IHZhbFtrXVxuICAgIC8vICAgICAgIGNvbnN0IG5ld0VyciA9IHtcbiAgICAvLyAgICAgICAgIHZhbGlkYXRvck5hbWU6IGssXG4gICAgLy8gICAgICAgICBlcnJvcjogZXJyLFxuICAgIC8vICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgLy8gICAgICAgICB0ZW1wbGF0ZTogZXJyLnRlbXBsYXRlLFxuICAgIC8vICAgICAgICAgZXh0ZXJuYWw6ICEhZXJyLmV4dGVybmFsXG4gICAgLy8gICAgICAgfVxuXG4gICAgLy8gICAgICAgaWYgKGVyci5tZXNzYWdlKSB7XG4gICAgLy8gICAgICAgICBjb25zdCBtc2dUbXAgPSBlcnIubWVzc2FnZVxuICAgIC8vICAgICAgICAgaWYgKHR5cGVvZiBtc2dUbXAgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gICAgICAgICAgIG5ld0Vyci5tZXNzYWdlID0gbXNnVG1wXG4gICAgLy8gICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBtc2dUbXAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBtc2dUbXAoZXJyKVxuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH0gZWxzZSBpZiAoRm9ybUZpZWxkRXJyb3JMaXN0Q29tcG9uZW50LmRlZmF1bHRNZXNzYWdlc1trXSkge1xuICAgIC8vICAgICAgICAgY29uc3QgZGVmYXVsdE1zZyA9IEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba11cbiAgICAvLyAgICAgICAgIGlmICh0eXBlb2YgZGVmYXVsdE1zZyA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBkZWZhdWx0TXNnXG4gICAgLy8gICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZhdWx0TXNnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gICAgICAgICAgIG5ld0Vyci5tZXNzYWdlID0gZGVmYXVsdE1zZyhlcnIpXG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgfVxuXG4gICAgLy8gICAgICAgZXJycy5wdXNoKG5ld0VycilcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vICAgdGhpcy5fZXJyb3JzID0gZXJyc1xuICAgIC8vIH1cblxuICAgIHRoaXMuX2luaXRFcnJvcklucHV0KHJlY29yZHMgfHwgW10pXG4gIH1cblxuICAvLyBnZXQgZXJyb3JzKCkge1xuICAvLyAgIGxldCBlcnJzID0gW11cblxuICAvLyAgIGlmICh0aGlzLl9lcnJvcnMpIHtcbiAgLy8gICAgIGlmICghdGhpcy5tZXNzYWdlcykge1xuICAvLyAgICAgICBlcnJzID0gdGhpcy5fZXJyb3JzXG4gIC8vICAgICB9IGVsc2Uge1xuICAvLyAgICAgICBlcnJzID0gdGhpcy5fZXJyb3JzLm1hcChlcnIgPT4ge1xuICAvLyAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VzICYmIGVyci52YWxpZGF0b3JOYW1lICYmIHRoaXMubWVzc2FnZXNbZXJyLnZhbGlkYXRvck5hbWVdKSB7XG4gIC8vICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZXJyLCB7XG4gIC8vICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZXNbZXJyLnZhbGlkYXRvck5hbWVdXG4gIC8vICAgICAgICAgICB9KVxuICAvLyAgICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgICByZXR1cm4gZXJyXG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9KVxuICAvLyAgICAgfVxuICAvLyAgIH1cblxuICAvLyAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgLy8gICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuY29udHJvbC5lcnJvcnMpIHtcbiAgLy8gICAgICAgaWYgKHRoaXMuY29udHJvbC5lcnJvcnNba2V5XSkge1xuICAvLyAgICAgICAgIGNvbnN0IGVyciA9IHRoaXMuY29udHJvbC5lcnJvcnNba2V5XVxuXG4gIC8vICAgICAgICAgY29uc3QgbmV3RXJyID0ge1xuICAvLyAgICAgICAgICAgdmFsaWRhdG9yTmFtZToga2V5LFxuICAvLyAgICAgICAgICAgZXJyb3I6IGVycixcbiAgLy8gICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAvLyAgICAgICAgICAgZXh0ZXJuYWw6IGZhbHNlXG4gIC8vICAgICAgICAgfVxuXG4gIC8vICAgICAgICAgaWYgKEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba2V5XSkge1xuICAvLyAgICAgICAgICAgY29uc3QgZGVmYXVsdE1zZyA9IEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba2V5XVxuICAvLyAgICAgICAgICAgaWYgKHR5cGVvZiBkZWZhdWx0TXNnID09PSAnc3RyaW5nJykge1xuICAvLyAgICAgICAgICAgICBuZXdFcnIubWVzc2FnZSA9IGRlZmF1bHRNc2dcbiAgLy8gICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmF1bHRNc2cgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gICAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBkZWZhdWx0TXNnKGVycilcbiAgLy8gICAgICAgICAgIH1cbiAgLy8gICAgICAgICB9XG5cbiAgLy8gICAgICAgICBlcnJzID0gWyAuLi5lcnJzLCBuZXdFcnIgXVxuICAvLyAgICAgICB9XG4gIC8vICAgICB9XG4gIC8vICAgfVxuXG4gIC8vICAgaWYgKHRoaXMubWF4RXJyb3JzID49IDApIHtcbiAgLy8gICAgIGVycnMgPSBlcnJzLnNsaWNlKDAsIHRoaXMubWF4RXJyb3JzKVxuICAvLyAgIH1cblxuICAvLyAgIGNvbnN0IGNvdW50ID0gdGhpcy5zaG93Q29udHJvbEVycm9ycyA/IHRoaXMubnVtUGFkZGluZ0Vycm9ycyAtIGVycnMubGVuZ3RoIDogdGhpcy5udW1QYWRkaW5nRXJyb3JzXG4gIC8vICAgaWYgKGNvdW50ID4gMCkge1xuICAvLyAgICAgdGhpcy5fcGFkZGluZ0Vycm9ycyA9IFtdXG4gIC8vICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgLy8gICAgICAgdGhpcy5fcGFkZGluZ0Vycm9ycy5wdXNoKHsgdmFsaWRhdG9yTmFtZTogJ19fcGFkZGluZ19fJywgZXJyb3I6IHt9LCBtZXNzYWdlOiAnJywgZXh0ZXJuYWw6IGZhbHNlIH0pXG4gIC8vICAgICB9XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIHRoaXMuX3BhZGRpbmdFcnJvcnMgPSBbXVxuICAvLyAgIH1cblxuICAvLyAgIHJldHVybiBlcnJzXG4gIC8vIH1cblxuICAvLyBASW5wdXQoKSBtZXNzYWdlczogYW55ID0ge31cbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRvck5hbWUgPSBmYWxzZVxuXG4gIEBJbnB1dCgpIG51bVBhZGRpbmdFcnJvcnMgPSAxXG5cbiAgLy8gcHJpdmF0ZSBlcnJvclRwbDogVGVtcGxhdGVSZWY8YW55PlxuXG4gIC8vIHByaXZhdGUgX2xpc3RJdGVtVHBsczogUXVlcnlMaXN0PEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmU+XG4gIC8vIHByaXZhdGUgbGlzdEl0ZW1UcGxzT2JqID0ge31cblxuICBAQ29udGVudENoaWxkcmVuKEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmUpXG4gIHNldCBfbGlzdEl0ZW1UcGxzKHZhbDogUXVlcnlMaXN0PEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmU+KSB7XG4gICAgdGhpcy5faW5pdEVycm9yVGVtcGxhdGVzKHZhbClcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBsaXN0SXRlbVRwbHModmFsOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkRXJyb3JMaXN0SXRlbVRwbERpcmVjdGl2ZT4pIHtcbiAgICB0aGlzLl9pbml0RXJyb3JUZW1wbGF0ZXModmFsKVxuXG4gICAgLy8gZm9yIChjb25zdCB2IG9mIHZhbC50b0FycmF5KCkpIHtcbiAgICAvLyAgIGlmICh2LnZhbGlkYXRvck5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vICAgICB0aGlzLmxpc3RJdGVtVHBsc09ialt2LnZhbGlkYXRvck5hbWVdID0gdlxuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICAgIC8vIGNvbnN0IHRtcCA9IHZhbC5maW5kKHYgPT4gdi52YWxpZGF0b3JOYW1lID09PSB1bmRlZmluZWQpXG4gICAgLy8gaWYgKHRtcCkge1xuICAgIC8vICAgdGhpcy5lcnJvclRwbCA9IHRtcC50ZW1wbGF0ZVxuICAgIC8vIH1cblxuICAgIC8vIHRoaXMuX2xpc3RJdGVtVHBscyA9IHZhbFxuICB9XG5cbiAgLy8gZ2V0IGxpc3RJdGVtVHBscygpOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkRXJyb3JMaXN0SXRlbVRwbERpcmVjdGl2ZT4ge1xuICAvLyAgIHJldHVybiB0aGlzLl9saXN0SXRlbVRwbHNcbiAgLy8gfVxuXG4gIEBJbnB1dCgpIG1heEVycm9ycyA9IC0xXG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlIHwgQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkIHwgbnVsbCB7IHJldHVybiB0aGlzLl9jb250cm9sIH1cbiAgc2V0IGNvbnRyb2wodmFsdWU6IEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSB8IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICB0aGlzLl9jb250cm9sID0gdmFsdWVcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2luaXRDb250cm9sTGlzdGVuZXJzKHZhbHVlKVxuICAgIH1cbiAgfVxuICBwcml2YXRlIF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCBBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VTdWIgPSBTdWJzY3JpcHRpb24uRU1QVFlcbiAgcHJpdmF0ZSBfZXJyb3JUcGxzQ2hhbmdlU3ViID0gU3Vic2NyaXB0aW9uLkVNUFRZXG5cbiAgcHJpdmF0ZSBfY29udHJvbEVycm9ycyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUVycm9yUmVjb3JkW10+KFtdKVxuICBwcml2YXRlIF9lcnJvclRwbHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElFcnJvclJlY29yZFtdPihbXSlcbiAgcHJpdmF0ZSBfZXJyb3JJbnB1dCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUVycm9yUmVjb3JkW10+KFtdKVxuXG4gIHByaXZhdGUgX3Nob3dDb250cm9sRXJyb3JzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgcHVibGljIGRpc3BsYXlSZWNvcmRzJDogT2JzZXJ2YWJsZTxJRXJyb3JSZWNvcmRbXT5cbiAgcHVibGljIHNob3dDb250cm9sRXJyb3JzJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIHByaXZhdGUgX3Nob3dFcnJvcnMgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgc2V0IHNob3dFcnJvcnModmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0Vycm9ycyA9IHZhbFxuICB9XG5cbiAgZ2V0IHNob3dFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgbGV0IHNob3cgPSB0aGlzLl9zaG93RXJyb3JzXG5cbiAgICBpZiAoc2hvdyAmJiB0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGlmICh0aGlzLm51bVBhZGRpbmdFcnJvcnMgPiAwKSB7XG4gICAgICAgIHNob3cgPSB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaG93ID0gISEodGhpcy5jb250cm9sLmludmFsaWQgJiYgKHRoaXMuY29udHJvbC5kaXJ0eSB8fCB0aGlzLmNvbnRyb2wudG91Y2hlZCkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNob3dcbiAgfVxuXG4gIGdldCBzaG93Q29udHJvbEVycm9ycygpOiBib29sZWFuIHtcbiAgICBsZXQgc2hvdyA9IGZhbHNlXG4gICAgaWYgKHRoaXMuY29udHJvbCAmJiB0aGlzLnNob3dFcnJvcnMpIHtcbiAgICAgIHNob3cgPSAhISh0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiAodGhpcy5jb250cm9sLmRpcnR5IHx8IHRoaXMuY29udHJvbC50b3VjaGVkKSlcbiAgICB9XG5cbiAgICByZXR1cm4gc2hvd1xuICB9XG5cbiAgcHVibGljIGVycm9yUmVjb3JkcyQ6IE9ic2VydmFibGU8SUVycm9yUmVjb3JkW10+XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zaG93Q29udHJvbEVycm9ycyQgPSB0aGlzLl9zaG93Q29udHJvbEVycm9yc1N1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAucGlwZShzaGFyZVJlcGxheSgxKSlcblxuICAgIHRoaXMuZXJyb3JSZWNvcmRzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2NvbnRyb2xFcnJvcnMsIHRoaXMuX2Vycm9yVHBscywgdGhpcy5fZXJyb3JJbnB1dF0pXG4gICAgICAucGlwZShtYXAoKFtjdHJsRXJycywgZXJyVHBscywgZXJyb3JJbnB1dF0pID0+IHRoaXMuX2NvbXBvc2VFcnJvcklucHV0cyhjdHJsRXJycywgZXJyVHBscywgZXJyb3JJbnB1dCkpKVxuICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpXG5cbiAgICB0aGlzLmRpc3BsYXlSZWNvcmRzJCA9IHRoaXMuZXJyb3JSZWNvcmRzJFxuICAgICAgLnBpcGUobWFwKHJlY29yZHMgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0UmVjb3JkczogSUVycm9yUmVjb3JkW10gPSBbXVxuXG4gICAgICAgIGlmICghdGhpcy5zaG93RXJyb3JzKSB7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZXJycyA9IFsgLi4ucmVjb3JkcyBdXG5cbiAgICAgICAgICBpZiAodGhpcy5tYXhFcnJvcnMgPj0gMCkge1xuICAgICAgICAgICAgZXJycyA9IGVycnMuc2xpY2UoMCwgdGhpcy5tYXhFcnJvcnMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLnNob3dDb250cm9sRXJyb3JzID8gdGhpcy5udW1QYWRkaW5nRXJyb3JzIC0gZXJycy5sZW5ndGggOiB0aGlzLm51bVBhZGRpbmdFcnJvcnNcbiAgICAgICAgICBjb25zdCBwYWRkaW5nRXJyb3JzOiBJRXJyb3JSZWNvcmRbXSA9IFtdXG4gICAgICAgICAgaWYgKGNvdW50ID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgIHBhZGRpbmdFcnJvcnMucHVzaCh7IHZhbGlkYXRvck5hbWU6ICdfX3BhZGRpbmdfXycsIGVycm9yOiB7fSwgbWVzc2FnZTogJycsIGV4dGVybmFsOiBmYWxzZSB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnNob3dDb250cm9sRXJyb3JzKSB7XG4gICAgICAgICAgICByZXN1bHRSZWNvcmRzID0gWyAuLi5lcnJzLCAuLi5wYWRkaW5nRXJyb3JzIF1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0UmVjb3JkcyA9IFsgLi4ucGFkZGluZ0Vycm9ycyBdXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFJlY29yZHNcbiAgICAgIH0pKVxuICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpXG4gIH1cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKClcbiAgICB0aGlzLl9lcnJvclRwbHNDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIHRoaXMuX3Nob3dDb250cm9sRXJyb3JzU3ViamVjdC5uZXh0KHRoaXMuc2hvd0NvbnRyb2xFcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF9pbml0Q29udHJvbExpc3RlbmVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcbiAgICAvLyBVbnN1YnNjcmliZSBmcm9tIG9sZCBjb250cm9sIGNoYW5nZXNcbiAgICBpZiAodGhpcy5fdmFsdWVDaGFuZ2VTdWIgJiYgIXRoaXMuX3ZhbHVlQ2hhbmdlU3ViLmNsb3NlZCkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKVxuICAgIH1cblxuICAgIGlmIChjb250cm9sLnZhbHVlQ2hhbmdlcyAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VTdWIgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNob3dDb250cm9sRXJyb3JzJCwgY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSldKVxuICAgICAgICAucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSlcbiAgICAgICAgLnN1YnNjcmliZShfID0+IHRoaXMuX3VwZGF0ZUNvbnRyb2xFcnJvcnMoY29udHJvbC5lcnJvcnMpKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXRDb250cm9sRXJyb3JzKFtdKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNvbnRyb2xFcnJvcnMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IGVycnM6IElFcnJvclJlY29yZFtdID0gW11cbiAgICBmb3IgKGNvbnN0IHZhbGlkYXRvck5hbWUgaW4gZXJyb3JzKSB7XG4gICAgICBpZiAoZXJyb3JzLmhhc093blByb3BlcnR5KHZhbGlkYXRvck5hbWUpKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXJyb3JzW3ZhbGlkYXRvck5hbWVdXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLl9wYXJzZU1lc3NhZ2UodGhpcy5fZGVmYXVsdE1lc3NhZ2VzW3ZhbGlkYXRvck5hbWVdLCBlcnJvcilcbiAgICAgICAgY29uc3QgZXh0ZXJuYWwgPSBmYWxzZVxuICAgICAgICBlcnJzLnB1c2goeyB2YWxpZGF0b3JOYW1lLCBlcnJvciwgbWVzc2FnZSwgZXh0ZXJuYWwgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fc2V0Q29udHJvbEVycm9ycyhlcnJzKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0Q29udHJvbEVycm9ycyhlcnJvcnM6IElFcnJvclJlY29yZFtdKSB7XG4gICAgdGhpcy5fY29udHJvbEVycm9ycy5uZXh0KGVycm9ycylcbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlTWVzc2FnZShtZXNzYWdlOiBhbnksIGVycm9yOiBhbnkpIHtcbiAgICBpZiAoIW1lc3NhZ2UpIHsgcmV0dXJuIH1cblxuICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBtZXNzYWdlXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIG1lc3NhZ2UoZXJyb3IpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEVycm9yVGVtcGxhdGVzKHRwbHNRdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxGb3JtRmllbGRFcnJvckxpc3RJdGVtVHBsRGlyZWN0aXZlPikge1xuICAgIGlmICh0aGlzLl9lcnJvclRwbHNDaGFuZ2VTdWIgJiYgIXRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1Yi5jbG9zZWQpIHtcbiAgICAgIHRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1Yi51bnN1YnNjcmliZSgpXG4gICAgfVxuXG4gICAgaWYgKHRwbHNRdWVyeUxpc3QpIHtcbiAgICAgIHRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1YiA9IHRwbHNRdWVyeUxpc3QuY2hhbmdlc1xuICAgICAgICAucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSlcbiAgICAgICAgLnN1YnNjcmliZShfID0+IHRoaXMuX3VwZGF0ZUVycm9yVGVtcGxhdGVzKHRwbHNRdWVyeUxpc3QudG9BcnJheSgpKSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc2V0RXJyb3JUZW1wbGF0ZXMoW10pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRXJyb3JUZW1wbGF0ZXModHBsc0xpc3Q6IEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmVbXSk6IHZvaWQge1xuICAgIGNvbnN0IGVycnM6IElFcnJvclJlY29yZFtdID0gW11cbiAgICBmb3IgKGNvbnN0IHRwbCBvZiB0cGxzTGlzdCkge1xuICAgICAgaWYgKHRwbC52YWxpZGF0b3JOYW1lICE9PSB1bmRlZmluZWQgJiYgdHBsLnZhbGlkYXRvck5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgZXJycy5wdXNoKHtcbiAgICAgICAgICB2YWxpZGF0b3JOYW1lOiB0cGwudmFsaWRhdG9yTmFtZSxcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICB0ZW1wbGF0ZTogdHBsLnRlbXBsYXRlLFxuICAgICAgICAgIGV4dGVybmFsOiAhIXRwbC5leHRlcm5hbFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhpcy5lcnJvclRwbCA9IHRwbC50ZW1wbGF0ZVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9zZXRFcnJvclRlbXBsYXRlcyhlcnJzKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RXJyb3JUZW1wbGF0ZXMoZXJyb3JUcGxzOiBJRXJyb3JSZWNvcmRbXSk6IHZvaWQge1xuICAgIHRoaXMuX2Vycm9yVHBscy5uZXh0KGVycm9yVHBscylcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRFcnJvcklucHV0KGVycm9yczogSUVycm9yUmVjb3JkW10pOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVFcnJvcklucHV0cyhlcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVFcnJvcklucHV0cyhlcnJvcnM6IElFcnJvclJlY29yZFtdKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0RXJyb3JJbnB1dChlcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF9zZXRFcnJvcklucHV0KGVycm9yczogSUVycm9yUmVjb3JkW10pOiB2b2lkIHtcbiAgICB0aGlzLl9lcnJvcklucHV0Lm5leHQoZXJyb3JzKVxuICB9XG5cbiAgcHJpdmF0ZSBfY29tcG9zZUVycm9ySW5wdXRzKFxuICAgIGNvbnRyb2xFcnJvcnM6IElFcnJvclJlY29yZFtdLFxuICAgIGVycm9yVGVtcGxhdGVzOiBJRXJyb3JSZWNvcmRbXSxcbiAgICBlcnJvcklucHV0OiBJRXJyb3JSZWNvcmRbXVxuICApOiBJRXJyb3JSZWNvcmRbXSB7XG4gICAgY29uc3QgZXJyczogSUVycm9yUmVjb3JkW10gPSBbXVxuXG4gICAgY29uc3QgZXJyc01hcDogeyBbbmFtZTogc3RyaW5nXTogSUVycm9yUmVjb3JkIH0gPSB7fVxuXG4gICAgZm9yIChjb25zdCBlcnIgb2YgY29udHJvbEVycm9ycykge1xuICAgICAgaWYgKGVyci5tZXNzYWdlIHx8IGVyci50ZW1wbGF0ZSkge1xuICAgICAgICBlcnJzTWFwW2Vyci52YWxpZGF0b3JOYW1lXSA9IGVyclxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZXJyIG9mIGVycm9ySW5wdXQpIHtcbiAgICAgIGlmIChlcnIubWVzc2FnZSB8fCBlcnIudGVtcGxhdGUpIHtcbiAgICAgICAgZXJyc01hcFtlcnIudmFsaWRhdG9yTmFtZV0gPSBlcnJcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGVyciBvZiBlcnJvclRlbXBsYXRlcykge1xuICAgICAgaWYgKGVyci5tZXNzYWdlIHx8IGVyci50ZW1wbGF0ZSkge1xuICAgICAgICBlcnJzTWFwW2Vyci52YWxpZGF0b3JOYW1lXSA9IGVyclxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgdmFsaWRhdG9yTmFtZSBpbiBlcnJzTWFwKSB7XG4gICAgICBpZiAoZXJyc01hcC5oYXNPd25Qcm9wZXJ0eSh2YWxpZGF0b3JOYW1lKSkge1xuICAgICAgICBlcnJzLnB1c2goZXJyc01hcFt2YWxpZGF0b3JOYW1lXSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sXG4gICAgaWYgKCFjb250cm9sKSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyc1xuICAgICAgLmZpbHRlcihlcnIgPT4gdGhpcy5faXNFcnJvclZhbGlkYXRvcihjb250cm9sLmVycm9ycywgZXJyLnZhbGlkYXRvck5hbWUpKVxuICAgICAgLmZpbHRlcihlcnIgPT4gIWVyci5leHRlcm5hbClcbiAgICAgIC5tYXAoZXJyID0+ICh7XG4gICAgICAgIC4uLmVycixcbiAgICAgICAgZXJyb3I6IGNvbnRyb2wuZXJyb3JzID8gY29udHJvbC5lcnJvcnNbZXJyLnZhbGlkYXRvck5hbWVdIDogbnVsbCxcbiAgICAgICAgX2Vycm9yczogY29udHJvbC5lcnJvcnNcbiAgICAgIH0gYXMgSUVycm9yUmVjb3JkKSlcbiAgfVxuXG4gIHByaXZhdGUgX2lzRXJyb3JWYWxpZGF0b3IoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCwgdmFsaWRhdG9yTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFlcnJvcnMpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBjb25zdCBhcnIgPSB2YWxpZGF0b3JOYW1lLnNwbGl0KCcgJykuZmlsdGVyKHYgPT4gdi50cmltKCkubGVuZ3RoID4gMClcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXJyKSB7XG4gICAgICBpZiAoZXJyb3JzLmhhc093blByb3BlcnR5KGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJlY29yZCBvZiBkaXNwbGF5UmVjb3JkcyQgfCBhc3luY1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVjb3JkLnRlbXBsYXRlOyBlbHNlIG5vVGVtcGxhdGVcIj5cbiAgICA8ZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlY29yZC50ZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcmVjb3JkLmVycm9yLCBlcnJvcnM6IHJlY29yZC5fZXJyb3JzIH1cIj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI25vVGVtcGxhdGU+XG4gICAgPHNlYW0tZm9ybS1maWVsZC1lcnJvclxuICAgICAgW3ZhbGlkYXRvck5hbWVdPVwicmVjb3JkLnZhbGlkYXRvck5hbWVcIlxuICAgICAgW21lc3NhZ2VdPVwicmVjb3JkLm1lc3NhZ2VcIlxuICAgICAgW3Nob3dWYWxpZGF0b3JOYW1lXT1cInNob3dWYWxpZGF0b3JOYW1lXCI+XG4gICAgPC9zZWFtLWZvcm0tZmllbGQtZXJyb3I+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|