@bnsights/bbsf-controls 1.0.87 → 1.0.88
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 +2 -3
- package/bnsights-bbsf-controls-1.0.88.tgz +0 -0
- package/bnsights-bbsf-controls.d.ts +1 -1
- package/bnsights-bbsf-controls.metadata.json +1 -0
- package/bundles/bnsights-bbsf-controls.umd.js +9434 -0
- package/bundles/bnsights-bbsf-controls.umd.js.map +1 -0
- package/esm2015/bnsights-bbsf-controls.js +6 -0
- package/esm2015/lib/Shared/Directives/template-name.directive.js +18 -0
- package/{esm2020/lib/Shared/Models/datePickerOptions.mjs → esm2015/lib/Shared/Models/datePickerOptions.js} +1 -1
- package/esm2015/lib/Shared/Pipes/bbsf-date-time.pipe.js +20 -0
- package/esm2015/lib/Shared/Pipes/bbsf-date.pipe.js +20 -0
- package/esm2015/lib/Shared/components/app-base-component.js +202 -0
- package/esm2015/lib/Shared/components/ng-tag-input.js +323 -0
- package/esm2015/lib/Shared/default_intl.js +29 -0
- package/esm2015/lib/Shared/services/ControlUtility.js +164 -0
- package/esm2015/lib/Shared/services/GlobalSettings.service.js +28 -0
- package/esm2015/lib/Shared/services/OnPagingFiltersChange.service.js +22 -0
- package/esm2015/lib/Shared/services/render-component-service.service.js +30 -0
- package/esm2015/lib/Shared/services/validationErrorMassage.service.js +137 -0
- package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +248 -0
- package/esm2015/lib/controls/Calendar/Calendar.component.js +176 -0
- package/esm2015/lib/controls/CheckBox/CheckBox.component.js +114 -0
- package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +139 -0
- package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +215 -0
- package/esm2015/lib/controls/DropdownList/DropdownList.component.js +178 -0
- package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +451 -0
- package/esm2015/lib/controls/Form/Form.component.js +106 -0
- package/esm2015/lib/controls/HtmlEditor/HtmlEditor.component.js +222 -0
- package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +347 -0
- package/esm2015/lib/controls/MapAutoComplete/MapAutoComplete.component.js +325 -0
- package/esm2015/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.js +429 -0
- package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +430 -0
- package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +429 -0
- package/esm2015/lib/controls/Paging/JwPagination.component.js +129 -0
- package/esm2015/lib/controls/Paging/Paging.component.js +312 -0
- package/esm2015/lib/controls/Phone/Phone.component.js +119 -0
- package/esm2015/lib/controls/ProfileImageUploader/ProfileImageUploader.component.js +349 -0
- package/esm2015/lib/controls/RadioButton/RadioButton.component.js +108 -0
- package/esm2015/lib/controls/Recaptcha/Recaptcha.component.js +131 -0
- package/esm2015/lib/controls/Repeater/repeater/repeater.component.js +117 -0
- package/esm2015/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.js +748 -0
- package/esm2015/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.js +19 -0
- package/esm2015/lib/controls/Repeater/repeater-table/repeater-table.component.js +108 -0
- package/esm2015/lib/controls/TagsInput/TagsInput.component.js +268 -0
- package/esm2015/lib/controls/TextArea/TextArea.component.js +191 -0
- package/esm2015/lib/controls/TextBox/TextBox.component.js +262 -0
- package/esm2015/lib/controls/Toggleslide/toggleslide.component.js +83 -0
- package/esm2015/lib/controls/bbsf-controls.module.js +243 -0
- package/esm2015/lib/controls/page-header-component/page-header-component.component.js +32 -0
- package/fesm2015/{bnsights-bbsf-controls.mjs → bnsights-bbsf-controls.js} +1506 -1645
- package/fesm2015/bnsights-bbsf-controls.js.map +1 -0
- package/lib/Shared/Directives/template-name.directive.d.ts +0 -3
- package/lib/Shared/Models/datePickerOptions.d.ts +1 -1
- package/lib/Shared/Pipes/bbsf-date-time.pipe.d.ts +0 -3
- package/lib/Shared/Pipes/bbsf-date.pipe.d.ts +0 -3
- package/lib/Shared/components/app-base-component.d.ts +1 -3
- package/lib/Shared/components/ng-tag-input.d.ts +0 -3
- package/lib/Shared/default_intl.d.ts +0 -3
- package/lib/Shared/services/ControlUtility.d.ts +0 -3
- package/lib/Shared/services/GlobalSettings.service.d.ts +0 -3
- package/lib/Shared/services/OnPagingFiltersChange.service.d.ts +0 -3
- package/lib/Shared/services/render-component-service.service.d.ts +0 -3
- package/lib/Shared/services/validationErrorMassage.service.d.ts +0 -3
- package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +0 -4
- package/lib/controls/Calendar/Calendar.component.d.ts +0 -3
- package/lib/controls/CheckBox/CheckBox.component.d.ts +0 -4
- package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +0 -3
- package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +2 -8
- package/lib/controls/DropdownList/DropdownList.component.d.ts +0 -4
- package/lib/controls/FileUplaod/FileUplaod.component.d.ts +0 -3
- package/lib/controls/Form/Form.component.d.ts +0 -3
- package/lib/controls/HtmlEditor/HtmlEditor.component.d.ts +0 -4
- package/lib/controls/ImageUpload/ImageUpload.component.d.ts +0 -3
- package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +0 -3
- package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +0 -3
- package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +0 -3
- package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +0 -3
- package/lib/controls/Paging/JwPagination.component.d.ts +0 -3
- package/lib/controls/Paging/Paging.component.d.ts +0 -3
- package/lib/controls/Phone/Phone.component.d.ts +1 -7
- package/lib/controls/ProfileImageUploader/ProfileImageUploader.component.d.ts +0 -3
- package/lib/controls/RadioButton/RadioButton.component.d.ts +0 -3
- package/lib/controls/Recaptcha/Recaptcha.component.d.ts +0 -4
- package/lib/controls/Repeater/repeater/repeater.component.d.ts +0 -3
- package/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.d.ts +0 -3
- package/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.d.ts +0 -3
- package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +0 -3
- package/lib/controls/TagsInput/TagsInput.component.d.ts +0 -4
- package/lib/controls/TextArea/TextArea.component.d.ts +0 -4
- package/lib/controls/TextBox/TextBox.component.d.ts +0 -4
- package/lib/controls/Toggleslide/toggleslide.component.d.ts +0 -4
- package/lib/controls/bbsf-controls.module.d.ts +0 -74
- package/lib/controls/page-header-component/page-header-component.component.d.ts +0 -3
- package/package.json +8 -20
- package/bnsights-bbsf-controls-1.0.87.tgz +0 -0
- package/esm2020/bnsights-bbsf-controls.mjs +0 -5
- package/esm2020/lib/Shared/Directives/template-name.directive.mjs +0 -18
- package/esm2020/lib/Shared/Pipes/bbsf-date-time.pipe.mjs +0 -21
- package/esm2020/lib/Shared/Pipes/bbsf-date.pipe.mjs +0 -21
- package/esm2020/lib/Shared/components/app-base-component.mjs +0 -198
- package/esm2020/lib/Shared/components/ng-tag-input.mjs +0 -336
- package/esm2020/lib/Shared/default_intl.mjs +0 -29
- package/esm2020/lib/Shared/services/ControlUtility.mjs +0 -162
- package/esm2020/lib/Shared/services/GlobalSettings.service.mjs +0 -30
- package/esm2020/lib/Shared/services/OnPagingFiltersChange.service.mjs +0 -24
- package/esm2020/lib/Shared/services/render-component-service.service.mjs +0 -30
- package/esm2020/lib/Shared/services/validationErrorMassage.service.mjs +0 -137
- package/esm2020/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +0 -245
- package/esm2020/lib/controls/Calendar/Calendar.component.mjs +0 -172
- package/esm2020/lib/controls/CheckBox/CheckBox.component.mjs +0 -114
- package/esm2020/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +0 -136
- package/esm2020/lib/controls/DateTimePicker/DateTimePicker.component.mjs +0 -217
- package/esm2020/lib/controls/DropdownList/DropdownList.component.mjs +0 -179
- package/esm2020/lib/controls/FileUplaod/FileUplaod.component.mjs +0 -453
- package/esm2020/lib/controls/Form/Form.component.mjs +0 -101
- package/esm2020/lib/controls/HtmlEditor/HtmlEditor.component.mjs +0 -223
- package/esm2020/lib/controls/ImageUpload/ImageUpload.component.mjs +0 -350
- package/esm2020/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +0 -325
- package/esm2020/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +0 -427
- package/esm2020/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +0 -427
- package/esm2020/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +0 -426
- package/esm2020/lib/controls/Paging/JwPagination.component.mjs +0 -156
- package/esm2020/lib/controls/Paging/Paging.component.mjs +0 -312
- package/esm2020/lib/controls/Phone/Phone.component.mjs +0 -124
- package/esm2020/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +0 -354
- package/esm2020/lib/controls/RadioButton/RadioButton.component.mjs +0 -106
- package/esm2020/lib/controls/Recaptcha/Recaptcha.component.mjs +0 -132
- package/esm2020/lib/controls/Repeater/repeater/repeater.component.mjs +0 -125
- package/esm2020/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +0 -750
- package/esm2020/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +0 -21
- package/esm2020/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +0 -108
- package/esm2020/lib/controls/TagsInput/TagsInput.component.mjs +0 -268
- package/esm2020/lib/controls/TextArea/TextArea.component.mjs +0 -192
- package/esm2020/lib/controls/TextBox/TextBox.component.mjs +0 -266
- package/esm2020/lib/controls/Toggleslide/toggleslide.component.mjs +0 -84
- package/esm2020/lib/controls/bbsf-controls.module.mjs +0 -401
- package/esm2020/lib/controls/page-header-component/page-header-component.component.mjs +0 -37
- package/fesm2015/bnsights-bbsf-controls.mjs.map +0 -1
- package/fesm2020/bnsights-bbsf-controls.mjs +0 -8938
- package/fesm2020/bnsights-bbsf-controls.mjs.map +0 -1
- /package/{esm2020/lib/Shared/Enums/CalendarView.mjs → esm2015/lib/Shared/Enums/CalendarView.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/ControlLayout.mjs → esm2015/lib/Shared/Enums/ControlLayout.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Countries.mjs → esm2015/lib/Shared/Enums/Countries.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Enums.mjs → esm2015/lib/Shared/Enums/Enums.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/FileType.mjs → esm2015/lib/Shared/Enums/FileType.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/FilterType.mjs → esm2015/lib/Shared/Enums/FilterType.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/FontSize.mjs → esm2015/lib/Shared/Enums/FontSize.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/ForceDirection.mjs → esm2015/lib/Shared/Enums/ForceDirection.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/IconPosition.mjs → esm2015/lib/Shared/Enums/IconPosition.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/ImageType.mjs → esm2015/lib/Shared/Enums/ImageType.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/InputType.mjs → esm2015/lib/Shared/Enums/InputType.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Insert.mjs → esm2015/lib/Shared/Enums/Insert.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/LanguageMode.mjs → esm2015/lib/Shared/Enums/LanguageMode.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/LanguageValidation.mjs → esm2015/lib/Shared/Enums/LanguageValidation.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Misc.mjs → esm2015/lib/Shared/Enums/Misc.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/PagingActionMode.mjs → esm2015/lib/Shared/Enums/PagingActionMode.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Para.mjs → esm2015/lib/Shared/Enums/Para.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/PickerType.mjs → esm2015/lib/Shared/Enums/PickerType.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/SelectMode.mjs → esm2015/lib/Shared/Enums/SelectMode.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/StartView.mjs → esm2015/lib/Shared/Enums/StartView.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Style.mjs → esm2015/lib/Shared/Enums/Style.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/StyleConfirmationMode.mjs → esm2015/lib/Shared/Enums/StyleConfirmationMode.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/TagInputView.mjs → esm2015/lib/Shared/Enums/TagInputView.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/menu-list-enum.mjs → esm2015/lib/Shared/Enums/menu-list-enum.js} +0 -0
- /package/{esm2020/lib/Shared/Models/Attribute.mjs → esm2015/lib/Shared/Models/Attribute.js} +0 -0
- /package/{esm2020/lib/Shared/Models/AutocompleteDTO.mjs → esm2015/lib/Shared/Models/AutocompleteDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/AutocompleteOptions.mjs → esm2015/lib/Shared/Models/AutocompleteOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CalendarEventDTO.mjs → esm2015/lib/Shared/Models/CalendarEventDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CalendarOptions.mjs → esm2015/lib/Shared/Models/CalendarOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CancelDTO.mjs → esm2015/lib/Shared/Models/CancelDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CaptchaStyle.mjs → esm2015/lib/Shared/Models/CaptchaStyle.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CheckBoxOptions.mjs → esm2015/lib/Shared/Models/CheckBoxOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ConfirmationModalOptions.mjs → esm2015/lib/Shared/Models/ConfirmationModalOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ControlOptionsBase.mjs → esm2015/lib/Shared/Models/ControlOptionsBase.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CustomValidation.mjs → esm2015/lib/Shared/Models/CustomValidation.js} +0 -0
- /package/{esm2020/lib/Shared/Models/DropdownListItem.mjs → esm2015/lib/Shared/Models/DropdownListItem.js} +0 -0
- /package/{esm2020/lib/Shared/Models/DropdownOptions.mjs → esm2015/lib/Shared/Models/DropdownOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/EditPersonalImage.mjs → esm2015/lib/Shared/Models/EditPersonalImage.js} +0 -0
- /package/{esm2020/lib/Shared/Models/EnglishArabicDTO.mjs → esm2015/lib/Shared/Models/EnglishArabicDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/FileDTO.mjs → esm2015/lib/Shared/Models/FileDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/FileUploadModel.mjs → esm2015/lib/Shared/Models/FileUploadModel.js} +0 -0
- /package/{esm2020/lib/Shared/Models/FileUploadOptions.mjs → esm2015/lib/Shared/Models/FileUploadOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/FilterItem.mjs → esm2015/lib/Shared/Models/FilterItem.js} +0 -0
- /package/{esm2020/lib/Shared/Models/FormOptions.mjs → esm2015/lib/Shared/Models/FormOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/HtmlEditorOptions.mjs → esm2015/lib/Shared/Models/HtmlEditorOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ImageUploadOptions.mjs → esm2015/lib/Shared/Models/ImageUploadOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MapAutoCompleteOptions.mjs → esm2015/lib/Shared/Models/MapAutoCompleteOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MapAutocompleteDTO.mjs → esm2015/lib/Shared/Models/MapAutocompleteDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MultiLingualHtmlEditorOptions.mjs → esm2015/lib/Shared/Models/MultiLingualHtmlEditorOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MultiLingualTextAreaOptions.mjs → esm2015/lib/Shared/Models/MultiLingualTextAreaOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MultilingualControlOptionsBase.mjs → esm2015/lib/Shared/Models/MultilingualControlOptionsBase.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MultilingualTextBoxOptions.mjs → esm2015/lib/Shared/Models/MultilingualTextBoxOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MultipleFileUploadModel.mjs → esm2015/lib/Shared/Models/MultipleFileUploadModel.js} +0 -0
- /package/{esm2020/lib/Shared/Models/PagingDTO.mjs → esm2015/lib/Shared/Models/PagingDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/PagingOptions.mjs → esm2015/lib/Shared/Models/PagingOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/PagingPayload.mjs → esm2015/lib/Shared/Models/PagingPayload.js} +0 -0
- /package/{esm2020/lib/Shared/Models/PhoneOptions.mjs → esm2015/lib/Shared/Models/PhoneOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ProfileImageUploadOptions.mjs → esm2015/lib/Shared/Models/ProfileImageUploadOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ProfilePictureDTO.mjs → esm2015/lib/Shared/Models/ProfilePictureDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RadioButtonItem.mjs → esm2015/lib/Shared/Models/RadioButtonItem.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RadioButtonOptions.mjs → esm2015/lib/Shared/Models/RadioButtonOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RangeNumber.mjs → esm2015/lib/Shared/Models/RangeNumber.js} +0 -0
- /package/{esm2020/lib/Shared/Models/Recaptcha.mjs → esm2015/lib/Shared/Models/Recaptcha.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RecaptchaOptions.mjs → esm2015/lib/Shared/Models/RecaptchaOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RepeaterField.mjs → esm2015/lib/Shared/Models/RepeaterField.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RepeaterOptions.mjs → esm2015/lib/Shared/Models/RepeaterOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/SaveDTO.mjs → esm2015/lib/Shared/Models/SaveDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/TagsInputDTO.mjs → esm2015/lib/Shared/Models/TagsInputDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/TagsInputOptions.mjs → esm2015/lib/Shared/Models/TagsInputOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/TextAreaOptions.mjs → esm2015/lib/Shared/Models/TextAreaOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/TextBoxOptions.mjs → esm2015/lib/Shared/Models/TextBoxOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ToggleslideOptions.mjs → esm2015/lib/Shared/Models/ToggleslideOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/UploadPersonalImage.mjs → esm2015/lib/Shared/Models/UploadPersonalImage.js} +0 -0
- /package/{esm2020/lib/Shared/Models/bread-crumb.mjs → esm2015/lib/Shared/Models/bread-crumb.js} +0 -0
- /package/{esm2020/lib/Shared/Models/control-filter-Item.mjs → esm2015/lib/Shared/Models/control-filter-Item.js} +0 -0
- /package/{esm2020/lib/Shared/Models/filter-options.mjs → esm2015/lib/Shared/Models/filter-options.js} +0 -0
- /package/{esm2020/lib/Shared/Models/page-header-options.mjs → esm2015/lib/Shared/Models/page-header-options.js} +0 -0
- /package/{esm2020/lib/Shared/config/environment.mjs → esm2015/lib/Shared/config/environment.js} +0 -0
- /package/{esm2020/public-api.mjs → esm2015/public-api.js} +0 -0
|
@@ -6,7 +6,6 @@ import { HttpClient } from '@angular/common/http';
|
|
|
6
6
|
import { Observable, Subscription } from 'rxjs';
|
|
7
7
|
import { ControlValidationService, RequestHandlerService, UtilityService } from '@bnsights/bbsf-utilities';
|
|
8
8
|
import { GlobalSettings } from '../../Shared/services/GlobalSettings.service';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
9
|
export declare class TagsInputComponent implements OnInit, OnDestroy {
|
|
11
10
|
private http;
|
|
12
11
|
private controlUtility;
|
|
@@ -33,7 +32,6 @@ export declare class TagsInputComponent implements OnInit, OnDestroy {
|
|
|
33
32
|
validationRulesasync: any[];
|
|
34
33
|
changeValueSubscription: Subscription;
|
|
35
34
|
SearchResultHasItems: boolean;
|
|
36
|
-
textDir: any;
|
|
37
35
|
static showErrorOfInputs(errors: any): void;
|
|
38
36
|
ngOnDestroy(): void;
|
|
39
37
|
ngOnInit(): void;
|
|
@@ -52,6 +50,4 @@ export declare class TagsInputComponent implements OnInit, OnDestroy {
|
|
|
52
50
|
AddCustomValidation: (CustomValidation: any) => void;
|
|
53
51
|
IsValid: () => void;
|
|
54
52
|
onTagsInputBlur(SearchKey: any): void;
|
|
55
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TagsInputComponent, [null, null, null, { optional: true; }, null, null, null, null]>;
|
|
56
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TagsInputComponent, "BBSF-TagsInput", never, { "group": "group"; "options": "options"; }, { "OnChange": "OnChange"; }, never, never>;
|
|
57
53
|
}
|
|
@@ -4,7 +4,6 @@ import { ControlValidationService, UtilityService } from '@bnsights/bbsf-utiliti
|
|
|
4
4
|
import { ControlUtility } from '../../Shared/services/ControlUtility';
|
|
5
5
|
import { TextAreaOptions } from '../../Shared/Models/TextAreaOptions';
|
|
6
6
|
import { GlobalSettings } from '../../Shared/services/GlobalSettings.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
7
|
export declare class TextAreaComponent implements OnInit {
|
|
9
8
|
private controlUtility;
|
|
10
9
|
private controlContainer;
|
|
@@ -30,7 +29,6 @@ export declare class TextAreaComponent implements OnInit {
|
|
|
30
29
|
charsLimitMsgClass: string;
|
|
31
30
|
minCharsLimit: number;
|
|
32
31
|
maxLimitWarningMsg: string;
|
|
33
|
-
textDir: any;
|
|
34
32
|
ngOnInit(): void;
|
|
35
33
|
ngAfterViewInit(): void;
|
|
36
34
|
resetError: () => void;
|
|
@@ -46,6 +44,4 @@ export declare class TextAreaComponent implements OnInit {
|
|
|
46
44
|
RemoveCustomValidation: (CustomValidation: any) => void;
|
|
47
45
|
AddCustomValidation: (CustomValidation: any) => void;
|
|
48
46
|
IsValid: () => void;
|
|
49
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TextAreaComponent, [null, { optional: true; }, null, null, null, null]>;
|
|
50
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TextAreaComponent, "BBSF-TextArea", never, { "group": "group"; "options": "options"; }, { "OnChange": "OnChange"; }, never, never>;
|
|
51
47
|
}
|
|
@@ -4,7 +4,6 @@ import { TextBoxOptions } from '../../Shared/Models/TextBoxOptions';
|
|
|
4
4
|
import { ControlUtility } from '../../Shared/services/ControlUtility';
|
|
5
5
|
import { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';
|
|
6
6
|
import { GlobalSettings } from '../../Shared/services/GlobalSettings.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
7
|
export declare class TextboxComponent implements OnInit {
|
|
9
8
|
private controlUtility;
|
|
10
9
|
private controlContainer;
|
|
@@ -39,7 +38,6 @@ export declare class TextboxComponent implements OnInit {
|
|
|
39
38
|
charsLimitMsgClass: string;
|
|
40
39
|
minCharsLimit: number;
|
|
41
40
|
maxLimitWarningMsg: string;
|
|
42
|
-
textDir: any;
|
|
43
41
|
ngOnInit(): void;
|
|
44
42
|
ngAfterViewInit(): void;
|
|
45
43
|
resetError: () => void;
|
|
@@ -56,6 +54,4 @@ export declare class TextboxComponent implements OnInit {
|
|
|
56
54
|
RemoveCustomValidation: (CustomValidation: any) => void;
|
|
57
55
|
AddCustomValidation: (CustomValidation: any) => void;
|
|
58
56
|
IsValid: () => void;
|
|
59
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TextboxComponent, [null, { optional: true; }, null, null, null, null]>;
|
|
60
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TextboxComponent, "BBSF-TextBox", never, { "group": "group"; "options": "options"; }, { "OnChange": "OnChange"; }, never, never>;
|
|
61
57
|
}
|
|
@@ -4,7 +4,6 @@ import { ControlUtility } from '../../Shared/services/ControlUtility';
|
|
|
4
4
|
import { ToggleSlideOptions } from '../../Shared/Models/ToggleslideOptions';
|
|
5
5
|
import { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';
|
|
6
6
|
import { GlobalSettings } from '../../Shared/services/GlobalSettings.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
7
|
export declare class ToggleslideComponent implements OnInit {
|
|
9
8
|
private controlUtility;
|
|
10
9
|
private controlContainer;
|
|
@@ -21,13 +20,10 @@ export declare class ToggleslideComponent implements OnInit {
|
|
|
21
20
|
ToggleslideFormControl: AbstractControl;
|
|
22
21
|
SlideValue: boolean;
|
|
23
22
|
markAllAsTouched: boolean;
|
|
24
|
-
textDir: any;
|
|
25
23
|
ngOnInit(): void;
|
|
26
24
|
ngAfterViewInit(): void;
|
|
27
25
|
resetError(): void;
|
|
28
26
|
showGlobalError(): void;
|
|
29
27
|
getErrorValidation(ErrorList: any[]): string;
|
|
30
28
|
changeValueToggle(): void;
|
|
31
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ToggleslideComponent, [null, { optional: true; }, null, null, null, null, null]>;
|
|
32
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ToggleslideComponent, "BBSF-Toggleslide", never, { "group": "group"; "options": "options"; }, { "OnChange": "OnChange"; }, never, never>;
|
|
33
29
|
}
|
|
@@ -1,84 +1,10 @@
|
|
|
1
1
|
import { Injector } from '@angular/core';
|
|
2
2
|
import { IConfig } from 'ngx-mask';
|
|
3
3
|
import { TranslateService } from '@ngx-translate/core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./DateTimePicker/DateTimePicker.component";
|
|
6
|
-
import * as i2 from "./FileUplaod/FileUplaod.component";
|
|
7
|
-
import * as i3 from "./MultiLingualTextBox/MultiLingualTextBox.component";
|
|
8
|
-
import * as i4 from "./TextBox/TextBox.component";
|
|
9
|
-
import * as i5 from "./TextArea/TextArea.component";
|
|
10
|
-
import * as i6 from "./MultiLingualTextArea/MultiLingualTextArea.component";
|
|
11
|
-
import * as i7 from "./CheckBox/CheckBox.component";
|
|
12
|
-
import * as i8 from "./DropdownList/DropdownList.component";
|
|
13
|
-
import * as i9 from "./Phone/Phone.component";
|
|
14
|
-
import * as i10 from "./Toggleslide/toggleslide.component";
|
|
15
|
-
import * as i11 from "./HtmlEditor/HtmlEditor.component";
|
|
16
|
-
import * as i12 from "./MultiLingualHtmlEditor/MultiLingualHtmlEditor.component";
|
|
17
|
-
import * as i13 from "./ImageUpload/ImageUpload.component";
|
|
18
|
-
import * as i14 from "./ProfileImageUploader/ProfileImageUploader.component";
|
|
19
|
-
import * as i15 from "./Calendar/Calendar.component";
|
|
20
|
-
import * as i16 from "./MapAutoComplete/MapAutoComplete.component";
|
|
21
|
-
import * as i17 from "./AutocompleteTextBox/AutocompleteTextBox.component";
|
|
22
|
-
import * as i18 from "./TagsInput/TagsInput.component";
|
|
23
|
-
import * as i19 from "./Paging/Paging.component";
|
|
24
|
-
import * as i20 from "./Paging/JwPagination.component";
|
|
25
|
-
import * as i21 from "./RadioButton/RadioButton.component";
|
|
26
|
-
import * as i22 from "./Form/Form.component";
|
|
27
|
-
import * as i23 from "./ConfirmationModal/ConfirmationModal.component";
|
|
28
|
-
import * as i24 from "./Repeater/repeater/repeater.component";
|
|
29
|
-
import * as i25 from "./Repeater/repeater-field-builder/repeater-field-builder.component";
|
|
30
|
-
import * as i26 from "../Shared/Directives/template-name.directive";
|
|
31
|
-
import * as i27 from "./Repeater/repeater-item-field/repeater-item-field.component";
|
|
32
|
-
import * as i28 from "./Repeater/repeater-table/repeater-table.component";
|
|
33
|
-
import * as i29 from "../shared/Pipes/bbsf-date-time.pipe";
|
|
34
|
-
import * as i30 from "../shared/Pipes/bbsf-date.pipe";
|
|
35
|
-
import * as i31 from "../Shared/components/ng-tag-input";
|
|
36
|
-
import * as i32 from "./Recaptcha/Recaptcha.component";
|
|
37
|
-
import * as i33 from "./page-header-component/page-header-component.component";
|
|
38
|
-
import * as i34 from "@angular/common";
|
|
39
|
-
import * as i35 from "ngx-infinite-scroll";
|
|
40
|
-
import * as i36 from "@ng-select/ng-select";
|
|
41
|
-
import * as i37 from "ngx-tags-input";
|
|
42
|
-
import * as i38 from "ngx-typeahead";
|
|
43
|
-
import * as i39 from "@agm/core";
|
|
44
|
-
import * as i40 from "@angular-material-extensions/google-maps-autocomplete";
|
|
45
|
-
import * as i41 from "@fullcalendar/angular";
|
|
46
|
-
import * as i42 from "angular-cropperjs";
|
|
47
|
-
import * as i43 from "ngx-image-cropper";
|
|
48
|
-
import * as i44 from "@ng-bootstrap/ng-bootstrap";
|
|
49
|
-
import * as i45 from "ngx-dropzone";
|
|
50
|
-
import * as i46 from "ng2-file-upload";
|
|
51
|
-
import * as i47 from "@syncfusion/ej2-angular-popups";
|
|
52
|
-
import * as i48 from "ngx-mask";
|
|
53
|
-
import * as i49 from "ngx-summernote";
|
|
54
|
-
import * as i50 from "@angular/material/slide-toggle";
|
|
55
|
-
import * as i51 from "ngx-intl-tel-input";
|
|
56
|
-
import * as i52 from "angular2-multiselect-dropdown";
|
|
57
|
-
import * as i53 from "ng-multiselect-dropdown";
|
|
58
|
-
import * as i54 from "ng-pick-datetime";
|
|
59
|
-
import * as i55 from "ng-block-ui";
|
|
60
|
-
import * as i56 from "@angular/forms";
|
|
61
|
-
import * as i57 from "@angular/http";
|
|
62
|
-
import * as i58 from "@angular/router";
|
|
63
|
-
import * as i59 from "ngx-toastr";
|
|
64
|
-
import * as i60 from "@angular/common/http";
|
|
65
|
-
import * as i61 from "ngx-permissions";
|
|
66
|
-
import * as i62 from "@angular/cdk/overlay";
|
|
67
|
-
import * as i63 from "@ngrx/store-devtools";
|
|
68
|
-
import * as i64 from "ngx-bootstrap/datepicker";
|
|
69
|
-
import * as i65 from "ngx-bootstrap/typeahead";
|
|
70
|
-
import * as i66 from "@kolkov/angular-editor";
|
|
71
|
-
import * as i67 from "angular-ng-autocomplete";
|
|
72
|
-
import * as i68 from "@bnsights/bbsf-utilities";
|
|
73
|
-
import * as i69 from "ng-inline-svg";
|
|
74
|
-
import * as i70 from "@sweetalert2/ngx-sweetalert2";
|
|
75
4
|
export declare let options: Partial<IConfig> | (() => Partial<IConfig>);
|
|
76
5
|
export declare let AppInjector: Injector;
|
|
77
6
|
export declare class BBSFControlsModule {
|
|
78
7
|
private injector;
|
|
79
8
|
private translate;
|
|
80
9
|
constructor(injector: Injector, translate: TranslateService);
|
|
81
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BBSFControlsModule, never>;
|
|
82
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<BBSFControlsModule, [typeof i1.DateInputComponent, typeof i2.FileUploadComponent, typeof i3.MultiLingualTextBoxComponent, typeof i4.TextboxComponent, typeof i5.TextAreaComponent, typeof i6.MultiLingualTextAreaComponent, typeof i7.CheckBoxComponent, typeof i8.DropdownListComponent, typeof i9.PhoneComponent, typeof i10.ToggleslideComponent, typeof i11.HtmlEditorComponent, typeof i12.MultiLingualHtmlEditorComponent, typeof i13.ImageUploaderComponent, typeof i14.ProfileImageUploaderComponent, typeof i15.CalendarComponent, typeof i16.MapAutoCompleteComponent, typeof i17.AutocompleteTextBoxComponent, typeof i18.TagsInputComponent, typeof i19.PagingComponent, typeof i20.JwPaginationComponent, typeof i21.RadioButtonComponent, typeof i22.FormComponent, typeof i23.ConfirmationModalComponent, typeof i24.RepeaterComponent, typeof i25.RepeaterFieldBuilderComponent, typeof i26.NgTemplateNameDirective, typeof i27.RepeaterItemFieldComponent, typeof i28.RepeaterTableComponent, typeof i29.BBSFDateTimePipe, typeof i30.BBSFDatePipe, typeof i31.BTagsInputComponent, typeof i32.RecaptchaComponent, typeof i33.PageHeaderComponentComponent], [typeof i34.CommonModule, typeof i35.InfiniteScrollModule, typeof i36.NgSelectModule, typeof i37.NgxTagsInputModule, typeof i38.NgxTypeaheadModule, typeof i39.AgmCoreModule, typeof i40.MatGoogleMapsAutocompleteModule, typeof i41.FullCalendarModule, typeof i42.AngularCropperjsModule, typeof i43.ImageCropperModule, typeof i44.NgbModule, typeof i45.NgxDropzoneModule, typeof i46.FileUploadModule, typeof i47.TooltipModule, typeof i48.NgxMaskModule, typeof i49.NgxSummernoteModule, typeof i50.MatSlideToggleModule, typeof i51.NgxIntlTelInputModule, typeof i52.AngularMultiSelectModule, typeof i53.NgMultiSelectDropDownModule, typeof i54.OwlDateTimeModule, typeof i54.OwlNativeDateTimeModule, typeof i34.CommonModule, typeof i55.BlockUIModule, typeof i56.ReactiveFormsModule, typeof i57.HttpModule, typeof i58.RouterModule, typeof i59.ToastrModule, typeof i60.HttpClientModule, typeof i61.NgxPermissionsModule, typeof i62.OverlayModule, typeof i63.StoreDevtoolsModule, typeof i56.FormsModule, typeof i51.NgxIntlTelInputModule, typeof i51.NgxIntlTelInputModule, typeof i64.BsDatepickerModule, typeof i41.FullCalendarModule, typeof i65.TypeaheadModule, typeof i66.AngularEditorModule, typeof i67.AutocompleteLibModule, typeof i68.BBSFUtilitiesModule, typeof i69.InlineSVGModule, typeof i70.SweetAlert2Module], [typeof i1.DateInputComponent, typeof i2.FileUploadComponent, typeof i3.MultiLingualTextBoxComponent, typeof i4.TextboxComponent, typeof i5.TextAreaComponent, typeof i6.MultiLingualTextAreaComponent, typeof i7.CheckBoxComponent, typeof i8.DropdownListComponent, typeof i9.PhoneComponent, typeof i10.ToggleslideComponent, typeof i11.HtmlEditorComponent, typeof i12.MultiLingualHtmlEditorComponent, typeof i13.ImageUploaderComponent, typeof i14.ProfileImageUploaderComponent, typeof i15.CalendarComponent, typeof i16.MapAutoCompleteComponent, typeof i17.AutocompleteTextBoxComponent, typeof i18.TagsInputComponent, typeof i19.PagingComponent, typeof i20.JwPaginationComponent, typeof i21.RadioButtonComponent, typeof i22.FormComponent, typeof i19.PagingComponent, typeof i23.ConfirmationModalComponent, typeof i24.RepeaterComponent, typeof i25.RepeaterFieldBuilderComponent, typeof i26.NgTemplateNameDirective, typeof i27.RepeaterItemFieldComponent, typeof i28.RepeaterTableComponent, typeof i29.BBSFDateTimePipe, typeof i30.BBSFDatePipe, typeof i32.RecaptchaComponent, typeof i33.PageHeaderComponentComponent]>;
|
|
83
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<BBSFControlsModule>;
|
|
84
10
|
}
|
|
@@ -4,7 +4,6 @@ import { Router } from '@angular/router';
|
|
|
4
4
|
import { UtilityService } from '@bnsights/bbsf-utilities';
|
|
5
5
|
import { DataType } from '../../Shared/Enums/Enums';
|
|
6
6
|
import { PageHeaderOptions } from '../../Shared/Models/page-header-options';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
7
|
export declare class PageHeaderComponentComponent implements OnInit {
|
|
9
8
|
private router;
|
|
10
9
|
utilityService: UtilityService;
|
|
@@ -15,6 +14,4 @@ export declare class PageHeaderComponentComponent implements OnInit {
|
|
|
15
14
|
constructor(router: Router, utilityService: UtilityService);
|
|
16
15
|
translate(key: string): string;
|
|
17
16
|
ngOnInit(): void;
|
|
18
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PageHeaderComponentComponent, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PageHeaderComponentComponent, "bbsf-page-header-component", never, { "group": "group"; "options": "options"; }, {}, never, never>;
|
|
20
17
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bnsights/bbsf-controls",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.88",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "~12.2.12",
|
|
6
6
|
"@angular/core": "~12.2.12"
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"@angular/platform-browser": "~12.2.12",
|
|
22
22
|
"@angular/platform-browser-dynamic": "~12.2.12",
|
|
23
23
|
"@angular/router": "~12.2.12",
|
|
24
|
-
"@bnsights/bbsf-utilities": "1.0.
|
|
24
|
+
"@bnsights/bbsf-utilities": "1.0.33",
|
|
25
25
|
"@fortawesome/fontawesome-free": "^5.15.2",
|
|
26
26
|
"@fullcalendar/angular": "^5.5.0",
|
|
27
27
|
"@fullcalendar/core": "^5.5.0",
|
|
@@ -79,24 +79,12 @@
|
|
|
79
79
|
"tslib": "^2.0.0",
|
|
80
80
|
"zone.js": "~0.11.4"
|
|
81
81
|
},
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"fesm2015": "fesm2015/bnsights-bbsf-controls.
|
|
82
|
+
"main": "bundles/bnsights-bbsf-controls.umd.js",
|
|
83
|
+
"module": "fesm2015/bnsights-bbsf-controls.js",
|
|
84
|
+
"es2015": "fesm2015/bnsights-bbsf-controls.js",
|
|
85
|
+
"esm2015": "esm2015/bnsights-bbsf-controls.js",
|
|
86
|
+
"fesm2015": "fesm2015/bnsights-bbsf-controls.js",
|
|
87
87
|
"typings": "bnsights-bbsf-controls.d.ts",
|
|
88
|
-
"
|
|
89
|
-
"./package.json": {
|
|
90
|
-
"default": "./package.json"
|
|
91
|
-
},
|
|
92
|
-
".": {
|
|
93
|
-
"types": "./bnsights-bbsf-controls.d.ts",
|
|
94
|
-
"esm2020": "./esm2020/bnsights-bbsf-controls.mjs",
|
|
95
|
-
"es2020": "./fesm2020/bnsights-bbsf-controls.mjs",
|
|
96
|
-
"es2015": "./fesm2015/bnsights-bbsf-controls.mjs",
|
|
97
|
-
"node": "./fesm2015/bnsights-bbsf-controls.mjs",
|
|
98
|
-
"default": "./fesm2020/bnsights-bbsf-controls.mjs"
|
|
99
|
-
}
|
|
100
|
-
},
|
|
88
|
+
"metadata": "bnsights-bbsf-controls.metadata.json",
|
|
101
89
|
"sideEffects": false
|
|
102
90
|
}
|
|
Binary file
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm5zaWdodHMtYmJzZi1jb250cm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2Juc2lnaHRzLWJic2YtY29udHJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class NgTemplateNameDirective {
|
|
4
|
-
constructor(template) {
|
|
5
|
-
this.template = template;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
NgTemplateNameDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NgTemplateNameDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
-
NgTemplateNameDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: NgTemplateNameDirective, selector: "ng-template[name]", inputs: { name: "name" }, ngImport: i0 });
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NgTemplateNameDirective, decorators: [{
|
|
11
|
-
type: Directive,
|
|
12
|
-
args: [{
|
|
13
|
-
selector: 'ng-template[name]'
|
|
14
|
-
}]
|
|
15
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { name: [{
|
|
16
|
-
type: Input
|
|
17
|
-
}] } });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbmFtZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvU2hhcmVkL0RpcmVjdGl2ZXMvdGVtcGxhdGUtbmFtZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7O0FBSzlELE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBbUIsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFBSSxDQUFDOztxSEFIdkMsdUJBQXVCO3lHQUF2Qix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFIbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2lCQUM5QjtrR0FFVSxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtuYW1lXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nVGVtcGxhdGVOYW1lRGlyZWN0aXZlIHtcclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PikgeyB9XHJcbn0iXX0=
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
export class BBSFDateTimePipe {
|
|
5
|
-
constructor(datePipe) {
|
|
6
|
-
this.datePipe = datePipe;
|
|
7
|
-
}
|
|
8
|
-
transform(value) {
|
|
9
|
-
let latest_date = this.datePipe.transform(value, 'dd/MM/yyyy hh:mm a');
|
|
10
|
-
return latest_date;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
BBSFDateTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFDateTimePipe, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
14
|
-
BBSFDateTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFDateTimePipe, name: "bbsfDateTime" });
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFDateTimePipe, decorators: [{
|
|
16
|
-
type: Pipe,
|
|
17
|
-
args: [{
|
|
18
|
-
name: 'bbsfDateTime'
|
|
19
|
-
}]
|
|
20
|
-
}], ctorParameters: function () { return [{ type: i1.DatePipe }]; } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi1kYXRlLXRpbWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9zaGFyZWQvUGlwZXMvYmJzZi1kYXRlLXRpbWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBS3BELE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBbUIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFJLENBQUM7SUFDMUMsU0FBUyxDQUFDLEtBQVc7UUFDbkIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDdkUsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7OEdBTlUsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFINUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnYmJzZkRhdGVUaW1lJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQkJTRkRhdGVUaW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZVBpcGU6IERhdGVQaXBlKSB7IH1cclxuICB0cmFuc2Zvcm0odmFsdWU6IERhdGUpIHtcclxuICAgIGxldCBsYXRlc3RfZGF0ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnZGQvTU0veXl5eSBoaDptbSBhJyk7XHJcbiAgICByZXR1cm4gbGF0ZXN0X2RhdGU7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
export class BBSFDatePipe {
|
|
5
|
-
constructor(datePipe) {
|
|
6
|
-
this.datePipe = datePipe;
|
|
7
|
-
}
|
|
8
|
-
transform(value) {
|
|
9
|
-
let latest_date = this.datePipe.transform(value, 'dd/MM/yyyy');
|
|
10
|
-
return latest_date;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
BBSFDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFDatePipe, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
14
|
-
BBSFDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFDatePipe, name: "bbsfDate" });
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFDatePipe, decorators: [{
|
|
16
|
-
type: Pipe,
|
|
17
|
-
args: [{
|
|
18
|
-
name: 'bbsfDate'
|
|
19
|
-
}]
|
|
20
|
-
}], ctorParameters: function () { return [{ type: i1.DatePipe }]; } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi1kYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvc2hhcmVkL1BpcGVzL2Jic2YtZGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFLcEQsTUFBTSxPQUFPLFlBQVk7SUFFdkIsWUFBbUIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFFLENBQUM7SUFDeEMsU0FBUyxDQUFDLEtBQVc7UUFDbkIsSUFBSSxXQUFXLEdBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7OzBHQU5VLFlBQVk7d0dBQVosWUFBWTs0RkFBWixZQUFZO2tCQUh4QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxVQUFVO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdiYnNmRGF0ZSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJCU0ZEYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZVBpcGU6IERhdGVQaXBlKXt9XHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBEYXRlKSB7XHJcbiAgICBsZXQgbGF0ZXN0X2RhdGUgPXRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnZGQvTU0veXl5eScpO1xyXG4gICAgcmV0dXJuIGxhdGVzdF9kYXRlO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Title } from '@angular/platform-browser';
|
|
3
|
-
import { UtilityService, AuthService, ConfigurationService, } from '@bnsights/bbsf-utilities';
|
|
4
|
-
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
-
import { ControlUtility } from '../services/ControlUtility';
|
|
6
|
-
import { CustomValidation } from '../Models/CustomValidation';
|
|
7
|
-
import * as saveAs from 'file-saver';
|
|
8
|
-
import { EnvironmentService } from '@bnsights/bbsf-utilities';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class AppBaseComponent {
|
|
11
|
-
constructor(injector) {
|
|
12
|
-
this.pageTitle = '';
|
|
13
|
-
this.PageCount = 12;
|
|
14
|
-
this.onSuccessAddHandler = (success) => {
|
|
15
|
-
this.utilityService.notifySuccessMessage(this.l('RecordAdded'), null, null, false);
|
|
16
|
-
};
|
|
17
|
-
this.onSuccessEditHandler = (success) => {
|
|
18
|
-
this.utilityService.notifySuccessMessage(this.l('RecordUpdated'), null, null, false);
|
|
19
|
-
};
|
|
20
|
-
this.onSuccessDeleteHandler = (success) => {
|
|
21
|
-
this.utilityService.notifySuccessMessage(this.l('RecordDeleted'), null, null, false);
|
|
22
|
-
};
|
|
23
|
-
this.utilityService = injector.get(UtilityService);
|
|
24
|
-
this.controlUtility = injector.get(ControlUtility);
|
|
25
|
-
this.configurationService = injector.get(ConfigurationService);
|
|
26
|
-
this.environmentService = injector.get(EnvironmentService);
|
|
27
|
-
this.modalService = injector.get(NgbModal);
|
|
28
|
-
this.titleService = injector.get(Title);
|
|
29
|
-
this.auhService = injector.get(AuthService);
|
|
30
|
-
this.exportLabel = this.utilityService.getResourceValue('Export');
|
|
31
|
-
this.filtersLabel = this.utilityService.getResourceValue('Filters');
|
|
32
|
-
this.addLabel = this.utilityService.getResourceValue('Add');
|
|
33
|
-
this.userName = this.auhService.name();
|
|
34
|
-
this.isEN = this.utilityService.isCurrentLanguageEnglish();
|
|
35
|
-
}
|
|
36
|
-
updatePageTitle(title) {
|
|
37
|
-
this.titleService.setTitle(this.calculatePageTitle(title));
|
|
38
|
-
}
|
|
39
|
-
l(key) {
|
|
40
|
-
return this.utilityService.getResourceValue(key);
|
|
41
|
-
}
|
|
42
|
-
getConfigurationValue(key) {
|
|
43
|
-
return this.configurationService.getConfigurationValue(key);
|
|
44
|
-
}
|
|
45
|
-
getLanguageModeValue() {
|
|
46
|
-
return this.configurationService.getConfigurationValue('LanguageMode');
|
|
47
|
-
}
|
|
48
|
-
stopBlockUI() {
|
|
49
|
-
this.utilityService.stopBlockUI();
|
|
50
|
-
}
|
|
51
|
-
startBlockUI() {
|
|
52
|
-
this.utilityService.startBlockUI();
|
|
53
|
-
}
|
|
54
|
-
openModal(modal, size) {
|
|
55
|
-
if (size)
|
|
56
|
-
this.modalService.open(modal, {
|
|
57
|
-
size: size,
|
|
58
|
-
backdrop: 'static',
|
|
59
|
-
keyboard: false,
|
|
60
|
-
});
|
|
61
|
-
else
|
|
62
|
-
this.modalService.open(modal, { backdrop: 'static', keyboard: false });
|
|
63
|
-
}
|
|
64
|
-
download(fileDTO, fileName) {
|
|
65
|
-
/*let blob = new Blob([file]);*/
|
|
66
|
-
let file = new Blob([fileDTO], {
|
|
67
|
-
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
68
|
-
});
|
|
69
|
-
saveAs(file, fileName);
|
|
70
|
-
}
|
|
71
|
-
downloadPDF(fileDTO, fileName) {
|
|
72
|
-
let file = new Blob([fileDTO], { type: "application/pdf" });
|
|
73
|
-
saveAs(file, fileName);
|
|
74
|
-
}
|
|
75
|
-
base64toBlob(base64Data, contentType) {
|
|
76
|
-
contentType = contentType || '';
|
|
77
|
-
var sliceSize = 1024;
|
|
78
|
-
var byteCharacters = atob(base64Data);
|
|
79
|
-
var bytesLength = byteCharacters.length;
|
|
80
|
-
var slicesCount = Math.ceil(bytesLength / sliceSize);
|
|
81
|
-
var byteArrays = new Array(slicesCount);
|
|
82
|
-
for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
|
|
83
|
-
var begin = sliceIndex * sliceSize;
|
|
84
|
-
var end = Math.min(begin + sliceSize, bytesLength);
|
|
85
|
-
var bytes = new Array(end - begin);
|
|
86
|
-
for (var offset = begin, i = 0; offset < end; ++i, ++offset) {
|
|
87
|
-
bytes[i] = byteCharacters[offset].charCodeAt(0);
|
|
88
|
-
}
|
|
89
|
-
byteArrays[sliceIndex] = new Uint8Array(bytes);
|
|
90
|
-
}
|
|
91
|
-
return new Blob(byteArrays, { type: contentType });
|
|
92
|
-
}
|
|
93
|
-
calculatePageTitle(title) {
|
|
94
|
-
return title
|
|
95
|
-
? title.substring(0, 100) + ` | ${this.l('ApplicationName')}`
|
|
96
|
-
: `${this.l('ApplicationName')}`;
|
|
97
|
-
}
|
|
98
|
-
getPagingFiltersValues(form, filters) {
|
|
99
|
-
let model = new Object();
|
|
100
|
-
for (var i = 0; i < filters.length; i++) {
|
|
101
|
-
let filterItem = filters[i];
|
|
102
|
-
if (form.controls[filterItem.FormControlName].value == undefined)
|
|
103
|
-
continue;
|
|
104
|
-
model[filterItem.ActionParameterName] =
|
|
105
|
-
form.controls[filterItem.FormControlName].value == undefined
|
|
106
|
-
? ''
|
|
107
|
-
: form.controls[filterItem.FormControlName].value;
|
|
108
|
-
// params = params.append(filterItem.ActionParameterName, form.controls[filterItem.FormControlName].value == undefined ? '' : form.controls[filterItem.FormControlName].value);
|
|
109
|
-
}
|
|
110
|
-
return model;
|
|
111
|
-
}
|
|
112
|
-
removeControl(controlName, form) {
|
|
113
|
-
form.removeControl(controlName);
|
|
114
|
-
}
|
|
115
|
-
copyToClipboard(val) {
|
|
116
|
-
const selBox = document.createElement('textarea');
|
|
117
|
-
selBox.style.position = 'fixed';
|
|
118
|
-
selBox.style.left = '0';
|
|
119
|
-
selBox.style.top = '0';
|
|
120
|
-
selBox.style.opacity = '0';
|
|
121
|
-
selBox.value = val;
|
|
122
|
-
document.body.appendChild(selBox);
|
|
123
|
-
selBox.focus();
|
|
124
|
-
selBox.select();
|
|
125
|
-
document.execCommand('copy');
|
|
126
|
-
document.body.removeChild(selBox);
|
|
127
|
-
this.utilityService.notifySuccessMessage(this.l('CopiedSuccessfully'));
|
|
128
|
-
}
|
|
129
|
-
addRequiredRule(control, controlOptions) {
|
|
130
|
-
this.controlUtility.addRequiredToControl(control, controlOptions);
|
|
131
|
-
}
|
|
132
|
-
removeRequiredRule(control, controlOptions) {
|
|
133
|
-
this.controlUtility.removeRequiredFromControl(control, controlOptions);
|
|
134
|
-
}
|
|
135
|
-
validateDates(form, fromDateControl, toDateControl, validationMessageKey) {
|
|
136
|
-
var validator = new CustomValidation();
|
|
137
|
-
validator.functionBody = (control) => {
|
|
138
|
-
let fromDate = form.controls[fromDateControl].value;
|
|
139
|
-
let toDate = form.controls[toDateControl].value;
|
|
140
|
-
if (fromDate && toDate && toDate <= fromDate)
|
|
141
|
-
return { customerError: true };
|
|
142
|
-
return null;
|
|
143
|
-
};
|
|
144
|
-
validator.massage = this.l(validationMessageKey);
|
|
145
|
-
return validator;
|
|
146
|
-
}
|
|
147
|
-
recalculatePageTitle() {
|
|
148
|
-
this.titleService.setTitle(this.calculatePageTitle(''));
|
|
149
|
-
}
|
|
150
|
-
isEnglish() {
|
|
151
|
-
return this.utilityService.isCurrentLanguageEnglish();
|
|
152
|
-
}
|
|
153
|
-
calculateInitials(name) {
|
|
154
|
-
let language = localStorage.getItem('language');
|
|
155
|
-
let currentUser = this.auhService.user.profile;
|
|
156
|
-
console.log(currentUser);
|
|
157
|
-
let userName = language == 'en' ? currentUser.given_nameEn : currentUser.given_nameAr;
|
|
158
|
-
if (currentUser) {
|
|
159
|
-
let fullName = userName.split(' ');
|
|
160
|
-
let initials;
|
|
161
|
-
if (fullName.length > 1) {
|
|
162
|
-
if (this.isEN)
|
|
163
|
-
initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);
|
|
164
|
-
else
|
|
165
|
-
initials =
|
|
166
|
-
fullName.shift().charAt(0) + ' ' + fullName.pop().charAt(0);
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
initials = fullName.pop().charAt(0);
|
|
170
|
-
}
|
|
171
|
-
return initials.toUpperCase();
|
|
172
|
-
}
|
|
173
|
-
return '';
|
|
174
|
-
}
|
|
175
|
-
getCurrentUserInitials() {
|
|
176
|
-
return this.calculateInitials(this.auhService.name());
|
|
177
|
-
}
|
|
178
|
-
getCurrentFailOver(val) {
|
|
179
|
-
if (this.isEnglish()) {
|
|
180
|
-
if (val.English)
|
|
181
|
-
return val.English;
|
|
182
|
-
else
|
|
183
|
-
return val.Arabic;
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
if (val.Arabic)
|
|
187
|
-
return val.Arabic;
|
|
188
|
-
else
|
|
189
|
-
return val.English;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
AppBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AppBaseComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
194
|
-
AppBaseComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AppBaseComponent });
|
|
195
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AppBaseComponent, decorators: [{
|
|
196
|
-
type: Injectable
|
|
197
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhc2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL1NoYXJlZC9Db21wb25lbnRzL2FwcC1iYXNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxvQkFBb0IsR0FDckIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sS0FBSyxNQUFNLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUc5RCxNQUFNLE9BQWdCLGdCQUFnQjtJQWdCcEMsWUFBWSxRQUFrQjtRQUZ2QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFvSjlCLHdCQUFtQixHQUFHLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FDdEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFDckIsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLENBQ04sQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLHlCQUFvQixHQUFHLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FDdEMsSUFBSSxDQUFDLENBQUMsQ0FB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RCxrQkFBa0IsQ0FBQyxHQUFxQjtRQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixJQUFJLEdBQUcsQ0FBQyxPQUFPO2dCQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQzs7Z0JBQy9CLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQztTQUN4QjthQUFNO1lBQ0wsSUFBSSxHQUFHLENBQUMsTUFBTTtnQkFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUM7O2dCQUM3QixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUM7U0FDekI7SUFDSCxDQUFDOzs4R0F6T21CLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQge1xyXG4gIFV0aWxpdHlTZXJ2aWNlLFxyXG4gIEF1dGhTZXJ2aWNlLFxyXG4gIENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi9zZXJ2aWNlcy9Db250cm9sVXRpbGl0eSc7XHJcbmltcG9ydCB7IEZpbHRlckl0ZW0gfSBmcm9tICcuLi9Nb2RlbHMvRmlsdGVySXRlbSc7XHJcbmltcG9ydCB7IEN1c3RvbVZhbGlkYXRpb24gfSBmcm9tICcuLi9Nb2RlbHMvQ3VzdG9tVmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IEVuZ2xpc2hBcmFiaWNEVE8gfSBmcm9tICcuLi9Nb2RlbHMvRW5nbGlzaEFyYWJpY0RUTyc7XHJcbmltcG9ydCAqIGFzIHNhdmVBcyBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFwcEJhc2VDb21wb25lbnQge1xyXG4gIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2U7XHJcbiAgcHVibGljIG1vZGFsU2VydmljZTogTmdiTW9kYWw7XHJcbiAgcHJpdmF0ZSBjb250cm9sVXRpbGl0eTogQ29udHJvbFV0aWxpdHk7XHJcbiAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFRpdGxlO1xyXG4gIHByaXZhdGUgYXVoU2VydmljZTogQXV0aFNlcnZpY2U7XHJcbiAgcHJpdmF0ZSBjb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2U7XHJcbiAgcHVibGljIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlO1xyXG4gIHB1YmxpYyBpc0VOOiBib29sZWFuO1xyXG4gIC8vTGFiZWxzXHJcbiAgcHVibGljIGV4cG9ydExhYmVsOiBzdHJpbmc7XHJcbiAgcHVibGljIGZpbHRlcnNMYWJlbDogc3RyaW5nO1xyXG4gIHB1YmxpYyBhZGRMYWJlbDogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBwYWdlVGl0bGU6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBQYWdlQ291bnQ6IG51bWJlciA9IDEyO1xyXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZSA9IGluamVjdG9yLmdldChVdGlsaXR5U2VydmljZSk7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5ID0gaW5qZWN0b3IuZ2V0KENvbnRyb2xVdGlsaXR5KTtcclxuICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQ29uZmlndXJhdGlvblNlcnZpY2UpO1xyXG4gICAgdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE5nYk1vZGFsKTtcclxuICAgIHRoaXMudGl0bGVTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFRpdGxlKTtcclxuICAgIHRoaXMuYXVoU2VydmljZSA9IGluamVjdG9yLmdldChBdXRoU2VydmljZSk7XHJcbiAgICB0aGlzLmV4cG9ydExhYmVsID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdFeHBvcnQnKTtcclxuICAgIHRoaXMuZmlsdGVyc0xhYmVsID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdGaWx0ZXJzJyk7XHJcbiAgICB0aGlzLmFkZExhYmVsID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdBZGQnKTtcclxuICAgIHRoaXMudXNlck5hbWUgPSB0aGlzLmF1aFNlcnZpY2UubmFtZSgpO1xyXG4gICAgdGhpcy5pc0VOID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUVuZ2xpc2goKTtcclxuICB9XHJcbiAgdXBkYXRlUGFnZVRpdGxlKHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRoaXMuY2FsY3VsYXRlUGFnZVRpdGxlKHRpdGxlKSk7XHJcbiAgfVxyXG5cclxuICBsKGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoa2V5KTtcclxuICB9XHJcbiAgZ2V0Q29uZmlndXJhdGlvblZhbHVlKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5nZXRDb25maWd1cmF0aW9uVmFsdWUoa2V5KTtcclxuICB9XHJcbiAgZ2V0TGFuZ3VhZ2VNb2RlVmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5nZXRDb25maWd1cmF0aW9uVmFsdWUoJ0xhbmd1YWdlTW9kZScpO1xyXG4gIH1cclxuICBzdG9wQmxvY2tVSSgpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0QmxvY2tVSSgpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuTW9kYWwobW9kYWw6IGFueSwgc2l6ZT86IHN0cmluZykge1xyXG4gICAgaWYgKHNpemUpXHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4obW9kYWwsIHtcclxuICAgICAgICBzaXplOiBzaXplLFxyXG4gICAgICAgIGJhY2tkcm9wOiAnc3RhdGljJyxcclxuICAgICAgICBrZXlib2FyZDogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgZWxzZSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKG1vZGFsLCB7IGJhY2tkcm9wOiAnc3RhdGljJywga2V5Ym9hcmQ6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWQoZmlsZURUTzogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAvKmxldCBibG9iID0gbmV3IEJsb2IoW2ZpbGVdKTsqL1xyXG4gICAgbGV0IGZpbGUgPSBuZXcgQmxvYihbZmlsZURUT10sIHtcclxuICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcclxuICAgIH0pO1xyXG4gICAgc2F2ZUFzKGZpbGUsIGZpbGVOYW1lKTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkUERGKGZpbGVEVE86IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgbGV0IGZpbGUgPSBuZXcgQmxvYihbZmlsZURUT10sIHsgdHlwZTogXCJhcHBsaWNhdGlvbi9wZGZcIiB9KTtcclxuICAgIHNhdmVBcyhmaWxlLCBmaWxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJhc2U2NHRvQmxvYihiYXNlNjREYXRhLCBjb250ZW50VHlwZSkge1xyXG4gICAgY29udGVudFR5cGUgPSBjb250ZW50VHlwZSB8fCAnJztcclxuICAgIHZhciBzbGljZVNpemUgPSAxMDI0O1xyXG4gICAgdmFyIGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiYXNlNjREYXRhKTtcclxuICAgIHZhciBieXRlc0xlbmd0aCA9IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDtcclxuICAgIHZhciBzbGljZXNDb3VudCA9IE1hdGguY2VpbChieXRlc0xlbmd0aCAvIHNsaWNlU2l6ZSk7XHJcbiAgICB2YXIgYnl0ZUFycmF5cyA9IG5ldyBBcnJheShzbGljZXNDb3VudCk7XHJcblxyXG4gICAgZm9yICh2YXIgc2xpY2VJbmRleCA9IDA7IHNsaWNlSW5kZXggPCBzbGljZXNDb3VudDsgKytzbGljZUluZGV4KSB7XHJcbiAgICAgIHZhciBiZWdpbiA9IHNsaWNlSW5kZXggKiBzbGljZVNpemU7XHJcbiAgICAgIHZhciBlbmQgPSBNYXRoLm1pbihiZWdpbiArIHNsaWNlU2l6ZSwgYnl0ZXNMZW5ndGgpO1xyXG5cclxuICAgICAgdmFyIGJ5dGVzID0gbmV3IEFycmF5KGVuZCAtIGJlZ2luKTtcclxuICAgICAgZm9yICh2YXIgb2Zmc2V0ID0gYmVnaW4sIGkgPSAwOyBvZmZzZXQgPCBlbmQ7ICsraSwgKytvZmZzZXQpIHtcclxuICAgICAgICBieXRlc1tpXSA9IGJ5dGVDaGFyYWN0ZXJzW29mZnNldF0uY2hhckNvZGVBdCgwKTtcclxuICAgICAgfVxyXG4gICAgICBieXRlQXJyYXlzW3NsaWNlSW5kZXhdID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZXMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudFR5cGUgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZVBhZ2VUaXRsZSh0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aXRsZVxyXG4gICAgICA/IHRpdGxlLnN1YnN0cmluZygwLCAxMDApICsgYCB8ICR7dGhpcy5sKCdBcHBsaWNhdGlvbk5hbWUnKX1gXHJcbiAgICAgIDogYCR7dGhpcy5sKCdBcHBsaWNhdGlvbk5hbWUnKX1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFnaW5nRmlsdGVyc1ZhbHVlcyhmb3JtOiBGb3JtR3JvdXAsIGZpbHRlcnM6IEZpbHRlckl0ZW1bXSk6IGFueSB7XHJcbiAgICBsZXQgbW9kZWwgPSBuZXcgT2JqZWN0KCk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbHRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGZpbHRlckl0ZW0gPSBmaWx0ZXJzW2ldO1xyXG4gICAgICBpZiAoZm9ybS5jb250cm9sc1tmaWx0ZXJJdGVtLkZvcm1Db250cm9sTmFtZV0udmFsdWUgPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICBtb2RlbFtmaWx0ZXJJdGVtLkFjdGlvblBhcmFtZXRlck5hbWVdID1cclxuICAgICAgICBmb3JtLmNvbnRyb2xzW2ZpbHRlckl0ZW0uRm9ybUNvbnRyb2xOYW1lXS52YWx1ZSA9PSB1bmRlZmluZWRcclxuICAgICAgICAgID8gJydcclxuICAgICAgICAgIDogZm9ybS5jb250cm9sc1tmaWx0ZXJJdGVtLkZvcm1Db250cm9sTmFtZV0udmFsdWU7XHJcbiAgICAgIC8vIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZmlsdGVySXRlbS5BY3Rpb25QYXJhbWV0ZXJOYW1lLCBmb3JtLmNvbnRyb2xzW2ZpbHRlckl0ZW0uRm9ybUNvbnRyb2xOYW1lXS52YWx1ZSA9PSB1bmRlZmluZWQgPyAnJyA6IGZvcm0uY29udHJvbHNbZmlsdGVySXRlbS5Gb3JtQ29udHJvbE5hbWVdLnZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBtb2RlbDtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNvbnRyb2woY29udHJvbE5hbWU6IHN0cmluZywgZm9ybTogRm9ybUdyb3VwKSB7XHJcbiAgICBmb3JtLnJlbW92ZUNvbnRyb2woY29udHJvbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgY29weVRvQ2xpcGJvYXJkKHZhbDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzZWxCb3ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xyXG4gICAgc2VsQm94LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcclxuICAgIHNlbEJveC5zdHlsZS5sZWZ0ID0gJzAnO1xyXG4gICAgc2VsQm94LnN0eWxlLnRvcCA9ICcwJztcclxuICAgIHNlbEJveC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xyXG4gICAgc2VsQm94LnZhbHVlID0gdmFsO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzZWxCb3gpO1xyXG4gICAgc2VsQm94LmZvY3VzKCk7XHJcbiAgICBzZWxCb3guc2VsZWN0KCk7XHJcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzZWxCb3gpO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoJ0NvcGllZFN1Y2Nlc3NmdWxseScpKTtcclxuICB9XHJcblxyXG4gIGFkZFJlcXVpcmVkUnVsZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGNvbnRyb2xPcHRpb25zOiBhbnkpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuYWRkUmVxdWlyZWRUb0NvbnRyb2woY29udHJvbCwgY29udHJvbE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlUmVxdWlyZWRSdWxlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgY29udHJvbE9wdGlvbnM6IGFueSkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5yZW1vdmVSZXF1aXJlZEZyb21Db250cm9sKGNvbnRyb2wsIGNvbnRyb2xPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRGF0ZXMoXHJcbiAgICBmb3JtOiBGb3JtR3JvdXAsXHJcbiAgICBmcm9tRGF0ZUNvbnRyb2w6IHN0cmluZyxcclxuICAgIHRvRGF0ZUNvbnRyb2w6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlS2V5OiBzdHJpbmdcclxuICApOiBDdXN0b21WYWxpZGF0aW9uIHtcclxuICAgIHZhciB2YWxpZGF0b3IgPSBuZXcgQ3VzdG9tVmFsaWRhdGlvbigpO1xyXG4gICAgdmFsaWRhdG9yLmZ1bmN0aW9uQm9keSA9IChjb250cm9sKSA9PiB7XHJcbiAgICAgIGxldCBmcm9tRGF0ZSA9IGZvcm0uY29udHJvbHNbZnJvbURhdGVDb250cm9sXS52YWx1ZTtcclxuICAgICAgbGV0IHRvRGF0ZSA9IGZvcm0uY29udHJvbHNbdG9EYXRlQ29udHJvbF0udmFsdWU7XHJcblxyXG4gICAgICBpZiAoZnJvbURhdGUgJiYgdG9EYXRlICYmIHRvRGF0ZSA8PSBmcm9tRGF0ZSlcclxuICAgICAgICByZXR1cm4geyBjdXN0b21lckVycm9yOiB0cnVlIH07XHJcblxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgICB2YWxpZGF0b3IubWFzc2FnZSA9IHRoaXMubCh2YWxpZGF0aW9uTWVzc2FnZUtleSk7XHJcbiAgICByZXR1cm4gdmFsaWRhdG9yO1xyXG4gIH1cclxuXHJcbiAgb25TdWNjZXNzQWRkSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UoXHJcbiAgICAgIHRoaXMubCgnUmVjb3JkQWRkZWQnKSxcclxuICAgICAgbnVsbCxcclxuICAgICAgbnVsbCxcclxuICAgICAgZmFsc2VcclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgb25TdWNjZXNzRWRpdEhhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKFxyXG4gICAgICB0aGlzLmwoJ1JlY29yZFVwZGF0ZWQnKSxcclxuICAgICAgbnVsbCxcclxuICAgICAgbnVsbCxcclxuICAgICAgZmFsc2VcclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgb25TdWNjZXNzRGVsZXRlSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UoXHJcbiAgICAgIHRoaXMubCgnUmVjb3JkRGVsZXRlZCcpLFxyXG4gICAgICBudWxsLFxyXG4gICAgICBudWxsLFxyXG4gICAgICBmYWxzZVxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICByZWNhbGN1bGF0ZVBhZ2VUaXRsZSgpIHtcclxuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRoaXMuY2FsY3VsYXRlUGFnZVRpdGxlKCcnKSk7XHJcbiAgfVxyXG5cclxuICBpc0VuZ2xpc2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUVuZ2xpc2goKTtcclxuICB9XHJcblxyXG4gIGNhbGN1bGF0ZUluaXRpYWxzKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgbGFuZ3VhZ2UgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKTtcclxuICAgIGxldCBjdXJyZW50VXNlciA9IHRoaXMuYXVoU2VydmljZS51c2VyLnByb2ZpbGU7XHJcbiAgICBjb25zb2xlLmxvZyhjdXJyZW50VXNlcik7XHJcbiAgICBsZXQgdXNlck5hbWUgPVxyXG4gICAgICBsYW5ndWFnZSA9PSAnZW4nID8gY3VycmVudFVzZXIuZ2l2ZW5fbmFtZUVuIDogY3VycmVudFVzZXIuZ2l2ZW5fbmFtZUFyO1xyXG4gICAgaWYgKGN1cnJlbnRVc2VyKSB7XHJcbiAgICAgIGxldCBmdWxsTmFtZSA9IHVzZXJOYW1lLnNwbGl0KCcgJyk7XHJcbiAgICAgIGxldCBpbml0aWFsczogc3RyaW5nO1xyXG4gICAgICBpZiAoZnVsbE5hbWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzRU4pXHJcbiAgICAgICAgICBpbml0aWFscyA9IGZ1bGxOYW1lLnNoaWZ0KCkuY2hhckF0KDApICsgZnVsbE5hbWUucG9wKCkuY2hhckF0KDApO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIGluaXRpYWxzID1cclxuICAgICAgICAgICAgZnVsbE5hbWUuc2hpZnQoKS5jaGFyQXQoMCkgKyAnICcgKyBmdWxsTmFtZS5wb3AoKS5jaGFyQXQoMCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5pdGlhbHMgPSBmdWxsTmFtZS5wb3AoKS5jaGFyQXQoMCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGluaXRpYWxzLnRvVXBwZXJDYXNlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50VXNlckluaXRpYWxzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVJbml0aWFscyh0aGlzLmF1aFNlcnZpY2UubmFtZSgpKTtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRGYWlsT3Zlcih2YWw6IEVuZ2xpc2hBcmFiaWNEVE8pOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuaXNFbmdsaXNoKCkpIHtcclxuICAgICAgaWYgKHZhbC5FbmdsaXNoKSByZXR1cm4gdmFsLkVuZ2xpc2g7XHJcbiAgICAgIGVsc2UgcmV0dXJuIHZhbC5BcmFiaWM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodmFsLkFyYWJpYykgcmV0dXJuIHZhbC5BcmFiaWM7XHJcbiAgICAgIGVsc2UgcmV0dXJuIHZhbC5FbmdsaXNoO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|