@bnsights/bbsf-controls 1.0.107 → 1.0.110
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/README.md +15 -0
- package/esm2022/bnsights-bbsf-controls.mjs +5 -0
- package/esm2022/lib/Shared/Components/app-base-component.mjs +226 -0
- package/esm2022/lib/Shared/Components/ng-tag-input.mjs +331 -0
- package/esm2022/lib/Shared/Directives/template-name.directive.mjs +18 -0
- package/{esm2015/lib/Shared/Enums/CalendarView.js → esm2022/lib/Shared/Enums/CalendarView.mjs} +7 -7
- package/{esm2015/lib/Shared/Enums/ControlLayout.js → esm2022/lib/Shared/Enums/ControlLayout.mjs} +5 -5
- package/{esm2015/lib/Shared/Enums/Countries.js → esm2022/lib/Shared/Enums/Countries.mjs} +246 -246
- package/{esm2015/lib/Shared/Enums/Enums.js → esm2022/lib/Shared/Enums/Enums.mjs} +32 -32
- package/{esm2015/lib/Shared/Enums/FileType.js → esm2022/lib/Shared/Enums/FileType.mjs} +21 -21
- package/{esm2015/lib/Shared/Enums/FilterType.js → esm2022/lib/Shared/Enums/FilterType.mjs} +10 -10
- package/{esm2015/lib/Shared/Enums/FontSize.js → esm2022/lib/Shared/Enums/FontSize.mjs} +6 -6
- package/{esm2015/lib/Shared/Enums/ForceDirection.js → esm2022/lib/Shared/Enums/ForceDirection.mjs} +5 -5
- package/{esm2015/lib/Shared/Enums/IconPosition.js → esm2022/lib/Shared/Enums/IconPosition.mjs} +5 -5
- package/{esm2015/lib/Shared/Enums/ImageType.js → esm2022/lib/Shared/Enums/ImageType.mjs} +9 -9
- package/{esm2015/lib/Shared/Enums/InputType.js → esm2022/lib/Shared/Enums/InputType.mjs} +9 -9
- package/{esm2015/lib/Shared/Enums/Insert.js → esm2022/lib/Shared/Enums/Insert.mjs} +8 -8
- package/{esm2015/lib/Shared/Enums/LanguageMode.js → esm2022/lib/Shared/Enums/LanguageMode.mjs} +10 -10
- package/{esm2015/lib/Shared/Enums/LanguageValidation.js → esm2022/lib/Shared/Enums/LanguageValidation.mjs} +5 -5
- package/{esm2015/lib/Shared/Enums/Misc.js → esm2022/lib/Shared/Enums/Misc.mjs} +6 -6
- package/{esm2015/lib/Shared/Enums/PagingActionMode.js → esm2022/lib/Shared/Enums/PagingActionMode.mjs} +5 -5
- package/{esm2015/lib/Shared/Enums/Para.js → esm2022/lib/Shared/Enums/Para.mjs} +8 -8
- package/{esm2015/lib/Shared/Enums/PickerType.js → esm2022/lib/Shared/Enums/PickerType.mjs} +6 -6
- package/{esm2015/lib/Shared/Enums/SelectMode.js → esm2022/lib/Shared/Enums/SelectMode.mjs} +5 -5
- package/{esm2015/lib/Shared/Enums/StartView.js → esm2022/lib/Shared/Enums/StartView.mjs} +6 -6
- package/{esm2015/lib/Shared/Enums/Style.js → esm2022/lib/Shared/Enums/Style.mjs} +7 -7
- package/{esm2015/lib/Shared/Enums/StyleConfirmationMode.js → esm2022/lib/Shared/Enums/StyleConfirmationMode.mjs} +6 -6
- package/{esm2015/lib/Shared/Enums/TagInputView.js → esm2022/lib/Shared/Enums/TagInputView.mjs} +6 -6
- package/{esm2015/lib/Shared/Enums/menu-list-enum.js → esm2022/lib/Shared/Enums/menu-list-enum.mjs} +5 -5
- package/{esm2015/lib/Shared/Models/Attribute.js → esm2022/lib/Shared/Models/Attribute.mjs} +2 -2
- package/{esm2015/lib/Shared/Models/AutocompleteDTO.js → esm2022/lib/Shared/Models/AutocompleteDTO.mjs} +7 -7
- package/{esm2015/lib/Shared/Models/AutocompleteOptions.js → esm2022/lib/Shared/Models/AutocompleteOptions.mjs} +23 -23
- package/{esm2015/lib/Shared/Models/CalendarEventDTO.js → esm2022/lib/Shared/Models/CalendarEventDTO.mjs} +2 -2
- package/{esm2015/lib/Shared/Models/CalendarOptions.js → esm2022/lib/Shared/Models/CalendarOptions.mjs} +18 -18
- package/{esm2015/lib/Shared/Models/CancelDTO.js → esm2022/lib/Shared/Models/CancelDTO.mjs} +6 -6
- package/{esm2015/lib/Shared/Models/CaptchaStyle.js → esm2022/lib/Shared/Models/CaptchaStyle.mjs} +2 -2
- package/{esm2015/lib/Shared/Models/CheckBoxOptions.js → esm2022/lib/Shared/Models/CheckBoxOptions.mjs} +10 -10
- package/{esm2015/lib/Shared/Models/ConfirmationModalOptions.js → esm2022/lib/Shared/Models/ConfirmationModalOptions.mjs} +38 -38
- package/{esm2015/lib/Shared/Models/ControlOptionsBase.js → esm2022/lib/Shared/Models/ControlOptionsBase.mjs} +12 -12
- package/{esm2015/lib/Shared/Models/CustomValidation.js → esm2022/lib/Shared/Models/CustomValidation.mjs} +13 -13
- package/{esm2015/lib/Shared/Models/DropdownListItem.js → esm2022/lib/Shared/Models/DropdownListItem.mjs} +3 -3
- package/{esm2015/lib/Shared/Models/DropdownOptions.js → esm2022/lib/Shared/Models/DropdownOptions.mjs} +15 -15
- package/{esm2015/lib/Shared/Models/EditPersonalImage.js → esm2022/lib/Shared/Models/EditPersonalImage.mjs} +6 -6
- package/{esm2015/lib/Shared/Models/EnglishArabicDTO.js → esm2022/lib/Shared/Models/EnglishArabicDTO.mjs} +10 -10
- package/{esm2015/lib/Shared/Models/FileDTO.js → esm2022/lib/Shared/Models/FileDTO.mjs} +1 -1
- package/{esm2015/lib/Shared/Models/FileUploadModel.js → esm2022/lib/Shared/Models/FileUploadModel.mjs} +2 -2
- package/{esm2015/lib/Shared/Models/FileUploadOptions.js → esm2022/lib/Shared/Models/FileUploadOptions.mjs} +10 -10
- package/{esm2015/lib/Shared/Models/FilterItem.js → esm2022/lib/Shared/Models/FilterItem.mjs} +7 -7
- package/{esm2015/lib/Shared/Models/FormOptions.js → esm2022/lib/Shared/Models/FormOptions.mjs} +27 -27
- package/{esm2015/lib/Shared/Models/HtmlEditorOptions.js → esm2022/lib/Shared/Models/HtmlEditorOptions.mjs} +11 -11
- package/{esm2015/lib/Shared/Models/ImageUploadOptions.js → esm2022/lib/Shared/Models/ImageUploadOptions.mjs} +13 -13
- package/{esm2015/lib/Shared/Models/MapAutoCompleteOptions.js → esm2022/lib/Shared/Models/MapAutoCompleteOptions.mjs} +3 -3
- package/{esm2015/lib/Shared/Models/MapAutocompleteDTO.js → esm2022/lib/Shared/Models/MapAutocompleteDTO.mjs} +5 -5
- package/{esm2015/lib/Shared/Models/MultiLingualHtmlEditorOptions.js → esm2022/lib/Shared/Models/MultiLingualHtmlEditorOptions.mjs} +8 -8
- package/{esm2015/lib/Shared/Models/MultiLingualTextAreaOptions.js → esm2022/lib/Shared/Models/MultiLingualTextAreaOptions.mjs} +8 -8
- package/{esm2015/lib/Shared/Models/MultilingualControlOptionsBase.js → esm2022/lib/Shared/Models/MultilingualControlOptionsBase.mjs} +15 -15
- package/{esm2015/lib/Shared/Models/MultilingualTextBoxOptions.js → esm2022/lib/Shared/Models/MultilingualTextBoxOptions.mjs} +13 -13
- package/{esm2015/lib/Shared/Models/MultipleFileUploadModel.js → esm2022/lib/Shared/Models/MultipleFileUploadModel.mjs} +8 -8
- package/{esm2015/lib/Shared/Models/PagingDTO.js → esm2022/lib/Shared/Models/PagingDTO.mjs} +12 -12
- package/{esm2015/lib/Shared/Models/PagingOptions.js → esm2022/lib/Shared/Models/PagingOptions.mjs} +46 -46
- package/{esm2015/lib/Shared/Models/PagingPayload.js → esm2022/lib/Shared/Models/PagingPayload.mjs} +2 -2
- package/{esm2015/lib/Shared/Models/PhoneOptions.js → esm2022/lib/Shared/Models/PhoneOptions.mjs} +12 -12
- package/{esm2015/lib/Shared/Models/ProfileImageUploadOptions.js → esm2022/lib/Shared/Models/ProfileImageUploadOptions.mjs} +10 -10
- package/{esm2015/lib/Shared/Models/ProfilePictureDTO.js → esm2022/lib/Shared/Models/ProfilePictureDTO.mjs} +2 -2
- package/{esm2015/lib/Shared/Models/RadioButtonItem.js → esm2022/lib/Shared/Models/RadioButtonItem.mjs} +2 -2
- package/{esm2015/lib/Shared/Models/RadioButtonOptions.js → esm2022/lib/Shared/Models/RadioButtonOptions.mjs} +3 -3
- package/{esm2015/lib/Shared/Models/RangeNumber.js → esm2022/lib/Shared/Models/RangeNumber.mjs} +2 -2
- package/{esm2015/lib/Shared/Models/Recaptcha.js → esm2022/lib/Shared/Models/Recaptcha.mjs} +5 -5
- package/{esm2015/lib/Shared/Models/RecaptchaOptions.js → esm2022/lib/Shared/Models/RecaptchaOptions.mjs} +21 -21
- package/{esm2015/lib/Shared/Models/RepeaterField.js → esm2022/lib/Shared/Models/RepeaterField.mjs} +2 -2
- package/{esm2015/lib/Shared/Models/RepeaterOptions.js → esm2022/lib/Shared/Models/RepeaterOptions.mjs} +12 -12
- package/{esm2015/lib/Shared/Models/SaveDTO.js → esm2022/lib/Shared/Models/SaveDTO.mjs} +6 -6
- package/{esm2015/lib/Shared/Models/TagsInputDTO.js → esm2022/lib/Shared/Models/TagsInputDTO.mjs} +2 -2
- package/{esm2015/lib/Shared/Models/TagsInputOptions.js → esm2022/lib/Shared/Models/TagsInputOptions.mjs} +40 -40
- package/{esm2015/lib/Shared/Models/TextAreaOptions.js → esm2022/lib/Shared/Models/TextAreaOptions.mjs} +3 -3
- package/{esm2015/lib/Shared/Models/TextBoxOptions.js → esm2022/lib/Shared/Models/TextBoxOptions.mjs} +22 -22
- package/{esm2015/lib/Shared/Models/ToggleslideOptions.js → esm2022/lib/Shared/Models/ToggleslideOptions.mjs} +8 -8
- package/{esm2015/lib/Shared/Models/UploadPersonalImage.js → esm2022/lib/Shared/Models/UploadPersonalImage.mjs} +6 -6
- package/{esm2015/lib/Shared/Models/bread-crumb.js → esm2022/lib/Shared/Models/bread-crumb.mjs} +7 -7
- package/{esm2015/lib/Shared/Models/control-filter-Item.js → esm2022/lib/Shared/Models/control-filter-Item.mjs} +5 -5
- package/{esm2015/lib/Shared/Models/datePickerOptions.js → esm2022/lib/Shared/Models/datePickerOptions.mjs} +22 -22
- package/{esm2015/lib/Shared/Models/filter-options.js → esm2022/lib/Shared/Models/filter-options.mjs} +8 -8
- package/{esm2015/lib/Shared/Models/page-header-options.js → esm2022/lib/Shared/Models/page-header-options.mjs} +77 -77
- package/esm2022/lib/Shared/Pipes/bbsf-date-time.pipe.mjs +21 -0
- package/esm2022/lib/Shared/Pipes/bbsf-date.pipe.mjs +21 -0
- package/{esm2015/lib/Shared/config/environment.js → esm2022/lib/Shared/config/environment.mjs} +11 -11
- package/esm2022/lib/Shared/default_intl.mjs +29 -0
- package/esm2022/lib/Shared/services/ControlUtility.mjs +162 -0
- package/esm2022/lib/Shared/services/GlobalSettings.service.mjs +30 -0
- package/esm2022/lib/Shared/services/OnPagingFiltersChange.service.mjs +24 -0
- package/esm2022/lib/Shared/services/render-component-service.service.mjs +30 -0
- package/esm2022/lib/Shared/services/validationErrorMassage.service.mjs +170 -0
- package/esm2022/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +262 -0
- package/esm2022/lib/controls/Calendar/Calendar.component.mjs +173 -0
- package/esm2022/lib/controls/CheckBox/CheckBox.component.mjs +117 -0
- package/esm2022/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +136 -0
- package/esm2022/lib/controls/DateTimePicker/DateTimePicker.component.mjs +223 -0
- package/esm2022/lib/controls/DropdownList/DropdownList.component.mjs +193 -0
- package/esm2022/lib/controls/FileUplaod/FileUplaod.component.mjs +447 -0
- package/esm2022/lib/controls/Form/Form.component.mjs +101 -0
- package/{esm2015/lib/controls/HtmlEditor/HtmlEditor.component.js → esm2022/lib/controls/HtmlEditor/HtmlEditor.component.mjs} +226 -226
- package/esm2022/lib/controls/ImageUpload/ImageUpload.component.mjs +350 -0
- package/esm2022/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +324 -0
- package/esm2022/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +427 -0
- package/esm2022/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +429 -0
- package/esm2022/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +428 -0
- package/esm2022/lib/controls/Paging/JwPagination.component.mjs +156 -0
- package/esm2022/lib/controls/Paging/Paging.component.mjs +312 -0
- package/esm2022/lib/controls/Phone/Phone.component.mjs +129 -0
- package/esm2022/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +376 -0
- package/esm2022/lib/controls/RadioButton/RadioButton.component.mjs +109 -0
- package/esm2022/lib/controls/Recaptcha/Recaptcha.component.mjs +135 -0
- package/esm2022/lib/controls/Repeater/repeater/repeater.component.mjs +125 -0
- package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +750 -0
- package/esm2022/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +21 -0
- package/esm2022/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +108 -0
- package/esm2022/lib/controls/TagsInput/TagsInput.component.mjs +277 -0
- package/esm2022/lib/controls/TextArea/TextArea.component.mjs +196 -0
- package/esm2022/lib/controls/TextBox/TextBox.component.mjs +306 -0
- package/esm2022/lib/controls/Toggleslide/toggleslide.component.mjs +90 -0
- package/esm2022/lib/controls/bbsf-controls.module.mjs +350 -0
- package/esm2022/lib/controls/page-header-component/page-header-component.component.mjs +37 -0
- package/{esm2015/public-api.js → esm2022/public-api.mjs} +130 -130
- package/{fesm2015/bnsights-bbsf-controls.js → fesm2022/bnsights-bbsf-controls.mjs} +8876 -8851
- package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/Shared/Components/app-base-component.d.ts +58 -51
- package/lib/Shared/Components/ng-tag-input.d.ts +50 -47
- package/lib/Shared/Directives/template-name.directive.d.ts +9 -6
- package/lib/Shared/Enums/CalendarView.d.ts +6 -6
- package/lib/Shared/Enums/ControlLayout.d.ts +4 -4
- package/lib/Shared/Enums/Countries.d.ts +245 -245
- package/lib/Shared/Enums/Enums.d.ts +30 -30
- package/lib/Shared/Enums/FileType.d.ts +20 -20
- package/lib/Shared/Enums/FilterType.d.ts +9 -9
- package/lib/Shared/Enums/FontSize.d.ts +5 -5
- package/lib/Shared/Enums/ForceDirection.d.ts +4 -4
- package/lib/Shared/Enums/IconPosition.d.ts +4 -4
- package/lib/Shared/Enums/ImageType.d.ts +8 -8
- package/lib/Shared/Enums/InputType.d.ts +8 -8
- package/lib/Shared/Enums/Insert.d.ts +7 -7
- package/lib/Shared/Enums/LanguageMode.d.ts +9 -9
- package/lib/Shared/Enums/LanguageValidation.d.ts +4 -4
- package/lib/Shared/Enums/Misc.d.ts +5 -5
- package/lib/Shared/Enums/PagingActionMode.d.ts +4 -4
- package/lib/Shared/Enums/Para.d.ts +7 -7
- package/lib/Shared/Enums/PickerType.d.ts +5 -5
- package/lib/Shared/Enums/SelectMode.d.ts +4 -4
- package/lib/Shared/Enums/StartView.d.ts +5 -5
- package/lib/Shared/Enums/Style.d.ts +6 -6
- package/lib/Shared/Enums/StyleConfirmationMode.d.ts +5 -5
- package/lib/Shared/Enums/TagInputView.d.ts +5 -5
- package/lib/Shared/Enums/menu-list-enum.d.ts +4 -4
- package/lib/Shared/Models/Attribute.d.ts +4 -4
- package/lib/Shared/Models/AutocompleteDTO.d.ts +5 -5
- package/lib/Shared/Models/AutocompleteOptions.d.ts +40 -40
- package/lib/Shared/Models/CalendarEventDTO.d.ts +8 -8
- package/lib/Shared/Models/CalendarOptions.d.ts +23 -23
- package/lib/Shared/Models/CancelDTO.d.ts +5 -5
- package/lib/Shared/Models/CaptchaStyle.d.ts +7 -7
- package/lib/Shared/Models/CheckBoxOptions.d.ts +7 -7
- package/lib/Shared/Models/ConfirmationModalOptions.d.ts +21 -21
- package/lib/Shared/Models/ControlOptionsBase.d.ts +44 -44
- package/lib/Shared/Models/CustomValidation.d.ts +10 -10
- package/lib/Shared/Models/DropdownListItem.d.ts +4 -4
- package/lib/Shared/Models/DropdownOptions.d.ts +33 -33
- package/lib/Shared/Models/EditPersonalImage.d.ts +5 -5
- package/lib/Shared/Models/EnglishArabicDTO.d.ts +4 -4
- package/lib/Shared/Models/FileDTO.d.ts +19 -19
- package/lib/Shared/Models/FileUploadModel.d.ts +4 -4
- package/lib/Shared/Models/FileUploadOptions.d.ts +19 -19
- package/lib/Shared/Models/FilterItem.d.ts +13 -13
- package/lib/Shared/Models/FormOptions.d.ts +16 -16
- package/lib/Shared/Models/HtmlEditorOptions.d.ts +31 -31
- package/lib/Shared/Models/ImageUploadOptions.d.ts +23 -23
- package/lib/Shared/Models/MapAutoCompleteOptions.d.ts +6 -6
- package/lib/Shared/Models/MapAutocompleteDTO.d.ts +7 -7
- package/lib/Shared/Models/MultiLingualHtmlEditorOptions.d.ts +22 -22
- package/lib/Shared/Models/MultiLingualTextAreaOptions.d.ts +12 -12
- package/lib/Shared/Models/MultilingualControlOptionsBase.d.ts +77 -77
- package/lib/Shared/Models/MultilingualTextBoxOptions.d.ts +12 -12
- package/lib/Shared/Models/MultipleFileUploadModel.d.ts +7 -7
- package/lib/Shared/Models/PagingDTO.d.ts +11 -11
- package/lib/Shared/Models/PagingOptions.d.ts +56 -56
- package/lib/Shared/Models/PagingPayload.d.ts +5 -5
- package/lib/Shared/Models/PhoneOptions.d.ts +21 -21
- package/lib/Shared/Models/ProfileImageUploadOptions.d.ts +28 -28
- package/lib/Shared/Models/ProfilePictureDTO.d.ts +13 -13
- package/lib/Shared/Models/RadioButtonItem.d.ts +4 -4
- package/lib/Shared/Models/RadioButtonOptions.d.ts +8 -8
- package/lib/Shared/Models/RangeNumber.d.ts +4 -4
- package/lib/Shared/Models/Recaptcha.d.ts +6 -6
- package/lib/Shared/Models/RecaptchaOptions.d.ts +18 -18
- package/lib/Shared/Models/RepeaterField.d.ts +7 -7
- package/lib/Shared/Models/RepeaterOptions.d.ts +19 -19
- package/lib/Shared/Models/SaveDTO.d.ts +5 -5
- package/lib/Shared/Models/TagsInputDTO.d.ts +6 -6
- package/lib/Shared/Models/TagsInputOptions.d.ts +57 -57
- package/lib/Shared/Models/TextAreaOptions.d.ts +23 -23
- package/lib/Shared/Models/TextBoxOptions.d.ts +37 -37
- package/lib/Shared/Models/ToggleslideOptions.d.ts +9 -9
- package/lib/Shared/Models/UploadPersonalImage.d.ts +5 -5
- package/lib/Shared/Models/bread-crumb.d.ts +6 -6
- package/lib/Shared/Models/control-filter-Item.d.ts +6 -6
- package/lib/Shared/Models/datePickerOptions.d.ts +29 -29
- package/lib/Shared/Models/filter-options.d.ts +7 -7
- package/lib/Shared/Models/page-header-options.d.ts +71 -71
- package/lib/Shared/Pipes/bbsf-date-time.pipe.d.ts +10 -7
- package/lib/Shared/Pipes/bbsf-date.pipe.d.ts +10 -7
- package/lib/Shared/config/environment.d.ts +1 -1
- package/lib/Shared/default_intl.d.ts +21 -18
- package/lib/Shared/services/ControlUtility.d.ts +32 -29
- package/lib/Shared/services/GlobalSettings.service.d.ts +17 -14
- package/lib/Shared/services/OnPagingFiltersChange.service.d.ts +10 -7
- package/lib/Shared/services/render-component-service.service.d.ts +10 -7
- package/lib/Shared/services/validationErrorMassage.service.d.ts +14 -13
- package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +59 -56
- package/lib/controls/Calendar/Calendar.component.d.ts +42 -39
- package/lib/controls/CheckBox/CheckBox.component.d.ts +37 -34
- package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +29 -26
- package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +61 -58
- package/lib/controls/DropdownList/DropdownList.component.d.ts +55 -50
- package/lib/controls/FileUplaod/FileUplaod.component.d.ts +58 -55
- package/lib/controls/Form/Form.component.d.ts +28 -25
- package/lib/controls/HtmlEditor/HtmlEditor.component.d.ts +49 -46
- package/lib/controls/ImageUpload/ImageUpload.component.d.ts +70 -67
- package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +49 -51
- package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +65 -62
- package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +74 -71
- package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +73 -70
- package/lib/controls/Paging/JwPagination.component.d.ts +27 -24
- package/lib/controls/Paging/Paging.component.d.ts +57 -54
- package/lib/controls/Phone/Phone.component.d.ts +43 -40
- package/lib/controls/ProfileImageUploader/ProfileImageUploader.component.d.ts +69 -66
- package/lib/controls/RadioButton/RadioButton.component.d.ts +37 -34
- package/lib/controls/Recaptcha/Recaptcha.component.d.ts +41 -38
- package/lib/controls/Repeater/repeater/repeater.component.d.ts +29 -26
- package/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.d.ts +23 -20
- package/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.d.ts +11 -8
- package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +19 -16
- package/lib/controls/TagsInput/TagsInput.component.d.ts +58 -55
- package/lib/controls/TextArea/TextArea.component.d.ts +51 -48
- package/lib/controls/TextBox/TextBox.component.d.ts +66 -63
- package/lib/controls/Toggleslide/toggleslide.component.d.ts +33 -30
- package/lib/controls/bbsf-controls.module.d.ts +68 -10
- package/lib/controls/page-header-component/page-header-component.component.d.ts +20 -17
- package/package.json +61 -78
- package/public-api.d.ts +117 -117
- package/src/lib/assets/Style.scss +4 -4
- package/bnsights-bbsf-controls-1.0.107.tgz +0 -0
- package/bnsights-bbsf-controls.d.ts +0 -5
- package/bnsights-bbsf-controls.metadata.json +0 -1
- package/bundles/bnsights-bbsf-controls.umd.js +0 -9636
- package/bundles/bnsights-bbsf-controls.umd.js.map +0 -1
- package/esm2015/bnsights-bbsf-controls.js +0 -6
- package/esm2015/lib/Shared/Components/app-base-component.js +0 -202
- package/esm2015/lib/Shared/Components/ng-tag-input.js +0 -323
- package/esm2015/lib/Shared/Directives/template-name.directive.js +0 -18
- package/esm2015/lib/Shared/Pipes/bbsf-date-time.pipe.js +0 -20
- package/esm2015/lib/Shared/Pipes/bbsf-date.pipe.js +0 -20
- package/esm2015/lib/Shared/default_intl.js +0 -29
- package/esm2015/lib/Shared/services/ControlUtility.js +0 -164
- package/esm2015/lib/Shared/services/GlobalSettings.service.js +0 -28
- package/esm2015/lib/Shared/services/OnPagingFiltersChange.service.js +0 -22
- package/esm2015/lib/Shared/services/render-component-service.service.js +0 -30
- package/esm2015/lib/Shared/services/validationErrorMassage.service.js +0 -172
- package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +0 -266
- package/esm2015/lib/controls/Calendar/Calendar.component.js +0 -177
- package/esm2015/lib/controls/CheckBox/CheckBox.component.js +0 -118
- package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +0 -139
- package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +0 -227
- package/esm2015/lib/controls/DropdownList/DropdownList.component.js +0 -192
- package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +0 -447
- package/esm2015/lib/controls/Form/Form.component.js +0 -106
- package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +0 -347
- package/esm2015/lib/controls/MapAutoComplete/MapAutoComplete.component.js +0 -325
- package/esm2015/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.js +0 -429
- package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +0 -434
- package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +0 -433
- package/esm2015/lib/controls/Paging/JwPagination.component.js +0 -129
- package/esm2015/lib/controls/Paging/Paging.component.js +0 -312
- package/esm2015/lib/controls/Phone/Phone.component.js +0 -129
- package/esm2015/lib/controls/ProfileImageUploader/ProfileImageUploader.component.js +0 -371
- package/esm2015/lib/controls/RadioButton/RadioButton.component.js +0 -111
- package/esm2015/lib/controls/Recaptcha/Recaptcha.component.js +0 -135
- package/esm2015/lib/controls/Repeater/repeater/repeater.component.js +0 -117
- package/esm2015/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.js +0 -748
- package/esm2015/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.js +0 -19
- package/esm2015/lib/controls/Repeater/repeater-table/repeater-table.component.js +0 -108
- package/esm2015/lib/controls/TagsInput/TagsInput.component.js +0 -278
- package/esm2015/lib/controls/TextArea/TextArea.component.js +0 -197
- package/esm2015/lib/controls/TextBox/TextBox.component.js +0 -309
- package/esm2015/lib/controls/Toggleslide/toggleslide.component.js +0 -90
- package/esm2015/lib/controls/bbsf-controls.module.js +0 -240
- package/esm2015/lib/controls/page-header-component/page-header-component.component.js +0 -32
- package/fesm2015/bnsights-bbsf-controls.js.map +0 -1
- package/src/lib/assets/.gitkeep +0 -0
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Optional, NgZone, ViewChild, EventEmitter, Output } from '@angular/core';
|
|
2
|
-
import { FormControl, Validators, ControlContainer, FormGroupDirective } from '@angular/forms';
|
|
3
|
-
import { ControlUtility } from '../../Shared/services/ControlUtility';
|
|
4
|
-
import { MapAutocompleteDTO } from '../../Shared/Models/MapAutocompleteDTO';
|
|
5
|
-
import { MapsAPILoader, LazyMapsAPILoader } from '@agm/core';
|
|
6
|
-
import { BBSFTranslateService, ControlValidationService, environment, UtilityService } from '@bnsights/bbsf-utilities';
|
|
7
|
-
import { GlobalSettings } from '../../Shared/services/GlobalSettings.service';
|
|
8
|
-
export class MapAutoCompleteComponent {
|
|
9
|
-
constructor(mapsAPILoader, ngZone, controlUtility, controlContainer, MapAutoCompleteControlHost, UtilityService, translate, controlValidationService, globalSettings) {
|
|
10
|
-
this.mapsAPILoader = mapsAPILoader;
|
|
11
|
-
this.ngZone = ngZone;
|
|
12
|
-
this.controlUtility = controlUtility;
|
|
13
|
-
this.controlContainer = controlContainer;
|
|
14
|
-
this.MapAutoCompleteControlHost = MapAutoCompleteControlHost;
|
|
15
|
-
this.UtilityService = UtilityService;
|
|
16
|
-
this.translate = translate;
|
|
17
|
-
this.controlValidationService = controlValidationService;
|
|
18
|
-
this.globalSettings = globalSettings;
|
|
19
|
-
this.OnChange = new EventEmitter();
|
|
20
|
-
this.MapAutoCompleteModel = new MapAutocompleteDTO();
|
|
21
|
-
this.CurrentLanguage = "";
|
|
22
|
-
this.onAutocompleteSelected = new EventEmitter();
|
|
23
|
-
this.onGermanAddressMapped = new EventEmitter();
|
|
24
|
-
this.onLocationSelected = new EventEmitter();
|
|
25
|
-
this.markAllAsTouched = false;
|
|
26
|
-
this.validationRules = [];
|
|
27
|
-
this.validationRulesasync = [];
|
|
28
|
-
this.resetError = () => {
|
|
29
|
-
this.controlValidationService.RemoveGlobalError();
|
|
30
|
-
};
|
|
31
|
-
//External Method
|
|
32
|
-
this.RemoveRequiredValidation = () => {
|
|
33
|
-
this.controlUtility.RemoveRequiredValidation(this.MapAutoCompleteFormControl, this.validationRules, this.options);
|
|
34
|
-
};
|
|
35
|
-
//External Method
|
|
36
|
-
this.AddRequiredValidation = () => {
|
|
37
|
-
this.controlUtility.AddRequiredValidation(this.MapAutoCompleteFormControl, this.validationRules, this.options);
|
|
38
|
-
};
|
|
39
|
-
//External Method
|
|
40
|
-
this.RemoveCustomValidation = (CustomValidation) => {
|
|
41
|
-
this.controlUtility.RemoveCustomValidation(this.MapAutoCompleteFormControl, this.validationRules, CustomValidation);
|
|
42
|
-
};
|
|
43
|
-
//External Method
|
|
44
|
-
this.AddCustomValidation = (CustomValidation) => {
|
|
45
|
-
this.controlUtility.AddCustomValidation(this.MapAutoCompleteFormControl, this.validationRules, CustomValidation);
|
|
46
|
-
};
|
|
47
|
-
//External Method
|
|
48
|
-
this.IsValid = () => {
|
|
49
|
-
this.controlUtility.IsValid(this.MapAutoCompleteFormControl);
|
|
50
|
-
};
|
|
51
|
-
MapAutoCompleteComponent.controlContainerstatic = this.controlContainer;
|
|
52
|
-
this.CurrentLanguage = translate.currentLang != undefined ? translate.currentLang : translate.defaultLang;
|
|
53
|
-
}
|
|
54
|
-
ngOnInit() {
|
|
55
|
-
this.controlValidationService.isCreatedBefor = false;
|
|
56
|
-
this.MapAutoCompleteModel = new MapAutocompleteDTO();
|
|
57
|
-
this.translate.onLangChange.subscribe((event) => {
|
|
58
|
-
this.CurrentLanguage = event.lang;
|
|
59
|
-
;
|
|
60
|
-
if (this.CurrentLanguage == 'ar')
|
|
61
|
-
this.mapsAPILoader["_config"]["localeId"] = "ar-EG";
|
|
62
|
-
if (this.CurrentLanguage == 'en')
|
|
63
|
-
this.mapsAPILoader["_config"]["localeId"] = "en-US";
|
|
64
|
-
this.mapsAPILoader["_scriptLoadingPromise"] = null;
|
|
65
|
-
this.mapsAPILoader["_config"]["apiKey"] = `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`;
|
|
66
|
-
var ScriptTag = document.getElementById(this.mapsAPILoader["_SCRIPT_ID"]);
|
|
67
|
-
if (ScriptTag)
|
|
68
|
-
ScriptTag.remove();
|
|
69
|
-
var elements = document.getElementsByClassName("pac-container");
|
|
70
|
-
while (elements.length > 0)
|
|
71
|
-
elements[0].remove();
|
|
72
|
-
let window = this.mapsAPILoader["_windowRef"].getNativeWindow();
|
|
73
|
-
window.google = null;
|
|
74
|
-
this.LazyMapsAPILoader = new LazyMapsAPILoader({
|
|
75
|
-
// &language=${UtilityService.CurrentLanguage}
|
|
76
|
-
apiKey: `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`,
|
|
77
|
-
libraries: ['places'],
|
|
78
|
-
}, this.mapsAPILoader["_windowRef"], this.mapsAPILoader["_documentRef"], this.mapsAPILoader["_config"]["localeId"]);
|
|
79
|
-
this.LazyMapsAPILoader.load().then(() => {
|
|
80
|
-
let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {
|
|
81
|
-
types: ["address"]
|
|
82
|
-
});
|
|
83
|
-
autocomplete.addListener('place_changed', ( /**
|
|
84
|
-
* @return {?}
|
|
85
|
-
*/() => {
|
|
86
|
-
this.ngZone.run(( /**
|
|
87
|
-
* @return {?}
|
|
88
|
-
*/() => {
|
|
89
|
-
// get the place result
|
|
90
|
-
/** @type {?} */
|
|
91
|
-
const place = autocomplete.getPlace();
|
|
92
|
-
/** @type {?} */
|
|
93
|
-
const germanAddress = {
|
|
94
|
-
gmID: place.id,
|
|
95
|
-
icon: place.icon,
|
|
96
|
-
url: place.url,
|
|
97
|
-
placeID: place.place_id,
|
|
98
|
-
displayAddress: place.formatted_address,
|
|
99
|
-
name: place.name,
|
|
100
|
-
vicinity: place.vicinity,
|
|
101
|
-
locality: {},
|
|
102
|
-
state: {},
|
|
103
|
-
country: {},
|
|
104
|
-
geoLocation: { latitude: -1, longitude: -1 },
|
|
105
|
-
};
|
|
106
|
-
if (place.geometry && place.geometry.location) {
|
|
107
|
-
germanAddress.geoLocation.latitude = place.geometry.location.lat();
|
|
108
|
-
germanAddress.geoLocation.longitude = place.geometry.location.lng();
|
|
109
|
-
}
|
|
110
|
-
place.address_components.forEach(( /**
|
|
111
|
-
* @param {?} value
|
|
112
|
-
* @return {?}
|
|
113
|
-
*//**
|
|
114
|
-
* @param {?} value
|
|
115
|
-
* @return {?}
|
|
116
|
-
*/ value => {
|
|
117
|
-
if (value.types.indexOf('street_number') > -1) {
|
|
118
|
-
germanAddress["streetNumber"] = value.short_name;
|
|
119
|
-
}
|
|
120
|
-
if (value.types.indexOf('route') > -1) {
|
|
121
|
-
germanAddress["streetName"] = value.long_name;
|
|
122
|
-
}
|
|
123
|
-
if (value.types.indexOf('postal_code') > -1) {
|
|
124
|
-
germanAddress["postalCode"] = Number(value.short_name);
|
|
125
|
-
}
|
|
126
|
-
if (value.types.indexOf('sublocality') > -1) {
|
|
127
|
-
germanAddress["sublocality"] = value.long_name;
|
|
128
|
-
}
|
|
129
|
-
if (value.types.indexOf('locality') > -1) {
|
|
130
|
-
germanAddress.locality["long"] = value.long_name;
|
|
131
|
-
germanAddress.locality["short"] = value.short_name;
|
|
132
|
-
}
|
|
133
|
-
if (value.types.indexOf('administrative_area_level_1') > -1) {
|
|
134
|
-
germanAddress.state["long"] = value.long_name;
|
|
135
|
-
germanAddress.state["short"] = value.short_name;
|
|
136
|
-
}
|
|
137
|
-
if (value.types.indexOf('country') > -1) {
|
|
138
|
-
germanAddress.country["long"] = value.long_name;
|
|
139
|
-
germanAddress.country["short"] = value.short_name;
|
|
140
|
-
}
|
|
141
|
-
if (value.types.indexOf('administrative_area_level_3') > -1) {
|
|
142
|
-
germanAddress.locality["short"] = value.short_name;
|
|
143
|
-
}
|
|
144
|
-
}));
|
|
145
|
-
this.onGermanAddressMapped.emit(germanAddress);
|
|
146
|
-
this.GermanAddressMapped(germanAddress);
|
|
147
|
-
if (!place.place_id || place.geometry === undefined || place.geometry === null) {
|
|
148
|
-
// place result is not valid
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
// show dialog to select a address from the input
|
|
153
|
-
// emit failed event
|
|
154
|
-
}
|
|
155
|
-
// this.address = place.formatted_address;
|
|
156
|
-
this.onAutocompleteSelected.emit(place);
|
|
157
|
-
this.AutocompleteSelected(place);
|
|
158
|
-
this.onLocationSelected.emit({
|
|
159
|
-
latitude: place.geometry.location.lat(),
|
|
160
|
-
longitude: place.geometry.location.lng()
|
|
161
|
-
});
|
|
162
|
-
}));
|
|
163
|
-
}));
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
if (this.CurrentLanguage == 'ar')
|
|
167
|
-
this.mapsAPILoader["_config"]["localeId"] = "ar-EG";
|
|
168
|
-
if (this.CurrentLanguage == 'en')
|
|
169
|
-
this.mapsAPILoader["_config"]["localeId"] = "en-US";
|
|
170
|
-
this.mapsAPILoader["_scriptLoadingPromise"] = null;
|
|
171
|
-
this.mapsAPILoader["_config"]["apiKey"] = `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`;
|
|
172
|
-
var leftSection = document.getElementById(this.mapsAPILoader["_SCRIPT_ID"]);
|
|
173
|
-
if (leftSection)
|
|
174
|
-
leftSection.remove();
|
|
175
|
-
this.LazyMapsAPILoader = new LazyMapsAPILoader({
|
|
176
|
-
apiKey: `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`,
|
|
177
|
-
libraries: ['places'],
|
|
178
|
-
}, this.mapsAPILoader["_windowRef"], this.mapsAPILoader["_documentRef"], this.mapsAPILoader["_config"]["localeId"]);
|
|
179
|
-
this.LazyMapsAPILoader.load();
|
|
180
|
-
this.mapsAPILoader.load().then(() => {
|
|
181
|
-
let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {
|
|
182
|
-
types: ["address"]
|
|
183
|
-
});
|
|
184
|
-
});
|
|
185
|
-
this.group.addControl(this.options.Name, new FormControl(''));
|
|
186
|
-
this.MapAutoCompleteFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
|
|
187
|
-
if (!this.options.ViewType)
|
|
188
|
-
this.options.ViewType = this.globalSettings.ViewType;
|
|
189
|
-
if (this.options.IsRequired) {
|
|
190
|
-
this.validationRules.push(Validators.required);
|
|
191
|
-
}
|
|
192
|
-
if (this.options.LabelKey != null && this.options.LabelKey != "")
|
|
193
|
-
this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
|
|
194
|
-
this.MapAutoCompleteFormControl.setValidators(this.validationRules);
|
|
195
|
-
this.MapAutoCompleteFormControl.setAsyncValidators(this.validationRulesasync);
|
|
196
|
-
if (this.options.IsDisabled) {
|
|
197
|
-
this.MapAutoCompleteFormControl.disable();
|
|
198
|
-
}
|
|
199
|
-
if (this.options.Value != null) {
|
|
200
|
-
let germanAddress = {
|
|
201
|
-
url: this.options.Value.GoogleMapsURL,
|
|
202
|
-
placeID: this.options.Value.PlaceID,
|
|
203
|
-
displayAddress: this.options.Value.Text,
|
|
204
|
-
name: this.options.Value.Text,
|
|
205
|
-
locality: {},
|
|
206
|
-
state: {},
|
|
207
|
-
country: {},
|
|
208
|
-
geoLocation: { latitude: -1, longitude: -1 },
|
|
209
|
-
};
|
|
210
|
-
germanAddress.geoLocation.latitude = this.options.Value.Latitude;
|
|
211
|
-
germanAddress.geoLocation.longitude = this.options.Value.Longitude;
|
|
212
|
-
this.onGermanAddressMapped.emit(germanAddress);
|
|
213
|
-
this.GermanAddressMapped(germanAddress);
|
|
214
|
-
this.place = {
|
|
215
|
-
url: this.options.Value.GoogleMapsURL,
|
|
216
|
-
place_id: this.options.Value.PlaceID,
|
|
217
|
-
formatted_address: this.options.Value.Text,
|
|
218
|
-
name: this.options.Value.Text,
|
|
219
|
-
};
|
|
220
|
-
this.onAutocompleteSelected.emit(this.place);
|
|
221
|
-
this.AutocompleteSelected(this.place);
|
|
222
|
-
this.onLocationSelected.emit({
|
|
223
|
-
latitude: this.options.Value.Latitude,
|
|
224
|
-
longitude: this.options.Value.Longitude
|
|
225
|
-
});
|
|
226
|
-
this.group.controls[this.options.Name].setValue(this.MapAutoCompleteModel);
|
|
227
|
-
this.MapAutoCompleteFormControl.setValue(this.options.Value);
|
|
228
|
-
}
|
|
229
|
-
if (this.options.CustomValidation.length > 0) {
|
|
230
|
-
let Validations = this.options.CustomValidation;
|
|
231
|
-
for (let index = 0; index < Validations.length; index++) {
|
|
232
|
-
const Validation = Validations[index];
|
|
233
|
-
this.validationRules.push(Validation.functionBody);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
this.MapAutoCompleteControlHost.ngSubmit.subscribe((value) => {
|
|
237
|
-
this.group.markAllAsTouched();
|
|
238
|
-
this.markAllAsTouched = true;
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
ngAfterViewInit() {
|
|
242
|
-
if (this.options.AttributeList != null) {
|
|
243
|
-
var element = document.getElementById(this.options.Name);
|
|
244
|
-
for (let index = 0; index < this.options.AttributeList.length; index++) {
|
|
245
|
-
element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
var elementHTML = document.getElementById(this.options.Name);
|
|
249
|
-
elementHTML.value = this.MapAutoCompleteModel.Text;
|
|
250
|
-
}
|
|
251
|
-
showGlobalError() {
|
|
252
|
-
this.controlUtility.showGlobalError();
|
|
253
|
-
}
|
|
254
|
-
getErrorValidation(ErrorList) {
|
|
255
|
-
if (this.markAllAsTouched && this.group.invalid) {
|
|
256
|
-
this.showGlobalError();
|
|
257
|
-
this.markAllAsTouched = false;
|
|
258
|
-
}
|
|
259
|
-
return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
|
|
260
|
-
}
|
|
261
|
-
AutocompleteSelected(result) {
|
|
262
|
-
this.MapAutoCompleteModel == new MapAutocompleteDTO();
|
|
263
|
-
this.MapAutoCompleteModel.Text = result.formatted_address;
|
|
264
|
-
this.MapAutoCompleteModel.PlaceID = result.place_id;
|
|
265
|
-
this.MapAutoCompleteModel.GoogleMapsURL = result.url;
|
|
266
|
-
}
|
|
267
|
-
LocationSelected(location) {
|
|
268
|
-
this.MapAutoCompleteModel.Latitude = location.latitude;
|
|
269
|
-
this.MapAutoCompleteModel.Longitude = location.longitude;
|
|
270
|
-
this.MapAutoCompleteFormControl.setValue(null);
|
|
271
|
-
this.MapAutoCompleteFormControl.setValue(this.MapAutoCompleteModel);
|
|
272
|
-
let originalValue = this.MapAutoCompleteFormControl.value;
|
|
273
|
-
if (this.options.PatchFunction && this.options.PatchPath && this.MapAutoCompleteFormControl.valid) {
|
|
274
|
-
this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
|
|
275
|
-
}
|
|
276
|
-
//Use this line to enable two way binding.
|
|
277
|
-
this.options.Value = this.MapAutoCompleteModel;
|
|
278
|
-
}
|
|
279
|
-
GermanAddressMapped(result) {
|
|
280
|
-
if (result.type) {
|
|
281
|
-
if (result.target.value == "") {
|
|
282
|
-
this.MapAutoCompleteFormControl.setValue(result);
|
|
283
|
-
this.group.controls[this.options.Name].setValue(result);
|
|
284
|
-
this.options.Value = result;
|
|
285
|
-
}
|
|
286
|
-
return;
|
|
287
|
-
}
|
|
288
|
-
this.MapAutoCompleteModel == new MapAutocompleteDTO();
|
|
289
|
-
this.MapAutoCompleteModel.Text = result.displayAddress;
|
|
290
|
-
this.MapAutoCompleteModel.PlaceID = result.placeID;
|
|
291
|
-
this.MapAutoCompleteModel.GoogleMapsURL = result.url;
|
|
292
|
-
this.MapAutoCompleteModel.Latitude = result.geoLocation.latitude;
|
|
293
|
-
this.MapAutoCompleteModel.Longitude = result.geoLocation.longitude;
|
|
294
|
-
this.MapAutoCompleteFormControl.setValue(this.MapAutoCompleteModel);
|
|
295
|
-
this.group.controls[this.options.Name].setValue(this.MapAutoCompleteModel);
|
|
296
|
-
this.OnChange.emit(this.MapAutoCompleteFormControl.value);
|
|
297
|
-
//Use this line to enable two way binding.
|
|
298
|
-
this.options.Value = this.MapAutoCompleteModel;
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
MapAutoCompleteComponent.controlContainerstatic = null;
|
|
302
|
-
MapAutoCompleteComponent.decorators = [
|
|
303
|
-
{ type: Component, args: [{
|
|
304
|
-
selector: 'BBSF-MapAutoComplete',
|
|
305
|
-
template: "\r\n<div class=\"form-group bbsf-control bbsf-maps\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--input-->\r\n <div class=\"bbsf-input-container\" *ngIf=\"!options.IsReadonly\">\r\n <input class=\"form-control{{options.ExtraClasses}}\"\r\n [value]=\"MapAutoCompleteModel.Text\"\r\n [address]=\"MapAutoCompleteModel.Text\"\r\n value=\"{{MapAutoCompleteModel.Text}}\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\"\r\n [class.is-invalid]=\"MapAutoCompleteFormControl.invalid && MapAutoCompleteFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" (keyup)=\"GermanAddressMapped($event)\"\r\n matGoogleMapsAutocomplete #search (onAutocompleteSelected)=\"AutocompleteSelected($event)\"\r\n (onLocationSelected)=\"LocationSelected($event)\" (onGermanAddressMapped)=\"GermanAddressMapped($event)\" />\r\n\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\">{{MapAutoCompleteModel.Text}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\"\r\n *ngIf=\"(MapAutoCompleteFormControl.invalid && MapAutoCompleteFormControl.touched)\">\r\n {{getErrorValidation(MapAutoCompleteFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty)\">{{resetError()}} </div>\r\n</div>\r\n"
|
|
306
|
-
},] }
|
|
307
|
-
];
|
|
308
|
-
MapAutoCompleteComponent.ctorParameters = () => [
|
|
309
|
-
{ type: MapsAPILoader },
|
|
310
|
-
{ type: NgZone },
|
|
311
|
-
{ type: ControlUtility },
|
|
312
|
-
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
313
|
-
{ type: FormGroupDirective },
|
|
314
|
-
{ type: UtilityService },
|
|
315
|
-
{ type: BBSFTranslateService },
|
|
316
|
-
{ type: ControlValidationService },
|
|
317
|
-
{ type: GlobalSettings }
|
|
318
|
-
];
|
|
319
|
-
MapAutoCompleteComponent.propDecorators = {
|
|
320
|
-
group: [{ type: Input }],
|
|
321
|
-
options: [{ type: Input }],
|
|
322
|
-
OnChange: [{ type: Output }],
|
|
323
|
-
searchElementRef: [{ type: ViewChild, args: ["search", { static: false },] }]
|
|
324
|
-
};
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFwQXV0b0NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9NYXBBdXRvQ29tcGxldGUvTWFwQXV0b0NvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFjLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUE4QixnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBUTlFLE1BQU0sT0FBTyx3QkFBd0I7SUFJbkMsWUFBb0IsYUFBNEIsRUFDdEMsTUFBYyxFQUFVLGNBQThCLEVBQXNCLGdCQUFrQyxFQUMvRywwQkFBOEMsRUFBVSxjQUE4QixFQUFVLFNBQStCLEVBQzlILHdCQUFrRCxFQUFVLGNBQThCO1FBSGhGLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3RDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBc0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUMvRywr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c0NvbnRlbnQiOlsiZGVjbGFyZSBjb25zdCBnb29nbGU6IGFueVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9wdGlvbmFsLCBOZ1pvbmUsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sLCBDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbnRyb2xVdGlsaXR5IH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL0NvbnRyb2xVdGlsaXR5JztcclxuaW1wb3J0IHsgTWFwQXV0b0NvbXBsZXRlT3B0aW9ucyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvTWFwQXV0b0NvbXBsZXRlT3B0aW9ucyc7XHJcbmltcG9ydCB7IE1hcEF1dG9jb21wbGV0ZURUTyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvTWFwQXV0b2NvbXBsZXRlRFRPJztcclxuaW1wb3J0IHsgTWF0R29vZ2xlTWFwc0F1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWV4dGVuc2lvbnMvZ29vZ2xlLW1hcHMtYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWFwc0FQSUxvYWRlciwgTGF6eU1hcHNBUElMb2FkZXIgfSBmcm9tICdAYWdtL2NvcmUnO1xyXG5pbXBvcnQgeyBCQlNGVHJhbnNsYXRlU2VydmljZSwgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBlbnZpcm9ubWVudCwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBHbG9iYWxTZXR0aW5ncyB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9HbG9iYWxTZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdCQlNGLU1hcEF1dG9Db21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL01hcEF1dG9Db21wbGV0ZS5jb21wb25lbnQuaHRtbCdcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBNYXBBdXRvQ29tcGxldGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgc3RhdGljIGNvbnRyb2xDb250YWluZXJzdGF0aWMgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWFwc0FQSUxvYWRlcjogTWFwc0FQSUxvYWRlcixcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUgY29udHJvbFV0aWxpdHk6IENvbnRyb2xVdGlsaXR5LCBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXHJcbiAgICBwdWJsaWMgTWFwQXV0b0NvbXBsZXRlQ29udHJvbEhvc3Q6IEZvcm1Hcm91cERpcmVjdGl2ZSwgcHJpdmF0ZSBVdGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlOiBCQlNGVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlOiBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UsIHByaXZhdGUgZ2xvYmFsU2V0dGluZ3M6IEdsb2JhbFNldHRpbmdzKSB7XHJcbiAgICBNYXBBdXRvQ29tcGxldGVDb21wb25lbnQuY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IHRoaXMuY29udHJvbENvbnRhaW5lcjtcclxuICAgIHRoaXMuQ3VycmVudExhbmd1YWdlID0gdHJhbnNsYXRlLmN1cnJlbnRMYW5nICE9IHVuZGVmaW5lZCA/IHRyYW5zbGF0ZS5jdXJyZW50TGFuZyA6IHRyYW5zbGF0ZS5kZWZhdWx0TGFuZ1xyXG5cclxuICB9XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBvcHRpb25zOiBNYXBBdXRvQ29tcGxldGVPcHRpb25zO1xyXG4gIEBPdXRwdXQoKSBPbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgTWFwQXV0b0NvbXBsZXRlRm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBNYXBBdXRvQ29tcGxldGVNb2RlbDogTWFwQXV0b2NvbXBsZXRlRFRPID0gbmV3IE1hcEF1dG9jb21wbGV0ZURUTygpO1xyXG4gIEN1cnJlbnRMYW5ndWFnZTogc3RyaW5nID0gXCJcIjtcclxuICBvbkF1dG9jb21wbGV0ZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIG9uR2VybWFuQWRkcmVzc01hcHBlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBvbkxvY2F0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZChcInNlYXJjaFwiLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwdWJsaWMgc2VhcmNoRWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuICBNYXRHb29nbGVNYXBzQXV0b2NvbXBsZXRlQ29tcG9uZW50OiBNYXRHb29nbGVNYXBzQXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgTGF6eU1hcHNBUElMb2FkZXI6IExhenlNYXBzQVBJTG9hZGVyXHJcbiAgbWFya0FsbEFzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHZhbGlkYXRpb25SdWxlcyA9IFtdO1xyXG4gIHZhbGlkYXRpb25SdWxlc2FzeW5jID0gW107XHJcbiAgcGxhY2U6IGFueTtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLmlzQ3JlYXRlZEJlZm9yID0gZmFsc2VcclxuXHJcbiAgICB0aGlzLk1hcEF1dG9Db21wbGV0ZU1vZGVsID0gbmV3IE1hcEF1dG9jb21wbGV0ZURUTygpO1xyXG4gICAgdGhpcy50cmFuc2xhdGUub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5DdXJyZW50TGFuZ3VhZ2UgPSBldmVudC5sYW5nO1xyXG4gICAgICA7XHJcbiAgICAgIGlmICh0aGlzLkN1cnJlbnRMYW5ndWFnZSA9PSAnYXInKVxyXG4gICAgICAgIHRoaXMubWFwc0FQSUxvYWRlcltcIl9jb25maWdcIl1bXCJsb2NhbGVJZFwiXSA9IFwiYXItRUdcIjtcclxuICAgICAgaWYgKHRoaXMuQ3VycmVudExhbmd1YWdlID09ICdlbicpXHJcbiAgICAgICAgdGhpcy5tYXBzQVBJTG9hZGVyW1wiX2NvbmZpZ1wiXVtcImxvY2FsZUlkXCJdID0gXCJlbi1VU1wiO1xyXG4gICAgICB0aGlzLm1hcHNBUElMb2FkZXJbXCJfc2NyaXB0TG9hZGluZ1Byb21pc2VcIl0gPSBudWxsXHJcbiAgICAgIHRoaXMubWFwc0FQSUxvYWRlcltcIl9jb25maWdcIl1bXCJhcGlLZXlcIl0gPSBgJHtlbnZpcm9ubWVudC5CQlNGX0dvb2dsZU1hcEtleX0mbGFuZ3VhZ2U9JHt0aGlzLkN1cnJlbnRMYW5ndWFnZX1gO1xyXG4gICAgICB2YXIgU2NyaXB0VGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5tYXBzQVBJTG9hZGVyW1wiX1NDUklQVF9JRFwiXSk7XHJcbiAgICAgIGlmIChTY3JpcHRUYWcpXHJcbiAgICAgICAgU2NyaXB0VGFnLnJlbW92ZSgpO1xyXG4gICAgICB2YXIgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwicGFjLWNvbnRhaW5lclwiKTtcclxuICAgICAgd2hpbGUgKGVsZW1lbnRzLmxlbmd0aCA+IDApXHJcbiAgICAgICAgZWxlbWVudHNbMF0ucmVtb3ZlKCk7XHJcblxyXG4gICAgICBsZXQgd2luZG93ID0gdGhpcy5tYXBzQVBJTG9hZGVyW1wiX3dpbmRvd1JlZlwiXS5nZXROYXRpdmVXaW5kb3coKTtcclxuICAgICAgd2luZG93Lmdvb2dsZSA9IG51bGxcclxuXHJcblxyXG5cclxuICAgICAgdGhpcy5MYXp5TWFwc0FQSUxvYWRlciA9IG5ldyBMYXp5TWFwc0FQSUxvYWRlcih7XHJcbiAgICAgICAgLy8gJmxhbmd1YWdlPSR7VXRpbGl0eVNlcnZpY2UuQ3VycmVudExhbmd1YWdlfVxyXG4gICAgICAgIGFwaUtleTogYCR7ZW52aXJvbm1lbnQuQkJTRl9Hb29nbGVNYXBLZXl9Jmxhbmd1YWdlPSR7dGhpcy5DdXJyZW50TGFuZ3VhZ2V9YCxcclxuICAgICAgICBsaWJyYXJpZXM6IFsncGxhY2VzJ10sXHJcbiAgICAgIH0sIHRoaXMubWFwc0FQSUxvYWRlcltcIl93aW5kb3dSZWZcIl0sIHRoaXMubWFwc0FQSUxvYWRlcltcIl9kb2N1bWVudFJlZlwiXSwgdGhpcy5tYXBzQVBJTG9hZGVyW1wiX2NvbmZpZ1wiXVtcImxvY2FsZUlkXCJdKTtcclxuICAgICAgdGhpcy5MYXp5TWFwc0FQSUxvYWRlci5sb2FkKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgbGV0IGF1dG9jb21wbGV0ZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKHRoaXMuc2VhcmNoRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB7XHJcbiAgICAgICAgICB0eXBlczogW1wiYWRkcmVzc1wiXVxyXG5cclxuICAgICAgICB9KTtcclxuICAgICAgICBhdXRvY29tcGxldGUuYWRkTGlzdGVuZXIoJ3BsYWNlX2NoYW5nZWQnLCAoLyoqXHJcbiAgICAgICAgICAgICAgICAqIEByZXR1cm4gez99XHJcbiAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgKCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgvKipcclxuICAgICAgICAgICAgICAgICAgICAqIEByZXR1cm4gez99XHJcbiAgICAgICAgICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIHBsYWNlIHJlc3VsdFxyXG4gICAgICAgICAgICAgICAgLyoqIEB0eXBlIHs/fSAqL1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGxhY2UgPSBhdXRvY29tcGxldGUuZ2V0UGxhY2UoKTtcclxuICAgICAgICAgICAgICAgIC8qKiBAdHlwZSB7P30gKi9cclxuICAgICAgICAgICAgICAgIGNvbnN0IGdlcm1hbkFkZHJlc3MgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGdtSUQ6IHBsYWNlLmlkLFxyXG4gICAgICAgICAgICAgICAgICBpY29uOiBwbGFjZS5pY29uLFxyXG4gICAgICAgICAgICAgICAgICB1cmw6IHBsYWNlLnVybCxcclxuICAgICAgICAgICAgICAgICAgcGxhY2VJRDogcGxhY2UucGxhY2VfaWQsXHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlBZGRyZXNzOiBwbGFjZS5mb3JtYXR0ZWRfYWRkcmVzcyxcclxuICAgICAgICAgICAgICAgICAgbmFtZTogcGxhY2UubmFtZSxcclxuICAgICAgICAgICAgICAgICAgdmljaW5pdHk6IHBsYWNlLnZpY2luaXR5LFxyXG4gICAgICAgICAgICAgICAgICBsb2NhbGl0eToge30sXHJcbiAgICAgICAgICAgICAgICAgIHN0YXRlOiB7fSxcclxuICAgICAgICAgICAgICAgICAgY291bnRyeToge30sXHJcbiAgICAgICAgICAgICAgICAgIGdlb0xvY2F0aW9uOiB7IGxhdGl0dWRlOiAtMSwgbG9uZ2l0dWRlOiAtMSB9LFxyXG4gICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocGxhY2UuZ2VvbWV0cnkgJiYgcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgZ2VybWFuQWRkcmVzcy5nZW9Mb2NhdGlvbi5sYXRpdHVkZSA9IHBsYWNlLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpO1xyXG4gICAgICAgICAgICAgICAgICBnZXJtYW5BZGRyZXNzLmdlb0xvY2F0aW9uLmxvbmdpdHVkZSA9IHBsYWNlLmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcGxhY2UuYWRkcmVzc19jb21wb25lbnRzLmZvckVhY2goKC8qKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqIEBwYXJhbSB7P30gdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgKiBAcmV0dXJuIHs/fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGVzLmluZGV4T2YoJ3N0cmVldF9udW1iZXInKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBnZXJtYW5BZGRyZXNzW1wic3RyZWV0TnVtYmVyXCJdID0gdmFsdWUuc2hvcnRfbmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGVzLmluZGV4T2YoJ3JvdXRlJykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgZ2VybWFuQWRkcmVzc1tcInN0cmVldE5hbWVcIl0gPSB2YWx1ZS5sb25nX25hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS50eXBlcy5pbmRleE9mKCdwb3N0YWxfY29kZScpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGdlcm1hbkFkZHJlc3NbXCJwb3N0YWxDb2RlXCJdID0gTnVtYmVyKHZhbHVlLnNob3J0X25hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUudHlwZXMuaW5kZXhPZignc3VibG9jYWxpdHknKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBnZXJtYW5BZGRyZXNzW1wic3VibG9jYWxpdHlcIl0gPSB2YWx1ZS5sb25nX25hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS50eXBlcy5pbmRleE9mKCdsb2NhbGl0eScpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGdlcm1hbkFkZHJlc3MubG9jYWxpdHlbXCJsb25nXCJdID0gdmFsdWUubG9uZ19uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgZ2VybWFuQWRkcmVzcy5sb2NhbGl0eVtcInNob3J0XCJdID0gdmFsdWUuc2hvcnRfbmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGVzLmluZGV4T2YoJ2FkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMScpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGdlcm1hbkFkZHJlc3Muc3RhdGVbXCJsb25nXCJdID0gdmFsdWUubG9uZ19uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgZ2VybWFuQWRkcmVzcy5zdGF0ZVtcInNob3J0XCJdID0gdmFsdWUuc2hvcnRfbmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGVzLmluZGV4T2YoJ2NvdW50cnknKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBnZXJtYW5BZGRyZXNzLmNvdW50cnlbXCJsb25nXCJdID0gdmFsdWUubG9uZ19uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgZ2VybWFuQWRkcmVzcy5jb3VudHJ5W1wic2hvcnRcIl0gPSB2YWx1ZS5zaG9ydF9uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUudHlwZXMuaW5kZXhPZignYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8zJykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgZ2VybWFuQWRkcmVzcy5sb2NhbGl0eVtcInNob3J0XCJdID0gdmFsdWUuc2hvcnRfbmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uR2VybWFuQWRkcmVzc01hcHBlZC5lbWl0KGdlcm1hbkFkZHJlc3MpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5HZXJtYW5BZGRyZXNzTWFwcGVkKGdlcm1hbkFkZHJlc3MpXHJcbiAgICAgICAgICAgICAgICBpZiAoIXBsYWNlLnBsYWNlX2lkIHx8IHBsYWNlLmdlb21ldHJ5ID09PSB1bmRlZmluZWQgfHwgcGxhY2UuZ2VvbWV0cnkgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgLy8gcGxhY2UgcmVzdWx0IGlzIG5vdCB2YWxpZFxyXG4gICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgLy8gc2hvdyBkaWFsb2cgdG8gc2VsZWN0IGEgYWRkcmVzcyBmcm9tIHRoZSBpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAvLyBlbWl0IGZhaWxlZCBldmVudFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gICB0aGlzLmFkZHJlc3MgPSBwbGFjZS5mb3JtYXR0ZWRfYWRkcmVzcztcclxuICAgICAgICAgICAgICAgIHRoaXMub25BdXRvY29tcGxldGVTZWxlY3RlZC5lbWl0KHBsYWNlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlU2VsZWN0ZWQocGxhY2UpXHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkxvY2F0aW9uU2VsZWN0ZWQuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICAgIGxhdGl0dWRlOiBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbi5sYXQoKSxcclxuICAgICAgICAgICAgICAgICAgbG9uZ2l0dWRlOiBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5DdXJyZW50TGFuZ3VhZ2UgPT0gJ2FyJylcclxuICAgICAgdGhpcy5tYXBzQVBJTG9hZGVyW1wiX2NvbmZpZ1wiXVtcImxvY2FsZUlkXCJdID0gXCJhci1FR1wiO1xyXG4gICAgaWYgKHRoaXMuQ3VycmVudExhbmd1YWdlID09ICdlbicpXHJcbiAgICAgIHRoaXMubWFwc0FQSUxvYWRlcltcIl9jb25maWdcIl1bXCJsb2NhbGVJZFwiXSA9IFwiZW4tVVNcIjtcclxuICAgIHRoaXMubWFwc0FQSUxvYWRlcltcIl9zY3JpcHRMb2FkaW5nUHJvbWlzZVwiXSA9IG51bGxcclxuICAgIHRoaXMubWFwc0FQSUxvYWRlcltcIl9jb25maWdcIl1bXCJhcGlLZXlcIl0gPSBgJHtlbnZpcm9ubWVudC5CQlNGX0dvb2dsZU1hcEtleX0mbGFuZ3VhZ2U9JHt0aGlzLkN1cnJlbnRMYW5ndWFnZX1gO1xyXG4gICAgdmFyIGxlZnRTZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5tYXBzQVBJTG9hZGVyW1wiX1NDUklQVF9JRFwiXSk7XHJcbiAgICBpZiAobGVmdFNlY3Rpb24pXHJcbiAgICAgIGxlZnRTZWN0aW9uLnJlbW92ZSgpO1xyXG4gICAgdGhpcy5MYXp5TWFwc0FQSUxvYWRlciA9IG5ldyBMYXp5TWFwc0FQSUxvYWRlcih7XHJcbiAgICAgIGFwaUtleTogYCR7ZW52aXJvbm1lbnQuQkJTRl9Hb29nbGVNYXBLZXl9Jmxhbmd1YWdlPSR7dGhpcy5DdXJyZW50TGFuZ3VhZ2V9YCxcclxuICAgICAgbGlicmFyaWVzOiBbJ3BsYWNlcyddLFxyXG4gICAgfSwgdGhpcy5tYXBzQVBJTG9hZGVyW1wiX3dpbmRvd1JlZlwiXSwgdGhpcy5tYXBzQVBJTG9hZGVyW1wiX2RvY3VtZW50UmVmXCJdLCB0aGlzLm1hcHNBUElMb2FkZXJbXCJfY29uZmlnXCJdW1wibG9jYWxlSWRcIl0pO1xyXG4gICAgdGhpcy5MYXp5TWFwc0FQSUxvYWRlci5sb2FkKCk7XHJcblxyXG4gICAgdGhpcy5tYXBzQVBJTG9hZGVyLmxvYWQoKS50aGVuKCgpID0+IHtcclxuICAgICAgbGV0IGF1dG9jb21wbGV0ZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKHRoaXMuc2VhcmNoRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB7XHJcbiAgICAgICAgdHlwZXM6IFtcImFkZHJlc3NcIl1cclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH0pXHJcbiAgICB0aGlzLmdyb3VwLmFkZENvbnRyb2wodGhpcy5vcHRpb25zLk5hbWUsIG5ldyBGb3JtQ29udHJvbCgnJykpO1xyXG4gICAgdGhpcy5NYXBBdXRvQ29tcGxldGVGb3JtQ29udHJvbCA9IHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5vcHRpb25zLk5hbWVdOyAvLyAgbmV3IEZvcm1Db250cm9sKCcnLHZhbGlkYXRpb25SdWxlcyk7XHJcblxyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuVmlld1R5cGUpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5WaWV3VHlwZSA9IHRoaXMuZ2xvYmFsU2V0dGluZ3MuVmlld1R5cGU7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc1JlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkxhYmVsS2V5ICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkxhYmVsS2V5ICE9IFwiXCIpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5MYWJlbFZhbHVlID0gdGhpcy5VdGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKHRoaXMub3B0aW9ucy5MYWJlbEtleSk7XHJcblxyXG4gICAgdGhpcy5NYXBBdXRvQ29tcGxldGVGb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzKTtcclxuICAgIHRoaXMuTWFwQXV0b0NvbXBsZXRlRm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzYXN5bmMpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuTWFwQXV0b0NvbXBsZXRlRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5WYWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIGxldCBnZXJtYW5BZGRyZXNzID0ge1xyXG5cclxuICAgICAgICB1cmw6IHRoaXMub3B0aW9ucy5WYWx1ZS5Hb29nbGVNYXBzVVJMLFxyXG4gICAgICAgIHBsYWNlSUQ6IHRoaXMub3B0aW9ucy5WYWx1ZS5QbGFjZUlELFxyXG4gICAgICAgIGRpc3BsYXlBZGRyZXNzOiB0aGlzLm9wdGlvbnMuVmFsdWUuVGV4dCxcclxuICAgICAgICBuYW1lOiB0aGlzLm9wdGlvbnMuVmFsdWUuVGV4dCxcclxuICAgICAgICBsb2NhbGl0eToge30sXHJcbiAgICAgICAgc3RhdGU6IHt9LFxyXG4gICAgICAgIGNvdW50cnk6IHt9LFxyXG4gICAgICAgIGdlb0xvY2F0aW9uOiB7IGxhdGl0dWRlOiAtMSwgbG9uZ2l0dWRlOiAtMSB9LFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgZ2VybWFuQWRkcmVzcy5nZW9Mb2NhdGlvbi5sYXRpdHVkZSA9IHRoaXMub3B0aW9ucy5WYWx1ZS5MYXRpdHVkZTtcclxuICAgICAgZ2VybWFuQWRkcmVzcy5nZW9Mb2NhdGlvbi5sb25naXR1ZGUgPSB0aGlzLm9wdGlvbnMuVmFsdWUuTG9uZ2l0dWRlO1xyXG4gICAgICB0aGlzLm9uR2VybWFuQWRkcmVzc01hcHBlZC5lbWl0KGdlcm1hbkFkZHJlc3MpO1xyXG4gICAgICB0aGlzLkdlcm1hbkFkZHJlc3NNYXBwZWQoZ2VybWFuQWRkcmVzcylcclxuICAgICAgdGhpcy5wbGFjZSA9IHtcclxuXHJcbiAgICAgICAgdXJsOiB0aGlzLm9wdGlvbnMuVmFsdWUuR29vZ2xlTWFwc1VSTCxcclxuICAgICAgICBwbGFjZV9pZDogdGhpcy5vcHRpb25zLlZhbHVlLlBsYWNlSUQsXHJcbiAgICAgICAgZm9ybWF0dGVkX2FkZHJlc3M6IHRoaXMub3B0aW9ucy5WYWx1ZS5UZXh0LFxyXG4gICAgICAgIG5hbWU6IHRoaXMub3B0aW9ucy5WYWx1ZS5UZXh0LFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLm9uQXV0b2NvbXBsZXRlU2VsZWN0ZWQuZW1pdCh0aGlzLnBsYWNlKTtcclxuICAgICAgdGhpcy5BdXRvY29tcGxldGVTZWxlY3RlZCh0aGlzLnBsYWNlKVxyXG5cclxuICAgICAgdGhpcy5vbkxvY2F0aW9uU2VsZWN0ZWQuZW1pdCh7XHJcbiAgICAgICAgbGF0aXR1ZGU6IHRoaXMub3B0aW9ucy5WYWx1ZS5MYXRpdHVkZSxcclxuICAgICAgICBsb25naXR1ZGU6IHRoaXMub3B0aW9ucy5WYWx1ZS5Mb25naXR1ZGVcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5vcHRpb25zLk5hbWVdLnNldFZhbHVlKHRoaXMuTWFwQXV0b0NvbXBsZXRlTW9kZWwpXHJcbiAgICAgIHRoaXMuTWFwQXV0b0NvbXBsZXRlRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5vcHRpb25zLlZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb24ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgVmFsaWRhdGlvbnMgPSB0aGlzLm9wdGlvbnMuQ3VzdG9tVmFsaWRhdGlvblxyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgVmFsaWRhdGlvbnMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgVmFsaWRhdGlvbiA9IFZhbGlkYXRpb25zW2luZGV4XTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRpb24uZnVuY3Rpb25Cb2R5KTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5NYXBBdXRvQ29tcGxldGVDb250cm9sSG9zdC5uZ1N1Ym1pdC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JvdXAubWFya0FsbEFzVG91Y2hlZCgpXHJcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCA9IHRydWVcclxuICAgIH0pXHJcblxyXG5cclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5BdHRyaWJ1dGVMaXN0ICE9IG51bGwpIHtcclxuICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm9wdGlvbnMuTmFtZSk7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbnMuQXR0cmlidXRlTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSh0aGlzLm9wdGlvbnMuQXR0cmlidXRlTGlzdFtpbmRleF0uS2V5LCB0aGlzLm9wdGlvbnMuQXR0cmlidXRlTGlzdFtpbmRleF0udmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB2YXIgZWxlbWVudEhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm9wdGlvbnMuTmFtZSkgYXMgYW55XHJcbiAgICBlbGVtZW50SFRNTC52YWx1ZSA9IHRoaXMuTWFwQXV0b0NvbXBsZXRlTW9kZWwuVGV4dDtcclxuICB9XHJcblxyXG4gIHJlc2V0RXJyb3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xWYWxpZGF0aW9uU2VydmljZS5SZW1vdmVHbG9iYWxFcnJvcigpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0dsb2JhbEVycm9yKCkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5zaG93R2xvYmFsRXJyb3IoKVxyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JWYWxpZGF0aW9uKEVycm9yTGlzdCkge1xyXG4gICAgaWYgKHRoaXMubWFya0FsbEFzVG91Y2hlZCAmJiB0aGlzLmdyb3VwLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5zaG93R2xvYmFsRXJyb3IoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xVdGlsaXR5LmdldEVycm9yVmFsaWRhdGlvbk1hc3NhZ2UoRXJyb3JMaXN0LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgQXV0b2NvbXBsZXRlU2VsZWN0ZWQocmVzdWx0KSB7XHJcblxyXG5cclxuICAgIHRoaXMuTWFwQXV0b0NvbXBsZXRlTW9kZWwgPT0gbmV3IE1hcEF1dG9jb21wbGV0ZURUTygpO1xyXG4gICAgdGhpcy5NYXBBdXRvQ29tcGxldGVNb2RlbC5UZXh0ID0gcmVzdWx0LmZvcm1hdHRlZF9hZGRyZXNzO1xyXG4gICAgdGhpcy5NYXBBdXRvQ29tcGxldGVNb2RlbC5QbGFjZUlEID0gcmVzdWx0LnBsYWNlX2lkO1xyXG4gICAgdGhpcy5NYXBBdXRvQ29tcGxldGVNb2RlbC5Hb29nbGVNYXBzVVJMID0gcmVzdWx0LnVybDtcclxuICB9XHJcbiAgTG9jYXRpb25TZWxlY3RlZChsb2NhdGlvbikge1xyXG5cclxuICAgIHRoaXMuTWFwQXV0b0NvbXBsZXRlTW9kZWwuTGF0aXR1ZGUgPSBsb2NhdGlvbi5sYXRpdHVkZTtcclxuICAgIHRoaXMuTWFwQXV0b0NvbXBsZXRlTW9kZWwuTG9uZ2l0dWRlID0gbG9jYXRpb24ubG9uZ2l0dWRlO1xyXG4gICAgdGhpcy5NYXBBdXRvQ29tcGxldGVGb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuXHJcbiAgICB0aGlzLk1hcEF1dG9Db21wbGV0ZUZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuTWFwQXV0b0NvbXBsZXRlTW9kZWwpO1xyXG4gICAgbGV0IG9yaWdpbmFsVmFsdWUgPSB0aGlzLk1hcEF1dG9Db21wbGV0ZUZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5QYXRjaEZ1bmN0aW9uICYmIHRoaXMub3B0aW9ucy5QYXRjaFBhdGggJiYgdGhpcy5NYXBBdXRvQ29tcGxldGVGb3JtQ29udHJvbC52YWxpZCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LnBhdGNoQ29udHJvbFZhbHVlKG9yaWdpbmFsVmFsdWUsIHRoaXMub3B0aW9ucy5QYXRjaEZ1bmN0aW9uLCB0aGlzLm9wdGlvbnMuUGF0Y2hQYXRoKVxyXG4gICAgfVxyXG4gICAgLy9Vc2UgdGhpcyBsaW5lIHRvIGVuYWJsZSB0d28gd2F5IGJpbmRpbmcuXHJcbiAgICB0aGlzLm9wdGlvbnMuVmFsdWU9dGhpcy5NYXBBdXRvQ29tcGxldGVNb2RlbDtcclxuICB9XHJcblxyXG4gIEdlcm1hbkFkZHJlc3NNYXBwZWQocmVzdWx0KSB7XHJcbiAgICBpZiAocmVzdWx0LnR5cGUpIHtcclxuICAgICAgaWYgKHJlc3VsdC50YXJnZXQudmFsdWUgPT0gXCJcIikge1xyXG4gICAgICAgIHRoaXMuTWFwQXV0b0NvbXBsZXRlRm9ybUNvbnRyb2wuc2V0VmFsdWUocmVzdWx0KTtcclxuICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMub3B0aW9ucy5OYW1lXS5zZXRWYWx1ZShyZXN1bHQpO1xyXG4gICAgICAgIHRoaXMub3B0aW9ucy5WYWx1ZT1yZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5NYXBBdXRvQ29tcGxldGVNb2RlbCA9PSBuZXcgTWFwQXV0b2NvbXBsZXRlRFRPKCk7XHJcbiAgICB0aGlzLk1hcEF1dG9Db21wbGV0ZU1vZGVsLlRleHQgPSByZXN1bHQuZGlzcGxheUFkZHJlc3M7XHJcbiAgICB0aGlzLk1hcEF1dG9Db21wbGV0ZU1vZGVsLlBsYWNlSUQgPSByZXN1bHQucGxhY2VJRDtcclxuICAgIHRoaXMuTWFwQXV0b0NvbXBsZXRlTW9kZWwuR29vZ2xlTWFwc1VSTCA9IHJlc3VsdC51cmw7XHJcbiAgICB0aGlzLk1hcEF1dG9Db21wbGV0ZU1vZGVsLkxhdGl0dWRlID0gcmVzdWx0Lmdlb0xvY2F0aW9uLmxhdGl0dWRlO1xyXG4gICAgdGhpcy5NYXBBdXRvQ29tcGxldGVNb2RlbC5Mb25naXR1ZGUgPSByZXN1bHQuZ2VvTG9jYXRpb24ubG9uZ2l0dWRlO1xyXG4gICAgdGhpcy5NYXBBdXRvQ29tcGxldGVGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLk1hcEF1dG9Db21wbGV0ZU1vZGVsKTtcclxuICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5vcHRpb25zLk5hbWVdLnNldFZhbHVlKHRoaXMuTWFwQXV0b0NvbXBsZXRlTW9kZWwpXHJcbiAgICB0aGlzLk9uQ2hhbmdlLmVtaXQodGhpcy5NYXBBdXRvQ29tcGxldGVGb3JtQ29udHJvbC52YWx1ZSlcclxuICAgIC8vVXNlIHRoaXMgbGluZSB0byBlbmFibGUgdHdvIHdheSBiaW5kaW5nLlxyXG4gICAgdGhpcy5vcHRpb25zLlZhbHVlPXRoaXMuTWFwQXV0b0NvbXBsZXRlTW9kZWw7XHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG5cclxuICBSZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LlJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLk1hcEF1dG9Db21wbGV0ZUZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG5cclxuICBBZGRSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkFkZFJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLk1hcEF1dG9Db21wbGV0ZUZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBSZW1vdmVDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbih0aGlzLk1hcEF1dG9Db21wbGV0ZUZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBBZGRDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkQ3VzdG9tVmFsaWRhdGlvbih0aGlzLk1hcEF1dG9Db21wbGV0ZUZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcblxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgSXNWYWxpZCA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuSXNWYWxpZCh0aGlzLk1hcEF1dG9Db21wbGV0ZUZvcm1Db250cm9sKVxyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
|