@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1218-c → 1.5.1218-e
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/assets/i18n/en.json +113 -0
- package/assets/i18n/es.json +113 -0
- package/assets/styles/main.min.css +1 -1
- package/assets/styles/main.min.css.map +1 -1
- package/esm2022/assets/i18n/en.json +113 -0
- package/esm2022/assets/i18n/es.json +113 -0
- package/esm2022/lib/components/bmb-academic-progress/bmb-academic-progress.component.mjs +2 -2
- package/esm2022/lib/components/bmb-accordion/bmb-accordion.component.mjs +2 -2
- package/esm2022/lib/components/bmb-account-statement/bmb-account-statement.component.mjs +21 -19
- package/esm2022/lib/components/bmb-advertisement-card/bmb-advertisement-card.component.mjs +6 -4
- package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-empty/bmb-alert-center-empty.component.mjs +4 -3
- package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-form/bmb-alert-center-form.component.mjs +2 -2
- package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-list/bmb-alert-center-list.component.mjs +2 -2
- package/esm2022/lib/components/bmb-alert-center/bmb-alert-center.component.mjs +11 -10
- package/esm2022/lib/components/bmb-balance-overview/bmb-balance-overview.component.mjs +15 -9
- package/esm2022/lib/components/bmb-breadcrumb/bmb-breadcrumb.component.mjs +3 -3
- package/esm2022/lib/components/bmb-calendar/bmb-calendar.component.mjs +17 -15
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-header/bmb-calendar-header.component.mjs +19 -13
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-hour-view/bmb-calendar-hour-view.component.mjs +2 -2
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-schedule-cards/bmb-calendar-schedule-cards.component.mjs +3 -3
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-day/bmb-calendar-template-day.component.mjs +9 -7
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.mjs +16 -12
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-month/bmb-calendar-template-month.component.mjs +12 -10
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-week/bmb-calendar-template-week.component.mjs +10 -8
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-time-indicator/bmb-calendar-time-indicator.component.mjs +3 -3
- package/esm2022/lib/components/bmb-card/bmb-card.component.mjs +3 -3
- package/esm2022/lib/components/bmb-card-button/bmb-card-button.component.mjs +3 -3
- package/esm2022/lib/components/bmb-chat-bar/bmb-chat-bar.component.mjs +7 -6
- package/esm2022/lib/components/bmb-checkbox/bmb-checkbox.component.mjs +3 -3
- package/esm2022/lib/components/bmb-container-button/bmb-container-button.component.mjs +3 -3
- package/esm2022/lib/components/bmb-date-range/bmb-date-range.component.mjs +3 -3
- package/esm2022/lib/components/bmb-datepicker/bmb-datepicker-modal/bmb-datepicker-modal.component.mjs +21 -19
- package/esm2022/lib/components/bmb-datepicker/bmb-datepicker.component.mjs +5 -5
- package/esm2022/lib/components/bmb-digital-id/bmb-digital-id.component.mjs +6 -4
- package/esm2022/lib/components/bmb-drawer-overlay/bmb-drawer-overlay.component.mjs +3 -3
- package/esm2022/lib/components/bmb-dropdown/bmb-dropdown.component.mjs +2 -2
- package/esm2022/lib/components/bmb-dropdown-menu/bmb-dropdown-menu.component.mjs +2 -2
- package/esm2022/lib/components/bmb-dropzone/bmb-dropzone.component.mjs +52 -35
- package/esm2022/lib/components/bmb-evaluation-rubric/bmb-evaluation-rubric.component.mjs +3 -3
- package/esm2022/lib/components/bmb-external-link/bmb-external-link.component.mjs +2 -2
- package/esm2022/lib/components/bmb-fab/bmb-fab.component.mjs +3 -3
- package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.component.mjs +4 -4
- package/esm2022/lib/components/bmb-focus-element/bmb-focus-element.component.mjs +3 -3
- package/esm2022/lib/components/bmb-frequent-apps-selector/bmb-frequent-apps-selector.component.mjs +3 -3
- package/esm2022/lib/components/bmb-grade-value/bmb-grade-value.component.mjs +3 -3
- package/esm2022/lib/components/bmb-grades/bmb-grades.component.mjs +4 -4
- package/esm2022/lib/components/bmb-header-mitec/bmb-header-mitec.component.mjs +9 -4
- package/esm2022/lib/components/bmb-header-mobile/bmb-header-mobile.component.mjs +3 -3
- package/esm2022/lib/components/bmb-hito-card/bmb-hito-card.component.mjs +3 -3
- package/esm2022/lib/components/bmb-home-card/bmb-home-card-header/bmb-home-card-header.component.mjs +5 -5
- package/esm2022/lib/components/bmb-home-card-chat/bmb-home-card-chat.component.mjs +11 -5
- package/esm2022/lib/components/bmb-icon-item/bmb-icon-item.component.mjs +13 -4
- package/esm2022/lib/components/bmb-image/bmb-image.component.mjs +2 -2
- package/esm2022/lib/components/bmb-input/bmb-input-content/bmb-input-content.component.mjs +2 -1
- package/esm2022/lib/components/bmb-input/bmb-input-validator/bmb-input-validator.component.mjs +3 -3
- package/esm2022/lib/components/bmb-input-tags/bmb-input-tags.component.mjs +2 -2
- package/esm2022/lib/components/bmb-invoice/bmb-invoice.component.mjs +3 -3
- package/esm2022/lib/components/bmb-item/bmb-item.component.mjs +3 -3
- package/esm2022/lib/components/bmb-list-group/bmb-list-group-item/bmb-list-group-item.component.mjs +3 -3
- package/esm2022/lib/components/bmb-list-group/bmb-list-group.component.mjs +3 -3
- package/esm2022/lib/components/bmb-loader/bmb-loader.component.mjs +3 -3
- package/esm2022/lib/components/bmb-login/bmb-login.component.mjs +10 -8
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logged/bmb-login-onboarding-logged.component.mjs +3 -3
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-login/bmb-login-onboarding-login.component.mjs +3 -3
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logout/bmb-login-onboarding-logout.component.mjs +3 -3
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-four.component.mjs +2 -2
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step.component.mjs +3 -3
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper.component.mjs +3 -3
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding.component.mjs +24 -9
- package/esm2022/lib/components/bmb-mitec-logo-animation/bmb-mitec-logo-animation.component.mjs +2 -2
- package/esm2022/lib/components/bmb-mobile-templates/bmb-mobile-templates.component.mjs +2 -2
- package/esm2022/lib/components/bmb-modal/bmb-native-modal.component.mjs +4 -4
- package/esm2022/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator-item/bmb-multi-dot-paginator-item.component.mjs +3 -3
- package/esm2022/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator.component.mjs +3 -3
- package/esm2022/lib/components/bmb-navigation-bar/bmb-navigation-bar.component.mjs +2 -2
- package/esm2022/lib/components/bmb-notice-card/bmb-notice-card.component.mjs +6 -4
- package/esm2022/lib/components/bmb-portal/bmb-portal.component.mjs +4 -4
- package/esm2022/lib/components/bmb-portal/bmb-projected-content/bmb-projected-content.component.mjs +3 -3
- package/esm2022/lib/components/bmb-profile/bmb-profile.component.mjs +3 -3
- package/esm2022/lib/components/bmb-progress-bar/bmb-progress-bar.component.mjs +3 -3
- package/esm2022/lib/components/bmb-progress-cirlce/bmb-progress-circle.component.mjs +53 -69
- package/esm2022/lib/components/bmb-progress-cirlce/bmb-progress-circle.interface.mjs +1 -1
- package/esm2022/lib/components/bmb-push-notification/bmb-push-notification-item/bmb-push-notification-item.component.mjs +3 -3
- package/esm2022/lib/components/bmb-push-notification/bmb-push-notification.component.mjs +2 -2
- package/esm2022/lib/components/bmb-radial/bmb-radial.component.mjs +3 -3
- package/esm2022/lib/components/bmb-sidebar/bmb-sidebar.component.mjs +25 -24
- package/esm2022/lib/components/bmb-simple-header/bmb-simple-header.component.mjs +2 -2
- package/esm2022/lib/components/bmb-sounds-card/bmb-sounds-card.component.mjs +3 -3
- package/esm2022/lib/components/bmb-step-progress-bar/bmb-step-progress-bar.component.mjs +15 -11
- package/esm2022/lib/components/bmb-student-activity-card/bmb-student-activity-card.component.mjs +3 -3
- package/esm2022/lib/components/bmb-switch/bmb-switch.component.mjs +6 -4
- package/esm2022/lib/components/bmb-table-lite/bmb-table-lite.component.mjs +564 -0
- package/esm2022/lib/components/bmb-table-lite/bmb-table-lite.interface.mjs +2 -0
- package/esm2022/lib/components/bmb-tables/bmb-tables.component.mjs +3 -3
- package/esm2022/lib/components/bmb-tabs/bmb-tabs.component.mjs +6 -6
- package/esm2022/lib/components/bmb-tags/bmb-tags.component.mjs +5 -4
- package/esm2022/lib/components/bmb-text-link/bmb-text-link.component.mjs +3 -3
- package/esm2022/lib/components/bmb-theme/bmb-theme.component.mjs +2 -2
- package/esm2022/lib/components/bmb-three-cols/bmb-three-cols.component.mjs +2 -2
- package/esm2022/lib/components/bmb-timestream/bmb-timestream-detail/bmb-timestream-detail.component.mjs +3 -3
- package/esm2022/lib/components/bmb-timestream/bmb-timestream.component.mjs +4 -4
- package/esm2022/lib/components/bmb-toast/bmb-toast.component.mjs +3 -3
- package/esm2022/lib/components/bmb-tooltip/bmb-tooltip.component.mjs +6 -3
- package/esm2022/lib/components/bmb-top-bar/bmb-top-bar-item/bmb-top-bar-item.component.mjs +3 -3
- package/esm2022/lib/components/bmb-top-bar/bmb-top-bar-user-section/bmb-top-bar-user-section.component.mjs +3 -3
- package/esm2022/lib/components/bmb-top-bar/bmb-top-bar.component.mjs +3 -3
- package/esm2022/lib/components/bmb-totp/bmb-totp.component.mjs +7 -5
- package/esm2022/lib/components/bmb-user-profile/bmb-user-profile-content/bmb-user-profile-content.component.mjs +4 -4
- package/esm2022/lib/components/bmb-user-profile/bmb-user-profile.component.mjs +17 -11
- package/esm2022/lib/components/bmb-user-summary/bmb-user-summary-content/bmb-user-summary-content.component.mjs +9 -6
- package/esm2022/lib/components/bmb-user-summary/bmb-user-summary.component.mjs +10 -4
- package/esm2022/lib/components/bmb-web-templates/bmb-web-templates.component.mjs +3 -3
- package/esm2022/lib/components/bmb-wheel-menu/bmb-wheel-menu.component.mjs +3 -3
- package/esm2022/lib/directives/bmb-layout/bmb-layout-item.directive.mjs +19 -6
- package/esm2022/lib/directives/bmb-layout/bmb-layout.directive.mjs +11 -6
- package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.mjs +1 -1
- package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout.directive.mjs +2 -2
- package/esm2022/lib/directives/bmb-selector/bmb-selector.directive.mjs +28 -0
- package/esm2022/lib/pipes/translations.mjs +22 -0
- package/esm2022/lib/services/calendar/calendar.service.mjs +51 -0
- package/esm2022/lib/services/modal/native-modal.service.mjs +60 -0
- package/esm2022/lib/services/notification/notification.service.mjs +84 -0
- package/esm2022/lib/services/projection/projection.service.mjs +49 -0
- package/esm2022/lib/services/tabs/tabs.service.mjs +30 -0
- package/esm2022/lib/services/theme/theme.service.mjs +30 -0
- package/esm2022/lib/services/toast/toast.service.mjs +24 -0
- package/esm2022/lib/services/translations/translations.service.mjs +53 -0
- package/esm2022/public-api.mjs +14 -6
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +1486 -486
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
- package/lib/components/bmb-account-statement/bmb-account-statement.component.d.ts +15 -15
- package/lib/components/bmb-alert-center/bmb-alert-center.component.d.ts +4 -2
- package/lib/components/bmb-calendar/bmb-calendar.component.d.ts +7 -6
- package/lib/components/bmb-calendar/common/bmb-calendar-header/bmb-calendar-header.component.d.ts +5 -2
- package/lib/components/bmb-calendar/common/bmb-calendar-template-day/bmb-calendar-template-day.component.d.ts +5 -2
- package/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.d.ts +8 -5
- package/lib/components/bmb-calendar/common/bmb-calendar-template-month/bmb-calendar-template-month.component.d.ts +6 -3
- package/lib/components/bmb-calendar/common/bmb-calendar-template-week/bmb-calendar-template-week.component.d.ts +5 -2
- package/lib/components/bmb-chat-bar/bmb-chat-bar.component.d.ts +2 -3
- package/lib/components/bmb-datepicker/bmb-datepicker-modal/bmb-datepicker-modal.component.d.ts +8 -5
- package/lib/components/bmb-datepicker/bmb-datepicker.component.d.ts +2 -3
- package/lib/components/bmb-digital-id/bmb-digital-id.component.d.ts +1 -1
- package/lib/components/bmb-dropdown/bmb-dropdown.component.d.ts +1 -1
- package/lib/components/bmb-dropdown-menu/bmb-dropdown-menu.component.d.ts +1 -1
- package/lib/components/bmb-dropzone/bmb-dropzone.component.d.ts +11 -7
- package/lib/components/bmb-external-link/bmb-external-link.component.d.ts +1 -1
- package/lib/components/bmb-filter-card/bmb-filter-card.component.d.ts +1 -1
- package/lib/components/bmb-grades/bmb-grades.component.d.ts +1 -1
- package/lib/components/bmb-header-mitec/bmb-header-mitec.component.d.ts +1 -1
- package/lib/components/bmb-home-card-chat/bmb-home-card-chat.component.d.ts +2 -2
- package/lib/components/bmb-icon-item/bmb-icon-item.component.d.ts +2 -1
- package/lib/components/bmb-login/bmb-login.component.d.ts +5 -5
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-four.component.d.ts +1 -1
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding.component.d.ts +3 -1
- package/lib/components/bmb-modal/bmb-native-modal.component.d.ts +1 -1
- package/lib/components/bmb-notice-card/bmb-notice-card.component.d.ts +1 -1
- package/lib/components/bmb-portal/bmb-portal.component.d.ts +5 -5
- package/lib/components/bmb-portal/bmb-projected-content/bmb-projected-content.component.d.ts +1 -1
- package/lib/components/bmb-progress-cirlce/bmb-progress-circle.component.d.ts +25 -19
- package/lib/components/bmb-progress-cirlce/bmb-progress-circle.interface.d.ts +13 -10
- package/lib/components/bmb-push-notification/bmb-push-notification.component.d.ts +1 -1
- package/lib/components/bmb-sidebar/bmb-sidebar.component.d.ts +5 -4
- package/lib/components/bmb-step-progress-bar/bmb-step-progress-bar.component.d.ts +5 -3
- package/lib/components/bmb-switch/bmb-switch.component.d.ts +1 -1
- package/lib/components/bmb-table-lite/bmb-table-lite.component.d.ts +97 -0
- package/lib/components/bmb-table-lite/bmb-table-lite.interface.d.ts +22 -0
- package/lib/components/bmb-tabs/bmb-tabs.component.d.ts +1 -1
- package/lib/components/bmb-tags/bmb-tags.component.d.ts +2 -1
- package/lib/components/bmb-timestream/bmb-timestream.component.d.ts +1 -1
- package/lib/components/bmb-tooltip/bmb-tooltip.component.d.ts +1 -0
- package/lib/components/bmb-totp/bmb-totp.component.d.ts +2 -2
- package/lib/components/bmb-user-profile/bmb-user-profile.component.d.ts +3 -3
- package/lib/components/bmb-user-summary/bmb-user-summary-content/bmb-user-summary-content.component.d.ts +4 -2
- package/lib/components/bmb-user-summary/bmb-user-summary.component.d.ts +1 -1
- package/lib/directives/bmb-layout/bmb-layout-item.directive.d.ts +5 -1
- package/lib/directives/bmb-layout/bmb-layout.directive.d.ts +2 -2
- package/lib/directives/bmb-selector/bmb-selector.directive.d.ts +8 -0
- package/lib/pipes/translations.d.ts +10 -0
- package/lib/services/calendar/calendar.service.d.ts +15 -0
- package/lib/services/modal/native-modal.service.d.ts +18 -0
- package/lib/services/notification/notification.service.d.ts +20 -0
- package/lib/services/projection/projection.service.d.ts +31 -0
- package/lib/services/tabs/tabs.service.d.ts +13 -0
- package/lib/services/theme/theme.service.d.ts +11 -0
- package/lib/services/toast/toast.service.d.ts +9 -0
- package/lib/services/translations/translations.service.d.ts +22 -0
- package/package.json +1 -1
- package/public-api.d.ts +12 -5
|
@@ -10,7 +10,7 @@ import { getUUID } from '../../utils/utils';
|
|
|
10
10
|
import { assignNewFormControl, handleValidity, newFormControlByType, showError, } from '../../utils/formControl';
|
|
11
11
|
import { BmbInputValidatorComponent } from '../bmb-input/bmb-input-validator/bmb-input-validator.component';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "../../services/projection.service";
|
|
13
|
+
import * as i1 from "../../services/projection/projection.service";
|
|
14
14
|
import * as i2 from "@angular/forms";
|
|
15
15
|
export class BmbDropdownComponent {
|
|
16
16
|
constructor(projectionService) {
|
|
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
174
174
|
type: ViewChild,
|
|
175
175
|
args: ['contentDiv', { static: true }]
|
|
176
176
|
}] } });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcGRvd24vYm1iLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcGRvd24vYm1iLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIscUJBQXFCLEdBQ3RCLE1BQU0sc0JBQXNCLENBQUM7QUFLOUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFFM0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLFNBQVMsR0FDVixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxN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LElBQUksZUFBZTtRQUNqQixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQTVMVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixnOEZDL0RqQywwNkNBb0RBLHdSREFJLFlBQVksK0JBQ1osZ0JBQWdCLDZKQUNoQixtQkFBbUIsMGtCQUNuQiwwQkFBMEIscWJBQzFCLHdCQUF3Qjs7NEZBT2Ysb0JBQW9CO2tCQWZoQyxTQUFTOytCQUNFLGNBQWMsY0FDWixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3dCQUMxQix3QkFBd0I7cUJBQ3pCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO2dHQXVDTSxVQUFVO3NCQUFwRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgbW9kZWwsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbiAgY29tcHV0ZWQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCbWJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWljb24vYm1iLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIGNvbnZlcnRMaXN0VG9TZWxlY3RMaXN0LFxuICBnZXRTZWxlY3RlZFZhbHVlcyxcbiAgZ2V0VmFsaWRJbml0aWFsVmFsdWVzLFxufSBmcm9tICcuLi8uLi91dGlscy9kcm9wZG93bic7XG5pbXBvcnQge1xuICBJQm1iSW5wdXRFcnJvcixcbiAgSUJtYklucHV0VG9vbHRpcFBvc2l0aW9uLFxufSBmcm9tICcuLi9ibWItaW5wdXQvYm1iLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJEcm9wZG93bkNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi91dGlscy9ibWItZHJvcGRvd24tY29udGVudC9ibWItZHJvcGRvd24tY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSURyb3Bkb3duSXRlbSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJtYklucHV0Q29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQtY29udGVudC9ibWItaW5wdXQtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXRVVUlEIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHtcbiAgYXNzaWduTmV3Rm9ybUNvbnRyb2wsXG4gIGhhbmRsZVZhbGlkaXR5LFxuICBuZXdGb3JtQ29udHJvbEJ5VHlwZSxcbiAgc2hvd0Vycm9yLFxufSBmcm9tICcuLi8uLi91dGlscy9mb3JtQ29udHJvbCc7XG5pbXBvcnQgeyBCbWJJbnB1dFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQtdmFsaWRhdG9yL2JtYi1pbnB1dC12YWxpZGF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEJtYlByb2plY3Rpb25Db250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2plY3Rpb24uc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJtYkRyb3Bkb3duSXRlbSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgc2VsZWN0ZWRUZXh0Pzogc3RyaW5nOyAvL2ludGVybmFsXG4gIGljb24/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdibWItZHJvcGRvd24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJtYkljb25Db21wb25lbnQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBCbWJJbnB1dFZhbGlkYXRvckNvbXBvbmVudCxcbiAgICBCbWJJbnB1dENvbnRlbnRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYm1iLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEJtYkRyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICByZXF1aXJlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgc2hvd0ljb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIGljb24gPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgb3B0aW9ucyA9IGlucHV0PHN0cmluZ1tdIHwgSUJtYkRyb3Bkb3duSXRlbVtdPihbXSk7XG4gIGhlbHBlclRleHQgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgZXJyb3JNZXNzYWdlID0gaW5wdXQ8c3RyaW5nIHwgSUJtYklucHV0RXJyb3I+KCcnKTtcbiAgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgbmFtZSA9IGlucHV0PHN0cmluZz4oZ2V0VVVJRCgpKTtcbiAgcHJlZmVycmVkT3B0aW9ucyA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIGlzTXVsdGlTZWxlY3QgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHRvb2x0aXAgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgdG9vbHRpcFBvc2l0aW9uID0gaW5wdXQ8SUJtYklucHV0VG9vbHRpcFBvc2l0aW9uPih7XG4gICAgYWxpZ246ICdhYm92ZScsXG4gICAganVzdGlmeTogJ2JlZm9yZScsXG4gIH0pO1xuICBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdmFsdWUgPSBpbnB1dDxzdHJpbmcgfCBzdHJpbmdbXT4oJycpO1xuICBpc0ZpbHRlcmFibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGlucHV0SWQgPSBpbnB1dDxzdHJpbmc+KHRoaXMubmFtZSgpKTtcbiAgY3VzdG9tVmFsaWRhdGlvbiA9IGlucHV0PFZhbGlkYXRvckZuPigpO1xuXG4gIGNvbnRyb2wgPSBtb2RlbDxGb3JtQ29udHJvbD4obmV3Rm9ybUNvbnRyb2xCeVR5cGUoKSk7XG5cbiAgb25WYWx1ZUNoYW5nZSA9IG91dHB1dDxhbnk+KCk7XG4gIG9uRm9jdXMgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcblxuICB1dWlkOiBzdHJpbmcgPSBnZXRVVUlEKCk7XG4gIGlzTW9kYWxPcGVuID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBzZWxlY3Rpb25Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChuZXcgRm9ybUNvbnRyb2woKSk7XG4gIHNlbGVjdGVkSWNvbjogc3RyaW5nID0gJyc7XG4gIGlzS2V5Ym9hcmRFdmVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0NvbnRyb2xOdWxsOiBib29sZWFuID0gZmFsc2U7XG4gIHBhcnNlZE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmluaXRPcHRpb25zKHRoaXMub3B0aW9ucygpKSk7XG4gIHNlbGVjdGVkSXRlbTogSURyb3Bkb3duSXRlbSB8IG51bGwgPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnREaXYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50UmVmITogRWxlbWVudFJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvamVjdGlvblNlcnZpY2U6IEJtYlByb2plY3Rpb25Db250ZW50U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbCgpKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0KGFzc2lnbk5ld0Zvcm1Db250cm9sKHRoaXMubmFtZSgpLCB0aGlzLmNvbnRyb2woKSkhKTtcbiAgICAgIHRoaXMuaXNDb250cm9sTnVsbCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzTXVsdGlTZWxlY3QoKSAmJiBBcnJheS5pc0FycmF5KHRoaXMuY29udHJvbCgpPy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuY29udHJvbCgpLnNldFZhbHVlKCcnKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRyb2woKVxuICAgICAgPy52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5nZXRWYWxpZEluaXRpYWxWYWx1ZXMoKSkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGlvbkNvbnRyb2wodmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29udHJvbCgpICE9PSBudWxsKSB7XG4gICAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XG4gICAgICAgIHRoaXMuY29udHJvbCgpLnNldFZhbHVlKHRoaXMuZ2V0VmFsaWRJbml0aWFsVmFsdWVzKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGluaXRPcHRpb25zKGxpc3Q6IHN0cmluZ1tdIHwgSUJtYkRyb3Bkb3duSXRlbVtdKTogSURyb3Bkb3duSXRlbVtdIHtcbiAgICBjb25zdCBuZXdJdGVtcyA9IGNvbnZlcnRMaXN0VG9TZWxlY3RMaXN0KFxuICAgICAgbGlzdCxcbiAgICAgIHRoaXMuaWNvbigpLFxuICAgICAgdGhpcy5zaG93SWNvbigpLFxuICAgICk7XG5cbiAgICBsZXQgcGFyc2VkSXRlbXMgPSBuZXdJdGVtcy5tYXAoKGVsZW1lbnQ6IElEcm9wZG93bkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmVsZW1lbnQsXG4gICAgICAgIGljb246ICF0aGlzLmlzTXVsdGlTZWxlY3QoKSAmJiB0aGlzLnNob3dJY29uKCkgPyBlbGVtZW50Lmljb24hIDogJycsXG4gICAgICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZShlbGVtZW50KTtcbiAgICAgICAgICB0aGlzLnByb2plY3Rpb25TZXJ2aWNlLmNsb3NlQ29udGVudCgpO1xuICAgICAgICB9LFxuICAgICAgfSBhcyBJRHJvcGRvd25JdGVtO1xuICAgIH0pO1xuXG4gICAgaWYgKCEhdGhpcy5wcmVmZXJyZWRPcHRpb25zKCkubGVuZ3RoKSB7XG4gICAgICBjb25zdCBwcmVmZXJyZWRJdGVtczogSURyb3Bkb3duSXRlbVtdID0gcGFyc2VkSXRlbXMuZmlsdGVyKChlbGVtZW50KSA9PlxuICAgICAgICB0aGlzLnByZWZlcnJlZE9wdGlvbnMoKS5pbmNsdWRlcyhlbGVtZW50LnZhbHVlISksXG4gICAgICApO1xuXG4gICAgICBwYXJzZWRJdGVtcyA9IFsuLi5uZXcgU2V0KFsuLi5wcmVmZXJyZWRJdGVtcywgLi4ucGFyc2VkSXRlbXNdKV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnNlZEl0ZW1zO1xuICB9XG5cbiAgaGFuZGxlRm9jdXModmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm9uRm9jdXMuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBnZXRVVUlEKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke25hbWV9XyR7dGhpcy5uYW1lKCl9XyR7dGhpcy51dWlkfWA7XG4gIH1cblxuICBnZXRJY29uKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlzTXVsdGlTZWxlY3QoKSAmJiB0aGlzLnNob3dJY29uKCkpXG4gICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEljb24gfHwgdGhpcy5pY29uKCk7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0VmFsaWRJbml0aWFsVmFsdWVzKCk6IHN0cmluZyB8IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gZ2V0VmFsaWRJbml0aWFsVmFsdWVzKFxuICAgICAgdGhpcy5jb250cm9sKCkudmFsdWUsXG4gICAgICB0aGlzLnZhbHVlKCksXG4gICAgICB0aGlzLm9wdGlvbnMoKSxcbiAgICAgIHRoaXMuaXNNdWx0aVNlbGVjdCgpLFxuICAgICk7XG4gIH1cblxuICBzZXRTZWxlY3Rpb25Db250cm9sKGNvbnRyb2xWYWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAoISFjb250cm9sVmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLmlzTXVsdGlTZWxlY3QoKSkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5wYXJzZWRPcHRpb25zKCkuZmlsdGVyKCh7IHZhbHVlIH0pID0+XG4gICAgICAgICAgY29udHJvbFZhbHVlLmluY2x1ZGVzKHZhbHVlISksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sLnNldFZhbHVlKFxuICAgICAgICAgIHNlbGVjdGVkSXRlbXMubWFwKChlbGVtZW50KSA9PiBgICR7ZWxlbWVudC5zZWxlY3RlZFRleHR9YCksXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMucGFyc2VkT3B0aW9ucygpLmZpbmQoXG4gICAgICAgICh7IHZhbHVlIH0pID0+IHZhbHVlID09PSBjb250cm9sVmFsdWUsXG4gICAgICApO1xuICAgICAgaWYgKCEhaXRlbSkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoaXRlbT8uc2VsZWN0ZWRUZXh0KTtcbiAgICAgICAgaWYgKHRoaXMuc2hvd0ljb24oKSkgdGhpcy5zZWxlY3RlZEljb24gPSBpdGVtLmljb247XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIGlmICh0aGlzLnNob3dJY29uKCkpIHRoaXMuc2VsZWN0ZWRJY29uID0gdGhpcy5pY29uKCk7XG4gIH1cblxuICBzZXRTZWxlY3RlZFZhbHVlKGVsZW1lbnQ6IElEcm9wZG93bkl0ZW0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc011bHRpU2VsZWN0KCkpIHtcbiAgICAgIHRoaXMuY29udHJvbCgpLnNldFZhbHVlKFxuICAgICAgICBnZXRTZWxlY3RlZFZhbHVlcyh0aGlzLmNvbnRyb2woKS52YWx1ZSwgZWxlbWVudC52YWx1ZSEpLFxuICAgICAgKTtcbiAgICB9IGVsc2UgdGhpcy5jb250cm9sKCkuc2V0VmFsdWUoZWxlbWVudC52YWx1ZSEpO1xuXG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQodGhpcy5jb250cm9sKCkudmFsdWUpO1xuICB9XG5cbiAgb3Blbkxpc3QoKTogdm9pZCB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGNvbnRlbnQ6IEJtYkRyb3Bkb3duQ29udGVudENvbXBvbmVudCxcbiAgICAgIHRhcmdldFJlZjogdGhpcy5jb250ZW50UmVmPy5uYXRpdmVFbGVtZW50LFxuICAgICAgZml4U2l6ZVRvUmVmOiB0cnVlLFxuICAgICAgc2hvd0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgIGlucHV0Q29udGV4dDoge1xuICAgICAgICBzZWxlY3RlZE9wdGlvbjogdGhpcy5jb250cm9sKCkudmFsdWUsXG4gICAgICAgIGl0ZW1zOiB0aGlzLnBhcnNlZE9wdGlvbnMoKSxcbiAgICAgICAgaXNLZXlib2FyZEV2ZW50OiB0aGlzLmlzS2V5Ym9hcmRFdmVudCxcbiAgICAgICAgZW5hYmxlRmlsdGVyOiB0aGlzLmlzRmlsdGVyYWJsZSgpLFxuICAgICAgfSxcbiAgICAgIGZvY3VzT25PcGVuOiB0cnVlLFxuICAgIH07XG4gICAgdGhpcy5wcm9qZWN0aW9uU2VydmljZS5vcGVuQ29udGVudChkYXRhKTtcbiAgfVxuXG4gIC8vIEtleWJvYXJkcyBldmVudHNcbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5Ym9hcmRzID0gWycgJywgJ0Fycm93RG93bicsICdEb3duJ107XG5cbiAgICBpZiAoa2V5Ym9hcmRzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIHRoaXMub3Blbkxpc3QoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVWYWxpZGl0eSgpOiB2b2lkIHtcbiAgICBoYW5kbGVWYWxpZGl0eSh0aGlzLmNvbnRyb2woKSk7XG4gIH1cblxuICBnZXQgc2hvdWxkU2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzaG93RXJyb3IodGhpcy5jb250cm9sKCkpO1xuICB9XG59XG4iLCI8Ym1iLWlucHV0LXZhbGlkYXRvclxuICBjbGFzcz1cImJtYl9kcm9wZG93blwiXG4gIFtpbnB1dElkXT1cImlucHV0SWQoKVwiXG4gIFtuYW1lXT1cIm5hbWUoKVwiXG4gIFt2YWx1ZV09XCJnZXRWYWxpZEluaXRpYWxWYWx1ZXMoKVwiXG4gIFtsYWJlbF09XCJsYWJlbCgpIVwiXG4gIFtlcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlKClcIlxuICBbaGVscGVyTWVzc2FnZV09XCJoZWxwZXJUZXh0KClcIlxuICBbaXNSZXF1aXJlZF09XCJyZXF1aXJlZCgpXCJcbiAgW2lzRGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gIFtjb250cm9sXT1cImNvbnRyb2woKVwiXG4gIFtzaG93RXJyb3JdPVwic2hvdWxkU2hvd0Vycm9yXCJcbiAgW3Rvb2x0aXBdPVwidG9vbHRpcCgpXCJcbiAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb24oKVwiXG4gIFtjdXN0b21WYWxpZGF0aW9uXT1cImN1c3RvbVZhbGlkYXRpb24oKVwiXG4+XG4gIDxkaXYgI2NvbnRlbnREaXY+XG4gICAgPGJtYi1pbnB1dC1jb250ZW50XG4gICAgICBjbGFzcz1cImJtYl9kcm9wZG93bi1maWVsZFwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbaW5wdXRJZF09XCJpbnB1dElkKClcIlxuICAgICAgW25hbWVdPVwibmFtZSgpXCJcbiAgICAgIFtpY29uXT1cImdldEljb24oKVwiXG4gICAgICBbY29udHJvbF09XCJzZWxlY3Rpb25Db250cm9sXCJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICAgW2lzRXJyb3JdPVwic2hvdWxkU2hvd0Vycm9yXCJcbiAgICAgIChjbGljayk9XCJvcGVuTGlzdCgpXCJcbiAgICAgIChvbktleURvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgKG9uQmx1cik9XCJoYW5kbGVWYWxpZGl0eSgpXCJcbiAgICAgIChvbkZvY3VzKT1cImhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY3VzdG9tQ29udGVudD5cbiAgICAgICAgPGxhYmVsIFtodG1sRm9yXT1cImlucHV0SWQoKVwiPlxuICAgICAgICAgIDxibWItaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJibWJfZmllbGQtYWN0aW9uc1wiXG4gICAgICAgICAgICBpY29uPVwia2V5Ym9hcmRfYXJyb3dfZG93blwiXG4gICAgICAgICAgICAoY2xpY2spPVwib3Blbkxpc3QoKVwiXG4gICAgICAgICAgICBbc2l6ZV09XCIyNFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9ibWItaW5wdXQtY29udGVudD5cbiAgPC9kaXY+XG4gIDxpbnB1dFxuICAgIGhpZGRlblxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbaWRdPVwiZ2V0VVVJRCgnaWQnKVwiXG4gICAgW25hbWVdPVwibmFtZSgpXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbCgpXCJcbiAgLz5cbjwvYm1iLWlucHV0LXZhbGlkYXRvcj5cbiJdfQ==
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcGRvd24vYm1iLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcGRvd24vYm1iLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIscUJBQXFCLEdBQ3RCLE1BQU0sc0JBQXNCLENBQUM7QUFLOUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFFM0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLFNBQVMsR0FDVixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxN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LElBQUksZUFBZTtRQUNqQixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQTVMVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixnOEZDL0RqQywwNkNBb0RBLHdSREFJLFlBQVksK0JBQ1osZ0JBQWdCLDZKQUNoQixtQkFBbUIsMGtCQUNuQiwwQkFBMEIscWJBQzFCLHdCQUF3Qjs7NEZBT2Ysb0JBQW9CO2tCQWZoQyxTQUFTOytCQUNFLGNBQWMsY0FDWixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3dCQUMxQix3QkFBd0I7cUJBQ3pCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO2dHQXVDTSxVQUFVO3NCQUFwRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgbW9kZWwsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbiAgY29tcHV0ZWQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCbWJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWljb24vYm1iLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIGNvbnZlcnRMaXN0VG9TZWxlY3RMaXN0LFxuICBnZXRTZWxlY3RlZFZhbHVlcyxcbiAgZ2V0VmFsaWRJbml0aWFsVmFsdWVzLFxufSBmcm9tICcuLi8uLi91dGlscy9kcm9wZG93bic7XG5pbXBvcnQge1xuICBJQm1iSW5wdXRFcnJvcixcbiAgSUJtYklucHV0VG9vbHRpcFBvc2l0aW9uLFxufSBmcm9tICcuLi9ibWItaW5wdXQvYm1iLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJEcm9wZG93bkNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi91dGlscy9ibWItZHJvcGRvd24tY29udGVudC9ibWItZHJvcGRvd24tY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSURyb3Bkb3duSXRlbSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJtYklucHV0Q29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQtY29udGVudC9ibWItaW5wdXQtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXRVVUlEIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHtcbiAgYXNzaWduTmV3Rm9ybUNvbnRyb2wsXG4gIGhhbmRsZVZhbGlkaXR5LFxuICBuZXdGb3JtQ29udHJvbEJ5VHlwZSxcbiAgc2hvd0Vycm9yLFxufSBmcm9tICcuLi8uLi91dGlscy9mb3JtQ29udHJvbCc7XG5pbXBvcnQgeyBCbWJJbnB1dFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQtdmFsaWRhdG9yL2JtYi1pbnB1dC12YWxpZGF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEJtYlByb2plY3Rpb25Db250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2plY3Rpb24vcHJvamVjdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBJQm1iRHJvcGRvd25JdGVtIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBzZWxlY3RlZFRleHQ/OiBzdHJpbmc7IC8vaW50ZXJuYWxcbiAgaWNvbj86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JtYi1kcm9wZG93bicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQm1iSWNvbkNvbXBvbmVudCxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEJtYklucHV0VmFsaWRhdG9yQ29tcG9uZW50LFxuICAgIEJtYklucHV0Q29udGVudENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2JtYi1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ibWItZHJvcGRvd24uY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQm1iRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHJlcXVpcmVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBzaG93SWNvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgaWNvbiA9IGlucHV0PHN0cmluZz4oJycpO1xuICBvcHRpb25zID0gaW5wdXQ8c3RyaW5nW10gfCBJQm1iRHJvcGRvd25JdGVtW10+KFtdKTtcbiAgaGVscGVyVGV4dCA9IGlucHV0PHN0cmluZz4oJycpO1xuICBlcnJvck1lc3NhZ2UgPSBpbnB1dDxzdHJpbmcgfCBJQm1iSW5wdXRFcnJvcj4oJycpO1xuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oJycpO1xuICBuYW1lID0gaW5wdXQ8c3RyaW5nPihnZXRVVUlEKCkpO1xuICBwcmVmZXJyZWRPcHRpb25zID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcbiAgaXNNdWx0aVNlbGVjdCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdG9vbHRpcCA9IGlucHV0PHN0cmluZz4oJycpO1xuICB0b29sdGlwUG9zaXRpb24gPSBpbnB1dDxJQm1iSW5wdXRUb29sdGlwUG9zaXRpb24+KHtcbiAgICBhbGlnbjogJ2Fib3ZlJyxcbiAgICBqdXN0aWZ5OiAnYmVmb3JlJyxcbiAgfSk7XG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICB2YWx1ZSA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPignJyk7XG4gIGlzRmlsdGVyYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaW5wdXRJZCA9IGlucHV0PHN0cmluZz4odGhpcy5uYW1lKCkpO1xuICBjdXN0b21WYWxpZGF0aW9uID0gaW5wdXQ8VmFsaWRhdG9yRm4+KCk7XG5cbiAgY29udHJvbCA9IG1vZGVsPEZvcm1Db250cm9sPihuZXdGb3JtQ29udHJvbEJ5VHlwZSgpKTtcblxuICBvblZhbHVlQ2hhbmdlID0gb3V0cHV0PGFueT4oKTtcbiAgb25Gb2N1cyA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gIHV1aWQ6IHN0cmluZyA9IGdldFVVSUQoKTtcbiAgaXNNb2RhbE9wZW4gPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XG4gIHNlbGVjdGlvbkNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKG5ldyBGb3JtQ29udHJvbCgpKTtcbiAgc2VsZWN0ZWRJY29uOiBzdHJpbmcgPSAnJztcbiAgaXNLZXlib2FyZEV2ZW50OiBib29sZWFuID0gZmFsc2U7XG4gIGlzQ29udHJvbE51bGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGFyc2VkT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5pdE9wdGlvbnModGhpcy5vcHRpb25zKCkpKTtcbiAgc2VsZWN0ZWRJdGVtOiBJRHJvcGRvd25JdGVtIHwgbnVsbCA9IG51bGw7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudERpdicsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRlbnRSZWYhOiBFbGVtZW50UmVmPGFueT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwcm9qZWN0aW9uU2VydmljZTogQm1iUHJvamVjdGlvbkNvbnRlbnRTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5jb250cm9sKCkpIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXQoYXNzaWduTmV3Rm9ybUNvbnRyb2wodGhpcy5uYW1lKCksIHRoaXMuY29udHJvbCgpKSEpO1xuICAgICAgdGhpcy5pc0NvbnRyb2xOdWxsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNNdWx0aVNlbGVjdCgpICYmIEFycmF5LmlzQXJyYXkodGhpcy5jb250cm9sKCk/LnZhbHVlKSkge1xuICAgICAgdGhpcy5jb250cm9sKCkuc2V0VmFsdWUoJycpO1xuICAgIH1cblxuICAgIHRoaXMuY29udHJvbCgpXG4gICAgICA/LnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmdldFZhbGlkSW5pdGlhbFZhbHVlcygpKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0aW9uQ29udHJvbCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250cm9sKCkgIT09IG51bGwpIHtcbiAgICAgIGlmIChjaGFuZ2VzWydvcHRpb25zJ10pIHtcbiAgICAgICAgdGhpcy5jb250cm9sKCkuc2V0VmFsdWUodGhpcy5nZXRWYWxpZEluaXRpYWxWYWx1ZXMoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5pdE9wdGlvbnMobGlzdDogc3RyaW5nW10gfCBJQm1iRHJvcGRvd25JdGVtW10pOiBJRHJvcGRvd25JdGVtW10ge1xuICAgIGNvbnN0IG5ld0l0ZW1zID0gY29udmVydExpc3RUb1NlbGVjdExpc3QoXG4gICAgICBsaXN0LFxuICAgICAgdGhpcy5pY29uKCksXG4gICAgICB0aGlzLnNob3dJY29uKCksXG4gICAgKTtcblxuICAgIGxldCBwYXJzZWRJdGVtcyA9IG5ld0l0ZW1zLm1hcCgoZWxlbWVudDogSURyb3Bkb3duSXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgaWNvbjogIXRoaXMuaXNNdWx0aVNlbGVjdCgpICYmIHRoaXMuc2hvd0ljb24oKSA/IGVsZW1lbnQuaWNvbiEgOiAnJyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKGVsZW1lbnQpO1xuICAgICAgICAgIHRoaXMucHJvamVjdGlvblNlcnZpY2UuY2xvc2VDb250ZW50KCk7XG4gICAgICAgIH0sXG4gICAgICB9IGFzIElEcm9wZG93bkl0ZW07XG4gICAgfSk7XG5cbiAgICBpZiAoISF0aGlzLnByZWZlcnJlZE9wdGlvbnMoKS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHByZWZlcnJlZEl0ZW1zOiBJRHJvcGRvd25JdGVtW10gPSBwYXJzZWRJdGVtcy5maWx0ZXIoKGVsZW1lbnQpID0+XG4gICAgICAgIHRoaXMucHJlZmVycmVkT3B0aW9ucygpLmluY2x1ZGVzKGVsZW1lbnQudmFsdWUhKSxcbiAgICAgICk7XG5cbiAgICAgIHBhcnNlZEl0ZW1zID0gWy4uLm5ldyBTZXQoWy4uLnByZWZlcnJlZEl0ZW1zLCAuLi5wYXJzZWRJdGVtc10pXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkSXRlbXM7XG4gIH1cblxuICBoYW5kbGVGb2N1cyh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMub25Gb2N1cy5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIGdldFVVSUQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7bmFtZX1fJHt0aGlzLm5hbWUoKX1fJHt0aGlzLnV1aWR9YDtcbiAgfVxuXG4gIGdldEljb24oKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuaXNNdWx0aVNlbGVjdCgpICYmIHRoaXMuc2hvd0ljb24oKSlcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSWNvbiB8fCB0aGlzLmljb24oKTtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXRWYWxpZEluaXRpYWxWYWx1ZXMoKTogc3RyaW5nIHwgc3RyaW5nW10ge1xuICAgIHJldHVybiBnZXRWYWxpZEluaXRpYWxWYWx1ZXMoXG4gICAgICB0aGlzLmNvbnRyb2woKS52YWx1ZSxcbiAgICAgIHRoaXMudmFsdWUoKSxcbiAgICAgIHRoaXMub3B0aW9ucygpLFxuICAgICAgdGhpcy5pc011bHRpU2VsZWN0KCksXG4gICAgKTtcbiAgfVxuXG4gIHNldFNlbGVjdGlvbkNvbnRyb2woY29udHJvbFZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmICghIWNvbnRyb2xWYWx1ZSkge1xuICAgICAgaWYgKHRoaXMuaXNNdWx0aVNlbGVjdCgpKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLnBhcnNlZE9wdGlvbnMoKS5maWx0ZXIoKHsgdmFsdWUgfSkgPT5cbiAgICAgICAgICBjb250cm9sVmFsdWUuaW5jbHVkZXModmFsdWUhKSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcy5tYXAoKGVsZW1lbnQpID0+IGAgJHtlbGVtZW50LnNlbGVjdGVkVGV4dH1gKSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5wYXJzZWRPcHRpb25zKCkuZmluZChcbiAgICAgICAgKHsgdmFsdWUgfSkgPT4gdmFsdWUgPT09IGNvbnRyb2xWYWx1ZSxcbiAgICAgICk7XG4gICAgICBpZiAoISFpdGVtKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5zZXRWYWx1ZShpdGVtPy5zZWxlY3RlZFRleHQpO1xuICAgICAgICBpZiAodGhpcy5zaG93SWNvbigpKSB0aGlzLnNlbGVjdGVkSWNvbiA9IGl0ZW0uaWNvbjtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgaWYgKHRoaXMuc2hvd0ljb24oKSkgdGhpcy5zZWxlY3RlZEljb24gPSB0aGlzLmljb24oKTtcbiAgfVxuXG4gIHNldFNlbGVjdGVkVmFsdWUoZWxlbWVudDogSURyb3Bkb3duSXRlbSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzTXVsdGlTZWxlY3QoKSkge1xuICAgICAgdGhpcy5jb250cm9sKCkuc2V0VmFsdWUoXG4gICAgICAgIGdldFNlbGVjdGVkVmFsdWVzKHRoaXMuY29udHJvbCgpLnZhbHVlLCBlbGVtZW50LnZhbHVlISksXG4gICAgICApO1xuICAgIH0gZWxzZSB0aGlzLmNvbnRyb2woKS5zZXRWYWx1ZShlbGVtZW50LnZhbHVlISk7XG5cbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh0aGlzLmNvbnRyb2woKS52YWx1ZSk7XG4gIH1cblxuICBvcGVuTGlzdCgpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgY29udGVudDogQm1iRHJvcGRvd25Db250ZW50Q29tcG9uZW50LFxuICAgICAgdGFyZ2V0UmVmOiB0aGlzLmNvbnRlbnRSZWY/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICBmaXhTaXplVG9SZWY6IHRydWUsXG4gICAgICBzaG93QmFja2Ryb3A6IGZhbHNlLFxuICAgICAgaW5wdXRDb250ZXh0OiB7XG4gICAgICAgIHNlbGVjdGVkT3B0aW9uOiB0aGlzLmNvbnRyb2woKS52YWx1ZSxcbiAgICAgICAgaXRlbXM6IHRoaXMucGFyc2VkT3B0aW9ucygpLFxuICAgICAgICBpc0tleWJvYXJkRXZlbnQ6IHRoaXMuaXNLZXlib2FyZEV2ZW50LFxuICAgICAgICBlbmFibGVGaWx0ZXI6IHRoaXMuaXNGaWx0ZXJhYmxlKCksXG4gICAgICB9LFxuICAgICAgZm9jdXNPbk9wZW46IHRydWUsXG4gICAgfTtcbiAgICB0aGlzLnByb2plY3Rpb25TZXJ2aWNlLm9wZW5Db250ZW50KGRhdGEpO1xuICB9XG5cbiAgLy8gS2V5Ym9hcmRzIGV2ZW50c1xuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXlib2FyZHMgPSBbJyAnLCAnQXJyb3dEb3duJywgJ0Rvd24nXTtcblxuICAgIGlmIChrZXlib2FyZHMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgdGhpcy5vcGVuTGlzdCgpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVZhbGlkaXR5KCk6IHZvaWQge1xuICAgIGhhbmRsZVZhbGlkaXR5KHRoaXMuY29udHJvbCgpKTtcbiAgfVxuXG4gIGdldCBzaG91bGRTaG93RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNob3dFcnJvcih0aGlzLmNvbnRyb2woKSk7XG4gIH1cbn1cbiIsIjxibWItaW5wdXQtdmFsaWRhdG9yXG4gIGNsYXNzPVwiYm1iX2Ryb3Bkb3duXCJcbiAgW2lucHV0SWRdPVwiaW5wdXRJZCgpXCJcbiAgW25hbWVdPVwibmFtZSgpXCJcbiAgW3ZhbHVlXT1cImdldFZhbGlkSW5pdGlhbFZhbHVlcygpXCJcbiAgW2xhYmVsXT1cImxhYmVsKCkhXCJcbiAgW2Vycm9yTWVzc2FnZV09XCJlcnJvck1lc3NhZ2UoKVwiXG4gIFtoZWxwZXJNZXNzYWdlXT1cImhlbHBlclRleHQoKVwiXG4gIFtpc1JlcXVpcmVkXT1cInJlcXVpcmVkKClcIlxuICBbaXNEaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgW2NvbnRyb2xdPVwiY29udHJvbCgpXCJcbiAgW3Nob3dFcnJvcl09XCJzaG91bGRTaG93RXJyb3JcIlxuICBbdG9vbHRpcF09XCJ0b29sdGlwKClcIlxuICBbdG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvbigpXCJcbiAgW2N1c3RvbVZhbGlkYXRpb25dPVwiY3VzdG9tVmFsaWRhdGlvbigpXCJcbj5cbiAgPGRpdiAjY29udGVudERpdj5cbiAgICA8Ym1iLWlucHV0LWNvbnRlbnRcbiAgICAgIGNsYXNzPVwiYm1iX2Ryb3Bkb3duLWZpZWxkXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFtpbnB1dElkXT1cImlucHV0SWQoKVwiXG4gICAgICBbbmFtZV09XCJuYW1lKClcIlxuICAgICAgW2ljb25dPVwiZ2V0SWNvbigpXCJcbiAgICAgIFtjb250cm9sXT1cInNlbGVjdGlvbkNvbnRyb2xcIlxuICAgICAgW2lzUmVhZE9ubHldPVwidHJ1ZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXG4gICAgICBbaXNFcnJvcl09XCJzaG91bGRTaG93RXJyb3JcIlxuICAgICAgKGNsaWNrKT1cIm9wZW5MaXN0KClcIlxuICAgICAgKG9uS2V5RG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICAob25CbHVyKT1cImhhbmRsZVZhbGlkaXR5KClcIlxuICAgICAgKG9uRm9jdXMpPVwiaGFuZGxlRm9jdXMoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlICNjdXN0b21Db250ZW50PlxuICAgICAgICA8bGFiZWwgW2h0bWxGb3JdPVwiaW5wdXRJZCgpXCI+XG4gICAgICAgICAgPGJtYi1pY29uXG4gICAgICAgICAgICBjbGFzcz1cImJtYl9maWVsZC1hY3Rpb25zXCJcbiAgICAgICAgICAgIGljb249XCJrZXlib2FyZF9hcnJvd19kb3duXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuTGlzdCgpXCJcbiAgICAgICAgICAgIFtzaXplXT1cIjI0XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2JtYi1pbnB1dC1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGlucHV0XG4gICAgaGlkZGVuXG4gICAgdHlwZT1cInRleHRcIlxuICAgIFtpZF09XCJnZXRVVUlEKCdpZCcpXCJcbiAgICBbbmFtZV09XCJuYW1lKClcIlxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sKClcIlxuICAvPlxuPC9ibWItaW5wdXQtdmFsaWRhdG9yPlxuIl19
|
|
@@ -2,7 +2,7 @@ import { Component, input, ChangeDetectionStrategy, ViewEncapsulation, ViewChild
|
|
|
2
2
|
import { BmbDropdownContentComponent } from '../utils/bmb-dropdown-content/bmb-dropdown-content.component';
|
|
3
3
|
import { BmbActionIconComponent } from '../bmb-action-icon/bmb-action-icon.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../services/projection.service";
|
|
5
|
+
import * as i1 from "../../services/projection/projection.service";
|
|
6
6
|
export class BmbDropdownMenuComponent {
|
|
7
7
|
constructor(projectionService) {
|
|
8
8
|
this.projectionService = projectionService;
|
|
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
28
28
|
type: ViewChild,
|
|
29
29
|
args: ['contentDiv', { static: true }]
|
|
30
30
|
}] } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtbmcvc3JjL2xpYi9jb21wb25lbnRzL2JtYi1kcm9wZG93bi1tZW51L2JtYi1kcm9wZG93bi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcGRvd24tbWVudS9ibWItZHJvcGRvd24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBYXRGLE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsWUFBb0IsaUJBQThDO1FBQTlDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7UUFKbEUsVUFBSyxHQUFHLEtBQUssQ0FBa0IsRUFBRSxDQUFDLENBQUM7SUFJa0MsQ0FBQztJQUV0RSxZQUFZO1FBQ1YsTUFBTSxJQUFJLEdBQUc7WUFDWCxPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWE7WUFDekMsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNyQyxXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQWhCVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qix5VUN2QnJDLHdOQVFBLHNORFdZLHNCQUFzQjs7NEZBSXJCLHdCQUF3QjtrQkFUcEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUdQLENBQUMsc0JBQXNCLENBQUMsbUJBQ2hCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7Z0dBS00sVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCbWJEcm9wZG93bkNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi91dGlscy9ibWItZHJvcGRvd24tY29udGVudC9ibWItZHJvcGRvd24tY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iQWN0aW9uSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1hY3Rpb24taWNvbi9ibWItYWN0aW9uLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElEcm9wZG93bkl0ZW0gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBCbWJQcm9qZWN0aW9uQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9qZWN0aW9uL3Byb2plY3Rpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JtYi1kcm9wZG93bi1tZW51JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2JtYi1kcm9wZG93bi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2JtYi1kcm9wZG93bi1tZW51LmNvbXBvbmVudC5zY3NzJyxcbiAgaW1wb3J0czogW0JtYkFjdGlvbkljb25Db21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQm1iRHJvcGRvd25NZW51Q29tcG9uZW50IHtcbiAgaXRlbXMgPSBpbnB1dDxJRHJvcGRvd25JdGVtW10+KFtdKTtcblxuICBAVmlld0NoaWxkKCdjb250ZW50RGl2JywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudFJlZiE6IEVsZW1lbnRSZWY8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByb2plY3Rpb25TZXJ2aWNlOiBCbWJQcm9qZWN0aW9uQ29udGVudFNlcnZpY2UpIHt9XG5cbiAgb3BlbkRyb3Bkb3duKCkge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBjb250ZW50OiBCbWJEcm9wZG93bkNvbnRlbnRDb21wb25lbnQsXG4gICAgICB0YXJnZXRSZWY6IHRoaXMuY29udGVudFJlZj8ubmF0aXZlRWxlbWVudCxcbiAgICAgIGlucHV0Q29udGV4dDogeyBpdGVtczogdGhpcy5pdGVtcygpIH0sXG4gICAgICBmb2N1c09uT3BlbjogdHJ1ZSxcbiAgICAgIHNob3dCYWNrZHJvcDogZmFsc2UsXG4gICAgfTtcbiAgICB0aGlzLnByb2plY3Rpb25TZXJ2aWNlLm9wZW5Db250ZW50KGRhdGEpO1xuICB9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cImJtYl9kcm9wZG93bl9tZW51XCIgI2NvbnRlbnREaXY+XG4gIDxibWItYWN0aW9uLWljb25cbiAgICBjbGFzcz1cImJtYl9kcm9wZG93bl9tZW51LWJ1dHRvblwiXG4gICAgaWNvbj1cIm1vcmVfdmVydFwiXG4gICAgW2ljb25TaXplXT1cIjI0XCJcbiAgICAoYnV0dG9uQ2xpY2spPVwib3BlbkRyb3Bkb3duKClcIlxuICAvPlxuPC9zZWN0aW9uPlxuIl19
|
|
@@ -5,6 +5,7 @@ import { BmbTextLinkComponent } from '../bmb-text-link/bmb-text-link.component';
|
|
|
5
5
|
import { BmbCardComponent, BmbCardContentComponent, } from '../bmb-card/bmb-card.component';
|
|
6
6
|
import { BmbProgressBarComponent } from '../bmb-progress-bar/bmb-progress-bar.component';
|
|
7
7
|
import { getUUID } from '../../utils/utils';
|
|
8
|
+
import { TranslatePipe } from '../../pipes/translations';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@angular/common";
|
|
10
11
|
export class BmbDropzoneComponent {
|
|
@@ -12,16 +13,16 @@ export class BmbDropzoneComponent {
|
|
|
12
13
|
this.cdr = cdr;
|
|
13
14
|
this.appearanceContrast = input('default');
|
|
14
15
|
this.acceptedExtensions = input.required();
|
|
15
|
-
this.dropInstruction = input(
|
|
16
|
-
this.dropLabel = input(
|
|
17
|
-
this.errorMessage = input(
|
|
18
|
-
this.errorMessageFormat = input(
|
|
19
|
-
this.errorMessageSize = input(
|
|
16
|
+
this.dropInstruction = input();
|
|
17
|
+
this.dropLabel = input();
|
|
18
|
+
this.errorMessage = input();
|
|
19
|
+
this.errorMessageFormat = input();
|
|
20
|
+
this.errorMessageSize = input();
|
|
20
21
|
this.fileDataList = [];
|
|
21
22
|
this.fileSize = input(2);
|
|
22
|
-
this.formatFilesLabel = input(
|
|
23
|
+
this.formatFilesLabel = input();
|
|
23
24
|
this.linkFilesSupported = input('');
|
|
24
|
-
this.linkLabel = input(
|
|
25
|
+
this.linkLabel = input();
|
|
25
26
|
this.mainIcon = input('image');
|
|
26
27
|
this.multiple = input(false);
|
|
27
28
|
this.name = input(getUUID());
|
|
@@ -46,6 +47,32 @@ export class BmbDropzoneComponent {
|
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
}
|
|
50
|
+
isValidFileType(fileType, fileName) {
|
|
51
|
+
if (this.acceptedExtensions().some((element) => element.includes('/'))) {
|
|
52
|
+
const types = this.acceptedExtensions().filter((element) => element.endsWith('/*'));
|
|
53
|
+
if (!!types.length &&
|
|
54
|
+
types.some((element) => element.substring(0, element.length - 2) ===
|
|
55
|
+
fileType.substring(0, element.length - 2))) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
if (this.acceptedExtensions().includes(fileType))
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (this.acceptedExtensions().includes(fileName.substring(fileName.lastIndexOf('.') + 1)))
|
|
64
|
+
return true;
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
getFileSizeInMB(fileSize) {
|
|
68
|
+
return fileSize / 1048576;
|
|
69
|
+
}
|
|
70
|
+
isValidFileSize(fileSize) {
|
|
71
|
+
return this.getFileSizeInMB(fileSize) <= this.fileSize();
|
|
72
|
+
}
|
|
73
|
+
isFileDuplicate(fileName) {
|
|
74
|
+
return this.fileDataList.some((existing) => existing.name === fileName);
|
|
75
|
+
}
|
|
49
76
|
getFileAndValidate(file) {
|
|
50
77
|
const filesArray = Array.isArray(file) ? file : [file];
|
|
51
78
|
const validFiles = [];
|
|
@@ -53,35 +80,24 @@ export class BmbDropzoneComponent {
|
|
|
53
80
|
this.fileDataList = [];
|
|
54
81
|
}
|
|
55
82
|
for (const singleFile of filesArray) {
|
|
56
|
-
|
|
57
|
-
const isValidFileType = this.acceptedExtensions().includes(fileExtension ?? '');
|
|
58
|
-
const fileSizeInMB = singleFile.size / 1048576;
|
|
59
|
-
const isValidSize = fileSizeInMB <= this.fileSize();
|
|
60
|
-
const alreadyExists = this.fileDataList.some((existing) => existing.name === singleFile.name);
|
|
61
|
-
if (alreadyExists) {
|
|
83
|
+
if (this.isFileDuplicate(singleFile.name)) {
|
|
62
84
|
continue;
|
|
63
85
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
86
|
+
const fileValidation = {
|
|
87
|
+
isValidFormat: this.isValidFileType(singleFile.type, singleFile.name),
|
|
88
|
+
isValidSize: this.isValidFileSize(singleFile.size),
|
|
89
|
+
};
|
|
90
|
+
const fileData = {
|
|
91
|
+
name: singleFile.name,
|
|
92
|
+
size: this.getFileSizeInMB(singleFile.size),
|
|
93
|
+
error: !fileValidation.isValidFormat || !fileValidation.isValidSize,
|
|
94
|
+
errorType: !fileValidation.isValidFormat ? 'format' : 'size',
|
|
95
|
+
};
|
|
96
|
+
this.fileDataList.push(fileData);
|
|
97
|
+
if (fileValidation.isValidFormat && fileValidation.isValidSize)
|
|
72
98
|
validFiles.push(singleFile);
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
this.fileDataList.push({
|
|
76
|
-
name: singleFile.name,
|
|
77
|
-
size: fileSizeInMB,
|
|
78
|
-
error: true,
|
|
79
|
-
errorType: !isValidFileType ? 'format' : 'size',
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
99
|
}
|
|
83
|
-
|
|
84
|
-
if (this.validFile) {
|
|
100
|
+
if (!!validFiles.length) {
|
|
85
101
|
this.newFile.emit(this.multiple() ? validFiles : validFiles[0]);
|
|
86
102
|
}
|
|
87
103
|
else {
|
|
@@ -159,7 +175,7 @@ export class BmbDropzoneComponent {
|
|
|
159
175
|
return classList;
|
|
160
176
|
}
|
|
161
177
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbDropzoneComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
162
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BmbDropzoneComponent, isStandalone: true, selector: "bmb-dropzone", inputs: { appearanceContrast: { classPropertyName: "appearanceContrast", publicName: "appearanceContrast", isSignal: true, isRequired: false, transformFunction: null }, acceptedExtensions: { classPropertyName: "acceptedExtensions", publicName: "acceptedExtensions", isSignal: true, isRequired: true, transformFunction: null }, dropInstruction: { classPropertyName: "dropInstruction", publicName: "dropInstruction", isSignal: true, isRequired: false, transformFunction: null }, dropLabel: { classPropertyName: "dropLabel", publicName: "dropLabel", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, errorMessageFormat: { classPropertyName: "errorMessageFormat", publicName: "errorMessageFormat", isSignal: true, isRequired: false, transformFunction: null }, errorMessageSize: { classPropertyName: "errorMessageSize", publicName: "errorMessageSize", isSignal: true, isRequired: false, transformFunction: null }, fileSize: { classPropertyName: "fileSize", publicName: "fileSize", isSignal: true, isRequired: false, transformFunction: null }, formatFilesLabel: { classPropertyName: "formatFilesLabel", publicName: "formatFilesLabel", isSignal: true, isRequired: false, transformFunction: null }, linkFilesSupported: { classPropertyName: "linkFilesSupported", publicName: "linkFilesSupported", isSignal: true, isRequired: false, transformFunction: null }, linkLabel: { classPropertyName: "linkLabel", publicName: "linkLabel", isSignal: true, isRequired: false, transformFunction: null }, mainIcon: { classPropertyName: "mainIcon", publicName: "mainIcon", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { newFile: "newFile", fileRemoved: "fileRemoved" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"bmb-drop-zone\">\n <section\n class=\"bmb-drop-zone-container\"\n [ngClass]=\"getDropZoneClass()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n >\n <div\n class=\"bmb-drop-zone-icon\"\n [ngClass]=\"{\n 'bmb-drop-zone-icon-valid':\n validFile && fileDataList.length > 0 && !!fileDataList[0].name,\n 'bmb-drop-zone-icon-error': isInvalidFileOnly()\n }\"\n >\n <bmb-icon [icon]=\"mainIcon()\" [size]=\"48\" alt=\"Drop zone icon\" />\n </div>\n <p class=\"bmb-drop-zone-label-format\">{{ formatFilesLabel() }}</p>\n <p class=\"bmb-drop-zone-label-format-instruction\">\n {{ dropInstruction() }}\n <label class=\"bmb-drop-zone-link\" [htmlFor]=\"name()\">\n {{ dropLabel() }}\n </label>\n </p>\n @if (isInvalidFileOnly()) {\n <p class=\"bmb-drop-zone-label-format-error bmb-drop-zone-label-format\">\n {{ errorMessage() }}\n </p>\n @if (linkFilesSupported()) {\n <bmb-text-link\n textLinkStyle=\"underlined\"\n [link]=\"linkFilesSupported()\"\n [textLink]=\"linkLabel()\"\n />\n }\n }\n <input\n type=\"file\"\n [id]=\"name()\"\n [name]=\"name()\"\n [accept]=\"acceptedExtensions().toString()\"\n (change)=\"onFileSelected($event)\"\n [multiple]=\"multiple()\"\n style=\"display: none\"\n />\n </section>\n @if (fileDataList.length > 0) {\n @for (file of fileDataList; track file.name) {\n <bmb-card margin=\"none\" type=\"transparent\">\n <bmb-card-content>\n <div\n class=\"bmb-drop-zone-list-files\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-files-loading':\n !file.error && getProgress(file.name) < 100,\n 'bmb-drop-zone-list-files-error': file.error,\n 'bmb-drop-zone-list-files-valid': getProgress(file.name) === 100\n }\"\n >\n <span\n class=\"bmb-drop-zone-list-files-icon\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-files-icon-spin':\n !file.error && getProgress(file.name) < 100\n }\"\n >\n @if (!validFile) {\n <bmb-icon icon=\"upload_file\" [size]=\"24\" />\n } @else if (getProgress(file.name) < 100) {\n <bmb-icon icon=\"progress_activity\" [size]=\"24\" class=\"spin\" />\n } @else if (validFile) {\n <bmb-icon icon=\"task\" [size]=\"24\" />\n }\n </span>\n\n <div class=\"bmb-drop-zone-list-name\">\n <span>{{ file.name }}</span>\n\n <div\n class=\"bmb-drop-zone-list-status\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-status-success':\n getProgress(file.name) === 100\n }\"\n >\n @if (validFile && getProgress(file.name) < 100) {\n <span>{{ getProgress(file.name) }}% / 100%</span>\n }\n\n @if (getProgress(file.name) === 100) {\n {{ file.size.toFixed(2) }} MB\n <bmb-icon\n icon=\"check_circle\"\n [size]=\"24\"\n class=\"success-icon\"\n />\n <ng-container\n *ngTemplateOutlet=\"\n removeButton;\n context: { fileName: file.name }\n \"\n ></ng-container>\n }\n\n @if (file.error) {\n <span>\n @if (file.errorType === 'format') {\n {{ errorMessageFormat() }}\n } @else if (file.errorType === 'size') {\n {{ errorMessageSize() }} ({{ file.size.toFixed(2) }} MB)\n }\n </span>\n <ng-container\n *ngTemplateOutlet=\"\n removeButton;\n context: { fileName: file.name }\n \"\n ></ng-container>\n }\n </div>\n\n <ng-template #removeButton let-fileName=\"fileName\">\n <button\n class=\"bmb-drop-zone-list-remove\"\n (click)=\"removeFile(fileName)\"\n type=\"button\"\n >\n <bmb-icon icon=\"delete\" [size]=\"24\" class=\"delete-icon\" />\n </button>\n </ng-template>\n </div>\n\n @if (validFile && getProgress(file.name) < 100) {\n <span class=\"bmb-drop-zone-list-upload\">\n <bmb-progress-bar\n type=\"simple\"\n [counter]=\"getProgress(file.name)\"\n [totalCount]=\"100\"\n />\n </span>\n }\n </div>\n </bmb-card-content>\n </bmb-card>\n }\n }\n</div>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb-drop-zone{color:RGBA(var(--color-charade-500));display:flex;flex-direction:column;gap:var(--bmb-spacing-m);font-family:Poppins-Regular,sans-serif;font-size:.875rem}.bmb-drop-zone-container{align-items:center;border:.125rem dashed var(--general_contrasts-container-outline);border-radius:var(--bmb-radius-s);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bmb-spacing-m);justify-content:center;padding:var(--bmb-spacing-m) var(--bmb-spacing-l)}.bmb-drop-zone-container-primary{background-color:var(--containers-background)}.bmb-drop-zone-container-alternative{background-color:var(--containers-main)}.bmb-drop-zone-drag-over{background-color:var(--menu_select-on-surface-hovered-w-checkbox);border-color:var(--general_contrasts-main-selection)}.bmb-drop-zone-error{border-color:var(--red-primary);background-color:transparent}.bmb-drop-zone-label-format{margin:0;color:var(--general_contrasts-50)}.bmb-drop-zone-label-format-instruction{color:var(--general_contrasts-100)}.bmb-drop-zone-link{font-family:Poppins-Medium,sans-serif;font-size:.875rem;color:var(--general_contrasts-main-selection);cursor:pointer;text-decoration-line:underline}.bmb-drop-zone-label-format-error{color:var(--red-primary)}.bmb-drop-zone-icon-valid{color:var(--general_contrasts-main-selection)}.bmb-drop-zone-icon-error{color:var(--red-primary)}.bmb-drop-zone-list-files{align-items:center;display:grid;gap:.5rem;grid-template-areas:\"icon name\" \"icon progress\";grid-template-columns:1.5rem 1fr;margin:0}.bmb-drop-zone-list-files-error{color:var(--red-primary);grid-template-areas:\"icon name\"}.bmb-drop-zone-list-files-loading .bmb-drop-zone-list-files-icon{color:var(--general_contrasts-main-selection)}.bmb-drop-zone-list-files-valid{grid-template-areas:\"icon name\"}.bmb-drop-zone-list-files-icon{grid-area:icon;height:1.5rem;width:1.5rem}.bmb-drop-zone-list-files-icon-spin{animation:spin 1s linear infinite}.bmb-drop-zone-list-upload{flex:1;grid-area:progress}.bmb-drop-zone-list-name{align-items:center;display:flex;grid-area:name;justify-content:space-between}.bmb-drop-zone-list-status{align-items:center;display:flex;gap:.5rem}.bmb-drop-zone-list-status-success .success-icon{color:var(--red-primary)}.bmb-drop-zone-list-status .delete-icon{color:var(--general_contrasts-50)}.bmb-drop-zone-list-remove{padding:0;margin:0;height:1.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }, { kind: "component", type: BmbTextLinkComponent, selector: "bmb-text-link", inputs: ["textLink", "textLinkStyle", "target", "icon", "iconPosition", "link", "disabled"] }, { kind: "component", type: BmbCardComponent, selector: "bmb-card", inputs: ["borderRadius", "margin", "type", "state", "boxShadowStyle", "borderColor", "alternative"] }, { kind: "component", type: BmbCardContentComponent, selector: "bmb-card-content", inputs: ["padding", "colorBackground", "setBorderRadius"] }, { kind: "component", type: BmbProgressBarComponent, selector: "bmb-progress-bar", inputs: ["type", "totalCount", "counter", "title", "appearance", "textLink", "href", "target", "textFormat"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
178
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BmbDropzoneComponent, isStandalone: true, selector: "bmb-dropzone", inputs: { appearanceContrast: { classPropertyName: "appearanceContrast", publicName: "appearanceContrast", isSignal: true, isRequired: false, transformFunction: null }, acceptedExtensions: { classPropertyName: "acceptedExtensions", publicName: "acceptedExtensions", isSignal: true, isRequired: true, transformFunction: null }, dropInstruction: { classPropertyName: "dropInstruction", publicName: "dropInstruction", isSignal: true, isRequired: false, transformFunction: null }, dropLabel: { classPropertyName: "dropLabel", publicName: "dropLabel", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, errorMessageFormat: { classPropertyName: "errorMessageFormat", publicName: "errorMessageFormat", isSignal: true, isRequired: false, transformFunction: null }, errorMessageSize: { classPropertyName: "errorMessageSize", publicName: "errorMessageSize", isSignal: true, isRequired: false, transformFunction: null }, fileSize: { classPropertyName: "fileSize", publicName: "fileSize", isSignal: true, isRequired: false, transformFunction: null }, formatFilesLabel: { classPropertyName: "formatFilesLabel", publicName: "formatFilesLabel", isSignal: true, isRequired: false, transformFunction: null }, linkFilesSupported: { classPropertyName: "linkFilesSupported", publicName: "linkFilesSupported", isSignal: true, isRequired: false, transformFunction: null }, linkLabel: { classPropertyName: "linkLabel", publicName: "linkLabel", isSignal: true, isRequired: false, transformFunction: null }, mainIcon: { classPropertyName: "mainIcon", publicName: "mainIcon", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { newFile: "newFile", fileRemoved: "fileRemoved" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"bmb-drop-zone\">\n <section\n class=\"bmb-drop-zone-container\"\n [ngClass]=\"getDropZoneClass()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n >\n <div\n class=\"bmb-drop-zone-icon\"\n [ngClass]=\"{\n 'bmb-drop-zone-icon-valid':\n validFile && fileDataList.length > 0 && !!fileDataList[0].name,\n 'bmb-drop-zone-icon-error': isInvalidFileOnly()\n }\"\n >\n <bmb-icon [icon]=\"mainIcon()\" [size]=\"48\" alt=\"Drop zone icon\" />\n </div>\n <p class=\"bmb-drop-zone-label-format\">\n {{ formatFilesLabel() || ('dropzone.format_files_label' | translate) }}\n </p>\n <p class=\"bmb-drop-zone-label-format-instruction\">\n {{ dropInstruction() || ('dropzone.drop_instructions' | translate) }}\n <label class=\"bmb-drop-zone-link\" [htmlFor]=\"name()\">\n {{ dropLabel() || ('dropzone.drop_label' | translate) }}\n </label>\n </p>\n @if (isInvalidFileOnly()) {\n <p class=\"bmb-drop-zone-label-format-error bmb-drop-zone-label-format\">\n {{ errorMessage() || ('dropzone.error_message' | translate) }}\n </p>\n @if (linkFilesSupported()) {\n <bmb-text-link\n textLinkStyle=\"underlined\"\n [link]=\"linkFilesSupported()\"\n [textLink]=\"linkLabel() || ('dropzone.link_label' | translate)\"\n />\n }\n }\n <input\n type=\"file\"\n [id]=\"name()\"\n [name]=\"name()\"\n [accept]=\"acceptedExtensions().toString()\"\n (change)=\"onFileSelected($event)\"\n [multiple]=\"multiple()\"\n style=\"display: none\"\n />\n </section>\n @if (fileDataList.length > 0) {\n @for (file of fileDataList; track file.name) {\n <bmb-card margin=\"none\" type=\"transparent\">\n <bmb-card-content>\n <div\n class=\"bmb-drop-zone-list-files\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-files-loading':\n !file.error && getProgress(file.name) < 100,\n 'bmb-drop-zone-list-files-error': file.error,\n 'bmb-drop-zone-list-files-valid': getProgress(file.name) === 100\n }\"\n >\n <span\n class=\"bmb-drop-zone-list-files-icon\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-files-icon-spin':\n !file.error && getProgress(file.name) < 100\n }\"\n >\n @if (!validFile) {\n <bmb-icon icon=\"upload_file\" [size]=\"24\" />\n } @else if (getProgress(file.name) < 100) {\n <bmb-icon icon=\"progress_activity\" [size]=\"24\" class=\"spin\" />\n } @else if (validFile) {\n <bmb-icon icon=\"task\" [size]=\"24\" />\n }\n </span>\n\n <div class=\"bmb-drop-zone-list-name\">\n <span>{{ file.name }}</span>\n\n <div\n class=\"bmb-drop-zone-list-status\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-status-success':\n getProgress(file.name) === 100\n }\"\n >\n @if (validFile && getProgress(file.name) < 100) {\n <span>{{ getProgress(file.name) }}% / 100%</span>\n }\n\n @if (getProgress(file.name) === 100) {\n {{ file.size.toFixed(2) }} MB\n <bmb-icon\n icon=\"check_circle\"\n [size]=\"24\"\n class=\"success-icon\"\n />\n <ng-container\n *ngTemplateOutlet=\"\n removeButton;\n context: { fileName: file.name }\n \"\n ></ng-container>\n }\n\n @if (file.error) {\n <span>\n @if (file.errorType === 'format') {\n {{\n errorMessageFormat() ||\n ('dropzone.error_message_format' | translate)\n }}\n } @else if (file.errorType === 'size') {\n {{\n errorMessageSize() ||\n ('dropzone.error_message_size' | translate)\n }}\n ({{ file.size.toFixed(2) }} MB)\n }\n </span>\n <ng-container\n *ngTemplateOutlet=\"\n removeButton;\n context: { fileName: file.name }\n \"\n ></ng-container>\n }\n </div>\n\n <ng-template #removeButton let-fileName=\"fileName\">\n <button\n class=\"bmb-drop-zone-list-remove\"\n (click)=\"removeFile(fileName)\"\n type=\"button\"\n >\n <bmb-icon icon=\"delete\" [size]=\"24\" class=\"delete-icon\" />\n </button>\n </ng-template>\n </div>\n\n @if (validFile && getProgress(file.name) < 100) {\n <span class=\"bmb-drop-zone-list-upload\">\n <bmb-progress-bar\n type=\"simple\"\n [counter]=\"getProgress(file.name)\"\n [totalCount]=\"100\"\n />\n </span>\n }\n </div>\n </bmb-card-content>\n </bmb-card>\n }\n }\n</div>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb-drop-zone{color:RGBA(var(--color-charade-500));display:flex;flex-direction:column;gap:var(--bmb-spacing-m);font-family:Poppins-Regular,sans-serif;font-size:.875rem}.bmb-drop-zone-container{align-items:center;border:.125rem dashed var(--general_contrasts-container-outline);border-radius:var(--bmb-radius-s);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bmb-spacing-m);justify-content:center;padding:var(--bmb-spacing-m) var(--bmb-spacing-l)}.bmb-drop-zone-container-primary{background-color:var(--containers-background)}.bmb-drop-zone-container-alternative{background-color:var(--containers-main)}.bmb-drop-zone-drag-over{background-color:var(--menu_select-on-surface-hovered-w-checkbox);border-color:var(--general_contrasts-main-selection)}.bmb-drop-zone-error{border-color:var(--red-primary);background-color:transparent}.bmb-drop-zone-label-format{margin:0;color:var(--general_contrasts-50)}.bmb-drop-zone-label-format-instruction{color:var(--general_contrasts-100)}.bmb-drop-zone-link{font-family:Poppins-Regular,sans-serif;font-size:.875rem;color:var(--general_contrasts-main-selection);cursor:pointer;text-decoration-line:underline}.bmb-drop-zone-label-format-error{color:var(--red-primary)}.bmb-drop-zone-icon-valid{color:var(--general_contrasts-main-selection)}.bmb-drop-zone-icon-error{color:var(--red-primary)}.bmb-drop-zone-list-files{align-items:center;display:grid;gap:.5rem;grid-template-areas:\"icon name\" \"icon progress\";grid-template-columns:1.5rem 1fr;margin:0}.bmb-drop-zone-list-files-error{color:var(--red-primary);grid-template-areas:\"icon name\"}.bmb-drop-zone-list-files-loading .bmb-drop-zone-list-files-icon{color:var(--general_contrasts-main-selection)}.bmb-drop-zone-list-files-valid{grid-template-areas:\"icon name\"}.bmb-drop-zone-list-files-icon{grid-area:icon;height:1.5rem;width:1.5rem}.bmb-drop-zone-list-files-icon-spin{animation:spin 1s linear infinite}.bmb-drop-zone-list-upload{flex:1;grid-area:progress}.bmb-drop-zone-list-name{align-items:center;display:flex;grid-area:name;justify-content:space-between}.bmb-drop-zone-list-status{align-items:center;display:flex;gap:.5rem}.bmb-drop-zone-list-status-success .success-icon{color:var(--red-primary)}.bmb-drop-zone-list-status .delete-icon{color:var(--general_contrasts-50)}.bmb-drop-zone-list-remove{padding:0;margin:0;height:1.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }, { kind: "component", type: BmbTextLinkComponent, selector: "bmb-text-link", inputs: ["textLink", "textLinkStyle", "target", "icon", "iconPosition", "link", "disabled"] }, { kind: "component", type: BmbCardComponent, selector: "bmb-card", inputs: ["borderRadius", "margin", "type", "state", "boxShadowStyle", "borderColor", "alternative"] }, { kind: "component", type: BmbCardContentComponent, selector: "bmb-card-content", inputs: ["padding", "colorBackground", "setBorderRadius"] }, { kind: "component", type: BmbProgressBarComponent, selector: "bmb-progress-bar", inputs: ["type", "totalCount", "counter", "title", "appearance", "textLink", "href", "target", "textFormat"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
163
179
|
}
|
|
164
180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbDropzoneComponent, decorators: [{
|
|
165
181
|
type: Component,
|
|
@@ -170,6 +186,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
170
186
|
BmbCardComponent,
|
|
171
187
|
BmbCardContentComponent,
|
|
172
188
|
BmbProgressBarComponent,
|
|
173
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"bmb-drop-zone\">\n <section\n class=\"bmb-drop-zone-container\"\n [ngClass]=\"getDropZoneClass()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n >\n <div\n class=\"bmb-drop-zone-icon\"\n [ngClass]=\"{\n 'bmb-drop-zone-icon-valid':\n validFile && fileDataList.length > 0 && !!fileDataList[0].name,\n 'bmb-drop-zone-icon-error': isInvalidFileOnly()\n }\"\n >\n <bmb-icon [icon]=\"mainIcon()\" [size]=\"48\" alt=\"Drop zone icon\" />\n </div>\n <p class=\"bmb-drop-zone-label-format\">{{ formatFilesLabel() }}</p>\n <p class=\"bmb-drop-zone-label-format-instruction\">\n {{ dropInstruction() }}\n <label class=\"bmb-drop-zone-link\" [htmlFor]=\"name()\">\n {{ dropLabel() }}\n </label>\n </p>\n @if (isInvalidFileOnly()) {\n <p class=\"bmb-drop-zone-label-format-error bmb-drop-zone-label-format\">\n {{ errorMessage() }}\n </p>\n @if (linkFilesSupported()) {\n <bmb-text-link\n textLinkStyle=\"underlined\"\n [link]=\"linkFilesSupported()\"\n [textLink]=\"linkLabel()\"\n />\n }\n }\n <input\n type=\"file\"\n [id]=\"name()\"\n [name]=\"name()\"\n [accept]=\"acceptedExtensions().toString()\"\n (change)=\"onFileSelected($event)\"\n [multiple]=\"multiple()\"\n style=\"display: none\"\n />\n </section>\n @if (fileDataList.length > 0) {\n @for (file of fileDataList; track file.name) {\n <bmb-card margin=\"none\" type=\"transparent\">\n <bmb-card-content>\n <div\n class=\"bmb-drop-zone-list-files\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-files-loading':\n !file.error && getProgress(file.name) < 100,\n 'bmb-drop-zone-list-files-error': file.error,\n 'bmb-drop-zone-list-files-valid': getProgress(file.name) === 100\n }\"\n >\n <span\n class=\"bmb-drop-zone-list-files-icon\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-files-icon-spin':\n !file.error && getProgress(file.name) < 100\n }\"\n >\n @if (!validFile) {\n <bmb-icon icon=\"upload_file\" [size]=\"24\" />\n } @else if (getProgress(file.name) < 100) {\n <bmb-icon icon=\"progress_activity\" [size]=\"24\" class=\"spin\" />\n } @else if (validFile) {\n <bmb-icon icon=\"task\" [size]=\"24\" />\n }\n </span>\n\n <div class=\"bmb-drop-zone-list-name\">\n <span>{{ file.name }}</span>\n\n <div\n class=\"bmb-drop-zone-list-status\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-status-success':\n getProgress(file.name) === 100\n }\"\n >\n @if (validFile && getProgress(file.name) < 100) {\n <span>{{ getProgress(file.name) }}% / 100%</span>\n }\n\n @if (getProgress(file.name) === 100) {\n {{ file.size.toFixed(2) }} MB\n <bmb-icon\n icon=\"check_circle\"\n [size]=\"24\"\n class=\"success-icon\"\n />\n <ng-container\n *ngTemplateOutlet=\"\n removeButton;\n context: { fileName: file.name }\n \"\n ></ng-container>\n }\n\n @if (file.error) {\n <span>\n @if (file.errorType === 'format') {\n {{ errorMessageFormat() }}\n } @else if (file.errorType === 'size') {\n {{ errorMessageSize() }} ({{ file.size.toFixed(2) }} MB)\n }\n </span>\n <ng-container\n *ngTemplateOutlet=\"\n removeButton;\n context: { fileName: file.name }\n \"\n ></ng-container>\n }\n </div>\n\n <ng-template #removeButton let-fileName=\"fileName\">\n <button\n class=\"bmb-drop-zone-list-remove\"\n (click)=\"removeFile(fileName)\"\n type=\"button\"\n >\n <bmb-icon icon=\"delete\" [size]=\"24\" class=\"delete-icon\" />\n </button>\n </ng-template>\n </div>\n\n @if (validFile && getProgress(file.name) < 100) {\n <span class=\"bmb-drop-zone-list-upload\">\n <bmb-progress-bar\n type=\"simple\"\n [counter]=\"getProgress(file.name)\"\n [totalCount]=\"100\"\n />\n </span>\n }\n </div>\n </bmb-card-content>\n </bmb-card>\n }\n }\n</div>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb-drop-zone{color:RGBA(var(--color-charade-500));display:flex;flex-direction:column;gap:var(--bmb-spacing-m);font-family:Poppins-Regular,sans-serif;font-size:.875rem}.bmb-drop-zone-container{align-items:center;border:.125rem dashed var(--general_contrasts-container-outline);border-radius:var(--bmb-radius-s);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bmb-spacing-m);justify-content:center;padding:var(--bmb-spacing-m) var(--bmb-spacing-l)}.bmb-drop-zone-container-primary{background-color:var(--containers-background)}.bmb-drop-zone-container-alternative{background-color:var(--containers-main)}.bmb-drop-zone-drag-over{background-color:var(--menu_select-on-surface-hovered-w-checkbox);border-color:var(--general_contrasts-main-selection)}.bmb-drop-zone-error{border-color:var(--red-primary);background-color:transparent}.bmb-drop-zone-label-format{margin:0;color:var(--general_contrasts-50)}.bmb-drop-zone-label-format-instruction{color:var(--general_contrasts-100)}.bmb-drop-zone-link{font-family:Poppins-Medium,sans-serif;font-size:.875rem;color:var(--general_contrasts-main-selection);cursor:pointer;text-decoration-line:underline}.bmb-drop-zone-label-format-error{color:var(--red-primary)}.bmb-drop-zone-icon-valid{color:var(--general_contrasts-main-selection)}.bmb-drop-zone-icon-error{color:var(--red-primary)}.bmb-drop-zone-list-files{align-items:center;display:grid;gap:.5rem;grid-template-areas:\"icon name\" \"icon progress\";grid-template-columns:1.5rem 1fr;margin:0}.bmb-drop-zone-list-files-error{color:var(--red-primary);grid-template-areas:\"icon name\"}.bmb-drop-zone-list-files-loading .bmb-drop-zone-list-files-icon{color:var(--general_contrasts-main-selection)}.bmb-drop-zone-list-files-valid{grid-template-areas:\"icon name\"}.bmb-drop-zone-list-files-icon{grid-area:icon;height:1.5rem;width:1.5rem}.bmb-drop-zone-list-files-icon-spin{animation:spin 1s linear infinite}.bmb-drop-zone-list-upload{flex:1;grid-area:progress}.bmb-drop-zone-list-name{align-items:center;display:flex;grid-area:name;justify-content:space-between}.bmb-drop-zone-list-status{align-items:center;display:flex;gap:.5rem}.bmb-drop-zone-list-status-success .success-icon{color:var(--red-primary)}.bmb-drop-zone-list-status .delete-icon{color:var(--general_contrasts-50)}.bmb-drop-zone-list-remove{padding:0;margin:0;height:1.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}\n"] }]
|
|
189
|
+
TranslatePipe,
|
|
190
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"bmb-drop-zone\">\n <section\n class=\"bmb-drop-zone-container\"\n [ngClass]=\"getDropZoneClass()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n >\n <div\n class=\"bmb-drop-zone-icon\"\n [ngClass]=\"{\n 'bmb-drop-zone-icon-valid':\n validFile && fileDataList.length > 0 && !!fileDataList[0].name,\n 'bmb-drop-zone-icon-error': isInvalidFileOnly()\n }\"\n >\n <bmb-icon [icon]=\"mainIcon()\" [size]=\"48\" alt=\"Drop zone icon\" />\n </div>\n <p class=\"bmb-drop-zone-label-format\">\n {{ formatFilesLabel() || ('dropzone.format_files_label' | translate) }}\n </p>\n <p class=\"bmb-drop-zone-label-format-instruction\">\n {{ dropInstruction() || ('dropzone.drop_instructions' | translate) }}\n <label class=\"bmb-drop-zone-link\" [htmlFor]=\"name()\">\n {{ dropLabel() || ('dropzone.drop_label' | translate) }}\n </label>\n </p>\n @if (isInvalidFileOnly()) {\n <p class=\"bmb-drop-zone-label-format-error bmb-drop-zone-label-format\">\n {{ errorMessage() || ('dropzone.error_message' | translate) }}\n </p>\n @if (linkFilesSupported()) {\n <bmb-text-link\n textLinkStyle=\"underlined\"\n [link]=\"linkFilesSupported()\"\n [textLink]=\"linkLabel() || ('dropzone.link_label' | translate)\"\n />\n }\n }\n <input\n type=\"file\"\n [id]=\"name()\"\n [name]=\"name()\"\n [accept]=\"acceptedExtensions().toString()\"\n (change)=\"onFileSelected($event)\"\n [multiple]=\"multiple()\"\n style=\"display: none\"\n />\n </section>\n @if (fileDataList.length > 0) {\n @for (file of fileDataList; track file.name) {\n <bmb-card margin=\"none\" type=\"transparent\">\n <bmb-card-content>\n <div\n class=\"bmb-drop-zone-list-files\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-files-loading':\n !file.error && getProgress(file.name) < 100,\n 'bmb-drop-zone-list-files-error': file.error,\n 'bmb-drop-zone-list-files-valid': getProgress(file.name) === 100\n }\"\n >\n <span\n class=\"bmb-drop-zone-list-files-icon\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-files-icon-spin':\n !file.error && getProgress(file.name) < 100\n }\"\n >\n @if (!validFile) {\n <bmb-icon icon=\"upload_file\" [size]=\"24\" />\n } @else if (getProgress(file.name) < 100) {\n <bmb-icon icon=\"progress_activity\" [size]=\"24\" class=\"spin\" />\n } @else if (validFile) {\n <bmb-icon icon=\"task\" [size]=\"24\" />\n }\n </span>\n\n <div class=\"bmb-drop-zone-list-name\">\n <span>{{ file.name }}</span>\n\n <div\n class=\"bmb-drop-zone-list-status\"\n [ngClass]=\"{\n 'bmb-drop-zone-list-status-success':\n getProgress(file.name) === 100\n }\"\n >\n @if (validFile && getProgress(file.name) < 100) {\n <span>{{ getProgress(file.name) }}% / 100%</span>\n }\n\n @if (getProgress(file.name) === 100) {\n {{ file.size.toFixed(2) }} MB\n <bmb-icon\n icon=\"check_circle\"\n [size]=\"24\"\n class=\"success-icon\"\n />\n <ng-container\n *ngTemplateOutlet=\"\n removeButton;\n context: { fileName: file.name }\n \"\n ></ng-container>\n }\n\n @if (file.error) {\n <span>\n @if (file.errorType === 'format') {\n {{\n errorMessageFormat() ||\n ('dropzone.error_message_format' | translate)\n }}\n } @else if (file.errorType === 'size') {\n {{\n errorMessageSize() ||\n ('dropzone.error_message_size' | translate)\n }}\n ({{ file.size.toFixed(2) }} MB)\n }\n </span>\n <ng-container\n *ngTemplateOutlet=\"\n removeButton;\n context: { fileName: file.name }\n \"\n ></ng-container>\n }\n </div>\n\n <ng-template #removeButton let-fileName=\"fileName\">\n <button\n class=\"bmb-drop-zone-list-remove\"\n (click)=\"removeFile(fileName)\"\n type=\"button\"\n >\n <bmb-icon icon=\"delete\" [size]=\"24\" class=\"delete-icon\" />\n </button>\n </ng-template>\n </div>\n\n @if (validFile && getProgress(file.name) < 100) {\n <span class=\"bmb-drop-zone-list-upload\">\n <bmb-progress-bar\n type=\"simple\"\n [counter]=\"getProgress(file.name)\"\n [totalCount]=\"100\"\n />\n </span>\n }\n </div>\n </bmb-card-content>\n </bmb-card>\n }\n }\n</div>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb-drop-zone{color:RGBA(var(--color-charade-500));display:flex;flex-direction:column;gap:var(--bmb-spacing-m);font-family:Poppins-Regular,sans-serif;font-size:.875rem}.bmb-drop-zone-container{align-items:center;border:.125rem dashed var(--general_contrasts-container-outline);border-radius:var(--bmb-radius-s);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bmb-spacing-m);justify-content:center;padding:var(--bmb-spacing-m) var(--bmb-spacing-l)}.bmb-drop-zone-container-primary{background-color:var(--containers-background)}.bmb-drop-zone-container-alternative{background-color:var(--containers-main)}.bmb-drop-zone-drag-over{background-color:var(--menu_select-on-surface-hovered-w-checkbox);border-color:var(--general_contrasts-main-selection)}.bmb-drop-zone-error{border-color:var(--red-primary);background-color:transparent}.bmb-drop-zone-label-format{margin:0;color:var(--general_contrasts-50)}.bmb-drop-zone-label-format-instruction{color:var(--general_contrasts-100)}.bmb-drop-zone-link{font-family:Poppins-Regular,sans-serif;font-size:.875rem;color:var(--general_contrasts-main-selection);cursor:pointer;text-decoration-line:underline}.bmb-drop-zone-label-format-error{color:var(--red-primary)}.bmb-drop-zone-icon-valid{color:var(--general_contrasts-main-selection)}.bmb-drop-zone-icon-error{color:var(--red-primary)}.bmb-drop-zone-list-files{align-items:center;display:grid;gap:.5rem;grid-template-areas:\"icon name\" \"icon progress\";grid-template-columns:1.5rem 1fr;margin:0}.bmb-drop-zone-list-files-error{color:var(--red-primary);grid-template-areas:\"icon name\"}.bmb-drop-zone-list-files-loading .bmb-drop-zone-list-files-icon{color:var(--general_contrasts-main-selection)}.bmb-drop-zone-list-files-valid{grid-template-areas:\"icon name\"}.bmb-drop-zone-list-files-icon{grid-area:icon;height:1.5rem;width:1.5rem}.bmb-drop-zone-list-files-icon-spin{animation:spin 1s linear infinite}.bmb-drop-zone-list-upload{flex:1;grid-area:progress}.bmb-drop-zone-list-name{align-items:center;display:flex;grid-area:name;justify-content:space-between}.bmb-drop-zone-list-status{align-items:center;display:flex;gap:.5rem}.bmb-drop-zone-list-status-success .success-icon{color:var(--red-primary)}.bmb-drop-zone-list-status .delete-icon{color:var(--general_contrasts-50)}.bmb-drop-zone-list-remove{padding:0;margin:0;height:1.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}\n"] }]
|
|
174
191
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWRyb3B6b25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcHpvbmUvYm1iLWRyb3B6b25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcHpvbmUvYm1iLWRyb3B6b25lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUVOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixHQUN4QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBMEI1QyxNQUFNLE9BQU8sb0JBQW9CO0lBMEIvQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXpCMUMsdUJBQWtCLEdBQUcsS0FBSyxDQUFlLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELHVCQUFrQixHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVksQ0FBQztRQUNoRCxvQkFBZSxHQUFHLEtBQUssQ0FBUyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ2hFLGNBQVMsR0FBRyxLQUFLLENBQVMseUJBQXlCLENBQUMsQ0FBQztR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QixDQUFDOytHQWpNVSxvQkFBb0I7bUdBQXBCLG9CQUFvQix1dkVDM0NqQyxta0tBb0pBLGl4UURySEksWUFBWSxvU0FDWixnQkFBZ0IsOEpBQ2hCLG9CQUFvQix1SkFDcEIsZ0JBQWdCLDBKQUNoQix1QkFBdUIsd0hBQ3ZCLHVCQUF1Qjs7NEZBT2Qsb0JBQW9CO2tCQWhCaEMsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7cUJBQ3hCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCbWJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWljb24vYm1iLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJtYlRleHRMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXRleHQtbGluay9ibWItdGV4dC1saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBCbWJDYXJkQ29tcG9uZW50LFxuICBCbWJDYXJkQ29udGVudENvbXBvbmVudCxcbn0gZnJvbSAnLi4vYm1iLWNhcmQvYm1iLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEJtYlByb2dyZXNzQmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXByb2dyZXNzLWJhci9ibWItcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXRVVUlEIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgSUJtYkNvbnRyYXN0IH0gZnJvbSAnLi4vLi4vdHlwZXMvY29sb3JzJztcbmludGVyZmFjZSBGaWxlRGF0YSB7XG4gIG5hbWU6IHN0cmluZztcbiAgc2l6ZTogbnVtYmVyO1xuICBiYXNlNjQ/OiBzdHJpbmc7XG4gIGVycm9yPzogYm9vbGVhbjtcbiAgZXJyb3JUeXBlPzogJ2Zvcm1hdCcgfCAnc2l6ZScgfCBudWxsO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdibWItZHJvcHpvbmUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJtYkljb25Db21wb25lbnQsXG4gICAgQm1iVGV4dExpbmtDb21wb25lbnQsXG4gICAgQm1iQ2FyZENvbXBvbmVudCxcbiAgICBCbWJDYXJkQ29udGVudENvbXBvbmVudCxcbiAgICBCbWJQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2JtYi1kcm9wem9uZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ibWItZHJvcHpvbmUuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQm1iRHJvcHpvbmVDb21wb25lbnQge1xuICBhcHBlYXJhbmNlQ29udHJhc3QgPSBpbnB1dDxJQm1iQ29udHJhc3Q+KCdkZWZhdWx0Jyk7XG4gIGFjY2VwdGVkRXh0ZW5zaW9ucyA9IGlucHV0LnJlcXVpcmVkPHN0cmluZ1tdPigpO1xuICBkcm9wSW5zdHJ1Y3Rpb24gPSBpbnB1dDxzdHJpbmc+KCdBcnJhc3RyYSB0dXMgYXJjaGl2b3MgYXF1w60gbycpO1xuICBkcm9wTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdzZWxlY2Npb25hIHR1cyBhcmNoaXZvcycpO1xuICBlcnJvck1lc3NhZ2UgPSBpbnB1dDxzdHJpbmc+KCdBcmNoaXZvIG5vIGNvbXBhdGlibGUnKTtcbiAgZXJyb3JNZXNzYWdlRm9ybWF0ID0gaW5wdXQ8c3RyaW5nPignRm9ybWF0byBubyBzb3BvcnRhZG8nKTtcbiAgZXJyb3JNZXNzYWdlU2l6ZSA9IGlucHV0PHN0cmluZz4oJ0VsIGFyY2hpdm8gc3VwZXJhIGVsIHRhbWHDsW8gcGVybWl0aWRvJyk7XG4gIGZpbGVEYXRhTGlzdDogRmlsZURhdGFbXSA9IFtdO1xuICBmaWxlU2l6ZSA9IGlucHV0PG51bWJlcj4oMik7XG4gIGZvcm1hdEZpbGVzTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdFc3BlY2lmaWNhY2nDs24gZGUgZm9ybWF0b3MgeSBwZXNvJyk7XG4gIGxpbmtGaWxlc1N1cHBvcnRlZCA9IGlucHV0PHN0cmluZz4oJycpO1xuICBsaW5rTGFiZWwgPSBpbnB1dDxzdHJpbmc+KFxuICAgICdWZXIgbcOhcyBpbmZvcm1hY2nDs24gZGUgZm9ybWF0b3MgZGUgYXJjaGl2byBhY2VwdGFkb3MuJyxcbiAgKTtcbiAgbWFpbkljb24gPSBpbnB1dDxzdHJpbmc+KCdpbWFnZScpO1xuICBtdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgbmFtZSA9IGlucHV0PHN0cmluZz4oZ2V0VVVJRCgpKTtcbiAgcHJvZ3Jlc3MgPSBpbnB1dDxSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHwgbnVtYmVyPih7fSk7XG5cbiAgbmV3RmlsZSA9IG91dHB1dDxGaWxlIHwgRmlsZVtdPigpO1xuICBmaWxlUmVtb3ZlZCA9IG91dHB1dDxzdHJpbmc+KCk7XG5cbiAgdmFsaWRGaWxlOiBib29sZWFuID0gdHJ1ZTtcbiAgaW5wdXQ/OiBIVE1MSW5wdXRFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlc1sncHJvZ3Jlc3MnXSB8fFxuICAgICAgY2hhbmdlc1snYWNjZXB0ZWRFeHRlbnNpb25zJ10gfHxcbiAgICAgIGNoYW5nZXNbJ2ZpbGVTaXplJ11cbiAgICApIHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5pbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmICh0aGlzLmlucHV0LmZpbGVzPy5bMF0pIHtcbiAgICAgIGNvbnN0IGZpbGVzID0gdGhpcy5pbnB1dC5maWxlcztcbiAgICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuZ2V0RmlsZUFuZFZhbGlkYXRlKHRoaXMubXVsdGlwbGUoKSA/IEFycmF5LmZyb20oZmlsZXMpIDogZmlsZXNbMF0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZUFuZFZhbGlkYXRlKGZpbGU6IEZpbGUgfCBGaWxlW10pOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlc0FycmF5ID0gQXJyYXkuaXNBcnJheShmaWxlKSA/IGZpbGUgOiBbZmlsZV07XG4gICAgY29uc3QgdmFsaWRGaWxlczogRmlsZVtdID0gW107XG5cbiAgICBpZiAoIXRoaXMubXVsdGlwbGUoKSkge1xuICAgICAgdGhpcy5maWxlRGF0YUxpc3QgPSBbXTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHNpbmdsZUZpbGUgb2YgZmlsZXNBcnJheSkge1xuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHNpbmdsZUZpbGUubmFtZS5zcGxpdCgnLicpLmF0KC0xKTtcbiAgICAgIGNvbnN0IGlzVmFsaWRGaWxlVHlwZSA9IHRoaXMuYWNjZXB0ZWRFeHRlbnNpb25zKCkuaW5jbHVkZXMoXG4gICAgICAgIGZpbGVFeHRlbnNpb24gPz8gJycsXG4gICAgICApO1xuICAgICAgY29uc3QgZmlsZVNpemVJbk1CID0gc2luZ2xlRmlsZS5zaXplIC8gMTA0ODU3NjtcbiAgICAgIGNvbnN0IGlzVmFsaWRTaXplID0gZmlsZVNpemVJbk1CIDw9IHRoaXMuZmlsZVNpemUoKTtcblxuICAgICAgY29uc3QgYWxyZWFkeUV4aXN0cyA9IHRoaXMuZmlsZURhdGFMaXN0LnNvbWUoXG4gICAgICAgIChleGlzdGluZykgPT4gZXhpc3RpbmcubmFtZSA9PT0gc2luZ2xlRmlsZS5uYW1lLFxuICAgICAgKTtcblxuICAgICAgaWYgKGFscmVhZHlFeGlzdHMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc1ZhbGlkRmlsZVR5cGUgJiYgaXNWYWxpZFNpemUpIHtcbiAgICAgICAgY29uc3QgZmlsZURhdGE6IEZpbGVEYXRhID0ge1xuICAgICAgICAgIG5hbWU6IHNpbmdsZUZpbGUubmFtZSxcbiAgICAgICAgICBzaXplOiBmaWxlU2l6ZUluTUIsXG4gICAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICAgIGVycm9yVHlwZTogbnVsbCxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmZpbGVEYXRhTGlzdC5wdXNoKGZpbGVEYXRhKTtcbiAgICAgICAgdmFsaWRGaWxlcy5wdXNoKHNpbmdsZUZpbGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maWxlRGF0YUxpc3QucHVzaCh7XG4gICAgICAgICAgbmFtZTogc2luZ2xlRmlsZS5uYW1lLFxuICAgICAgICAgIHNpemU6IGZpbGVTaXplSW5NQixcbiAgICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgICBlcnJvclR5cGU6ICFpc1ZhbGlkRmlsZVR5cGUgPyAnZm9ybWF0JyA6ICdzaXplJyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZEZpbGUgPSB2YWxpZEZpbGVzLmxlbmd0aCA+IDA7XG5cbiAgICBpZiAodGhpcy52YWxpZEZpbGUpIHtcbiAgICAgIHRoaXMubmV3RmlsZS5lbWl0KHRoaXMubXVsdGlwbGUoKSA/IHZhbGlkRmlsZXMgOiB2YWxpZEZpbGVzWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkVycm9yRmlsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVGaWxlKGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVEYXRhTGlzdCA9IHRoaXMuZmlsZURhdGFMaXN0LmZpbHRlcihcbiAgICAgIChmaWxlKSA9PiBmaWxlLm5hbWUgIT09IGZpbGVOYW1lLFxuICAgICk7XG5cbiAgICBjb25zdCBoYXNGb3JtYXRFcnJvcnNPbmx5ID0gdGhpcy5maWxlRGF0YUxpc3Quc29tZShcbiAgICAgIChmaWxlKSA9PiBmaWxlLmVycm9yICYmIGZpbGUuZXJyb3JUeXBlID09PSAnZm9ybWF0JyxcbiAgICApO1xuXG4gICAgdGhpcy52YWxpZEZpbGUgPSB0aGlzLmZpbGVEYXRhTGlzdC5sZW5ndGggPiAwICYmICFoYXNGb3JtYXRFcnJvcnNPbmx5O1xuXG4gICAgaWYgKHRoaXMuZmlsZURhdGFMaXN0Lmxlbmd0aCA9PT0gMCAmJiB0aGlzLmlucHV0KSB7XG4gICAgICB0aGlzLmlucHV0LnZhbHVlID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5maWxlUmVtb3ZlZC5lbWl0KGZpbGVOYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgb25FcnJvckZpbGUoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dCAmJiAodGhpcy5pbnB1dC52YWx1ZSA9ICcnKTtcbiAgICB0aGlzLnZhbGlkRmlsZSA9IGZhbHNlO1xuICB9XG5cbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgdGhpcy52YWxpZEZpbGUgPSB0cnVlO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgZHJvcHpvbmVFbGVtZW50ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBkcm9wem9uZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYm1iLWRyb3Atem9uZS1kcmFnLW92ZXInKTtcbiAgfVxuXG4gIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGRyb3B6b25lRWxlbWVudCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgZHJvcHpvbmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2JtYi1kcm9wLXpvbmUtZHJhZy1vdmVyJyk7XG4gIH1cblxuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgZHJvcHpvbmVFbGVtZW50ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBkcm9wem9uZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYm1iLWRyb3Atem9uZScpO1xuICAgIGRyb3B6b25lRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdibWItZHJvcC16b25lLWRyYWctb3ZlcicpO1xuXG4gICAgY29uc3QgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzO1xuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmdldEZpbGVBbmRWYWxpZGF0ZSh0aGlzLm11bHRpcGxlKCkgPyBBcnJheS5mcm9tKGZpbGVzKSA6IGZpbGVzWzBdKTtcbiAgICB9XG4gIH1cblxuICBnZXRQcm9ncmVzcyhmaWxlTmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBwcm9ncmVzcyA9IHRoaXMucHJvZ3Jlc3MoKTtcbiAgICBpZiAodHlwZW9mIHByb2dyZXNzID09PSAnbnVtYmVyJykgcmV0dXJuIHByb2dyZXNzO1xuICAgIHJldHVybiBwcm9ncmVzcz8uW2ZpbGVOYW1lXSA/PyAwO1xuICB9XG5cbiAgaXNJbnZhbGlkRmlsZU9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZURhdGFMaXN0LnNvbWUoXG4gICAgICAoZmlsZSkgPT4gZmlsZS5lcnJvciAmJiBmaWxlLmVycm9yVHlwZSA9PT0gJ2Zvcm1hdCcsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVEYXRhTGlzdCA9IFtdO1xuICAgIHRoaXMudmFsaWRGaWxlID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBnZXREcm9wWm9uZUNsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjbGFzc0xpc3QgPSBbXTtcblxuICAgIGlmICh0aGlzLmlzSW52YWxpZEZpbGVPbmx5KCkpIHtcbiAgICAgIGNsYXNzTGlzdC5wdXNoKCdibWItZHJvcC16b25lLWVycm9yJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZmlsZURhdGFMaXN0Lmxlbmd0aCA+IDAgJiYgISF0aGlzLmZpbGVEYXRhTGlzdFswXS5uYW1lKSB7XG4gICAgICBjbGFzc0xpc3QucHVzaCgnYm1iLWRyb3Atem9uZS1kcmFnLW92ZXInKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hcHBlYXJhbmNlQ29udHJhc3QoKSA9PT0gJ3ByaW1hcnknKSB7XG4gICAgICBjbGFzc0xpc3QucHVzaCgnYm1iLWRyb3Atem9uZS1jb250YWluZXItcHJpbWFyeScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFwcGVhcmFuY2VDb250cmFzdCgpID09PSAnYWx0ZXJuYXRpdmUnKSB7XG4gICAgICBjbGFzc0xpc3QucHVzaCgnYm1iLWRyb3Atem9uZS1jb250YWluZXItYWx0ZXJuYXRpdmUnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3NMaXN0O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYm1iLWRyb3Atem9uZVwiPlxuICA8c2VjdGlvblxuICAgIGNsYXNzPVwiYm1iLWRyb3Atem9uZS1jb250YWluZXJcIlxuICAgIFtuZ0NsYXNzXT1cImdldERyb3Bab25lQ2xhc3MoKVwiXG4gICAgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXG4gICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImJtYi1kcm9wLXpvbmUtaWNvblwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdibWItZHJvcC16b25lLWljb24tdmFsaWQnOlxuICAgICAgICAgIHZhbGlkRmlsZSAmJiBmaWxlRGF0YUxpc3QubGVuZ3RoID4gMCAmJiAhIWZpbGVEYXRhTGlzdFswXS5uYW1lLFxuICAgICAgICAnYm1iLWRyb3Atem9uZS1pY29uLWVycm9yJzogaXNJbnZhbGlkRmlsZU9ubHkoKVxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGJtYi1pY29uIFtpY29uXT1cIm1haW5JY29uKClcIiBbc2l6ZV09XCI0OFwiIGFsdD1cIkRyb3Agem9uZSBpY29uXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8cCBjbGFzcz1cImJtYi1kcm9wLXpvbmUtbGFiZWwtZm9ybWF0XCI+e3sgZm9ybWF0RmlsZXNMYWJlbCgpIH19PC9wPlxuICAgIDxwIGNsYXNzPVwiYm1iLWRyb3Atem9uZS1sYWJlbC1mb3JtYXQtaW5zdHJ1Y3Rpb25cIj5cbiAgICAgIHt7IGRyb3BJbnN0cnVjdGlvbigpIH19XG4gICAgICA8bGFiZWwgY2xhc3M9XCJibWItZHJvcC16b25lLWxpbmtcIiBbaHRtbEZvcl09XCJuYW1lKClcIj5cbiAgICAgICAge3sgZHJvcExhYmVsKCkgfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9wPlxuICAgIEBpZiAoaXNJbnZhbGlkRmlsZU9ubHkoKSkge1xuICAgICAgPHAgY2xhc3M9XCJibWItZHJvcC16b25lLWxhYmVsLWZvcm1hdC1lcnJvciBibWItZHJvcC16b25lLWxhYmVsLWZvcm1hdFwiPlxuICAgICAgICB7eyBlcnJvck1lc3NhZ2UoKSB9fVxuICAgICAgPC9wPlxuICAgICAgQGlmIChsaW5rRmlsZXNTdXBwb3J0ZWQoKSkge1xuICAgICAgICA8Ym1iLXRleHQtbGlua1xuICAgICAgICAgIHRleHRMaW5rU3R5bGU9XCJ1bmRlcmxpbmVkXCJcbiAgICAgICAgICBbbGlua109XCJsaW5rRmlsZXNTdXBwb3J0ZWQoKVwiXG4gICAgICAgICAgW3RleHRMaW5rXT1cImxpbmtMYWJlbCgpXCJcbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICB9XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBbaWRdPVwibmFtZSgpXCJcbiAgICAgIFtuYW1lXT1cIm5hbWUoKVwiXG4gICAgICBbYWNjZXB0XT1cImFjY2VwdGVkRXh0ZW5zaW9ucygpLnRvU3RyaW5nKClcIlxuICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcbiAgICAgIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiXG4gICAgLz5cbiAgPC9zZWN0aW9uPlxuICBAaWYgKGZpbGVEYXRhTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgQGZvciAoZmlsZSBvZiBmaWxlRGF0YUxpc3Q7IHRyYWNrIGZpbGUubmFtZSkge1xuICAgICAgPGJtYi1jYXJkIG1hcmdpbj1cIm5vbmVcIiB0eXBlPVwidHJhbnNwYXJlbnRcIj5cbiAgICAgICAgPGJtYi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJibWItZHJvcC16b25lLWxpc3QtZmlsZXNcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnYm1iLWRyb3Atem9uZS1saXN0LWZpbGVzLWxvYWRpbmcnOlxuICAgICAgICAgICAgICAgICFmaWxlLmVycm9yICYmIGdldFByb2dyZXNzKGZpbGUubmFtZSkgPCAxMDAsXG4gICAgICAgICAgICAgICdibWItZHJvcC16b25lLWxpc3QtZmlsZXMtZXJyb3InOiBmaWxlLmVycm9yLFxuICAgICAgICAgICAgICAnYm1iLWRyb3Atem9uZS1saXN0LWZpbGVzLXZhbGlkJzogZ2V0UHJvZ3Jlc3MoZmlsZS5uYW1lKSA9PT0gMTAwXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImJtYi1kcm9wLXpvbmUtbGlzdC1maWxlcy1pY29uXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdibWItZHJvcC16b25lLWxpc3QtZmlsZXMtaWNvbi1zcGluJzpcbiAgICAgICAgICAgICAgICAgICFmaWxlLmVycm9yICYmIGdldFByb2dyZXNzKGZpbGUubmFtZSkgPCAxMDBcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEBpZiAoIXZhbGlkRmlsZSkge1xuICAgICAgICAgICAgICAgIDxibWItaWNvbiBpY29uPVwidXBsb2FkX2ZpbGVcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGdldFByb2dyZXNzKGZpbGUubmFtZSkgPCAxMDApIHtcbiAgICAgICAgICAgICAgICA8Ym1iLWljb24gaWNvbj1cInByb2dyZXNzX2FjdGl2aXR5XCIgW3NpemVdPVwiMjRcIiBjbGFzcz1cInNwaW5cIiAvPlxuICAgICAgICAgICAgICB9IEBlbHNlIGlmICh2YWxpZEZpbGUpIHtcbiAgICAgICAgICAgICAgICA8Ym1iLWljb24gaWNvbj1cInRhc2tcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJtYi1kcm9wLXpvbmUtbGlzdC1uYW1lXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJibWItZHJvcC16b25lLWxpc3Qtc3RhdHVzXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAnYm1iLWRyb3Atem9uZS1saXN0LXN0YXR1cy1zdWNjZXNzJzpcbiAgICAgICAgICAgICAgICAgICAgZ2V0UHJvZ3Jlc3MoZmlsZS5uYW1lKSA9PT0gMTAwXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKHZhbGlkRmlsZSAmJiBnZXRQcm9ncmVzcyhmaWxlLm5hbWUpIDwgMTAwKSB7XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRQcm9ncmVzcyhmaWxlLm5hbWUpIH19JSAvIDEwMCU8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChnZXRQcm9ncmVzcyhmaWxlLm5hbWUpID09PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgIHt7IGZpbGUuc2l6ZS50b0ZpeGVkKDIpIH19IE1CXG4gICAgICAgICAgICAgICAgICA8Ym1iLWljb25cbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImNoZWNrX2NpcmNsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIjI0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWNjZXNzLWljb25cIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICByZW1vdmVCdXR0b247XG4gICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyBmaWxlTmFtZTogZmlsZS5uYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKGZpbGUuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGZpbGUuZXJyb3JUeXBlID09PSAnZm9ybWF0Jykge1xuICAgICAgICAgICAgICAgICAgICAgIHt7IGVycm9yTWVzc2FnZUZvcm1hdCgpIH19XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGZpbGUuZXJyb3JUeXBlID09PSAnc2l6ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICB7eyBlcnJvck1lc3NhZ2VTaXplKCkgfX0gKHt7IGZpbGUuc2l6ZS50b0ZpeGVkKDIpIH19IE1CKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQnV0dG9uO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgZmlsZU5hbWU6IGZpbGUubmFtZSB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3JlbW92ZUJ1dHRvbiBsZXQtZmlsZU5hbWU9XCJmaWxlTmFtZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYm1iLWRyb3Atem9uZS1saXN0LXJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRmlsZShmaWxlTmFtZSlcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGJtYi1pY29uIGljb249XCJkZWxldGVcIiBbc2l6ZV09XCIyNFwiIGNsYXNzPVwiZGVsZXRlLWljb25cIiAvPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAodmFsaWRGaWxlICYmIGdldFByb2dyZXNzKGZpbGUubmFtZSkgPCAxMDApIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJibWItZHJvcC16b25lLWxpc3QtdXBsb2FkXCI+XG4gICAgICAgICAgICAgICAgPGJtYi1wcm9ncmVzcy1iYXJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJzaW1wbGVcIlxuICAgICAgICAgICAgICAgICAgW2NvdW50ZXJdPVwiZ2V0UHJvZ3Jlc3MoZmlsZS5uYW1lKVwiXG4gICAgICAgICAgICAgICAgICBbdG90YWxDb3VudF09XCIxMDBcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9ibWItY2FyZC1jb250ZW50PlxuICAgICAgPC9ibWItY2FyZD5cbiAgICB9XG4gIH1cbjwvZGl2PlxuIl19
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWRyb3B6b25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcHpvbmUvYm1iLWRyb3B6b25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcHpvbmUvYm1iLWRyb3B6b25lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUVOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixHQUN4QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQStCekQsTUFBTSxPQUFPLG9CQUFvQjtJQXdCL0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF2QjFDLHVCQUFrQixHQUFHLEtBQUssQ0FBZSxTQUFTLENBQUMsQ0FBQztRQUNwRCx1QkFBa0IsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFZLENBQUM7UUFDaEQsb0JBQWUsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNsQyxjQUFTLEdB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U0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLGFBQWE7cUJBQ2QsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJtYkljb25Db21wb25lbnQgfSBmcm9tICcuLi9ibWItaWNvbi9ibWItaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iVGV4dExpbmtDb21wb25lbnQgfSBmcm9tICcuLi9ibWItdGV4dC1saW5rL2JtYi10ZXh0LWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEJtYkNhcmRDb21wb25lbnQsXG4gIEJtYkNhcmRDb250ZW50Q29tcG9uZW50LFxufSBmcm9tICcuLi9ibWItY2FyZC9ibWItY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iUHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tICcuLi9ibWItcHJvZ3Jlc3MtYmFyL2JtYi1wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IGdldFVVSUQgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBJQm1iQ29udHJhc3QgfSBmcm9tICcuLi8uLi90eXBlcy9jb2xvcnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0aW9ucyc7XG5pbnRlcmZhY2UgRmlsZURhdGEge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNpemU6IG51bWJlcjtcbiAgYmFzZTY0Pzogc3RyaW5nO1xuICBlcnJvcj86IGJvb2xlYW47XG4gIGVycm9yVHlwZT86ICdmb3JtYXQnIHwgJ3NpemUnIHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIElCbWJGaWxlVmFsaWRhdGlvbiB7XG4gIGlzVmFsaWRGb3JtYXQ6IGJvb2xlYW47XG4gIGlzVmFsaWRTaXplOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdibWItZHJvcHpvbmUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJtYkljb25Db21wb25lbnQsXG4gICAgQm1iVGV4dExpbmtDb21wb25lbnQsXG4gICAgQm1iQ2FyZENvbXBvbmVudCxcbiAgICBCbWJDYXJkQ29udGVudENvbXBvbmVudCxcbiAgICBCbWJQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYm1iLWRyb3B6b25lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2JtYi1kcm9wem9uZS5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBCbWJEcm9wem9uZUNvbXBvbmVudCB7XG4gIGFwcGVhcmFuY2VDb250cmFzdCA9IGlucHV0PElCbWJDb250cmFzdD4oJ2RlZmF1bHQnKTtcbiAgYWNjZXB0ZWRFeHRlbnNpb25zID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nW10+KCk7XG4gIGRyb3BJbnN0cnVjdGlvbiA9IGlucHV0PHN0cmluZz4oKTtcbiAgZHJvcExhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICBlcnJvck1lc3NhZ2UgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGVycm9yTWVzc2FnZUZvcm1hdCA9IGlucHV0PHN0cmluZz4oKTtcbiAgZXJyb3JNZXNzYWdlU2l6ZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgZmlsZURhdGFMaXN0OiBGaWxlRGF0YVtdID0gW107XG4gIGZpbGVTaXplID0gaW5wdXQ8bnVtYmVyPigyKTtcbiAgZm9ybWF0RmlsZXNMYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcbiAgbGlua0ZpbGVzU3VwcG9ydGVkID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIGxpbmtMYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcbiAgbWFpbkljb24gPSBpbnB1dDxzdHJpbmc+KCdpbWFnZScpO1xuICBtdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgbmFtZSA9IGlucHV0PHN0cmluZz4oZ2V0VVVJRCgpKTtcbiAgcHJvZ3Jlc3MgPSBpbnB1dDxSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHwgbnVtYmVyPih7fSk7XG5cbiAgbmV3RmlsZSA9IG91dHB1dDxGaWxlIHwgRmlsZVtdPigpO1xuICBmaWxlUmVtb3ZlZCA9IG91dHB1dDxzdHJpbmc+KCk7XG5cbiAgdmFsaWRGaWxlOiBib29sZWFuID0gdHJ1ZTtcbiAgaW5wdXQ/OiBIVE1MSW5wdXRFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlc1sncHJvZ3Jlc3MnXSB8fFxuICAgICAgY2hhbmdlc1snYWNjZXB0ZWRFeHRlbnNpb25zJ10gfHxcbiAgICAgIGNoYW5nZXNbJ2ZpbGVTaXplJ11cbiAgICApIHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5pbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmICh0aGlzLmlucHV0LmZpbGVzPy5bMF0pIHtcbiAgICAgIGNvbnN0IGZpbGVzID0gdGhpcy5pbnB1dC5maWxlcztcbiAgICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuZ2V0RmlsZUFuZFZhbGlkYXRlKHRoaXMubXVsdGlwbGUoKSA/IEFycmF5LmZyb20oZmlsZXMpIDogZmlsZXNbMF0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZEZpbGVUeXBlKGZpbGVUeXBlOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmFjY2VwdGVkRXh0ZW5zaW9ucygpLnNvbWUoKGVsZW1lbnQ6IHN0cmluZykgPT4gZWxlbWVudC5pbmNsdWRlcygnLycpKVxuICAgICkge1xuICAgICAgY29uc3QgdHlwZXMgPSB0aGlzLmFjY2VwdGVkRXh0ZW5zaW9ucygpLmZpbHRlcigoZWxlbWVudDogc3RyaW5nKSA9PlxuICAgICAgICBlbGVtZW50LmVuZHNXaXRoKCcvKicpLFxuICAgICAgKTtcbiAgICAgIGlmIChcbiAgICAgICAgISF0eXBlcy5sZW5ndGggJiZcbiAgICAgICAgdHlwZXMuc29tZShcbiAgICAgICAgICAoZWxlbWVudDogc3RyaW5nKSA9PlxuICAgICAgICAgICAgZWxlbWVudC5zdWJzdHJpbmcoMCwgZWxlbWVudC5sZW5ndGggLSAyKSA9PT1cbiAgICAgICAgICAgIGZpbGVUeXBlLnN1YnN0cmluZygwLCBlbGVtZW50Lmxlbmd0aCAtIDIpLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5hY2NlcHRlZEV4dGVuc2lvbnMoKS5pbmNsdWRlcyhmaWxlVHlwZSkpIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuYWNjZXB0ZWRFeHRlbnNpb25zKCkuaW5jbHVkZXMoXG4gICAgICAgIGZpbGVOYW1lLnN1YnN0cmluZyhmaWxlTmFtZS5sYXN0SW5kZXhPZignLicpICsgMSksXG4gICAgICApXG4gICAgKVxuICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGVTaXplSW5NQihmaWxlU2l6ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZmlsZVNpemUgLyAxMDQ4NTc2O1xuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkRmlsZVNpemUoZmlsZVNpemU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldEZpbGVTaXplSW5NQihmaWxlU2l6ZSkgPD0gdGhpcy5maWxlU2l6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpbGVEdXBsaWNhdGUoZmlsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbGVEYXRhTGlzdC5zb21lKChleGlzdGluZykgPT4gZXhpc3RpbmcubmFtZSA9PT0gZmlsZU5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlQW5kVmFsaWRhdGUoZmlsZTogRmlsZSB8IEZpbGVbXSk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGVzQXJyYXkgPSBBcnJheS5pc0FycmF5KGZpbGUpID8gZmlsZSA6IFtmaWxlXTtcbiAgICBjb25zdCB2YWxpZEZpbGVzOiBGaWxlW10gPSBbXTtcblxuICAgIGlmICghdGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICB0aGlzLmZpbGVEYXRhTGlzdCA9IFtdO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qgc2luZ2xlRmlsZSBvZiBmaWxlc0FycmF5KSB7XG4gICAgICBpZiAodGhpcy5pc0ZpbGVEdXBsaWNhdGUoc2luZ2xlRmlsZS5uYW1lKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZVZhbGlkYXRpb246IElCbWJGaWxlVmFsaWRhdGlvbiA9IHtcbiAgICAgICAgaXNWYWxpZEZvcm1hdDogdGhpcy5pc1ZhbGlkRmlsZVR5cGUoc2luZ2xlRmlsZS50eXBlLCBzaW5nbGVGaWxlLm5hbWUpLFxuICAgICAgICBpc1ZhbGlkU2l6ZTogdGhpcy5pc1ZhbGlkRmlsZVNpemUoc2luZ2xlRmlsZS5zaXplKSxcbiAgICAgIH07XG4gICAgICBjb25zdCBmaWxlRGF0YTogRmlsZURhdGEgPSB7XG4gICAgICAgIG5hbWU6IHNpbmdsZUZpbGUubmFtZSxcbiAgICAgICAgc2l6ZTogdGhpcy5nZXRGaWxlU2l6ZUluTUIoc2luZ2xlRmlsZS5zaXplKSxcbiAgICAgICAgZXJyb3I6ICFmaWxlVmFsaWRhdGlvbi5pc1ZhbGlkRm9ybWF0IHx8ICFmaWxlVmFsaWRhdGlvbi5pc1ZhbGlkU2l6ZSxcbiAgICAgICAgZXJyb3JUeXBlOiAhZmlsZVZhbGlkYXRpb24uaXNWYWxpZEZvcm1hdCA/ICdmb3JtYXQnIDogJ3NpemUnLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5maWxlRGF0YUxpc3QucHVzaChmaWxlRGF0YSk7XG4gICAgICBpZiAoZmlsZVZhbGlkYXRpb24uaXNWYWxpZEZvcm1hdCAmJiBmaWxlVmFsaWRhdGlvbi5pc1ZhbGlkU2l6ZSlcbiAgICAgICAgdmFsaWRGaWxlcy5wdXNoKHNpbmdsZUZpbGUpO1xuICAgIH1cblxuICAgIGlmICghIXZhbGlkRmlsZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLm5ld0ZpbGUuZW1pdCh0aGlzLm11bHRpcGxlKCkgPyB2YWxpZEZpbGVzIDogdmFsaWRGaWxlc1swXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25FcnJvckZpbGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRmlsZShmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5maWxlRGF0YUxpc3QgPSB0aGlzLmZpbGVEYXRhTGlzdC5maWx0ZXIoXG4gICAgICAoZmlsZSkgPT4gZmlsZS5uYW1lICE9PSBmaWxlTmFtZSxcbiAgICApO1xuXG4gICAgY29uc3QgaGFzRm9ybWF0RXJyb3JzT25seSA9IHRoaXMuZmlsZURhdGFMaXN0LnNvbWUoXG4gICAgICAoZmlsZSkgPT4gZmlsZS5lcnJvciAmJiBmaWxlLmVycm9yVHlwZSA9PT0gJ2Zvcm1hdCcsXG4gICAgKTtcblxuICAgIHRoaXMudmFsaWRGaWxlID0gdGhpcy5maWxlRGF0YUxpc3QubGVuZ3RoID4gMCAmJiAhaGFzRm9ybWF0RXJyb3JzT25seTtcblxuICAgIGlmICh0aGlzLmZpbGVEYXRhTGlzdC5sZW5ndGggPT09IDAgJiYgdGhpcy5pbnB1dCkge1xuICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIHRoaXMuZmlsZVJlbW92ZWQuZW1pdChmaWxlTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIG9uRXJyb3JGaWxlKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXQgJiYgKHRoaXMuaW5wdXQudmFsdWUgPSAnJyk7XG4gICAgdGhpcy52YWxpZEZpbGUgPSBmYWxzZTtcbiAgfVxuXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIHRoaXMudmFsaWRGaWxlID0gdHJ1ZTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGRyb3B6b25lRWxlbWVudCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgZHJvcHpvbmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2JtYi1kcm9wLXpvbmUtZHJhZy1vdmVyJyk7XG4gIH1cblxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBkcm9wem9uZUVsZW1lbnQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGRyb3B6b25lRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdibWItZHJvcC16b25lLWRyYWctb3ZlcicpO1xuICB9XG5cbiAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGRyb3B6b25lRWxlbWVudCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgZHJvcHpvbmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2JtYi1kcm9wLXpvbmUnKTtcbiAgICBkcm9wem9uZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYm1iLWRyb3Atem9uZS1kcmFnLW92ZXInKTtcblxuICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcztcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5nZXRGaWxlQW5kVmFsaWRhdGUodGhpcy5tdWx0aXBsZSgpID8gQXJyYXkuZnJvbShmaWxlcykgOiBmaWxlc1swXSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UHJvZ3Jlc3MoZmlsZU5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgcHJvZ3Jlc3MgPSB0aGlzLnByb2dyZXNzKCk7XG4gICAgaWYgKHR5cGVvZiBwcm9ncmVzcyA9PT0gJ251bWJlcicpIHJldHVybiBwcm9ncmVzcztcbiAgICByZXR1cm4gcHJvZ3Jlc3M/LltmaWxlTmFtZV0gPz8gMDtcbiAgfVxuXG4gIGlzSW52YWxpZEZpbGVPbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbGVEYXRhTGlzdC5zb21lKFxuICAgICAgKGZpbGUpID0+IGZpbGUuZXJyb3IgJiYgZmlsZS5lcnJvclR5cGUgPT09ICdmb3JtYXQnLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWxlRGF0YUxpc3QgPSBbXTtcbiAgICB0aGlzLnZhbGlkRmlsZSA9IHRydWU7XG4gICAgaWYgKHRoaXMuaW5wdXQpIHtcbiAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0RHJvcFpvbmVDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY2xhc3NMaXN0ID0gW107XG5cbiAgICBpZiAodGhpcy5pc0ludmFsaWRGaWxlT25seSgpKSB7XG4gICAgICBjbGFzc0xpc3QucHVzaCgnYm1iLWRyb3Atem9uZS1lcnJvcicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZpbGVEYXRhTGlzdC5sZW5ndGggPiAwICYmICEhdGhpcy5maWxlRGF0YUxpc3RbMF0ubmFtZSkge1xuICAgICAgY2xhc3NMaXN0LnB1c2goJ2JtYi1kcm9wLXpvbmUtZHJhZy1vdmVyJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXBwZWFyYW5jZUNvbnRyYXN0KCkgPT09ICdwcmltYXJ5Jykge1xuICAgICAgY2xhc3NMaXN0LnB1c2goJ2JtYi1kcm9wLXpvbmUtY29udGFpbmVyLXByaW1hcnknKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hcHBlYXJhbmNlQ29udHJhc3QoKSA9PT0gJ2FsdGVybmF0aXZlJykge1xuICAgICAgY2xhc3NMaXN0LnB1c2goJ2JtYi1kcm9wLXpvbmUtY29udGFpbmVyLWFsdGVybmF0aXZlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzTGlzdDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJtYi1kcm9wLXpvbmVcIj5cbiAgPHNlY3Rpb25cbiAgICBjbGFzcz1cImJtYi1kcm9wLXpvbmUtY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJnZXREcm9wWm9uZUNsYXNzKClcIlxuICAgIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxuICAgIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXG4gICAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJibWItZHJvcC16b25lLWljb25cIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnYm1iLWRyb3Atem9uZS1pY29uLXZhbGlkJzpcbiAgICAgICAgICB2YWxpZEZpbGUgJiYgZmlsZURhdGFMaXN0Lmxlbmd0aCA+IDAgJiYgISFmaWxlRGF0YUxpc3RbMF0ubmFtZSxcbiAgICAgICAgJ2JtYi1kcm9wLXpvbmUtaWNvbi1lcnJvcic6IGlzSW52YWxpZEZpbGVPbmx5KClcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxibWItaWNvbiBbaWNvbl09XCJtYWluSWNvbigpXCIgW3NpemVdPVwiNDhcIiBhbHQ9XCJEcm9wIHpvbmUgaWNvblwiIC8+XG4gICAgPC9kaXY+XG4gICAgPHAgY2xhc3M9XCJibWItZHJvcC16b25lLWxhYmVsLWZvcm1hdFwiPlxuICAgICAge3sgZm9ybWF0RmlsZXNMYWJlbCgpIHx8ICgnZHJvcHpvbmUuZm9ybWF0X2ZpbGVzX2xhYmVsJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICA8L3A+XG4gICAgPHAgY2xhc3M9XCJibWItZHJvcC16b25lLWxhYmVsLWZvcm1hdC1pbnN0cnVjdGlvblwiPlxuICAgICAge3sgZHJvcEluc3RydWN0aW9uKCkgfHwgKCdkcm9wem9uZS5kcm9wX2luc3RydWN0aW9ucycgfCB0cmFuc2xhdGUpIH19XG4gICAgICA8bGFiZWwgY2xhc3M9XCJibWItZHJvcC16b25lLWxpbmtcIiBbaHRtbEZvcl09XCJuYW1lKClcIj5cbiAgICAgICAge3sgZHJvcExhYmVsKCkgfHwgKCdkcm9wem9uZS5kcm9wX2xhYmVsJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9wPlxuICAgIEBpZiAoaXNJbnZhbGlkRmlsZU9ubHkoKSkge1xuICAgICAgPHAgY2xhc3M9XCJibWItZHJvcC16b25lLWxhYmVsLWZvcm1hdC1lcnJvciBibWItZHJvcC16b25lLWxhYmVsLWZvcm1hdFwiPlxuICAgICAgICB7eyBlcnJvck1lc3NhZ2UoKSB8fCAoJ2Ryb3B6b25lLmVycm9yX21lc3NhZ2UnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgPC9wPlxuICAgICAgQGlmIChsaW5rRmlsZXNTdXBwb3J0ZWQoKSkge1xuICAgICAgICA8Ym1iLXRleHQtbGlua1xuICAgICAgICAgIHRleHRMaW5rU3R5bGU9XCJ1bmRlcmxpbmVkXCJcbiAgICAgICAgICBbbGlua109XCJsaW5rRmlsZXNTdXBwb3J0ZWQoKVwiXG4gICAgICAgICAgW3RleHRMaW5rXT1cImxpbmtMYWJlbCgpIHx8ICgnZHJvcHpvbmUubGlua19sYWJlbCcgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICB9XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBbaWRdPVwibmFtZSgpXCJcbiAgICAgIFtuYW1lXT1cIm5hbWUoKVwiXG4gICAgICBbYWNjZXB0XT1cImFjY2VwdGVkRXh0ZW5zaW9ucygpLnRvU3RyaW5nKClcIlxuICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcbiAgICAgIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiXG4gICAgLz5cbiAgPC9zZWN0aW9uPlxuICBAaWYgKGZpbGVEYXRhTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgQGZvciAoZmlsZSBvZiBmaWxlRGF0YUxpc3Q7IHRyYWNrIGZpbGUubmFtZSkge1xuICAgICAgPGJtYi1jYXJkIG1hcmdpbj1cIm5vbmVcIiB0eXBlPVwidHJhbnNwYXJlbnRcIj5cbiAgICAgICAgPGJtYi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJibWItZHJvcC16b25lLWxpc3QtZmlsZXNcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnYm1iLWRyb3Atem9uZS1saXN0LWZpbGVzLWxvYWRpbmcnOlxuICAgICAgICAgICAgICAgICFmaWxlLmVycm9yICYmIGdldFByb2dyZXNzKGZpbGUubmFtZSkgPCAxMDAsXG4gICAgICAgICAgICAgICdibWItZHJvcC16b25lLWxpc3QtZmlsZXMtZXJyb3InOiBmaWxlLmVycm9yLFxuICAgICAgICAgICAgICAnYm1iLWRyb3Atem9uZS1saXN0LWZpbGVzLXZhbGlkJzogZ2V0UHJvZ3Jlc3MoZmlsZS5uYW1lKSA9PT0gMTAwXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImJtYi1kcm9wLXpvbmUtbGlzdC1maWxlcy1pY29uXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdibWItZHJvcC16b25lLWxpc3QtZmlsZXMtaWNvbi1zcGluJzpcbiAgICAgICAgICAgICAgICAgICFmaWxlLmVycm9yICYmIGdldFByb2dyZXNzKGZpbGUubmFtZSkgPCAxMDBcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEBpZiAoIXZhbGlkRmlsZSkge1xuICAgICAgICAgICAgICAgIDxibWItaWNvbiBpY29uPVwidXBsb2FkX2ZpbGVcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGdldFByb2dyZXNzKGZpbGUubmFtZSkgPCAxMDApIHtcbiAgICAgICAgICAgICAgICA8Ym1iLWljb24gaWNvbj1cInByb2dyZXNzX2FjdGl2aXR5XCIgW3NpemVdPVwiMjRcIiBjbGFzcz1cInNwaW5cIiAvPlxuICAgICAgICAgICAgICB9IEBlbHNlIGlmICh2YWxpZEZpbGUpIHtcbiAgICAgICAgICAgICAgICA8Ym1iLWljb24gaWNvbj1cInRhc2tcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJtYi1kcm9wLXpvbmUtbGlzdC1uYW1lXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJibWItZHJvcC16b25lLWxpc3Qtc3RhdHVzXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAnYm1iLWRyb3Atem9uZS1saXN0LXN0YXR1cy1zdWNjZXNzJzpcbiAgICAgICAgICAgICAgICAgICAgZ2V0UHJvZ3Jlc3MoZmlsZS5uYW1lKSA9PT0gMTAwXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKHZhbGlkRmlsZSAmJiBnZXRQcm9ncmVzcyhmaWxlLm5hbWUpIDwgMTAwKSB7XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRQcm9ncmVzcyhmaWxlLm5hbWUpIH19JSAvIDEwMCU8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChnZXRQcm9ncmVzcyhmaWxlLm5hbWUpID09PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgIHt7IGZpbGUuc2l6ZS50b0ZpeGVkKDIpIH19IE1CXG4gICAgICAgICAgICAgICAgICA8Ym1iLWljb25cbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImNoZWNrX2NpcmNsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIjI0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWNjZXNzLWljb25cIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICByZW1vdmVCdXR0b247XG4gICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyBmaWxlTmFtZTogZmlsZS5uYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKGZpbGUuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGZpbGUuZXJyb3JUeXBlID09PSAnZm9ybWF0Jykge1xuICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2VGb3JtYXQoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2Ryb3B6b25lLmVycm9yX21lc3NhZ2VfZm9ybWF0JyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChmaWxlLmVycm9yVHlwZSA9PT0gJ3NpemUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZVNpemUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2Ryb3B6b25lLmVycm9yX21lc3NhZ2Vfc2l6ZScgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAoe3sgZmlsZS5zaXplLnRvRml4ZWQoMikgfX0gTUIpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICByZW1vdmVCdXR0b247XG4gICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyBmaWxlTmFtZTogZmlsZS5uYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVtb3ZlQnV0dG9uIGxldC1maWxlTmFtZT1cImZpbGVOYW1lXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJibWItZHJvcC16b25lLWxpc3QtcmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGaWxlKGZpbGVOYW1lKVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Ym1iLWljb24gaWNvbj1cImRlbGV0ZVwiIFtzaXplXT1cIjI0XCIgY2xhc3M9XCJkZWxldGUtaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgQGlmICh2YWxpZEZpbGUgJiYgZ2V0UHJvZ3Jlc3MoZmlsZS5uYW1lKSA8IDEwMCkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJtYi1kcm9wLXpvbmUtbGlzdC11cGxvYWRcIj5cbiAgICAgICAgICAgICAgICA8Ym1iLXByb2dyZXNzLWJhclxuICAgICAgICAgICAgICAgICAgdHlwZT1cInNpbXBsZVwiXG4gICAgICAgICAgICAgICAgICBbY291bnRlcl09XCJnZXRQcm9ncmVzcyhmaWxlLm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgIFt0b3RhbENvdW50XT1cIjEwMFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2JtYi1jYXJkLWNvbnRlbnQ+XG4gICAgICA8L2JtYi1jYXJkPlxuICAgIH1cbiAgfVxuPC9kaXY+XG4iXX0=
|