@seniorsistemas/angular-components 19.3.0 → 19.3.2
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/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.d.ts +1 -2
- package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +0 -1
- package/chips/lib/chips/chips/chips.component.d.ts +1 -2
- package/code-editor/lib/code-editor/code-editor.component.d.ts +0 -2
- package/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.d.ts +1 -3
- package/common/lib/svg-factory/svg-factory.directive.d.ts +1 -2
- package/content-generator/lib/content-generator/content-generator.component.d.ts +1 -6
- package/content-generator/lib/services/IAssist/iassist.service.d.ts +0 -3
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +0 -3
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.d.ts +0 -2
- package/currency/lib/currency.service.d.ts +0 -2
- package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +3 -7
- package/custom-fields/lib/custom-fields/custom-fields.service.d.ts +0 -2
- package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +0 -2
- package/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +1 -3
- package/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.d.ts +1 -3
- package/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -3
- package/dynamic-form/dynamic-form/form-field/fields/file-picker/file-picker-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +1 -3
- package/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.d.ts +1 -2
- package/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.d.ts +1 -2
- package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +0 -2
- package/esm2022/badge/lib/badge/badge.component.mjs +3 -3
- package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +10 -13
- package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +7 -11
- package/esm2022/chips/lib/chips/chips/chips.component.mjs +5 -8
- package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +6 -9
- package/esm2022/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.mjs +8 -13
- package/esm2022/common/lib/svg-factory/svg-factory.directive.mjs +6 -10
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +24 -30
- package/esm2022/content-generator/lib/services/IAssist/iassist.service.mjs +9 -12
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +15 -23
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.mjs +6 -9
- package/esm2022/currency/lib/currency.service.mjs +6 -9
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +17 -25
- package/esm2022/custom-fields/lib/custom-fields/custom-fields.service.mjs +6 -9
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +22 -28
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.mjs +6 -10
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +12 -17
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.mjs +5 -8
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.mjs +12 -17
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.mjs +5 -8
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +13 -19
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/file-picker/file-picker-field.component.mjs +6 -10
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +14 -19
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +5 -8
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +5 -8
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +5 -8
- package/esm2022/empty-state/lib/empty-state/go-back/go-back.component.mjs +8 -11
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +17 -21
- package/esm2022/gantt/lib/gantt/components/gantt/gantt.mjs +6 -2
- package/esm2022/gantt/lib/gantt/gantt.component.mjs +8 -4
- package/esm2022/global-search/lib/global-search/global-search.component.mjs +5 -8
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.service.mjs +7 -12
- package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +5 -8
- package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +6 -10
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.mjs +9 -12
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +14 -17
- package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +12 -15
- package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +15 -19
- package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +5 -8
- package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +10 -13
- package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +10 -13
- package/esm2022/kanban/lib/kanban/kanban.component.mjs +23 -17
- package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +10 -16
- package/esm2022/locale/lib/locale/locale.service.mjs +8 -12
- package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +6 -9
- package/esm2022/locale/lib/locale/pipes/localized-currency.pipe.mjs +6 -9
- package/esm2022/locale/lib/locale/pipes/localized-date.pipe.mjs +6 -9
- package/esm2022/locale/lib/locale/pipes/localized-number.pipe.mjs +6 -9
- package/esm2022/locale/lib/locale/pipes/localized-time.pipe.mjs +6 -9
- package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +6 -9
- package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +5 -8
- package/esm2022/numeric/lib/numeric.pipe.mjs +8 -12
- package/esm2022/numeric/lib/numeric.service.mjs +6 -9
- package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +8 -11
- package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +10 -16
- package/esm2022/picklist/lib/picklist/picklist.component.mjs +5 -8
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +15 -19
- package/esm2022/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.mjs +8 -11
- package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +5 -4
- package/esm2022/select-button/lib/select-button/select-button.component.mjs +3 -3
- package/esm2022/shared/lib/accessibility/paginator-accessibility.directive.mjs +8 -13
- package/esm2022/shared/lib/accessibility/table-checkbox-accessibility.directive.mjs +5 -8
- package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +9 -12
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +12 -16
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.service.mjs +12 -16
- package/esm2022/speech-recognition/lib/speech-recognition/text-to-speech.service.mjs +8 -10
- package/esm2022/split-button/lib/split-button/split-button.component.mjs +5 -8
- package/esm2022/table/lib/table/row-toggler/row-toggler.directive.mjs +7 -7
- package/esm2022/table/lib/table/table-column/table-columns.component.mjs +20 -29
- package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +9 -16
- package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +11 -13
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +5 -8
- package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +8 -11
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +16 -24
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +8 -11
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +12 -16
- package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +13 -25
- package/esm2022/toast/lib/toast/toast.service.mjs +7 -12
- package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +10 -14
- package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +6 -10
- package/fesm2022/seniorsistemas-angular-components-badge.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +10 -12
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +6 -10
- package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +10 -18
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -9
- package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +29 -40
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +16 -28
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-currency.mjs +5 -8
- package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +45 -59
- package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +108 -157
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +4 -8
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +17 -22
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs +12 -4
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +6 -11
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +5 -9
- package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +29 -38
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-insights.mjs +17 -22
- package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs +30 -30
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +7 -15
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-locale.mjs +22 -41
- package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +5 -8
- package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs +9 -16
- package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +13 -24
- package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +14 -21
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +11 -14
- package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs +10 -18
- package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +7 -10
- package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +23 -34
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +10 -12
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +30 -47
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +4 -7
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +6 -9
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +30 -55
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-toast.mjs +6 -11
- package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tree.mjs +9 -14
- package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +5 -9
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
- package/file-picker/lib/file-picker/file-picker.component.d.ts +0 -4
- package/file-upload/README.md +9 -37
- package/gantt/lib/gantt/gantt.component.d.ts +1 -0
- package/global-search/lib/global-search/global-search.component.d.ts +1 -2
- package/ia-insight/README.md +17 -0
- package/image-cropper/lib/image-cropper/image-cropper.service.d.ts +1 -2
- package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +1 -2
- package/info-sign/lib/info-sign/info-sign.directive.d.ts +1 -2
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +1 -2
- package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +0 -2
- package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +0 -2
- package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +0 -4
- package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +1 -2
- package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +0 -2
- package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +0 -2
- package/kanban/lib/kanban/kanban.component.d.ts +2 -2
- package/loading-state/lib/loading-state/loading-state.directive.d.ts +1 -2
- package/locale/lib/locale/locale.service.d.ts +0 -3
- package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +0 -2
- package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +0 -2
- package/locale/lib/locale/pipes/localized-date.pipe.d.ts +0 -2
- package/locale/lib/locale/pipes/localized-number.pipe.d.ts +0 -2
- package/locale/lib/locale/pipes/localized-time.pipe.d.ts +0 -2
- package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +0 -2
- package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +1 -2
- package/numeric/lib/numeric.pipe.d.ts +0 -3
- package/numeric/lib/numeric.service.d.ts +0 -2
- package/package.json +12 -12
- package/password-strength/lib/password-strength/password-strength.component.d.ts +0 -2
- package/password-strength/lib/password-strength/password-strength.directive.d.ts +1 -2
- package/picklist/lib/picklist/picklist.component.d.ts +1 -2
- package/product-header/README.md +17 -0
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +0 -4
- package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +0 -2
- package/progressbar/lib/progressbar/progressbar.module.d.ts +2 -1
- package/shared/lib/accessibility/paginator-accessibility.directive.d.ts +1 -3
- package/shared/lib/accessibility/table-checkbox-accessibility.directive.d.ts +1 -2
- package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +0 -2
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +0 -4
- package/speech-recognition/lib/speech-recognition/speech-recognition.service.d.ts +1 -5
- package/speech-recognition/lib/speech-recognition/text-to-speech.service.d.ts +1 -3
- package/split-button/lib/split-button/split-button.component.d.ts +1 -2
- package/table/lib/table/row-toggler/row-toggler.directive.d.ts +1 -1
- package/table/lib/table/table-column/table-columns.component.d.ts +2 -6
- package/table/lib/table/table-paging/table-paging.component.d.ts +0 -3
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -1
- package/text-area/lib/text-area/text-area.component.d.ts +1 -2
- package/text-area-ia/README.md +17 -0
- package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +0 -2
- package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +1 -3
- package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +0 -2
- package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +0 -2
- package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +1 -5
- package/toast/lib/toast/toast.service.d.ts +0 -2
- package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +1 -3
- package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +1 -2
- package/confirm-dialog/README.md +0 -226
- package/numeric-mask/README.md +0 -395
- package/pin-code-field/README.md +0 -366
- package/spotlight/README.md +0 -311
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
-
import { Component, EventEmitter, HostListener, Input, Output, } from '@angular/core';
|
|
2
|
+
import { Component, EventEmitter, HostListener, Input, Output, inject } from '@angular/core';
|
|
3
3
|
import { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';
|
|
4
4
|
import { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
6
6
|
import { takeUntil } from 'rxjs/operators';
|
|
7
|
+
import { SlideInBarService } from './slide-in-bar.service';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "
|
|
9
|
-
import * as i2 from "@
|
|
10
|
-
import * as i3 from "@angular/common";
|
|
9
|
+
import * as i1 from "@seniorsistemas/angular-components/common/deprecated-selector";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
11
11
|
const SMALL_DEVICE_BREAKPOINT = 420;
|
|
12
12
|
/**
|
|
13
13
|
* @description Componente de painel deslizante lateral que expande/colapsa ao clicar em um botão de toggle.
|
|
@@ -24,7 +24,7 @@ const SMALL_DEVICE_BREAKPOINT = 420;
|
|
|
24
24
|
* @category Overlay
|
|
25
25
|
*/
|
|
26
26
|
export class SlideInBarComponent {
|
|
27
|
-
slidePanelService;
|
|
27
|
+
slidePanelService = inject(SlideInBarService);
|
|
28
28
|
static nextId = 0;
|
|
29
29
|
/**
|
|
30
30
|
* @description Identificador único do painel. Gerado automaticamente se não informado.
|
|
@@ -79,9 +79,6 @@ export class SlideInBarComponent {
|
|
|
79
79
|
onResize() {
|
|
80
80
|
this._checkOverBehavior();
|
|
81
81
|
}
|
|
82
|
-
constructor(slidePanelService) {
|
|
83
|
-
this.slidePanelService = slidePanelService;
|
|
84
|
-
}
|
|
85
82
|
ngOnInit() {
|
|
86
83
|
this._checkOverBehavior();
|
|
87
84
|
this.slidePanelService
|
|
@@ -131,7 +128,7 @@ export class SlideInBarComponent {
|
|
|
131
128
|
_checkOverBehavior() {
|
|
132
129
|
this.isSlideOver = window.innerWidth <= SMALL_DEVICE_BREAKPOINT;
|
|
133
130
|
}
|
|
134
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SlideInBarComponent, deps: [
|
|
131
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SlideInBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
135
132
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SlideInBarComponent, selector: "s-slide-in-bar, s-slide-panel", inputs: { id: "id", openIcon: "openIcon", closeIcon: "closeIcon", cache: "cache", createOpen: "createOpen", noOverlap: "noOverlap" }, outputs: { panelOpened: "panelOpened", panelClosed: "panelClosed" }, host: { listeners: { "window:resize": "onResize()" } }, providers: [
|
|
136
133
|
{
|
|
137
134
|
provide: DEPRECATED_CONFIG,
|
|
@@ -141,7 +138,7 @@ export class SlideInBarComponent {
|
|
|
141
138
|
removalVersion: '20.0.0',
|
|
142
139
|
},
|
|
143
140
|
},
|
|
144
|
-
], hostDirectives: [{ directive:
|
|
141
|
+
], hostDirectives: [{ directive: i1.DeprecatedSelectorDirective }], ngImport: i0, template: "<div class=\"slide-in-bar\">\n <div\n class=\"slide-content\"\n [ngClass]=\"{\n 'slide-content--closed': !isOpen,\n 'slide-content--over': isSlideOver,\n 'slide-content--no-overlap': noOverlap,\n }\"\n >\n <div\n #mainContainer\n class=\"main-container\"\n >\n @if (cache) {\n <div\n class=\"content-container\"\n [@cacheAnimation]=\"isOpen\"\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cacheAnimation.start)=\"onContentAnimationStart()\"\n (@cacheAnimation.done)=\"onContentAnimationDone()\"\n >\n <ng-container [ngTemplateOutlet]=\"slideContentTemplate\"></ng-container>\n </div>\n } @else {\n @if (isOpen) {\n <div\n class=\"content-container\"\n @cachelessAnimation\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cachelessAnimation.start)=\"onContentAnimationStart()\"\n (@cachelessAnimation.done)=\"onContentAnimationDone()\"\n >\n <ng-container [ngTemplateOutlet]=\"slideContentTemplate\"></ng-container>\n </div>\n }\n }\n </div>\n <button\n class=\"button\"\n [ngClass]=\"isOpen ? closeIcon : openIcon\"\n (click)=\"onClickButton()\"\n ></button>\n </div>\n <div\n class=\"side-content\"\n >\n <ng-content select=\"[side-content]\"></ng-content>\n </div>\n</div>\n\n<ng-template #slideContentTemplate>\n <ng-content select=\"[slide-content]\"></ng-content>\n</ng-template>\n", styles: [".slide-in-bar{display:flex;width:100%}.slide-in-bar .slide-content{display:flex;position:relative}.slide-in-bar .slide-content .main-container{background-color:#eeebf2;display:flex;border:1px solid #ccc;overflow:hidden;position:relative}.slide-in-bar .slide-content .main-container .content-container{overflow-y:auto;overflow-x:hidden;padding:16px}.slide-in-bar .slide-content .button{align-items:center;background-color:#eeebf2;border:1px solid #ccc;border-left:none;border-radius:0 4px 4px 0;cursor:pointer;display:flex;font-family:\"Font Awesome 5 Pro\";font-size:16px;height:32px;justify-content:center;position:absolute;right:-32px;top:16px;width:32px;z-index:99}.slide-in-bar .slide-content--closed .main-container{border:none}.slide-in-bar .slide-content--over{position:absolute}.slide-in-bar .slide-content--no-overlap{margin-right:32px}.slide-in-bar .side-content{display:flex;height:max-content;overflow:auto;transition:width .1s linear}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
|
|
145
142
|
trigger('cachelessAnimation', [
|
|
146
143
|
transition(':enter', [style({ width: '0' }), animate('200ms linear', style({ width: '*' }))]),
|
|
147
144
|
transition(':leave', [style({ width: '*' }), animate('200ms linear', style({ width: '0' }))]),
|
|
@@ -175,7 +172,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
175
172
|
transition('* => *', animate('200ms')),
|
|
176
173
|
]),
|
|
177
174
|
], template: "<div class=\"slide-in-bar\">\n <div\n class=\"slide-content\"\n [ngClass]=\"{\n 'slide-content--closed': !isOpen,\n 'slide-content--over': isSlideOver,\n 'slide-content--no-overlap': noOverlap,\n }\"\n >\n <div\n #mainContainer\n class=\"main-container\"\n >\n @if (cache) {\n <div\n class=\"content-container\"\n [@cacheAnimation]=\"isOpen\"\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cacheAnimation.start)=\"onContentAnimationStart()\"\n (@cacheAnimation.done)=\"onContentAnimationDone()\"\n >\n <ng-container [ngTemplateOutlet]=\"slideContentTemplate\"></ng-container>\n </div>\n } @else {\n @if (isOpen) {\n <div\n class=\"content-container\"\n @cachelessAnimation\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cachelessAnimation.start)=\"onContentAnimationStart()\"\n (@cachelessAnimation.done)=\"onContentAnimationDone()\"\n >\n <ng-container [ngTemplateOutlet]=\"slideContentTemplate\"></ng-container>\n </div>\n }\n }\n </div>\n <button\n class=\"button\"\n [ngClass]=\"isOpen ? closeIcon : openIcon\"\n (click)=\"onClickButton()\"\n ></button>\n </div>\n <div\n class=\"side-content\"\n >\n <ng-content select=\"[side-content]\"></ng-content>\n </div>\n</div>\n\n<ng-template #slideContentTemplate>\n <ng-content select=\"[slide-content]\"></ng-content>\n</ng-template>\n", styles: [".slide-in-bar{display:flex;width:100%}.slide-in-bar .slide-content{display:flex;position:relative}.slide-in-bar .slide-content .main-container{background-color:#eeebf2;display:flex;border:1px solid #ccc;overflow:hidden;position:relative}.slide-in-bar .slide-content .main-container .content-container{overflow-y:auto;overflow-x:hidden;padding:16px}.slide-in-bar .slide-content .button{align-items:center;background-color:#eeebf2;border:1px solid #ccc;border-left:none;border-radius:0 4px 4px 0;cursor:pointer;display:flex;font-family:\"Font Awesome 5 Pro\";font-size:16px;height:32px;justify-content:center;position:absolute;right:-32px;top:16px;width:32px;z-index:99}.slide-in-bar .slide-content--closed .main-container{border:none}.slide-in-bar .slide-content--over{position:absolute}.slide-in-bar .slide-content--no-overlap{margin-right:32px}.slide-in-bar .side-content{display:flex;height:max-content;overflow:auto;transition:width .1s linear}\n"] }]
|
|
178
|
-
}],
|
|
175
|
+
}], propDecorators: { id: [{
|
|
179
176
|
type: Input
|
|
180
177
|
}], openIcon: [{
|
|
181
178
|
type: Input
|
|
@@ -195,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
195
192
|
type: HostListener,
|
|
196
193
|
args: ['window:resize']
|
|
197
194
|
}] } });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtaW4tYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zbGlkZS1pbi1iYXIvc3JjL2xpYi9zbGlkZS1pbi1iYXIvc2xpZGUtaW4tYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zbGlkZS1pbi1iYXIvc3JjL2xpYi9zbGlkZS1pbi1iYXIvc2xpZGUtaW4tYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUdILFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDbEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSTNDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBRXBDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUE0QkgsTUFBTSxPQUFPLG1CQUFtQjtJQTRFQztJQTNFdEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFekI7OztPQUdHO0lBRUksRUFBRSxHQUFHLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUUxRDs7OztPQUlHO0lBRUksUUFBUSxHQUFHLHNCQUFzQixDQUFDO0lBRXpDOzs7O09BSUc7SUFFSSxT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QUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDN0YsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUNoRyxDQUFDO3dCQUNGLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTs0QkFDdEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDOzRCQUN2RCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7NEJBQ3JELFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3lCQUN6QyxDQUFDO3FCQUNMO3NGQVVNLEVBQUU7c0JBRFIsS0FBSztnQkFTQyxRQUFRO3NCQURkLEtBQUs7Z0JBU0MsU0FBUztzQkFEZixLQUFLO2dCQVVDLEtBQUs7c0JBRFgsS0FBSztnQkFTQyxVQUFVO3NCQURoQixLQUFLO2dCQVVDLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxXQUFXO3NCQURqQixNQUFNO2dCQU9BLFdBQVc7c0JBRGpCLE1BQU07Z0JBV0EsUUFBUTtzQkFEZCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgREVQUkVDQVRFRF9DT05GSUcgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2NvbW1vbi9kZXByZWNhdGVkLXNlbGVjdG9yJztcbmltcG9ydCB7IERlcHJlY2F0ZWRTZWxlY3RvckRpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY29tbW9uL2RlcHJlY2F0ZWQtc2VsZWN0b3InO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTbGlkZUluQmFyU2VydmljZSB9IGZyb20gJy4vc2xpZGUtaW4tYmFyLnNlcnZpY2UnO1xuXG5jb25zdCBTTUFMTF9ERVZJQ0VfQlJFQUtQT0lOVCA9IDQyMDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBwYWluZWwgZGVzbGl6YW50ZSBsYXRlcmFsIHF1ZSBleHBhbmRlL2NvbGFwc2EgYW8gY2xpY2FyIGVtIHVtIGJvdMOjbyBkZSB0b2dnbGUuXG4gKiBFbSB0ZWxhcyBwZXF1ZW5hcyAo4omkIDQyMHB4KSwgbyBwYWluZWwgZW50cmEgZW0gbW9kbyBvdmVybGF5LCBzb2JyZXBvbmRvIG8gY29udGXDumRvLlxuICogU3Vic3RpdHVpIG8gc2VsZXRvciBgcy1zbGlkZS1wYW5lbGAgKGRlcHJlY2FkbyBkZXNkZSB2MjAuMC4wKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtc2xpZGUtaW4tYmFyIFtjYWNoZV09XCJ0cnVlXCIgKHBhbmVsT3BlbmVkKT1cIm9uT3BlbigpXCI+XG4gKiAgIDxwPkNvbnRlw7pkbyBsYXRlcmFsPC9wPlxuICogPC9zLXNsaWRlLWluLWJhcj5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBPdmVybGF5XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1zbGlkZS1pbi1iYXIsIHMtc2xpZGUtcGFuZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zbGlkZS1pbi1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NsaWRlLWluLWJhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbRGVwcmVjYXRlZFNlbGVjdG9yRGlyZWN0aXZlXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogREVQUkVDQVRFRF9DT05GSUcsXG4gICAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgICAgIG9sZFNlbGVjdG9yOiAncy1zbGlkZS1wYW5lbCcsXG4gICAgICAgICAgICAgICAgbmV3U2VsZWN0b3I6ICdzLXNsaWRlLWluLWJhcicsXG4gICAgICAgICAgICAgICAgcmVtb3ZhbFZlcnNpb246ICcyMC4wLjAnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignY2FjaGVsZXNzQW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgd2lkdGg6ICcwJyB9KSwgYW5pbWF0ZSgnMjAwbXMgbGluZWFyJywgc3R5bGUoeyB3aWR0aDogJyonIH0pKV0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW3N0eWxlKHsgd2lkdGg6ICcqJyB9KSwgYW5pbWF0ZSgnMjAwbXMgbGluZWFyJywgc3R5bGUoeyB3aWR0aDogJzAnIH0pKV0pLFxuICAgICAgICBdKSxcbiAgICAgICAgdHJpZ2dlcignY2FjaGVBbmltYXRpb24nLCBbXG4gICAgICAgICAgICBzdGF0ZSgndHJ1ZScsIHN0eWxlKHsgd2lkdGg6ICcqJywgcGFkZGluZzogJzAgMTZweCcgfSkpLFxuICAgICAgICAgICAgc3RhdGUoJ2ZhbHNlJywgc3R5bGUoeyB3aWR0aDogJzBweCcsIHBhZGRpbmc6ICcwJyB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCcqID0+IConLCBhbmltYXRlKCcyMDBtcycpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2xpZGVJbkJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSWRlbnRpZmljYWRvciDDum5pY28gZG8gcGFpbmVsLiBHZXJhZG8gYXV0b21hdGljYW1lbnRlIHNlIG7Do28gaW5mb3JtYWRvLlxuICAgICAqIFVzYWRvIGludGVybmFtZW50ZSBwZWxvIGBTbGlkZUluQmFyU2VydmljZWAgcGFyYSBjb211bmljYcOnw6NvIGVudHJlIHBhaW7DqWlzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYHNsaWRlLXBhbmVsLSR7KytTbGlkZUluQmFyQ29tcG9uZW50Lm5leHRJZH1gO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENsYXNzZSBkZSDDrWNvbmUgZXhpYmlkYSBubyBib3TDo28gZGUgYWJlcnR1cmEgZG8gcGFpbmVsLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ2ZhcyBmYS1jaGV2cm9uLXJpZ2h0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9wZW5JY29uID0gJ2ZhcyBmYS1jaGV2cm9uLXJpZ2h0JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGFzc2UgZGUgw61jb25lIGV4aWJpZGEgbm8gYm90w6NvIGRlIGZlY2hhbWVudG8gZG8gcGFpbmVsLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ2ZhcyBmYS1jaGV2cm9uLWxlZnQnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xvc2VJY29uID0gJ2ZhcyBmYS1jaGV2cm9uLWxlZnQnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIG1hbnTDqW0gbyBjb250ZcO6ZG8gZG8gcGFpbmVsIG5vIERPTSBtZXNtbyBxdWFuZG8gZmVjaGFkbyxcbiAgICAgKiBwcmVzZXJ2YW5kbyBvIGVzdGFkbyBpbnRlcm5vIGRvcyBjb21wb25lbnRlcyBmaWxob3MuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhY2hlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUXVhbmRvIGB0cnVlYCwgbyBwYWluZWwgw6kgaW5pY2lhZG8gasOhIGFiZXJ0by5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3JlYXRlT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIG8gcGFpbmVsIG7Do28gc29icmVww7VlIG8gY29udGXDumRvIGFvIGV4cGFuZGlyLFxuICAgICAqIGVtcHVycmFuZG8gbyBsYXlvdXQgYWRqYWNlbnRlLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBub092ZXJsYXAgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIHBhaW5lbCDDqSBhYmVydG8gcGVsbyB1c3XDoXJpby5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcGFuZWxPcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyBwYWluZWwgw6kgZmVjaGFkbyBwZWxvIHVzdcOhcmlvLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYW5lbENsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIHB1YmxpYyBpc09wZW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNTbGlkZU92ZXIgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNBbmltYXRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNDb250ZW50QW5pbWF0aW9uRGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICAgIHB1YmxpYyBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hlY2tPdmVyQmVoYXZpb3IoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNsaWRlUGFuZWxTZXJ2aWNlOiBTbGlkZUluQmFyU2VydmljZSkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hlY2tPdmVyQmVoYXZpb3IoKTtcbiAgICAgICAgdGhpcy5zbGlkZVBhbmVsU2VydmljZVxuICAgICAgICAgICAgLmNyZWF0ZVNsaWRlUGFuZWwodGhpcy5pZClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNyZWF0ZU9wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgICAgLy8gdG8gZXhlY3V0ZWQgYXQgYSBzYWZlIHRpbWUgcHJpb3IgdG8gY29udHJvbCByZXR1cm5pbmcgdG8gdGhlIGJyb3dzZXIncyBldmVudCBsb29wXG4gICAgICAgIC8vIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgLy8gICAgIHRoaXMuX2NhbGN1bGF0ZVNsaWRlSGVpZ2h0KCk7XG4gICAgICAgIC8vICAgICB0aGlzLmlzQ29udGVudEFuaW1hdGlvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIC8vIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2tCdXR0b24oKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQW5pbWF0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcblxuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxPcGVuZWQuZW1pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYW5lbENsb3NlZC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db250ZW50QW5pbWF0aW9uU3RhcnQoKSB7XG4gICAgICAgIHRoaXMuaXNBbmltYXRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbnRlbnRBbmltYXRpb25Eb25lKCkge1xuICAgICAgICB0aGlzLmlzQW5pbWF0aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tPdmVyQmVoYXZpb3IoKSB7XG4gICAgICAgIHRoaXMuaXNTbGlkZU92ZXIgPSB3aW5kb3cuaW5uZXJXaWR0aCA8PSBTTUFMTF9ERVZJQ0VfQlJFQUtQT0lOVDtcbiAgICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJzbGlkZS1pbi1iYXJcIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2xpZGUtY29udGVudFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdzbGlkZS1jb250ZW50LS1jbG9zZWQnOiAhaXNPcGVuLFxuICAgICAgICAgICAgJ3NsaWRlLWNvbnRlbnQtLW92ZXInOiBpc1NsaWRlT3ZlcixcbiAgICAgICAgICAgICdzbGlkZS1jb250ZW50LS1uby1vdmVybGFwJzogbm9PdmVybGFwLFxuICAgICAgICB9XCJcbiAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICNtYWluQ29udGFpbmVyXG4gICAgICAgICAgICBjbGFzcz1cIm1haW4tY29udGFpbmVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChjYWNoZSkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgIFtAY2FjaGVBbmltYXRpb25dPVwiaXNPcGVuXCJcbiAgICAgICAgICAgICAgICAgICAgW0AuZGlzYWJsZWRdPVwiaXNDb250ZW50QW5pbWF0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoQGNhY2hlQW5pbWF0aW9uLnN0YXJ0KT1cIm9uQ29udGVudEFuaW1hdGlvblN0YXJ0KClcIlxuICAgICAgICAgICAgICAgICAgICAoQGNhY2hlQW5pbWF0aW9uLmRvbmUpPVwib25Db250ZW50QW5pbWF0aW9uRG9uZSgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2xpZGVDb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhY2hlbGVzc0FuaW1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgW0AuZGlzYWJsZWRdPVwiaXNDb250ZW50QW5pbWF0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKEBjYWNoZWxlc3NBbmltYXRpb24uc3RhcnQpPVwib25Db250ZW50QW5pbWF0aW9uU3RhcnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoQGNhY2hlbGVzc0FuaW1hdGlvbi5kb25lKT1cIm9uQ29udGVudEFuaW1hdGlvbkRvbmUoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2xpZGVDb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b25cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXNPcGVuID8gY2xvc2VJY29uIDogb3Blbkljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tCdXR0b24oKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2lkZS1jb250ZW50XCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzaWRlLWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2xpZGVDb250ZW50VGVtcGxhdGU+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NsaWRlLWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtaW4tYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zbGlkZS1pbi1iYXIvc3JjL2xpYi9zbGlkZS1pbi1iYXIvc2xpZGUtaW4tYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zbGlkZS1pbi1iYXIvc3JjL2xpYi9zbGlkZS1pbi1iYXIvc2xpZGUtaW4tYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFtQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDbEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFFM0QsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFFcEM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQTRCSCxNQUFNLE9BQU8sbUJBQW1CO0lBQ1gsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFeEQsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFekI7OztPQUdHO0lBRUksRUFBRSxHQUFHLGVBQWUs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Q0FBQyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUM3RixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ2hHLENBQUM7d0JBQ0YsT0FBTyxDQUFDLGdCQUFnQixFQUFFOzRCQUN0QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7NEJBQ3ZELEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDckQsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQ3pDLENBQUM7cUJBQ0w7OEJBWU0sRUFBRTtzQkFEUixLQUFLO2dCQVNDLFFBQVE7c0JBRGQsS0FBSztnQkFTQyxTQUFTO3NCQURmLEtBQUs7Z0JBVUMsS0FBSztzQkFEWCxLQUFLO2dCQVNDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBVUMsU0FBUztzQkFEZixLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLE1BQU07Z0JBT0EsV0FBVztzQkFEakIsTUFBTTtnQkFXQSxRQUFRO3NCQURkLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBERVBSRUNBVEVEX0NPTkZJRyB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY29tbW9uL2RlcHJlY2F0ZWQtc2VsZWN0b3InO1xuaW1wb3J0IHsgRGVwcmVjYXRlZFNlbGVjdG9yRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9jb21tb24vZGVwcmVjYXRlZC1zZWxlY3Rvcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNsaWRlSW5CYXJTZXJ2aWNlIH0gZnJvbSAnLi9zbGlkZS1pbi1iYXIuc2VydmljZSc7XG5cbmNvbnN0IFNNQUxMX0RFVklDRV9CUkVBS1BPSU5UID0gNDIwO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIHBhaW5lbCBkZXNsaXphbnRlIGxhdGVyYWwgcXVlIGV4cGFuZGUvY29sYXBzYSBhbyBjbGljYXIgZW0gdW0gYm90w6NvIGRlIHRvZ2dsZS5cbiAqIEVtIHRlbGFzIHBlcXVlbmFzICjiiaQgNDIwcHgpLCBvIHBhaW5lbCBlbnRyYSBlbSBtb2RvIG92ZXJsYXksIHNvYnJlcG9uZG8gbyBjb250ZcO6ZG8uXG4gKiBTdWJzdGl0dWkgbyBzZWxldG9yIGBzLXNsaWRlLXBhbmVsYCAoZGVwcmVjYWRvIGRlc2RlIHYyMC4wLjApLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8cy1zbGlkZS1pbi1iYXIgW2NhY2hlXT1cInRydWVcIiAocGFuZWxPcGVuZWQpPVwib25PcGVuKClcIj5cbiAqICAgPHA+Q29udGXDumRvIGxhdGVyYWw8L3A+XG4gKiA8L3Mtc2xpZGUtaW4tYmFyPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IE92ZXJsYXlcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXNsaWRlLWluLWJhciwgcy1zbGlkZS1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlLWluLWJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2xpZGUtaW4tYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtEZXByZWNhdGVkU2VsZWN0b3JEaXJlY3RpdmVdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBERVBSRUNBVEVEX0NPTkZJRyxcbiAgICAgICAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgICAgICAgICAgb2xkU2VsZWN0b3I6ICdzLXNsaWRlLXBhbmVsJyxcbiAgICAgICAgICAgICAgICBuZXdTZWxlY3RvcjogJ3Mtc2xpZGUtaW4tYmFyJyxcbiAgICAgICAgICAgICAgICByZW1vdmFsVmVyc2lvbjogJzIwLjAuMCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdjYWNoZWxlc3NBbmltYXRpb24nLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbc3R5bGUoeyB3aWR0aDogJzAnIH0pLCBhbmltYXRlKCcyMDBtcyBsaW5lYXInLCBzdHlsZSh7IHdpZHRoOiAnKicgfSkpXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbc3R5bGUoeyB3aWR0aDogJyonIH0pLCBhbmltYXRlKCcyMDBtcyBsaW5lYXInLCBzdHlsZSh7IHdpZHRoOiAnMCcgfSkpXSksXG4gICAgICAgIF0pLFxuICAgICAgICB0cmlnZ2VyKCdjYWNoZUFuaW1hdGlvbicsIFtcbiAgICAgICAgICAgIHN0YXRlKCd0cnVlJywgc3R5bGUoeyB3aWR0aDogJyonLCBwYWRkaW5nOiAnMCAxNnB4JyB9KSksXG4gICAgICAgICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7IHdpZHRoOiAnMHB4JywgcGFkZGluZzogJzAnIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJyogPT4gKicsIGFuaW1hdGUoJzIwMG1zJykpLFxuICAgICAgICBdKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlkZUluQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2xpZGVQYW5lbFNlcnZpY2UgPSBpbmplY3QoU2xpZGVJbkJhclNlcnZpY2UpO1xuXG4gICAgcHVibGljIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3Igw7puaWNvIGRvIHBhaW5lbC4gR2VyYWRvIGF1dG9tYXRpY2FtZW50ZSBzZSBuw6NvIGluZm9ybWFkby5cbiAgICAgKiBVc2FkbyBpbnRlcm5hbWVudGUgcGVsbyBgU2xpZGVJbkJhclNlcnZpY2VgIHBhcmEgY29tdW5pY2HDp8OjbyBlbnRyZSBwYWluw6lpcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBzbGlkZS1wYW5lbC0keysrU2xpZGVJbkJhckNvbXBvbmVudC5uZXh0SWR9YDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGFzc2UgZGUgw61jb25lIGV4aWJpZGEgbm8gYm90w6NvIGRlIGFiZXJ0dXJhIGRvIHBhaW5lbC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdmYXMgZmEtY2hldnJvbi1yaWdodCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvcGVuSWNvbiA9ICdmYXMgZmEtY2hldnJvbi1yaWdodCc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2xhc3NlIGRlIMOtY29uZSBleGliaWRhIG5vIGJvdMOjbyBkZSBmZWNoYW1lbnRvIGRvIHBhaW5lbC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdmYXMgZmEtY2hldnJvbi1sZWZ0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsb3NlSWNvbiA9ICdmYXMgZmEtY2hldnJvbi1sZWZ0JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBRdWFuZG8gYHRydWVgLCBtYW50w6ltIG8gY29udGXDumRvIGRvIHBhaW5lbCBubyBET00gbWVzbW8gcXVhbmRvIGZlY2hhZG8sXG4gICAgICogcHJlc2VydmFuZG8gbyBlc3RhZG8gaW50ZXJubyBkb3MgY29tcG9uZW50ZXMgZmlsaG9zLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYWNoZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIG8gcGFpbmVsIMOpIGluaWNpYWRvIGrDoSBhYmVydG8uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNyZWF0ZU9wZW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBRdWFuZG8gYHRydWVgLCBvIHBhaW5lbCBuw6NvIHNvYnJlcMO1ZSBvIGNvbnRlw7pkbyBhbyBleHBhbmRpcixcbiAgICAgKiBlbXB1cnJhbmRvIG8gbGF5b3V0IGFkamFjZW50ZS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbm9PdmVybGFwID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyBwYWluZWwgw6kgYWJlcnRvIHBlbG8gdXN1w6FyaW8uXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gcGFpbmVsIMOpIGZlY2hhZG8gcGVsbyB1c3XDoXJpby5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcGFuZWxDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgaXNPcGVuID0gZmFsc2U7XG4gICAgcHVibGljIGlzU2xpZGVPdmVyID0gZmFsc2U7XG4gICAgcHVibGljIGlzQW5pbWF0aW5nID0gZmFsc2U7XG4gICAgcHVibGljIGlzQ29udGVudEFuaW1hdGlvbkRpc2FibGVkID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgICBwdWJsaWMgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoZWNrT3ZlckJlaGF2aW9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGVja092ZXJCZWhhdmlvcigpO1xuICAgICAgICB0aGlzLnNsaWRlUGFuZWxTZXJ2aWNlXG4gICAgICAgICAgICAuY3JlYXRlU2xpZGVQYW5lbCh0aGlzLmlkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3JlYXRlT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyB0byBleGVjdXRlZCBhdCBhIHNhZmUgdGltZSBwcmlvciB0byBjb250cm9sIHJldHVybmluZyB0byB0aGUgYnJvd3NlcidzIGV2ZW50IGxvb3BcbiAgICAgICAgLy8gcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAvLyAgICAgdGhpcy5fY2FsY3VsYXRlU2xpZGVIZWlnaHQoKTtcbiAgICAgICAgLy8gICAgIHRoaXMuaXNDb250ZW50QW5pbWF0aW9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGlja0J1dHRvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNBbmltYXRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xuXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5wYW5lbE9wZW5lZC5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhbmVsQ2xvc2VkLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbnRlbnRBbmltYXRpb25TdGFydCgpIHtcbiAgICAgICAgdGhpcy5pc0FuaW1hdGluZyA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29udGVudEFuaW1hdGlvbkRvbmUoKSB7XG4gICAgICAgIHRoaXMuaXNBbmltYXRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jaGVja092ZXJCZWhhdmlvcigpIHtcbiAgICAgICAgdGhpcy5pc1NsaWRlT3ZlciA9IHdpbmRvdy5pbm5lcldpZHRoIDw9IFNNQUxMX0RFVklDRV9CUkVBS1BPSU5UO1xuICAgIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cInNsaWRlLWluLWJhclwiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzbGlkZS1jb250ZW50XCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3NsaWRlLWNvbnRlbnQtLWNsb3NlZCc6ICFpc09wZW4sXG4gICAgICAgICAgICAnc2xpZGUtY29udGVudC0tb3Zlcic6IGlzU2xpZGVPdmVyLFxuICAgICAgICAgICAgJ3NsaWRlLWNvbnRlbnQtLW5vLW92ZXJsYXAnOiBub092ZXJsYXAsXG4gICAgICAgIH1cIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI21haW5Db250YWluZXJcbiAgICAgICAgICAgIGNsYXNzPVwibWFpbi1jb250YWluZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW0BjYWNoZUFuaW1hdGlvbl09XCJpc09wZW5cIlxuICAgICAgICAgICAgICAgICAgICBbQC5kaXNhYmxlZF09XCJpc0NvbnRlbnRBbmltYXRpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIChAY2FjaGVBbmltYXRpb24uc3RhcnQpPVwib25Db250ZW50QW5pbWF0aW9uU3RhcnQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChAY2FjaGVBbmltYXRpb24uZG9uZSk9XCJvbkNvbnRlbnRBbmltYXRpb25Eb25lKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzbGlkZUNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGlmIChpc09wZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAY2FjaGVsZXNzQW5pbWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbQC5kaXNhYmxlZF09XCJpc0NvbnRlbnRBbmltYXRpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoQGNhY2hlbGVzc0FuaW1hdGlvbi5zdGFydCk9XCJvbkNvbnRlbnRBbmltYXRpb25TdGFydCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChAY2FjaGVsZXNzQW5pbWF0aW9uLmRvbmUpPVwib25Db250ZW50QW5pbWF0aW9uRG9uZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzbGlkZUNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvblwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc09wZW4gPyBjbG9zZUljb24gOiBvcGVuSWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0J1dHRvbigpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzaWRlLWNvbnRlbnRcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NpZGUtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzbGlkZUNvbnRlbnRUZW1wbGF0ZT5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xpZGUtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, inject } from '@angular/core';
|
|
2
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
2
3
|
import { Subject } from 'rxjs';
|
|
3
4
|
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { SpeechRecognitionService } from '../speech-recognition.service';
|
|
6
|
+
import { TextToSpeechService } from '../text-to-speech.service';
|
|
4
7
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
6
|
-
import * as i2 from "../text-to-speech.service";
|
|
7
|
-
import * as i3 from "@ngx-translate/core";
|
|
8
|
+
import * as i1 from "@ngx-translate/core";
|
|
8
9
|
/**
|
|
9
10
|
* @description Componente de reconhecimento de voz que integra a Web Speech API para
|
|
10
11
|
* transcrever a fala do usuário em texto, inserída diretamente em um `<textarea>` fornecido.
|
|
@@ -20,9 +21,9 @@ import * as i3 from "@ngx-translate/core";
|
|
|
20
21
|
* @category Inputs
|
|
21
22
|
*/
|
|
22
23
|
export class SpeechRecognitionComponent {
|
|
23
|
-
speechRecognitionService;
|
|
24
|
-
textToSpeechService;
|
|
25
|
-
translateService;
|
|
24
|
+
speechRecognitionService = inject(SpeechRecognitionService);
|
|
25
|
+
textToSpeechService = inject(TextToSpeechService);
|
|
26
|
+
translateService = inject(TranslateService);
|
|
26
27
|
static TOOLBAR_ACTIVE = false;
|
|
27
28
|
/** @description Referência ao elemento `<textarea>` nativo que receberá o texto transcrito. Campo obrigatório. */
|
|
28
29
|
textAreaElement;
|
|
@@ -53,11 +54,6 @@ export class SpeechRecognitionComponent {
|
|
|
53
54
|
isPlayingTextToSpeech = false;
|
|
54
55
|
/** @description Emitido quando o reconhecimento de voz é concluído, com o texto transcrito. */
|
|
55
56
|
recognizedText = new EventEmitter();
|
|
56
|
-
constructor(speechRecognitionService, textToSpeechService, translateService) {
|
|
57
|
-
this.speechRecognitionService = speechRecognitionService;
|
|
58
|
-
this.textToSpeechService = textToSpeechService;
|
|
59
|
-
this.translateService = translateService;
|
|
60
|
-
}
|
|
61
57
|
ngOnInit() {
|
|
62
58
|
if (!this.hasSpeechRecognitionBrowserApi) {
|
|
63
59
|
return;
|
|
@@ -219,13 +215,13 @@ export class SpeechRecognitionComponent {
|
|
|
219
215
|
get textToSpeech() {
|
|
220
216
|
return this.textAreaElement.value;
|
|
221
217
|
}
|
|
222
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpeechRecognitionComponent, deps: [
|
|
223
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SpeechRecognitionComponent, selector: "s-speech-recognition", inputs: { textAreaElement: "textAreaElement", keepContext: "keepContext", speechRecognitionPlaceholder: "speechRecognitionPlaceholder" }, outputs: { recognizedText: "recognizedText" }, ngImport: i0, template: "@if(hasSpeechRecognitionBrowserApi) {\n <section class=\"speech-recognition\">\n <div class=\"speech-recognition-text\">\n @if(canRenderMicrophone) {\n {{ 'platform.angular_components.text_area_before_speech' | translate }}\n }\n\n @if(isListeningUserVoice) {\n {{ 'platform.angular_components.text_area_while_speech' | translate }}\n }\n\n @if(canRenderAprove && canRenderDiscard) {\n {{ 'platform.angular_components.text_area_end_speech' | translate }}\n }\n </div>\n <div class=\"speech-recognition-buttons\">\n @if(canRenderListeningText) {\n <span\n (click)=\"stopListening()\"\n class=\"speech-recognition-item speech-recognition-item-regular\">\n <i class=\"far fa-ellipsis-h\"></i>\n </span>\n }\n\n @if(canRenderMicrophone) {\n <span\n (click)=\"onListen()\"\n class=\"speech-recognition-item speech-recognition-item-microphone\"\n [class.speech-recognition-item-disabled]=\"isDisabledMicrophone || isListening || disabled\">\n <i class=\"fas fa-microphone\"></i>\n </span>\n }\n\n\n @if(canRenderAprove) {\n <span\n (click)=\"onAprove()\"\n class=\"speech-recognition-item speech-recognition-item-aprove\">\n <i class=\"fas fa-check\"></i>\n </span>\n }\n\n @if(canRenderDiscard) {\n <span\n (click)=\"onDiscard()\"\n class=\"speech-recognition-item speech-recognition-item-discard\">\n <i class=\"fas fa-times\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeech) {\n <span\n (click)=\"onOpenToolbar()\"\n class=\"speech-recognition-item speech-recognition-item-regular\"\n [class.speech-recognition-item-disabled]=\"isDisabledTextToSpeech\">\n <i class=\"fas fa-volume-down\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeechToolbar) {\n <span\n class=\"speech-recognition-item-toolbar\">\n <i class=\"fas\" [class.fa-pause]=\"isPlayingTextToSpeech\" [class.fa-play]=\"!isPlayingTextToSpeech\"\n (click)=\"toggleTextToSpeech()\"></i>\n <i class=\"fas fa-backward\" (click)=\"restartTextToSpeech()\"></i>\n <span (click)=\"updateVoiceSpeed()\">\n {{ voiceSpeed }}x\n </span>\n <i class=\"fas fa-times\" (click)=\"onCloseToolbar()\"></i>\n </span>\n }\n </div>\n </section>\n}\n", styles: [".speech-recognition{display:flex;gap:10px;justify-content:space-between;width:100%}.speech-recognition-buttons{display:flex;gap:10px;position:relative;bottom:15px;margin-right:16px}.speech-recognition-item{display:inline-flex;height:25px;padding:4px 12px;justify-content:center;align-items:center;gap:8px;border-radius:15px;cursor:pointer;transition:background .1s ease-in}.speech-recognition-item i,.speech-recognition-item span{color:#fff}.speech-recognition-item-disabled{cursor:default!important}.speech-recognition-item-disabled *{opacity:.5}.speech-recognition-item-microphone{background:#428bca}.speech-recognition-item-microphone:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-regular{background:#7892a1}.speech-recognition-item-regular:not(.speech-recognition-item-disabled):hover{background:#697882}.speech-recognition-item-aprove{background:#0c9348}.speech-recognition-item-aprove:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-discard{background:#c13018}.speech-recognition-item-discard:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-toolbar{background:#7892a1;display:flex;border-radius:15px;align-items:center;color:#fff;height:25px}.speech-recognition-item-toolbar i,.speech-recognition-item-toolbar span{cursor:pointer}.speech-recognition-item-toolbar i:not(:first-child),.speech-recognition-item-toolbar i:not(:last-child){padding:6px}.speech-recognition-item-toolbar i:first-child{padding-left:10px}.speech-recognition-item-toolbar i:last-child{padding-right:10px}.speech-recognition-text{color:#212533;font-size:12px;font-style:normal;font-weight:400;word-break:break-word}\n"], dependencies: [{ kind: "pipe", type:
|
|
218
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpeechRecognitionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
219
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SpeechRecognitionComponent, selector: "s-speech-recognition", inputs: { textAreaElement: "textAreaElement", keepContext: "keepContext", speechRecognitionPlaceholder: "speechRecognitionPlaceholder" }, outputs: { recognizedText: "recognizedText" }, ngImport: i0, template: "@if(hasSpeechRecognitionBrowserApi) {\n <section class=\"speech-recognition\">\n <div class=\"speech-recognition-text\">\n @if(canRenderMicrophone) {\n {{ 'platform.angular_components.text_area_before_speech' | translate }}\n }\n\n @if(isListeningUserVoice) {\n {{ 'platform.angular_components.text_area_while_speech' | translate }}\n }\n\n @if(canRenderAprove && canRenderDiscard) {\n {{ 'platform.angular_components.text_area_end_speech' | translate }}\n }\n </div>\n <div class=\"speech-recognition-buttons\">\n @if(canRenderListeningText) {\n <span\n (click)=\"stopListening()\"\n class=\"speech-recognition-item speech-recognition-item-regular\">\n <i class=\"far fa-ellipsis-h\"></i>\n </span>\n }\n\n @if(canRenderMicrophone) {\n <span\n (click)=\"onListen()\"\n class=\"speech-recognition-item speech-recognition-item-microphone\"\n [class.speech-recognition-item-disabled]=\"isDisabledMicrophone || isListening || disabled\">\n <i class=\"fas fa-microphone\"></i>\n </span>\n }\n\n\n @if(canRenderAprove) {\n <span\n (click)=\"onAprove()\"\n class=\"speech-recognition-item speech-recognition-item-aprove\">\n <i class=\"fas fa-check\"></i>\n </span>\n }\n\n @if(canRenderDiscard) {\n <span\n (click)=\"onDiscard()\"\n class=\"speech-recognition-item speech-recognition-item-discard\">\n <i class=\"fas fa-times\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeech) {\n <span\n (click)=\"onOpenToolbar()\"\n class=\"speech-recognition-item speech-recognition-item-regular\"\n [class.speech-recognition-item-disabled]=\"isDisabledTextToSpeech\">\n <i class=\"fas fa-volume-down\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeechToolbar) {\n <span\n class=\"speech-recognition-item-toolbar\">\n <i class=\"fas\" [class.fa-pause]=\"isPlayingTextToSpeech\" [class.fa-play]=\"!isPlayingTextToSpeech\"\n (click)=\"toggleTextToSpeech()\"></i>\n <i class=\"fas fa-backward\" (click)=\"restartTextToSpeech()\"></i>\n <span (click)=\"updateVoiceSpeed()\">\n {{ voiceSpeed }}x\n </span>\n <i class=\"fas fa-times\" (click)=\"onCloseToolbar()\"></i>\n </span>\n }\n </div>\n </section>\n}\n", styles: [".speech-recognition{display:flex;gap:10px;justify-content:space-between;width:100%}.speech-recognition-buttons{display:flex;gap:10px;position:relative;bottom:15px;margin-right:16px}.speech-recognition-item{display:inline-flex;height:25px;padding:4px 12px;justify-content:center;align-items:center;gap:8px;border-radius:15px;cursor:pointer;transition:background .1s ease-in}.speech-recognition-item i,.speech-recognition-item span{color:#fff}.speech-recognition-item-disabled{cursor:default!important}.speech-recognition-item-disabled *{opacity:.5}.speech-recognition-item-microphone{background:#428bca}.speech-recognition-item-microphone:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-regular{background:#7892a1}.speech-recognition-item-regular:not(.speech-recognition-item-disabled):hover{background:#697882}.speech-recognition-item-aprove{background:#0c9348}.speech-recognition-item-aprove:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-discard{background:#c13018}.speech-recognition-item-discard:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-toolbar{background:#7892a1;display:flex;border-radius:15px;align-items:center;color:#fff;height:25px}.speech-recognition-item-toolbar i,.speech-recognition-item-toolbar span{cursor:pointer}.speech-recognition-item-toolbar i:not(:first-child),.speech-recognition-item-toolbar i:not(:last-child){padding:6px}.speech-recognition-item-toolbar i:first-child{padding-left:10px}.speech-recognition-item-toolbar i:last-child{padding-right:10px}.speech-recognition-text{color:#212533;font-size:12px;font-style:normal;font-weight:400;word-break:break-word}\n"], dependencies: [{ kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
224
220
|
}
|
|
225
221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpeechRecognitionComponent, decorators: [{
|
|
226
222
|
type: Component,
|
|
227
223
|
args: [{ selector: 's-speech-recognition', template: "@if(hasSpeechRecognitionBrowserApi) {\n <section class=\"speech-recognition\">\n <div class=\"speech-recognition-text\">\n @if(canRenderMicrophone) {\n {{ 'platform.angular_components.text_area_before_speech' | translate }}\n }\n\n @if(isListeningUserVoice) {\n {{ 'platform.angular_components.text_area_while_speech' | translate }}\n }\n\n @if(canRenderAprove && canRenderDiscard) {\n {{ 'platform.angular_components.text_area_end_speech' | translate }}\n }\n </div>\n <div class=\"speech-recognition-buttons\">\n @if(canRenderListeningText) {\n <span\n (click)=\"stopListening()\"\n class=\"speech-recognition-item speech-recognition-item-regular\">\n <i class=\"far fa-ellipsis-h\"></i>\n </span>\n }\n\n @if(canRenderMicrophone) {\n <span\n (click)=\"onListen()\"\n class=\"speech-recognition-item speech-recognition-item-microphone\"\n [class.speech-recognition-item-disabled]=\"isDisabledMicrophone || isListening || disabled\">\n <i class=\"fas fa-microphone\"></i>\n </span>\n }\n\n\n @if(canRenderAprove) {\n <span\n (click)=\"onAprove()\"\n class=\"speech-recognition-item speech-recognition-item-aprove\">\n <i class=\"fas fa-check\"></i>\n </span>\n }\n\n @if(canRenderDiscard) {\n <span\n (click)=\"onDiscard()\"\n class=\"speech-recognition-item speech-recognition-item-discard\">\n <i class=\"fas fa-times\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeech) {\n <span\n (click)=\"onOpenToolbar()\"\n class=\"speech-recognition-item speech-recognition-item-regular\"\n [class.speech-recognition-item-disabled]=\"isDisabledTextToSpeech\">\n <i class=\"fas fa-volume-down\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeechToolbar) {\n <span\n class=\"speech-recognition-item-toolbar\">\n <i class=\"fas\" [class.fa-pause]=\"isPlayingTextToSpeech\" [class.fa-play]=\"!isPlayingTextToSpeech\"\n (click)=\"toggleTextToSpeech()\"></i>\n <i class=\"fas fa-backward\" (click)=\"restartTextToSpeech()\"></i>\n <span (click)=\"updateVoiceSpeed()\">\n {{ voiceSpeed }}x\n </span>\n <i class=\"fas fa-times\" (click)=\"onCloseToolbar()\"></i>\n </span>\n }\n </div>\n </section>\n}\n", styles: [".speech-recognition{display:flex;gap:10px;justify-content:space-between;width:100%}.speech-recognition-buttons{display:flex;gap:10px;position:relative;bottom:15px;margin-right:16px}.speech-recognition-item{display:inline-flex;height:25px;padding:4px 12px;justify-content:center;align-items:center;gap:8px;border-radius:15px;cursor:pointer;transition:background .1s ease-in}.speech-recognition-item i,.speech-recognition-item span{color:#fff}.speech-recognition-item-disabled{cursor:default!important}.speech-recognition-item-disabled *{opacity:.5}.speech-recognition-item-microphone{background:#428bca}.speech-recognition-item-microphone:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-regular{background:#7892a1}.speech-recognition-item-regular:not(.speech-recognition-item-disabled):hover{background:#697882}.speech-recognition-item-aprove{background:#0c9348}.speech-recognition-item-aprove:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-discard{background:#c13018}.speech-recognition-item-discard:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-toolbar{background:#7892a1;display:flex;border-radius:15px;align-items:center;color:#fff;height:25px}.speech-recognition-item-toolbar i,.speech-recognition-item-toolbar span{cursor:pointer}.speech-recognition-item-toolbar i:not(:first-child),.speech-recognition-item-toolbar i:not(:last-child){padding:6px}.speech-recognition-item-toolbar i:first-child{padding-left:10px}.speech-recognition-item-toolbar i:last-child{padding-right:10px}.speech-recognition-text{color:#212533;font-size:12px;font-style:normal;font-weight:400;word-break:break-word}\n"] }]
|
|
228
|
-
}],
|
|
224
|
+
}], propDecorators: { textAreaElement: [{
|
|
229
225
|
type: Input,
|
|
230
226
|
args: [{ required: true }]
|
|
231
227
|
}], keepContext: [{
|
|
@@ -235,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
235
231
|
}], recognizedText: [{
|
|
236
232
|
type: Output
|
|
237
233
|
}] } });
|
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24vc3JjL2xpYi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3BlZWNoLXJlY29nbml0aW9uL3NyYy9saWIvc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSTNDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFNSCxNQUFNLE9BQU8sMEJBQTBCO0lBb0NkO0lBQ0E7SUFDQTtJQXJDYixNQUFNLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN0QyxrSEFBa0g7SUFDdkYsZUFBZSxDQUF1QjtJQUNqRSxtSEFBbUg7SUFDMUcsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixnR0FBZ0c7SUFDdkYsNEJBQTRCLEdBQUcsRUFBRSxDQUFDO0lBQ25DLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDckIsMkJBQTJCLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQixVQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNqQyxZQUFZLEdBQUcsQ0FB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QUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU8sS0FBSztRQUNULElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDekUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQVksWUFBWTtRQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3RDLENBQUM7d0dBNU5RLDBCQUEwQjs0RkFBMUIsMEJBQTBCLHFQQzFCdkMscStGQTBFQTs7NEZEaERhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDSSxzQkFBc0I7OEpBT0wsZUFBZTtzQkFBekMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRWhCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsNEJBQTRCO3NCQUFwQyxLQUFLO2dCQTJCSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zcGVlY2gtcmVjb2duaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUZXh0VG9TcGVlY2hTZXJ2aWNlIH0gZnJvbSAnLi4vdGV4dC10by1zcGVlY2guc2VydmljZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgcmVjb25oZWNpbWVudG8gZGUgdm96IHF1ZSBpbnRlZ3JhIGEgV2ViIFNwZWVjaCBBUEkgcGFyYVxuICogdHJhbnNjcmV2ZXIgYSBmYWxhIGRvIHVzdcOhcmlvIGVtIHRleHRvLCBpbnNlcsOtZGEgZGlyZXRhbWVudGUgZW0gdW0gYDx0ZXh0YXJlYT5gIGZvcm5lY2lkby5cbiAqIFN1cG9ydGEgdGFtYsOpbSB0ZXh0LXRvLXNwZWVjaCBwYXJhIGxlaXR1cmEgZW0gdm96IGFsdGEgZG8gY29udGXDumRvIGRvIGNhbXBvLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8cy1zcGVlY2gtcmVjb2duaXRpb25cbiAqICAgW3RleHRBcmVhRWxlbWVudF09XCJ0ZXh0QXJlYVJlZi5uYXRpdmVFbGVtZW50XCJcbiAqICAgKHJlY29nbml6ZWRUZXh0KT1cIm9uVGV4dG9SZWNvbmhlY2lkbygkZXZlbnQpXCIgLz5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBJbnB1dHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXNwZWVjaC1yZWNvZ25pdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgc3RhdGljIFRPT0xCQVJfQUNUSVZFID0gZmFsc2U7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZWZlcsOqbmNpYSBhbyBlbGVtZW50byBgPHRleHRhcmVhPmAgbmF0aXZvIHF1ZSByZWNlYmVyw6EgbyB0ZXh0byB0cmFuc2NyaXRvLiBDYW1wbyBvYnJpZ2F0w7NyaW8uICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdGV4dEFyZWFFbGVtZW50ITogSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIG1hbnTDqW0gbyB0ZXh0byBleGlzdGVudGUgbm8gY2FtcG8gYW8gaW5pY2lhciBub3ZvIHJlY29uaGVjaW1lbnRvLiBAZGVmYXVsdCBmYWxzZSAqL1xuICAgIEBJbnB1dCgpIGtlZXBDb250ZXh0ID0gZmFsc2U7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQbGFjZWhvbGRlciBleGliaWRvIG5vIHRleHRhcmVhIGR1cmFudGUgbyByZWNvbmhlY2ltZW50byBkZSB2b3ouIEBkZWZhdWx0ICcnICovXG4gICAgQElucHV0KCkgc3BlZWNoUmVjb2duaXRpb25QbGFjZWhvbGRlciA9ICcnO1xuICAgIHByaXZhdGUgX3JlY29nbml6ZWRUZXh0ID0gJyc7XG4gICAgcHJpdmF0ZSBvcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSAnJztcbiAgICBwcml2YXRlIGlzRG9uZVRleHRUb1NwZWVjaCA9IGZhbHNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBWT0lDRV9TUEVFRFMgPSBbMC41LCAxLCAxLjUsIDJdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkga2V5ZG93bkV2ZW50TGlzdGVuZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBpc0xpc3RlbmluZ1VzZXJWb2ljZSA9IGZhbHNlO1xuICAgIHZvaWNlU3BlZWQgPSAxO1xuICAgIGlzRGlzYWJsZWRNaWNyb3Bob25lID0gZmFsc2U7XG5cbiAgICBjYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcbiAgICBjYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgIGNhblJlbmRlckxpc3RlbmluZ1RleHQgPSBmYWxzZTtcbiAgICBjYW5SZW5kZXJEaXNjYXJkID0gZmFsc2U7XG4gICAgY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XG4gICAgY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhciA9IGZhbHNlO1xuXG4gICAgaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gZmFsc2U7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gcmVjb25oZWNpbWVudG8gZGUgdm96IMOpIGNvbmNsdcOtZG8sIGNvbSBvIHRleHRvIHRyYW5zY3JpdG8uICovXG4gICAgQE91dHB1dCgpIHJlY29nbml6ZWRUZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlOiBTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dFRvU3BlZWNoU2VydmljZTogVGV4dFRvU3BlZWNoU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaGFzU3BlZWNoUmVjb2duaXRpb25Ccm93c2VyQXBpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRleHRBcmVhRWxlbWVudCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0ZXh0QXJlYUVsZW1lbnQgaXMgcmVxdWlyZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5wbGFjZWhvbGRlciA9IHRoaXMuc3BlZWNoUmVjb2duaXRpb25QbGFjZWhvbGRlclxuICAgICAgICAgICAgPyB0aGlzLnNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXJcbiAgICAgICAgICAgIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50ZXh0X2FyZWFfc3BlZWNoX3JlY29nbml0aW9uX3BsYWNlaG9sZGVyJyk7XG4gICAgICAgIHRoaXMudGV4dEFyZWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmtleWRvd25FdmVudExpc3RlbmVyKTtcbiAgICAgICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UubWljcm9waG9uZVN0YXR1cyQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdhY3RpdmUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNsb3NlVG9vbGJhcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkxpc3RlbigpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZE1pY3JvcGhvbmUgfHwgdGhpcy5pc0xpc3RlbmluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNhblJlbmRlck1pY3JvcGhvbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJMaXN0ZW5pbmdUZXh0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZTtcbiAgICAgICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5pc0xpc3RlbmluZ1VzZXJWb2ljZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlXG4gICAgICAgICAgICAubGlzdGVuKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoeyB0ZXh0LCBpc0ZpbmFsIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVjb2duaXplZFRleHQgPSB0ZXh0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRleHRBcmVhVmFsdWUodGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVGV4dEFyZWFCb3R0b20oKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRmluYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVuZGVyQXByb3ZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhblJlbmRlckxpc3RlbmluZ1RleHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMaXN0ZW5pbmdVc2VyVm9pY2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTGlzdGVuaW5nVXNlclZvaWNlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVuZGVyTWljcm9waG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZE1pY3JvcGhvbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5SZW5kZXJMaXN0ZW5pbmdUZXh0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNjcm9sbFRleHRBcmVhQm90dG9tKCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGV4dEFyZWFFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMudGV4dEFyZWFFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICAgICAgfSwgMTIwKTtcbiAgICB9XG5cbiAgICBvbk9wZW5Ub29sYmFyKCkge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkVGV4dFRvU3BlZWNoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSBmYWxzZTtcbiAgICAgICAgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQuVE9PTEJBUl9BQ1RJVkUgPSB0cnVlO1xuICAgICAgICB0aGlzLnNwZWFrKCk7XG4gICAgfVxuXG4gICAgb25DbG9zZVRvb2xiYXIoKSB7XG4gICAgICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XG4gICAgICAgIHRoaXMuc3RvcFRleHRUb1NwZWVjaCgpO1xuICAgICAgICB0aGlzLnZvaWNlU3BlZWQgPSAxO1xuICAgICAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRSA9IGZhbHNlO1xuICAgIH1cbiAgICBvbkRpc2NhcmQoKSB7XG4gICAgICAgIHRoaXMuY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhblJlbmRlck1pY3JvcGhvbmUgPSB0cnVlO1xuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgICAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9ICcnO1xuICAgICAgICB0aGlzLnNldFRleHRBcmVhVmFsdWUodGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQpO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RvcFRleHRUb1NwZWVjaCgpO1xuICAgICAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uQXByb3ZlKCkge1xuICAgICAgICB0aGlzLmNhblJlbmRlckFwcm92ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhblJlbmRlckRpc2NhcmQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMua2VlcENvbnRleHQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJyZWFrTGluZSA9IHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0Lmxlbmd0aCA+IDAgPyAnXFxuJyA6ICcnO1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgKz0gYCR7YnJlYWtMaW5lfSR7dGhpcy5fcmVjb2duaXplZFRleHR9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0ID0gdGhpcy5fcmVjb2duaXplZFRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWNvZ25pemVkVGV4dC5lbWl0KHRoaXMua2VlcENvbnRleHQgPyB0aGlzLm9yaWdpbmFsVGV4dEFyZWFFbGVtZW50VGV4dCA6IHRoaXMuX3JlY29nbml6ZWRUZXh0KTtcbiAgICAgICAgdGhpcy5zY3JvbGxUZXh0QXJlYUJvdHRvbSgpO1xuICAgICAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9ICcnO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5jYW5jZWwoKTtcbiAgICAgICAgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQuVE9PTEJBUl9BQ1RJVkUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlVGV4dFRvU3BlZWNoKCkge1xuICAgICAgICBpZiAodGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2gpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5wYXVzZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNEb25lVGV4dFRvU3BlZWNoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGVhaygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UucmVzdW1lKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSAhdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2g7XG4gICAgfVxuXG4gICAgcmVzdGFydFRleHRUb1NwZWVjaCgpIHtcbiAgICAgICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xuICAgICAgICB0aGlzLnNwZWFrKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVm9pY2VTcGVlZCgpIHtcbiAgICAgICAgY29uc3Qgdm9pY2VTcGVlZEluZGV4ID0gdGhpcy5WT0lDRV9TUEVFRFMuaW5kZXhPZih0aGlzLnZvaWNlU3BlZWQpO1xuICAgICAgICBjb25zdCBuZXh0Vm9pY2VTcGVlZEluZGV4ID0gdGhpcy5WT0lDRV9TUEVFRFNbdm9pY2VTcGVlZEluZGV4ICsgMV0gPyB2b2ljZVNwZWVkSW5kZXggKyAxIDogMDtcbiAgICAgICAgdGhpcy52b2ljZVNwZWVkID0gdGhpcy5WT0lDRV9TUEVFRFNbbmV4dFZvaWNlU3BlZWRJbmRleF07XG4gICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5jYW5jZWwoKTtcbiAgICAgICAgdGhpcy5zcGVhaygpO1xuICAgIH1cblxuICAgIHN0b3BMaXN0ZW5pbmcoKSB7XG4gICAgICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLnN0b3AoKTtcbiAgICB9XG5cbiAgICBnZXQgaXNMaXN0ZW5pbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5pc0xpc3RlbmluZztcbiAgICB9XG5cbiAgICBnZXQgaGFzU3BlZWNoUmVjb2duaXRpb25Ccm93c2VyQXBpKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UuaGFzU3VwcG9ydFNwZWVjaFJlY29nbml0aW9uO1xuICAgIH1cblxuICAgIGdldCBpc0Rpc2FibGVkVGV4dFRvU3BlZWNoKCkge1xuICAgICAgICBjb25zdCBoYXNUZXh0VG9TcGVlY2hWb2ljZSA9IHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5oYXNWb2ljZTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLnRleHRUb1NwZWVjaCB8fCAhaGFzVGV4dFRvU3BlZWNoVm9pY2UgfHwgdGhpcy5pc0xpc3RlbmluZyB8fCBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGV4dEFyZWFWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudGV4dEFyZWFFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wVGV4dFRvU3BlZWNoKCkge1xuICAgICAgICB0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzcGVhaygpIHtcbiAgICAgICAgdGhpcy5pc0RvbmVUZXh0VG9TcGVlY2ggPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2Uuc3BlYWsodGhpcy50ZXh0VG9TcGVlY2gsIHRoaXMudm9pY2VTcGVlZCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pc0RvbmVUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0ZXh0VG9TcGVlY2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZTtcbiAgICB9XG59XG5cbiIsIkBpZihoYXNTcGVlY2hSZWNvZ25pdGlvbkJyb3dzZXJBcGkpIHtcbiAgICA8c2VjdGlvbiBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3BlZWNoLXJlY29nbml0aW9uLXRleHRcIj5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJNaWNyb3Bob25lKSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50ZXh0X2FyZWFfYmVmb3JlX3NwZWVjaCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmKGlzTGlzdGVuaW5nVXNlclZvaWNlKSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50ZXh0X2FyZWFfd2hpbGVfc3BlZWNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyQXByb3ZlICYmIGNhblJlbmRlckRpc2NhcmQpIHtcbiAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRleHRfYXJlYV9lbmRfc3BlZWNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1idXR0b25zXCI+XG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyTGlzdGVuaW5nVGV4dCkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdG9wTGlzdGVuaW5nKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtIHNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLXJlZ3VsYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtZWxsaXBzaXMtaFwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJNaWNyb3Bob25lKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTGlzdGVuKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtIHNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLW1pY3JvcGhvbmVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc3BlZWNoLXJlY29nbml0aW9uLWl0ZW0tZGlzYWJsZWRdPVwiaXNEaXNhYmxlZE1pY3JvcGhvbmUgfHwgaXNMaXN0ZW5pbmcgfHwgZGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWljcm9waG9uZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgQGlmKGNhblJlbmRlckFwcm92ZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFwcm92ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcGVlY2gtcmVjb2duaXRpb24taXRlbSBzcGVlY2gtcmVjb2duaXRpb24taXRlbS1hcHJvdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2tcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyRGlzY2FyZCkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRpc2NhcmQoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3BlZWNoLXJlY29nbml0aW9uLWl0ZW0gc3BlZWNoLXJlY29nbml0aW9uLWl0ZW0tZGlzY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJUZXh0VG9TcGVlY2gpIHtcbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25PcGVuVG9vbGJhcigpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcGVlY2gtcmVjb2duaXRpb24taXRlbSBzcGVlY2gtcmVjb2duaXRpb24taXRlbS1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLWRpc2FibGVkXT1cImlzRGlzYWJsZWRUZXh0VG9TcGVlY2hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdm9sdW1lLWRvd25cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhcikge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3BlZWNoLXJlY29nbml0aW9uLWl0ZW0tdG9vbGJhclwiPlxuICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXNcIiBbY2xhc3MuZmEtcGF1c2VdPVwiaXNQbGF5aW5nVGV4dFRvU3BlZWNoXCIgW2NsYXNzLmZhLXBsYXldPVwiIWlzUGxheWluZ1RleHRUb1NwZWVjaFwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlVGV4dFRvU3BlZWNoKClcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1iYWNrd2FyZFwiIChjbGljayk9XCJyZXN0YXJ0VGV4dFRvU3BlZWNoKClcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwidXBkYXRlVm9pY2VTcGVlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdm9pY2VTcGVlZCB9fXhcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCIgKGNsaWNrKT1cIm9uQ2xvc2VUb29sYmFyKClcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG59XG4iXX0=
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24vc3JjL2xpYi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3BlZWNoLXJlY29nbml0aW9uL3NyYy9saWIvc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFFaEU7Ozs7Ozs7Ozs7Ozs7R0FhRztBQU1ILE1BQU0sT0FBTywwQkFBMEI7SUFDbEIsd0JBQXdCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDNUQsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbEQsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFckQsTUFBTSxDQUFDLGNBQWMs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aXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNwZWVjaFJlY29nbml0aW9uU2VydmljZSB9IGZyb20gJy4uL3NwZWVjaC1yZWNvZ25pdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRleHRUb1NwZWVjaFNlcnZpY2UgfSBmcm9tICcuLi90ZXh0LXRvLXNwZWVjaC5zZXJ2aWNlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSByZWNvbmhlY2ltZW50byBkZSB2b3ogcXVlIGludGVncmEgYSBXZWIgU3BlZWNoIEFQSSBwYXJhXG4gKiB0cmFuc2NyZXZlciBhIGZhbGEgZG8gdXN1w6FyaW8gZW0gdGV4dG8sIGluc2Vyw61kYSBkaXJldGFtZW50ZSBlbSB1bSBgPHRleHRhcmVhPmAgZm9ybmVjaWRvLlxuICogU3Vwb3J0YSB0YW1iw6ltIHRleHQtdG8tc3BlZWNoIHBhcmEgbGVpdHVyYSBlbSB2b3ogYWx0YSBkbyBjb250ZcO6ZG8gZG8gY2FtcG8uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxzLXNwZWVjaC1yZWNvZ25pdGlvblxuICogICBbdGV4dEFyZWFFbGVtZW50XT1cInRleHRBcmVhUmVmLm5hdGl2ZUVsZW1lbnRcIlxuICogICAocmVjb2duaXplZFRleHQpPVwib25UZXh0b1JlY29uaGVjaWRvKCRldmVudClcIiAvPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IElucHV0c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Mtc3BlZWNoLXJlY29nbml0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zcGVlY2gtcmVjb2duaXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UgPSBpbmplY3QoU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRUb1NwZWVjaFNlcnZpY2UgPSBpbmplY3QoVGV4dFRvU3BlZWNoU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgVE9PTEJBUl9BQ1RJVkUgPSBmYWxzZTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlZmVyw6puY2lhIGFvIGVsZW1lbnRvIGA8dGV4dGFyZWE+YCBuYXRpdm8gcXVlIHJlY2ViZXLDoSBvIHRleHRvIHRyYW5zY3JpdG8uIENhbXBvIG9icmlnYXTDs3Jpby4gKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB0ZXh0QXJlYUVsZW1lbnQhOiBIVE1MVGV4dEFyZWFFbGVtZW50O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUXVhbmRvIGB0cnVlYCwgbWFudMOpbSBvIHRleHRvIGV4aXN0ZW50ZSBubyBjYW1wbyBhbyBpbmljaWFyIG5vdm8gcmVjb25oZWNpbWVudG8uIEBkZWZhdWx0IGZhbHNlICovXG4gICAgQElucHV0KCkga2VlcENvbnRleHQgPSBmYWxzZTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBsYWNlaG9sZGVyIGV4aWJpZG8gbm8gdGV4dGFyZWEgZHVyYW50ZSBvIHJlY29uaGVjaW1lbnRvIGRlIHZvei4gQGRlZmF1bHQgJycgKi9cbiAgICBASW5wdXQoKSBzcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyID0gJyc7XG4gICAgcHJpdmF0ZSBfcmVjb2duaXplZFRleHQgPSAnJztcbiAgICBwcml2YXRlIG9yaWdpbmFsVGV4dEFyZWFFbGVtZW50VGV4dCA9ICcnO1xuICAgIHByaXZhdGUgaXNEb25lVGV4dFRvU3BlZWNoID0gZmFsc2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IFZPSUNFX1NQRUVEUyA9IFswLjUsIDEsIDEuNSwgMl07XG4gICAgcHJpdmF0ZSByZWFkb25seSBrZXlkb3duRXZlbnRMaXN0ZW5lciA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIGlzTGlzdGVuaW5nVXNlclZvaWNlID0gZmFsc2U7XG4gICAgdm9pY2VTcGVlZCA9IDE7XG4gICAgaXNEaXNhYmxlZE1pY3JvcGhvbmUgPSBmYWxzZTtcblxuICAgIGNhblJlbmRlck1pY3JvcGhvbmUgPSB0cnVlO1xuICAgIGNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XG4gICAgY2FuUmVuZGVyTGlzdGVuaW5nVGV4dCA9IGZhbHNlO1xuICAgIGNhblJlbmRlckRpc2NhcmQgPSBmYWxzZTtcbiAgICBjYW5SZW5kZXJBcHJvdmUgPSBmYWxzZTtcbiAgICBjYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XG5cbiAgICBpc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSBmYWxzZTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyByZWNvbmhlY2ltZW50byBkZSB2b3ogw6kgY29uY2x1w61kbywgY29tIG8gdGV4dG8gdHJhbnNjcml0by4gKi9cbiAgICBAT3V0cHV0KCkgcmVjb2duaXplZFRleHQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaGFzU3BlZWNoUmVjb2duaXRpb25Ccm93c2VyQXBpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRleHRBcmVhRWxlbWVudCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0ZXh0QXJlYUVsZW1lbnQgaXMgcmVxdWlyZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5wbGFjZWhvbGRlciA9IHRoaXMuc3BlZWNoUmVjb2duaXRpb25QbGFjZWhvbGRlclxuICAgICAgICAgICAgPyB0aGlzLnNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXJcbiAgICAgICAgICAgIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50ZXh0X2FyZWFfc3BlZWNoX3JlY29nbml0aW9uX3BsYWNlaG9sZGVyJyk7XG4gICAgICAgIHRoaXMudGV4dEFyZWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmtleWRvd25FdmVudExpc3RlbmVyKTtcbiAgICAgICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UubWljcm9waG9uZVN0YXR1cyQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdhY3RpdmUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNsb3NlVG9vbGJhcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkxpc3RlbigpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZE1pY3JvcGhvbmUgfHwgdGhpcy5pc0xpc3RlbmluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNhblJlbmRlck1pY3JvcGhvbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJMaXN0ZW5pbmdUZXh0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZTtcbiAgICAgICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5pc0xpc3RlbmluZ1VzZXJWb2ljZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlXG4gICAgICAgICAgICAubGlzdGVuKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoeyB0ZXh0LCBpc0ZpbmFsIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVjb2duaXplZFRleHQgPSB0ZXh0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRleHRBcmVhVmFsdWUodGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVGV4dEFyZWFCb3R0b20oKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRmluYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVuZGVyQXByb3ZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhblJlbmRlckxpc3RlbmluZ1RleHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMaXN0ZW5pbmdVc2VyVm9pY2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTGlzdGVuaW5nVXNlclZvaWNlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVuZGVyTWljcm9waG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZE1pY3JvcGhvbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5SZW5kZXJMaXN0ZW5pbmdUZXh0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNjcm9sbFRleHRBcmVhQm90dG9tKCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGV4dEFyZWFFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMudGV4dEFyZWFFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICAgICAgfSwgMTIwKTtcbiAgICB9XG5cbiAgICBvbk9wZW5Ub29sYmFyKCkge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkVGV4dFRvU3BlZWNoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSBmYWxzZTtcbiAgICAgICAgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQuVE9PTEJBUl9BQ1RJVkUgPSB0cnVlO1xuICAgICAgICB0aGlzLnNwZWFrKCk7XG4gICAgfVxuXG4gICAgb25DbG9zZVRvb2xiYXIoKSB7XG4gICAgICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XG4gICAgICAgIHRoaXMuc3RvcFRleHRUb1NwZWVjaCgpO1xuICAgICAgICB0aGlzLnZvaWNlU3BlZWQgPSAxO1xuICAgICAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRSA9IGZhbHNlO1xuICAgIH1cbiAgICBvbkRpc2NhcmQoKSB7XG4gICAgICAgIHRoaXMuY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhblJlbmRlck1pY3JvcGhvbmUgPSB0cnVlO1xuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgICAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9ICcnO1xuICAgICAgICB0aGlzLnNldFRleHRBcmVhVmFsdWUodGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQpO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RvcFRleHRUb1NwZWVjaCgpO1xuICAgICAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uQXByb3ZlKCkge1xuICAgICAgICB0aGlzLmNhblJlbmRlckFwcm92ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhblJlbmRlckRpc2NhcmQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMua2VlcENvbnRleHQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJyZWFrTGluZSA9IHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0Lmxlbmd0aCA+IDAgPyAnXFxuJyA6ICcnO1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgKz0gYCR7YnJlYWtMaW5lfSR7dGhpcy5fcmVjb2duaXplZFRleHR9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0ID0gdGhpcy5fcmVjb2duaXplZFRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWNvZ25pemVkVGV4dC5lbWl0KHRoaXMua2VlcENvbnRleHQgPyB0aGlzLm9yaWdpbmFsVGV4dEFyZWFFbGVtZW50VGV4dCA6IHRoaXMuX3JlY29nbml6ZWRUZXh0KTtcbiAgICAgICAgdGhpcy5zY3JvbGxUZXh0QXJlYUJvdHRvbSgpO1xuICAgICAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9ICcnO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5jYW5jZWwoKTtcbiAgICAgICAgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQuVE9PTEJBUl9BQ1RJVkUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlVGV4dFRvU3BlZWNoKCkge1xuICAgICAgICBpZiAodGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2gpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5wYXVzZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNEb25lVGV4dFRvU3BlZWNoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGVhaygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UucmVzdW1lKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSAhdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2g7XG4gICAgfVxuXG4gICAgcmVzdGFydFRleHRUb1NwZWVjaCgpIHtcbiAgICAgICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xuICAgICAgICB0aGlzLnNwZWFrKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVm9pY2VTcGVlZCgpIHtcbiAgICAgICAgY29uc3Qgdm9pY2VTcGVlZEluZGV4ID0gdGhpcy5WT0lDRV9TUEVFRFMuaW5kZXhPZih0aGlzLnZvaWNlU3BlZWQpO1xuICAgICAgICBjb25zdCBuZXh0Vm9pY2VTcGVlZEluZGV4ID0gdGhpcy5WT0lDRV9TUEVFRFNbdm9pY2VTcGVlZEluZGV4ICsgMV0gPyB2b2ljZVNwZWVkSW5kZXggKyAxIDogMDtcbiAgICAgICAgdGhpcy52b2ljZVNwZWVkID0gdGhpcy5WT0lDRV9TUEVFRFNbbmV4dFZvaWNlU3BlZWRJbmRleF07XG4gICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5jYW5jZWwoKTtcbiAgICAgICAgdGhpcy5zcGVhaygpO1xuICAgIH1cblxuICAgIHN0b3BMaXN0ZW5pbmcoKSB7XG4gICAgICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLnN0b3AoKTtcbiAgICB9XG5cbiAgICBnZXQgaXNMaXN0ZW5pbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5pc0xpc3RlbmluZztcbiAgICB9XG5cbiAgICBnZXQgaGFzU3BlZWNoUmVjb2duaXRpb25Ccm93c2VyQXBpKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UuaGFzU3VwcG9ydFNwZWVjaFJlY29nbml0aW9uO1xuICAgIH1cblxuICAgIGdldCBpc0Rpc2FibGVkVGV4dFRvU3BlZWNoKCkge1xuICAgICAgICBjb25zdCBoYXNUZXh0VG9TcGVlY2hWb2ljZSA9IHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5oYXNWb2ljZTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLnRleHRUb1NwZWVjaCB8fCAhaGFzVGV4dFRvU3BlZWNoVm9pY2UgfHwgdGhpcy5pc0xpc3RlbmluZyB8fCBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGV4dEFyZWFWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudGV4dEFyZWFFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wVGV4dFRvU3BlZWNoKCkge1xuICAgICAgICB0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzcGVhaygpIHtcbiAgICAgICAgdGhpcy5pc0RvbmVUZXh0VG9TcGVlY2ggPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2Uuc3BlYWsodGhpcy50ZXh0VG9TcGVlY2gsIHRoaXMudm9pY2VTcGVlZCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pc0RvbmVUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0ZXh0VG9TcGVlY2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZTtcbiAgICB9XG59XG5cbiIsIkBpZihoYXNTcGVlY2hSZWNvZ25pdGlvbkJyb3dzZXJBcGkpIHtcbiAgICA8c2VjdGlvbiBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3BlZWNoLXJlY29nbml0aW9uLXRleHRcIj5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJNaWNyb3Bob25lKSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50ZXh0X2FyZWFfYmVmb3JlX3NwZWVjaCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmKGlzTGlzdGVuaW5nVXNlclZvaWNlKSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50ZXh0X2FyZWFfd2hpbGVfc3BlZWNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyQXByb3ZlICYmIGNhblJlbmRlckRpc2NhcmQpIHtcbiAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRleHRfYXJlYV9lbmRfc3BlZWNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1idXR0b25zXCI+XG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyTGlzdGVuaW5nVGV4dCkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdG9wTGlzdGVuaW5nKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtIHNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLXJlZ3VsYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtZWxsaXBzaXMtaFwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJNaWNyb3Bob25lKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTGlzdGVuKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtIHNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLW1pY3JvcGhvbmVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc3BlZWNoLXJlY29nbml0aW9uLWl0ZW0tZGlzYWJsZWRdPVwiaXNEaXNhYmxlZE1pY3JvcGhvbmUgfHwgaXNMaXN0ZW5pbmcgfHwgZGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWljcm9waG9uZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgQGlmKGNhblJlbmRlckFwcm92ZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFwcm92ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcGVlY2gtcmVjb2duaXRpb24taXRlbSBzcGVlY2gtcmVjb2duaXRpb24taXRlbS1hcHJvdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2tcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyRGlzY2FyZCkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRpc2NhcmQoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3BlZWNoLXJlY29nbml0aW9uLWl0ZW0gc3BlZWNoLXJlY29nbml0aW9uLWl0ZW0tZGlzY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJUZXh0VG9TcGVlY2gpIHtcbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25PcGVuVG9vbGJhcigpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcGVlY2gtcmVjb2duaXRpb24taXRlbSBzcGVlY2gtcmVjb2duaXRpb24taXRlbS1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLWRpc2FibGVkXT1cImlzRGlzYWJsZWRUZXh0VG9TcGVlY2hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdm9sdW1lLWRvd25cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhcikge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3BlZWNoLXJlY29nbml0aW9uLWl0ZW0tdG9vbGJhclwiPlxuICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXNcIiBbY2xhc3MuZmEtcGF1c2VdPVwiaXNQbGF5aW5nVGV4dFRvU3BlZWNoXCIgW2NsYXNzLmZhLXBsYXldPVwiIWlzUGxheWluZ1RleHRUb1NwZWVjaFwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlVGV4dFRvU3BlZWNoKClcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1iYWNrd2FyZFwiIChjbGljayk9XCJyZXN0YXJ0VGV4dFRvU3BlZWNoKClcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwidXBkYXRlVm9pY2VTcGVlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdm9pY2VTcGVlZCB9fXhcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCIgKGNsaWNrKT1cIm9uQ2xvc2VUb29sYmFyKClcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG59XG4iXX0=
|
|
@@ -1,24 +1,20 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
1
|
+
import { Injectable, NgZone, inject } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
4
|
+
import { LocaleService } from '@seniorsistemas/angular-components/locale';
|
|
5
|
+
import { ToastService } from '@seniorsistemas/angular-components/toast';
|
|
3
6
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@seniorsistemas/angular-components/locale";
|
|
5
|
-
import * as i2 from "@seniorsistemas/angular-components/toast";
|
|
6
|
-
import * as i3 from "@ngx-translate/core";
|
|
7
7
|
export class SpeechRecognitionService {
|
|
8
|
-
localeService;
|
|
9
|
-
ngZone;
|
|
10
|
-
toastService;
|
|
11
|
-
translateService;
|
|
8
|
+
localeService = inject(LocaleService);
|
|
9
|
+
ngZone = inject(NgZone);
|
|
10
|
+
toastService = inject(ToastService);
|
|
11
|
+
translateService = inject(TranslateService);
|
|
12
12
|
hasSupportSpeechRecognition = false;
|
|
13
13
|
isListening = false;
|
|
14
14
|
microphoneStatus$ = new Subject();
|
|
15
15
|
recognition;
|
|
16
16
|
TIMEOUT_NO_MESSAGE = 3000;
|
|
17
|
-
constructor(
|
|
18
|
-
this.localeService = localeService;
|
|
19
|
-
this.ngZone = ngZone;
|
|
20
|
-
this.toastService = toastService;
|
|
21
|
-
this.translateService = translateService;
|
|
17
|
+
constructor() {
|
|
22
18
|
this.setRecognition();
|
|
23
19
|
}
|
|
24
20
|
listen() {
|
|
@@ -134,7 +130,7 @@ export class SpeechRecognitionService {
|
|
|
134
130
|
}
|
|
135
131
|
});
|
|
136
132
|
}
|
|
137
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpeechRecognitionService, deps: [
|
|
133
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpeechRecognitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
138
134
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpeechRecognitionService, providedIn: 'root' });
|
|
139
135
|
}
|
|
140
136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpeechRecognitionService, decorators: [{
|
|
@@ -142,5 +138,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
142
138
|
args: [{
|
|
143
139
|
providedIn: 'root'
|
|
144
140
|
}]
|
|
145
|
-
}], ctorParameters: () => [
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3BlZWNoLXJlY29nbml0aW9uL3NyYy9saWIvc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFjL0IsTUFBTSxPQUFPLHdCQUF3QjtJQVFoQjtJQUNBO0lBQ0E7SUFDVDtJQVZWLDJCQUEyQixHQUFHLEtBQUssQ0FBQztJQUNwQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ1gsaUJBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQW9CLENBQUM7SUFDckQsV0FBVyxDQUFxQjtJQUN2QixrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFFM0MsWUFDbUIsYUFBNEIsRUFDNUIsTUFBYyxFQUNkLFlBQTBCLEVBQ25DLGdCQUFrQztRQUh6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUUxQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixhQUFhLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUMxQyxJ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QUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDakIsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsVUFBVSxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUU7d0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTs0QkFDbkIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN6RCxDQUFDLENBQUMsQ0FBQTtvQkFDSixDQUFDLENBQUE7Z0JBQ0gsQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7d0dBdElVLHdCQUF3Qjs0R0FBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3RvYXN0JztcblxuZXhwb3J0IHR5cGUgTWljcm9waG9uZVN0YXR1cyA9ICdhY3RpdmUnIHwgJ2luYWN0aXZlJztcbmV4cG9ydCBpbnRlcmZhY2UgU3BlZWNoUmVzdWx0IHtcbiAgdGV4dDogc3RyaW5nO1xuICBpc0ZpbmFsOiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2Uge1xuICBoYXNTdXBwb3J0U3BlZWNoUmVjb2duaXRpb24gPSBmYWxzZTtcbiAgaXNMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgcmVhZG9ubHkgbWljcm9waG9uZVN0YXR1cyQgPSBuZXcgU3ViamVjdDxNaWNyb3Bob25lU3RhdHVzPigpO1xuICBwcml2YXRlIHJlY29nbml0aW9uITogU3BlZWNoUmVjb2duaXRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgVElNRU9VVF9OT19NRVNTQUdFID0gMzAwMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5zZXRSZWNvZ25pdGlvbigpO1xuICB9XG5cbiAgbGlzdGVuKCkge1xuICAgIGNvbnN0IHNwZWVjaFN1YmplY3QgPSBuZXcgU3ViamVjdDxTcGVlY2hSZXN1bHQ+KCk7XG4gICAgaWYgKHRoaXMuaXNMaXN0ZW5pbmcpIHtcbiAgICAgIHNwZWVjaFN1YmplY3QuZXJyb3IoJ0FscmVhZHkgbGlzdGVuaW5nJyk7XG4gICAgfVxuICAgIHRoaXMuaGFzTWljcm9waG9uZUFjY2Vzcy50aGVuKChoYXNBY2Nlc3MpID0+IHtcbiAgICAgIGlmICghaGFzQWNjZXNzKSB7XG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coeyBzZXZlcml0eTogJ2Vycm9yJywgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5ub19taWNyb3Bob25lX3Blcm1pc3Npb24nKSB9KTtcbiAgICAgICAgc3BlZWNoU3ViamVjdC5lcnJvcignTWljcm9waG9uZSBhY2Nlc3MgaXMgZGlzYWJsZWQnKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5taWNyb3Bob25lU3RhdHVzJC5uZXh0KCdhY3RpdmUnKTtcblxuICAgICAgdGhpcy5pc0xpc3RlbmluZyA9IHRydWU7XG4gICAgICB0aGlzLnJlY29nbml0aW9uLmNvbnRpbnVvdXMgPSB0cnVlO1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5pbnRlcmltUmVzdWx0cyA9IHRydWU7XG4gICAgICB0aGlzLnJlY29nbml0aW9uLm1heEFsdGVybmF0aXZlcyA9IDE7XG4gICAgICBsZXQgc2lsZW5jZVRpbWVyOiBhbnk7XG4gICAgICBjb25zdCByZXN0YXJ0U2lsZW5jZVRpbWVyID0gKCkgPT4ge1xuICAgICAgICBpZiAoc2lsZW5jZVRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQoc2lsZW5jZVRpbWVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNpbGVuY2VUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVjb2duaXRpb24uc3RvcCgpO1xuICAgICAgICB9LCB0aGlzLlRJTUVPVVRfTk9fTUVTU0FHRSk7XG4gICAgICB9O1xuICAgICAgbGV0IGZ1bGxUcmFuc2NyaXB0ID0gJyc7XG4gICAgICBsZXQgaW50ZXJpbVRyYW5zY3JpcHQgPSAnJztcblxuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5vbnJlc3VsdCA9IChldmVudDogU3BlZWNoUmVjb2duaXRpb25FdmVudCkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHJlc3RhcnRTaWxlbmNlVGltZXIoKTtcbiAgICAgICAgICBsZXQgaW50ZXJpbVRyYW5zY3JpcHQgPSAnJztcbiAgICAgICAgICBmb3IgKGxldCBpID0gZXZlbnQucmVzdWx0SW5kZXg7IGkgPCBldmVudC5yZXN1bHRzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2NyaXB0ID0gZXZlbnQucmVzdWx0c1tpXVswXS50cmFuc2NyaXB0O1xuICAgICAgICAgICAgaWYgKGV2ZW50LnJlc3VsdHNbaV0uaXNGaW5hbCkge1xuICAgICAgICAgICAgICBmdWxsVHJhbnNjcmlwdCArPSB0cmFuc2NyaXB0ICsgJ1xcbic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpbnRlcmltVHJhbnNjcmlwdCArPSB0cmFuc2NyaXB0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpbnRlcmltVHJhbnNjcmlwdCA9IGludGVyaW1UcmFuc2NyaXB0O1xuICAgICAgICAgIHNwZWVjaFN1YmplY3QubmV4dCh7IHRleHQ6IGZ1bGxUcmFuc2NyaXB0ICsgaW50ZXJpbVRyYW5zY3JpcHQsIGlzRmluYWw6IGZhbHNlIH0pO1xuICAgICAgICB9KVxuICAgICAgfTtcbiAgICAgIHRoaXMucmVjb2duaXRpb24ub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBpZiAoc2lsZW5jZVRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChzaWxlbmNlVGltZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmlzTGlzdGVuaW5nID0gZmFsc2U7XG4gICAgICAgICAgc3BlZWNoU3ViamVjdC5lcnJvcignU3BlZWNoIHJlY29nbml0aW9uIGVycm9yJyk7XG4gICAgICAgICAgdGhpcy5taWNyb3Bob25lU3RhdHVzJC5uZXh0KCdpbmFjdGl2ZScpXG4gICAgICAgIH0pXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnJlY29nbml0aW9uLm9uZW5kID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChzaWxlbmNlVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHNpbGVuY2VUaW1lcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNwZWVjaFN1YmplY3QubmV4dCh7IHRleHQ6IGZ1bGxUcmFuc2NyaXB0ICsgaW50ZXJpbVRyYW5zY3JpcHQsIGlzRmluYWw6IHRydWUgfSk7XG4gICAgICAgICAgdGhpcy5pc0xpc3RlbmluZyA9IGZhbHNlO1xuICAgICAgICAgIHNwZWVjaFN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgICB0aGlzLm1pY3JvcGhvbmVTdGF0dXMkLm5leHQoJ2luYWN0aXZlJylcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgICB0aGlzLnJlY29nbml0aW9uLnN0YXJ0KCk7XG4gICAgfSlcbiAgICByZXR1cm4gc3BlZWNoU3ViamVjdDtcbiAgfVxuXG5cbiAgc3RvcCgpIHtcbiAgICB0aGlzLnJlY29nbml0aW9uLnN0b3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UmVjb2duaXRpb24oKSB7XG4gICAgY29uc3QgU3BlZWNoUmVjb2duaXRpb25Db25zdHJ1Y3RvciA9XG4gICAgICAod2luZG93IGFzIGFueSkuU3BlZWNoUmVjb2duaXRpb24gfHwgKHdpbmRvdyBhcyBhbnkpLndlYmtpdFNwZWVjaFJlY29nbml0aW9uO1xuXG4gICAgaWYgKCFTcGVlY2hSZWNvZ25pdGlvbkNvbnN0cnVjdG9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1NwZWVjaCByZWNvZ25pdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3Nlci4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oYXNTdXBwb3J0U3BlZWNoUmVjb2duaXRpb24gPSB0cnVlO1xuICAgIHRoaXMucmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb25Db25zdHJ1Y3RvcigpO1xuICAgIHRoaXMucmVjb2duaXRpb24ubGFuZyA9IHRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGVPcHRpb25zKCk/LmxvY2FsZSB8fCAncHQtQlInO1xuICAgIHRoaXMucmVjb2duaXRpb24uaW50ZXJpbVJlc3VsdHMgPSBmYWxzZTtcbiAgICB0aGlzLnJlY29nbml0aW9uLm1heEFsdGVybmF0aXZlcyA9IDE7XG4gICAgdGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZSgpLnN1YnNjcmliZShsb2NhbGUgPT4gdGhpcy5yZWNvZ25pdGlvbi5sYW5nID0gbG9jYWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGhhc01pY3JvcGhvbmVBY2Nlc3MoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCBwZXJtaXNzaW9uID0gYXdhaXQgbmF2aWdhdG9yLnBlcm1pc3Npb25zLnF1ZXJ5KHsgbmFtZTogJ21pY3JvcGhvbmUnIGFzIFBlcm1pc3Npb25OYW1lIH0pO1xuICAgICAgaWYgKHBlcm1pc3Npb24uc3RhdGUgPT09ICdkZW5pZWQnKSB7XG4gICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgfSBlbHNlIGlmIChwZXJtaXNzaW9uLnN0YXRlID09PSAnZ3JhbnRlZCcpIHtcbiAgICAgICAgcmVzb2x2ZSh0cnVlKVxuICAgICAgfSBlbHNlIGlmIChwZXJtaXNzaW9uLnN0YXRlID09PSAncHJvbXB0Jykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUgfSkudGhlbigoc3RyZWFtKSA9PiB7XG4gICAgICAgICAgICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0ID0+IHQuc3RvcCgpKTtcbiAgICAgICAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBwZXJtaXNzaW9uLm9uY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShwZXJtaXNzaW9uLnN0YXRlID09PSAnZ3JhbnRlZCcgPyB0cnVlIDogZmFsc2UpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG4iXX0=
|
|
141
|
+
}], ctorParameters: () => [] });
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3BlZWNoLXJlY29nbml0aW9uL3NyYy9saWIvc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBV3hFLE1BQU0sT0FBTyx3QkFBd0I7SUFDbEIsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0QyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0MsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFcEQsMkJBQTJCLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDWCxpQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztJQUNyRCxXQUFXLENBQXFCO0lBQ3ZCLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUUzQztRQUNFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBQ2xELElBQUksSUFBSSxD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O3dCQUNuRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQzVDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7d0JBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNqQixDQUFDLENBQUMsQ0FBQztvQkFDSCxVQUFVLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTt3QkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFOzRCQUNuQixPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3pELENBQUMsQ0FBQyxDQUFBO29CQUNKLENBQUMsQ0FBQTtnQkFDSCxDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzt3R0F0SVUsd0JBQXdCOzRHQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9sb2NhbGUnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90b2FzdCc7XG5cbmV4cG9ydCB0eXBlIE1pY3JvcGhvbmVTdGF0dXMgPSAnYWN0aXZlJyB8ICdpbmFjdGl2ZSc7XG5leHBvcnQgaW50ZXJmYWNlIFNwZWVjaFJlc3VsdCB7XG4gIHRleHQ6IHN0cmluZztcbiAgaXNGaW5hbDogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGVTZXJ2aWNlID0gaW5qZWN0KExvY2FsZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgaGFzU3VwcG9ydFNwZWVjaFJlY29nbml0aW9uID0gZmFsc2U7XG4gIGlzTGlzdGVuaW5nID0gZmFsc2U7XG4gIHJlYWRvbmx5IG1pY3JvcGhvbmVTdGF0dXMkID0gbmV3IFN1YmplY3Q8TWljcm9waG9uZVN0YXR1cz4oKTtcbiAgcHJpdmF0ZSByZWNvZ25pdGlvbiE6IFNwZWVjaFJlY29nbml0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IFRJTUVPVVRfTk9fTUVTU0FHRSA9IDMwMDA7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zZXRSZWNvZ25pdGlvbigpO1xuICB9XG5cbiAgbGlzdGVuKCkge1xuICAgIGNvbnN0IHNwZWVjaFN1YmplY3QgPSBuZXcgU3ViamVjdDxTcGVlY2hSZXN1bHQ+KCk7XG4gICAgaWYgKHRoaXMuaXNMaXN0ZW5pbmcpIHtcbiAgICAgIHNwZWVjaFN1YmplY3QuZXJyb3IoJ0FscmVhZHkgbGlzdGVuaW5nJyk7XG4gICAgfVxuICAgIHRoaXMuaGFzTWljcm9waG9uZUFjY2Vzcy50aGVuKChoYXNBY2Nlc3MpID0+IHtcbiAgICAgIGlmICghaGFzQWNjZXNzKSB7XG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coeyBzZXZlcml0eTogJ2Vycm9yJywgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5ub19taWNyb3Bob25lX3Blcm1pc3Npb24nKSB9KTtcbiAgICAgICAgc3BlZWNoU3ViamVjdC5lcnJvcignTWljcm9waG9uZSBhY2Nlc3MgaXMgZGlzYWJsZWQnKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5taWNyb3Bob25lU3RhdHVzJC5uZXh0KCdhY3RpdmUnKTtcblxuICAgICAgdGhpcy5pc0xpc3RlbmluZyA9IHRydWU7XG4gICAgICB0aGlzLnJlY29nbml0aW9uLmNvbnRpbnVvdXMgPSB0cnVlO1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5pbnRlcmltUmVzdWx0cyA9IHRydWU7XG4gICAgICB0aGlzLnJlY29nbml0aW9uLm1heEFsdGVybmF0aXZlcyA9IDE7XG4gICAgICBsZXQgc2lsZW5jZVRpbWVyOiBhbnk7XG4gICAgICBjb25zdCByZXN0YXJ0U2lsZW5jZVRpbWVyID0gKCkgPT4ge1xuICAgICAgICBpZiAoc2lsZW5jZVRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQoc2lsZW5jZVRpbWVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNpbGVuY2VUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVjb2duaXRpb24uc3RvcCgpO1xuICAgICAgICB9LCB0aGlzLlRJTUVPVVRfTk9fTUVTU0FHRSk7XG4gICAgICB9O1xuICAgICAgbGV0IGZ1bGxUcmFuc2NyaXB0ID0gJyc7XG4gICAgICBsZXQgaW50ZXJpbVRyYW5zY3JpcHQgPSAnJztcblxuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5vbnJlc3VsdCA9IChldmVudDogU3BlZWNoUmVjb2duaXRpb25FdmVudCkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHJlc3RhcnRTaWxlbmNlVGltZXIoKTtcbiAgICAgICAgICBsZXQgaW50ZXJpbVRyYW5zY3JpcHQgPSAnJztcbiAgICAgICAgICBmb3IgKGxldCBpID0gZXZlbnQucmVzdWx0SW5kZXg7IGkgPCBldmVudC5yZXN1bHRzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2NyaXB0ID0gZXZlbnQucmVzdWx0c1tpXVswXS50cmFuc2NyaXB0O1xuICAgICAgICAgICAgaWYgKGV2ZW50LnJlc3VsdHNbaV0uaXNGaW5hbCkge1xuICAgICAgICAgICAgICBmdWxsVHJhbnNjcmlwdCArPSB0cmFuc2NyaXB0ICsgJ1xcbic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpbnRlcmltVHJhbnNjcmlwdCArPSB0cmFuc2NyaXB0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpbnRlcmltVHJhbnNjcmlwdCA9IGludGVyaW1UcmFuc2NyaXB0O1xuICAgICAgICAgIHNwZWVjaFN1YmplY3QubmV4dCh7IHRleHQ6IGZ1bGxUcmFuc2NyaXB0ICsgaW50ZXJpbVRyYW5zY3JpcHQsIGlzRmluYWw6IGZhbHNlIH0pO1xuICAgICAgICB9KVxuICAgICAgfTtcbiAgICAgIHRoaXMucmVjb2duaXRpb24ub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBpZiAoc2lsZW5jZVRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChzaWxlbmNlVGltZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmlzTGlzdGVuaW5nID0gZmFsc2U7XG4gICAgICAgICAgc3BlZWNoU3ViamVjdC5lcnJvcignU3BlZWNoIHJlY29nbml0aW9uIGVycm9yJyk7XG4gICAgICAgICAgdGhpcy5taWNyb3Bob25lU3RhdHVzJC5uZXh0KCdpbmFjdGl2ZScpXG4gICAgICAgIH0pXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnJlY29nbml0aW9uLm9uZW5kID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChzaWxlbmNlVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHNpbGVuY2VUaW1lcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNwZWVjaFN1YmplY3QubmV4dCh7IHRleHQ6IGZ1bGxUcmFuc2NyaXB0ICsgaW50ZXJpbVRyYW5zY3JpcHQsIGlzRmluYWw6IHRydWUgfSk7XG4gICAgICAgICAgdGhpcy5pc0xpc3RlbmluZyA9IGZhbHNlO1xuICAgICAgICAgIHNwZWVjaFN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgICB0aGlzLm1pY3JvcGhvbmVTdGF0dXMkLm5leHQoJ2luYWN0aXZlJylcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgICB0aGlzLnJlY29nbml0aW9uLnN0YXJ0KCk7XG4gICAgfSlcbiAgICByZXR1cm4gc3BlZWNoU3ViamVjdDtcbiAgfVxuXG5cbiAgc3RvcCgpIHtcbiAgICB0aGlzLnJlY29nbml0aW9uLnN0b3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UmVjb2duaXRpb24oKSB7XG4gICAgY29uc3QgU3BlZWNoUmVjb2duaXRpb25Db25zdHJ1Y3RvciA9XG4gICAgICAod2luZG93IGFzIGFueSkuU3BlZWNoUmVjb2duaXRpb24gfHwgKHdpbmRvdyBhcyBhbnkpLndlYmtpdFNwZWVjaFJlY29nbml0aW9uO1xuXG4gICAgaWYgKCFTcGVlY2hSZWNvZ25pdGlvbkNvbnN0cnVjdG9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1NwZWVjaCByZWNvZ25pdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3Nlci4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oYXNTdXBwb3J0U3BlZWNoUmVjb2duaXRpb24gPSB0cnVlO1xuICAgIHRoaXMucmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb25Db25zdHJ1Y3RvcigpO1xuICAgIHRoaXMucmVjb2duaXRpb24ubGFuZyA9IHRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGVPcHRpb25zKCk/LmxvY2FsZSB8fCAncHQtQlInO1xuICAgIHRoaXMucmVjb2duaXRpb24uaW50ZXJpbVJlc3VsdHMgPSBmYWxzZTtcbiAgICB0aGlzLnJlY29nbml0aW9uLm1heEFsdGVybmF0aXZlcyA9IDE7XG4gICAgdGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZSgpLnN1YnNjcmliZShsb2NhbGUgPT4gdGhpcy5yZWNvZ25pdGlvbi5sYW5nID0gbG9jYWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGhhc01pY3JvcGhvbmVBY2Nlc3MoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCBwZXJtaXNzaW9uID0gYXdhaXQgbmF2aWdhdG9yLnBlcm1pc3Npb25zLnF1ZXJ5KHsgbmFtZTogJ21pY3JvcGhvbmUnIGFzIFBlcm1pc3Npb25OYW1lIH0pO1xuICAgICAgaWYgKHBlcm1pc3Npb24uc3RhdGUgPT09ICdkZW5pZWQnKSB7XG4gICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgfSBlbHNlIGlmIChwZXJtaXNzaW9uLnN0YXRlID09PSAnZ3JhbnRlZCcpIHtcbiAgICAgICAgcmVzb2x2ZSh0cnVlKVxuICAgICAgfSBlbHNlIGlmIChwZXJtaXNzaW9uLnN0YXRlID09PSAncHJvbXB0Jykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUgfSkudGhlbigoc3RyZWFtKSA9PiB7XG4gICAgICAgICAgICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0ID0+IHQuc3RvcCgpKTtcbiAgICAgICAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBwZXJtaXNzaW9uLm9uY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShwZXJtaXNzaW9uLnN0YXRlID09PSAnZ3JhbnRlZCcgPyB0cnVlIDogZmFsc2UpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG4iXX0=
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
1
|
+
import { Injectable, NgZone, inject } from '@angular/core';
|
|
2
|
+
import { LocaleService } from '@seniorsistemas/angular-components/locale';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@seniorsistemas/angular-components/locale";
|
|
4
4
|
export class TextToSpeechService {
|
|
5
|
-
locale;
|
|
6
|
-
ngZone;
|
|
5
|
+
locale = inject(LocaleService);
|
|
6
|
+
ngZone = inject(NgZone);
|
|
7
7
|
utterance = new SpeechSynthesisUtterance();
|
|
8
8
|
activeVoice;
|
|
9
9
|
voices = [];
|
|
10
|
-
constructor(
|
|
11
|
-
this.locale = locale;
|
|
12
|
-
this.ngZone = ngZone;
|
|
10
|
+
constructor() {
|
|
13
11
|
this.setVoices();
|
|
14
12
|
}
|
|
15
13
|
setVoices() {
|
|
@@ -69,7 +67,7 @@ export class TextToSpeechService {
|
|
|
69
67
|
this.activeVoice = _voice;
|
|
70
68
|
}
|
|
71
69
|
}
|
|
72
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextToSpeechService, deps: [
|
|
70
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextToSpeechService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
73
71
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextToSpeechService, providedIn: 'root' });
|
|
74
72
|
}
|
|
75
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextToSpeechService, decorators: [{
|
|
@@ -77,5 +75,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
77
75
|
args: [{
|
|
78
76
|
providedIn: 'root'
|
|
79
77
|
}]
|
|
80
|
-
}], ctorParameters: () => [
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
}], ctorParameters: () => [] });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10by1zcGVlY2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24vc3JjL2xpYi9zcGVlY2gtcmVjb2duaXRpb24vdGV4dC10by1zcGVlY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQUsxRSxNQUFNLE9BQU8sbUJBQW1CO0lBQ2IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhCLFNBQVMsR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUM7SUFDcEQsV0FBVyxDQUFtQztJQUN0RCxNQUFNLEdBQTJCLEVBQUUsQ0FBQztJQUNwQztRQUNFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksT0FBTyxHQUFHLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUUxQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLGVBQWUsQ0FBQyxlQUFlLEdBQUcsR0FBRyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ25CLE9BQU8sR0FBRyxlQUFlLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ3RDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLElBQUksT0FBTyxDQUFDO29CQUN0RSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztvQkFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTt3QkFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLENBQUMsQ0FBQyxDQUFBO2dCQUNKLENBQUMsQ0FBQyxDQUFBO1lBQ0osQ0FBQyxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUdELEtBQUssQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsQ0FBQztRQUNuQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBbUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDNUIsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO2dCQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLO1FBQ0gsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNO1FBQ0osZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNO1FBQ0osZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFTyxjQUFjLENBQUMsTUFBOEIsRUFBRSxJQUFZO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO3dHQTVFVSxtQkFBbUI7NEdBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRleHRUb1NwZWVjaFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZSA9IGluamVjdChMb2NhbGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHV0dGVyYW5jZSA9IG5ldyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UoKTtcbiAgcHJpdmF0ZSBhY3RpdmVWb2ljZTogU3BlZWNoU3ludGhlc2lzVm9pY2UgfCB1bmRlZmluZWQ7XG4gIHZvaWNlczogU3BlZWNoU3ludGhlc2lzVm9pY2VbXSA9IFtdO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNldFZvaWNlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRWb2ljZXMoKSB7XG4gICAgbGV0IF92b2ljZXMgPSBzcGVlY2hTeW50aGVzaXMuZ2V0Vm9pY2VzKCk7XG5cbiAgICBpZiAoIV92b2ljZXMubGVuZ3RoKSB7XG4gICAgICBzcGVlY2hTeW50aGVzaXMub252b2ljZXNjaGFuZ2VkID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIF92b2ljZXMgPSBzcGVlY2hTeW50aGVzaXMuZ2V0Vm9pY2VzKCk7XG4gICAgICAgICAgY29uc3QgY3VycmVudExhbmcgPSB0aGlzLmxvY2FsZS5nZXRMb2NhbGVPcHRpb25zKCk/LmxvY2FsZSB8fCAncHQtQlInO1xuICAgICAgICAgIHRoaXMuc2V0QWN0aXZlVm9pY2UoX3ZvaWNlcywgY3VycmVudExhbmcpO1xuICAgICAgICAgIHRoaXMubG9jYWxlLmdldExvY2FsZSgpLnN1YnNjcmliZSgobG9jYWxlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZVZvaWNlKF92b2ljZXMsIGxvY2FsZSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgYWN0aXZlIHZvaWNlXG4gICAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvU3BlZWNoU3ludGhlc2lzVm9pY2Uvdm9pY2VVUkkpXG4gICAqIEBwYXJhbSB2b2ljZVVyaVxuICAgKi9cbiAgdXBkYXRlVm9pY2Uodm9pY2VVcmk6IHN0cmluZykge1xuICAgIHRoaXMuYWN0aXZlVm9pY2UgPSB0aGlzLnZvaWNlcy5maW5kKCh2b2ljZSkgPT4gdm9pY2Uudm9pY2VVUkkgPT09IHZvaWNlVXJpKTtcbiAgfVxuXG5cbiAgc3BlYWsodGV4dDogc3RyaW5nLCBzcGVlZDogbnVtYmVyID0gMSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFjdGl2ZVZvaWNlKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKHRydWUpO1xuICAgICAgfVxuICAgICAgdGhpcy51dHRlcmFuY2UudGV4dCA9IHRleHQ7XG4gICAgICB0aGlzLnV0dGVyYW5jZS52b2ljZSA9IHRoaXMuYWN0aXZlVm9pY2UgYXMgU3BlZWNoU3ludGhlc2lzVm9pY2U7XG4gICAgICB0aGlzLnV0dGVyYW5jZS5yYXRlID0gc3BlZWQ7XG4gICAgICBzcGVlY2hTeW50aGVzaXMuc3BlYWsodGhpcy51dHRlcmFuY2UpO1xuICAgICAgdGhpcy51dHRlcmFuY2Uub25lbmQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcGF1c2UoKSB7XG4gICAgc3BlZWNoU3ludGhlc2lzLnBhdXNlKCk7XG4gIH1cblxuICByZXN1bWUoKSB7XG4gICAgc3BlZWNoU3ludGhlc2lzLnJlc3VtZSgpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHNwZWVjaFN5bnRoZXNpcy5jYW5jZWwoKTtcbiAgfVxuXG4gIGdldCBoYXNWb2ljZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGl2ZVZvaWNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVWb2ljZSh2b2ljZXM6IFNwZWVjaFN5bnRoZXNpc1ZvaWNlW10sIGxhbmc6IHN0cmluZykge1xuICAgIGNvbnN0IF92b2ljZSA9IHZvaWNlcy5maW5kKCh2b2ljZSkgPT4gdm9pY2UubGFuZyA9PT0gbGFuZyk7XG4gICAgaWYgKF92b2ljZSkge1xuICAgICAgdGhpcy5hY3RpdmVWb2ljZSA9IF92b2ljZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|