@bnsights/bbsf-controls 1.0.111 → 1.0.112
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 +4 -0
- package/esm2022/lib/Shared/Components/app-base-component.mjs +7 -7
- package/esm2022/lib/Shared/Enums/StartView.mjs +1 -1
- package/esm2022/lib/Shared/Enums/map-enums.mjs +7 -7
- package/esm2022/lib/Shared/Models/AutocompleteOptions.mjs +9 -9
- package/esm2022/lib/Shared/Models/CalendarOptions.mjs +7 -7
- package/esm2022/lib/Shared/Models/CheckBoxOptions.mjs +3 -3
- package/esm2022/lib/Shared/Models/ConfirmationModalOptions.mjs +16 -16
- package/esm2022/lib/Shared/Models/ControlOptionsBase.mjs +5 -5
- package/esm2022/lib/Shared/Models/DatePickerOptions.mjs +24 -0
- package/esm2022/lib/Shared/Models/DropdownOptions.mjs +6 -6
- package/esm2022/lib/Shared/Models/EnglishArabicDTO.mjs +3 -3
- package/esm2022/lib/Shared/Models/FileUploadModel.mjs +1 -1
- package/esm2022/lib/Shared/Models/FileUploadOptions.mjs +3 -3
- package/esm2022/lib/Shared/Models/FormOptions.mjs +13 -13
- package/esm2022/lib/Shared/Models/HtmlEditorOptions.mjs +3 -3
- package/esm2022/lib/Shared/Models/ImageUploadOptions.mjs +4 -4
- package/esm2022/lib/Shared/Models/MapAutoCompleteOptions.mjs +1 -3
- package/esm2022/lib/Shared/Models/MapAutocompleteDTO.mjs +2 -2
- package/esm2022/lib/Shared/Models/MultiLingualHtmlEditorOptions.mjs +2 -2
- package/esm2022/lib/Shared/Models/MultiLingualTextAreaOptions.mjs +2 -2
- package/esm2022/lib/Shared/Models/{MultilingualTextBoxOptions.mjs → MultiLingualTextBoxOptions.mjs} +5 -5
- package/esm2022/lib/Shared/Models/MultilingualControlOptionsBase.mjs +6 -6
- package/esm2022/lib/Shared/Models/MultipleFileUploadModel.mjs +5 -5
- package/esm2022/lib/Shared/Models/PagingOptions.mjs +22 -22
- package/esm2022/lib/Shared/Models/PhoneOptions.mjs +4 -4
- package/esm2022/lib/Shared/Models/ProfileImageUploadOptions.mjs +3 -3
- package/esm2022/lib/Shared/Models/ProfilePictureDTO.mjs +1 -1
- package/esm2022/lib/Shared/Models/RadioButtonItem.mjs +1 -1
- package/esm2022/lib/Shared/Models/RadioButtonOptions.mjs +1 -1
- package/esm2022/lib/Shared/Models/RangeNumber.mjs +1 -1
- package/esm2022/lib/Shared/Models/Recaptcha.mjs +2 -2
- package/esm2022/lib/Shared/Models/RecaptchaOptions.mjs +9 -9
- package/esm2022/lib/Shared/Models/RepeaterField.mjs +1 -1
- package/esm2022/lib/Shared/Models/RepeaterOptions.mjs +9 -9
- package/esm2022/lib/Shared/Models/TagsInputDTO.mjs +1 -1
- package/esm2022/lib/Shared/Models/TagsInputOptions.mjs +19 -19
- package/esm2022/lib/Shared/Models/TextAreaOptions.mjs +1 -1
- package/esm2022/lib/Shared/Models/TextBoxOptions.mjs +9 -9
- package/esm2022/lib/Shared/Models/{ToggleslideOptions.mjs → ToggleSlideOptions.mjs} +2 -2
- package/esm2022/lib/Shared/Models/filter-options.mjs +5 -5
- package/esm2022/lib/Shared/Models/page-header-options.mjs +32 -32
- package/esm2022/lib/Shared/services/ControlUtility.mjs +37 -37
- package/esm2022/lib/Shared/services/GlobalSettings.service.mjs +9 -9
- package/esm2022/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +81 -81
- package/esm2022/lib/controls/Calendar/Calendar.component.mjs +40 -40
- package/esm2022/lib/controls/CheckBox/CheckBox.component.mjs +35 -35
- package/esm2022/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +30 -30
- package/esm2022/lib/controls/DateTimePicker/DateTimePicker.component.mjs +90 -97
- package/esm2022/lib/controls/DropdownList/DropdownList.component.mjs +74 -74
- package/esm2022/lib/controls/FileUplaod/FileUplaod.component.mjs +155 -155
- package/esm2022/lib/controls/Form/Form.component.mjs +24 -24
- package/esm2022/lib/controls/HtmlEditor/HtmlEditor.component.mjs +55 -55
- package/esm2022/lib/controls/ImageUpload/ImageUpload.component.mjs +113 -113
- package/esm2022/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +62 -66
- package/esm2022/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +163 -163
- package/esm2022/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +193 -193
- package/esm2022/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +210 -210
- package/esm2022/lib/controls/Paging/Paging.component.mjs +85 -85
- package/esm2022/lib/controls/Phone/Phone.component.mjs +42 -42
- package/esm2022/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +112 -112
- package/esm2022/lib/controls/RadioButton/RadioButton.component.mjs +38 -38
- package/esm2022/lib/controls/Recaptcha/Recaptcha.component.mjs +46 -46
- package/esm2022/lib/controls/Repeater/repeater/repeater.component.mjs +12 -12
- package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +556 -556
- package/esm2022/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +15 -15
- package/esm2022/lib/controls/TagsInput/TagsInput.component.mjs +100 -100
- package/esm2022/lib/controls/TextArea/TextArea.component.mjs +71 -71
- package/esm2022/lib/controls/TextBox/TextBox.component.mjs +116 -116
- package/esm2022/lib/controls/Toggleslide/Toggleslide.component.mjs +90 -0
- package/esm2022/lib/controls/bbsf-controls.module.mjs +2 -2
- package/esm2022/lib/controls/page-header-component/page-header-component.component.mjs +4 -4
- package/esm2022/public-api.mjs +7 -7
- package/fesm2022/bnsights-bbsf-controls.mjs +2801 -2813
- package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
- package/lib/Shared/Enums/map-enums.d.ts +1 -1
- package/lib/Shared/Models/AutocompleteOptions.d.ts +20 -20
- package/lib/Shared/Models/CalendarOptions.d.ts +10 -10
- package/lib/Shared/Models/CheckBoxOptions.d.ts +2 -2
- package/lib/Shared/Models/ConfirmationModalOptions.d.ts +14 -14
- package/lib/Shared/Models/ControlOptionsBase.d.ts +17 -17
- package/lib/Shared/Models/{datePickerOptions.d.ts → DatePickerOptions.d.ts} +12 -13
- package/lib/Shared/Models/DropdownOptions.d.ts +15 -15
- package/lib/Shared/Models/EnglishArabicDTO.d.ts +2 -2
- package/lib/Shared/Models/FileUploadModel.d.ts +1 -1
- package/lib/Shared/Models/FileUploadOptions.d.ts +8 -8
- package/lib/Shared/Models/FormOptions.d.ts +11 -11
- package/lib/Shared/Models/HtmlEditorOptions.d.ts +11 -11
- package/lib/Shared/Models/ImageUploadOptions.d.ts +9 -9
- package/lib/Shared/Models/MapAutoCompleteOptions.d.ts +1 -2
- package/lib/Shared/Models/MapAutocompleteDTO.d.ts +5 -5
- package/lib/Shared/Models/MultiLingualHtmlEditorOptions.d.ts +7 -7
- package/lib/Shared/Models/MultiLingualTextAreaOptions.d.ts +5 -5
- package/lib/Shared/Models/{MultilingualTextBoxOptions.d.ts → MultiLingualTextBoxOptions.d.ts} +6 -6
- package/lib/Shared/Models/MultilingualControlOptionsBase.d.ts +34 -34
- package/lib/Shared/Models/MultipleFileUploadModel.d.ts +4 -4
- package/lib/Shared/Models/PagingOptions.d.ts +25 -25
- package/lib/Shared/Models/PhoneOptions.d.ts +9 -9
- package/lib/Shared/Models/ProfileImageUploadOptions.d.ts +10 -10
- package/lib/Shared/Models/ProfilePictureDTO.d.ts +9 -9
- package/lib/Shared/Models/RadioButtonItem.d.ts +2 -2
- package/lib/Shared/Models/RadioButtonOptions.d.ts +2 -2
- package/lib/Shared/Models/RangeNumber.d.ts +2 -2
- package/lib/Shared/Models/Recaptcha.d.ts +4 -4
- package/lib/Shared/Models/RecaptchaOptions.d.ts +10 -10
- package/lib/Shared/Models/RepeaterField.d.ts +4 -4
- package/lib/Shared/Models/RepeaterOptions.d.ts +16 -16
- package/lib/Shared/Models/TagsInputDTO.d.ts +4 -4
- package/lib/Shared/Models/TagsInputOptions.d.ts +29 -29
- package/lib/Shared/Models/TextAreaOptions.d.ts +11 -11
- package/lib/Shared/Models/TextBoxOptions.d.ts +18 -18
- package/lib/Shared/Models/{ToggleslideOptions.d.ts → ToggleSlideOptions.d.ts} +3 -3
- package/lib/Shared/Models/filter-options.d.ts +4 -4
- package/lib/Shared/Models/page-header-options.d.ts +43 -43
- package/lib/Shared/services/ControlUtility.d.ts +8 -8
- package/lib/Shared/services/GlobalSettings.service.d.ts +8 -8
- package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +11 -11
- package/lib/controls/Calendar/Calendar.component.d.ts +7 -7
- package/lib/controls/CheckBox/CheckBox.component.d.ts +10 -10
- package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +20 -24
- package/lib/controls/DropdownList/DropdownList.component.d.ts +13 -13
- package/lib/controls/FileUplaod/FileUplaod.component.d.ts +11 -11
- package/lib/controls/Form/Form.component.d.ts +2 -2
- package/lib/controls/HtmlEditor/HtmlEditor.component.d.ts +12 -12
- package/lib/controls/ImageUpload/ImageUpload.component.d.ts +16 -16
- package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +6 -9
- package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +25 -25
- package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +24 -24
- package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +32 -32
- package/lib/controls/Paging/Paging.component.d.ts +9 -9
- package/lib/controls/Phone/Phone.component.d.ts +12 -12
- package/lib/controls/ProfileImageUploader/ProfileImageUploader.component.d.ts +18 -18
- package/lib/controls/RadioButton/RadioButton.component.d.ts +11 -11
- package/lib/controls/Recaptcha/Recaptcha.component.d.ts +10 -10
- package/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.d.ts +5 -5
- package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +1 -1
- package/lib/controls/TagsInput/TagsInput.component.d.ts +17 -17
- package/lib/controls/TextArea/TextArea.component.d.ts +14 -14
- package/lib/controls/TextBox/TextBox.component.d.ts +25 -25
- package/lib/controls/Toggleslide/{toggleslide.component.d.ts → Toggleslide.component.d.ts} +10 -10
- package/lib/controls/bbsf-controls.module.d.ts +1 -1
- package/package.json +3 -2
- package/public-api.d.ts +4 -4
- package/src/lib/assets/images/marker-pin.svg +4 -4
- package/esm2022/bnsights-test-test-controls.mjs +0 -5
- package/esm2022/lib/Shared/Models/datePickerOptions.mjs +0 -23
- package/esm2022/lib/controls/Toggleslide/toggleslide.component.mjs +0 -90
- package/fesm2022/bnsights-test-test-controls.mjs +0 -9164
- package/fesm2022/bnsights-test-test-controls.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bnsights-test-test-controls.mjs","sources":["../../../projects/bbsf-controls/src/lib/Shared/Enums/TagInputView.ts","../../../projects/bbsf-controls/src/lib/Shared/Components/ng-tag-input.ts","../../../projects/bbsf-controls/src/lib/Shared/Directives/template-name.directive.ts","../../../projects/bbsf-controls/src/lib/Shared/Pipes/bbsf-date-time.pipe.ts","../../../projects/bbsf-controls/src/lib/Shared/Pipes/bbsf-date.pipe.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/InputType.ts","../../../projects/bbsf-controls/src/lib/Shared/services/validationErrorMassage.service.ts","../../../projects/bbsf-controls/src/lib/Shared/services/ControlUtility.ts","../../../projects/bbsf-controls/src/lib/Shared/services/OnPagingFiltersChange.service.ts","../../../projects/bbsf-controls/src/lib/Shared/services/render-component-service.service.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/AutocompleteDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/ControlLayout.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/LanguageMode.ts","../../../projects/bbsf-controls/src/lib/Shared/services/GlobalSettings.service.ts","../../../projects/bbsf-controls/src/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.ts","../../../projects/bbsf-controls/src/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.html","../../../projects/bbsf-controls/src/lib/Shared/Enums/CalendarView.ts","../../../projects/bbsf-controls/src/lib/controls/Calendar/Calendar.component.ts","../../../projects/bbsf-controls/src/lib/controls/Calendar/Calendar.component.html","../../../projects/bbsf-controls/src/lib/controls/CheckBox/CheckBox.component.ts","../../../projects/bbsf-controls/src/lib/controls/CheckBox/CheckBox.component.html","../../../projects/bbsf-controls/src/lib/Shared/Enums/PagingActionMode.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/StyleConfirmationMode.ts","../../../projects/bbsf-controls/src/lib/controls/ConfirmationModal/ConfirmationModal.component.ts","../../../projects/bbsf-controls/src/lib/controls/ConfirmationModal/ConfirmationModal.component.html","../../../projects/bbsf-controls/src/lib/Shared/Enums/PickerType.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/StartView.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/SelectMode.ts","../../../projects/bbsf-controls/src/lib/Shared/default_intl.ts","../../../projects/bbsf-controls/src/lib/controls/DateTimePicker/DateTimePicker.component.ts","../../../projects/bbsf-controls/src/lib/controls/DateTimePicker/DateTimePicker.component.html","../../../projects/bbsf-controls/src/lib/Shared/Enums/ForceDirection.ts","../../../projects/bbsf-controls/src/lib/controls/DropdownList/DropdownList.component.ts","../../../projects/bbsf-controls/src/lib/controls/DropdownList/DropdownList.component.html","../../../projects/bbsf-controls/src/lib/Shared/Models/FileUploadModel.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultipleFileUploadModel.ts","../../../projects/bbsf-controls/src/lib/controls/FileUplaod/FileUplaod.component.ts","../../../projects/bbsf-controls/src/lib/controls/FileUplaod/FileUplaod.component.html","../../../projects/bbsf-controls/src/lib/controls/Form/Form.component.ts","../../../projects/bbsf-controls/src/lib/controls/Form/Form.component.html","../../../projects/bbsf-controls/src/lib/controls/HtmlEditor/HtmlEditor.component.ts","../../../projects/bbsf-controls/src/lib/controls/HtmlEditor/HtmlEditor.component.html","../../../projects/bbsf-controls/src/lib/controls/ImageUpload/ImageUpload.component.ts","../../../projects/bbsf-controls/src/lib/controls/ImageUpload/ImageUpload.component.html","../../../projects/bbsf-controls/src/lib/Shared/Models/MapAutocompleteDTO.ts","../../../projects/bbsf-controls/src/lib/controls/MapAutoComplete/MapAutoComplete.component.ts","../../../projects/bbsf-controls/src/lib/controls/MapAutoComplete/MapAutoComplete.component.html","../../../projects/bbsf-controls/src/lib/Shared/Models/EnglishArabicDTO.ts","../../../projects/bbsf-controls/src/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.ts","../../../projects/bbsf-controls/src/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.html","../../../projects/bbsf-controls/src/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.ts","../../../projects/bbsf-controls/src/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.html","../../../projects/bbsf-controls/src/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.ts","../../../projects/bbsf-controls/src/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.html","../../../projects/bbsf-controls/src/lib/Shared/Enums/Enums.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/LanguageValidation.ts","../../../projects/bbsf-controls/src/lib/controls/TextBox/TextBox.component.ts","../../../projects/bbsf-controls/src/lib/controls/TextBox/TextBox.component.html","../../../projects/bbsf-controls/src/lib/controls/Toggleslide/toggleslide.component.ts","../../../projects/bbsf-controls/src/lib/controls/Toggleslide/Toggleslide.component.html","../../../projects/bbsf-controls/src/lib/controls/TagsInput/TagsInput.component.ts","../../../projects/bbsf-controls/src/lib/controls/TagsInput/TagsInput.component.html","../../../projects/bbsf-controls/src/lib/controls/page-header-component/page-header-component.component.ts","../../../projects/bbsf-controls/src/lib/controls/page-header-component/page-header-component.component.html","../../../projects/bbsf-controls/src/lib/controls/Paging/JwPagination.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/PagingDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/FilterType.ts","../../../projects/bbsf-controls/src/lib/controls/Paging/Paging.component.ts","../../../projects/bbsf-controls/src/lib/controls/Paging/Paging.component.html","../../../projects/bbsf-controls/src/lib/controls/Phone/Phone.component.ts","../../../projects/bbsf-controls/src/lib/controls/Phone/Phone.component.html","../../../projects/bbsf-controls/src/lib/Shared/Models/ProfilePictureDTO.ts","../../../projects/bbsf-controls/src/lib/controls/ProfileImageUploader/ProfileImageUploader.component.ts","../../../projects/bbsf-controls/src/lib/controls/ProfileImageUploader/ProfileImageUploader.component.html","../../../projects/bbsf-controls/src/lib/controls/RadioButton/RadioButton.component.ts","../../../projects/bbsf-controls/src/lib/controls/RadioButton/RadioButton.component.html","../../../projects/bbsf-controls/src/lib/Shared/Models/Recaptcha.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CaptchaStyle.ts","../../../projects/bbsf-controls/src/lib/controls/Recaptcha/Recaptcha.component.ts","../../../projects/bbsf-controls/src/lib/controls/Recaptcha/Recaptcha.component.html","../../../projects/bbsf-controls/src/lib/Shared/Models/ControlOptionsBase.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/datePickerOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/DropdownOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/FileUploadOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/HtmlEditorOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/ImageType.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ImageUploadOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/map-enums.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MapAutoCompleteOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/PhoneOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RangeNumber.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TextAreaOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/IconPosition.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TextBoxOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ToggleslideOptions.ts","../../../projects/bbsf-controls/src/lib/controls/TextArea/TextArea.component.ts","../../../projects/bbsf-controls/src/lib/controls/TextArea/TextArea.component.html","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.html","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.html","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-table/repeater-table.component.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-table/repeater-table.component.html","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater/repeater.component.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater/repeater.component.html","../../../projects/bbsf-controls/src/lib/controls/bbsf-controls.module.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CustomValidation.ts","../../../projects/bbsf-controls/src/lib/Shared/Components/app-base-component.ts","../../../projects/bbsf-controls/src/lib/Shared/config/environment.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RecaptchaOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultilingualControlOptionsBase.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultilingualTextBoxOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/Attribute.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultiLingualTextAreaOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CheckBoxOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/DropdownListItem.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultiLingualHtmlEditorOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ProfileImageUploadOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/SaveDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CancelDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/EditPersonalImage.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/UploadPersonalImage.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CalendarOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CalendarEventDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/AutocompleteOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TagsInputDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TagsInputOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/FilterItem.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/PagingOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RadioButtonOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RadioButtonItem.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/FormOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ConfirmationModalOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RepeaterField.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RepeaterOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/filter-options.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/page-header-options.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/control-filter-Item.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/bread-crumb.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/menu-list-enum.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Countries.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/FontSize.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Insert.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Misc.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Para.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Style.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/FileType.ts","../../../projects/bbsf-controls/src/public-api.ts","../../../projects/bbsf-controls/src/bnsights-test-test-controls.ts"],"sourcesContent":["\r\nimport { ModuleWithProviders } from '@angular/core';\r\nexport enum TagInputView {\r\n WithImage = 1,\r\n WithoutImage = 2,\r\n WithInitial = 3,\r\n \r\n }","import { Component, forwardRef, Input, Output, EventEmitter } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { TagInputView } from '../Enums/TagInputView';\r\nimport { TypeaheadMatch } from 'ngx-bootstrap/typeahead';\r\n\r\nconst noop = () => { };\r\n\r\nconst TAGS_INPUT_TEMPLATE = `\r\n\r\n<div class=\"tags-input\">\r\n<span class=\"tags-input__tag label label-primary badge badge-primary\" *ngFor=\"let tag of tags\">\r\n\r\n<span [ngSwitch]=\"ViewMode\">\r\n<span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\r\n<img style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\r\nsrc=\"{{(tag.imageURL?tag.imageURL:defaultImageURL)}}\" />\r\n</span>\r\n\r\n<span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\r\n<div class=\"user-initials\">{{calculateInitials(tag.name)}}</div>\r\n</span>\r\n\r\n<span *ngSwitchDefault>\r\n</span>\r\n\r\n</span>\r\n {{tag[displayField]}}\r\n <span *ngIf=\"isDeleteable(tag)\" role=\"button\" class=\"tags-input__tag-remove-btn\" (click)=\"removeTag(tag)\"\r\n (touch)=\"removeTag(tag)\">\r\n <span aria-hidden=\"true\">×</span>\r\n <span class=\"sr-only\">Close</span>\r\n </span>\r\n</span>\r\n\r\n<input *ngIf=\"options === null; else withTypeahead\" class=\"tags-input__input-field\" type=\"text\"\r\n [placeholder]=\"getPlaceholder()\" name=\"tags\" (keyup.enter)=\"addTag(tagInput)\"\r\n (keydown.backspace)=\"removeLastTag(tagInput)\" [disabled]=\"!canAddTags || maximumOfTagsReached()\"\r\n [hidden]=\"!canAddTags || maximumOfTagsReached()\" #tagInput />\r\n\r\n<ng-template #withTypeahead>\r\n <span [ngSwitch]=\"ViewMode\">\r\n <span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithImage\" [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n <span *ngSwitchCase=\"tagInputViewEnum.WithoutImage\">\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\r\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n <span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithoutInitial\"\r\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n <span *ngSwitchDefault>\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\r\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n </span>\r\n\r\n</ng-template>\r\n\r\n<ng-template #itemTemplateWithImage let-model=\"item\" let-index=\"index\">\r\n <img\r\n style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\r\n src=\"{{(model.imageURL?model.imageURL:defaultImageURL)}}\" />\r\n <div>\r\n <a [innerHTML]=\"model.name\"></a>\r\n <p *ngIf=\"showDescription\">\r\n {{model.description}}\r\n </p>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #itemTemplateWithoutImage let-model=\"item\" let-index=\"index\">\r\n <div>\r\n <a [innerHTML]=\"model.name\"></a>\r\n <p *ngIf=\"showDescription\">\r\n {{model.description}}\r\n </p>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #itemTemplateWithoutInitial let-model=\"item\" let-index=\"index\">\r\n <div class=\"user-image\">\r\n <div class=\"user-initials\">{{calculateInitials(model.name)}}</div>\r\n </div>\r\n <div>\r\n <a [innerHTML]=\"model.name\"></a>\r\n <p *ngIf=\"showDescription\">\r\n {{model.description}}\r\n </p>\r\n </div>\r\n</ng-template>\r\n</div>\r\n`;\r\n\r\nconst TAGS_INPUT_STYLE = `\r\n :host {\r\n overflow: auto;\r\n white-space: nowrap;\r\n }\r\n\r\n .tags-input {\r\n align-items: center;\r\n display: flex;\r\n flex-wrap: wrap;\r\n }\r\n\r\n .tags-input__tag {\r\n display: inline-block;\r\n margin-bottom: 2px;\r\n margin-right: 5px;\r\n padding-right: 0.3em;\r\n }\r\n\r\n .tags-input__tag-remove-btn {\r\n cursor: pointer;\r\n display: inline-block;\r\n font-size: 12px;\r\n margin: -3px 0 0 3px;\r\n padding: 0;\r\n vertical-align: top;\r\n }\r\n\r\n .tags-input__input-field {\r\n border: none;\r\n flex-grow: 1;\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => BTagsInputComponent),\r\n multi: true\r\n};\r\n\r\nexport interface TagsChangedEvent {\r\n change: string,\r\n tag: any\r\n}\r\n\r\n@Component({\r\n selector: 'b-tags-input',\r\n template: TAGS_INPUT_TEMPLATE,\r\n styles: [TAGS_INPUT_STYLE],\r\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR]\r\n})\r\nexport class BTagsInputComponent implements ControlValueAccessor {\r\n\r\n selected: string = '';\r\n public tags: Array<any> = [];\r\n private onTouchedCallback: () => void = noop;\r\n private onChangeCallback: (_: any) => void = noop;\r\n public tagInputViewEnum = TagInputView;\r\n @Input() maxTags: number;\r\n @Input() removeLastOnBackspace: boolean = false;\r\n @Input() canDeleteTags: boolean = true;\r\n @Input() canAddTags: boolean = true;\r\n @Input() ViewMode: TagInputView = TagInputView.WithoutImage;\r\n @Input() placeholder: string = '';\r\n @Input() showDescription: boolean = true;\r\n @Input() options: any = null;\r\n @Input() defaultImageURL: any = null;\r\n displayField: string = 'name';\r\n @Input() minLengthBeforeOptions: number = 1;\r\n @Input() scrollableOptions: boolean = false;\r\n @Input() scrollableOptionsInView: number = 5;\r\n @Output() onTagsChanged: EventEmitter<TagsChangedEvent> = new EventEmitter();\r\n @Output() onMaxTagsReached: EventEmitter<void> = new EventEmitter();\r\n @Output() onNoOptionsMatch: EventEmitter<boolean> = new EventEmitter();\r\n @Output() onBlurInput: EventEmitter<void> = new EventEmitter();\r\n getPlaceholder(): string {\r\n if (this.tags && this.tags.length > 0) {\r\n return '';\r\n }\r\n return this.placeholder;\r\n }\r\n\r\n private tagsChanged(type: string, tag: any): void {\r\n this.onChangeCallback(this.tags);\r\n this.onTagsChanged.emit({\r\n change: type,\r\n tag: tag\r\n });\r\n if (this.maximumOfTagsReached()) {\r\n this.onMaxTagsReached.emit();\r\n }\r\n }\r\n\r\n removeLastTag(tagInput: HTMLInputElement): void {\r\n if (!this.removeLastOnBackspace || !this.tags?.length) {\r\n return;\r\n }\r\n\r\n if (tagInput.value === '') {\r\n this.removeTag(this.tags[this.tags.length - 1]);\r\n }\r\n }\r\n\r\n addTag(tagInput: HTMLInputElement): void {\r\n if (tagInput.value.trim() !== '') {\r\n let tag = {\r\n [this.displayField]: tagInput.value\r\n };\r\n this.addPredefinedTag(tag);\r\n }\r\n tagInput.value = '';\r\n }\r\n\r\n private addPredefinedTag(tag: Object): void {\r\n if (this.tags == null)\r\n this.tags = [];\r\n if (!this.maximumOfTagsReached()) {\r\n this.tags.push(tag);\r\n this.tagsChanged('add', tag);\r\n }\r\n }\r\n\r\n removeTag(tagToRemove: any): void {\r\n if (!this.isDeleteable(tagToRemove)) {\r\n return;\r\n }\r\n this.tags = this.tags.filter(tag => tagToRemove !== tag);\r\n this.tagsChanged('remove', tagToRemove);\r\n }\r\n\r\n maximumOfTagsReached(): boolean {\r\n return typeof this.maxTags !== 'undefined' && this.tags && this.tags.length >= this.maxTags;\r\n }\r\n\r\n isDeleteable(tag: any) {\r\n if (typeof tag.deleteable !== \"undefined\" && !tag.deleteable) {\r\n return false;\r\n }\r\n return this.canDeleteTags;\r\n }\r\n\r\n typeaheadOnSelect(e: TypeaheadMatch): void {\r\n if (typeof e.item === 'string') {\r\n this.addPredefinedTag({\r\n [this.displayField]: e.value\r\n });\r\n } else {\r\n this.addPredefinedTag(e.item);\r\n }\r\n this.selected = '';\r\n }\r\n\r\n typeaheadOnNoMatch(e: any): void {\r\n if (typeof this.onNoOptionsMatch !== 'undefined') {\r\n this.onNoOptionsMatch.emit(e)\r\n }\r\n }\r\n\r\n writeValue(value: any) {\r\n if (value !== this.tags) {\r\n this.tags = value;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n calculateInitials(name: string): string {\r\n var fullName = name.split(' ');\r\n var initials = \"\"\r\n if (fullName.length > 1)\r\n initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);\r\n else\r\n initials = fullName.shift().charAt(0)\r\n return initials.toUpperCase();\r\n }\r\n\r\n onBlur(): void {\r\n this.onBlurInput.emit();\r\n }\r\n // (keydown.Tab) = \"onTab($event)\"\r\n //onTab(event) {\r\n // this.onTabInput.emit();\r\n // event.preventDefault();\r\n // event.stopPropagation();\r\n //}\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'ng-template[name]'\r\n})\r\nexport class NgTemplateNameDirective {\r\n @Input() name: string;\r\n\r\n constructor(public template: TemplateRef<any>) { }\r\n}","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'bbsfDateTime'\r\n})\r\nexport class BBSFDateTimePipe implements PipeTransform {\r\n\r\n constructor(public datePipe: DatePipe) { }\r\n transform(value: Date) {\r\n let latest_date = this.datePipe.transform(value, 'dd/MM/yyyy hh:mm a');\r\n return latest_date;\r\n }\r\n}\r\n\r\n\r\n","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'bbsfDate'\r\n})\r\nexport class BBSFDatePipe implements PipeTransform {\r\n\r\n constructor(public datePipe: DatePipe){}\r\n transform(value: Date) {\r\n let latest_date =this.datePipe.transform(value, 'dd/MM/yyyy');\r\n return latest_date;\r\n }\r\n\r\n}\r\n","export enum InputType {\r\n Text = 1,\r\n Password = 2,\r\n Email = 3,\r\n Number = 4,\r\n EID = 5,\r\n URL = 6\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { ControlContainer, FormControl, FormGroup } from '@angular/forms';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n@Injectable()\r\nexport class ErrorMassageValidation {\r\n static controlContainerstatic = null;\r\n\r\n // tslint:disable-next-line: deprecation\r\n constructor(\r\n @Optional() private controlContainer: ControlContainer,\r\n private utilityService: UtilityService\r\n ) {\r\n ErrorMassageValidation.controlContainerstatic = this.controlContainer;\r\n }\r\n url = 'CheckEmailValidation';\r\n // tslint:disable-next-line: deprecation\r\n\r\n static showerror(FormControlName: string) {\r\n let form = ErrorMassageValidation.controlContainerstatic\r\n .control as FormGroup;\r\n let control = form.get(FormControlName) as FormControl;\r\n //console.log(control)\r\n control.setErrors({ minlength: true });\r\n control.markAsTouched();\r\n }\r\n\r\n // isEmailRegisterd(Email: string)\r\n // {\r\n // let resource:object={\r\n // email:Email\r\n // };\r\n // let body = JSON.stringify(resource);\r\n // let headers = new Headers({ 'Content-Type': 'application/json' });\r\n // let options = new RequestOptions({ headers: headers });\r\n // return this.http.post(environment.baseUrl+this.url,body,options)\r\n // .pipe(map(response => response.json()))\r\n // }\r\n\r\n getErrorMassageValidation(error: any): string {\r\n let result: string = '';\r\n switch (error.key) {\r\n case 'required':\r\n result = this.utilityService.getResourceValue('RequiredValidationKey');\r\n break;\r\n case 'email':\r\n result = this.utilityService.getResourceValue('EmailValidationKey');\r\n break;\r\n case 'EmailValidationKey':\r\n result = this.utilityService.getResourceValue('EmailValidationKey');\r\n break;\r\n case 'URLValidationKey':\r\n result = this.utilityService.getResourceValue('urlValidationError');\r\n break;\r\n case 'pattern':\r\n result = this.utilityService.getResourceValue('NumberValidationKey');\r\n break;\r\n case 'maxlength':\r\n result =\r\n this.utilityService.getResourceValue('MaxLenghtValidationKey') +\r\n ' ' +\r\n error.value.requiredLength;\r\n break;\r\n case 'minlength':\r\n result =\r\n this.utilityService.getResourceValue('MinLenghtValidationKey') +\r\n ' ' +\r\n error.value.requiredLength;\r\n break;\r\n case 'min':\r\n result =\r\n this.utilityService.getResourceValue('MinValueValidationKey') +\r\n ' ' +\r\n error.value.min;\r\n break;\r\n case 'max':\r\n result =\r\n this.utilityService.getResourceValue('MaxValueValidationKey') +\r\n ' ' +\r\n error.value.max;\r\n break;\r\n case 'IntegerNumberValidationKey':\r\n result = this.utilityService.getResourceValue(\r\n 'IntegerNumberValidationKey'\r\n );\r\n break;\r\n case 'PositiveNumberValidationKey':\r\n result = this.utilityService.getResourceValue(\r\n 'PositiveNumberValidationKey'\r\n );\r\n break;\r\n case 'validatePhoneNumber':\r\n result = this.utilityService.getResourceValue(\r\n 'PhoneNumberValidationKey'\r\n );\r\n break;\r\n case 'mask':\r\n result =\r\n this.utilityService.getResourceValue('MaskValidationKey') +\r\n ' ' +\r\n error.value.requiredMask;\r\n break;\r\n case 'PasswordComplexityHasNumber':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasNumber'\r\n );\r\n break;\r\n case 'ArabicLetterOnly':\r\n result = this.utilityService.getResourceValue('ArabicLetterOnly');\r\n break;\r\n case 'EnglishLetterOnly':\r\n result = this.utilityService.getResourceValue('EnglishLetterOnly');\r\n break;\r\n case 'ArabicIsRequiredAndOnly50CharactersEnglish':\r\n result = this.utilityService.getResourceValue(\r\n 'ArabicIsRequiredAndOnly50CharactersEnglish'\r\n );\r\n break;\r\n case 'PasswordComplexityHasCapitalLetter':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasCapitalLetter'\r\n );\r\n break;\r\n case 'PasswordComplexityHasSmallLetter':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasSmallLetter'\r\n );\r\n break;\r\n case 'PasswordComplexityHasSpecialLetter':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasSpecialLetter'\r\n );\r\n break;\r\n case 'MaxWordCountValidationKey':\r\n result =\r\n this.utilityService.getResourceValue('MaxWordCountValidationKey') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'NewSelectionValidationKey':\r\n result = this.utilityService.getResourceValue(\r\n 'NewSelectionValidationKey'\r\n );\r\n break;\r\n case 'MaxFileCountValidationKey':\r\n result =\r\n this.utilityService.getResourceValue('MaxFileCountValidationKey') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'MinFileCountValidationKey':\r\n result =\r\n this.utilityService.getResourceValue('MinFileCountValidationKey') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'MaxSizeForAllFilesInMB':\r\n result =\r\n this.utilityService.getResourceValue('MaxSizeForAllFilesInMB') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'FileMaxSizeInMB':\r\n result =\r\n this.utilityService.getResourceValue('FileMaxSizeInMB') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'ToolTipTypeError':\r\n result =\r\n this.utilityService.getResourceValue('ToolTipTypeError') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'InvalidEndDate':\r\n result = this.utilityService.getResourceValue('InvalidEndDate');\r\n break;\r\n case 'InvalidStartDate':\r\n result = this.utilityService.getResourceValue('InvalidStartDate');\r\n break;\r\n default:\r\n break;\r\n }\r\n return result;\r\n }\r\n}\r\n","import { Injectable, Optional, Host, SkipSelf, Component } from '@angular/core';\r\nimport { CustomValidation } from '../Models/CustomValidation';\r\nimport { ErrorMassageValidation } from './validationErrorMassage.service';\r\nimport { ValidationErrors, ValidatorFn, AbstractControl, FormControl, Validators } from '@angular/forms';\r\nimport { InputType } from '../Enums/InputType';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class ControlUtility {\r\n constructor(private ErrorHandler: ErrorMassageValidation, private controlValidationService: ControlValidationService, private utilityService: UtilityService) {\r\n\r\n }\r\n\r\n getErrorValidation(Errorsitem: any[], CustomValidation?: CustomValidation): string {\r\n let resulte = '';\r\n Errorsitem.forEach(element => {\r\n\r\n if (element.key === 'customerError' && Errorsitem.length === 1) {\r\n resulte = CustomValidation[0].massage;\r\n } else if (element.key === 'EmailValidation') {\r\n resulte = element.value;\r\n } else if (element.key === 'FluentApi') {\r\n resulte = element.value;\r\n }\r\n else if (element.key === 'errorMassage') {\r\n resulte = element.value;\r\n }\r\n else {\r\n resulte = this.ErrorHandler.getErrorMassageValidation(element);\r\n }\r\n });\r\n\r\n return resulte;\r\n }\r\n\r\n patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n const valid = regex.test(control.value);\r\n return valid ? null : error;\r\n };\r\n }\r\n patchControlValue(originalValue, PatchFunction, PatchPath) {\r\n var patchOp = [{\r\n op: \"replace\",\r\n path: PatchPath,\r\n value: originalValue\r\n }]\r\n var patchService = PatchFunction.call(null, patchOp) as Observable<any>;\r\n patchService.subscribe(r => console.log(r), erorr => this.utilityService.notifyErrorMessage(erorr));\r\n\r\n }\r\n arabicValidator(error: ValidationErrors): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (!control.value)\r\n return null;\r\n if (control.value.match('[\\u0600-\\u06FF]')) {\r\n if (control.value.match('[A-Za-z]') != null) {\r\n //FOUND ENGLISH CHARS\r\n var length = control.value.replace(/\\W/g, '').replace(/[0-9]/g, '').length;\r\n if (length > 50) {\r\n return error;\r\n } else {\r\n return null;\r\n }\r\n }\r\n else {\r\n //NO ENGLISH CHARACTERS AT ALL\r\n return null;\r\n }\r\n }\r\n else {\r\n return error;\r\n }\r\n };\r\n }\r\n\r\n getInputType(type: number): string {\r\n return InputType[type] as string\r\n }\r\n\r\n\r\n trimControlValue(value: any) {\r\n const whitespace: string = ' ';\r\n if (value.startsWith(whitespace) || value.endsWith(whitespace)) {\r\n return value.trim();\r\n }\r\n else\r\n return value\r\n }\r\n\r\n CopyInputMessage(inputElement) {\r\n inputElement.select();\r\n document.execCommand('copy');\r\n inputElement.setSelectionRange(0, 0);\r\n }\r\n\r\n\r\n getErrorValidationMassage(ErrorList, group, options) {\r\n // if((!group.valid)&&(!UtilityService.isCreatedBefor))\r\n // {\r\n // UtilityService.showGlobalError();\r\n // this.scrollToGlobalErrorMassage()\r\n // }\r\n return this.getErrorValidation(ErrorList, options.CustomValidation);\r\n }\r\n\r\n scrollToGlobalErrorMassage() {\r\n let element = document.getElementById('errorId');\r\n element.scrollIntoView({ behavior: \"smooth\", inline: \"nearest\" });\r\n }\r\n setAttributeForControl(options) {\r\n if (options.AttributeList != null) {\r\n var element = document.getElementById(options.Name);\r\n for (let index = 0; index < options.AttributeList.length; index++) {\r\n element.setAttribute(options.AttributeList[index].Key, options.AttributeList[index].value);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n showGlobalError(formId?: string) {\r\n this.controlValidationService.showGlobalError(null, formId);\r\n this.scrollToGlobalErrorMassage()\r\n }\r\n\r\n RemoveRequiredValidation(FormControl: AbstractControl, ValidationRole: any[], Options: any) {\r\n Options.IsRequired = false\r\n ValidationRole = ValidationRole.filter((e) => e != Validators.required)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n AddRequiredValidation(FormControl: AbstractControl, ValidationRole: any[], Options: any) {\r\n Options.IsRequired = true\r\n ValidationRole.push(Validators.required)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n addRequiredToControl(FormControl: AbstractControl, Options: any) {\r\n Options.IsRequired = true\r\n FormControl.addValidators(Validators.required);\r\n FormControl.updateValueAndValidity()\r\n }\r\n removeRequiredFromControl(FormControl: AbstractControl, Options: any) {\r\n Options.IsRequired = false\r\n FormControl.removeValidators(Validators.required);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n\r\n RemoveCustomValidation(FormControl: AbstractControl, ValidationRole: any[], CustomValidation: CustomValidation) {\r\n ValidationRole = ValidationRole.filter((e) => e != CustomValidation.functionBody)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n AddCustomValidation(FormControl: AbstractControl, ValidationRole: any[], CustomValidation: CustomValidation) {\r\n ValidationRole.push(CustomValidation.functionBody)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n static getLocal(): string {\r\n let lang = localStorage.getItem('language');\r\n return lang == \"ar\" ? \"ar\" : \"en-UK\";\r\n }\r\n\r\n IsValid(FormControl: AbstractControl) {\r\n FormControl.markAsTouched();\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class OnPagingFiltersChangeService {\r\n private subject = new Subject<any>();\r\n\r\n ChangeValue(value: string) {\r\n this.subject.next(value);\r\n }\r\n\r\n ClearValue() {\r\n this.subject.next(undefined);\r\n }\r\n\r\n GetValue(): Observable<any> {\r\n return this.subject.asObservable();\r\n }\r\n}","import { Component, ComponentFactoryResolver, EmbeddedViewRef, Injectable, ViewChild, ViewContainerRef } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n\r\n\r\n @Injectable()\r\n export class RenderComponentService {\r\n\r\n constructor( private componentFactoryResolver: ComponentFactoryResolver) {\r\n }\r\n \r\n renderDynamicComponent<T>(viewContainerRef: ViewContainerRef, component: any, group: FormGroup, options: any, size: number = 0) {\r\n let factory = this.componentFactoryResolver.resolveComponentFactory<T>(component)\r\n const componentRef = viewContainerRef.createComponent<T>(factory) as any;\r\n componentRef.instance.group = group;\r\n componentRef.instance.options = options;\r\n if (size > 0) {\r\n let htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n // `element` is the element you want to wrap\r\n var parent = htmlElement.parentNode;\r\n var wrapper = document.createElement('div');\r\n wrapper.className = `col-md-${size}`\r\n // set the wrapper as child (instead of the element)\r\n parent.replaceChild(wrapper, htmlElement);\r\n // set element as child of wrapper\r\n wrapper.appendChild(htmlElement);\r\n }\r\n\r\n\r\n }\r\n}\r\n","export class AutocompleteDTO\r\n{\r\n key: string=\"\";\r\n value: string = \"\";\r\n image: string = \"\";\r\n \r\n}\r\n","export enum ControlLayout {\r\n Vertical = 1,\r\n Horizontal = 2\r\n}\r\n","export enum LanguageMode{\r\n Both_Languages_are_visible = \"3c6dbffe-da7f-4108-b44d-4b216a22f701\" ,\r\n English_Language_only_is_visible = \"84cc1d57-1f07-42a1-a38f-1a376c12a367\",\r\n Arabic_Language_only_is_visible = \"6a3e59e0-9510-4b16-9080-9313f5c9f229\",\r\n Both_Languages_but_only_English_is_required = \"260c38bb-c90c-4aa7-895d-31aba9311a05\",\r\n Both_Languages_but_only_Arabic_is_required = \"a1f2e15f-2691-4118-975f-ac21caf8ad5a\",\r\n Current_Language_only_is_visible_and_required = \"e2ba1f44-68f3-4035-b84f-9f1b6c2b0c05\" ,\r\n Both_Languages_are_visible_but_only_current_language_is_required = \"b26431f2-b209-4c41-ab04-2d71361847c2\" \r\n }","import { Injectable } from \"@angular/core\";\r\nimport { ControlLayout } from \"../Enums/ControlLayout\";\r\nimport { ForceDirection } from \"../Enums/ForceDirection\";\r\nimport { LanguageMode } from \"../Enums/LanguageMode\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class GlobalSettings {\r\n /** to set type of view if MultilingualTextArea is Vertical or Horizontal */\r\n ViewType: ControlLayout = ControlLayout.Vertical;\r\n /*multi control placement type*/\r\n MultiControlPlacementType: ControlLayout = ControlLayout.Horizontal;\r\n /**To Set LanguageMode To MultipleLanguageText */\r\n LanguageMode: LanguageMode = LanguageMode.Both_Languages_are_visible;\r\n HideAstericsWhenRequired: boolean = false;\r\n //**To set maxlength warning message when equals limit\r\n MaxLengthWarningLimit: number = 10;\r\n //**Set any texbox maxlength default value\r\n MaxLengthTextBox: number = 255;\r\n //**Set any textArea maxlength default value\r\n MaxLengthTextArea: number = 1000;\r\n //**Set default image source\r\n DefaultImageSrc: string = \"./src/assets/images/uploadimg.png\";\r\n}\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter, Attribute } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { AutocompleteOptions } from '../../Shared/Models/AutocompleteOptions';\r\nimport { AutocompleteDTO } from '../../Shared/Models/AutocompleteDTO';\r\nimport { noop, Observable, Observer, of } from 'rxjs';\r\nimport { map, switchMap, tap } from 'rxjs/operators';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { ControlValidationService, RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-AutocompleteTextBox',\r\n templateUrl: './AutocompleteTextBox.component.html'\r\n})\r\nexport class AutocompleteTextBoxComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private http: HttpClient, private ErrorHandler: ErrorMassageValidation, private requestHandlerService: RequestHandlerService,\r\n private controlUtility: ControlUtility, @Optional() private controlContainer:\r\n ControlContainer, public AutocompleteTextBoxControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n AutocompleteTextBoxComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: AutocompleteOptions;\r\n @Output() OnChange = new EventEmitter();\r\n keyword: string = 'value'\r\n AutocompleteTextBoxControl: AbstractControl;\r\n Search: string = ''\r\n Key: string = ''\r\n\r\n Api: string = 'http';\r\n Value: string = 'value'\r\n NewSelectionValidationKey: string = '';\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n dataSource: Observable<any>;\r\n suggestions$: Observable<any[]>;\r\n errorMessage: string;\r\n dataList: any[] = [];\r\n SelectedValue: string = \"\"\r\n avatarImage: string = \"./src/assets/images/userimg.png\";\r\n textDir;\r\n\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.AutocompleteTextBoxControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n // this.AutocompleteTextBoxControl.setValue(this.options.Value);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.AutocompleteTextBoxControl.setValidators(this.validationRules);\r\n this.AutocompleteTextBoxControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.AutocompleteTextBoxControl.disable();\r\n }\r\n\r\n\r\n if (this.options.SelectedValue != undefined && this.options.SelectedValue != null) {\r\n this.SelectedValue = this.options.SelectedValue;\r\n }\r\n\r\n\r\n this.AutocompleteTextBoxControlHost.ngSubmit.subscribe((value) => {\r\n if (this.AutocompleteTextBoxControl.value == this.Search && this.options.AllowNewSelection == false) {\r\n this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });\r\n this.AutocompleteTextBoxControl.markAsTouched();\r\n this.AutocompleteTextBoxControl.invalid;\r\n }\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.options.ValidationToken\r\n }),\r\n };\r\n\r\n\r\n\r\n\r\n this.suggestions$ = new Observable((observer: Observer<string>) => {\r\n observer.next(this.Search);\r\n }).pipe(\r\n switchMap((query: string) => {\r\n if (query) {\r\n let params = new HttpParams();\r\n params = params.append(this.options.QueryParam, query);\r\n let requestOptionsModel = new RequestOptionsModel()\r\n requestOptionsModel.disableBlockUI = true;\r\n requestOptionsModel.disableSuccessNotification = true;\r\n // using github public api to get users by name\r\n return this.requestHandlerService.get(this.options.ActionURL, params, null, requestOptionsModel)\r\n .pipe(\r\n map((data) => data as Attribute[] || []),\r\n tap(() => noop, err => {\r\n // in case of http error\r\n this.errorMessage = err && err.message || 'Something goes wrong';\r\n })\r\n );\r\n }\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n\r\n getErrorValidation(ErrorList) {\r\n\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n\r\n selectEvent(item) {\r\n\r\n if (this.options.AllowNewSelection == true) {\r\n if (typeof (item) == 'object') {\r\n this.AutocompleteTextBoxControl.setValue(item);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n }\r\n else {\r\n let AutocompleteModel = new AutocompleteDTO();\r\n AutocompleteModel.value = item;\r\n this.AutocompleteTextBoxControl.setValue(AutocompleteModel);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n }\r\n }\r\n else {\r\n if (this.AutocompleteTextBoxControl.value == item.value) {\r\n this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });\r\n this.AutocompleteTextBoxControl.markAsTouched();\r\n this.AutocompleteTextBoxControl.invalid;\r\n return;\r\n }\r\n else {\r\n this.AutocompleteTextBoxControl.setValue(item);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n let originalValue = this.AutocompleteTextBoxControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n\r\n }\r\n }\r\n\r\n // move this line here to emit value no matter is from database or not \r\n this.OnChange.emit(this.AutocompleteTextBoxControl.value)\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.AutocompleteTextBoxControl.value;\r\n }\r\n\r\n async onChangeSearch(search: string) {\r\n if (this.options.MaxLength && search.length > this.options.MaxLength) {\r\n const formControl = this.AutocompleteTextBoxControl;\r\n formControl.setErrors({ errorMassage: this.UtilityService.getResourceValue(\"MaxLenghtValidationKey\") + \" \" + this.options.MaxLength });\r\n formControl.markAsTouched();\r\n return;\r\n }\r\n this.Search = search;\r\n this.SelectedValue = \"\";\r\n await this.suggestions$.subscribe((result) => {\r\n if ((result == null || result.length == 0 || result.length == 0) && this.options.AllowNewSelection == true) {\r\n this.dataList = [\r\n {\r\n key: 0,\r\n value: this.Search\r\n }\r\n ]\r\n }\r\n else {\r\n this.dataList = result\r\n }\r\n })\r\n }\r\n\r\n onInputCleared() {\r\n this.AutocompleteTextBoxControl.setValue(null);\r\n this.OnChange.emit(null);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n }\r\n // onFocused(e) {\r\n // // do something\r\n // }\r\n\r\n\r\n // onBlur(Value) {\r\n // if (this.options.AllowNewSelection == true) {\r\n\r\n // if (typeof (Value) == 'object') {\r\n // this.AutocompleteTextBoxControl.setValue(Value);\r\n // this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n\r\n // }\r\n // else {\r\n // let AutocompleteModel = new AutocompleteDTO();\r\n // AutocompleteModel.value = Value;\r\n // let model = new TypeaheadMatch(AutocompleteModel,Value);\r\n // this.AutocompleteTextBoxControl.setValue(model);\r\n // this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n\r\n // }\r\n // }\r\n\r\n // else {\r\n\r\n // if (this.AutocompleteTextBoxControl.value == Value) {\r\n // this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });\r\n // this.AutocompleteTextBoxControl.markAsTouched();\r\n // this.AutocompleteTextBoxControl.invalid;\r\n // return;\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n // handleResultSelected(result) {\r\n\r\n // this.AutocompleteTextBoxControl.setValue(result);\r\n // this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n // this.OnChange.emit(this.AutocompleteTextBoxControl.value)\r\n // this.Search = this.AutocompleteTextBoxControl.value.value\r\n\r\n\r\n\r\n // }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.AutocompleteTextBoxControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.AutocompleteTextBoxControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.AutocompleteTextBoxControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.AutocompleteTextBoxControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.AutocompleteTextBoxControl)\r\n }\r\n\r\n}\r\n\r\n\r\n","\r\n<div class=\"form-group bbsf-control bbsf-autocomplete-textbox\" [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 container-->\r\n <div class=\"bbsf-input-container\" *ngIf=\"!options.IsReadonly\">\r\n <!--input-->\r\n <ng-autocomplete class=\"form-control {{options.ExtraClasses}}\" *ngIf=\"!options.AllowNewSelection\" [data]=\"dataList\" [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\" placeholder=\"{{options.Placeholder}}\" (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)' historyIdentifier=\"dataList\" [itemTemplate]=\"options.CustomTemplate?options.CustomTemplate:itemTemplate\"\r\n [dir]=\"textDir\"\r\n formControlName=\"{{options.Name}}\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\"\r\n (inputCleared)=\"onInputCleared()\"\r\n >\r\n </ng-autocomplete>\r\n\r\n <ng-autocomplete class=\"form-control {{options.ExtraClasses}}\" *ngIf=\"options.AllowNewSelection\" [data]=\"dataList\" [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\" placeholder=\"{{options.Placeholder}}\" (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)' historyIdentifier=\"dataList\" [itemTemplate]=\"options.CustomTemplate?options.CustomTemplate:itemTemplate\"\r\n [dir]=\"textDir\" (inputCleared)=\"onInputCleared()\"\r\n formControlName=\"{{options.Name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\">\r\n </ng-autocomplete>\r\n\r\n <ng-template #itemTemplate let-item>\r\n <img *ngIf=\"options.ItemWithImage\" src=\"{{(item.image?item.image:avatarImage)}}\" />\r\n <a [innerHTML]=\"item.value\"></a>\r\n </ng-template>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\">{{AutocompleteTextBoxControl.value.value}}</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\" *ngIf=\"(AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched)\">\r\n {{getErrorValidation(AutocompleteTextBoxControl.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\r\n","\r\nexport enum CalendarView {\r\n Month = 1,\r\n Weekly = 2,\r\n Daily = 3,\r\n Agenda = 4\r\n }","import { FullCalendarComponent } from '@fullcalendar/angular';\r\nimport * as core from '@fullcalendar/core';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport timeGrigPlugin from '@fullcalendar/timegrid';\r\nimport interactionPlugin from '@fullcalendar/interaction'; // for dateClick\r\nimport timeGridPlugin from '@fullcalendar/timegrid';\r\nimport listPlugin from '@fullcalendar/list';\r\nimport { Component, OnInit, Input, DoCheck, Optional, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { CalendarOptions } from '../../Shared/Models/CalendarOptions';\r\nimport { CalendarView } from '../../Shared/Enums/CalendarView';\r\n// import { CalendarOptions as CalendarOptionsModel, DateSelectArg, EventApi, EventClickArg } from '@fullcalendar/angular';\r\nimport enGbLocale from '@fullcalendar/core/locales/en-gb';\r\nimport ArLocale from '@fullcalendar/core/locales/ar';\r\nimport { LangChangeEvent } from '@ngx-translate/core';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n@Component({\r\n selector: 'BBSF-Calendar',\r\n templateUrl: './Calendar.component.html',\r\n styleUrls: ['./Calendar.component.scss']\r\n})\r\nexport class CalendarComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private ErrorHandler: ErrorMassageValidation, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public PhoneControlHost: FormGroupDirective,private UtilityService:UtilityService,private translate: BBSFTranslateService,private controlValidationService:ControlValidationService) {\r\n CalendarComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: CalendarOptions;\r\n CalendarFormControl: AbstractControl;\r\n @ViewChild('calendar', { static: false }) calendarComponent: FullCalendarComponent; // the #calendar in the template\r\n\r\n\r\n\r\n calendarVisible = true;\r\n calendarOptions: core.CalendarOptions;\r\n currentEvents: core.EventApi[] = [];\r\n calendarPlugins = [dayGridPlugin, timeGrigPlugin, interactionPlugin, listPlugin];\r\n calendarWeekends = true;\r\n calendarEvents: core.EventInput[] = [];\r\n DefaultView = \"\"\r\n CalendarViews = ''\r\n locales = [];\r\n CurrentLanguage = \"\"\r\n async ngOnInit() {\r\n switch (await this.UtilityService.getCurrentLanguage()) {\r\n case 'ar':\r\n this.locales = [ArLocale]\r\n this.CurrentLanguage = \"Ar\"\r\n break;\r\n case 'en':\r\n this.locales = [enGbLocale]\r\n this.CurrentLanguage = \"En\"\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\r\n switch (event.lang) {\r\n case 'ar':\r\n this.locales = [ArLocale]\r\n this.CurrentLanguage = \"Ar\"\r\n break;\r\n case 'en':\r\n this.locales = [enGbLocale]\r\n this.CurrentLanguage = \"En\"\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n });\r\n this.calendarEvents = this.options.EventList\r\n this.calendarWeekends = this.options.AllowCalendarWeekends\r\n switch (this.options.DefaultView) {\r\n case CalendarView.Month:\r\n this.DefaultView = \"dayGridMonth\"\r\n break;\r\n case CalendarView.Weekly:\r\n this.DefaultView = \"timeGridWeek\"\r\n break;\r\n case CalendarView.Daily:\r\n this.DefaultView = \"timeGridDay\"\r\n break;\r\n default:\r\n break;\r\n }\r\n if (this.options.CalendarViews != null && this.options.CalendarViews.length > 0)\r\n for (let index = 0; index < this.options.CalendarViews.length; index++) {\r\n const element = this.options.CalendarViews[index];\r\n switch (element) {\r\n case CalendarView.Agenda:\r\n this.CalendarViews += \"listWeek,\"\r\n break;\r\n case CalendarView.Daily:\r\n this.CalendarViews += \"timeGridDay,\"\r\n break;\r\n case CalendarView.Weekly:\r\n this.CalendarViews += \"timeGridWeek,\"\r\n break;\r\n case CalendarView.Month:\r\n this.CalendarViews += \"dayGridMonth,\"\r\n break;\r\n\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.CalendarFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n\r\n this.calendarOptions = {\r\n plugins: [\r\n dayGridPlugin,\r\n timeGridPlugin,\r\n listPlugin,\r\n interactionPlugin\r\n ],\r\n headerToolbar: {\r\n left: 'prev,next today',\r\n center: 'title',\r\n right: this.CalendarViews.substring(0, this.CalendarViews.length - 1)\r\n },\r\n locales: this.locales,\r\n locale: this.CurrentLanguage,\r\n initialView: this.CalendarViews.split(',')[0],\r\n initialEvents: this.calendarEvents,\r\n initialDate: this.options.DefaultDate,\r\n weekends: this.options.AllowCalendarWeekends,\r\n editable: this.options.Eventeditable,\r\n selectable: this.options.Eventselectable,\r\n // selectMirror: true,\r\n dayMaxEvents: this.options.dayMaxEvents,\r\n select: this.OnDayClickFunction.bind(this),\r\n eventClick: this.OnEventClickFunction.bind(this),\r\n // eventsSet: this.handleEvents.bind(this)\r\n /* you can update a remote database when these fire:\r\n eventAdd:\r\n eventChange:\r\n eventRemove:\r\n */\r\n };\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n\r\n\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n getErrorValidation(Errorsitem: any[]) {\r\n }\r\n\r\n\r\n OnDayClickFunction(arg) {\r\n\r\n if (this.options.OnDayClickFunction != null) {\r\n let DayClickFunction = this.options.OnDayClickFunction;\r\n DayClickFunction(arg);\r\n }\r\n }\r\n\r\n OnEventClickFunction(arg) {\r\n if (this.options.OnEventClickFunction != null) {\r\n let EventClickFunction = this.options.OnEventClickFunction;\r\n EventClickFunction(arg.event);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // handleDateSelect(selectInfo: DateSelectArg) {\r\n // const title = prompt('Please enter a new title for your event');\r\n // const calendarApi = selectInfo.view.calendar;\r\n\r\n // calendarApi.unselect(); // clear date selection\r\n\r\n // if (title) {\r\n // calendarApi.addEvent({\r\n // id: \"1\",\r\n // title,\r\n // start: selectInfo.startStr,\r\n // end: selectInfo.endStr,\r\n // allDay: selectInfo.allDay\r\n // });\r\n // }\r\n // }\r\n\r\n // handleEventClick(clickInfo: EventClickArg) {\r\n // if (confirm(`Are you sure you want to delete the event '${clickInfo.event.title}'`)) {\r\n // clickInfo.event.remove();\r\n // }\r\n // }\r\n\r\n // handleEvents(events: EventApi[]) {\r\n // this.currentEvents = events;\r\n // }\r\n\r\n\r\n\r\n\r\n}\r\n\r\n\r\n","\r\n<div class=\"b-control b-calendar\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n <!-- <full-calendar #calendar\r\n [defaultDate]=\"options.DefaultDate\"\r\n [defaultView]=\"DefaultView\"\r\n [header]=\"{\r\n left: 'prev,next today',\r\n center: 'title',\r\n right: CalendarViews\r\n }\"\r\n ngDefaultControl\r\n formControlName=\"{{options.Name}}\"\r\n [locales]=\"locales\"\r\n [plugins]=\"calendarPlugins\"\r\n [weekends]=\"calendarWeekends\"\r\n [events]=\"calendarEvents\"\r\n (dateClick)=\"OnDayClickFunction($event)\"\r\n (eventClick)=\"OnEventClickFunction($event)\"\r\n id=\"{{options.Name}}\"></full-calendar> -->\r\n\r\n\r\n <full-calendar\r\n *ngIf=\"options.CalendarVisible\"\r\n [options]='calendarOptions'\r\n id=\"{{options.Name}}\"\r\n ngDefaultControl\r\n formControlName=\"{{options.Name}}\"\r\n ></full-calendar>\r\n\r\n </div>\r\n</div>\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { CheckBoxOptions } from '../../Shared/Models/CheckBoxOptions';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-CheckBox',\r\n templateUrl: './CheckBox.component.html'\r\n})\r\nexport class CheckBoxComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public CheckBoxControlHost: FormGroupDirective,private UtilityService:UtilityService,private translate: BBSFTranslateService,private controlValidationService:ControlValidationService) {\r\n CheckBoxComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: CheckBoxOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n CheckBoxFormControl: AbstractControl;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.CheckBoxFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n this.validationRules = [];\r\n this.validationRulesasync = [];\r\n this.CheckBoxFormControl.setValue(this.options.Value);\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n\r\n this.CheckBoxFormControl.setValidators(this.validationRules);\r\n this.CheckBoxFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.CheckBoxFormControl.disable();\r\n }\r\n\r\n this.CheckBoxControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n onValueChanged() {\r\n this.OnChange.emit(this.CheckBoxFormControl.value)\r\n let originalValue =this.CheckBoxFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.CheckBoxFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.CheckBoxFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.CheckBoxFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.CheckBoxFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.CheckBoxFormControl)\r\n }\r\n\r\n}\r\n\r\n","<div class=\"form-group bbsf-control bbsf-checkbox\" [formGroup]=\"group\">\r\n <div class=\"bbsf-input-container\">\r\n <!--input-->\r\n <input *ngIf=\"!options.IsReadonly\" class=\"bbsf-checkbox-input {{options.ExtraClasses}}\" [dir]=\"textDir\" [checked]=\"options.Value==true?true:null\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n (change)=\"onValueChanged()\"\r\n [class.is-invalid]=\"CheckBoxFormControl.invalid && CheckBoxFormControl.touched\"\r\n id=\"{{options.Name}}\" type=\"checkbox\" value=\"options.Value==true?true:null\">\r\n\r\n <div class=\"label-subtext-container\">\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 <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\">{{options.Value}}</span>\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\" *ngIf=\"(CheckBoxFormControl.invalid && CheckBoxFormControl.touched)\">\r\n {{getErrorValidation(CheckBoxFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\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","export enum PagingActionMode {\r\n Reinitialize ,\r\n Update\r\n}\r\n","export enum StyleConfirmationMode {\r\n Danger,\r\n Warning,\r\n Success\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities'\r\nimport { Observable } from 'rxjs';\r\nimport { PagingActionMode } from '../../Shared/Enums/PagingActionMode';\r\nimport { ConfirmationModalOptions } from '../../Shared/Models/ConfirmationModalOptions';\r\nimport Swal, { SweetAlertIcon } from 'sweetalert2';\r\nimport { StyleConfirmationMode } from '../../Shared/Enums/StyleConfirmationMode';\r\n\r\n@Component({\r\n templateUrl: 'ConfirmationModal.component.html',\r\n selector: 'BBSF-ConfirmationModal',\r\n})\r\nexport class ConfirmationModalComponent implements OnInit {\r\n @Input() options: ConfirmationModalOptions;\r\n styleDanger: StyleConfirmationMode = StyleConfirmationMode.Danger;\r\n styleWarning: StyleConfirmationMode = StyleConfirmationMode.Warning;\r\n styleSuccess: StyleConfirmationMode = StyleConfirmationMode.Success;\r\n @ViewChild('confirmationModal', { static: false }) confirmationModal: ElementRef;\r\n icon: SweetAlertIcon;\r\n btnColor: any;\r\n iconHtml: string;\r\n\r\n\r\n constructor(public utilityService: UtilityService, private modalService: NgbModal, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n //Method used to show confirmation modal\r\n showModal() {\r\n this.utilityService.startBlockUI()\r\n //check for options text values\r\n this.setTextValues();\r\n //sweetalert styles//\r\n switch (this.options.StyleConfirmationMode) {\r\n case this.styleSuccess: {\r\n this.icon = 'success'\r\n this.btnColor = '#50cd89'\r\n this.iconHtml = '<i class=\"fa fa-check\"></i>'\r\n break;\r\n }\r\n case this.styleWarning: {\r\n this.icon = 'warning'\r\n this.btnColor = '#ffc700'\r\n this.iconHtml = '<i class=\"fa fa-warning\"></i>'\r\n break;\r\n\r\n }\r\n case this.styleDanger: {\r\n this.icon = 'error'\r\n this.btnColor = '#f1416c'\r\n this.iconHtml = '<i class=\"fa fa-close\"></i>'\r\n break;\r\n\r\n }\r\n }\r\n Swal.fire({\r\n title: this.utilityService.getResourceValue(this.options.ConfirmationHeader),\r\n text: this.options.ConfirmationBody,\r\n icon: this.icon,\r\n iconColor: this.btnColor,\r\n confirmButtonColor: this.btnColor,\r\n cancelButtonColor: '#f5f8fa',\r\n cancelButtonText: this.utilityService.getResourceValue(\"CancelLabel\"),\r\n confirmButtonText: this.options.SubmitButtonText,\r\n showCancelButton: this.options.showCancelButton,\r\n showCloseButton: this.options.showCloseButton,\r\n allowOutsideClick: false\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.submit()\r\n }\r\n })\r\n this.utilityService.stopBlockUI()\r\n }\r\n private setTextValues() {\r\n if (!this.options.ConfirmationHeader)\r\n this.options.ConfirmationHeader = this.utilityService.getResourceValue(\"DeleteConfirmation\");\r\n if (!this.options.ConfirmationBody)\r\n this.options.ConfirmationBody = this.utilityService.getResourceValue(\"Delete_Question\");\r\n if (!this.options.SubmitButtonText)\r\n this.options.SubmitButtonText = this.utilityService.getResourceValue(\"Delete\");\r\n if (!this.options.SuccessNotificationMessage)\r\n this.options.SuccessNotificationMessage = this.utilityService.getResourceValue(\"DeletedSuccessfully\");\r\n }\r\n //Modal confirmation submit function\r\n submit() {\r\n let submitModel = this.options.ServiceSubmitModel;\r\n\r\n let submittedService = this.options.ServiceSubmitFunction.apply(null, submitModel) as Observable<any>\r\n submittedService.subscribe(\r\n (result) => {\r\n if (!this.options.DisableModalDismiss)\r\n this.modalService.dismissAll();\r\n\r\n if (!this.options.DisableSuccessNotification) {\r\n if (!this.options.SuccessNotificationMessage)\r\n this.options.SuccessNotificationMessage = this.utilityService.getResourceValue(\"DeletedSuccessfully\");\r\n this.utilityService.notifySuccessMessage(this.options.SuccessNotificationMessage)\r\n }\r\n if (this.options.OnSuccessHandler)\r\n this.options.OnSuccessHandler(result)\r\n if (this.options.PagingReference) {\r\n let paging = this.options.PagingReference;\r\n this.options.PagingActionMode == PagingActionMode.Reinitialize ? paging.ReinitializePaging() : paging.UpdatePaging();\r\n }\r\n this.utilityService.stopBlockUI();\r\n }, (error) => {\r\n if (this.options.OnErrorHandler)\r\n this.options.OnErrorHandler(error)\r\n else\r\n this.handleError(error)\r\n })\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage()\r\n }\r\n\r\n else if (err.status == 401) {\r\n this.router.navigate([\"/Admin/account/login\"])\r\n }\r\n else if (err.status == 510) {\r\n errorMessage = this.utilityService.getCurrentLanguage() == \"en\" ? \"Can not delete this item as it is related to others\" : \"لا يمكن حذف هذا العنصر لأنه مرتبط بعناصر أخرى\";\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage(errorMessage)\r\n }\r\n else {\r\n errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;\r\n console.log(errorMessage);\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage()\r\n }\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n\r\n}\r\n","","export enum PickerType{\r\n Both = 1 ,\r\n Calendar = 2,\r\n Timer = 3,\r\n }","export enum StartView{\r\n Month = 1 ,\r\n Year = 2,\r\n MultiYear=3\r\n }","export enum SelectMode\r\n{\r\n Single = 1 ,\r\n Range = 2\r\n}","import { Injectable, NgModule } from '@angular/core';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { OwlDateTimeIntl } from '@danielmoncada/angular-datetime-picker';\r\n\r\n@Injectable()\r\n// here is the default text string - just adjust the strings to reflect your preferred language\r\nexport class DefaultIntl extends OwlDateTimeIntl {\r\n constructor(private utilityService: UtilityService) {\r\n super();\r\n }\r\n\r\n /** A label for the range 'from' in picker info */\r\n rangeFromLabel = this.utilityService.getResourceValue('From');\r\n /** A label for the range 'to' in picker info */\r\n rangeToLabel = this.utilityService.getResourceValue('To');\r\n /** A label for the cancel button */\r\n cancelBtnLabel = this.utilityService.getResourceValue('Cancel');\r\n /** A label for the set button */\r\n setBtnLabel = this.utilityService.getResourceValue('Save');\r\n /** A label for the hour12 button (AM) */\r\n hour12AMLabel = this.utilityService.getResourceValue('AM');\r\n /** A label for the hour12 button (PM) */\r\n hour12PMLabel = this.utilityService.getResourceValue('PM');\r\n}\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, FormGroupDirective, ControlContainer } from '@angular/forms';\r\nimport { DatePickerOptions } from '../../Shared/Models/datePickerOptions';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { PickerType } from '../../Shared/Enums/PickerType';\r\nimport { StartView } from '../../Shared/Enums/StartView';\r\nimport { SelectMode } from '../../Shared/Enums/SelectMode';\r\nimport { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';\r\nimport { formatDate } from '@fullcalendar/core';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DateTimeAdapter, OwlDateTimeIntl } from '@danielmoncada/angular-datetime-picker';\r\nimport * as dateTimeClass from '@danielmoncada/angular-datetime-picker';\r\nimport { DefaultIntl } from '../../Shared/default_intl';\r\n\r\n@Component({\r\n selector: 'BBSF-DateTimePicker',\r\n templateUrl: './DateTimePicker.component.html',\r\n providers: [\r\n { provide: OwlDateTimeIntl, useClass: DefaultIntl }\r\n ],\r\n})\r\nexport class DateInputComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(public datepipe: DatePipe, private onChangeService: OnPagingFiltersChangeService, private ErrorHandler: ErrorMassageValidation, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public DateInputControlHost: FormGroupDirective, private UtilityService: UtilityService, private translate: BBSFTranslateService, private controlValidationService: ControlValidationService, private dateTimeAdapter: DateTimeAdapter<any>) {\r\n DateInputComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: DatePickerOptions;\r\n DatePickerFormControl: AbstractControl;\r\n @Output() OnChange = new EventEmitter();\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n comparedControl: AbstractControl = null;\r\n dateError: boolean = false;\r\n textDir;\r\n startView;\r\n\r\n ngOnInit() {\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n if (this.options.StartView == 3)\r\n this.startView = 'multi-year';\r\n else {\r\n this.startView = (StartView[this.options.StartView] as string).toLowerCase()\r\n }\r\n // Update the DateTimeAdapter Language with the current thread langauge\r\n this.dateTimeAdapter.setLocale(this.UtilityService.getCurrentLanguage() == \"ar\" ? \"ar\" : \"en-UK\");\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.DatePickerFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n this.DatePickerFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n if (this.options.IsDisabled) {\r\n this.DatePickerFormControl.disable();\r\n }\r\n if (this.options.StartControlToCompareWith) {\r\n if (this.group.get(this.options.StartControlToCompareWith)) {\r\n this.comparedControl = this.group.get(this.options.StartControlToCompareWith)\r\n this.subscribeDateChanges()\r\n }\r\n }\r\n\r\n this.DatePickerFormControl.setValidators(this.validationRules);\r\n this.DatePickerFormControl.setAsyncValidators(this.validationRulesasync);\r\n this.DateInputControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n getSelectMode(type: number) {\r\n let Value = (SelectMode[type] as string)\r\n return Value.toLowerCase() as dateTimeClass.SelectMode\r\n }\r\n getPickerType(type: number) {\r\n let Value = (PickerType[type] as string)\r\n return Value.toLowerCase() as dateTimeClass.PickerType\r\n }\r\n getStartView(type: number) {\r\n if (type == 3)\r\n return 'multi-year';\r\n else {\r\n const Value = (StartView[type] as string).toLowerCase()\r\n return Value\r\n }\r\n }\r\n\r\n\r\n onDateSelect(item) {\r\n if (!item)\r\n return;\r\n let DateValue;\r\n var tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds\r\n\r\n if (this.options.SelectMode == 2) {\r\n for (let index = 0; index < item.value.length; index++) {\r\n item.value[index] = new Date(item.value[index] - tzoffset).toISOString().slice(0, -1);\r\n\r\n }\r\n DateValue = item.value;\r\n }\r\n else {\r\n DateValue = new Date(item.value - tzoffset).toISOString().slice(0, -1);\r\n\r\n }\r\n this.DatePickerFormControl.setValue(DateValue)\r\n this.onChangeService.ChangeValue(this.options.Name);\r\n let originalValue = DateValue;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value = originalValue;\r\n this.OnChange.emit(originalValue);\r\n }\r\n\r\n subscribeDateChanges() {\r\n const startDateChanges = this.comparedControl.valueChanges;\r\n const endDateChanges = this.group.get(this.options.Name).valueChanges;\r\n startDateChanges.subscribe(start => {\r\n this.comparedControl.addValidators(this.checkIfStartDateBeForEndDate);\r\n this.comparedControl.updateValueAndValidity();\r\n });\r\n endDateChanges.subscribe(end => {\r\n this.DatePickerFormControl.addValidators(this.checkIfEndDateAfterStartDate);\r\n this.DatePickerFormControl.updateValueAndValidity();\r\n });\r\n }\r\n\r\n checkIfEndDateAfterStartDate = () => {\r\n if (!this.comparedControl.value || !this.group.get(this.options.Name).value) {\r\n return null;\r\n }\r\n if (new Date(this.comparedControl.value) < new Date(this.group.get(this.options.Name).value)) {\r\n this.comparedControl.setErrors(null);\r\n return null;\r\n }\r\n else {\r\n this.comparedControl.setErrors(null);\r\n return { InvalidEndDate: true };\r\n }\r\n };\r\n checkIfStartDateBeForEndDate = () => {\r\n if (!this.comparedControl.value || !this.group.get(this.options.Name).value) {\r\n return null;\r\n }\r\n if (new Date(this.comparedControl.value) < new Date(this.group.get(this.options.Name).value)) {\r\n this.group.get(this.options.Name).setErrors(null);\r\n return null;\r\n }\r\n else {\r\n this.group.get(this.options.Name).setErrors(null);\r\n return { InvalidStartDate: true };\r\n }\r\n };\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.DatePickerFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.DatePickerFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.DatePickerFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.DatePickerFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.DatePickerFormControl)\r\n }\r\n\r\n getDateValue() {\r\n return this.options.Value ? this.datepipe.transform(this.options.Value, 'MMM d, y, h:mm a') : this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","<div class=\"form-group bbsf-control bbsf-datetime-picker\" [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\r\n {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n </label>\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\"\r\n aria-required=\"true\">*</span>\r\n <div *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\">\r\n <!--input-->\r\n <input autocomplete=\"off\" (dateTimeChange)=\"onDateSelect($event)\" [dir]=\"textDir\" class=\"form-control bnsights-control\r\n {{options.ExtraClasses}} \" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" [owlDateTime]=\"dt1\" [owlDateTimeTrigger]=\"dt1\" [class.is-invalid]=\"DatePickerFormControl.invalid &&\r\n DatePickerFormControl.touched\" [min]=\"options.StartDate\" [max]=\"options.EndDate\" [hour12Timer]=\"options.Hour12Timer\"\r\n [selectMode]=\"getSelectMode(options.SelectMode)\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" #Dateinput>\r\n\r\n <owl-date-time [pickerType]=\"getPickerType(options.PickerType)\" [startView]=\"startView\" [firstDayOfWeek]=\"options.FirstDayOfWeek\"\r\n [hour12Timer]=\"options.Hour12Timer\" #dt1></owl-date-time>\r\n <!--icon-->\r\n <span class=\"copy-clipboard\" [owlDateTimeTrigger]=\"dt1\">\r\n <span class=\"svg-icon\">\r\n <svg id=\"Group_356\" data-name=\"Group 356\" xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\" viewBox=\"0\r\n 0 48 48\">\r\n <path id=\"Path_6737\" data-name=\"Path 6737\" d=\"M11.583,1a1,1,0,0,0-2,0V5.7h2Z\" style=\"\"></path>\r\n <path id=\"Path_6738\" data-name=\"Path 6738\" d=\"M38.417,1a1,1,0,0,0-2,0V5.7h2Z\"></path>\r\n <path id=\"Path_6739\" data-name=\"Path 6739\" d=\"M0,43.146C0,45.822,1.826,48,4.07,48H43.928C46.174,48,48,45.822,48,43.146V17.121H0Z\"\r\n fill=\"#d5d5d5\"></path>\r\n <path id=\"Path_6740\" data-name=\"Path 6740\"\r\n d=\"M43.929,5.7H38.417v5.512a1,1,0,1,1-2,0V5.7H11.583v5.512a1,1,0,1,1-2,0V5.7H4.07C1.826,5.7,0,7.877,0,10.555v4.566H48V10.555C48,7.877,46.174,5.7,43.929,5.7Z\"\r\n fill=\"#595959\"></path>\r\n </svg>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <span class=\"readonly-view\">{{getDateValue()}}</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\" *ngIf=\"(DatePickerFormControl.invalid &&\r\n DatePickerFormControl.touched)\">\r\n {{getErrorValidation(DatePickerFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched\r\n )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n</div>","export enum ForceDirection {\r\n English = 1,\r\n Arabic = 2\r\n }","import { Component, OnInit, Input, DoCheck, Optional, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, FormGroupDirective, ControlContainer } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { DropdownOptions } from '../../Shared/Models/DropdownOptions';\r\nimport { DropdownListItem } from '../../Shared/Models/DropdownListItem';\r\nimport { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ForceDirection } from '../../Shared/Enums/ForceDirection';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-DropdownList',\r\n templateUrl: './DropdownList.component.html'\r\n})\r\nexport class DropdownListComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private onChangeService: OnPagingFiltersChangeService, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public DropdownListControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings) {\r\n DropdownListComponent.controlContainerstatic = this.controlContainer;\r\n //console.log(environment[\"BBSF_AdminUrl\"]);\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: DropdownOptions;\r\n DropdownListFormControl: AbstractControl;\r\n dropdownSettings = {};\r\n SelectedItems: DropdownListItem[]\r\n SelectedList: any[] = []\r\n @Output() OnChange = new EventEmitter();\r\n @Output() onClear = new EventEmitter();\r\n\r\n markAllAsTouched: boolean = false;\r\n\r\n controlChanged: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n textDir;\r\n ForceDirection = ForceDirection;\r\n ngOnInit() {\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n this.SelectedList = this.options.SelectedItems\r\n this.dropdownSettings = {\r\n singleSelection: this.options.SingleSelection,\r\n text: \"Select\",\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n enableSearchFilter: this.options.AllowSearchFilter,\r\n classes: this.options.Classes,\r\n disabled: this.options.IsDisabled,\r\n showCheckbox: this.options.ShowCheckbox,\r\n enableCheckAll: this.options.EnableCheckAll,\r\n itemsShowLimit: this.options.ItemsShowLimit,\r\n allowSearchFilter: this.options.AllowSearchFilter,\r\n showSelectedItemsAtTop: true,\r\n limitSelection: this.options.LimitSelection,\r\n searchPlaceholderText: this.options.Placeholder,\r\n labelKey: \"value\",\r\n primaryKey: \"key\"\r\n };\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.DropdownListFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.DropdownListFormControl.setValidators(this.validationRules);\r\n this.DropdownListFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.DropdownListFormControl.disable();\r\n }\r\n\r\n this.DropdownListControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n getSelectedItemValue() {\r\n if (this.options.SelectedItems) {\r\n if (this.options.SingleSelection)\r\n return this.options.DataSource.filter(item => item[this.options.ItemTempletkey] == this.options.SelectedItems)[0][this.options.ItemTempletvalue]\r\n else\r\n return this.options.DataSource.filter(item => this.options.SelectedItems.includes(item[this.options.ItemTempletkey])).map(item => item[this.options.ItemTempletvalue])\r\n } else\r\n return this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n onItemSelect() {\r\n this.onChangeService.ChangeValue(this.options.Name)\r\n let originalValue = this.options.SelectedItems;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n this.OnChange.emit(originalValue)\r\n //console.log(this.DropdownListFormControl.value)\r\n }\r\n Clear() {\r\n //console.log(\"Clear\")\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n this.onChangeService.ChangeValue(this.options.Name)\r\n this.OnChange.emit()\r\n }\r\n onSelectAll(items) {\r\n this.SelectedItems = items;\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n }\r\n onDeselect(items) {\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n if ((this.SelectedItems.length == 0) && this.options.IsRequired == true) {\r\n this.DropdownListFormControl.markAsTouched();\r\n this.DropdownListFormControl.invalid;\r\n\r\n }\r\n\r\n }\r\n onDeselectAll(items) {\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n if ((this.SelectedItems.length == 0) && this.options.IsRequired == true) {\r\n this.DropdownListFormControl.markAsTouched();\r\n this.DropdownListFormControl.invalid;\r\n\r\n }\r\n }\r\n\r\n onDropDownClose() {\r\n if ((this.SelectedItems == undefined || this.SelectedItems.length == 0) && this.options.IsRequired == true) {\r\n this.DropdownListFormControl.markAsTouched();\r\n this.DropdownListFormControl.invalid;\r\n\r\n }\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.DropdownListFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.DropdownListFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.DropdownListFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.DropdownListFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.DropdownListFormControl)\r\n }\r\n\r\n //Update items (data source) of drop down\r\n UpdateDataSource = (dataSource: DropdownListItem[]) => {\r\n this.options.DataSource = dataSource;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","<div class=\"form-group bbsf-control bbsf-dropdown\" [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\"\r\n class=\"text-danger\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\">\r\n <!--input enabled bootstrap select-->\r\n <ng-select class=\"form-control\" *ngIf=\"options.DisableBootstrapSelect==false&&!options.IsReadonly\"\r\n [attr.dir]=\"options.ForceDirection==2?'rtl':'auto'\" (change)=\"onItemSelect()\"\r\n [bindValue]=\"options.ItemTempletkey\" [bindLabel]=\"options.ItemTempletvalue\" [items]=\"options.DataSource\"\r\n [notFoundText]=\"options.NotFoundText\" [maxSelectedItems]=\"options.LimitSelection\"\r\n [searchable]=\"options.AllowSearchFilter\" [multiple]=\"!options.SingleSelection\" [readonly]=\"options.IsDisabled\"\r\n [clearable]=\"true\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\" formControlName=\"{{options.Name}}\" [(ngModel)]=\"options.SelectedItems\"\r\n (change)=\"onItemSelect()\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"DropdownListFormControl.invalid && DropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.SingleSelection ? true : false\">\r\n <!--No checkbox-->\r\n <ng-template *ngIf=\"!options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <label class=\"bbsf-label\" title=\"{{item.disabled ? options.DisabledItemsTooltipValue : ''}}\"\r\n id={{item.key}}>{{item.value}}</label>\r\n </ng-template>\r\n <!--checkbox-->\r\n <ng-template *ngIf=\"options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <div class=\" bbsf-checkbox\">\r\n <div class=\"bbsf-input-container align-items-center\">\r\n <input class=\"bbsf-checkbox-input\" id=\"item-{{index}}\" type=\"checkbox\"\r\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"item$.selected\" />\r\n <div class=\"label-subtext-container\">\r\n <label class=\"bbsf-label\" id={{item.key}}>{{item.value}}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n <!--input disabled bootstrap select-->\r\n <select *ngIf=\"options.DisableBootstrapSelect&&!options.IsReadonly\" class=\"form-control\"\r\n [attr.dir]=\"options.ForceDirection==2?'rtl':'auto'\" (change)=\"onItemSelect()\"\r\n [(ngModel)]=\"options.SelectedItems\" [disabled]=\"options.IsDisabled\" formControlName=\"{{options.Name}}\">\r\n <option value=\"\" disabled>--{{UtilityService.getResourceValue(\"select\")}}--</option>\r\n <option *ngFor=\"let item of options.DataSource\" value=\"{{item.key}}\" [ngValue]=\"item.key\">\r\n {{item.value}}\r\n </option>\r\n </select>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <span class=\"readonly-view\">{{getSelectedItemValue()}}</span>\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\" *ngIf=\"(DropdownListFormControl.invalid && DropdownListFormControl.touched)\">\r\n {{getErrorValidation(DropdownListFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n </div>\r\n </div>\r\n</div>","import { FileDTO } from \"./FileDTO\";\r\n\r\nexport class FileUploadModel \r\n{\r\n \r\n File:FileDTO\r\n}\r\n","import { FileDTO } from \"./FileDTO\";\r\n\r\nexport class MultipleFileUploadModel {\r\n CorrelationID_GUID?: string = null;\r\n UploadedFiles: FileDTO[] = []\r\n ExistingFiles: FileDTO[] = []\r\n RemovedFiles: string[] = []\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n ElementRef,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { FileUploadOptions } from '../../Shared/Models/FileUploadOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { FileUploader, FileLikeObject, FileUploaderOptions } from 'ng2-file-upload';\r\nimport { FileUploadModel } from '../../Shared/Models/FileUploadModel';\r\nimport { MultipleFileUploadModel } from '../../Shared/Models/MultipleFileUploadModel';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { FileDTO } from '../../Shared/Models/FileDTO';\r\n@Component({\r\n selector: 'BBSF-FileUplaod',\r\n templateUrl: './FileUplaod.component.html',\r\n})\r\nexport class FileUploadComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n\r\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\r\n\r\n isSubmitted: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: FileUploadOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n fileUploadFormControl: AbstractControl;\r\n ValidationMessage = '';\r\n ValidationCountMessage = '';\r\n uploader: FileUploader;\r\n hasAnotherDropZoneOver: boolean;\r\n AcceptedType: string = '';\r\n AcceptedTypeArray: string[] = [];\r\n ToolTipTypeArray: string[] = [];\r\n FileLikeObject: FileLikeObject;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n fileUploadModel: FileUploadModel;\r\n multipleFileUploadModel: MultipleFileUploadModel;\r\n file: any;\r\n deletedFiles: FileDTO[] = [];\r\n\r\n constructor(\r\n @Optional() private controlContainer: ControlContainer,\r\n public MultipleFileUplaodControlHost: FormGroupDirective,\r\n private controlUtility: ControlUtility,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n FileUploadComponent.controlContainerstatic = this.controlContainer;\r\n this.uploader = new FileUploader({\r\n disableMultipart: false, // 'DisableMultipart' must be 'true' for formatDataFunction to be called.\r\n } as FileUploaderOptions);\r\n this.hasAnotherDropZoneOver = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.fileUploadModel = new FileUploadModel();\r\n this.multipleFileUploadModel = new MultipleFileUploadModel();\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.Value == null) {\r\n if (this.options.IsMultipleFile == true) {\r\n //this.options.Value=this.multipleFileUploadModel\r\n } else {\r\n // this.options.Value=this.fileUploadModel\r\n }\r\n } else {\r\n if (this.options.IsMultipleFile == true) {\r\n let files: any[] = [];\r\n this.multipleFileUploadModel.ExistingFiles =\r\n this.options.Value.ExistingFiles;\r\n this.multipleFileUploadModel.UploadedFiles = [];\r\n for (\r\n let index = 0;\r\n index < this.options.Value.ExistingFiles.length;\r\n index++\r\n ) {\r\n const element = this.options.Value.ExistingFiles[index];\r\n var bytes = new Uint8Array(element.Bytes) as any;\r\n var base64 = btoa(String.fromCharCode(null, bytes));\r\n this.FileLikeObject = <FileLikeObject>{\r\n name: element.NameWithExtension,\r\n type: element.MimeType,\r\n rawFile: <any>base64\r\n };\r\n // let blob: any;\r\n // blob = new Blob(['']) as any;\r\n // blob.name = element.FileName;\r\n // blob.lastModifiedDate = null;\r\n // blob.webkitRelativePath = '';\r\n let file = this.FileLikeObject as any;\r\n file.url = element.FileURL;\r\n files.push(file);\r\n }\r\n this.uploader.addToQueue(files);\r\n console.log(this.uploader.queue);\r\n } else {\r\n const element = this.options.Value;\r\n var bytes = new Uint8Array(element.Bytes) as any;\r\n var base64 = btoa(String.fromCharCode(null, bytes));\r\n this.FileLikeObject = <FileLikeObject>{\r\n name: element.NameWithExtension,\r\n type: element.MimeType,\r\n rawFile: <any>base64,\r\n };\r\n this.file = element;\r\n let file = this.FileLikeObject as any;\r\n file.url = element.FileURL;\r\n this.uploader.addToQueue([file as any]);\r\n }\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n for (\r\n let index = 0;\r\n index < this.options.FileUploadAcceptsTypes.length;\r\n index++\r\n ) {\r\n const Type = this.options.FileUploadAcceptsTypes[index];\r\n this.AcceptedType = this.AcceptedType + Type + ',';\r\n }\r\n this.AcceptedTypeArray = this.AcceptedType.split(',');\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n switch (element) {\r\n case 'application/pdf':\r\n if (!this.ToolTipTypeArray.includes('PDF'))\r\n this.ToolTipTypeArray.push('PDF');\r\n break;\r\n case 'application/msword':\r\n if (!this.ToolTipTypeArray.includes('Word'))\r\n this.ToolTipTypeArray.push('Word');\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n if (!this.ToolTipTypeArray.includes('Word'))\r\n this.ToolTipTypeArray.push('Word');\r\n break;\r\n case 'application/vnd.ms-excel':\r\n if (!this.ToolTipTypeArray.includes('Excel'))\r\n this.ToolTipTypeArray.push('Excel');\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\r\n if (!this.ToolTipTypeArray.includes('Excel'))\r\n this.ToolTipTypeArray.push('Excel');\r\n break;\r\n case 'application/vnd.ms-powerpoint':\r\n if (!this.ToolTipTypeArray.includes('PowerPoint'))\r\n this.ToolTipTypeArray.push('PowerPoint');\r\n break;\r\n case 'applicationapplication/vnd.openxmlformats-officedocument.presentationml.presentation':\r\n if (!this.ToolTipTypeArray.includes('PowerPoint'))\r\n this.ToolTipTypeArray.push('PowerPoint');\r\n break;\r\n case \"image/png\":\r\n if (!this.ToolTipTypeArray.includes('PNG'))\r\n this.ToolTipTypeArray.push('PNG');\r\n break;\r\n case \"image/bmp\":\r\n if (!this.ToolTipTypeArray.includes('BMP'))\r\n this.ToolTipTypeArray.push('BMP');\r\n break;\r\n case \"image/jpeg\":\r\n if (!this.ToolTipTypeArray.includes('JPEG'))\r\n this.ToolTipTypeArray.push('JPEG');\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n `${this.UtilityService.getResourceValue('Extensions')} (${this.ToolTipTypeArray\r\n }) `;\r\n }\r\n if (this.options.FileMaxSizeInMB > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n `<br /> ${this.UtilityService.getResourceValue('FileMaxSizeInMB') + this.options.FileMaxSizeInMB} `;\r\n }\r\n\r\n if (this.options.MinNoOfFiles > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n `<br /> ${this.UtilityService.getResourceValue(\"MinFileCountValidationKey\") + this.options.MinNoOfFiles}`;\r\n }\r\n\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.fileUploadFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if (this.options.IsMultipleFile && this.options.MaxNoOfFiles > 0) {\r\n this.ValidationCountMessage = `${this.UtilityService.getResourceValue('MaxFilesCount')} : ${this.options.MaxNoOfFiles}`;\r\n }\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n this.fileUploadFormControl.setValidators(this.validationRules);\r\n this.fileUploadFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.fileUploadFormControl.disable();\r\n }\r\n\r\n this.MultipleFileUplaodControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n\r\n this.fileUploadFormControl.setValue(this.options.Value);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(\r\n this.options.AttributeList[index].Key,\r\n this.options.AttributeList[index].value\r\n );\r\n }\r\n }\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(\r\n ErrorList,\r\n this.group,\r\n this.options\r\n );\r\n }\r\n\r\n fileOverAnother(event: any): void {\r\n this.hasAnotherDropZoneOver = event;\r\n }\r\n isHideInput() {\r\n if (this.options.IsMultipleFile) {\r\n if (\r\n this.options.MaxNoOfFiles != null &&\r\n this.options.MaxNoOfFiles > 0 &&\r\n this.options.MaxNoOfFiles == this.uploader.queue.length\r\n ) {\r\n return true;\r\n }\r\n } else {\r\n if (this.uploader.queue.length > 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n onFileChange() {\r\n let FilesArray = [];\r\n if (\r\n this.options.IsMultipleFile &&\r\n this.options.MinNoOfFiles != null &&\r\n this.options.MinNoOfFiles > 0 &&\r\n this.options.MinNoOfFiles > this.uploader.queue.length\r\n ) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n MinFileCountValidationKey: this.options.MinNoOfFiles,\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n\r\n if (\r\n this.options.IsMultipleFile &&\r\n this.options.MaxSizeForAllFilesInMB != null &&\r\n this.options.MaxSizeForAllFilesInMB > 0\r\n ) {\r\n let AllSizeFile = 0;\r\n for (let index = 0; index < this.uploader.queue.length; index++) {\r\n const element = this.uploader.queue[index];\r\n const file = element.file;\r\n AllSizeFile = AllSizeFile + file.size;\r\n }\r\n const MaxSizeForAllFiles =\r\n this.options.MaxSizeForAllFilesInMB * 1000 * 1000;\r\n if (AllSizeFile > MaxSizeForAllFiles) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n MaxSizeForAllFilesInMB: this.options.MaxSizeForAllFilesInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n }\r\n let AddedQueue = this.uploader.queue.filter(\r\n (object) => object['some'].lastModified != null\r\n );\r\n for (let index = 0; index < AddedQueue.length; index++) {\r\n const element = AddedQueue[index];\r\n const file = element.file;\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n if (file) {\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0 &&\r\n !(\r\n this.AcceptedTypeArray.includes(fileType.toUpperCase()) ||\r\n this.AcceptedTypeArray.includes(fileType.toLowerCase())\r\n )\r\n ) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({ ToolTipTypeError: this.ToolTipTypeArray });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n let reader = new FileReader();\r\n let fileObject = file.rawFile as any;\r\n reader.readAsDataURL(fileObject);\r\n reader.onload = () => {\r\n let existingID_GUID = null;\r\n if (!this.options.IsMultipleFile && this.file)\r\n existingID_GUID =\r\n this.file.NameWithExtension == file.name\r\n ? this.file.ID_GUID\r\n : null;\r\n\r\n let AddedFile = {\r\n FileName: file.name,\r\n FileType: file.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: file.size / 1000 / 1000,\r\n NameWithExtension: file.name,\r\n ID_GUID: existingID_GUID,\r\n };\r\n if (this.options.IsMultipleFile == false) {\r\n this.fileUploadModel = new FileUploadModel();\r\n this.fileUploadModel.File = AddedFile;\r\n\r\n this.fileUploadFormControl.setValue(this.fileUploadModel);\r\n this.group.get(this.options.Name).setValue(this.fileUploadModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.fileUploadModel;\r\n } else {\r\n FilesArray.push(AddedFile);\r\n this.multipleFileUploadModel.UploadedFiles = FilesArray;\r\n if (this.options.Value != null && this.options.Value != undefined) {\r\n if (this.options.Value.CorrelationID_GUID == null) {\r\n this.multipleFileUploadModel.RemovedFiles = [];\r\n }\r\n }\r\n this.multipleFileUploadModel.CorrelationID_GUID = this.options.Value?.CorrelationID_GUID\r\n this.fileUploadFormControl.setValue(this.multipleFileUploadModel);\r\n this.group\r\n .get(this.options.Name)\r\n .setValue(this.multipleFileUploadModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.multipleFileUploadModel;\r\n }\r\n };\r\n let originalValue = this.group.get(this.options.Name).value;\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.group.get(this.options.Name).valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n this.OnChange.emit(originalValue);\r\n }\r\n }\r\n }\r\n removeFromControlValue(item) {\r\n if (this.options.IsMultipleFile == false) {\r\n this.fileUploadModel = null;\r\n if (this.options.IsRequired == true) {\r\n this.fileUploadFormControl.markAsTouched();\r\n this.fileUploadFormControl.invalid;\r\n }\r\n this.group.get(this.options.Name).setValue(this.fileUploadModel);\r\n this.options.Value = this.fileUploadModel;\r\n } else {\r\n if (this.options.Value != null && this.options.Value != undefined) {\r\n if (this.options.Value.CorrelationID_GUID == null) {\r\n this.deletedFiles = [];\r\n this.multipleFileUploadModel.RemovedFiles = [];\r\n } else {\r\n if (this.multipleFileUploadModel.RemovedFiles.length == 0) {\r\n let FileObject = item.file.rawFile;\r\n let DeletedItem = this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension == FileObject.name\r\n )[0];\r\n this.multipleFileUploadModel.ExistingFiles =\r\n this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension != FileObject.name\r\n );\r\n this.deletedFiles.push(DeletedItem);\r\n this.multipleFileUploadModel.RemovedFiles.push(DeletedItem.ID_GUID);\r\n } else {\r\n let FileObject = item.file.rawFile;\r\n let deletedList = this.deletedFiles.filter(\r\n (Object) => Object.NameWithExtension == FileObject.name\r\n );\r\n if (deletedList.length == 0 || deletedList == undefined) {\r\n let DeletedItem =\r\n this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension == FileObject.name\r\n )[0];\r\n this.multipleFileUploadModel.ExistingFiles =\r\n this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension != FileObject.name\r\n );\r\n this.deletedFiles.push(DeletedItem);\r\n this.multipleFileUploadModel.RemovedFiles.push(\r\n DeletedItem.ID_GUID\r\n );\r\n }\r\n }\r\n }\r\n } else {\r\n this.deletedFiles = [];\r\n this.multipleFileUploadModel.RemovedFiles = [];\r\n }\r\n this.multipleFileUploadModel.UploadedFiles =\r\n this.multipleFileUploadModel.UploadedFiles.filter(\r\n (Object) => Object.NameWithExtension != item._file.name\r\n );\r\n if (\r\n (this.multipleFileUploadModel.UploadedFiles == null ||\r\n this.multipleFileUploadModel.UploadedFiles.length == 0) &&\r\n this.options.IsRequired\r\n ) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n MinFileCountValidationKey: this.options.MinNoOfFiles,\r\n });\r\n this.fileUploadFormControl.markAsTouched();\r\n this.fileUploadFormControl.invalid;\r\n }\r\n this.multipleFileUploadModel.CorrelationID_GUID = this.options.Value?.CorrelationID_GUID\r\n this.fileUploadFormControl.setValue(this.multipleFileUploadModel);\r\n this.group.get(this.options.Name).setValue(this.multipleFileUploadModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.multipleFileUploadModel;\r\n }\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.fileUploadFormControl);\r\n };\r\n}\r\n","<div class=\"form-group bbsf-control bbsf-file-upload\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"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 <!--Allow dropZone-->\r\n <div ng2FileDrop class=\"bbsf-input-container {{options.ExtraClasses}}\"\r\n *ngIf=\"(options.IsDropZone)&&(!((options.IsMultipleFile==false)&&(uploader.queue.length)>0))&&!options.IsReadonly\"\r\n [ngClass]=\"{'another-file-over-class': hasAnotherDropZoneOver}\" (onFileDrop)=\"onFileChange()\" (fileOver)=\"fileOverAnother($event)\"\r\n [uploader]=\"uploader\" [accept]=\"AcceptedType\" (change)=\"onFileChange()\" id=\"{{options.Name}}\"\r\n multiple=\"{{options.IsMultipleFile?'multiple':''}}\" aria-describedby=\"email-error\" aria-invalid=\"true\" type=\"file\"\r\n formControlName=\"{{options.Name}}\" #fileInput [class.is-invalid]=\"fileUploadFormControl.invalid && fileUploadFormControl.touched\">\r\n <div class=\"dropzone-label\">\r\n <div class=\"svg-and-validation\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\"\r\n d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\"\r\n fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg text-center\">{{UtilityService.getResourceValue(\"DragAndDropHere\")}} </div>\r\n <div class=\"bbsf-validation-msg text-center\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n <div class=\"bbsf-validation-msg ng-star-inserted text-center text-danger\"\r\n *ngIf=\"ValidationCountMessage &&options.IsMultipleFile &&options.MaxNoOfFiles>0\" [innerHTML]=\"ValidationCountMessage\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Not allowed dropZone-->\r\n <div class=\"bbsf-input-container\" *ngIf=\"(!options.IsDropZone)&&!(isHideInput())&&!options.IsReadonly\" (click)=\"fileInput.click();\">\r\n <div class=\"dropzone-label\">\r\n <div class=\"svg-and-validation\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\"\r\n d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\"\r\n fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg text-center\">{{UtilityService.getResourceValue(\"Upload\")}} </div>\r\n <div class=\"bbsf-validation-msg text-center\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n <div class=\"bbsf-validation-msg ng-star-inserted text-center text-danger\"\r\n *ngIf=\"ValidationCountMessage &&options.IsMultipleFile &&options.MaxNoOfFiles>0\" [innerHTML]=\"ValidationCountMessage\"></div>\r\n </div>\r\n </div>\r\n <input ng2FileSelect [uploader]=\"uploader\" [accept]=\"AcceptedType\"\r\n class=\"fileSelector customFileUploadPlacment hidden v-required-multiplefiles d-none\" multiple=\"{{options.IsMultipleFile?'multiple':''}}\"\r\n name=\"file\" type=\"file\" value=\"\" autocomplete=\"off\" (change)=\"onFileChange()\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\"\r\n id=\"{{options.Name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\" #fileInput\r\n [class.is-invalid]=\"fileUploadFormControl.invalid && fileUploadFormControl.touched\">\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly && !options.Value\">\r\n <span class=\"readonly-view\">{{UtilityService.getResourceValue('NA')}}</span>\r\n </div>\r\n </div>\r\n <!--items uploaded-->\r\n <div class=\"uploaded-items\">\r\n <div class=\"btn-group\" *ngFor=\"let item of uploader.queue\">\r\n <a href=\"{{ item?.file?.rawFile }}\" class=\"btn btn-download-file btn-sm\" download>\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M21 22H3C2.4 22 2 21.6 2 21C2 20.4 2.4 20 3 20H21C21.6 20 22 20.4 22 21C22 21.6 21.6 22 21 22ZM13 13.4V3C13 2.4 12.6 2 12 2C11.4 2 11 2.4 11 3V13.4H13Z\"\r\n fill=\"currentColor\"></path>\r\n <path opacity=\"0.3\" d=\"M7 13.4H17L12.7 17.7C12.3 18.1 11.7 18.1 11.3 17.7L7 13.4Z\" fill=\"currentColor\"></path>\r\n </svg>\r\n <span class=\"file-name\">{{ item?.file?.name }}</span>\r\n </a>\r\n <button *ngIf=\"!options.IsReadonly\" class=\"btn btn-download-file btn-sm btn-danger\" (click)=\"item.remove();removeFromControlValue(item)\">\r\n <i class=\"fa fa-times px-0\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(fileUploadFormControl.invalid && fileUploadFormControl.touched)\">\r\n {{getErrorValidation(fileUploadFormControl.errors|keyvalue)}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\"> {{options.LabelDescription}}</div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n</div>","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ControlValidationService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { Observable } from 'rxjs';\r\nimport { PagingActionMode } from '../../Shared/Enums/PagingActionMode';\r\nimport { FormOptions } from '../../Shared/Models/FormOptions';\r\nimport { PagingComponent } from '../Paging/Paging.component';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-Form',\r\n templateUrl: './Form.component.html',\r\n})\r\nexport class FormComponent implements OnInit {\r\n\r\n fromName: string;\r\n isChange: boolean = null;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n constructor(private controlUtility: ControlUtility, private utilityService: UtilityService, private controlValidationService: ControlValidationService, private modalService: NgbModal, private ngbActiveModal: NgbActiveModal, private router: Router,\r\n ) {\r\n }\r\n @Input() options: FormOptions;\r\n\r\n ngOnInit() {\r\n this.fromName = this.randomString(5)\r\n }\r\n ngAfterViewInit(): void {\r\n this.options.FormGroup.valueChanges.subscribe((es) => {\r\n this.OnChange.emit(true);\r\n\r\n });\r\n }\r\n\r\n submit() {\r\n this.options.FormGroup.markAllAsTouched()\r\n if (this.options.FormGroup.invalid) {\r\n this.showGlobalError();\r\n return\r\n }\r\n else {\r\n\r\n let submitModel = this.options.GetModelFunction() as any[]\r\n let submittedService = this.options.ServiceSubmitFunction.apply(null, submitModel) as Observable<any>\r\n submittedService.subscribe(\r\n (result) => {\r\n if (!this.options.DisableModalDismiss) {\r\n //Dismiss closest modal of the form only\r\n let modal = document.getElementById(this.fromName).closest('.modal.show');\r\n if (modal) {\r\n let closeButton = modal.querySelector(\"[data-dismiss='modal']\") as any\r\n closeButton.click();\r\n }\r\n }\r\n if (!this.options.DisableSuccessNotification)\r\n this.utilityService.notifySuccessMessage()\r\n if (this.options.OnSuccessHandler)\r\n this.options.OnSuccessHandler(result)\r\n if (!this.options.DisableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n if (this.options.PagingReference) {\r\n let paging = this.options.PagingReference;\r\n this.options.PagingActionMode == PagingActionMode.Reinitialize ? paging.ReinitializePaging() : paging.UpdatePaging();\r\n }\r\n }, (error) => {\r\n if (this.options.OnErrorHandler)\r\n this.options.OnErrorHandler(error)\r\n else\r\n this.handleError(error)\r\n })\r\n\r\n }\r\n\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage()\r\n }\r\n else {\r\n this.controlValidationService.renderServerErrors(this.options.FormGroup, err, new RequestOptionsModel(), this.fromName)\r\n }\r\n if (!this.options.DisableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError(this.fromName)\r\n }\r\n randomString(length) {\r\n var randomChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n var result = '';\r\n for (var i = 0; i < length; i++) {\r\n result += randomChars.charAt(Math.floor(Math.random() * randomChars.length));\r\n }\r\n return result;\r\n }\r\n\r\n\r\n}\r\n\r\n","<form id=\"{{fromName}}\" [FormGroup]=\"options.FormGroup\" (ngSubmit)=\"submit()\">\r\n\r\n <ng-template #content><ng-content></ng-content></ng-template>\r\n\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n</form>\r\n","import { Component, OnInit, Input, DoCheck, Optional, NgZone, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { HtmlEditorOptions } from '../../Shared/Models/HtmlEditorOptions';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-HtmlEditor',\r\n templateUrl: './HtmlEditor.component.html'\r\n})\r\nexport class HtmlEditorComponent implements OnInit {\r\n\r\n editorConfig: AngularEditorConfig\r\n static controlContainerstatic = null;\r\n constructor(private zone: NgZone, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public HtmlEditorControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n HtmlEditorComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: HtmlEditorOptions;\r\n @Output() OnChange = new EventEmitter();\r\n HtmlEditorFormControl: AbstractControl;\r\n WordCount: number = 0;\r\n WordCountArray: number = 0;\r\n markAllAsTouched: boolean = false;\r\n Config: any\r\n miscList: any\r\n styleList: any\r\n fontsizeList: any\r\n paraList: any\r\n insertList: any\r\n validationRules = [];\r\n validationRulesasync = [];\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.editorConfig = {\r\n editable: !this.options.IsDisabled,\r\n spellcheck: true,\r\n height: `${this.options.Height}rem`,\r\n minHeight: `${this.options.Height}rem`,\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: this.options.Placeholder,\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n {class: 'arial', name: 'Arial'},\r\n {class: 'times-new-roman', name: 'Times New Roman'},\r\n {class: 'calibri', name: 'Calibri'},\r\n {class: 'comic-sans-ms', name: 'Comic Sans MS'}\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: false,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n [\r\n 'link',\r\n 'unlink',\r\n 'insertImage',\r\n 'insertVideo',\r\n 'insertHorizontalRule',\r\n ]\r\n ]\r\n };\r\n this.controlValidationService.isCreatedBefor = false\r\n // this.miscList = this.options.ToolsList_Misc != null ? this.options.ToolsList_Misc : ['codeview', 'undo', 'redo'];\r\n // this.styleList = this.options.ToolsList_Style != null ? this.options.ToolsList_Style : ['bold', 'italic', 'underline', 'clear']\r\n // this.fontsizeList = this.options.ToolsList_FontSize != null ? this.options.ToolsList_FontSize : ['fontname', 'fontsize', 'color']\r\n // this.paraList = this.options.ToolsList_Para != null ? this.options.ToolsList_Para : ['style', 'ul', 'ol', 'paragraph', 'height']\r\n // this.insertList = this.options.ToolsList_Insert != null ? this.options.ToolsList_Insert : ['table', 'picture', 'link', 'video', 'hr']\r\n\r\n // this.Config = {\r\n // callbacks: {\r\n // // onChange: (e) => {\r\n\r\n // // this.zone.run(() => {\r\n // // this.onTextChange();\r\n // // });\r\n // // },\r\n // // onKeyup: (e) => {\r\n // // this.zone.run(() => {\r\n // // ;\r\n // // this.onTextChange();\r\n // // });\r\n // // },\r\n // // onKeydown: (e) => {\r\n // // this.zone.run(() => {\r\n // // ;\r\n // // if (this.WordCountArray > this.options.MaxWordCount && e.keyCode != 8) {\r\n // // e.preventDefault();\r\n // // }\r\n\r\n // // });\r\n // // }\r\n // },\r\n // placeholder: this.options.Placeholder,\r\n // height: `${this.options.Height}px`,\r\n // toolbar: [\r\n // ['misc', this.miscList],\r\n // ['style', this.styleList],\r\n // ['fontsize', this.fontsizeList],\r\n // ['para', this.paraList],\r\n // ['insert', this.insertList]\r\n // ],\r\n // fontNames: ['Helvetica', 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Roboto', 'Times']\r\n\r\n // }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.HtmlEditorFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n this.HtmlEditorFormControl.setValue(this.options.Value);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n\r\n if (this.options.MinLength > 0) {\r\n this.validationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.validationRules.push(Validators.maxLength(this.options.MaxLength));\r\n }\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.HtmlEditorFormControl.setValidators(this.validationRules);\r\n this.HtmlEditorFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.HtmlEditorFormControl.disable();\r\n }\r\n\r\n this.HtmlEditorControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n\r\n ngAfterViewChecked(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n\r\n let angularEditor = document.getElementsByClassName(\"angular-editor-toolbar ng-star-inserted\")[0]\r\n let dir =this.UtilityService.getCurrentLanguage()==\"en\"?\"ltr\":\"rtl\"\r\n angularEditor.setAttribute(\"dir\",dir);\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n onValueChanged() {\r\n this.HtmlEditorFormControl.setValue(this.HtmlEditorFormControl.value.trim());\r\n let originalValue = this.controlUtility.trimControlValue(this.HtmlEditorFormControl.value);\r\n if (this.options.PatchFunction && this.options.PatchPath && this.HtmlEditorFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value=originalValue;\r\n this.OnChange.emit(originalValue)\r\n }\r\n\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.HtmlEditorFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.HtmlEditorFormControl, this.validationRules, this.options)\r\n }\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.HtmlEditorFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.HtmlEditorFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.HtmlEditorFormControl)\r\n }\r\n\r\n}\r\n\r\n\r\n","\r\n<div class=\"form-group bbsf-control bbsf-htmleditor\" [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 <div *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\">\r\n <angular-editor\r\n (change)=\"onValueChanged()\"\r\n id=\"{{options.Name}}\"\r\n [class.is-invalid]=\"HtmlEditorFormControl.invalid && HtmlEditorFormControl.touched\"\r\n class=\"{{options.ExtraClasses}}\"\r\n [dir]=\"textDir\" formControlName=\"{{options.Name}}\"\r\n [config]=\"editorConfig\"></angular-editor>\r\n </div>\r\n\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\" [innerHTML]=\"options.Value\"></span>\r\n\r\n </div>\r\n <div class=\"subtext-container\">\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\" *ngIf=\"(HtmlEditorFormControl.invalid && HtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(HtmlEditorFormControl.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","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n ElementRef,\r\n NgZone,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { FileUploader, FileLikeObject, FileUploaderOptions } from 'ng2-file-upload';\r\nimport { FileDTO } from '../../Shared/Models/FileDTO';\r\nimport { ImageUploadOptions } from '../../Shared/Models/ImageUploadOptions';\r\nimport { CropperComponent } from 'angular-cropperjs';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'BBSF-ImageUpload',\r\n templateUrl: './ImageUpload.component.html',\r\n})\r\nexport class ImageUploaderComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n\r\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\r\n files: File[] = [];\r\n ImageSource: string;\r\n isSubmitted: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: ImageUploadOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ImageUploadFormControl: AbstractControl;\r\n ValidationMessage = '';\r\n uploader: FileUploader;\r\n hasAnotherDropZoneOver: boolean;\r\n AcceptedType: string = '';\r\n AcceptedTypeArray: string[] = [];\r\n ToolTipTypeArray: string[] = [];\r\n FileLikeObject: FileLikeObject;\r\n control: FormControl;\r\n @ViewChild('angularCropper', { static: false })\r\n public angularCropper: CropperComponent;\r\n imgUrl = null;\r\n config = null;\r\n imageUrl = '';\r\n imgwUrl = '';\r\n EventFile: any;\r\n mdlSampleIsOpen: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n maxFileSize: number = 0;\r\n constructor(\r\n private zone: NgZone,\r\n private controlUtility: ControlUtility,\r\n @Optional() private controlContainer: ControlContainer,\r\n public ImageUplaoderControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings,\r\n private modalService: NgbModal\r\n ) {\r\n ImageUploaderComponent.controlContainerstatic = this.controlContainer;\r\n this.uploader = new FileUploader(<FileUploaderOptions>{\r\n disableMultipart: false, // 'DisableMultipart' must be 'true' for formatDataFunction to be called.\r\n });\r\n this.hasAnotherDropZoneOver = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (!this.options.DefaultImageSrc)\r\n this.options.DefaultImageSrc = this.globalSettings.DefaultImageSrc;\r\n\r\n //Set img src by default value\r\n // this.ImageSource = this.options.DefaultImageSrc;\r\n\r\n if (this.options.AllowImageCropper) {\r\n this.config = {\r\n aspectRatio:\r\n this.options.ImageCropperWidth / this.options.ImageCropperHeight,\r\n dragMode: 'move',\r\n background: true,\r\n movable: true,\r\n rotatable: true,\r\n scalable: true,\r\n zoomable: true,\r\n viewMode: 1,\r\n checkImageOrigin: true,\r\n modal: true,\r\n checkCrossOrigin: false,\r\n width: this.options.ImageCropperWidth,\r\n height: this.options.ImageCropperHeight,\r\n cropBoxResizable: false,\r\n autoCrop: true,\r\n };\r\n }\r\n\r\n if (this.options.FileUploadAcceptsTypes != null) {\r\n this.options.FileUploadAcceptsTypes;\r\n }\r\n if (this.options.Value != null) {\r\n let imgURL = this.options.Value['fileURL'];\r\n if (imgURL != '' && imgURL != undefined && imgURL != null) {\r\n this.ImageSource = imgURL;\r\n this.imageUrl = imgURL;\r\n }\r\n\r\n let element = this.options.Value;\r\n this.FileLikeObject = new FileLikeObject(<File>{\r\n name: element.FileName,\r\n size: element.FileSizeInMB * 1000 * 1000,\r\n type: element.FileType,\r\n });\r\n this.uploader.addToQueue([this.FileLikeObject as any]);\r\n }\r\n\r\n if (this.options.FileMaxSizeInMB)\r\n this.maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n for (\r\n let index = 0;\r\n index < this.options.FileUploadAcceptsTypes.length;\r\n index++\r\n ) {\r\n const Type = this.options.FileUploadAcceptsTypes[index];\r\n this.AcceptedType = this.AcceptedType.toUpperCase() + Type.toUpperCase();\r\n }\r\n this.AcceptedTypeArray = this.AcceptedType.split(',');\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n const TypeToolTipe = element.split('/')[1];\r\n this.ToolTipTypeArray.push(TypeToolTipe.toUpperCase());\r\n }\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n this.UtilityService.getResourceValue('AllowedTypes') +\r\n ` (${this.ToolTipTypeArray}) `;\r\n }\r\n if (this.options.FileMaxSizeInMB > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n ` <br /> ${this.UtilityService.getResourceValue('FileMaxSizeInMB')} ${this.options.FileMaxSizeInMB\r\n }`;\r\n }\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ImageUploadFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.Value != null)\r\n this.group.get(this.options.Name).setValue(this.options.Value);\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n this.ImageUploadFormControl.setValidators(this.validationRules);\r\n this.ImageUploadFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.ImageUploadFormControl.disable();\r\n }\r\n this.ImageUplaoderControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(\r\n this.options.AttributeList[index].Key,\r\n this.options.AttributeList[index].value\r\n );\r\n }\r\n }\r\n }\r\n showImageUploader(element: HTMLElement) {\r\n let input = element.parentElement.parentElement.querySelector(\r\n 'input[type=file]'\r\n ) as HTMLElement;\r\n input.click();\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(\r\n ErrorList,\r\n this.group,\r\n this.options\r\n );\r\n }\r\n\r\n onFileChange(event) {\r\n if (event.rejectedFiles.length > 0) {\r\n const file = event.rejectedFiles[0];\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0 &&\r\n !(\r\n this.AcceptedTypeArray.includes(fileType.toUpperCase()) ||\r\n this.AcceptedTypeArray.includes(fileType.toLowerCase())\r\n )\r\n ) {\r\n const formControl = this.ImageUploadFormControl;\r\n formControl.setErrors({ ToolTipTypeError: this.ToolTipTypeArray });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n }\r\n let FilesArray = [];\r\n for (let index = 0; index < event.addedFiles.length; index++) {\r\n const file = event.addedFiles[0];\r\n this.EventFile = file;\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n if (file) {\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n let reader = new FileReader();\r\n let FileObject = file;\r\n reader.readAsDataURL(FileObject);\r\n reader.onload = () => {\r\n if (this.options.AllowImageCropper) {\r\n this.imageUrl = reader.result.toString();\r\n this.openModal(true);\r\n } else {\r\n let FileObject: FileDTO = {\r\n FileName: file.name,\r\n FileType: file.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: file.size / 1000 / 1000,\r\n NameWithExtension: file.name,\r\n };\r\n this.options.Value = FileObject;\r\n FilesArray.push(FileObject);\r\n this.group.get(this.options.Name).setValue(FileObject);\r\n this.files = [];\r\n this.files.push(...event.addedFiles);\r\n }\r\n let originalValue = this.ImageUploadFormControl.value;\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.ImageUploadFormControl.valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value = originalValue;\r\n this.OnChange.emit(originalValue);\r\n };\r\n }\r\n }\r\n }\r\n\r\n removeFromControlValue(event) {\r\n let ItemList = this.group.get(this.options.Name).value;\r\n this.files = [];\r\n ItemList = null;\r\n //Set Img src by default image (upload)\r\n this.ImageSource = this.options.DefaultImageSrc;\r\n\r\n if (this.files.length == 0 && this.options.IsRequired) {\r\n this.ImageUploadFormControl.markAsTouched();\r\n this.ImageUploadFormControl.setErrors(Validators.required);\r\n this.ImageUploadFormControl.invalid;\r\n }\r\n this.group.get(this.options.Name).setValue(ItemList);\r\n this.OnChange.emit(this.group.get(this.options.Name).value);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.group.get(this.options.Name).value;\r\n }\r\n\r\n cropImage() {\r\n let ImageCropperObject = this.angularCropper.cropper.getCroppedCanvas({\r\n width: this.options.ImageCropperWidth,\r\n height: this.options.ImageCropperHeight,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n ImageCropperObject.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getBlobFile(blob);\r\n });\r\n });\r\n }\r\n\r\n getBlobFile(blob) {\r\n let FilesArray = [];\r\n let BlobFile;\r\n let reader = new FileReader();\r\n BlobFile = blob;\r\n reader.readAsDataURL(BlobFile);\r\n reader.onload = () => {\r\n let FileObject: FileDTO = {\r\n FileName: this.EventFile.name,\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n NameWithExtension: this.EventFile.name,\r\n };\r\n BlobFile.name = this.EventFile.name;\r\n\r\n FilesArray.push(FileObject);\r\n this.group.get(this.options.Name).setValue(FileObject);\r\n this.options.Value = FileObject;\r\n this.files = [];\r\n this.files.push(BlobFile);\r\n this.openModal(false);\r\n };\r\n }\r\n\r\n rotateImage(degree: number) {\r\n this.angularCropper.cropper.rotate(degree);\r\n }\r\n moveImage(offsetX: number, offsetY: number) {\r\n this.angularCropper.cropper.move(offsetX, offsetY);\r\n }\r\n zoomImage(ratio: number) {\r\n this.angularCropper.cropper.zoom(ratio);\r\n }\r\n\r\n openModal(open: boolean): void {\r\n this.mdlSampleIsOpen = open;\r\n }\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ImageUploadFormControl);\r\n };\r\n}\r\n","<div class=\"form-group bbsf-control bbsf-image-upload\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"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 <!--Allow dropZone-->\r\n <div *ngIf=\"options.AllowDropZone&&!options.IsReadonly\" class=\"bbsf-input-container {{options.ExtraClasses}}\" ngx-dropzone\r\n [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\" (change)=\"onFileChange($event)\" ngDefaultControl\r\n formControlName=\"{{options.Name}}\" [maxFileSize]=\"maxFileSize\" id=\"{{options.Name}}\"\r\n [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"dropzone-label\">\r\n <img *ngIf=\"ImageSource\" [src]=\"ImageSource\"\r\n style=\"align-items: center;border-radius: 5px;display: flex;height: 100px;justify-content: center;margin: 10px;max-width: 180px;min-height: 100px;min-width: 180px;padding: 0px 20px;position: relative;\" />\r\n <div class=\"svg-and-validation\" *ngIf=\"!ImageSource\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\"\r\n d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\"\r\n fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n </div>\r\n </ngx-dropzone-label>\r\n <ngx-dropzone-image-preview class=\"dropzone-preview\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n <!--Not allowed dropZone-->\r\n <div *ngIf=\"!options.AllowDropZone&&!options.IsReadonly\">\r\n <ngx-dropzone-label *ngIf=\"files.length==0\">\r\n <div #element (click)=\"showImageUploader(element)\">\r\n <img [src]=\"ImageSource\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n <div class=\"d-none {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\"\r\n [multiple]=\"options.IsMultiple\" (change)=\"onFileChange($event)\" ngDefaultControl formControlName=\"{{options.Name}}\"\r\n [maxFileSize]=\"maxFileSize\" id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n </div>\r\n <ngx-dropzone-image-preview *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n </div>\r\n\r\n <ngx-dropzone-label *ngIf=\"files.length==0&&options.IsReadonly\">\r\n <div *ngIf=\"ImageSource\" #element>\r\n <img [src]=\"ImageSource\" />\r\n </div>\r\n <div *ngIf=\"!ImageSource\">\r\n <span class=\"readonly-view\">{{UtilityService.getResourceValue('NA')}}</span>\r\n </div>\r\n </ngx-dropzone-label>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(ImageUploadFormControl.invalid && ImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ImageUploadFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n <!-- image cropper modal-->\r\n <div id=\"mdlSample\" class=\"modal bbsf-cropper-modal\" role=\"dialog\" [ngStyle]=\"{'display': mdlSampleIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n {{UtilityService.getResourceValue(\"CropImage\")}}\r\n </h4>\r\n <button type=\"button\" class=\"btn-close\" data-dismiss=\"modal\" (click)=\"openModal(false)\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div *ngIf=\"imageUrl\">\r\n <angular-cropper #angularCropper [cropperOptions]=\"config\" [imageUrl]=\"imageUrl\">\r\n </angular-cropper>\r\n <img [src]=\"imgwUrl\" />\r\n </div>\r\n <div class=\"cropper-btns\">\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"zoomImage(0.1)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"ZoomIn\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"zoomImage(-0.1)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"ZoomOut\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"moveImage(-10,0)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveLeft\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-left\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(10,0)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveRight\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-right\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,-10)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveUp\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-up\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,10)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveDown\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-down\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"rotateImage(-45)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"RotateLeft\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-undo-alt\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"rotateImage(45)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"RotateRight\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-redo-alt\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\" align=\"right\">\r\n <button type=\"button\" id=\"btnClose\" class=\"btn btn-sm btn-light\" (click)=\"openModal(false)\">\r\n {{UtilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" (click)=\"cropImage()\" id=\"btnOK\" class=\"btn btn-sm btn-brand\">\r\n {{UtilityService.getResourceValue(\"Crop\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- readonly -->\r\n\r\n\r\n</div>","export class MapAutocompleteDTO\r\n{\r\n Text:string= null;\r\n Latitude:number;\r\n Longitude:number;\r\n PlaceID :string;\r\n GoogleMapsURL:string\r\n}","import { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Component, OnInit, Input, Optional, NgZone, ElementRef, ViewChild, EventEmitter, Output, ViewEncapsulation } from '@angular/core';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { MapAutoCompleteOptions } from '../../Shared/Models/MapAutoCompleteOptions';\r\nimport { MapAutocompleteDTO } from '../../Shared/Models/MapAutocompleteDTO';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService, environment } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { AbstractControl, ControlContainer, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { ScriptService } from 'ngx-script-loader';\r\n\r\n@Component({\r\n selector: 'BBSF-MapAutoComplete',\r\n templateUrl: './MapAutoComplete.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class MapAutoCompleteComponent implements OnInit {\r\n static controlContainerStatic = null;\r\n\r\n constructor(private ngZone: NgZone, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public mapAutoCompleteControlHost: FormGroupDirective, private UtilityService: UtilityService, private translate: BBSFTranslateService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings, private scriptService: ScriptService, private modalService: NgbModal) {\r\n MapAutoCompleteComponent.controlContainerStatic = this.controlContainer;\r\n this.currentLanguage = translate.currentLang != undefined ? translate.currentLang : translate.defaultLang;\r\n\r\n this.scriptService.loadScript(`https://maps.googleapis.com/maps/api/js?key=${environment.BBSF_GoogleMapKey}&libraries=places`)\r\n .subscribe(_ => {\r\n this.showMap = true;\r\n this.mapScriptLoaded();\r\n });\r\n }\r\n\r\n @Input() group: FormGroup;\r\n @Input() options: MapAutoCompleteOptions;\r\n @Output() OnChange = new EventEmitter();\r\n mapAutoCompleteFormControl: AbstractControl;\r\n mapAutoCompleteModel: MapAutocompleteDTO = new MapAutocompleteDTO();\r\n currentLanguage: string = \"\";\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesAsync = [];\r\n place: any;\r\n showMap: boolean = false;\r\n markerPosition: any = null;\r\n mapCenter: google.maps.LatLngLiteral;\r\n modalIsOpen: boolean = false;\r\n\r\n @ViewChild(\"mapSearch\", { static: false }) public searchElementRef: ElementRef;\r\n @ViewChild(\"advancedMapModal\", { static: false }) advancedMapModal: any;\r\n @ViewChild(\"googleMap\", { static: false, }) gMap: google.maps.Map;\r\n\r\n markerOptions: google.maps.MarkerOptions;\r\n selectedPin: any;\r\n\r\n //#region events\r\n\r\n\r\n ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false\r\n this.mapAutoCompleteModel = new MapAutocompleteDTO();\r\n\r\n this.translate.onLangChange.subscribe((event) => {\r\n this.currentLanguage = event.lang;\r\n });\r\n\r\n this.initializeControlOptions();\r\n\r\n this.mapAutoCompleteControlHost.ngSubmit.subscribe(_ => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n }\r\n var elementHTML = document.getElementById(this.options.Name) as any\r\n elementHTML.value = this.mapAutoCompleteModel.Text;\r\n }\r\n\r\n //#endregion\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n AutocompleteSelected(result: google.maps.places.PlaceResult) {\r\n this.mapAutoCompleteModel == new MapAutocompleteDTO();\r\n this.mapAutoCompleteModel.Text = result.formatted_address;\r\n this.mapAutoCompleteModel.PlaceID = result.place_id;\r\n this.mapAutoCompleteModel.GoogleMapsURL = result.url;\r\n }\r\n\r\n LocationSelected(location) {\r\n this.mapAutoCompleteModel.Latitude = location.latitude;\r\n this.mapAutoCompleteModel.Longitude = location.longitude;\r\n this.mapAutoCompleteFormControl.setValue(null);\r\n\r\n this.mapAutoCompleteFormControl.setValue(this.mapAutoCompleteModel);\r\n let originalValue = this.mapAutoCompleteFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.mapAutoCompleteFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.mapAutoCompleteModel;\r\n }\r\n\r\n GermanAddressMapped(result) {\r\n if (result.type) {\r\n if (result.target.value == \"\") {\r\n this.mapAutoCompleteFormControl.setValue(result);\r\n this.group.controls[this.options.Name].setValue(result);\r\n this.options.Value = result;\r\n }\r\n return;\r\n }\r\n this.mapAutoCompleteModel == new MapAutocompleteDTO();\r\n this.mapAutoCompleteModel.Text = result.displayAddress;\r\n this.mapAutoCompleteModel.PlaceID = result.placeID;\r\n this.mapAutoCompleteModel.GoogleMapsURL = result.url;\r\n this.mapAutoCompleteModel.Latitude = result.geoLocation.lat;\r\n this.mapAutoCompleteModel.Longitude = result.geoLocation.lng;\r\n this.mapAutoCompleteFormControl.setValue(this.mapAutoCompleteModel);\r\n this.group.controls[this.options.Name].setValue(this.mapAutoCompleteModel)\r\n this.OnChange.emit(this.mapAutoCompleteFormControl.value)\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.mapAutoCompleteModel;\r\n }\r\n\r\n //#region helper methods\r\n\r\n private initializeControlOptions() {\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.mapAutoCompleteFormControl = this.group.controls[this.options.Name];\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsRequired)\r\n this.validationRules.push(Validators.required);\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.mapAutoCompleteFormControl.setValidators(this.validationRules);\r\n this.mapAutoCompleteFormControl.setAsyncValidators(this.validationRulesAsync);\r\n if (this.options.IsDisabled)\r\n this.mapAutoCompleteFormControl.disable();\r\n\r\n if (this.options.Value != null) {\r\n let germanAddress = {\r\n url: this.options.Value.GoogleMapsURL,\r\n placeID: this.options.Value.PlaceID,\r\n displayAddress: this.options.Value.Text,\r\n name: this.options.Value.Text,\r\n locality: {},\r\n state: {},\r\n country: {},\r\n geoLocation: { lat: -1, lng: -1 },\r\n };\r\n\r\n germanAddress.geoLocation.lat = this.options.Value.Latitude;\r\n germanAddress.geoLocation.lng = this.options.Value.Longitude;\r\n\r\n this.GermanAddressMapped(germanAddress)\r\n\r\n this.place = {\r\n url: this.options.Value.GoogleMapsURL,\r\n place_id: this.options.Value.PlaceID,\r\n formatted_address: this.options.Value.Text,\r\n name: this.options.Value.Text,\r\n };\r\n\r\n this.AutocompleteSelected(this.place)\r\n this.group.controls[this.options.Name].setValue(this.mapAutoCompleteModel)\r\n this.mapAutoCompleteFormControl.setValue(this.options.Value);\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n }\r\n\r\n private async getPlaceAutocomplete() {\r\n const { Autocomplete } = await google.maps.importLibrary(\"places\") as google.maps.PlacesLibrary;\r\n\r\n const autocomplete = new Autocomplete(this.searchElementRef.nativeElement, {\r\n types: [this.options.addressType]\r\n });\r\n\r\n google.maps.event.addListener(autocomplete, 'place_changed', _ => {\r\n this.ngZone.run(_ => {\r\n const place = autocomplete.getPlace();\r\n\r\n if (place.geometry) {\r\n const germanAddress = {\r\n icon: place.icon,\r\n url: place.url,\r\n placeID: place.place_id,\r\n displayAddress: place.formatted_address,\r\n name: place.name,\r\n vicinity: place.vicinity,\r\n locality: {},\r\n state: {},\r\n country: {},\r\n geoLocation: place.geometry.location.toJSON(),\r\n };\r\n\r\n place.address_components.forEach(value => {\r\n if (value.types.indexOf('street_number') > -1) {\r\n germanAddress[\"streetNumber\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('route') > -1) {\r\n germanAddress[\"streetName\"] = value.long_name;\r\n }\r\n if (value.types.indexOf('postal_code') > -1) {\r\n germanAddress[\"postalCode\"] = Number(value.short_name);\r\n }\r\n if (value.types.indexOf('sublocality') > -1) {\r\n germanAddress[\"sublocality\"] = value.long_name;\r\n }\r\n if (value.types.indexOf('locality') > -1) {\r\n germanAddress.locality[\"long\"] = value.long_name;\r\n germanAddress.locality[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('administrative_area_level_1') > -1) {\r\n germanAddress.state[\"long\"] = value.long_name;\r\n germanAddress.state[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('country') > -1) {\r\n germanAddress.country[\"long\"] = value.long_name;\r\n germanAddress.country[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('administrative_area_level_3') > -1) {\r\n germanAddress.locality[\"short\"] = value.short_name;\r\n }\r\n });\r\n\r\n this.GermanAddressMapped(germanAddress);\r\n this.AutocompleteSelected(place);\r\n }\r\n\r\n });\r\n });\r\n }\r\n\r\n mapScriptLoaded() {\r\n this.getPlaceAutocomplete();\r\n }\r\n\r\n translateValue(key: string): string {\r\n return this.UtilityService.getResourceValue(key);\r\n }\r\n //#endregion\r\n\r\n\r\n //#region advanced map methods\r\n\r\n async onMapClick(event: google.maps.MapMouseEvent) {\r\n this.addMarker(event);\r\n\r\n let geocoder = new google.maps.Geocoder();\r\n geocoder.geocode({ location: event.latLng?.toJSON() }).then(res => {\r\n const place = res.results[0];\r\n const input = document.getElementById(\"setLocationSearch\") as HTMLInputElement;\r\n input.value = place.formatted_address;\r\n this.selectedPin = {\r\n placeID: place.place_id,\r\n displayAddress: place.formatted_address,\r\n geoLocation: place.geometry.location.toJSON(),\r\n url: `https://www.google.com/maps/place/?q=place_id:${place.place_id}`,\r\n locality: {},\r\n state: {},\r\n country: {},\r\n };\r\n\r\n place.address_components.forEach(value => {\r\n if (value.types.indexOf('street_number') > -1) {\r\n this.selectedPin[\"streetNumber\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('route') > -1) {\r\n this.selectedPin[\"streetName\"] = value.long_name;\r\n }\r\n if (value.types.indexOf('postal_code') > -1) {\r\n this.selectedPin[\"postalCode\"] = Number(value.short_name);\r\n }\r\n if (value.types.indexOf('sublocality') > -1) {\r\n this.selectedPin[\"sublocality\"] = value.long_name;\r\n }\r\n if (value.types.indexOf('locality') > -1) {\r\n this.selectedPin.locality[\"long\"] = value.long_name;\r\n this.selectedPin.locality[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('administrative_area_level_1') > -1) {\r\n this.selectedPin.state[\"long\"] = value.long_name;\r\n this.selectedPin.state[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('country') > -1) {\r\n this.selectedPin.country[\"long\"] = value.long_name;\r\n this.selectedPin.country[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('administrative_area_level_3') > -1) {\r\n this.selectedPin.locality[\"short\"] = value.short_name;\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n addMarker(event: google.maps.MapMouseEvent) {\r\n if (event.latLng)\r\n this.markerPosition = event.latLng.toJSON();\r\n }\r\n\r\n openMapModal() {\r\n this.modalIsOpen = true;\r\n this.getCurrentLocation();\r\n this.addSearchBox();\r\n }\r\n\r\n closeMapModal() {\r\n this.modalIsOpen = false;\r\n }\r\n\r\n getCurrentLocation() {\r\n navigator.geolocation.getCurrentPosition((position: GeolocationPosition) => {\r\n\r\n const point: google.maps.LatLngLiteral = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n };\r\n\r\n this.mapCenter = point;\r\n\r\n this.markerPosition = {\r\n lat: this.mapCenter.lat,\r\n lng: this.mapCenter.lng\r\n };\r\n\r\n this.markerOptions = {\r\n draggable: false,\r\n animation: google.maps.Animation.DROP,\r\n };\r\n });\r\n\r\n }\r\n\r\n\r\n async addSearchBox() {\r\n const { Autocomplete } = await google.maps.importLibrary(\"places\") as google.maps.PlacesLibrary;\r\n const input = document.getElementById(\"setLocationSearch\") as HTMLInputElement;\r\n const searchBox = new Autocomplete(input);\r\n\r\n google.maps.event.addListener(searchBox, \"place_changed\", () => {\r\n const place = searchBox.getPlace();\r\n if (place.geometry) {\r\n this.markerPosition = place.geometry.location.toJSON();\r\n this.mapCenter = place.geometry.location.toJSON();\r\n this.selectedPin = {\r\n icon: place.icon,\r\n url: place.url,\r\n placeID: place.place_id,\r\n displayAddress: place.formatted_address,\r\n name: place.name,\r\n vicinity: place.vicinity,\r\n locality: {},\r\n state: {},\r\n country: {},\r\n geoLocation: place.geometry.location.toJSON(),\r\n }\r\n\r\n place.address_components.forEach(value => {\r\n if (value.types.indexOf('street_number') > -1) {\r\n this.selectedPin[\"streetNumber\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('route') > -1) {\r\n this.selectedPin[\"streetName\"] = value.long_name;\r\n }\r\n if (value.types.indexOf('postal_code') > -1) {\r\n this.selectedPin[\"postalCode\"] = Number(value.short_name);\r\n }\r\n if (value.types.indexOf('sublocality') > -1) {\r\n this.selectedPin[\"sublocality\"] = value.long_name;\r\n }\r\n if (value.types.indexOf('locality') > -1) {\r\n this.selectedPin.locality[\"long\"] = value.long_name;\r\n this.selectedPin.locality[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('administrative_area_level_1') > -1) {\r\n this.selectedPin.state[\"long\"] = value.long_name;\r\n this.selectedPin.state[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('country') > -1) {\r\n this.selectedPin.country[\"long\"] = value.long_name;\r\n this.selectedPin.country[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('administrative_area_level_3') > -1) {\r\n this.selectedPin.locality[\"short\"] = value.short_name;\r\n }\r\n });\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n\r\n submitSetLocation() {\r\n this.GermanAddressMapped(this.selectedPin);\r\n this.closeMapModal();\r\n }\r\n\r\n //#endregion\r\n\r\n //#region External Methods\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.mapAutoCompleteFormControl, this.validationRules, this.options)\r\n }\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.mapAutoCompleteFormControl, this.validationRules, this.options)\r\n }\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.mapAutoCompleteFormControl, this.validationRules, CustomValidation)\r\n }\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.mapAutoCompleteFormControl, this.validationRules, CustomValidation)\r\n }\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.mapAutoCompleteFormControl)\r\n }\r\n //#endregion\r\n\r\n}\r\n\r\n\r\n","<ng-container *ngIf=\"showMap\">\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=\"input-group bbsf-input-container\" *ngIf=\"!options.IsReadonly\">\r\n <input class=\"form-control input-icon-o {{options.ExtraClasses}}\" [value]=\"mapAutoCompleteModel.Text\" [address]=\"mapAutoCompleteModel.Text\"\r\n value=\"{{mapAutoCompleteModel.Text}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n [class.is-invalid]=\"mapAutoCompleteFormControl.invalid && mapAutoCompleteFormControl.touched\" [placeholder]=\"options.Placeholder\"\r\n id=\"{{options.Name}}\" (keyup)=\"GermanAddressMapped($event)\" #mapSearch />\r\n <button *ngIf=\"options.showAdvancedMap\" class=\"border-0 btn-secondary btn-icon-o\" ngbTooltip=\"{{translateValue('ShowMap')}}\" type=\"button\"\r\n (click)=\"openMapModal()\">\r\n\r\n <span class=\"svg-icon svg-icon-1\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M12 13C13.6569 13 15 11.6569 15 10C15 8.34315 13.6569 7 12 7C10.3431 7 9 8.34315 9 10C9 11.6569 10.3431 13 12 13Z\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M12 22C16 18 20 14.4183 20 10C20 5.58172 16.4183 2 12 2C7.58172 2 4 5.58172 4 10C4 14.4183 8 18 12 22Z\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n </button>\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\" *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\r\n <div id=\"mdlSample\" class=\"modal bbsf-cropper-modal\" role=\"dialog\" [ngStyle]=\"{'display': modalIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n {{translateValue('SetLocationOnMap')}}\r\n </h4>\r\n <button type=\"button\" class=\"btn-close\" data-dismiss=\"modal\" (click)=\"closeMapModal()\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <input class=\"form-control mt-3 mb-3\" id=\"setLocationSearch\" type=\"text\" placeholder=\"{{translateValue('SetLocation')}}\">\r\n <div class=\"google-map-container\">\r\n <google-map [center]=\"mapCenter\" [width]=\"null\" [height]=\"null\" #googleMap (mapClick)=\"onMapClick($event)\">\r\n <map-marker [position]=\"markerPosition\" [options]=\"markerOptions\"></map-marker>\r\n </google-map>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-sm btn-light\" (click)=\"closeMapModal()\">\r\n {{translateValue(\"Cancel\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-sm btn-brand\" (click)=\"submitSetLocation()\">\r\n {{translateValue('Confirm')}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</ng-container>","import { Expose, Type } from 'class-transformer';\r\nexport class EnglishArabicDTO\r\n{\r\n @Expose({name: 'english'}) English:string;\r\n @Expose({name: 'arabic'}) Arabic:string\r\n}","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { EnglishArabicDTO } from '../../Shared/Models/EnglishArabicDTO';\r\nimport { MultiLingualHtmlEditorOptions } from '../../Shared/Models/MultiLingualHtmlEditorOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { LanguageMode } from '../../Shared/Enums/LanguageMode';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\n\r\n@Component({\r\n selector: 'BBSF-MultiLingualHtmlEditor',\r\n templateUrl: './MultiLingualHtmlEditor.component.html'\r\n})\r\nexport class MultiLingualHtmlEditorComponent implements OnInit {\r\n\r\n static controlContainerstatic = null;\r\n IsShowAsteriskInArabic: boolean;\r\n IsShowAsteriskInEnglish: boolean;\r\n constructor(public MultiLingualHtmlEditorFormControlHost: FormGroupDirective, @Optional() private controlContainer: ControlContainer,\r\n private controlUtility: ControlUtility, private UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n MultiLingualHtmlEditorComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MultiLingualHtmlEditorOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n\r\n ArabicHtmlEditorFormControl: AbstractControl;\r\n EnglishHtmlEditorFormControl: AbstractControl;\r\n MultiTextAreaFormControl: AbstractControl;\r\n MultilingualHtmlEditorgroup: FormGroup;\r\n ArabicConfig: any\r\n EnglishConfig: any\r\n editorEnglishConfig: AngularEditorConfig\r\n editorArabicConfig: AngularEditorConfig\r\n\r\n miscList: any\r\n styleList: any\r\n fontsizeList: any\r\n paraList: any\r\n insertList: any\r\n\r\n CurrentLanguage: string = \"\";;\r\n ShowArabicHtmlEditor: boolean\r\n ShowEnglishHtmlEditor: boolean\r\n ArabicValidationRules = [];\r\n ArabicValidationRulesasync = [];\r\n EnglishValidationRules = [];\r\n EnglishValidationRulesasync = [];\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n\r\n ArabicLetterOnly: string = \"\"\r\n EnglishLetterOnly: string = \"\"\r\n\r\n englishValue = null\r\n arabicValue = null\r\n\r\n getCustomErrorsMassages() {\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue(\"ArabicLetterOnly\");\r\n this.EnglishLetterOnly = this.UtilityService.getResourceValue(\"EnglishLetterOnly\");\r\n }\r\n\r\n\r\n async ngOnInit() {\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (!this.options.LanguageMode)\r\n this.options.LanguageMode = this.globalSettings.LanguageMode;\r\n\r\n this.editorEnglishConfig = {\r\n editable: !this.options.IsDisabled,\r\n spellcheck: true,\r\n height: this.options.Height.toString(),\r\n minHeight: this.options.Height.toString(),\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: this.options.EnglishPlaceholder,\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: false,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n\r\n ]\r\n };\r\n\r\n\r\n this.editorArabicConfig = {\r\n editable: !this.options.IsDisabled,\r\n spellcheck: true,\r\n height: this.options.Height.toString(),\r\n minHeight: this.options.Height.toString(),\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: this.options.ArabicPlaceholder,\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: false,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n\r\n ]\r\n };\r\n\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.CurrentLanguage = await this.UtilityService.getCurrentLanguage();\r\n\r\n // UtilityService.Translator.onLangChange.subscribe((event: LangChangeEvent) => {\r\n // this.CurrentLanguage = event.lang\r\n // this.showInputUsingLanguageMode();\r\n\r\n // });\r\n // this.miscList = this.options.ToolsList_Misc != null ? this.options.ToolsList_Misc : ['codeview', 'undo', 'redo'];\r\n // this.styleList = this.options.ToolsList_Style != null ? this.options.ToolsList_Style : ['bold', 'italic', 'underline', 'clear']\r\n // this.fontsizeList = this.options.ToolsList_FontSize != null ? this.options.ToolsList_FontSize : ['fontname', 'fontsize', 'color']\r\n // this.paraList = this.options.ToolsList_Para != null ? this.options.ToolsList_Para : ['style', 'ul', 'ol', 'paragraph', 'height']\r\n // this.insertList = this.options.ToolsList_Insert != null ? this.options.ToolsList_Insert : ['table', 'picture', 'link', 'video', 'hr']\r\n\r\n // this.ArabicConfig = {\r\n // placeholder: this.options.ArabicPlaceholder,\r\n // height: `${this.options.Height}px`,\r\n // toolbar: [\r\n // ['misc', this.miscList],\r\n // ['style', this.styleList],\r\n // ['fontsize', this.fontsizeList],\r\n // ['para', this.paraList],\r\n // ['insert', this.insertList]\r\n // ],\r\n // fontNames: ['Helvetica', 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Roboto', 'Times']\r\n\r\n // }\r\n // this.EnglishConfig = {\r\n // placeholder: this.options.EnglishPlaceholder,\r\n // height: `${this.options.Height}px`,\r\n // toolbar: [\r\n // ['misc', this.miscList],\r\n // ['style', this.styleList],\r\n // ['fontsize', this.fontsizeList],\r\n // ['para', this.paraList],\r\n // ['insert', this.insertList]\r\n // ],\r\n // fontNames: ['Helvetica', 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Roboto', 'Times']\r\n\r\n // }\r\n this.MultilingualHtmlEditorgroup = new FormGroup({});;\r\n this.MultilingualHtmlEditorgroup.addControl(\"Arabic\", new FormControl(''));\r\n this.MultilingualHtmlEditorgroup.addControl(\"English\", new FormControl(''));\r\n this.ArabicHtmlEditorFormControl = this.MultilingualHtmlEditorgroup.controls[\"Arabic\"]; // new FormControl('',validationRules);\r\n this.EnglishHtmlEditorFormControl = this.MultilingualHtmlEditorgroup.controls[\"English\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, new FormGroup(this.MultilingualHtmlEditorgroup.controls));\r\n this.getCustomErrorsMassages();\r\n switch (this.options.Type) {\r\n case InputType.Email:\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n ]));\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n ]));\r\n break;\r\n case InputType.Number:\r\n this.EnglishValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n this.ArabicValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n break;\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.EnglishValidationRules.push(Validation.functionBody);\r\n this.ArabicValidationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n if (this.options.MinLength > 0) {\r\n this.ArabicValidationRules.push(Validators.minLength(this.options.MinLength));\r\n this.EnglishValidationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n\r\n if (this.options.MaxLength > 0) {\r\n this.EnglishValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n this.ArabicValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\") {\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InArabic\");\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InEnglish\");\r\n }\r\n else {\r\n if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != \"\")\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);\r\n\r\n if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != \"\")\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.EnglishLabelKey);\r\n }\r\n this.showInputUsingLanguageMode();\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[\\u0621-\\u064A\\u0660-\\u0669 ]+$/, { ArabicLetterOnly: this.ArabicLetterOnly }),\r\n\r\n ]));\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- ]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),\r\n\r\n ]));\r\n // this.ArabicHtmlEditorFormControl.setValidators(this.ArabicValidationRules);\r\n // this.ArabicHtmlEditorFormControl.setAsyncValidators(this.ArabicValidationRulesasync);\r\n\r\n // this.EnglishHtmlEditorFormControl.setValidators(this.EnglishValidationRules);\r\n // this.EnglishHtmlEditorFormControl.setAsyncValidators(this.EnglishValidationRulesasync);\r\n\r\n if (this.options.IsDisabled) {\r\n this.EnglishHtmlEditorFormControl.disable();\r\n this.ArabicHtmlEditorFormControl.disable();\r\n }\r\n this.ArabicHtmlEditorFormControl.setValue(this.options.Value.Arabic)\r\n this.EnglishHtmlEditorFormControl.setValue(this.options.Value.English)\r\n this.MultiLingualHtmlEditorFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n let dir = this.UtilityService.getCurrentLanguage() == \"en\" ? \"ltr\" : \"rtl\"\r\n var angularEditor = document.getElementsByClassName(\"angular-editor-toolbar ng-star-inserted\");\r\n for (let index = 0; index < angularEditor.length; index++) {\r\n const element = angularEditor[index];\r\n element.setAttribute(\"dir\", dir);\r\n }\r\n }\r\n onTextChange(type: string) {\r\n\r\n if (type == \"en\") {\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].setValue(this.MultilingualHtmlEditorgroup.controls[\"English\"].value.trim());\r\n this.englishValue = this.MultilingualHtmlEditorgroup.controls[\"English\"].value == null ? \"\" : this.MultilingualHtmlEditorgroup.controls[\"English\"].value;\r\n if (this.englishValue) {\r\n this.EnglishHtmlEditorFormControl.setValue(this.englishValue);\r\n let originalValue = this.englishValue;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.EnglishHtmlEditorFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n }\r\n let EngliswordCountArray = (this.EnglishHtmlEditorFormControl.value as string).split(\" \").length\r\n if (EngliswordCountArray > 0) {\r\n if (EngliswordCountArray > this.options.MaxWordCount)\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount })\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].markAsTouched()\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].invalid\r\n\r\n }\r\n\r\n }\r\n\r\n if (type == \"ar\") {\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].setValue(this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].value.trim());\r\n\r\n this.arabicValue = this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].value == null ? \"\" : this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].value;\r\n\r\n if (this.arabicValue) {\r\n this.ArabicHtmlEditorFormControl.setValue(this.arabicValue);\r\n let originalValue = this.arabicValue;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ArabicHtmlEditorFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n }\r\n\r\n let ArabicwordCountArray = (this.ArabicHtmlEditorFormControl.value as string).split(\" \").length\r\n if (ArabicwordCountArray > 0) {\r\n if (ArabicwordCountArray > this.options.MaxWordCount)\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount })\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].markAsTouched()\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].invalid\r\n\r\n }\r\n }\r\n\r\n let mulitLangModel = new EnglishArabicDTO()\r\n mulitLangModel.Arabic = this.arabicValue;\r\n mulitLangModel.English = this.englishValue\r\n this.OnChange.emit(mulitLangModel)\r\n if (this.arabicValue && this.englishValue)\r\n this.group.get(this.options.Name).setValue(mulitLangModel)\r\n //Use this line to enable two way binding.\r\n this.options.Value = mulitLangModel;\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n\r\n showInputUsingLanguageMode() {\r\n\r\n this.ArabicValidationRules = this.ArabicValidationRules.filter(item => item !== Validators.required);\r\n this.EnglishValidationRules = this.EnglishValidationRules.filter(item => item !== Validators.required);\r\n\r\n this.ArabicHtmlEditorFormControl.clearValidators();\r\n this.EnglishHtmlEditorFormControl.clearValidators();\r\n\r\n this.ArabicHtmlEditorFormControl.updateValueAndValidity();\r\n this.EnglishHtmlEditorFormControl.updateValueAndValidity();\r\n\r\n switch (this.options.LanguageMode) {\r\n case LanguageMode.Both_Languages_are_visible:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n break;\r\n case LanguageMode.Arabic_Language_only_is_visible:\r\n this.ShowArabicHtmlEditor = true;\r\n break;\r\n case LanguageMode.English_Language_only_is_visible:\r\n this.ShowEnglishHtmlEditor = true;\r\n break;\r\n case LanguageMode.Both_Languages_are_visible_but_only_current_language_is_required:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n\r\n if (this.CurrentLanguage == 'ar') {\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_Arabic_is_required:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_English_is_required:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Current_Language_only_is_visible_and_required:\r\n if (this.CurrentLanguage == 'ar') {\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = false;\r\n\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n this.ShowArabicHtmlEditor = false;\r\n this.ShowEnglishHtmlEditor = true;\r\n\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.ArabicHtmlEditorFormControl.setValidators(this.ArabicValidationRules);\r\n this.EnglishHtmlEditorFormControl.setValidators(this.EnglishValidationRules);\r\n this.ArabicHtmlEditorFormControl.updateValueAndValidity();\r\n this.EnglishHtmlEditorFormControl.updateValueAndValidity();\r\n\r\n }\r\n\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.RemoveRequiredValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.AddRequiredValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.RemoveCustomValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.AddCustomValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.EnglishHtmlEditorFormControl)\r\n this.controlUtility.IsValid(this.ArabicHtmlEditorFormControl)\r\n }\r\n}\r\n\r\n","<div [formGroup]=\"group\">\r\n <div class=\"bbsf-control form-group bbsf-multilang-htmleditor mb-0\" [formGroup]=\"MultilingualHtmlEditorgroup\">\r\n <div class=\"row\">\r\n <!--English htmleditor-->\r\n <div [ngClass]=\"ShowArabicHtmlEditor? 'col-md-6' : 'col-md-12'\" *ngIf=\"ShowEnglishHtmlEditor\" class=\" bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"(((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)&&IsShowAsteriskInEnglish))&&!options.IsReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" *ngIf=\"!options.IsReadonly\">\r\n <!--input-->\r\n <angular-editor class=\"{{options.ExtraClasses_EN}}\" (change)=\"onTextChange('en')\"\r\n [class.is-invalid]=\"EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched\" formControlName=\"English\"\r\n [config]=\"editorEnglishConfig\"></angular-editor>\r\n </div>\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\" [innerHTML]=\"options.Value.English\"></span>\r\n\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\"\r\n *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(EnglishHtmlEditorFormControl.errors|keyvalue)}}\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 </div>\r\n </div>\r\n <!--Arabic htmleditor-->\r\n <div *ngIf=\"ShowArabicHtmlEditor\" [ngClass]=\"ShowEnglishHtmlEditor? 'col-md-6' : 'col-md-12'\" class=\"bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"(((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic)&&!options.IsReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" *ngIf=\"!options.IsReadonly\">\r\n <!--input-->\r\n <angular-editor dir=\"rtl\" class=\"{{options.ExtraClasses_AR}} \" (change)=\"onTextChange('ar')\"\r\n [class.is-invalid]=\"ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched\" formControlName=\"Arabic\"\r\n [config]=\"editorArabicConfig\"></angular-editor>\r\n </div>\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\" [innerHTML]=\"options.Value.Arabic\"></span>\r\n\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\"\r\n *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(ArabicHtmlEditorFormControl.errors|keyvalue)}}\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 </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { EnglishArabicDTO } from '../../Shared/Models/EnglishArabicDTO';\r\nimport { MultiLingualTextAreaOptions } from '../../Shared/Models/MultiLingualTextAreaOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { LanguageMode } from '../../Shared/Enums/LanguageMode';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ControlLayout } from '../../Shared/Enums/ControlLayout';\r\n\r\n\r\n@Component({\r\n selector: 'BBSF-MultiLingualTextArea',\r\n templateUrl: './MultiLingualTextArea.component.html'\r\n})\r\nexport class MultiLingualTextAreaComponent implements OnInit {\r\n\r\n static controlContainerstatic = null;\r\n IsShowAsteriskInArabic: boolean;\r\n IsShowAsteriskInEnglish: boolean;\r\n constructor(public MultiLingualTextAreaFormControlHost: FormGroupDirective, @Optional() private controlContainer: ControlContainer,\r\n private controlUtility: ControlUtility, private UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n MultiLingualTextAreaComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MultiLingualTextAreaOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ArabicTextAreaFormControl: AbstractControl;\r\n EnglishTextAreaFormControl: AbstractControl;\r\n MultiTextAreaFormControl: AbstractControl;\r\n MultiLanguageTextAreagroup: FormGroup;\r\n ArabicWordCount: number = 0;\r\n ArabicWordCountArray: number = 0;\r\n EnglishWordCount: number = 0;\r\n EnglishWordCountArray: number = 0;\r\n CurrentLanguage: string = \"\";\r\n ShowArabicTextArea: boolean\r\n ShowEngishTextArea: boolean\r\n ArabicValidationRules = [];\r\n ArabicValidationRulesasync = [];\r\n EnglishValidationRules = [];\r\n EnglishValidationRulesasync = [];\r\n validationRules = [];\r\n validationRulesasync = [];\r\n IsShowArabicWordCount: boolean = false;\r\n IsShowEnglishWordCount: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n\r\n\r\n ArabicLetterOnly: string = \"\"\r\n EnglishLetterOnly: string = \"\"\r\n\r\n //For Show warning message of max length limit\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n englishCurrentCharsCount: number = 0;\r\n arabicCurrentCharsCount: number = 0;\r\n showEnglishCharsLimitMsg: boolean = false;\r\n showArabicCharsLimitMsg: boolean = false;\r\n hasEnglishCharsLimitValidationError: boolean = false;\r\n hasArabicCharsLimitValidationError: boolean = false;\r\n englishCharsLimitMsgClass: string;\r\n arabicCharsLimitMsgClass: string;\r\n englishMaxLimitWarningMsg: string = \"\";\r\n arabicMaxLimitWarningMsg: string = \"\";\r\n\r\n getCustomErrorsMassages() {\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue(\"ArabicIsRequiredAndOnly50CharactersEnglish\");\r\n this.EnglishLetterOnly = this.UtilityService.getResourceValue(\"EnglishLetterOnly\");\r\n\r\n\r\n }\r\n\r\n async ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false\r\n this.CurrentLanguage = await this.UtilityService.getCurrentLanguage();\r\n // UtilityService.Translator.onLangChange.subscribe((event: LangChangeEvent) => {\r\n // this.CurrentLanguage = event.lang\r\n // this.showInputUsingLanguageMode();\r\n\r\n // });\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n if (!this.options.LanguageMode)\r\n this.options.LanguageMode = this.globalSettings.LanguageMode;\r\n if (!this.options.MultiControlPlacementType)\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextArea;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\") {\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InArabic\");\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InEnglish\");\r\n }\r\n else {\r\n if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != \"\")\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);\r\n\r\n if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != \"\")\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.EnglishLabelKey);\r\n }\r\n\r\n this.MultiLanguageTextAreagroup = new FormGroup({});\r\n this.MultiLanguageTextAreagroup.addControl(\"Arabic\", new FormControl(''));\r\n this.MultiLanguageTextAreagroup.addControl(\"English\", new FormControl(''));\r\n this.ArabicTextAreaFormControl = this.MultiLanguageTextAreagroup.controls[\"Arabic\"]; // new FormControl('',validationRules);\r\n this.EnglishTextAreaFormControl = this.MultiLanguageTextAreagroup.controls[\"English\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, new FormGroup(this.MultiLanguageTextAreagroup.controls));\r\n this.getCustomErrorsMassages()\r\n\r\n switch (this.options.Type) {\r\n case InputType.Email:\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n\r\n ]));\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n\r\n ]));\r\n break;\r\n\r\n case InputType.Number:\r\n this.EnglishValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n this.ArabicValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n break;\r\n }\r\n\r\n\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.EnglishValidationRules.push(Validation.functionBody);\r\n this.ArabicValidationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n if (this.options.MinLength > 0) {\r\n this.ArabicValidationRules.push(Validators.minLength(this.options.MinLength));\r\n this.EnglishValidationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.EnglishValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n this.ArabicValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n\r\n this.showInputUsingLanguageMode();\r\n\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.arabicValidator({ ArabicIsRequiredAndOnly50CharactersEnglish: this.ArabicLetterOnly }),\r\n\r\n ]));\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- \\n]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),\r\n\r\n ]));\r\n\r\n this.ArabicTextAreaFormControl.setValidators(this.ArabicValidationRules);\r\n this.ArabicTextAreaFormControl.setAsyncValidators(this.ArabicValidationRulesasync);\r\n this.EnglishTextAreaFormControl.setValidators(this.EnglishValidationRules);\r\n this.EnglishTextAreaFormControl.setAsyncValidators(this.EnglishValidationRulesasync);\r\n\r\n\r\n if (this.options.IsDisabled) {\r\n this.EnglishTextAreaFormControl.disable();\r\n this.ArabicTextAreaFormControl.disable();\r\n }\r\n this.ArabicTextAreaFormControl.setValue(this.options.Value.Arabic)\r\n this.EnglishTextAreaFormControl.setValue(this.options.Value.English)\r\n\r\n this.MultiLingualTextAreaFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n if (this.options.IsReadonly && !this.options.Value) {\r\n this.options.Value.Arabic = this.UtilityService.getResourceValue('NA');\r\n this.options.Value.English = this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n }\r\n\r\n\r\n onTextChange() {\r\n let arabicValue = \"\";\r\n let englishValue = \"\";\r\n if (this.EnglishTextAreaFormControl.value == \"\") {\r\n this.EnglishWordCountArray = 0;\r\n this.EnglishWordCount = 0;\r\n }\r\n else {\r\n if (this.EnglishTextAreaFormControl.value != null || this.EnglishTextAreaFormControl.value != undefined) {\r\n this.EnglishWordCountArray = this.EnglishTextAreaFormControl.value.split(\" \").length;\r\n if (this.EnglishWordCountArray > 0) {\r\n if (this.EnglishWordCountArray > this.options.MaxWordCount) {\r\n this.EnglishWordCount = this.options.MaxWordCount;\r\n this.MultiLanguageTextAreagroup.controls[\"English\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguageTextAreagroup.controls[\"English\"].markAsTouched();\r\n this.MultiLanguageTextAreagroup.controls[\"English\"].invalid;\r\n }\r\n else {\r\n this.EnglishWordCount = this.EnglishWordCountArray;\r\n }\r\n englishValue = this.EnglishTextAreaFormControl.value;\r\n\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.englishCurrentCharsCount = this.EnglishTextAreaFormControl.value.length;\r\n if (this.englishCurrentCharsCount > this.minCharsLimit) {\r\n this.showEnglishCharsLimitMsg = true;\r\n this.hasEnglishCharsLimitValidationError = true;\r\n if (this.englishCurrentCharsCount == this.options.MaxLength)\r\n this.englishCharsLimitMsgClass = \"danger\";\r\n else\r\n this.englishCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showEnglishCharsLimitMsg = false;\r\n this.hasEnglishCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.englishCurrentCharsCount;\r\n\r\n this.englishMaxLimitWarningMsg = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n }\r\n }\r\n if (this.ArabicTextAreaFormControl.value == \"\") {\r\n this.ArabicWordCountArray = 0;\r\n this.ArabicWordCount = 0;\r\n }\r\n else {\r\n if (this.ArabicTextAreaFormControl.value != null || this.ArabicTextAreaFormControl.value != undefined) {\r\n this.ArabicWordCountArray = this.ArabicTextAreaFormControl.value.split(\" \").length;\r\n if (this.ArabicWordCountArray > 0) {\r\n if (this.ArabicWordCountArray > this.options.MaxWordCount) {\r\n this.ArabicWordCount = this.options.MaxWordCount;\r\n this.MultiLanguageTextAreagroup.controls[\"Arabic\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguageTextAreagroup.controls[\"Arabic\"].markAsTouched();\r\n this.MultiLanguageTextAreagroup.controls[\"Arabic\"].invalid;\r\n }\r\n else {\r\n this.ArabicWordCount = this.ArabicWordCountArray;\r\n }\r\n arabicValue = this.ArabicTextAreaFormControl.value;\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.arabicCurrentCharsCount = this.ArabicTextAreaFormControl.value.length;\r\n if (this.arabicCurrentCharsCount > this.minCharsLimit) {\r\n this.showArabicCharsLimitMsg = true;\r\n this.hasArabicCharsLimitValidationError = true;\r\n if (this.arabicCurrentCharsCount == this.options.MaxLength)\r\n this.arabicCharsLimitMsgClass = \"danger\";\r\n else\r\n this.arabicCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showArabicCharsLimitMsg = false;\r\n this.hasArabicCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.arabicCurrentCharsCount;\r\n\r\n this.arabicMaxLimitWarningMsg = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n }\r\n }\r\n let mulitLangModel = new EnglishArabicDTO();\r\n mulitLangModel.Arabic = arabicValue;\r\n mulitLangModel.English = englishValue;\r\n this.OnChange.emit(mulitLangModel)\r\n this.group.get(this.options.Name).setValue(mulitLangModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = mulitLangModel;\r\n\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n getInputType(type: number) {\r\n return InputType[type]\r\n }\r\n\r\n trimControlValue(type: string) {\r\n const whitespace: string = ' ';\r\n if (type == \"En\") {\r\n let originalValue = this.EnglishTextAreaFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.EnglishTextAreaFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n if (this.EnglishTextAreaFormControl.value.startsWith(whitespace) || this.EnglishTextAreaFormControl.value.endsWith(whitespace)) {\r\n this.EnglishTextAreaFormControl.patchValue(originalValue);\r\n }\r\n }\r\n if (type == \"Ar\") {\r\n let originalValue = this.ArabicTextAreaFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ArabicTextAreaFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n if (this.ArabicTextAreaFormControl.value.startsWith(whitespace) || this.ArabicTextAreaFormControl.value.endsWith(whitespace)) {\r\n this.ArabicTextAreaFormControl.patchValue(originalValue);\r\n }\r\n }\r\n\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n\r\n showInputUsingLanguageMode() {\r\n\r\n this.ArabicValidationRules = this.ArabicValidationRules.filter(item => item !== Validators.required);\r\n this.EnglishValidationRules = this.EnglishValidationRules.filter(item => item !== Validators.required);\r\n\r\n this.ArabicTextAreaFormControl.clearValidators();\r\n this.EnglishTextAreaFormControl.clearValidators();\r\n\r\n this.ArabicTextAreaFormControl.updateValueAndValidity();\r\n this.EnglishTextAreaFormControl.updateValueAndValidity();\r\n\r\n switch (this.options.LanguageMode) {\r\n case LanguageMode.Both_Languages_are_visible:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n break;\r\n case LanguageMode.Arabic_Language_only_is_visible:\r\n this.ShowArabicTextArea = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.English_Language_only_is_visible:\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.Both_Languages_are_visible_but_only_current_language_is_required:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.CurrentLanguage == 'ar') {\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_Arabic_is_required:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_English_is_required:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Current_Language_only_is_visible_and_required:\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n if (this.CurrentLanguage == 'ar') {\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = false;\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n this.ShowArabicTextArea = false;\r\n this.ShowEngishTextArea = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.ArabicTextAreaFormControl.setValidators(this.ArabicValidationRules);\r\n this.EnglishTextAreaFormControl.setValidators(this.EnglishValidationRules);\r\n this.ArabicTextAreaFormControl.updateValueAndValidity();\r\n this.EnglishTextAreaFormControl.updateValueAndValidity();\r\n }\r\n\r\n\r\n onArabicFocus(isFocus: boolean) {\r\n this.IsShowArabicWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasArabicCharsLimitValidationError) //check if there was previous validation error\r\n this.showArabicCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showArabicCharsLimitMsg = false;\r\n }\r\n\r\n onEnglishFocus(isFocus: boolean) {\r\n this.IsShowEnglishWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasEnglishCharsLimitValidationError) //check if there was previous validation error\r\n this.showEnglishCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showEnglishCharsLimitMsg = false;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.RemoveRequiredValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.AddRequiredValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.RemoveCustomValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.AddCustomValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.EnglishTextAreaFormControl)\r\n this.controlUtility.IsValid(this.ArabicTextAreaFormControl)\r\n }\r\n\r\n}\r\n\r\n","<div [formGroup]=\"group\">\r\n <div class=\"bbsf-control bbsf-multilang-textarea form-group mb-0\" [formGroup]=\"MultiLanguageTextAreagroup\">\r\n <div class=\"row\">\r\n <!--English textarea-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *ngIf=\"ShowEngishTextArea\" class=\"bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}} <!--Asterisk-->\r\n <span *ngIf=\"(((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInEnglish)&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" *ngIf=\"!options.IsReadonly\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--input-->\r\n <textarea class=\"form-control\" dir=\"ltr\" rows=\"{{options.Rows}}\" cols=\"{{options.Cols}}\"\r\n (focus)=\"onEnglishFocus(true)\" (focusout)=\"onEnglishFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"English\" [hidden]=\"options.IsHideEnglishFields\"\r\n [class.is-invalid]=\"EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\" [(ngModel)]=\"options.Value.English\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaEnglish>\r\n </textarea>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinputTextAreaEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\" [innerHTML]=\"options.Value.English\" ></span>\r\n\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showEnglishCharsLimitMsg\" [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched)\">\r\n {{getErrorValidation(EnglishTextAreaFormControl.errors|keyvalue)}}\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 </div>\r\n </div>\r\n <!--Arabic textbox-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *ngIf=\"ShowArabicTextArea\" class=\"bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"(((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic)&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <div *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--input-->\r\n <textarea class=\"form-control bnsights-control\" dir=\"rtl\" rows=\"{{options.Rows}}\" cols=\"{{options.Cols}}\"\r\n (focus)=\"onArabicFocus(true)\" (focusout)=\"onArabicFocus(false)\"\r\n [hidden]=\"options.IsHideArabicFields\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" rows=\"{{options.Rows}}\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (change)=\"trimControlValue('Ar')\"\r\n (keyup)=\"onTextChange()\" [(ngModel)]=\"options.Value.Arabic\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaArabic>\r\n </textarea>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinputTextAreaArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\" [innerHTML]=\"options.Value.Arabic\" ></span>\r\n\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showArabicCharsLimitMsg\" [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched)\">\r\n {{getErrorValidation(ArabicTextAreaFormControl.errors|keyvalue)}}\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 </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { EnglishArabicDTO } from '../../Shared/Models/EnglishArabicDTO';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { LanguageMode } from '../../Shared/Enums/LanguageMode';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ControlLayout } from '../../Shared/Enums/ControlLayout';\r\nimport { MultiLingualTextBoxOptions } from '../../Shared/Models/MultilingualTextBoxOptions';\r\n\r\n@Component({\r\n selector: 'BBSF-MultiLingualTextBox',\r\n templateUrl: './MultiLingualTextBox.component.html'\r\n})\r\nexport class MultiLingualTextBoxComponent implements OnInit {\r\n\r\n static controlContainerstatic = null;\r\n\r\n constructor(public MultiLingualTextBoxFormControlHost: FormGroupDirective, @Optional() private controlContainer: ControlContainer,\r\n private controlUtility: ControlUtility, private UtilityService: UtilityService, private translate: BBSFTranslateService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n MultiLingualTextBoxComponent.controlContainerstatic = this.controlContainer;\r\n this.CurrentLanguage = translate.currentLang != undefined ? translate.currentLang : translate.defaultLang\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MultiLingualTextBoxOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ArabicFormControl: AbstractControl;\r\n EnglishFormControl: AbstractControl;\r\n MultiFormControl: AbstractControl;\r\n MultiLanguagegroup: FormGroup;\r\n ArabicWordCount: number = 0;\r\n ArabicWordCountArray: number = 0;\r\n EnglishWordCount: number = 0;\r\n EnglishWordCountArray: number = 0;\r\n CurrentLanguage: string = \"\";\r\n ShowArabicTextBox: boolean\r\n ShowEnglishTextBox: boolean\r\n ArabicValidationRules = [];\r\n ArabicValidationRulesasync = [];\r\n EnglishValidationRules = [];\r\n EnglishValidationRulesasync = [];\r\n\r\n IsShowArabicWordCount: boolean = false;\r\n IsShowEnglishWordCount: boolean = false;\r\n\r\n IsShowAsteriskInArabic: boolean = false;\r\n IsShowAsteriskInEnglish: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n\r\n\r\n ArabicLetterOnly: string = \"\"\r\n EnglishLetterOnly: string = \"\"\r\n\r\n //For Show warning message of max length limit\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n englishCurrentCharsCount: number = 0;\r\n arabicCurrentCharsCount: number = 0;\r\n showEnglishCharsLimitMsg: boolean = false;\r\n showArabicCharsLimitMsg: boolean = false;\r\n hasEnglishCharsLimitValidationError: boolean = false;\r\n hasArabicCharsLimitValidationError: boolean = false;\r\n englishCharsLimitMsgClass: string;\r\n arabicCharsLimitMsgClass: string;\r\n englishMaxLimitWarningMsg: string = \"\";\r\n arabicMaxLimitWarningMsg: string = \"\";\r\n\r\n getCustomErrorsMassages() {\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue(\"ArabicIsRequiredAndOnly50CharactersEnglish\");\r\n this.EnglishLetterOnly = this.UtilityService.getResourceValue(\"EnglishLetterOnly\");\r\n\r\n\r\n }\r\n async ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false\r\n this.CurrentLanguage = await this.UtilityService.getCurrentLanguage();\r\n\r\n // this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\r\n // this.CurrentLanguage = event.lang;\r\n // this.showInputUsingLanguageMode()\r\n // });\r\n this.MultiLanguagegroup = new FormGroup({});;\r\n this.MultiLanguagegroup.addControl(\"Arabic\", new FormControl(''));\r\n this.MultiLanguagegroup.addControl(\"English\", new FormControl(''));\r\n this.ArabicFormControl = this.MultiLanguagegroup.controls[\"Arabic\"]; // new FormControl('',validationRules);\r\n this.EnglishFormControl = this.MultiLanguagegroup.controls[\"English\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, new FormGroup(this.MultiLanguagegroup.controls));\r\n this.getCustomErrorsMassages()\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n if (!this.options.LanguageMode)\r\n this.options.LanguageMode = this.globalSettings.LanguageMode;\r\n if (!this.options.MultiControlPlacementType)\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextBox;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\") {\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InArabic\");\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InEnglish\");\r\n }\r\n else {\r\n if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != \"\")\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);\r\n\r\n if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != \"\")\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.EnglishLabelKey);\r\n }\r\n\r\n\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.EnglishValidationRules.push(Validation.functionBody);\r\n this.ArabicValidationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n\r\n if (this.options.MinLength > 0) {\r\n this.ArabicValidationRules.push(Validators.minLength(this.options.MinLength));\r\n this.EnglishValidationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n\r\n if (this.options.MaxLength > 0) {\r\n this.EnglishValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n this.ArabicValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n\r\n this.showInputUsingLanguageMode();\r\n\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.arabicValidator({ ArabicIsRequiredAndOnly50CharactersEnglish: this.ArabicLetterOnly }),\r\n\r\n ]));\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- ]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),\r\n\r\n ]));\r\n\r\n this.ArabicFormControl.setValidators(this.ArabicValidationRules);\r\n this.ArabicFormControl.setAsyncValidators(this.ArabicValidationRulesasync);\r\n this.EnglishFormControl.setValidators(this.EnglishValidationRules);\r\n this.EnglishFormControl.setAsyncValidators(this.EnglishValidationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.EnglishFormControl.disable();\r\n this.ArabicFormControl.disable();\r\n }\r\n this.ArabicFormControl.setValue(this.options.Value.Arabic)\r\n this.EnglishFormControl.setValue(this.options.Value.English)\r\n\r\n if (this.options.IsReadonly && !this.options.Value) {\r\n this.options.Value.Arabic = this.UtilityService.getResourceValue('NA');\r\n this.options.Value.English = this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n this.MultiLingualTextBoxFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n\r\n onTextChange() {\r\n // this.trimControlValue(type)\r\n let arabicValue = \"\";\r\n let englishValue = \"\";\r\n if (this.EnglishFormControl.value == \"\") {\r\n this.EnglishWordCountArray = 0;\r\n this.EnglishWordCount = 0;\r\n }\r\n else {\r\n if (this.EnglishFormControl.value != null && this.EnglishFormControl.value != undefined) {\r\n this.EnglishWordCountArray = this.EnglishFormControl.value.split(\" \").length;\r\n if (this.EnglishWordCountArray > 0) {\r\n if (this.EnglishWordCountArray > this.options.MaxWordCount) {\r\n this.EnglishWordCount = this.options.MaxWordCount;\r\n this.MultiLanguagegroup.controls[\"English\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguagegroup.controls[\"English\"].markAsTouched();\r\n this.MultiLanguagegroup.controls[\"English\"].invalid;\r\n }\r\n else {\r\n this.EnglishWordCount = this.EnglishWordCountArray;\r\n }\r\n englishValue = this.EnglishFormControl.value;\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.englishCurrentCharsCount = this.EnglishFormControl.value.length;\r\n if (this.englishCurrentCharsCount > this.minCharsLimit) {\r\n this.showEnglishCharsLimitMsg = true;\r\n this.hasEnglishCharsLimitValidationError = true;\r\n if (this.englishCurrentCharsCount == this.options.MaxLength)\r\n this.englishCharsLimitMsgClass = \"danger\";\r\n else\r\n this.englishCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showEnglishCharsLimitMsg = false;\r\n this.hasEnglishCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.englishCurrentCharsCount;\r\n\r\n this.englishMaxLimitWarningMsg = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n }\r\n\r\n }\r\n if (this.ArabicFormControl.value == \"\") {\r\n this.ArabicWordCountArray = 0;\r\n this.ArabicWordCount = 0;\r\n }\r\n else {\r\n if (this.ArabicFormControl.value != null && this.ArabicFormControl.value != undefined) {\r\n this.ArabicWordCountArray = this.ArabicFormControl.value.split(\" \").length;\r\n if (this.ArabicWordCountArray > 0) {\r\n if (this.ArabicWordCountArray > this.options.MaxWordCount) {\r\n this.ArabicWordCount = this.options.MaxWordCount;\r\n this.MultiLanguagegroup.controls[\"Arabic\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguagegroup.controls[\"Arabic\"].markAsTouched();\r\n this.MultiLanguagegroup.controls[\"Arabic\"].invalid;\r\n }\r\n else {\r\n this.ArabicWordCount = this.ArabicWordCountArray;\r\n }\r\n arabicValue = this.ArabicFormControl.value;\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.arabicCurrentCharsCount = this.ArabicFormControl.value.length;\r\n if (this.arabicCurrentCharsCount > this.minCharsLimit) {\r\n this.showArabicCharsLimitMsg = true;\r\n this.hasArabicCharsLimitValidationError = true;\r\n if (this.arabicCurrentCharsCount == this.options.MaxLength)\r\n this.arabicCharsLimitMsgClass = \"danger\";\r\n else\r\n this.arabicCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showArabicCharsLimitMsg = false;\r\n this.hasArabicCharsLimitValidationError = false;\r\n }\r\n\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.arabicCurrentCharsCount;\r\n this.arabicMaxLimitWarningMsg = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n }\r\n }\r\n let mulitLangModel = new EnglishArabicDTO();\r\n mulitLangModel.Arabic = arabicValue;\r\n mulitLangModel.English = englishValue;\r\n // this.ArabicFormControl = arabicValue;\r\n // this.EnglishFormControl = englishValue;\r\n this.OnChange.emit(mulitLangModel)\r\n this.group.get(this.options.Name).setValue(mulitLangModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = mulitLangModel;\r\n this.MultiLingualTextBoxFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n\r\n\r\n resetError() {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.ArabicFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.RemoveRequiredValidation(this.EnglishFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.ArabicFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.AddRequiredValidation(this.EnglishFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.ArabicFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.RemoveCustomValidation(this.EnglishFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.ArabicFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.AddCustomValidation(this.EnglishFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ArabicFormControl)\r\n this.controlUtility.IsValid(this.EnglishFormControl)\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n getInputType(type: number) {\r\n return InputType[type]\r\n }\r\n\r\n trimControlValue(type: string) {\r\n const whitespace: string = ' ';\r\n if (type == \"En\") {\r\n let originalValue = this.controlUtility.trimControlValue(this.EnglishFormControl.value);\r\n this.EnglishFormControl.patchValue(originalValue)\r\n\r\n if (this.options.PatchFunction && this.options.PatchPath && this.EnglishFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n if (this.EnglishFormControl.value.startsWith(whitespace) || this.EnglishFormControl.value.endsWith(whitespace)) {\r\n this.EnglishFormControl.patchValue(originalValue);\r\n }\r\n }\r\n if (type == \"Ar\") {\r\n let originalValue = this.controlUtility.trimControlValue(this.ArabicFormControl.value);\r\n this.ArabicFormControl.patchValue(originalValue)\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ArabicFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n\r\n }\r\n if (this.ArabicFormControl.value.startsWith(whitespace) || this.ArabicFormControl.value.endsWith(whitespace)) {\r\n this.ArabicFormControl.patchValue(originalValue);\r\n }\r\n }\r\n\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n showInputUsingLanguageMode() {\r\n this.ArabicValidationRules = this.ArabicValidationRules.filter(item => item !== Validators.required);\r\n this.EnglishValidationRules = this.EnglishValidationRules.filter(item => item !== Validators.required);\r\n\r\n this.ArabicFormControl.clearValidators();\r\n this.EnglishFormControl.clearValidators();\r\n\r\n this.ArabicFormControl.updateValueAndValidity();\r\n this.EnglishFormControl.updateValueAndValidity();\r\n\r\n switch (this.options.LanguageMode) {\r\n case LanguageMode.Both_Languages_are_visible:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n break;\r\n case LanguageMode.Arabic_Language_only_is_visible:\r\n this.ShowArabicTextBox = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.English_Language_only_is_visible:\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.Both_Languages_are_visible_but_only_current_language_is_required:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.CurrentLanguage == 'ar') {\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_Arabic_is_required:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_English_is_required:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Current_Language_only_is_visible_and_required:\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n if (this.CurrentLanguage == 'ar') {\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = false;\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n this.ShowArabicTextBox = false;\r\n this.ShowEnglishTextBox = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.ArabicFormControl.setValidators(this.ArabicValidationRules);\r\n this.EnglishFormControl.setValidators(this.EnglishValidationRules);\r\n this.ArabicFormControl.updateValueAndValidity();\r\n this.EnglishFormControl.updateValueAndValidity();\r\n\r\n }\r\n\r\n onArabicFocus(isFocus: boolean) {\r\n this.IsShowArabicWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasArabicCharsLimitValidationError) //check if there was previous validation error\r\n this.showArabicCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showArabicCharsLimitMsg = false;\r\n }\r\n\r\n onEnglishFocus(isFocus: boolean) {\r\n this.IsShowEnglishWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasEnglishCharsLimitValidationError) //check if there was previous validation error\r\n this.showEnglishCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showEnglishCharsLimitMsg = false;\r\n }\r\n\r\n\r\n}\r\n\r\n","\r\n<div [formGroup]=\"group\">\r\n <div class=\"bbsf-control bbsf-multilang-textbox form-group mb-0\"\r\n [formGroup]=\"MultiLanguagegroup\">\r\n <div class=\"row\">\r\n <!--English textbox-->\r\n <div\r\n [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\"\r\n *ngIf=\"ShowEnglishTextBox\" class=\"bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\"\r\n [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue}}\r\n <!--Asterisk-->\r\n <span\r\n *ngIf=\"(((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)&&IsShowAsteriskInEnglish))&&!options.IsReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\"\r\n [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div class=\"svg svg-icon-grey bbsf-icon\"\r\n [ngClass]=\"(options.IconPositionEN==1)?'left-icon':'right-icon'\"\r\n *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control\" dir=\"ltr\"\r\n (focus)=\"onEnglishFocus(true)\" (focusout)=\"onEnglishFocus(false)\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"English\"\r\n [hidden]=\"options.IsHideEnglishFields\"\r\n maxlength=\"{{options.MaxLength}}\"\r\n minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"EnglishFormControl.invalid && EnglishFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\"\r\n (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n id=\"{{options.Name}}.English\" [(ngModel)]=\"options.Value.English\"\r\n #userinputEnglish>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideEnglishFields\"\r\n *ngIf=\"options.EnableCopyToClipboard\"\r\n (click)=\"copyInputMessage(userinputEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\"\r\n [innerHTML]=\"options.Value.English\"></span>\r\n\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\"\r\n *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}}\r\n Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showEnglishCharsLimitMsg\"\r\n [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\"\r\n *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\"\r\n *ngIf=\"(EnglishFormControl.invalid && EnglishFormControl.touched)\">\r\n {{getErrorValidation(EnglishFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Arabic textbox-->\r\n <div\r\n [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\"\r\n *ngIf=\"ShowArabicTextBox\" class=\"bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\"\r\n [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue}}\r\n <!--Asterisk-->\r\n <span\r\n *ngIf=\"(((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic)&&!options.IsReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\"\r\n [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div *ngIf=\"options.Icon!=null\" class=\"svg svg-icon-grey bbsf-icon\"\r\n [ngClass]=\"(options.IconPositionEN==1)?'right-icon':'left-icon'\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control\" dir=\"rtl\"\r\n (focus)=\"onArabicFocus(true)\" (focusout)=\"onArabicFocus(false)\"\r\n [hidden]=\"options.IsHideArabicFields\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" maxlength=\"{{options.MaxLength}}\"\r\n minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicFormControl.invalid && ArabicFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n id=\"{{options.Name}}.Arabic\"\r\n (change)=\"trimControlValue('Ar')\" #userinputArabic>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideArabicFields\"\r\n *ngIf=\"options.EnableCopyToClipboard\"\r\n (click)=\"copyInputMessage(userinputArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\"\r\n [innerHTML]=\"options.Value.Arabic\"></span>\r\n\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\"\r\n *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}}\r\n Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showArabicCharsLimitMsg\"\r\n [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\"\r\n *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\"\r\n *ngIf=\"(ArabicFormControl.invalid && ArabicFormControl.touched)\">\r\n {{getErrorValidation(ArabicFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","export enum PermissionSets {\r\n Admin = 1,\r\n BusinessAdmin = 2,\r\n Customer = 3\r\n}\r\nexport enum DataType {\r\n Text = \"7F35E246-7C93-4666-8031-3CE9D2262DB9\",\r\n Email = \"E4F974F6-682F-4CAC-8597-C94E8BF60539\",\r\n Number = \"962060E2-539C-4257-88E5-0259EB8A64F4\",\r\n Name = \"54FE6A3E-1F71-42B8-8C99-06279ED8AA2F\",\r\n Mobile = \"266E2903-D105-4847-AC9B-002AE884A31E\",\r\n MultilineText = \"97F904E0-991B-4F68-B227-217A7B87B8B3\",\r\n HTML = \"57335E2B-E286-401A-A374-72888C3FB753\",\r\n Image = \"1AE5FF1F-856E-41DA-923E-07966F6F8FFE\",\r\n File = \"ACDFEFA7-B406-45B8-9264-78AA440D94B5\",\r\n MultiFile = \"11FAC9EB-D1BB-4F73-9386-64A6C89A70AC\",\r\n Boolean = \"7F89617B-5863-4741-A948-106BBE82D38D\",\r\n Date = \"41182659-A638-4FF0-8E3F-66B89B0B544C\",\r\n DateTime = \"8D899956-8187-4EA1-92EB-B62D50A66323\",\r\n Time = \"B8C225ED-17C3-4AE0-A0E8-3C722B38D8A7\",\r\n Location = \"C486F9C5-0065-4A81-AFA1-03946DBD2214\",\r\n SingleSelect = \"1A63B4B7-DEDE-48C8-8407-10E4170BF761\",\r\n MulipleSelect = \"2CB28735-9D0B-4FBE-A504-8793A4544F94\",\r\n Goal = \"108310CE-9FE1-4914-AB6B-2CF6284472AD\",\r\n Challenge = \"48C419CE-5306-4F6B-87A3-F016E522D9E3\",\r\n CoverPhoto = \"9CC8C0BB-C670-466F-A632-8632FF5C1296\",\r\n InnovationLab = \"4B914ED0-8B36-4E24-B85E-9A04C9F266BE\",\r\n Country = \"342AA701-76C7-4E5D-8056-407BFC86F888\",\r\n AreaOfFocus = \"06a4cfb7-216a-4a60-8388-7a859aab90b4\",\r\n}","export enum LanguageValidation {\r\n English = 1,\r\n Arabic = 2\r\n }","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { TextBoxOptions } from '../../Shared/Models/TextBoxOptions';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { LanguageValidation } from '../../Shared/Enums/LanguageValidation';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-TextBox',\r\n templateUrl: './TextBox.component.html',\r\n})\r\nexport class TextboxComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(\r\n private controlUtility: ControlUtility,\r\n @Optional() private controlContainer: ControlContainer,\r\n public TextControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n TextboxComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: TextBoxOptions;\r\n @Output() OnChange = new EventEmitter();\r\n @Output() OnBlur = new EventEmitter();\r\n\r\n public inputType = InputType\r\n TextBoxFormControl: AbstractControl;\r\n MaskPattern: string = '';\r\n WordCount: number = 0;\r\n WordCountArray: number = 0;\r\n EmailValidationKey: string;\r\n URLValidationKey: string;\r\n PasswordComplexityHasNumber: string;\r\n ArabicLetterOnly: string;\r\n EnglishLetterOnly: string;\r\n PasswordComplexityHasCapitalLetter: string;\r\n PasswordComplexityHasSmallLetter: string;\r\n PasswordComplexityHasSpecialLetter: string;\r\n MaxWordCountValidationKey: string;\r\n IsShowWordCount: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n //For Show warning message of max length limit\r\n currentCharsCount: number = 0;\r\n showCharsLimitMsg: boolean = false;\r\n hasCharsLimitValidationError: boolean = false;\r\n charsLimitMsgClass: string;\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n maxLimitWarningMsg: string = '';\r\n textDir;\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value) {\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n }\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n\r\n this.controlValidationService.isCreatedBefor = false;\r\n\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextBox;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.MaskPattern != null && this.options.MaskPattern != '') {\r\n this.MaskPattern = this.options.MaskPattern;\r\n this.options.Placeholder = this.MaskPattern;\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.TextBoxFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n this.TextBoxFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n this.getCustomErrorsMassages();\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n switch (this.options.Type) {\r\n case InputType.Email:\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\r\n { EmailValidationKey: this.EmailValidationKey }\r\n ),\r\n ])\r\n );\r\n break;\r\n\r\n case InputType.URL:\r\n const pattern = /^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]!\\$&'\\(\\)\\*\\+,;=.]+$/;\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n pattern,\r\n { URLValidationKey: this.URLValidationKey }\r\n ),\r\n ])\r\n );\r\n break;\r\n case InputType.EID:\r\n this.MaskPattern = '000-0000-0000000-0';\r\n this.options.Placeholder = this.MaskPattern;\r\n\r\n break;\r\n\r\n case InputType.Number:\r\n if (this.options.CustomValidation.length == 0) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(/^[0-9]*$/, {\r\n IntegerNumberValidationKey: '',\r\n }),\r\n ])\r\n );\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n /^[+]?([.]\\d+|\\d+[.]?\\d*)$/,\r\n { PositiveNumberValidationKey: '' }\r\n ),\r\n ])\r\n );\r\n }\r\n if (this.options.NumberRange != null) {\r\n this.validationRules.push(\r\n Validators.min(this.options.NumberRange.From)\r\n );\r\n this.validationRules.push(\r\n Validators.max(this.options.NumberRange.To)\r\n );\r\n }\r\n break;\r\n case InputType.Password:\r\n if (!this.options.RemoveDefaultPasswordValidation) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(/\\d/,\r\n {\r\n PasswordComplexityHasNumber: this.PasswordComplexityHasNumber,\r\n }),\r\n this.controlUtility.patternValidator(/[A-Z]/,\r\n {\r\n PasswordComplexityHasCapitalLetter: this.PasswordComplexityHasCapitalLetter,\r\n }),\r\n this.controlUtility.patternValidator(/[a-z]/,\r\n {\r\n PasswordComplexityHasSmallLetter: this.PasswordComplexityHasSmallLetter,\r\n }),\r\n this.controlUtility.patternValidator(/[!@#$%^&*(),.?\":{}|<>]/,\r\n {\r\n PasswordComplexityHasSpecialLetter: this.PasswordComplexityHasSpecialLetter,\r\n }),\r\n Validators.minLength(8),\r\n ])\r\n );\r\n }\r\n break;\r\n }\r\n if (this.options.LanguageValidation) {\r\n if (this.options.LanguageValidation == LanguageValidation.Arabic) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(/^[^A-Za-z]*$/, {\r\n ArabicLetterOnly: this.ArabicLetterOnly,\r\n }),\r\n ])\r\n );\r\n } else if (\r\n this.options.LanguageValidation == LanguageValidation.English\r\n ) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n /^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- ]*$/,\r\n { EnglishLetterOnly: this.EnglishLetterOnly }\r\n ),\r\n ])\r\n );\r\n }\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n if (this.options.MinLength > 0) {\r\n this.validationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.validationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit =\r\n this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit =\r\n this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n this.TextBoxFormControl.setValidators(this.validationRules);\r\n this.TextBoxFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.TextBoxFormControl.disable();\r\n }\r\n\r\n this.TextControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n\r\n this.options.ValidationRules = this.validationRules;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options);\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n getInputType(type: number) {\r\n return this.controlUtility.getInputType(type);\r\n }\r\n\r\n trimControlValue() {\r\n let originalValue = this.controlUtility.trimControlValue(\r\n this.TextBoxFormControl.value\r\n );\r\n this.TextBoxFormControl.patchValue(originalValue);\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.TextBoxFormControl.valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement);\r\n }\r\n\r\n getCustomErrorsMassages() {\r\n this.EmailValidationKey = this.UtilityService.getResourceValue('EmailValidationKey');\r\n this.URLValidationKey = this.UtilityService.getResourceValue('urlValidationError');\r\n this.PasswordComplexityHasCapitalLetter = this.UtilityService.getResourceValue('PasswordComplexityHasCapitalLetter');\r\n this.PasswordComplexityHasNumber = this.UtilityService.getResourceValue('PasswordComplexityHasNumber');\r\n this.PasswordComplexityHasSmallLetter = this.UtilityService.getResourceValue('PasswordComplexityHasSmallLetter');\r\n this.PasswordComplexityHasSpecialLetter = this.UtilityService.getResourceValue('PasswordComplexityHasSpecialLetter');\r\n this.MaxWordCountValidationKey = this.UtilityService.getResourceValue('MaxWordCountValidationKey');\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue('ArabicIsRequiredAndOnly50CharactersEnglish');\r\n this.EnglishLetterOnly = this.UtilityService.getResourceValue('EnglishLetterOnly');\r\n }\r\n\r\n onTextChange() {\r\n if (this.options.Type == InputType.Number)\r\n if (!this.TextBoxFormControl.value) {\r\n this.TextBoxFormControl.setErrors({ IntegerNumberValidationKey: '' });\r\n return;\r\n }\r\n\r\n if (this.TextBoxFormControl.value == '') {\r\n this.WordCountArray = 0;\r\n this.WordCount = 0;\r\n } else {\r\n this.WordCountArray = this.TextBoxFormControl.value.split(' ').length;\r\n if (this.WordCountArray > 0) {\r\n if (this.WordCountArray > this.options.MaxWordCount) {\r\n this.WordCount = this.options.MaxWordCount;\r\n this.TextBoxFormControl.setErrors({\r\n MaxWordCountValidationKey: this.options.MaxWordCount,\r\n });\r\n this.TextBoxFormControl.markAsTouched();\r\n this.TextBoxFormControl.invalid;\r\n } else {\r\n this.WordCount = this.WordCountArray;\r\n }\r\n }\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.currentCharsCount = this.TextBoxFormControl.value.length;\r\n if (this.currentCharsCount > this.minCharsLimit) {\r\n this.showCharsLimitMsg = true;\r\n this.hasCharsLimitValidationError = true;\r\n if (this.currentCharsCount == this.options.MaxLength)\r\n this.charsLimitMsgClass = 'danger';\r\n else this.charsLimitMsgClass = 'warning';\r\n } else {\r\n this.showCharsLimitMsg = false;\r\n this.hasCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.currentCharsCount;\r\n\r\n this.maxLimitWarningMsg = this.UtilityService.getResourceValue('MaxLengthLimitWarning');\r\n }\r\n }\r\n\r\n this.OnChange.emit(this.TextBoxFormControl.value);\r\n }\r\n\r\n onFocus(isFocus: boolean) {\r\n this.IsShowWordCount = isFocus;\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasCharsLimitValidationError)\r\n //check if there was previous validation error\r\n this.showCharsLimitMsg = true;\r\n } //onFocusOut\r\n else this.showCharsLimitMsg = false;\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.TextBoxFormControl);\r\n };\r\n\r\n onTextBlur() {\r\n this.OnBlur.emit(this.TextBoxFormControl.value);\r\n }\r\n}\r\n","<div class=\"form-group bbsf-control bbsf-textbox\" [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 <!--MaskPattern-->\r\n <div *ngIf=\"MaskPattern!=null&&MaskPattern!=''&&!options.IsReadonly\" class=\"bbsf-input-container\"\r\n [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div *ngIf=\"options.Icon!=null\" class=\"svg svg-icon-grey bbsf-icon\" [ngClass]=\"(options.IconPosition==1)?'bbsf-left-icon':'bbsf-right-icon'\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control {{options.ExtraClasses}}\" [mask]=\"MaskPattern\" placeHolderCharacter=\" \" [showMaskTyped]=\"true\" [validation]=\"true\"\r\n [dir]=\"textDir\" aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\" type=\"{{getInputType(options.Type)}}\"\r\n [(ngModel)]=\"options.Value\" [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\" (change)=\"trimControlValue()\"\r\n (keyup)=\"onTextChange()\" [readonly]=\"options.IsReadonly\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\" #userinput (blur)=\"onTextBlur()\">\r\n <!--CopyToClipboard-->\r\n <span class=\"copy-clipboard\" ngbTooltip=\"Copied!\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <!--NoMaskPattern-->\r\n <div *ngIf=\"MaskPattern==null||MaskPattern==''&&!options.IsReadonly\" class=\"bbsf-input-container\"\r\n [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div class=\"svg svg-icon-grey bbsf-icon\" [ngClass]=\"(options.IconPosition==1)?'bbsf-left-icon':'bbsf-right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control {{options.ExtraClasses}} \" [dir]=\"textDir\" (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n autocomplete=\"{{options.AutoComplete}}\" (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\" [(ngModel)]=\"options.Value\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\" [readonly]=\"options.IsReadonly\" #userinput\r\n (blur)=\"onTextBlur()\">\r\n <!--CopyToClipboard-->\r\n <span class=\"copy-clipboard\" ngbTooltip=\"Copied!\" triggers=\"click:blur\" *ngIf=\"options.EnableCopyToClipboard\"\r\n (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <a *ngIf=\"options.Type==inputType.Email\" href=\"mailto: {{options.Value}}\">{{options.Value}}</a>\r\n <a *ngIf=\"options.Type==inputType.URL\" href=\"{{options.Value}}\" target=\"_blank\">{{options.Value}}</a>\r\n <span *ngIf=\"options.Type!=inputType.URL&&options.Type!=inputType.Email\" class=\"readonly-view\">{{options.Value}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}}\r\n Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showCharsLimitMsg\"\r\n [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </div>\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\" [dir]=\"textDir\" *ngIf=\"(TextBoxFormControl.invalid && TextBoxFormControl.touched)\">\r\n {{getErrorValidation(TextBoxFormControl.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>","import { Component, OnInit, Input, Optional, EventEmitter, Output } from '@angular/core';\r\nimport { FormGroup, ControlContainer, FormGroupDirective, AbstractControl, FormControl } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { ToggleSlideOptions } from '../../Shared/Models/ToggleslideOptions';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-Toggleslide',\r\n templateUrl: './Toggleslide.component.html'\r\n})\r\nexport class ToggleslideComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public ToggleslideControlHost: FormGroupDirective, public TextControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings) {\r\n ToggleslideComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: ToggleSlideOptions;\r\n @Output() OnChange = new EventEmitter();\r\n ToggleslideFormControl: AbstractControl;\r\n SlideValue: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ToggleslideFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n let validationRules = [];\r\n let validationRulesasync = [];\r\n this.SlideValue = this.options.Value == undefined ? false : this.options.Value;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsDisabled ||this.options.IsReadonly ) {\r\n this.ToggleslideFormControl.disable();\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n resetError() {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList: any[]): string {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n changeValueToggle() {\r\n this.OnChange.emit(this.SlideValue)\r\n this.options.Value= this.SlideValue\r\n this.ToggleslideFormControl.setValue(this.SlideValue)\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ToggleslideFormControl.valid) {\r\n this.controlUtility.patchControlValue(this.SlideValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n }\r\n}\r\n","<div class=\"form-group bbsf-control bbsf-toggleslide\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n </label>\r\n <div *ngIf=\"!options.IsReadonly\"class=\"bbsf-input-container\">\r\n <!--input-->\r\n <mat-slide-toggle [(ngModel)]=\"SlideValue\" [dir]=\"textDir\" [cssClass]=\"(options.ViewType==1)?'':'col-md-9'\"\r\n formControlName=\"{{options.Name}}\" disableRipple=\"true\" [disabled]=\"options.IsDisabled\" (change)=\"changeValueToggle()\">\r\n </mat-slide-toggle>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <span class=\"readonly-view\" *ngIf=\"options.Value\">{{UtilityService.getResourceValue(\"Yes\")}}</span>\r\n <span class=\"readonly-view\" *ngIf=\"!options.Value\">{{UtilityService.getResourceValue(\"No\")}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter, OnDestroy, OnChanges, SimpleChanges, SimpleChange, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { TagsInputOptions } from '../../Shared/Models/TagsInputOptions';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { EMPTY, Observable, Subscription } from 'rxjs';\r\nimport { ControlValidationService, RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-TagsInput',\r\n templateUrl: './TagsInput.component.html'\r\n})\r\nexport class TagsInputComponent implements OnInit, OnDestroy {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private http: HttpClient, private controlUtility: ControlUtility, private requestHandlerService: RequestHandlerService, @Optional() private controlContainer: ControlContainer, public TagsInputControlHost: FormGroupDirective,\r\n private UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings) {\r\n TagsInputComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n\r\n @Input() group: FormGroup;\r\n @Input() options: TagsInputOptions;\r\n @Output() OnChange = new EventEmitter();\r\n @ViewChild('SearchKey', { static: false }) SearchKey: any;\r\n\r\n // TagInputControl: AbstractControl;\r\n SelectedId: any[] = []\r\n tags = [];\r\n NewSelectionValidationKey: string = \"\";\r\n TagsFormGroup: FormGroup;\r\n TagsFormControl: AbstractControl\r\n IsNoMatch: any;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n changeValueSubscription: Subscription;\r\n SearchResultHasItems: boolean = false;\r\n textDir;\r\n static showErrorOfInputs(errors: any) {\r\n const controlContainerstatic = TagsInputComponent.controlContainerstatic;\r\n const formGroup = controlContainerstatic.control as FormGroup;\r\n for (const key in errors) {\r\n if (errors.hasOwnProperty(key)) {\r\n for (const iterator of errors[key]) {\r\n const formControl = formGroup.get(key) as FormControl;\r\n formControl.setErrors({ \"FluentApi\": iterator });\r\n formControl.markAsTouched();\r\n }\r\n }\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n if (this.changeValueSubscription)\r\n this.changeValueSubscription.unsubscribe();\r\n }\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.options.DatasourceItemText = this.options.DatasourceItemText.toLowerCase();\r\n this.TagsFormGroup = new FormGroup({});;\r\n this.TagsFormGroup.addControl(\"tags\", new FormControl(''));\r\n this.TagsFormControl = this.TagsFormGroup.controls[\"tags\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, this.TagsFormControl);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n if (!this.options.NoResultText)\r\n this.options.NoResultText = this.UtilityService.getResourceValue(\"NoItemsMatch\");\r\n\r\n // this.group.addControl(this.options.Name, new FormControl(''));\r\n // this.TagInputControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n this.TagsFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n this.TagsFormControl.setValidators(this.validationRules);\r\n this.TagsFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.TagsFormControl.disable();\r\n }\r\n\r\n if (this.options.Value != undefined && this.options.Value.length > 0) {\r\n for (let index = 0; index < this.options.Value.length; index++) {\r\n const element = this.options.Value[index];\r\n this.SelectedId.push(element.id);\r\n }\r\n this.tags = this.options.Value\r\n this.TagsFormControl.setValue(this.options.Value);\r\n }\r\n\r\n this.TagsInputControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n });\r\n //Check for changing in value\r\n this.changeValueSubscription = <any>this.TagsFormControl.valueChanges.subscribe(c => {\r\n this.tags = this.TagsFormControl.value;\r\n this.SelectedId = this.tags?.filter(item => item.id).map(item => item.id);\r\n if (this.tags == null) {\r\n this.SearchKey.selected = \"\";\r\n this.tags = [];\r\n this.TagsFormControl.setValue([])\r\n }\r\n });\r\n }\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n }\r\n let inputElement = document.getElementById(this.options.Name).getElementsByTagName(\"input\")[0]\r\n inputElement.setAttribute(\"autocomplete\", \"off\")\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n searchFunctionFactory(Text: any): Observable<object> {\r\n //If no text then return empty observable\r\n if (!Text)\r\n return EMPTY;\r\n\r\n let Url = `${this.options.ActionURL}?${this.options.QueryParamName}=${encodeURIComponent(Text)}&${this.options.SelectedItemsParamName}=${this.SelectedId}`\r\n if (this.options.ExtraFilters)\r\n Url = Url + `&${this.options.ExtraFilters}`\r\n let requestOptionsModel = new RequestOptionsModel()\r\n requestOptionsModel.disableBlockUI = true;\r\n requestOptionsModel.disableSuccessNotification = true;\r\n let Model = this.requestHandlerService.get(Url, null, null, requestOptionsModel);\r\n return Model as any;\r\n }\r\n\r\n AddTag(event, key) {\r\n //Check if input is yab press\r\n if (event.key === \"Tab\")\r\n return;\r\n //Check if input is enter press\r\n if (this.IsNoMatch == true && event.key == \"Enter\" && this.options.AllowNewSelection && key.selected) {\r\n if (!(this.tags.length >= this.options.MaxNumberTags)) {\r\n this.tags.push({ name: key.selected });\r\n this.group.get(this.options.Name).setValue(this.tags);\r\n this.group.get(this.options.Name).markAllAsTouched();\r\n this.group.updateValueAndValidity();\r\n if (this.group.get(this.options.Name).valid) {\r\n key.selected = null;\r\n return;\r\n }\r\n else\r\n this.tags.pop();\r\n }\r\n }\r\n //Check if input is charachter\r\n else if (String.fromCharCode(event.keyCode).match(/(\\w|\\s)/g)) {\r\n if (this.IsNoMatch && !this.options.AllowNewSelection && key.selected) {\r\n this.TagsFormControl.setErrors({ \"errorMassage\": this.options.NoResultText });\r\n this.TagsFormControl.markAsTouched();\r\n }\r\n else if (this.IsNoMatch == false && this.options.AllowNewSelection == false) {\r\n this.TagsFormControl.clearValidators();\r\n this.TagsFormControl.updateValueAndValidity();\r\n }\r\n }\r\n //Remove unmatched error incase of deleting search value\r\n else if (event.key === \"Backspace\" && key.selected?.length <= 1 && this.TagsFormControl.hasError('errorMassage')) {\r\n this.TagsFormControl.setErrors({ \"errorMassage\": null });\r\n this.TagsFormControl.updateValueAndValidity();\r\n if (this.SelectedId?.length == 0 && this.options.IsRequired) {\r\n this.TagsFormControl.setErrors({ required: \"\" });\r\n this.TagsFormControl.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n onTagsChanged(result) {\r\n //console.log(this.tags)\r\n if (result[\"change\"] == \"add\") {\r\n this.SelectedId.push(result.tag.id);\r\n }\r\n if (result[\"change\"] == \"remove\") {\r\n this.SelectedId = this.SelectedId.filter((item) => item != result.tag.id);\r\n if (this.SelectedId.length == 0 && this.options.IsRequired == true) {\r\n this.TagsFormControl.setErrors({ required: \"\" });\r\n this.TagsFormControl.markAsTouched();\r\n this.TagsFormControl.invalid;\r\n }\r\n }\r\n let originalValue = this.TagsFormControl.value.map(function (a) { return a.id; });\r\n if (this.options.PatchFunction && this.options.PatchPath && this.TagsFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);\r\n }\r\n this.options.Value = this.tags\r\n this.group.get(this.options.Name).setValue(this.tags);\r\n this.TagsFormControl.updateValueAndValidity();\r\n this.group.updateValueAndValidity();\r\n this.OnChange.emit(originalValue);\r\n }\r\n\r\n onNoOptionsMatch(event) {\r\n this.IsNoMatch = event;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.TagsFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.TagsFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.TagsFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.TagsFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.TagsFormControl)\r\n }\r\n\r\n onTagsInputBlur(SearchKey) {\r\n if (SearchKey.selected && this.options.AllowNewSelection && this.IsNoMatch && this.tags.length < this.options.MaxNumberTags) {\r\n this.tags.push({ name: SearchKey.selected });\r\n this.group.get(this.options.Name).setValue(this.tags);\r\n this.group.get(this.options.Name).markAllAsTouched();\r\n this.group.updateValueAndValidity();\r\n if (this.group.get(this.options.Name).valid) {\r\n SearchKey.selected = null;\r\n return;\r\n }\r\n else\r\n this.tags.pop();\r\n }\r\n }\r\n getTagsValue() {\r\n if (this.tags.length > 0)\r\n return this.tags.map(item => item.name)\r\n }\r\n\r\n}\r\n","\r\n<div [formGroup]=\"group\">\r\n <div class=\"form-group bbsf-control bbsf-tags-input\" [formGroup]=\"TagsFormGroup\">\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 <b-tags-input type=\"text\" class=\"form-control {{options.ExtraClasses}}\"\r\n [dir]=\"textDir\" [disabled]=\"options.IsDisabled\" aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"tags\"\r\n [class.is-invalid]=\"TagsFormControl.invalid && TagsFormControl.touched\" placeholder=\"{{options.Placeholder}}\"\r\n id=\"{{options.Name}}\" (onTagsChanged)=\"onTagsChanged($event)\" [(ngModel)]=\"tags\"\r\n [removeLastOnBackspace]=\"options.RemoveLastOnBackspace\" (onNoOptionsMatch)=\"onNoOptionsMatch($event)\"\r\n [options]=\"searchFunctionFactory(SearchKey.selected)\" #SearchKey\r\n [scrollableOptions]=\"options.ScrollableOptions\" [scrollableOptionsInView]=\"options.MaxSearchResultsCount\"\r\n (keydown)=\"AddTag($event,SearchKey)\" [ViewMode]=\"options.TagInputMode\"\r\n [maxTags]=\"options.MaxNumberTags\" [minLengthBeforeOptions]=\"options.MinSearchLength\"\r\n [showDescription]=\"options.ShowDescription\" [defaultImageURL]=\"options.DefaultImgUrl\" name=\"tags\"\r\n (onBlurInput)=\"onTagsInputBlur(SearchKey)\">\r\n </b-tags-input>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\">{{getTagsValue()}}</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\" *ngIf=\"(TagsFormControl.invalid && TagsFormControl.touched)\">\r\n {{getErrorValidation(TagsFormControl.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\r\n</div>\r\n","import { Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { DataType } from '../../Shared/Enums/Enums';\r\nimport { PageHeaderOptions } from '../../Shared/Models/page-header-options';\r\n@Component({\r\n selector: 'bbsf-page-header-component',\r\n templateUrl: './page-header-component.component.html'\r\n})\r\nexport class PageHeaderComponentComponent implements OnInit {\r\n EN: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: PageHeaderOptions;\r\n\r\n public DataTypeEnum = DataType;\r\n\r\n constructor(private router: Router,public utilityService: UtilityService) {\r\n \r\n }\r\n\r\n translate(key: string): string {\r\n return this.utilityService.getResourceValue(key);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.EN = this.utilityService.isCurrentLanguageEnglish();\r\n }\r\n\r\n}\r\n","<!--toolbar-->\r\n<div class=\"toolbar\" style=\"overflow:hidden;position:relative;\">\r\n <img class=\"pattern\" src=\"./src/assets/images/Bg-pattern.png\"/>\r\n <div class=\"container-xxl\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"page-title w-100\" [ngClass]=\"!options.Listing? 'mb-0' : ''\">\r\n <h3 *ngIf=\"options.TitleKey||options.TitleValue\">{{options.TitleValue == null ? translate(options.TitleKey) : options.TitleValue }}</h3>\r\n <p class=\"sub-title\" *ngIf=\"options.Listing\">\r\n {{translate(options.SubTitleKey)}}\r\n </p>\r\n <div class=\"d-flex justify-content-between align-items-end\">\r\n <ul class=\"breadcrumb breadcrumb-dot\" *ngIf=\"options.BreadCrumb.Active\">\r\n <ng-container *ngFor=\"let item of options.BreadCrumb.BreadCrumbItems\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"!item.active\">\r\n <a *ngIf=\"item.route\" [routerLink]=\"item.route\">{{ item.label }}</a>\r\n <a *ngIf=\"!item.route\" href=\"javascript: void(0);\">{{ item.label }}</a>\r\n </li>\r\n <li class=\"breadcrumb-item active\" *ngIf=\"item.active\">\r\n <span>{{ item.label }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"page-subheader\" *ngIf=\"options.DropDownActions.Active\">\r\n <button [routerLink]=\"item.RouterLink\" (click)='item.Function?item.Function():\"\"' class=\"btn btn-light btn-sm subheader-btn export-btn\" *ngFor=\"let item of options.DropDownActions.DropdownActionItems\">\r\n <span class=\"svg-icon svg-icon-3\" [inlineSVG]=\"item.SVG\"></span>\r\n {{item.Text}}\r\n </button>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"page-subheader\">\r\n <BBSF-TextBox *ngIf=\"options.SearchTextBox.Active\" [options]=\"options.SearchTextBox.TextSearchBoxOptions\"\r\n [group]=\"group\">\r\n </BBSF-TextBox>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"subheader-btn list-grid\" *ngIf=\"options.GridView.Active\">\r\n <div class=\"list-grid-item\" [ngClass]=\"options.GridView.ShowGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.GridView.ToggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Listing.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"list-grid-item\" [ngClass]=\"!options.GridView.ShowGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.GridView.ToggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Grid.svg'\">\r\n </span>\r\n </div>\r\n </div>\r\n <button type=\"button\" *ngIf=\"options.ExportButton.Active\" (click)=\"options.ExportButton.Function()\"\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/export.svg'\"></span>\r\n {{translate(options.ExportButton.ButtonTextKey)}}\r\n </button>\r\n\r\n\r\n <div *ngIf=\"options.FiltersButton.Active\" ngbDropdown container=\"body\" [placement]=\"EN ? 'bottom-right' : 'bottom-left'\" \r\n #dropdown=\"ngbDropdown\" class=\"subheader-btn\">\r\n <button href=\"javascript:;\" (click)=\"options.FiltersButton.Function()\" ngbDropdownToggle\r\n class=\"btn btn-light btn-sm filters-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/arrowdropdown.svg'\"></span>\r\n {{translate(options.FiltersButton.ButtonTextKey)}}\r\n </button>\r\n <div ngbDropdownMenu class=\"dropdown-menu-custom filters-dropdown\">\r\n\r\n <div [hidden]=\"options.Filters.ShowLoadingInFiltersBox\">\r\n <div class=\"filter-select\">\r\n <span *ngFor=\"let control of options.Filters.ControlsOptions\">\r\n <span [ngSwitch]=\"control.key\">\r\n <span *ngSwitchCase=\"DataTypeEnum.SingleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.MulipleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Date\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.DateTime\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Time\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Boolean\">\r\n <BBSF-Toggleslide [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-Toggleslide>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <BBSF-TagsInput [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-TagsInput>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu-buttons\">\r\n <button class=\"btn btn-sm btn-light\"\r\n (click)=\"options.Filters.RestFunction(dropdown)\">\r\n {{translate(\"Reset\")}}\r\n </button>\r\n <button class=\"btn btn-brand btn-sm\"\r\n (click)=\"options.Filters.ApplyFunction(dropdown)\">\r\n {{translate(\"Apply\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.AddButton.Active\" (click)=\"options.AddButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.AddButton.ButtonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.EditButton.Active\" (click)=\"options.EditButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.EditButton.ButtonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.DeleteButton.Active\" (click)=\"options.DeleteButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.DeleteButton.ButtonTextKey)}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--End toolbar-->\r\n","import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'jw-pagination',\r\n template: `\r\n <ul *ngIf=\"pager.pages && pager.pages.length\" class=\"pagination\">\r\n <li *ngIf=\"ShowFirstAndLast\" [ngClass]=\"{disabled:pager.currentPage === 1}\" class=\"page-item first-item\">\r\n <a (click)=\"setPage(1)\" class=\"page-link\">❮❮</a>\r\n </li>\r\n <li [ngClass]=\"{disabled:pager.currentPage === 1}\" class=\"page-item previous-item\">\r\n <a (click)=\"setPage(pager.currentPage - 1)\" class=\"page-link\">❮</a>\r\n </li>\r\n <li *ngFor=\"let page of pager.pages\" [ngClass]=\"{active:pager.currentPage === page}\" class=\"page-item number-item\">\r\n <a (click)=\"setPage(page)\" class=\"page-link\">{{page}}</a>\r\n </li>\r\n <li [ngClass]=\"{disabled:pager.currentPage === pager.totalPages}\" class=\"page-item next-item\">\r\n <a (click)=\"setPage(pager.currentPage + 1)\" class=\"page-link\">❯</a>\r\n </li>\r\n <li *ngIf=\"ShowFirstAndLast\" [ngClass]=\"{disabled:pager.currentPage === pager.totalPages}\" class=\"page-item last-item\">\r\n <a (click)=\"setPage(pager.totalPages)\" class=\"page-link\">❯❯</a>\r\n </li>\r\n</ul>\r\n`\r\n})\r\n\r\nexport class JwPaginationComponent implements OnInit, OnChanges {\r\n @Input() items: Array<any>;\r\n @Output() changePage = new EventEmitter();\r\n @Input() initialPage = 1;\r\n @Input() pageSize = 10;\r\n @Input() maxPages = 10;\r\n @Input() ShowFirstAndLast = false;\r\n\r\n\r\n pager: any = {};\r\n\r\n ngOnInit() {\r\n // set page if items array isn't empty\r\n if (this.items && this.items.length) {\r\n this.setPage(this.initialPage);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.items.firstChange)\r\n return\r\n // reset page if items array has changed\r\n if (changes.items.currentValue !== changes.items.previousValue) {\r\n this.setPage(this.initialPage);\r\n }\r\n }\r\n\r\n setPage(page: number) {\r\n // get new pager object for specified page\r\n this.pager = this.paginate(this.items.length, page, this.pageSize, this.maxPages);\r\n\r\n // get new page of items from items array\r\n var pageOfItems = this.items.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n // call change page function in parent component\r\n this.changePage.emit(this.pager.currentPage);\r\n }\r\n\r\n paginate(totalItems, currentPage, pageSize, maxPages) {\r\n if (currentPage === void 0) { currentPage = 1; }\r\n if (pageSize === void 0) { pageSize = 10; }\r\n if (maxPages === void 0) { maxPages = 10; }\r\n // calculate total pages\r\n var totalPages = Math.ceil(totalItems / pageSize);\r\n // ensure current page isn't out of range\r\n if (currentPage < 1) {\r\n currentPage = 1;\r\n }\r\n else if (currentPage > totalPages) {\r\n currentPage = totalPages;\r\n }\r\n var startPage, endPage;\r\n if (totalPages <= maxPages) {\r\n // total pages less than max so show all pages\r\n startPage = 1;\r\n endPage = totalPages;\r\n }\r\n else {\r\n // total pages more than max so calculate start and end pages\r\n var maxPagesBeforeCurrentPage = Math.floor(maxPages / 2);\r\n var maxPagesAfterCurrentPage = Math.ceil(maxPages / 2) - 1;\r\n if (currentPage <= maxPagesBeforeCurrentPage) {\r\n // current page near the start\r\n startPage = 1;\r\n endPage = maxPages;\r\n }\r\n else if (currentPage + maxPagesAfterCurrentPage >= totalPages) {\r\n // current page near the end\r\n startPage = totalPages - maxPages + 1;\r\n endPage = totalPages;\r\n }\r\n else {\r\n // current page somewhere in the middle\r\n startPage = currentPage - maxPagesBeforeCurrentPage;\r\n endPage = currentPage + maxPagesAfterCurrentPage;\r\n }\r\n }\r\n // calculate start and end item indexes\r\n var startIndex = (currentPage - 1) * pageSize;\r\n var endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1);\r\n // create an array of pages to ng-repeat in the pager control\r\n var pages = Array.from(Array((endPage + 1) - startPage).keys()).map(function (i) { return startPage + i; });\r\n // return object with all pager properties required by the view\r\n return {\r\n totalItems: totalItems,\r\n currentPage: currentPage,\r\n pageSize: pageSize,\r\n totalPages: totalPages,\r\n startPage: startPage,\r\n endPage: endPage,\r\n startIndex: startIndex,\r\n endIndex: endIndex,\r\n pages: pages\r\n };\r\n }\r\n\r\n}","export class PagingDTO{\r\n constructor(){\r\n\r\n }\r\n TotalCount:number=0\r\n PageCount:number=10\r\n CurrentPageNumber:number=1\r\n IsFilterUpdated:boolean=false\r\n Skip:number=0\r\n Take:number=0\r\n DevMode:boolean=true\r\n AddedItemsCount:number=0\r\n}","\r\nexport enum FilterType {\r\n TextBox = 1,\r\n DropdownList = 2,\r\n AutocompleteTextBox = 3,\r\n DatePicker = 4,\r\n TagInput = 5,\r\n CheckBox = 6,\r\n Other=7\r\n}","import { Component, OnInit, Output, EventEmitter, Input, SimpleChanges, ElementRef, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { PagingDTO } from '../../Shared/Models/PagingDTO';\r\nimport { PagingOptions } from '../../Shared/Models/PagingOptions';\r\nimport { Subject, Observable, Subscription } from 'rxjs';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';\r\nimport { FilterType } from '../../Shared/Enums/FilterType';\r\nimport { RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { plainToClass } from 'class-transformer';\r\nimport { PagingPayload } from '../../Shared/Models/PagingPayload';\r\n\r\n// tslint:disable-next-line: no-conflicting-lifecycle\r\n@Component({\r\n selector: 'BBSF-Paging',\r\n templateUrl: './Paging.component.html'\r\n})\r\nexport class PagingComponent<T> implements OnInit, OnDestroy {\r\n\r\n items = [];\r\n pageOfItems: Array<any>;\r\n result: T[] = [];\r\n pagerConfig: any = null;\r\n totalRow: any = 0;\r\n pageSize: any = 10\r\n Pages: any = 0\r\n pagesText: string;\r\n itemsText: string;\r\n CurrentPage: any = 1\r\n ShowPageSizeOption = true;\r\n ShowFirstAndLast = true;\r\n hidePaginationWhenPageSizeEqualOne = true\r\n Sum = 0;\r\n Throttle = 300;\r\n ScrollDistance = 1;\r\n ScrollUpDistance = 2;\r\n direction = '';\r\n Headers: HttpHeaders;\r\n IsFirstCall: boolean = true;\r\n @Output() Items: EventEmitter<T[]> = new EventEmitter<T[]>();\r\n @Input() options: PagingOptions;\r\n @Input() group: FormGroup;\r\n subscriptions = new Subscription();\r\n\r\n constructor(public utilityService: UtilityService, private http: HttpClient, private router: Router, private onChangeService: OnPagingFiltersChangeService, private requestHandlerService: RequestHandlerService) {\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe()\r\n }\r\n\r\n ngOnInit() {\r\n if (this.options.IsLoadMoreControl)\r\n this.Sum = this.options.PageSize;\r\n\r\n if (this.options.DropdownFiltersControlNames != null && this.options.DropdownFiltersControlNames.length > 0) {\r\n const DropdownFiltersControlNames = this.options.DropdownFiltersControlNames;\r\n this.subscriptions.add(\r\n this.onChangeService.GetValue().subscribe((value) => {\r\n let result = this.options.DropdownFiltersControlNames.filter((item) => item == value)\r\n if (result.length > 0) {\r\n this.IsFirstCall = true;\r\n this.CurrentPage = 1;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }))\r\n }\r\n\r\n if (this.options.BootstrapDatePickersFiltersControlNames != null && this.options.BootstrapDatePickersFiltersControlNames.length > 0) {\r\n const BootstrapDatePickersFiltersControlNames = this.options.BootstrapDatePickersFiltersControlNames;\r\n this.subscriptions.add(this.onChangeService.GetValue().subscribe((value) => {\r\n let result = this.options.BootstrapDatePickersFiltersControlNames.filter((item) => item == value)\r\n if (result.length > 0) {\r\n this.IsFirstCall = true;\r\n this.CurrentPage = 1;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }))\r\n }\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n ngAfterViewInit(): void {\r\n\r\n if (this.options.OnClickFiltersControlNames != null && this.options.OnClickFiltersControlNames.length > 0) {\r\n const OnClickFiltersControlNames = this.options.OnClickFiltersControlNames;\r\n for (let index = 0; index < OnClickFiltersControlNames.length; index++) {\r\n const OnClickFiltersControlName = OnClickFiltersControlNames[index];\r\n document.getElementById(OnClickFiltersControlName).addEventListener(\"click\", () => {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }, false);\r\n }\r\n }\r\n if (this.options.OnKeyPressFiltersControlNames != null && this.options.OnKeyPressFiltersControlNames.length > 0) {\r\n const OnKeyPressFiltersControlNames = this.options.OnKeyPressFiltersControlNames;\r\n for (let index = 0; index < OnKeyPressFiltersControlNames.length; index++) {\r\n const OnKeyPressFiltersControlName = OnKeyPressFiltersControlNames[index];\r\n let element = (<any>this.group.get(OnKeyPressFiltersControlName)).nativeElement as HTMLElement;\r\n element.addEventListener(\"keypress\", (e) => {\r\n if (e.key == \"Enter\") {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }, false);\r\n }\r\n }\r\n //Add click event on Reset Filter button\r\n if (this.options.ResetFilterButtonName != null) {\r\n const button = document.getElementsByName(this.options.ResetFilterButtonName)[0];\r\n if (button != undefined) {\r\n let element = button as HTMLElement;\r\n element.addEventListener(\"click\", (e) => {\r\n this.clearFilters();\r\n }, false);\r\n }\r\n }\r\n if (this.options.TypeaheadSearchControlNames != null && this.options.TypeaheadSearchControlNames.length > 0) {\r\n const TypeaheadSearchControlNames = this.options.TypeaheadSearchControlNames;\r\n for (let index = 0; index < TypeaheadSearchControlNames.length; index++) {\r\n const TypeaheadSearchControlName = TypeaheadSearchControlNames[index];\r\n document.getElementById(TypeaheadSearchControlName).addEventListener(\"keypress\", (e) => {\r\n if (e.key == \"Enter\") {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }, false);\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n onDropDownChange(result) {\r\n if (result) {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }\r\n\r\n onChangePage(Page) {\r\n if (Page == 0)\r\n return;\r\n if (Page > 0) {\r\n if (this.IsFirstCall) {\r\n this.IsFirstCall = false;\r\n return;\r\n }\r\n this.CurrentPage = Page;\r\n this.getItemList(Page);\r\n }\r\n }\r\n changePageSize(e) {\r\n this.options.PageSize = e.target.value;\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n\r\n\r\n\r\n\r\n onScrollDown() {\r\n this.Sum += this.options.PageSize\r\n this.CurrentPage = 1\r\n this.IsFirstCall = true;\r\n this.direction = 'down';\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n\r\n\r\n\r\n getItemList(page, IsFilterUpdated = false) {\r\n if (this.options.StartPagingCallback)\r\n this.options.StartPagingCallback.call(null);\r\n\r\n let pagingDTO = new PagingDTO();\r\n let size = Number.parseInt(this.options.PageSize.toString());\r\n if (this.options.IsLoadMoreControl)\r\n pagingDTO.PageCount = this.Sum;\r\n else\r\n pagingDTO.PageCount = size;\r\n\r\n pagingDTO.CurrentPageNumber = page;\r\n pagingDTO.TotalCount = this.totalRow;\r\n pagingDTO.IsFilterUpdated = IsFilterUpdated;\r\n let filters = {};\r\n filters = this.getFiltersValue();\r\n\r\n //Set Filters object that sent to action URL\r\n let filtersDTO: PagingPayload = {\r\n PagingDTO: pagingDTO,\r\n Filters: filters\r\n };\r\n\r\n let requestOptions = new RequestOptionsModel();\r\n requestOptions.disableBlockUI = this.options.DisableBlockUI;\r\n this.requestHandlerService.post(this.options.ActionPostURL, this.options.Filters && this.options.Filters.length > 0 ? filtersDTO : pagingDTO, null, null, requestOptions)\r\n .subscribe((responseData: any) => {\r\n this.result = responseData.items //this.castItems(responseData.items);\r\n let castedResult = plainToClass(this.options.TypeOfResponse, this.result, { excludeExtraneousValues: true })\r\n this.Items.emit(castedResult);\r\n this.totalRow = responseData.totalCount;\r\n\r\n if (IsFilterUpdated) {\r\n this.items = [];\r\n this.Pages = Math.ceil((this.totalRow / this.options.PageSize));\r\n this.items = Array(this.totalRow);\r\n\r\n this.setText(this.Pages, this.totalRow);\r\n\r\n }\r\n }, (error: HttpErrorResponse) => {\r\n if (error.status == 401)\r\n this.router.navigate([\"/Admin/account/login\"])\r\n });\r\n }\r\n\r\n ReinitializePaging = () => {\r\n this.IsFirstCall = true;\r\n this.getItemList(1, true);\r\n }\r\n\r\n UpdatePaging = () => {\r\n //this.IsFirstCall=true;\r\n this.getItemList(this.CurrentPage);\r\n }\r\n\r\n castItems(objectArr: any[]): T[] {\r\n let originalArray: T[] = []\r\n for (let index = 0; index < objectArr.length; index++) {\r\n const element = objectArr[index];\r\n let key, keys = Object.keys(element);\r\n let n = keys.length;\r\n let newObject = {}\r\n while (n--) {\r\n key = keys[n];\r\n let Okey = key\r\n newObject[key.charAt(0).toUpperCase() + Okey.slice(1)] = element[key];\r\n }\r\n let finalObject = newObject as T\r\n originalArray.push(finalObject)\r\n }\r\n\r\n return originalArray;\r\n }\r\n\r\n setText(pagesNumber: number, itemsNumber: number) {\r\n if (this.utilityService.isCurrentLanguageArabic()) {\r\n //Set pages text\r\n if (pagesNumber < 3 || pagesNumber > 10)\r\n this.pagesText = this.utilityService.getResourceValue(\"Page\");\r\n else\r\n this.pagesText = this.utilityService.getResourceValue(\"Pages\");\r\n //Set items text\r\n if (itemsNumber < 3 || itemsNumber > 10)\r\n this.itemsText = this.utilityService.getResourceValue(\"Item\");\r\n else\r\n this.itemsText = this.utilityService.getResourceValue(\"Items\");\r\n }\r\n else {\r\n //Set pages text\r\n if (pagesNumber > 1)\r\n this.pagesText = this.utilityService.getResourceValue(\"Pages\");\r\n else\r\n this.pagesText = this.utilityService.getResourceValue(\"Page\");\r\n //Set items text\r\n if (itemsNumber > 1)\r\n this.itemsText = this.utilityService.getResourceValue(\"Items\");\r\n else\r\n this.itemsText = this.utilityService.getResourceValue(\"Item\");\r\n }\r\n }\r\n\r\n clearFilters() {\r\n if (this.options.Filters != null) {\r\n for (let index = 0; index < this.options.Filters.length; index++) {\r\n if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != \"\") {\r\n const FormControlName = this.options.Filters[index].FormControlName;\r\n this.group.controls[FormControlName].setValue(null);\r\n }\r\n }\r\n this.ReinitializePaging();\r\n }\r\n }\r\n\r\n getFiltersValue() {\r\n let filters = {};\r\n if (this.options.Filters != null) {\r\n for (let index = 0; index < this.options.Filters.length; index++) {\r\n if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != \"\") {\r\n const FormControlName = this.options.Filters[index].FormControlName;\r\n let ControlValue = this.group.controls[FormControlName].value;\r\n if (ControlValue != undefined && ControlValue != null && ControlValue != \"\") {\r\n if (this.options.Filters[index].FilterType == FilterType.DatePicker) {\r\n //if (Array.isArray(ControlValue)) {\r\n // for (let element = 0; element < ControlValue.length; element++) {\r\n // const value = ControlValue[element];\r\n // filters[this.options.Filters[index].ActionParameterName] = value;\r\n // }\r\n //}\r\n //else {\r\n filters[this.options.Filters[index].ActionParameterName] = ControlValue;\r\n //}\r\n }\r\n else {\r\n if (this.options.Filters[index].FilterType == FilterType.AutocompleteTextBox)\r\n ControlValue = ControlValue;\r\n if (this.options.Filters[index].FilterType == FilterType.TagInput)\r\n ControlValue = ControlValue;\r\n\r\n filters[this.options.Filters[index].ActionParameterName] = ControlValue;\r\n }\r\n }\r\n else {\r\n filters[this.options.Filters[index].ActionParameterName] = null;\r\n }\r\n }\r\n else {\r\n const ElementjQuerySelector = this.options.Filters[index].jQuerySelector;\r\n let ElementValue = (document.querySelector(ElementjQuerySelector) as HTMLInputElement).value;\r\n if (ElementValue != undefined && ElementValue != null)\r\n filters[this.options.Filters[index].ActionParameterName] = ElementValue;\r\n else\r\n filters[this.options.Filters[index].ActionParameterName] = null;\r\n }\r\n }\r\n }\r\n return filters;\r\n }\r\n}\r\n","<div class=\"form-group bbsf-control bbsf-paging\" *ngIf=\"(result.length > 0)\">\r\n <!--paging container-->\r\n <div class=\"bbsf-paging-container\" *ngIf=\"!options.IsLoadMoreControl\">\r\n <!--items-->\r\n <div class=\"bbsf-pagination\">\r\n <jw-pagination [items]=\"items\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\"\r\n (changePage)=\"onChangePage($event)\" [pageSize]=\"options.PageSize\" [ShowFirstAndLast]=\"options.ShowFirstAndLast\"\r\n [initialPage]=\"1\" [maxPages]=\"10\"></jw-pagination>\r\n </div>\r\n <!--page count-->\r\n <div class=\"bbsf-pages\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\">\r\n <select (change)=\"changePageSize($event)\" *ngIf=\"options.ShowPageSizeOption\">\r\n <option>10</option>\r\n <option>20</option>\r\n <option>50</option>\r\n <option>100</option>\r\n <option>200</option>\r\n </select>\r\n <div class=\"bssf-items\">\r\n <strong>{{totalRow}}</strong> {{itemsText}} {{utilityService.getResourceValue(\"In\")}} <strong> {{Pages}}</strong> {{pagesText}}\r\n </div>\r\n </div>\r\n </div>\r\n <!--load more-->\r\n <div class=\"bbsf-loadmore\" *ngIf=\"options.IsLoadMoreControl\">\r\n <div class=\"search-results\" infinite-scroll [infiniteScrollDistance]=\"ScrollDistance\"\r\n [infiniteScrollUpDistance]=\"ScrollUpDistance\" [infiniteScrollThrottle]=\"Throttle\" (scrolled)=\"options.IsInfiniteScroll==true?onScrollDown():null\"\r\n [scrollWindow]=\"options.ScrollWindow\" [infiniteScrollContainer]=\"options.InfiniteScrollContainer\">\r\n </div>\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"onScrollDown()\" *ngIf=\"!(result.length==totalRow)\">{{utilityService.getResourceValue(\"LoadMore\")}}</button>\r\n </div>\r\n</div>\r\n\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Optional, Output } from '@angular/core';\r\nimport { AbstractControl, ControlContainer, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { CountryISO, SearchCountryField } from 'ngx-intl-tel-input';\r\nimport { Country } from '../../Shared/Enums/Countries';\r\nimport { PhoneOptions } from '../../Shared/Models/PhoneOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\n\r\n@Component({\r\n selector: 'BBSF-Phone',\r\n templateUrl: './Phone.component.html'\r\n})\r\nexport class PhoneComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public PhoneControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n PhoneComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: PhoneOptions;\r\n @Output() OnChange = new EventEmitter();\r\n PhoneFormControl: AbstractControl;\r\n SearchCountryField = SearchCountryField;\r\n // TooltipLabel = TooltipLabel;\r\n markAllAsTouched: boolean = false\r\n validationRules = [];\r\n validationRulesasync = [];\r\n separateDialCode = false;\r\n textDir;\r\n\r\n ngOnInit() {\r\n\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.PhoneFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.PhoneFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.PhoneFormControl.setValidators(this.validationRules);\r\n this.PhoneFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.PhoneFormControl.disable();\r\n }\r\n\r\n this.PhoneControlHost.ngSubmit.subscribe(() => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n onValueChanged() {\r\n let Number = this.PhoneFormControl.value.internationalNumber as string;\r\n let originalValue = this.controlUtility.trimControlValue(Number);\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n this.OnChange.emit(originalValue);\r\n }\r\n getSelectedCountry(selectedCountry: Country) {\r\n let value = selectedCountry as string;\r\n return value as CountryISO\r\n }\r\n\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.PhoneFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.PhoneFormControl, this.validationRules, this.options)\r\n }\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.PhoneFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.PhoneFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.PhoneFormControl)\r\n }\r\n}\r\n\r\n\r\n","<div class=\"form-group bbsf-control bbsf-phone\" [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\r\n {{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 *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\">\r\n <!--input-->\r\n <ngx-intl-tel-input [dir]=\"textDir\" [cssClass]=\"options.ExtraClasses\" [preferredCountries]=\"options.PreferredCountries\"\r\n [onlyCountries]=\"options.OnlyCountries\" [enableAutoCountrySelect]=\"true\" [enablePlaceholder]=\"options.EnablePlaceholder\"\r\n [searchCountryFlag]=\"options.AllowSearch\" [searchCountryField]=\"[SearchCountryField.Iso2,\r\n SearchCountryField.Name]\" [selectFirstCountry]=\"options.SelectFirstCountry\"\r\n [selectedCountryISO]=\"getSelectedCountry(options.SelectedCountryISO)\" [separateDialCode]=\"separateDialCode\" maxlength=\"15\"\r\n [(ngModel)]=\"options.Value\" [phoneValidation]=\"options.PhoneValidation\" [id]=\"options.Name\" name=\"{{options.Name}}\"\r\n formControlName=\"{{options.Name}}\" (change)=\"onValueChanged()\" [class.is-invalid]=\"PhoneFormControl.invalid &&\r\n PhoneFormControl.touched\" aria-invalid=\"true\" class=\"form-control\">\r\n </ngx-intl-tel-input>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\"><a href=\"tel:{{options.Value}}\">{{options.Value}}</a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!options.IsReadonly\" class=\"subtext-container\">\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\" *ngIf=\"(PhoneFormControl.invalid &&\r\n PhoneFormControl.touched)\">\r\n {{getErrorValidation(PhoneFormControl.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>","import { FileDTO } from './FileDTO'\r\n\r\nexport class ProfilePictureDTO\r\n{\r\n ImageID_GUID:string\r\n ImageIDEncrypted:string\r\n FileName:string\r\n MediumPicture:string\r\n SmallPicture:string\r\n Original:string\r\n profilePicture:FileDTO\r\n AvatarPicture:FileDTO\r\n OriginalPicture:FileDTO\r\n FileURL?: string;\r\n}","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n ElementRef,\r\n NgZone,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { FileUploader, FileLikeObject, FileUploaderOptions } from 'ng2-file-upload';\r\nimport { FileDTO } from '../../Shared/Models/FileDTO';\r\nimport { CropperComponent } from 'angular-cropperjs';\r\nimport { ProfileImageUploadOptions } from '../../Shared/Models/ProfileImageUploadOptions';\r\nimport { ProfilePictureDTO } from '../../Shared/Models/ProfilePictureDTO';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-ProfileImageUploader',\r\n templateUrl: './ProfileImageUploader.component.html',\r\n})\r\nexport class ProfileImageUploaderComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n\r\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\r\n files: File[] = [];\r\n ImageSource: string = './src/assets/images/user.svg';\r\n isSubmitted: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: ProfileImageUploadOptions;\r\n @Output() OnChange = new EventEmitter();\r\n ProfileImageUploadFormControl: AbstractControl;\r\n ValidationMessage = '';\r\n uploader: FileUploader;\r\n hasAnotherDropZoneOver: boolean;\r\n AcceptedType: string = '';\r\n AcceptedTypeArray: string[] = [];\r\n ToolTipTypeArray: string[] = [];\r\n FileLikeObject: FileLikeObject;\r\n ProfilePictureDTO: ProfilePictureDTO;\r\n control: FormControl;\r\n markAllAsTouched: boolean = false;\r\n\r\n @ViewChild('angularCropper', { static: false })\r\n public angularCropper: CropperComponent;\r\n imgUrl = null;\r\n config = null;\r\n imageUrl = '';\r\n imgwUrl = '';\r\n EventFile: any;\r\n mdlSampleIsOpen: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n\r\n constructor(\r\n private zone: NgZone,\r\n private controlUtility: ControlUtility,\r\n @Optional() private controlContainer: ControlContainer,\r\n public ProfileImageUploaderControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n ProfileImageUploaderComponent.controlContainerstatic =\r\n this.controlContainer;\r\n this.uploader = new FileUploader(<FileUploaderOptions>{\r\n disableMultipart: false, // 'DisableMultipart' must be 'true' for formatDataFunction to be called.\r\n });\r\n this.hasAnotherDropZoneOver = false;\r\n this.ProfilePictureDTO = new ProfilePictureDTO();\r\n }\r\n\r\n ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (\r\n this.options.DefaultImageSrc != null &&\r\n this.options.DefaultImageSrc != ''\r\n )\r\n this.ImageSource = this.options.DefaultImageSrc;\r\n\r\n this.config = {\r\n aspectRatio: 200 / 200,\r\n dragMode: 'move',\r\n background: true,\r\n movable: true,\r\n rotatable: true,\r\n scalable: true,\r\n zoomable: true,\r\n viewMode: 1,\r\n checkImageOrigin: true,\r\n modal: true,\r\n checkCrossOrigin: false,\r\n cropBoxResizable: false,\r\n autoCrop: true,\r\n };\r\n\r\n if (this.options.ImageUploadAcceptsTypes != null) {\r\n this.options.ImageUploadAcceptsTypes;\r\n }\r\n if (this.options.Value != null) {\r\n let imgURL = this.options.Value['fileURL'];\r\n if (imgURL != '' && imgURL != undefined && imgURL != null)\r\n this.ImageSource = imgURL;\r\n\r\n let element = this.options.Value;\r\n this.FileLikeObject = <FileLikeObject>{\r\n name: element.FileName\r\n };\r\n this.uploader.addToQueue([this.FileLikeObject as any]);\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n if (\r\n this.options.ImageUploadAcceptsTypes != null &&\r\n this.options.ImageUploadAcceptsTypes.length > 0\r\n ) {\r\n for (\r\n let index = 0;\r\n index < this.options.ImageUploadAcceptsTypes.length;\r\n index++\r\n ) {\r\n const Type = this.options.ImageUploadAcceptsTypes[index];\r\n this.AcceptedType =\r\n this.AcceptedType.toUpperCase() + Type.toUpperCase();\r\n }\r\n this.AcceptedTypeArray = this.AcceptedType.split(',');\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n const TypeToolTipe = element.split('/')[1];\r\n this.ToolTipTypeArray.push(TypeToolTipe.toUpperCase());\r\n }\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n this.UtilityService.getResourceValue('AllowedTypes') +\r\n ` (${this.ToolTipTypeArray}) `;\r\n }\r\n if (this.options.FileMaxSizeInMB > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n ` <br /> ${this.UtilityService.getResourceValue('FileMaxSizeInMB')} ${this.options.FileMaxSizeInMB\r\n }`;\r\n }\r\n if (\r\n this.options.ImageUploadAcceptsTypes != null &&\r\n this.options.ImageUploadAcceptsTypes.length > 0\r\n ) {\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ProfileImageUploadFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n this.ProfileImageUploadFormControl.setValidators(this.validationRules);\r\n this.ProfileImageUploadFormControl.setAsyncValidators(\r\n this.validationRulesasync\r\n );\r\n if (this.options.IsDisabled) {\r\n this.ProfileImageUploadFormControl.disable();\r\n }\r\n\r\n this.ProfileImageUploaderControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(\r\n this.options.AttributeList[index].Key,\r\n this.options.AttributeList[index].value\r\n );\r\n }\r\n }\r\n }\r\n\r\n showImageUploader(element: HTMLElement) {\r\n let input = element.parentElement.parentElement.querySelector(\r\n 'input[type=file]'\r\n ) as HTMLElement;\r\n input.click();\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(\r\n ErrorList,\r\n this.group,\r\n this.options\r\n );\r\n }\r\n\r\n onFileChange(event) {\r\n if (event.rejectedFiles.length > 0) {\r\n const file = event.rejectedFiles[0];\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ProfileImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n if (\r\n this.options.ImageUploadAcceptsTypes != null &&\r\n this.options.ImageUploadAcceptsTypes.length > 0 &&\r\n !(\r\n this.AcceptedTypeArray.includes(fileType.toUpperCase()) ||\r\n this.AcceptedTypeArray.includes(fileType.toLowerCase())\r\n )\r\n ) {\r\n const formControl = this.ProfileImageUploadFormControl;\r\n formControl.setErrors({ ToolTipTypeError: this.ToolTipTypeArray });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n }\r\n let FilesArray = [];\r\n for (let index = 0; index < event.addedFiles.length; index++) {\r\n const file = event.addedFiles[0];\r\n this.EventFile = file;\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n if (file) {\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ProfileImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n let reader = new FileReader();\r\n let FileObject = file;\r\n reader.readAsDataURL(FileObject);\r\n reader.onload = () => {\r\n this.imageUrl = reader.result.toString();\r\n this.openModal(true);\r\n let originalValue = this.group.get(this.options.Name).value;\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.group.get(this.options.Name).valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value = originalValue;\r\n this.OnChange.emit(originalValue);\r\n };\r\n }\r\n }\r\n }\r\n removeFromControlValue(event) {\r\n let ItemList = this.group.get(this.options.Name).value;\r\n this.files.splice(this.files.indexOf(event), 1);\r\n ItemList = [];\r\n if (this.files.length == 0 && this.options.IsRequired) {\r\n this.ProfileImageUploadFormControl.markAsTouched();\r\n this.ProfileImageUploadFormControl.setErrors(Validators.required);\r\n this.ProfileImageUploadFormControl.invalid;\r\n }\r\n this.group.get(this.options.Name).setValue(ItemList);\r\n this.OnChange.emit(this.group.get(this.options.Name).value);\r\n this.options.Value = this.group.get(this.options.Name).value;\r\n }\r\n cropImage() {\r\n this.ProfilePictureDTO.FileName = this.EventFile.name;\r\n let Cropper = this.angularCropper.cropper;\r\n let profilePicturCropper = Cropper.getCroppedCanvas({\r\n width: 400,\r\n height: 400,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n let AvatarPictureCropper = Cropper.getCroppedCanvas({\r\n width: 100,\r\n height: 100,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n let OriginalPictureCropper = Cropper.getCroppedCanvas({\r\n width: 700,\r\n height: 700,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n profilePicturCropper.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getProfileImageBlobFile(blob, 'profilePicturCropper');\r\n });\r\n });\r\n AvatarPictureCropper.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getProfileImageBlobFile(blob, 'AvatarPictureCropper');\r\n });\r\n });\r\n OriginalPictureCropper.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getProfileImageBlobFile(blob, 'OriginalPictureCropper');\r\n });\r\n });\r\n\r\n this.files = [];\r\n\r\n this.openModal(false);\r\n }\r\n getProfileImageBlobFile(blob, type) {\r\n let FilesArray = [];\r\n let BlobFile;\r\n let reader = new FileReader();\r\n BlobFile = blob;\r\n reader.readAsDataURL(BlobFile);\r\n reader.onload = () => {\r\n let FileObject: FileDTO;\r\n switch (type) {\r\n case 'profilePicturCropper':\r\n BlobFile.name = this.EventFile.name + 'MediumPicture';\r\n FileObject = {\r\n FileName: this.EventFile.name + 'MediumPicture',\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n };\r\n this.ProfilePictureDTO.profilePicture = FileObject;\r\n this.ProfilePictureDTO.MediumPicture =\r\n FileObject.FileName + ',' + FileObject.FileBase64;\r\n this.files.push(BlobFile);\r\n break;\r\n case 'AvatarPictureCropper':\r\n FileObject = {\r\n FileName: this.EventFile.name + 'SmallPicture',\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n };\r\n this.ProfilePictureDTO.AvatarPicture = FileObject;\r\n this.ProfilePictureDTO.SmallPicture =\r\n FileObject.FileName + ',' + FileObject.FileBase64;\r\n break;\r\n\r\n case 'OriginalPictureCropper':\r\n FileObject = {\r\n FileName: this.EventFile.name + 'Original',\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n };\r\n this.ProfilePictureDTO.OriginalPicture = FileObject;\r\n this.ProfilePictureDTO.Original =\r\n FileObject.FileName + ',' + FileObject.FileBase64;\r\n this.group.get(this.options.Name).setValue(this.ProfilePictureDTO);\r\n this.OnChange.emit(this.group.get(this.options.Name).value);\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.options.Value = this.ProfilePictureDTO;\r\n };\r\n }\r\n\r\n rotateImage(degree: number) {\r\n this.angularCropper.cropper.rotate(degree);\r\n }\r\n moveImage(offsetX: number, offsetY: number) {\r\n this.angularCropper.cropper.move(offsetX, offsetY);\r\n }\r\n zoomImage(ratio: number) {\r\n this.angularCropper.cropper.zoom(ratio);\r\n }\r\n\r\n openModal(open: boolean): void {\r\n this.mdlSampleIsOpen = open;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ProfileImageUploadFormControl);\r\n };\r\n}\r\n","<div class=\"form-group bbsf-control bbsf-profile-image-upload\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"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 <!--Allow dropZone-->\r\n <div *ngIf=\"options.AllowDropZone&&!options.IsReadonly\" class=\"bbsf-input-container {{options.ExtraClasses}}\" ngx-dropzone\r\n [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n ngDefaultControl formControlName=\"{{options.Name}}\" id=\"{{options.Name}}\"\r\n [class.is-invalid]=\"ProfileImageUploadFormControl.invalid && ProfileImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"dropzone-label\">\r\n <div class=\"svg-and-validation\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\"\r\n d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\"\r\n fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n </div>\r\n </ngx-dropzone-label>\r\n <ngx-dropzone-image-preview class=\"dropzone-preview\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n <!--Not allowed dropZone-->\r\n <div *ngIf=\"!options.AllowDropZone&&!options.IsReadonly\" style=\"width:fit-content\">\r\n <ngx-dropzone-label *ngIf=\"files.length==0\">\r\n <div #element (click)=\"showImageUploader(element)\">\r\n <img [src]=\"ImageSource\" class=\"profile-upload-img\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n <div class=\"d-none {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\"\r\n (change)=\"onFileChange($event)\" aria-describedby=\"email-error\" aria-invalid=\"true\" ngDefaultControl formControlName=\"{{options.Name}}\"\r\n id=\"{{options.Name}}\" [class.is-invalid]=\"ProfileImageUploadFormControl.invalid && ProfileImageUploadFormControl.touched\">\r\n </div>\r\n <ngx-dropzone-image-preview *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n </div>\r\n\r\n <ngx-dropzone-label *ngIf=\"files.length==0&&options.IsReadonly\">\r\n <div #element>\r\n <img [src]=\"ImageSource\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(ProfileImageUploadFormControl.invalid && ProfileImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ProfileImageUploadFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n <!-- image cropper modal-->\r\n <div id=\"mdlSample\" class=\"modal bbsf-cropper-modal\" role=\"dialog\" [ngStyle]=\"{'display': mdlSampleIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n {{UtilityService.getResourceValue(\"CropImage\")}}\r\n </h4>\r\n <button type=\"button\" class=\"btn-close\" data-dismiss=\"modal\" (click)=\"openModal(false)\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div *ngIf=\"imageUrl\">\r\n <angular-cropper #angularCropper [cropperOptions]=\"config\" [imageUrl]=\"imageUrl\">\r\n </angular-cropper>\r\n <img [src]=\"imgwUrl\" />\r\n </div>\r\n <div class=\"cropper-btns\">\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"zoomImage(0.1)\" class=\"btn btn-default\" ngbTooltip=\"Zoom in\">\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"zoomImage(-0.1)\" class=\"btn btn-default\" ngbTooltip=\"Zoom out\">\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"moveImage(-10,0)\" class=\"btn btn-default\" ngbTooltip=\"Move left\">\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-left\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(10,0)\" class=\"btn btn-default\" ngbTooltip=\"Move right\">\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-right\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,-10)\" class=\"btn btn-default\" ngbTooltip=\"Move up\">\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-up\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,10)\" class=\"btn btn-default\" ngbTooltip=\"Move down\">\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-down\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"rotateImage(-45)\" class=\"btn btn-default\" ngbTooltip=\"Rotate left\">\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-undo-alt\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"rotateImage(45)\" class=\"btn btn-default\" ngbTooltip=\"Rotate right\">\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-redo-alt\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\" align=\"right\">\r\n <button type=\"button\" id=\"btnClose\" class=\"btn btn-sm btn-light\" (click)=\"openModal(false)\">\r\n {{UtilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" (click)=\"cropImage()\" id=\"btnOK\" class=\"btn btn-sm btn-brand\">\r\n {{UtilityService.getResourceValue(\"Crop\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { RadioButtonOptions } from '../../Shared/Models/RadioButtonOptions';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-RadioButton',\r\n templateUrl: './RadioButton.component.html'\r\n})\r\nexport class RadioButtonComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public RadioButtonControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n RadioButtonComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: RadioButtonOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n RadioButtonFormControl: AbstractControl;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n ngOnInit() {\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.RadioButtonFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.RadioButtonFormControl.setValidators(this.validationRules);\r\n this.RadioButtonFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.RadioButtonFormControl.disable();\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n this.RadioButtonControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n if (this.options.Value) {\r\n this.RadioButtonFormControl.setValue(this.options.Value.Value);\r\n }\r\n\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n onValueChanged() {\r\n let originalValue = this.RadioButtonFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.RadioButtonFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value= originalValue;\r\n this.OnChange.emit(originalValue)\r\n }\r\n\r\n getSelectedItemValue(value)\r\n {\r\n return this.options.Items.filter(item=>item.Value==value)[0].Text\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.RadioButtonFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.RadioButtonFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.RadioButtonFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.RadioButtonFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.RadioButtonFormControl)\r\n }\r\n}\r\n\r\n\r\n","<div class=\"form-group bbsf-control bbsf-radio-button\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"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 <div *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\">\r\n <!--input-->\r\n <div class=\"radio-container\" *ngFor=\"let item of options.Items\">\r\n <input type=\"radio\" id=\"{{options.Name}}{{item.Value}}\"\r\n class=\"{{options.ExtraClasses}}\"\r\n [value]=\"item.Value\" checked=\"{{(options.Value!=null)&&(options.Value.Value == item.Value)}}\"\r\n (change)=\"onValueChanged()\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" [(ngModel)]=\"options.Value\"\r\n formControlName=\"{{options.Name}}\">\r\n <label class=\"radio-input-label\" for=\"{{options.Name}}{{item.Value}}\">{{item.Text}}</label>\r\n </div>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\">{{getSelectedItemValue(options.Value)}}</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!options.IsReadonly\" class=\"subtext-container\">\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\" *ngIf=\"(RadioButtonFormControl.invalid && RadioButtonFormControl.touched)\">\r\n {{getErrorValidation(RadioButtonFormControl.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\r\n","export class RecaptchaModel\r\n{\r\n ID:string;\r\n Text:string;\r\n EncryptedText:string\r\n ImageJpeg:any[]=[];\r\n}","export class CaptchaStyle {\r\n /*Pass hexa-color primary background color*/\r\n BackgroundColorPrimary: string\r\n /*Pass hexa-color secondary background color*/\r\n BackgroundColorSecondary: string\r\n /*Pass hexa-color primary text color*/\r\n TextColorPrimary: string\r\n /*Pass hexa-color secondary text color*/\r\n TextColorSecondary: string\r\n /*Pass font Size */\r\n FontSize: number\r\n}","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { ControlValidationService, RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { RecaptchaOptions } from '../../Shared/Models/RecaptchaOptions';\r\nimport { RecaptchaModel } from '../../Shared/Models/Recaptcha';\r\nimport { CaptchaStyle } from '../../Shared/Models/CaptchaStyle';\r\n\r\n@Component({\r\n selector: 'BBSF-Recaptcha',\r\n templateUrl: './Recaptcha.component.html',\r\n})\r\nexport class RecaptchaComponent implements OnInit {\r\n markAllAsTouched: boolean;\r\n constructor(private controlUtility: ControlUtility, private requestHandlerService: RequestHandlerService,\r\n public recaptchaControlHost: FormGroupDirective, public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: RecaptchaOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ReCaptchaFormControl: AbstractControl;\r\n validationRules = [];\r\n validationRulesAsync = [];\r\n image: string\r\n recaptchaModel: RecaptchaModel = new RecaptchaModel();\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.loadImage();\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ReCaptchaFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n this.ReCaptchaFormControl.setValidators(this.validationRules);\r\n this.ReCaptchaFormControl.setAsyncValidators(this.validationRulesAsync);\r\n if (this.options.IsDisabled) {\r\n this.ReCaptchaFormControl.disable();\r\n }\r\n\r\n this.recaptchaControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n loadImage() {\r\n let style: CaptchaStyle = new CaptchaStyle();\r\n style.BackgroundColorPrimary = this.options.BackgroundColorPrimary;\r\n style.BackgroundColorSecondary = this.options.BackgroundColorSecondary;\r\n style.TextColorPrimary= this.options.TextColorPrimary;\r\n style.TextColorSecondary = this.options.TextColorSecondary;\r\n style.FontSize = this.options.FontSize;\r\n let requestOptionsModel = new RequestOptionsModel()\r\n requestOptionsModel.disableBlockUI = true;\r\n requestOptionsModel.disableSuccessNotification = true;\r\n this.requestHandlerService.post(this.options.ActionURL, style, null, null, requestOptionsModel).subscribe((res) => {\r\n let model = res as any\r\n this.recaptchaModel.ID = model.id;\r\n this.recaptchaModel.EncryptedText = model.encryptedText;\r\n this.recaptchaModel.ImageJpeg = model.imageJpeg;\r\n this.image = 'data:image/jpeg;base64,' + this.recaptchaModel.ImageJpeg;\r\n })\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n onTextChange(valueText) {\r\n let value = valueText.target.value;\r\n this.recaptchaModel.Text = value;\r\n this.group.get(this.options.Name).setValue(this.recaptchaModel);\r\n this.options.Value = this.recaptchaModel;\r\n this.OnChange.emit(this.ReCaptchaFormControl.value);\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.ReCaptchaFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.ReCaptchaFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.ReCaptchaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.ReCaptchaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ReCaptchaFormControl)\r\n }\r\n}\r\n\r\n\r\n","<div class=\"form-group bbsf-control bbsf-recaptcha\" [formGroup]=\"group\">\r\n <img class=\"h-100 w-100\" [src]=\"image\" />\r\n <button class=\"btn btn-sm btn-icon\" type=\"button\" ngbTooltip=\"{{UtilityService.getResourceValue('ReloadCaptcha')}}\"\r\n (click)=\"loadImage()\">\r\n <i class=\"fas fa-refresh\"></i>\r\n </button>\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)\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--input-->\r\n <div class=\"bbsf-input-container\">\r\n <input class=\"form-control {{options.ExtraClasses}}\"\r\n [dir]=\"textDir\"\r\n aria-describedby=\"email-error\" value=\"{{options.Value.Text}}\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\" type=\"text\"\r\n [class.is-invalid]=\"ReCaptchaFormControl.invalid && ReCaptchaFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"onTextChange($event)\" [readonly]=\"options.IsReadonly\" />\r\n\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\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 [dir]=\"textDir\"\r\n *ngIf=\"(ReCaptchaFormControl.invalid && ReCaptchaFormControl.touched)\">\r\n {{getErrorValidation(ReCaptchaFormControl.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","import { ControlLayout } from \"../Enums/ControlLayout\"\r\nimport { Attribute } from './Attribute';\r\nimport { CustomValidation } from \"./CustomValidation\";\r\nexport class ControlOptionsBase {\r\n /** Represent Name Of Form Control*/\r\n Name: string\r\n /** Represent classes to Control that allow us to select the Control by jquery or javascript */\r\n ExtraClasses: string\r\n /** Represent classes to label that allow us to select the Control by jquery or javascript */\r\n LabelExtraClasses: string\r\n /** Represent value of the label*/\r\n LabelValue: string\r\n /** Represent Key of the label*/\r\n LabelKey: string\r\n /** Represent value of the labelDescription show under Control*/\r\n LabelDescription: string\r\n /** Represent value of the Placeholder of Control */\r\n Placeholder: string\r\n /**\r\n * Display \"*\" beside the label \r\n * if ForceAsterisk=true and IsRequired=True his display \"*\" ,\r\n * if ForceAsterisk=false and IsRequired=false this remove \"*\",\r\n *if ForceAsterisk=false and IsRequired=True this display \"*\" , \r\n */\r\n ShowAsterisk: boolean\r\n /** Ability to set Control required */\r\n IsRequired: boolean\r\n /** Ability to display or hide the label of Control */\r\n HideLabel: boolean\r\n /** Sets an attribute disable=\"disabled\" */\r\n IsDisabled: boolean = false\r\n /** to set type of view if Control is Vertical or Horizontal */\r\n ViewType: ControlLayout = null;\r\n /** Set List of Custom Attribute to Control */\r\n AttributeList: Attribute[]\r\n /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage */\r\n CustomValidation: CustomValidation[] = []\r\n /** Path of propriety which we need to patch value */\r\n PatchPath: string;\r\n /** Function which call to patch value */\r\n PatchFunction: Function;\r\n /** Sets an attribute readonly */\r\n IsReadonly: boolean = false;\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { StartView } from '../Enums/StartView';\r\nimport { PickerType } from '../Enums/PickerType';\r\nimport { SelectMode } from '../Enums/SelectMode';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class DatePickerOptions extends ControlOptionsBase {\r\n\r\n /**To set value to DatePicker */\r\n Value: Date\r\n /**To set StartDate to DatePicker */\r\n StartDate: Date\r\n /**To set EndDate to DatePicker */\r\n EndDate: Date;\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n IsGMT: boolean\r\n /**To set First Day Of Week to DatePicker */\r\n FirstDayOfWeek: number = 1\r\n /**To set Hour12Timer to DatePicker is 12 Hour or 24 Hour*/\r\n Hour12Timer: boolean = true\r\n /**To set PickerType to DatePicker is Calendar or Timer Or Both */\r\n PickerType: PickerType = PickerType.Calendar\r\n /**To set StartView to DatePicker is Year or Month Or Multi-Year */\r\n StartView: StartView = StartView.Month\r\n /**To set SelectMode to DatePicker is Single or Range */\r\n SelectMode: SelectMode = SelectMode.Single\r\n ForceDirection: ForceDirection = null\r\n /**Name of DatePicker control to compare value with it */\r\n StartControlToCompareWith: string = null;\r\n\r\n}\r\n","import { ControlLayout } from '../Enums/ControlLayout'\r\nimport { DropdownListItem } from './DropdownListItem'\r\nimport { CustomValidation } from './CustomValidation'\r\nimport { Attribute } from './Attribute'\r\nimport { ForceDirection } from '../Enums/ForceDirection'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\n\r\nexport class DropdownOptions extends ControlOptionsBase {\r\n\r\n /**To set DataSource to DropdownList */\r\n DataSource: DropdownListItem[]\r\n /**To set SelectedItem to DropdownList */\r\n SelectedItems: any\r\n /** Disable Bootstrap DropdownList */\r\n DisableBootstrapSelect: boolean = false;\r\n /** to set DropdownList in SingleMode Or MultibleMode ,,If false => DisableBootstrapSelect must be equal false */\r\n SingleSelection: boolean\r\n /** to set Number Of selected Element That will Show In The Box */\r\n ItemsShowLimit: number\r\n /** to Show Search Filter Box*/\r\n AllowSearchFilter: boolean\r\n /** to set Limit Of selected Element For DropdownList */\r\n LimitSelection?: number\r\n /** Set css classes to DropdownList */\r\n Classes: string;\r\n /** Allow Show Checkbox */\r\n ShowCheckbox?: boolean;\r\n /** Allow Check ALL Items */\r\n EnableCheckAll?: boolean;\r\n /** Set key for item in DropdownList */\r\n ItemTempletkey: string = \"key\"\r\n /** Set value for item in DropdownList */\r\n ItemTempletvalue: string = \"value\"\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n NotFoundText: string = \"\"\r\n /** Represent Value of disabled items tooltip*/\r\n DisabledItemsTooltipValue: string\r\n\r\n}\r\n","import { FileType } from '../Enums/FileType';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class FileUploadOptions extends ControlOptionsBase {\r\n\r\n Value: any;\r\n /** Ability to set FileInput required */\r\n IsMultipleFile: boolean = false\r\n /** Sets boolean Value to Show IsDropZone Or Not */\r\n IsDropZone: boolean = false\r\n /** Set File MaxSize In MB */\r\n FileMaxSizeInMB: number;\r\n /** Set Max Number Of Files */\r\n MaxNoOfFiles: number;\r\n /** Set Min Number Of Files */\r\n MinNoOfFiles: number;\r\n /** Set File MaxSizeForAllFilesInMB In MB */\r\n MaxSizeForAllFilesInMB: number;\r\n /** Set List of Custom Attribute to FileInput */\r\n FileUploadAcceptsTypes: FileType[]\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { Attribute } from './Attribute';\r\nimport { Misc } from '../Enums/Misc';\r\nimport { Style } from '../Enums/Style';\r\nimport { FontSize } from '../Enums/FontSize';\r\nimport { Para } from '../Enums/Para';\r\nimport { Insert } from '../Enums/Insert';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class HtmlEditorOptions extends ControlOptionsBase {\r\n /**To set value to HtmlEditor */\r\n Value:any\r\n //** Set the MaxLength of characters In HtmlEditor */\r\n MaxLength?:number\r\n /**Set the MinLength of characters In HtmlEditor */\r\n MinLength?:number\r\n/** to set Direction of HtmlEditor if HtmlEditor is Arabic or English */\r\n ForceDirection: ForceDirection=ForceDirection.English\r\n /** Set Height For */\r\n Height: number=5\r\n /** Set List of Custom Attribute to HtmlEditor */\r\n AttributeList:Attribute[]\r\n /** Set List of Misc like codeview Or undo Or redo */\r\n ToolsList_Misc?: Misc[];\r\n /** Set List of Style like bold Or italic Or underline Or clear */\r\n ToolsList_Style?: Style[];\r\n /** Set List of FontSize like fontname Or fontsize Or color */\r\n ToolsList_FontSize?: FontSize[];\r\n /** Set List of Para like style Or ul Or ol Or paragraph Or height */\r\n ToolsList_Para?: Para[];\r\n /** Set List of Insert like table Or picture Or link Or video Or hr */\r\n ToolsList_Insert?: Insert[];\r\n\r\n\r\n}\r\n","export enum ImageType\r\n{\r\n ImageTypes='image/png,image/bmp,image/jpeg',\r\n PNG='image/png',\r\n JPG='image/jpeg',\r\n JPEG='image/jpeg',\r\n SVG='image/svg+xml',\r\n None='',\r\n}","import { FileDTO } from './FileDTO';\r\nimport { ImageType } from '../Enums/ImageType';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class ImageUploadOptions extends ControlOptionsBase {\r\n\r\n /**To set value to ImageUpload */\r\n Value: FileDTO\r\n /** Allow to Upload Multiple File */\r\n IsMultiple: boolean = false\r\n /** Allow to Use Drop Zone */\r\n AllowDropZone: boolean = true\r\n /** Sets an attribute AllowImageCropper=\"true\" */\r\n AllowImageCropper: boolean\r\n /** Set Height of Image Cropper Box */\r\n ImageCropperHeight: number\r\n /** Set Width of Image Cropper Box */\r\n ImageCropperWidth: number\r\n /** Set File MaxSize In MB */\r\n FileMaxSizeInMB: number;\r\n /** Set List of Custom Attribute to FileInput */\r\n FileUploadAcceptsTypes: ImageType[] = [ImageType.ImageTypes]\r\n /** Set Default Image */\r\n DefaultImageSrc: string\r\n}\r\n","export enum AddressTypes {\r\n Establishment = 'establishment',\r\n Address = 'address',\r\n Geocode = 'geocode'\r\n}","import { MapAutocompleteDTO } from './MapAutocompleteDTO'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\nimport { AddressTypes } from '../Enums/map-enums';\r\n\r\nexport class MapAutoCompleteOptions extends ControlOptionsBase {\r\n /** Sets Value of MapAutoComplete */\r\n Value: MapAutocompleteDTO;\r\n addressType: string = AddressTypes.Address;\r\n showAdvancedMap: boolean = false;\r\n}\r\n","import { Country } from '../Enums/Countries';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class PhoneOptions extends ControlOptionsBase {\r\n\r\n /**To set value to Phonebox */\r\n Value: any\r\n /** To allow search in country list*/\r\n AllowSearch: boolean\r\n /**Allow To Show Placeholder */\r\n EnablePlaceholder: boolean\r\n /**Allow To Select First Country */\r\n SelectFirstCountry: boolean\r\n /**Set Selected Country To Phone Box*/\r\n SelectedCountryISO: Country\r\n /**Allow Phone Validation */\r\n PhoneValidation: boolean\r\n /**Set List Of Countries As Preferred Countries*/\r\n PreferredCountries: Country[] = []\r\n // **Set List Of Countries to show it in dropdown list and ignore another countries */\r\n OnlyCountries: Country[] = []\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n\r\n}\r\n","export class RangeNumber\r\n{\r\n From?:number\r\n To?: number\r\n}","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\n\r\nexport class TextAreaOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: any\r\n //** Set the MaxLength of characters In TextArea */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In TextArea */\r\n MinLength?: number\r\n /**Set Number Of Rows */\r\n Rows: number\r\n /**Set Number Of columns */\r\n Cols: number\r\n //** Set the MaxWordCount of characters In TextArea */\r\n MaxWordCount: number;\r\n /**Prevent AutoComplete of TextArea*/\r\n AutoComplete: boolean\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /** to set Direction of TextArea if TextArea is Arabic or English */\r\n ForceDirection: ForceDirection\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n}\r\n","export enum IconPosition {\r\n left = 1,\r\n right = 2\r\n }\r\n","import { InputType } from '../Enums/InputType';\r\nimport { RangeNumber } from './RangeNumber';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { IconPosition } from '../Enums/IconPosition';\r\nimport { LanguageValidation } from '../Enums/LanguageValidation';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class TextBoxOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: any\r\n //** Set the MaxLength of characters In TextBox */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In TextBox */\r\n MinLength?: number\r\n //** Set the MaxWordCount of characters In TextBox */\r\n MaxWordCount: number;\r\n /** set Range Number to Textbox with type number with From-Value and To-value*/\r\n NumberRange: RangeNumber = new RangeNumber()\r\n /**Prevent AutoComplete of textbox default value is \"on\" available values \"on\" and \"off\"*/\r\n AutoComplete: string = \"on\"\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /**Prevent Defulat Password Validation to set Custom Validation */\r\n RemoveDefaultPasswordValidation: boolean\r\n /** to set Direction of textbox if textbox is Arabic or English */\r\n ForceDirection: ForceDirection = null\r\n /** to set Language of textbox if textbox language is Arabic or English */\r\n LanguageValidation: LanguageValidation = null\r\n /** Set Type of TextBox (\"text\",\"password\",\"email\",\"number\") */\r\n Type: InputType = InputType.Text;\r\n /** Set Mask Pattern Attribute to TextBox */\r\n MaskPattern: string\r\n /*icon options*/\r\n Icon: string\r\n IconPosition: IconPosition = IconPosition.left\r\n NoMargin: boolean = false;\r\n ValidationRules: any[] = [];\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class ToggleSlideOptions extends ControlOptionsBase {\r\n\r\n /**Display validation message only on added repeater when add class \"v-required\"*/\r\n ValidationClasses: string\r\n /**To set value to ToggleSlide */\r\n Value: boolean\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n\r\n}\r\n","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { TextAreaOptions } from '../../Shared/Models/TextAreaOptions';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-TextArea',\r\n templateUrl: './TextArea.component.html'\r\n})\r\nexport class TextAreaComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public TextAreaControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n TextAreaComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: TextAreaOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n TextAreaFormControl: AbstractControl;\r\n WordCount: number = 0;\r\n WordCountArray: number = 0;\r\n IsShowWordCount: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n //For Show warning message of max length limit\r\n currentCharsCount: number = 0;\r\n showCharsLimitMsg: boolean = false;\r\n hasCharsLimitValidationError: boolean = false;\r\n charsLimitMsgClass: string;\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n maxLimitWarningMsg: string = \"\";\r\n public textDir;\r\n\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.TextAreaFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextArea;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.TextAreaFormControl.setValue(this.options.Value);\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n if (this.options.MinLength > 0) {\r\n this.validationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.validationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.TextAreaFormControl.setValidators(this.validationRules);\r\n this.TextAreaFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.TextAreaFormControl.disable();\r\n }\r\n\r\n this.TextAreaControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.removeGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n getInputType(type: number) {\r\n return this.controlUtility.getInputType(type)\r\n }\r\n\r\n trimControlValue() {\r\n let originalValue = this.controlUtility.trimControlValue(this.TextAreaFormControl.value);\r\n this.TextAreaFormControl.patchValue(originalValue)\r\n if (this.options.PatchFunction && this.options.PatchPath && this.TextAreaFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n onTextChange() {\r\n\r\n if (this.TextAreaFormControl.value == \"\") {\r\n this.WordCountArray = 0;\r\n this.WordCount = 0;\r\n }\r\n\r\n else {\r\n this.WordCountArray = this.TextAreaFormControl.value.split(\" \").length;\r\n if (this.WordCountArray > 0) {\r\n if (this.WordCountArray > this.options.MaxWordCount) {\r\n this.WordCount = this.options.MaxWordCount;\r\n this.TextAreaFormControl.setErrors({ \"errorMassage\": ` Word count must be less then or equal ${this.options.MaxWordCount}` });\r\n this.TextAreaFormControl.markAsTouched();\r\n this.TextAreaFormControl.invalid;\r\n }\r\n else {\r\n this.WordCount = this.WordCountArray;\r\n\r\n }\r\n\r\n }\r\n }\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.currentCharsCount = this.TextAreaFormControl.value.length;\r\n if (this.currentCharsCount > this.minCharsLimit) {\r\n this.showCharsLimitMsg = true;\r\n this.hasCharsLimitValidationError = true;\r\n\r\n if (this.currentCharsCount == this.options.MaxLength)\r\n this.charsLimitMsgClass = \"danger\";\r\n else\r\n this.charsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showCharsLimitMsg = false;\r\n this.hasCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.currentCharsCount;\r\n this.maxLimitWarningMsg = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n }\r\n this.OnChange.emit(this.TextAreaFormControl.value)\r\n\r\n }\r\n\r\n onFocus(isFocus: boolean) {\r\n this.IsShowWordCount = isFocus;\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasCharsLimitValidationError) //check if there was previous validation error\r\n this.showCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showCharsLimitMsg = false;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.TextAreaFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.TextAreaFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.TextAreaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.TextAreaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.TextAreaFormControl)\r\n }\r\n}\r\n\r\n\r\n","<div class=\"form-group bbsf-control bbsf-textarea\" [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 <div *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--input-->\r\n <textarea class=\"form-control {{options.ExtraClasses}}\"\r\n (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n [dir]=\"textDir\" aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"TextAreaFormControl.invalid && TextAreaFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" rows=\"{{options.Rows}}\" (keyup)=\"onTextChange()\" cols=\"{{options.Cols}}\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\" [(ngModel)]=\"options.Value\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #TextAreainput></textarea>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(TextAreainput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\" >{{options.Value}}</span>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showCharsLimitMsg\" [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </div>\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\" [dir]=\"textDir\"\r\n *ngIf=\"(TextAreaFormControl.invalid && TextAreaFormControl.touched)\">\r\n {{getErrorValidation(TextAreaFormControl.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","import { AfterViewInit, Component, Input, OnInit, SimpleChanges, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { DataType } from '../../../Shared/Enums/Enums';\r\nimport { InputType } from '../../../Shared/Enums/InputType';\r\nimport { LanguageValidation } from '../../../Shared/Enums/LanguageValidation';\r\nimport { PickerType } from '../../../Shared/Enums/PickerType';\r\nimport { SelectMode } from '../../../Shared/Enums/SelectMode';\r\nimport { StartView } from '../../../Shared/Enums/StartView';\r\nimport { DatePickerOptions } from '../../../Shared/Models/datePickerOptions';\r\nimport { DropdownOptions } from '../../../Shared/Models/DropdownOptions';\r\nimport { FileUploadOptions } from '../../../Shared/Models/FileUploadOptions';\r\nimport { HtmlEditorOptions } from '../../../Shared/Models/HtmlEditorOptions';\r\nimport { ImageUploadOptions } from '../../../Shared/Models/ImageUploadOptions';\r\nimport { MapAutoCompleteOptions } from '../../../Shared/Models/MapAutoCompleteOptions';\r\nimport { PhoneOptions } from '../../../Shared/Models/PhoneOptions';\r\nimport { RangeNumber } from '../../../Shared/Models/RangeNumber';\r\nimport { RepeaterField } from '../../../Shared/Models/RepeaterField';\r\nimport { TextAreaOptions } from '../../../Shared/Models/TextAreaOptions';\r\nimport { TextBoxOptions } from '../../../Shared/Models/TextBoxOptions';\r\nimport { ToggleSlideOptions } from '../../../Shared/Models/ToggleslideOptions';\r\nimport { RenderComponentService } from '../../../Shared/services/render-component-service.service';\r\nimport { DateInputComponent } from '../../DateTimePicker/DateTimePicker.component';\r\nimport { DropdownListComponent } from '../../DropdownList/DropdownList.component';\r\nimport { FileUploadComponent } from '../../FileUplaod/FileUplaod.component';\r\nimport { HtmlEditorComponent } from '../../HtmlEditor/HtmlEditor.component';\r\nimport { ImageUploaderComponent } from '../../ImageUpload/ImageUpload.component';\r\nimport { MapAutoCompleteComponent } from '../../MapAutoComplete/MapAutoComplete.component';\r\nimport { PhoneComponent } from '../../Phone/Phone.component';\r\nimport { TextAreaComponent } from '../../TextArea/TextArea.component';\r\nimport { TextboxComponent } from '../../TextBox/TextBox.component';\r\nimport { ToggleslideComponent } from '../../Toggleslide/toggleslide.component';\r\n\r\n\r\n@Component({\r\n selector: 'repeater-field-builder',\r\n templateUrl: './repeater-field-builder.component.html',\r\n})\r\nexport class RepeaterFieldBuilderComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild(\"Item\", { read: ViewContainerRef }) Item: ViewContainerRef;\r\n @Input() group: FormGroup;\r\n @Input() itemNumber: number;\r\n @Input() controlNumber: number;\r\n @Input() RepeaterField: RepeaterField;\r\n @Input() itemsValue: any[] = [];\r\n itemValue: any = null;\r\n value: any;\r\n\r\n constructor(private renderComponentService: RenderComponentService, public TextControlHost: FormGroupDirective) { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n if (this.itemsValue.length > 0)\r\n this.itemValue = this.itemsValue[this.itemNumber]\r\n if (this.itemValue) {\r\n for (const key in this.itemValue) {\r\n if (Object.prototype.hasOwnProperty.call(this.itemValue, key) && key == this.RepeaterField.ControlOptions.Name) {\r\n const element = this.itemValue[key];\r\n this.value = element;\r\n }\r\n }\r\n }\r\n this.Item.clear()\r\n switch (this.RepeaterField.ControlType) {\r\n ///TextBox\r\n case DataType.Text:\r\n let Text = new TextBoxOptions();\r\n Text.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Text.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Text.Type = InputType.Text;\r\n Text.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Text.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Text.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Text.Value = this.value;\r\n Text.IsReadonly = this.RepeaterField.ControlOptions.IsReadonly;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Text)\r\n break;\r\n\r\n case DataType.Name:\r\n let Name = new TextBoxOptions();\r\n Name.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Name.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Name.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Name.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Name.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Name.Type = InputType.Text;\r\n Name.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Name)\r\n break;\r\n\r\n case DataType.Email:\r\n let Email = new TextBoxOptions();\r\n Email.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Email.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Email.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Email.Type = InputType.Email;\r\n Email.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Email)\r\n break;\r\n\r\n case DataType.Number:\r\n let Number = new TextBoxOptions();\r\n Number.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Number.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Number.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Number.Type = InputType.Number;\r\n let rangeNumber = new RangeNumber()\r\n if(this.RepeaterField.ControlOptions.NumberRange){\r\n rangeNumber.To = this.RepeaterField.ControlOptions.NumberRange.To\r\n rangeNumber.From = this.RepeaterField.ControlOptions.NumberRange.From\r\n }\r\n Number.NumberRange = rangeNumber;\r\n Number.Value = this.value;\r\n Number.IsReadonly = this.RepeaterField.ControlOptions.IsReadonly;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Number)\r\n break;\r\n\r\n ///DateTime\r\n case DataType.Date:\r\n let Date = new DatePickerOptions();\r\n Date.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Date.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Date.PickerType = PickerType.Calendar;\r\n Date.SelectMode = SelectMode.Single\r\n Date.StartView = StartView.Month\r\n Date.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Date)\r\n break;\r\n\r\n case DataType.DateTime:\r\n let DateTime = new DatePickerOptions();\r\n DateTime.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n DateTime.PickerType = PickerType.Both;\r\n DateTime.SelectMode = SelectMode.Single\r\n DateTime.StartView = StartView.Month\r\n DateTime.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, DateTime)\r\n break;\r\n\r\n case DataType.Time:\r\n let Time = new DatePickerOptions();\r\n Time.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Time.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Time.PickerType = PickerType.Timer;\r\n Time.SelectMode = SelectMode.Single\r\n Time.StartView = StartView.Month\r\n Time.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Time)\r\n break;\r\n\r\n //Dropdown\r\n case DataType.SingleSelect:\r\n let SingleSelect = new DropdownOptions();\r\n SingleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n SingleSelect.SingleSelection = true\r\n SingleSelect.ShowCheckbox = false\r\n SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n SingleSelect.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, SingleSelect)\r\n break;\r\n case DataType.MulipleSelect:\r\n let MulipleSelect = new DropdownOptions();\r\n MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n MulipleSelect.SingleSelection = false\r\n MulipleSelect.ShowCheckbox = false\r\n MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n MulipleSelect.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, MulipleSelect)\r\n break;\r\n case DataType.Goal:\r\n let Goal = new DropdownOptions();\r\n Goal.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Goal.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Goal.ShowCheckbox = false\r\n Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Goal.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Goal)\r\n break;\r\n case DataType.Challenge:\r\n let Challenge = new DropdownOptions();\r\n Challenge.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Challenge.ShowCheckbox = false\r\n Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Challenge.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Challenge)\r\n break;\r\n case DataType.InnovationLab:\r\n let InnovationLab = new DropdownOptions();\r\n InnovationLab.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n InnovationLab.ShowCheckbox = false\r\n InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n InnovationLab.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, InnovationLab)\r\n break;\r\n case DataType.Country:\r\n let Country = new DropdownOptions();\r\n Country.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Country.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Country.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Country.ShowCheckbox = false\r\n Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Country.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Country)\r\n break;\r\n\r\n //FileUpload\r\n case DataType.File:\r\n let File = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n File.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, File)\r\n break;\r\n case DataType.MultiFile:\r\n let MultiFile = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount\r\n MultiFile.IsMultipleFile = true;\r\n MultiFile.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, MultiFile)\r\n break;\r\n //ImageUpload\r\n case DataType.Image:\r\n let Image = new ImageUploadOptions();\r\n Image.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Image.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n Image.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, Image)\r\n break;\r\n case DataType.CoverPhoto:\r\n let CoverPhoto = new ImageUploadOptions();\r\n CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n CoverPhoto.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, CoverPhoto)\r\n break;\r\n //Mobile\r\n case DataType.Mobile:\r\n let Mobile = new PhoneOptions();\r\n Mobile.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Mobile.AllowSearch = true;\r\n Mobile.PhoneValidation = true;\r\n Mobile.SelectFirstCountry = true;\r\n Mobile.EnablePlaceholder = true\r\n Mobile.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<PhoneComponent>(this.Item, PhoneComponent, this.group, Mobile)\r\n break;\r\n //MultilineText\r\n case DataType.MultilineText:\r\n let MultilineText = new TextAreaOptions();\r\n MultilineText.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength\r\n MultilineText.Rows = this.RepeaterField.ControlOptions.rows;\r\n MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n MultilineText.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<TextAreaComponent>(this.Item, TextAreaComponent, this.group, MultilineText)\r\n break;\r\n //HTML\r\n case DataType.HTML:\r\n let HTML = new HtmlEditorOptions();\r\n HTML.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n HTML.MinLength = this.RepeaterField.ControlOptions.minLength\r\n HTML.Height = this.RepeaterField.ControlOptions.rows;\r\n HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n HTML.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<HtmlEditorComponent>(this.Item, HtmlEditorComponent, this.group, HTML)\r\n break;\r\n //Boolean\r\n case DataType.Boolean:\r\n let Boolean = new ToggleSlideOptions();\r\n Boolean.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Boolean.Value = this.value;\r\n Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n this.renderComponentService.renderDynamicComponent<ToggleslideComponent>(this.Item, ToggleslideComponent, this.group, Boolean)\r\n break;\r\n //Location\r\n case DataType.Location:\r\n let Location = new MapAutoCompleteOptions();\r\n Location.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Location.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Location.Value = this.value;\r\n Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n this.renderComponentService.renderDynamicComponent<MapAutoCompleteComponent>(this.Item, MapAutoCompleteComponent, this.group, Location)\r\n break;\r\n default:\r\n break;\r\n }\r\n }, 0);\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.itemNumber)\r\n if (changes.itemNumber.previousValue) {\r\n let name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.previousValue.toString() + \".\" + this.controlNumber.toString()\r\n let value = this.group.controls[name].value\r\n this.Item.clear()\r\n this.group.removeControl(name)\r\n switch (this.RepeaterField.ControlType) {\r\n ///TextBox\r\n case DataType.Text:\r\n let Text = new TextBoxOptions();\r\n Text.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Text.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Text.Type = InputType.Text;\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Text.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Text.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Text.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Text)\r\n break;\r\n\r\n case DataType.Name:\r\n let Name = new TextBoxOptions();\r\n Name.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Name.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Name.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Name.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Name.Type = InputType.Text;\r\n Name.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Name)\r\n break;\r\n\r\n case DataType.Email:\r\n let Email = new TextBoxOptions();\r\n Email.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Email.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Email.Type = InputType.Email;\r\n Email.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Email)\r\n break;\r\n\r\n case DataType.Number:\r\n let Number = new TextBoxOptions();\r\n Number.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Number.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Number.Type = InputType.Number;\r\n let rangeNumber = new RangeNumber()\r\n rangeNumber.To = this.RepeaterField.ControlOptions.maxLength\r\n rangeNumber.From = this.RepeaterField.ControlOptions.minLength\r\n Number.NumberRange = rangeNumber;\r\n Number.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Number)\r\n break;\r\n\r\n ///DateTime\r\n case DataType.Date:\r\n let Date = new DatePickerOptions();\r\n Date.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Date.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Date.PickerType = PickerType.Calendar;\r\n Date.SelectMode = SelectMode.Single\r\n Date.StartView = StartView.Month\r\n Date.Value = value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Date)\r\n break;\r\n\r\n case DataType.DateTime:\r\n let DateTime = new DatePickerOptions();\r\n DateTime.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n DateTime.PickerType = PickerType.Both;\r\n DateTime.SelectMode = SelectMode.Single\r\n DateTime.StartView = StartView.Month\r\n DateTime.Value = value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, DateTime)\r\n break;\r\n\r\n case DataType.Time:\r\n let Time = new DatePickerOptions();\r\n Time.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Time.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Time.PickerType = PickerType.Timer;\r\n Time.SelectMode = SelectMode.Single\r\n Time.StartView = StartView.Month\r\n Time.Value = value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Time)\r\n break;\r\n\r\n //Dropdown\r\n case DataType.SingleSelect:\r\n let SingleSelect = new DropdownOptions();\r\n SingleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n SingleSelect.SingleSelection = true\r\n SingleSelect.ShowCheckbox = false\r\n SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n SingleSelect.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, SingleSelect)\r\n break;\r\n case DataType.MulipleSelect:\r\n let MulipleSelect = new DropdownOptions();\r\n MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n MulipleSelect.SingleSelection = false\r\n MulipleSelect.ShowCheckbox = false\r\n MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n MulipleSelect.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, MulipleSelect)\r\n break;\r\n case DataType.Goal:\r\n let Goal = new DropdownOptions();\r\n Goal.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Goal.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Goal.ShowCheckbox = false\r\n Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Goal.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Goal)\r\n break;\r\n case DataType.Challenge:\r\n let Challenge = new DropdownOptions();\r\n Challenge.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Challenge.ShowCheckbox = false\r\n Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Challenge.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Challenge)\r\n break;\r\n case DataType.InnovationLab:\r\n let InnovationLab = new DropdownOptions();\r\n InnovationLab.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n InnovationLab.ShowCheckbox = false\r\n InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n InnovationLab.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, InnovationLab)\r\n break;\r\n case DataType.Country:\r\n let Country = new DropdownOptions();\r\n Country.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Country.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Country.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Country.ShowCheckbox = false\r\n Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Country.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Country)\r\n break;\r\n\r\n //FileUpload\r\n case DataType.File:\r\n let File = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n File.Value = value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, File)\r\n break;\r\n case DataType.MultiFile:\r\n let MultiFile = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount\r\n MultiFile.IsMultipleFile = true;\r\n MultiFile.Value = value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, MultiFile)\r\n break;\r\n //ImageUpload\r\n case DataType.Image:\r\n let Image = new ImageUploadOptions();\r\n Image.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Image.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n Image.Value = value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, Image)\r\n break;\r\n case DataType.CoverPhoto:\r\n let CoverPhoto = new ImageUploadOptions();\r\n CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n CoverPhoto.Value = value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, CoverPhoto)\r\n break;\r\n //Mobile\r\n case DataType.Mobile:\r\n let Mobile = new PhoneOptions();\r\n Mobile.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Mobile.AllowSearch = true;\r\n Mobile.PhoneValidation = true;\r\n Mobile.SelectFirstCountry = true;\r\n Mobile.EnablePlaceholder = true\r\n Mobile.Value = value;\r\n this.renderComponentService.renderDynamicComponent<PhoneComponent>(this.Item, PhoneComponent, this.group, Mobile)\r\n break;\r\n //MultilineText\r\n case DataType.MultilineText:\r\n let MultilineText = new TextAreaOptions();\r\n MultilineText.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength\r\n MultilineText.Rows = this.RepeaterField.ControlOptions.rows;\r\n MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n MultilineText.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextAreaComponent>(this.Item, TextAreaComponent, this.group, MultilineText)\r\n break;\r\n //HTML\r\n case DataType.HTML:\r\n let HTML = new HtmlEditorOptions();\r\n HTML.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n HTML.MinLength = this.RepeaterField.ControlOptions.minLength\r\n HTML.Height = this.RepeaterField.ControlOptions.rows;\r\n HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n HTML.Value = value;\r\n this.renderComponentService.renderDynamicComponent<HtmlEditorComponent>(this.Item, HtmlEditorComponent, this.group, HTML)\r\n break;\r\n //Boolean\r\n case DataType.Boolean:\r\n let Boolean = new ToggleSlideOptions();\r\n Boolean.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Boolean.Value = value;\r\n this.renderComponentService.renderDynamicComponent<ToggleslideComponent>(this.Item, ToggleslideComponent, this.group, Boolean)\r\n break;\r\n //Location\r\n case DataType.Location:\r\n let Location = new MapAutoCompleteOptions();\r\n Location.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Location.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Location.Value = value;\r\n this.renderComponentService.renderDynamicComponent<MapAutoCompleteComponent>(this.Item, MapAutoCompleteComponent, this.group, Location)\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n}\r\n","<ng-container #Item></ng-container>\r\n","import { Component, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'repeater-item-field',\r\n templateUrl: './repeater-item-field.component.html'\r\n})\r\nexport class RepeaterItemFieldComponent implements OnInit {\r\n @Input() templates: Array<TemplateRef<any>>;\r\n @Input() filedIndex: number;\r\n @Input() itemIndex: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<ng-container *ngFor=\"let template of templates ; index as i\">\r\n <ng-container *ngIf=\"i==filedIndex\" [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext] ={itemIndex:itemIndex,controlIndex:i}></ng-container>\r\n </ng-container>\r\n","import { Component, Input, OnInit, QueryList, TemplateRef, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { RepeaterOptions } from '../../../Shared/Models/RepeaterOptions';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n\r\n@Component({\r\n selector: 'BBSF-repeater-table',\r\n templateUrl: './repeater-table.component.html',\r\n})\r\nexport class RepeaterTableComponent implements OnInit { \r\n @Input() group: FormGroup;\r\n @Input() options: RepeaterOptions;\r\n items: number[] = []\r\n repeaterGroup: FormGroup;\r\n originalItems:any []=[];\r\n\r\n constructor(public utilityService:UtilityService) { }\r\n\r\n ngOnInit(): void {\r\n this.repeaterGroup = new FormGroup({});\r\n this.group.addControl(this.options.Name, this.repeaterGroup);\r\n if(this.options.RepeaterValue.length>0)\r\n {\r\n this.originalItems= this.options.RepeaterValue;\r\n for (let index = 0; index < this.options.RepeaterValue.length; index++) {\r\n this.items.push(index);\r\n }\r\n }\r\n \r\n else\r\n for (let index = 0; index < this.options.MinRequiredItems; index++) {\r\n this.items.push(index);\r\n }\r\n this.repeaterGroup.valueChanges.subscribe((res) => {\r\n let result = [];\r\n let rowNumber = [];\r\n let addItems = [];\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n const keySplitArr = key.split('.')\r\n let item = {\r\n [keySplitArr[1]]: { [keySplitArr[0]]: this.group.controls[this.options.Name].value[key] }\r\n }\r\n addItems.push(item)\r\n if (!rowNumber.includes(keySplitArr[1]))\r\n rowNumber.push(keySplitArr[1])\r\n }\r\n }\r\n for (let index = 0; index < rowNumber.length; index++) {\r\n const row = rowNumber[index];\r\n let addObject = {}\r\n let filteredElements = addItems.filter(item => item[row])\r\n for (let index = 0; index < filteredElements.length; index++) {\r\n const filteredElement = filteredElements[index];\r\n for (const key in filteredElement) {\r\n if (Object.prototype.hasOwnProperty.call(filteredElement, key)) {\r\n const element = filteredElement[key];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n const value = element[key];\r\n addObject[key] = value\r\n }\r\n }\r\n }\r\n }\r\n }\r\n result.push(addObject)\r\n }\r\n this.options.RepeaterValue = result;\r\n })\r\n\r\n }\r\n\r\n deleteItem(Index) {\r\n if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)\r\n return;\r\n let deletedControls: any[] = []\r\n let controlNames = this.options.RepeaterStructure.map(e => e.ControlOptions.Name)\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n for (let index = 0; index < controlNames.length; index++) {\r\n const element = controlNames[index];\r\n const keySplitArr = key.split('.')\r\n if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {\r\n const element = this.repeaterGroup.controls[key];\r\n deletedControls.push({ [key]: element })\r\n }\r\n }\r\n }\r\n }\r\n for (let index = 0; index < deletedControls.length; index++) {\r\n const element = deletedControls[index];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n this.repeaterGroup.removeControl(key)\r\n }\r\n }\r\n }\r\n\r\n this.items = this.items.filter((res) => res != this.items[Index])\r\n }\r\n\r\n addItem() {\r\n if(this.items.length==0)\r\n this.items.push(this.items.length);\r\n else\r\n this.items.push(this.items[this.items.length-1]+1);\r\n}\r\n\r\n\r\n}\r\n","<div class=\"form-group bbsf-control bbsf-repeater\">\r\n <!--table-->\r\n <div class=\"table-responsive\">\r\n <table class=\"bbsf-repeater-table table {{options.RepeaterTableExtraClasses}}\">\r\n <thead class=\"table-head\">\r\n <tr class=\"{{options.RepeaterTableRowExtraClasses}}\">\r\n <th *ngFor=\"let item of options.RepeaterStructure\" [hidden]=\"item.IsHiddenInput\">{{item.HeaderTitle}}</th>\r\n <th *ngIf=\"!options.DisableDeleteButton\" class=\"text-center\">{{utilityService.getResourceValue(options.ActionLabelKey)}}</th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"table-body\">\r\n <tr *ngFor=\"let item of items ; index as i\">\r\n <td *ngFor=\"let RepeaterField of options.RepeaterStructure ; index as r\" [hidden]=\"RepeaterField.IsHiddenInput\">\r\n <repeater-field-builder [RepeaterField]=\"RepeaterField\" [itemNumber]=\"i\"\r\n [itemsValue]=\"originalItems\" [controlNumber]=\"r\" [group]=\"repeaterGroup\">\r\n </repeater-field-builder>\r\n </td>\r\n <td *ngIf=\"!options.DisableDeleteButton\" class=\"td-delete\">\r\n <button class=\"{{options.DeleteButtonExtraClasses}} btn btn-icon btn-sm btn-danger\" type=\"button\" (click)=\"deleteItem(i)\"\r\n [disabled]=\"(items.length ==options.MinRequiredItems&&options.IsRequired)\">\r\n <span [innerHTML]=\"options.DeleteButtonText\"></span>\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <!--add button-->\r\n <div class=\"repeater-add-btn\" *ngIf=\"!options.DisableAddButton\">\r\n <button class=\"{{options.AddButtonExtraClasses}} btn btn-sm btn-brand\" type=\"button\" (click)=\"addItem()\">\r\n <span [innerHTML]=\"options.AddButtonText\"></span>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n\r\n","import { Component, Input, OnInit, QueryList, TemplateRef, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { RepeaterOptions } from '../../../Shared/Models/RepeaterOptions';\r\nimport { NgTemplateNameDirective } from '../../../Shared/Directives/template-name.directive';\r\n\r\n\r\n@Component({\r\n selector: 'BBSF-repeater',\r\n templateUrl: './repeater.component.html'\r\n})\r\nexport class RepeaterComponent implements OnInit {\r\n @Input() group: FormGroup;\r\n @Input() options: RepeaterOptions;\r\n @Input() initialTemplate: TemplateRef<any>;\r\n @ViewChildren(NgTemplateNameDirective) private _templates: QueryList<NgTemplateNameDirective>;\r\n @ViewChild('delete', { static: false }) delete: TemplateRef<any>;\r\n templateRefs: Array<TemplateRef<any>> = [];\r\n items: number[] = []\r\n originalItems: any[] = [];\r\n repeaterGroup: FormGroup;\r\n currentTemplate: TemplateRef<any>;\r\n repeaterContext = { index: 0, delete: null, elements: null };\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.currentTemplate = this.initialTemplate;\r\n this.repeaterGroup = new FormGroup({});\r\n this.group.addControl(this.options.Name, this.repeaterGroup);\r\n if (this.options.RepeaterValue.length > 0) {\r\n this.originalItems = this.options.RepeaterValue;\r\n for (let index = 0; index < this.options.RepeaterValue.length; index++) {\r\n this.items.push(index + 1);\r\n }\r\n }\r\n else\r\n for (let index = 0; index < this.options.MinRequiredItems; index++) {\r\n this.items.push(index);\r\n }\r\n\r\n this.repeaterGroup.valueChanges.subscribe((res) => {\r\n let result = [];\r\n let rowNumber = [];\r\n let addItems = [];\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n const keySplitArr = key.split('.')\r\n let item = {\r\n [keySplitArr[1]]: { [keySplitArr[0]]: this.group.controls[this.options.Name].value[key] }\r\n }\r\n addItems.push(item)\r\n if (!rowNumber.includes(keySplitArr[1]))\r\n rowNumber.push(keySplitArr[1])\r\n }\r\n }\r\n for (let index = 0; index < rowNumber.length; index++) {\r\n const row = rowNumber[index];\r\n let addObject = {}\r\n let filteredElements = addItems.filter(item => item[row])\r\n for (let index = 0; index < filteredElements.length; index++) {\r\n const filteredElement = filteredElements[index];\r\n for (const key in filteredElement) {\r\n if (Object.prototype.hasOwnProperty.call(filteredElement, key)) {\r\n const element = filteredElement[key];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n const value = element[key];\r\n addObject[key] = value\r\n }\r\n }\r\n }\r\n }\r\n }\r\n result.push(addObject)\r\n }\r\n this.options.RepeaterValue = result;\r\n })\r\n\r\n }\r\n\r\n deleteItem(Index) {\r\n if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)\r\n return;\r\n let deletedControls: any[] = []\r\n let controlNames = this.options.RepeaterStructure.map(e => e.ControlOptions.Name)\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n for (let index = 0; index < controlNames.length; index++) {\r\n const element = controlNames[index];\r\n const keySplitArr = key.split('.')\r\n if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {\r\n const element = this.repeaterGroup.controls[key];\r\n deletedControls.push({ [key]: element })\r\n }\r\n }\r\n }\r\n }\r\n for (let index = 0; index < deletedControls.length; index++) {\r\n const element = deletedControls[index];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n this.repeaterGroup.removeControl(key)\r\n }\r\n }\r\n }\r\n this.items = this.items.filter((res) => res != this.items[Index])\r\n }\r\n\r\n\r\n addItem() {\r\n this.items.push(this.items.length);\r\n }\r\n\r\n ngAfterViewInit() {\r\n let templateRefs = (this._templates[\"_results\"] as any[]).map((item) => item[\"template\"])\r\n this.templateRefs = templateRefs\r\n this.repeaterContext.elements = this.templateRefs\r\n this.repeaterContext.delete = this.delete\r\n\r\n }\r\n\r\n setCurrentIndex(i: number) {\r\n this.repeaterContext.index = i;\r\n }\r\n\r\n}\r\n","<ng-container *ngFor='let item of items ; index as i'>\r\n {{setCurrentIndex(i)}}\r\n <ng-container *ngTemplateOutlet=\"currentTemplate; context: repeaterContext\">\r\n </ng-container>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngTemplateOutlet=\"add\" >\r\n</ng-container>\r\n\r\n<ng-template *ngFor=\"let RepeaterField of options.RepeaterStructure ; index as i\" name=\"R{{i}}\" let-Index=\"itemIndex\"\r\n let-control=\"controlIndex\">\r\n <repeater-field-builder *ngIf=\"RepeaterField\" [RepeaterField]=\"RepeaterField\" [itemNumber]=\"Index\"\r\n [itemsValue]=\"originalItems\" [controlNumber]=\"control\" [group]=\"repeaterGroup\">\r\n </repeater-field-builder>\r\n</ng-template>\r\n\r\n<ng-template #delete let-item=\"itemIndex\">\r\n <button *ngIf=\"!options.IsReadonly\" class=\"{{options.DeleteButtonExtraClasses}}\" type=\"button\" (click)=\"deleteItem(item)\"\r\n [disabled]=\"items.length ==options.MinRequiredItems&&options.IsRequired\">\r\n <span [innerHTML]=\"options.DeleteButtonText\"></span>\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #add >\r\n <button *ngIf=\"!options.IsReadonly\" class=\"{{options.AddButtonExtraClasses}}\" type=\"button\" (click)=\"addItem()\">\r\n <span [innerHTML]=\"options.AddButtonText\"></span>\r\n </button>\r\n</ng-template>\r\n\r\n","import { AngularCropperjsModule } from 'angular-cropperjs';\r\nimport { AutocompleteLibModule } from 'angular-ng-autocomplete';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport { InlineSVGModule } from 'ng-inline-svg-2';\r\nimport { OWL_DATE_TIME_LOCALE, OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';\r\nimport { FileUploadModule } from 'ng2-file-upload';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\r\nimport { NgxDropzoneModule } from 'ngx-dropzone';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { NgxIntlTelInputModule } from 'ngx-intl-tel-input';\r\nimport { IConfig, NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\r\nimport { NgxSummernoteModule } from 'ngx-summernote';\r\nimport { ToastrModule } from 'ngx-toastr';\r\n\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormGroupDirective, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FullCalendarModule } from '@fullcalendar/angular';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { NgbActiveModal, NgbModal, NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { SweetAlert2Module } from '@sweetalert2/ngx-sweetalert2';\r\n\r\nimport { BTagsInputComponent } from '../Shared/Components/ng-tag-input';\r\nimport { NgTemplateNameDirective } from '../Shared/Directives/template-name.directive';\r\nimport { BBSFDateTimePipe } from '../Shared/Pipes/bbsf-date-time.pipe';\r\nimport { BBSFDatePipe } from '../Shared/Pipes/bbsf-date.pipe';\r\nimport { ControlUtility } from '../Shared/services/ControlUtility';\r\nimport { OnPagingFiltersChangeService } from '../Shared/services/OnPagingFiltersChange.service';\r\nimport { RenderComponentService } from '../Shared/services/render-component-service.service';\r\nimport { ErrorMassageValidation } from '../Shared/services/validationErrorMassage.service';\r\nimport { AutocompleteTextBoxComponent } from './AutocompleteTextBox/AutocompleteTextBox.component';\r\nimport { CalendarComponent } from './Calendar/Calendar.component';\r\nimport { CheckBoxComponent } from './CheckBox/CheckBox.component';\r\nimport { ConfirmationModalComponent } from './ConfirmationModal/ConfirmationModal.component';\r\nimport { DateInputComponent } from './DateTimePicker/DateTimePicker.component';\r\nimport { DropdownListComponent } from './DropdownList/DropdownList.component';\r\nimport { FileUploadComponent } from './FileUplaod/FileUplaod.component';\r\nimport { FormComponent } from './Form/Form.component';\r\nimport { HtmlEditorComponent } from './HtmlEditor/HtmlEditor.component';\r\nimport { ImageUploaderComponent } from './ImageUpload/ImageUpload.component';\r\nimport { MapAutoCompleteComponent } from './MapAutoComplete/MapAutoComplete.component';\r\nimport {\r\n MultiLingualHtmlEditorComponent\r\n} from './MultiLingualHtmlEditor/MultiLingualHtmlEditor.component';\r\nimport {\r\n MultiLingualTextAreaComponent\r\n} from './MultiLingualTextArea/MultiLingualTextArea.component';\r\nimport { MultiLingualTextBoxComponent } from './MultiLingualTextBox/MultiLingualTextBox.component';\r\nimport {\r\n PageHeaderComponentComponent\r\n} from './page-header-component/page-header-component.component';\r\nimport { JwPaginationComponent } from './Paging/JwPagination.component';\r\nimport { PagingComponent } from './Paging/Paging.component';\r\nimport { PhoneComponent } from './Phone/Phone.component';\r\nimport {\r\n ProfileImageUploaderComponent\r\n} from './ProfileImageUploader/ProfileImageUploader.component';\r\nimport { RadioButtonComponent } from './RadioButton/RadioButton.component';\r\nimport { RecaptchaComponent } from './Recaptcha/Recaptcha.component';\r\nimport {\r\n RepeaterFieldBuilderComponent\r\n} from './Repeater/repeater-field-builder/repeater-field-builder.component';\r\nimport {\r\n RepeaterItemFieldComponent\r\n} from './Repeater/repeater-item-field/repeater-item-field.component';\r\nimport { RepeaterTableComponent } from './Repeater/repeater-table/repeater-table.component';\r\nimport { RepeaterComponent } from './Repeater/repeater/repeater.component';\r\nimport { TagsInputComponent } from './TagsInput/TagsInput.component';\r\nimport { TextAreaComponent } from './TextArea/TextArea.component';\r\nimport { TextboxComponent } from './TextBox/TextBox.component';\r\nimport { ToggleslideComponent } from './Toggleslide/toggleslide.component';\r\nimport { BBSFUtilitiesModule } from '@bnsights/bbsf-utilities';\r\nimport { ScriptLoaderModule } from 'ngx-script-loader';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\n\r\n\r\nexport let options: Partial<IConfig> | (() => Partial<IConfig>);\r\n\r\n@NgModule({\r\n declarations: [\r\n DateInputComponent,\r\n FileUploadComponent,\r\n MultiLingualTextBoxComponent,\r\n TextboxComponent,\r\n TextAreaComponent,\r\n MultiLingualTextAreaComponent,\r\n CheckBoxComponent,\r\n DropdownListComponent,\r\n PhoneComponent,\r\n ToggleslideComponent,\r\n HtmlEditorComponent,\r\n MultiLingualHtmlEditorComponent,\r\n ImageUploaderComponent,\r\n ProfileImageUploaderComponent,\r\n CalendarComponent,\r\n MapAutoCompleteComponent,\r\n AutocompleteTextBoxComponent,\r\n TagsInputComponent,\r\n PagingComponent,\r\n JwPaginationComponent,\r\n RadioButtonComponent,\r\n FormComponent,\r\n ConfirmationModalComponent,\r\n RepeaterComponent,\r\n RepeaterFieldBuilderComponent,\r\n NgTemplateNameDirective,\r\n RepeaterItemFieldComponent,\r\n RepeaterTableComponent,\r\n BBSFDateTimePipe,\r\n BBSFDatePipe,\r\n BTagsInputComponent,\r\n RecaptchaComponent,\r\n PageHeaderComponentComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n InfiniteScrollModule,\r\n NgSelectModule,\r\n FullCalendarModule,\r\n AngularCropperjsModule,\r\n NgbModule,\r\n NgxDropzoneModule,\r\n FileUploadModule,\r\n NgxMaskDirective,\r\n NgxMaskPipe,\r\n NgxSummernoteModule,\r\n MatSlideToggleModule,\r\n NgxIntlTelInputModule,\r\n OwlDateTimeModule,\r\n OwlNativeDateTimeModule,\r\n CommonModule,\r\n BlockUIModule.forRoot(),\r\n ReactiveFormsModule,\r\n RouterModule,\r\n ToastrModule.forRoot(),\r\n HttpClientModule,\r\n OverlayModule,\r\n StoreDevtoolsModule.instrument({ connectInZone: true }),\r\n FormsModule,\r\n BsDatepickerModule.forRoot(),\r\n TypeaheadModule.forRoot(),\r\n AngularEditorModule,\r\n AutocompleteLibModule,\r\n BBSFUtilitiesModule,\r\n InlineSVGModule.forRoot(),\r\n SweetAlert2Module,\r\n ScriptLoaderModule,\r\n GoogleMapsModule\r\n ],\r\n providers: [\r\n ErrorMassageValidation,\r\n ControlUtility,\r\n OnPagingFiltersChangeService,\r\n TranslateService,\r\n FormGroupDirective,\r\n NgbModal,\r\n NgbActiveModal,\r\n DatePipe,\r\n BBSFDateTimePipe,\r\n BBSFDatePipe,\r\n RenderComponentService,\r\n { provide: OWL_DATE_TIME_LOCALE, useValue: ControlUtility.getLocal() },\r\n provideNgxMask()\r\n ],\r\n schemas: [\r\n CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA\r\n ],\r\n exports: [\r\n DateInputComponent,\r\n FileUploadComponent,\r\n MultiLingualTextBoxComponent,\r\n TextboxComponent,\r\n TextAreaComponent,\r\n MultiLingualTextAreaComponent,\r\n CheckBoxComponent,\r\n DropdownListComponent,\r\n PhoneComponent,\r\n ToggleslideComponent,\r\n HtmlEditorComponent,\r\n MultiLingualHtmlEditorComponent,\r\n ImageUploaderComponent,\r\n ProfileImageUploaderComponent,\r\n CalendarComponent,\r\n MapAutoCompleteComponent,\r\n AutocompleteTextBoxComponent,\r\n TagsInputComponent,\r\n PagingComponent,\r\n JwPaginationComponent,\r\n RadioButtonComponent,\r\n FormComponent,\r\n PagingComponent,\r\n ConfirmationModalComponent,\r\n RepeaterComponent,\r\n RepeaterFieldBuilderComponent,\r\n NgTemplateNameDirective,\r\n RepeaterItemFieldComponent,\r\n RepeaterTableComponent,\r\n BBSFDateTimePipe,\r\n BBSFDatePipe,\r\n RecaptchaComponent,\r\n PageHeaderComponentComponent\r\n ]\r\n})\r\nexport class BBSFControlsModule {\r\n\r\n}\r\n","import { AbstractControl } from '@angular/forms';\r\n\r\nexport class CustomValidation\r\n{\r\n massage:string;\r\n functionBody:any;\r\n}\r\nexport class CustomValidator{\r\n // Number only validation\r\n static numeric(control: AbstractControl) {\r\n let val = control.value;\r\n \r\n if (val === null || val === '') return null;\r\n \r\n if (!val.toString().match(/^[0-9]+(\\.?[0-9]+)?$/)) return { 'invalidNumber': true };\r\n \r\n return null;\r\n }\r\n }","import { Injector, Injectable } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport {\r\n UtilityService,\r\n AuthService,\r\n ConfigurationService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AbstractControl, FormGroup } from '@angular/forms';\r\nimport { ControlUtility } from '../services/ControlUtility';\r\nimport { FilterItem } from '../Models/FilterItem';\r\nimport { CustomValidation } from '../Models/CustomValidation';\r\nimport { EnglishArabicDTO } from '../Models/EnglishArabicDTO';\r\nimport { saveAs } from 'file-saver';\r\nimport { EnvironmentService } from '@bnsights/bbsf-utilities';\r\nimport { FormOptions } from '../Models/FormOptions';\r\n\r\n@Injectable()\r\nexport abstract class AppBaseComponent {\r\n public utilityService: UtilityService;\r\n public modalService: NgbModal;\r\n private controlUtility: ControlUtility;\r\n private titleService: Title;\r\n private auhService: AuthService;\r\n private configurationService: ConfigurationService;\r\n public environmentService: EnvironmentService;\r\n public isEN: boolean;\r\n //Labels\r\n public exportLabel: string;\r\n public filtersLabel: string;\r\n public addLabel: string;\r\n public userName: string;\r\n public pageTitle: string = '';\r\n public PageCount: number = 12;\r\n constructor(injector: Injector) {\r\n this.utilityService = injector.get(UtilityService);\r\n this.controlUtility = injector.get(ControlUtility);\r\n this.configurationService = injector.get(ConfigurationService);\r\n this.environmentService = injector.get(EnvironmentService);\r\n this.modalService = injector.get(NgbModal);\r\n this.titleService = injector.get(Title);\r\n this.auhService = injector.get(AuthService);\r\n this.exportLabel = this.utilityService.getResourceValue('Export');\r\n this.filtersLabel = this.utilityService.getResourceValue('Filters');\r\n this.addLabel = this.utilityService.getResourceValue('Add');\r\n this.userName = this.auhService.name();\r\n this.isEN = this.utilityService.isCurrentLanguageEnglish();\r\n }\r\n updatePageTitle(title: string | undefined) {\r\n this.titleService.setTitle(this.calculatePageTitle(title));\r\n }\r\n\r\n l(key: string): string {\r\n return this.utilityService.getResourceValue(key);\r\n }\r\n getConfigurationValue(key: string) {\r\n return this.configurationService.getConfigurationValue(key);\r\n }\r\n getLanguageModeValue() {\r\n return this.configurationService.getConfigurationValue('LanguageMode');\r\n }\r\n stopBlockUI() {\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n startBlockUI() {\r\n this.utilityService.startBlockUI();\r\n }\r\n\r\n openModal(modal: any, size?: string) {\r\n if (size)\r\n this.modalService.open(modal, {\r\n size: size,\r\n backdrop: 'static',\r\n keyboard: false,\r\n });\r\n else this.modalService.open(modal, { backdrop: 'static', keyboard: false });\r\n }\r\n\r\n download(fileDTO: any, fileName: string): void {\r\n /*let blob = new Blob([file]);*/\r\n let file = new Blob([fileDTO], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n });\r\n saveAs(file, fileName);\r\n }\r\n\r\n downloadPDF(fileDTO: any, fileName: string): void {\r\n let file = new Blob([fileDTO], { type: \"application/pdf\" });\r\n saveAs(file, fileName);\r\n }\r\n downloadWord(fileDTO: any, fileName: string): void {\r\n let file = new Blob([fileDTO], { type: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" });\r\n saveAs(file, fileName);\r\n }\r\n\r\n\r\n private base64toBlob(base64Data, contentType) {\r\n contentType = contentType || '';\r\n var sliceSize = 1024;\r\n var byteCharacters = atob(base64Data);\r\n var bytesLength = byteCharacters.length;\r\n var slicesCount = Math.ceil(bytesLength / sliceSize);\r\n var byteArrays = new Array(slicesCount);\r\n\r\n for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\r\n var begin = sliceIndex * sliceSize;\r\n var end = Math.min(begin + sliceSize, bytesLength);\r\n\r\n var bytes = new Array(end - begin);\r\n for (var offset = begin, i = 0; offset < end; ++i, ++offset) {\r\n bytes[i] = byteCharacters[offset].charCodeAt(0);\r\n }\r\n byteArrays[sliceIndex] = new Uint8Array(bytes);\r\n }\r\n return new Blob(byteArrays, { type: contentType });\r\n }\r\n\r\n private calculatePageTitle(title: string | undefined): string | undefined {\r\n return title\r\n ? title.substring(0, 100) + ` | ${this.l('ApplicationName')}`\r\n : `${this.l('ApplicationName')}`;\r\n }\r\n\r\n getPagingFiltersValues(form: FormGroup, filters: FilterItem[]): any {\r\n let model = new Object();\r\n for (var i = 0; i < filters.length; i++) {\r\n let filterItem = filters[i];\r\n if (form.controls[filterItem.FormControlName].value == undefined)\r\n continue;\r\n model[filterItem.ActionParameterName] =\r\n form.controls[filterItem.FormControlName].value == undefined\r\n ? ''\r\n : form.controls[filterItem.FormControlName].value;\r\n // params = params.append(filterItem.ActionParameterName, form.controls[filterItem.FormControlName].value == undefined ? '' : form.controls[filterItem.FormControlName].value);\r\n }\r\n return model;\r\n }\r\n\r\n removeControl(controlName: string, form: FormGroup) {\r\n form.removeControl(controlName);\r\n }\r\n\r\n copyToClipboard(val: string) {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n this.utilityService.notifySuccessMessage(this.l('CopiedSuccessfully'));\r\n }\r\n\r\n addRequiredRule(control: AbstractControl, controlOptions: any) {\r\n this.controlUtility.addRequiredToControl(control, controlOptions);\r\n }\r\n\r\n removeRequiredRule(control: AbstractControl, controlOptions: any) {\r\n this.controlUtility.removeRequiredFromControl(control, controlOptions);\r\n }\r\n\r\n validateDates(\r\n form: FormGroup,\r\n fromDateControl: string,\r\n toDateControl: string,\r\n validationMessageKey: string\r\n ): CustomValidation {\r\n var validator = new CustomValidation();\r\n validator.functionBody = (control) => {\r\n let fromDate = form.controls[fromDateControl].value;\r\n let toDate = form.controls[toDateControl].value;\r\n\r\n if (fromDate && toDate && toDate <= fromDate)\r\n return { customerError: true };\r\n\r\n return null;\r\n };\r\n validator.massage = this.l(validationMessageKey);\r\n return validator;\r\n }\r\n\r\n onSuccessAddHandler = (success: any) => {\r\n this.utilityService.notifySuccessMessage(\r\n this.l('RecordAdded'),\r\n null,\r\n null,\r\n false\r\n );\r\n };\r\n\r\n onSuccessEditHandler = (success: any) => {\r\n this.utilityService.notifySuccessMessage(\r\n this.l('RecordUpdated'),\r\n null,\r\n null,\r\n false\r\n );\r\n };\r\n\r\n onSuccessDeleteHandler = (success: any) => {\r\n this.utilityService.notifySuccessMessage(\r\n this.l('RecordDeleted'),\r\n null,\r\n null,\r\n false\r\n );\r\n };\r\n\r\n recalculatePageTitle() {\r\n this.titleService.setTitle(this.calculatePageTitle(''));\r\n }\r\n\r\n isEnglish() {\r\n return this.utilityService.isCurrentLanguageEnglish();\r\n }\r\n\r\n calculateInitials(name: string): string {\r\n let language = localStorage.getItem('language');\r\n let currentUser = this.auhService.user.profile;\r\n console.log(currentUser);\r\n let userName =\r\n language == 'en' ? currentUser.given_nameEn : currentUser.given_nameAr;\r\n if (currentUser) {\r\n let fullName = userName.split(' ');\r\n let initials: string;\r\n if (fullName.length > 1) {\r\n if (this.isEN)\r\n initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);\r\n else\r\n initials =\r\n fullName.shift().charAt(0) + ' ' + fullName.pop().charAt(0);\r\n } else {\r\n initials = fullName.pop().charAt(0);\r\n }\r\n return initials.toUpperCase();\r\n }\r\n return '';\r\n }\r\n\r\n getCurrentUserInitials(): string {\r\n return this.calculateInitials(this.auhService.name());\r\n }\r\n\r\n getCurrentFailOver(val: EnglishArabicDTO): string {\r\n if (this.isEnglish()) {\r\n if (val.English) return val.English;\r\n else return val.Arabic;\r\n } else {\r\n if (val.Arabic) return val.Arabic;\r\n else return val.English;\r\n }\r\n }\r\n\r\n\r\n //#region validation actions\r\n\r\n addRequiredValidation(customControlOption: any[], form: FormGroup, formOptions: FormOptions): void {\r\n customControlOption.forEach(control => {\r\n if (form.get(control.Name))\r\n this.addRequiredRule(form.get(control.Name), formOptions);\r\n else\r\n control.IsRequired = true;\r\n });\r\n }\r\n\r\n removeRequiredValidation(customControlOption: any[], form: FormGroup, formOptions: FormOptions): void {\r\n customControlOption.forEach(control => {\r\n if (form.get(control.Name))\r\n this.removeRequiredRule(form.get(control.Name), formOptions);\r\n else\r\n control.IsRequired = false;\r\n });\r\n }\r\n\r\n resetFormControlsValue(customControlsOptions: any[], form: FormGroup): void {\r\n customControlsOptions.forEach(option => {\r\n let formControl = form.get(option.Name);\r\n if (formControl)\r\n formControl.reset();\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = Object.assign({\r\n},\r\n(window as any).Environment);\r\n\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { InputType } from '../Enums/InputType';\r\nimport { RangeNumber } from './RangeNumber';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { IconPosition } from '../Enums/IconPosition';\r\nimport { LanguageValidation } from '../Enums/LanguageValidation';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\nimport { RecaptchaModel } from './Recaptcha';\r\n\r\nexport class RecaptchaOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: RecaptchaModel = new RecaptchaModel()\r\n ForceDirection: ForceDirection = null\r\n /**Prevent AutoComplete of control default value is \"on\" available values \"on\" and \"off\"*/\r\n AutoComplete: string = \"on\"\r\n NoMargin: boolean = false;\r\n /**the url of a remote server that supports jsonp calls */\r\n ActionURL: string = \"/api/Home/GetReCaptchaModel\";\r\n /*Pass hexa-color primary background color*/\r\n BackgroundColorPrimary: string = \"\"\r\n /*Pass hexa-color secondary background color*/\r\n BackgroundColorSecondary: string = \"\"\r\n /*Pass hexa-color primary text color*/\r\n TextColorPrimary: string\r\n /*Pass hexa-color secondary text color*/\r\n TextColorSecondary: string\r\n /*Pass font Size */\r\n FontSize: number = 0;\r\n}\r\n","import { ControlLayout } from '../Enums/ControlLayout';\r\nimport { LanguageMode } from '../Enums/LanguageMode';\r\nimport { CustomValidation } from './CustomValidation';\r\nimport { EnglishArabicDTO } from './EnglishArabicDTO';\r\n\r\nexport class MultilingualControlOptionsBase {\r\n /** Represent Name Of Form Control*/\r\n Name: string;\r\n /** Represent key of the Label*/\r\n LabelKey: string;\r\n /** Represent value of the Label*/\r\n LabelValue: string;\r\n /** Represent Key of the label*/\r\n ArabicLabelKey: string;\r\n /** Represent Key of the label*/\r\n EnglishLabelKey: string;\r\n /** Represent value of the ArabicLabel*/\r\n ArabicLabelValue: string;\r\n /** Represent value of the EnglishLabel*/\r\n EnglishLabelValue: string;\r\n /** Represent value of the LabelDescription show under textbox*/\r\n LabelDescription: string;\r\n /** Represent value of the ArabicLabelDescription show under MultipleLanguageText*/\r\n ArabicLabelDescription: string;\r\n /** Represent value of the EnglishLabelDescription show under MultipleLanguageText*/\r\n EnglishLabelDescription: string;\r\n /**Represent ArabicPlaceholder Of Form Control*/\r\n ArabicPlaceholder: string;\r\n /**Represent EnglishPlaceholder Of Form Control*/\r\n EnglishPlaceholder: string;\r\n /** Represent classes to label that allow us to select the Control by jquery or javascript */\r\n LabelExtraClasses: string;\r\n /**Represent classes to Arabic textbox that allow us to select the MultipleLanguageText by jquery or javascript */\r\n ExtraClasses_AR: string;\r\n /**Represent classes to English textbox that allow us to select the MultipleLanguageText by jquery or javascript */\r\n ExtraClasses_EN: string;\r\n /** to set type of view if MultipleLanguageText is Vertical or Horizontal */\r\n ViewType: ControlLayout = null;\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean;\r\n /**To Set Value To MultipleLanguageText with Object From Type \"EnglishArabicDTO\" */\r\n Value: EnglishArabicDTO = new EnglishArabicDTO();\r\n /**Set the MinLength of characters In TextBox */\r\n MinLength: number;\r\n //** Set the MaxLength of characters In TextBox */\r\n MaxLength: number;\r\n //** Set the MaxWordCount of characters In TextBox */\r\n MaxWordCount: number;\r\n /**\r\n * Display \"*\" beside the label\r\n * if ForceAsterisk=true and IsRequired=True his display \"*\" ,\r\n * if if ForceAsterisk=false and IsRequired=false this remove \"*\",\r\n *if ForceAsterisk=false and IsRequired=True this display \"*\" ,\r\n */\r\n ShowAsterisk: boolean;\r\n /** Ability to set MultipleLanguageText required */\r\n IsRequired: boolean;\r\n /** Sets an attribute disable=\"disabled\" */\r\n IsDisabled: boolean;\r\n /** Ability to display or hide the EnglishField of MultipleLanguageText */\r\n IsHideEnglishFields: boolean;\r\n /** Ability to display or hide the ArabicField of MultipleLanguageText */\r\n IsHideArabicFields: boolean;\r\n /** Ability to display or hide the EnglishLabel of MultipleLanguageText */\r\n IsHideEnglishLabel: boolean;\r\n /** Ability to display or hide the ArabicLable of MultipleLanguageText */\r\n IsHideArabicLabel: boolean;\r\n /** trim input on change */\r\n TrimTextOnChange: boolean;\r\n /**To Set LanguageMode To MultipleLanguageText */\r\n LanguageMode: LanguageMode = null;\r\n /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage */\r\n CustomValidation: CustomValidation[] = [];\r\n /** Path of propriety which we need to patch value */\r\n PatchPath: string;\r\n /** Function which call to patch value */\r\n PatchFunction: Function;\r\n /** Sets an attribute readonly */\r\n IsReadonly: boolean = false;\r\n}\r\n","import { ControlLayout } from '../Enums/ControlLayout';\r\nimport { IconPosition } from '../Enums/IconPosition';\r\nimport { MultilingualControlOptionsBase } from './MultilingualControlOptionsBase';\r\n\r\nexport class MultiLingualTextBoxOptions extends MultilingualControlOptionsBase {\r\n\r\n /*icon options*/\r\n Icon: string\r\n IconPositionEN: IconPosition = IconPosition.left\r\n IconPositionAR: IconPosition = IconPosition.right\r\n /*multi control placement type*/\r\n MultiControlPlacementType: ControlLayout = null\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n /**Prevent AutoComplete of inputs default value is \"on\" available values \"on\" and \"off\"*/\r\n AutoComplete: string = \"on\"\r\n}\r\n","export class Attribute\r\n{\r\n Key:string\r\n value: any\r\n}","import { InputType } from '../Enums/InputType';\r\nimport { ControlLayout } from '../Enums/ControlLayout';\r\nimport { MultilingualControlOptionsBase } from './MultilingualControlOptionsBase';\r\n\r\nexport class MultiLingualTextAreaOptions extends MultilingualControlOptionsBase {\r\n Type: InputType;\r\n /**Set Number Of Rows */\r\n Rows: number\r\n /**Set Number Of columns */\r\n Cols: number\r\n /*multi control placement type*/\r\n MultiControlPlacementType: ControlLayout = null;\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class CheckBoxOptions extends ControlOptionsBase {\r\n /**To set value to CheckBox */\r\n Value: boolean = null\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n\r\n}","\r\nexport class DropdownListItem\r\n{\r\n key:any\r\n value:any\r\n}\r\n","import { InputType } from '../Enums/InputType';\r\nimport { Misc } from '../Enums/Misc';\r\nimport { Style } from '../Enums/Style';\r\nimport { FontSize } from '../Enums/FontSize';\r\nimport { Para } from '../Enums/Para';\r\nimport { Insert } from '../Enums/Insert';\r\nimport { MultilingualControlOptionsBase } from './MultilingualControlOptionsBase';\r\n\r\nexport class MultiLingualHtmlEditorOptions extends MultilingualControlOptionsBase {\r\n Type: InputType;\r\n /** Set Height For */\r\n Height: number=150\r\n /** Set List of Misc like codeview Or undo Or redo */\r\n ToolsList_Misc?: Misc[];\r\n /** Set List of Style like bold Or italic Or underline Or clear */\r\n ToolsList_Style?: Style[];\r\n /** Set List of FontSize like fontname Or fontsize Or color */\r\n ToolsList_FontSize?: FontSize[];\r\n /** Set List of Para like style Or ul Or ol Or paragraph Or height */\r\n ToolsList_Para?: Para[];\r\n /** Set List of Insert like table Or picture Or link Or video Or hr */\r\n ToolsList_Insert?: Insert[];\r\n\r\n\r\n}\r\n","import { ImageType } from '../Enums/ImageType';\r\nimport { EditPersonalImage } from './EditPersonalImage';\r\nimport { SaveDTO } from './SaveDTO';\r\nimport { CancelDTO } from './CancelDTO';\r\nimport { UploadPersonalImage } from './UploadPersonalImage';\r\nimport { ProfilePictureDTO } from './ProfilePictureDTO';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class ProfileImageUploadOptions extends ControlOptionsBase {\r\n\r\n /**To set value to FileInput */\r\n Value: ProfilePictureDTO\r\n AllowDropZone: boolean = false\r\n /** Set File MaxSize In MB */\r\n FileMaxSizeInMB: number;\r\n /** Set List of Custom Attribute to FileInput */\r\n ImageUploadAcceptsTypes: ImageType[] = [ImageType.ImageTypes]\r\n /** Set Default Image */\r\n DefaultImageSrc: string\r\n /** Set ImageID Encrypted */\r\n ImageIDEncrypted: string\r\n /** Set EditPersonalImage */\r\n EditPersonalImageTitle: EditPersonalImage\r\n /** Set SaveDTO */\r\n SaveTitle: SaveDTO\r\n /** Set CancelDTO */\r\n CancelTitle: CancelDTO\r\n /** Set UploadPersonalImage */\r\n UploadPersonalImageTitle: UploadPersonalImage\r\n}\r\n","export class SaveDTO\r\n{\r\n constructor()\r\n {\r\n this.English = \"Save\";\r\n this.Arabic = \"حفظ\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","export class CancelDTO\r\n{\r\n constructor()\r\n {\r\n this.English = \"Cancel\";\r\n this.Arabic = \"الغاء\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","export class EditPersonalImage\r\n{\r\n constructor()\r\n {\r\n this.English = \"Edit Personal Image\";\r\n this.Arabic = \"تعديل الصورة الشخصية\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","export class UploadPersonalImage\r\n{\r\n constructor()\r\n {\r\n this.English = \"Upload Personal Image\";\r\n this.Arabic = \"تحميل صورة الشخصية\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","import { CalendarView } from '../Enums/CalendarView'\r\nimport { CalendarEventDTO } from './CalendarEventDTO'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\n\r\nexport class CalendarOptions extends ControlOptionsBase {\r\n /** Represent DefaultView Of Calendar*/\r\n DefaultView: CalendarView = CalendarView.Month\r\n /** Represent OnEventClickFunction Of Calendar*/\r\n OnEventClickFunction: any\r\n /** Represent CalendarViews Of Calendar*/\r\n CalendarViews: CalendarView[] = [CalendarView.Agenda, CalendarView.Daily, CalendarView.Month, CalendarView.Weekly]\r\n /** Represent OnDayClickFunction Of Calendar*/\r\n OnDayClickFunction: any\r\n EventList: CalendarEventDTO[]\r\n /** Set Allowc Calendar Weekends Of Calendar*/\r\n AllowCalendarWeekends: boolean\r\n /** Set Calendar Visible Of Calendar*/\r\n CalendarVisible: boolean = true\r\n /** Set DefaultDate Of Calendar*/\r\n DefaultDate: Date = new Date()\r\n Eventeditable: boolean = false\r\n Eventselectable: boolean = false\r\n dayMaxEvents: boolean | number = false;\r\n\r\n}","export class CalendarEventDTO\r\n{\r\n id: string;\r\n title: string;\r\n start: Date;\r\n end: Date;\r\n colour: string;\r\n allDay:boolean\r\n}","import { TemplateRef } from '@angular/core';\r\nimport { AutocompleteDTO } from './AutocompleteDTO';\r\nimport { InputType } from '../Enums/InputType';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { RangeNumber } from './RangeNumber';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class AutocompleteOptions extends ControlOptionsBase {\r\n\r\n /**Represent classes to textbox that allow us to select the AutoComplete by jquery or javascript */\r\n ValidationToken: string = null\r\n /**To set value to textbox */\r\n Value: any = null\r\n //** Set the MaxLength of characters In AutoComplete */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In AutoComplete */\r\n MinLength?: number\r\n //** Set the MaxWordCount of characters In AutoComplete */\r\n MaxWordCount: number;\r\n /** set Range Number to Textbox with type number with From-Value and To-value*/\r\n NumberRange: RangeNumber = new RangeNumber()\r\n /**Prevent AutoComplete of textbox*/\r\n AutoComplete: boolean\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /**Prevent Defulat Password Validation to set Custom Validation */\r\n RemoveDefulatPasswordValidation: boolean\r\n /** to set Direction of textbox if textbox is Arabic or English */\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n /** Set Type of AutoComplete (\"text\",\"password\",\"email\",\"number\") */\r\n Type: InputType\r\n /** allow add value of AutoComplete dosn't exist in list*/\r\n AllowNewSelection: boolean = false;\r\n ControlId: string;\r\n /**the url of a remote server that supports jsonp calls */\r\n ActionURL: string;\r\n // /**a {key,value} (json) object to include as params for the json call. Each api supports different structure.*/\r\n // Params: object={};\r\n QueryParam: string = 'query'\r\n AutocompleteDTO: AutocompleteDTO\r\n SelectedValue: any = null\r\n ItemWithImage: boolean = false\r\n CustomTemplate:TemplateRef<any>\r\n}\r\n","export class TagsInputDTO\r\n {\r\n ID :string\r\n Name :string\r\n Description :string\r\n ImageURL: string;\r\n}\r\n","import { ControlLayout } from '../Enums/ControlLayout'\r\nimport { CustomValidation } from './CustomValidation'\r\nimport { ForceDirection } from '../Enums/ForceDirection'\r\nimport { Attribute } from './Attribute'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\nimport { TagInputView } from '../Enums/TagInputView'\r\n\r\n\r\nexport class TagsInputOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: any\r\n //** Set the MaxLength of characters In AutoComplete */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In AutoComplete */\r\n MinLength?: number\r\n //** Set the MaxWordCount of characters In AutoComplete */\r\n MaxWordCount: number;\r\n /**Prevent AutoComplete of tagsinput*/\r\n AutoComplete: boolean\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /**Prevent Defulat Password Validation to set Custom Validation */\r\n RemoveDefulatPasswordValidation: boolean\r\n /** to set Direction of tagsinput if tagsinput is Arabic or English */\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n /**the url of a remote server that supports jsonp calls */\r\n ActionURL: string;\r\n /**Remove Last When User Click On Backspace */\r\n RemoveLastOnBackspace: boolean = false\r\n /** Allow User To Delete Tags */\r\n CanDeleteTags: boolean = true\r\n /** Allow User To Add Tags */\r\n CanAddTags: boolean = true\r\n /** Set Max Number Of Tags That User Can Be Select */\r\n MaxNumberTags: number = 30\r\n /** Set Min Length Of Char To Call Search Function */\r\n MinSearchLength: number = 1\r\n /**Allow Scrolle Option In Dropdown */\r\n ScrollableOptions: boolean = true\r\n /** Set Max Number Of Tags That will Be Appear ON Dropdown */\r\n MaxSearchResultsCount: number = 10\r\n /**Value Name Of Tag Option In Dropdown */\r\n DatasourceItemValue: string = \"id\"\r\n /**Text Of Tag That Will Show In Dropdown */\r\n DatasourceItemText: string = \"name\"\r\n /**Text Show when none of the given options match the entered text */\r\n NoResultText: string;\r\n /**Set Query Param Name By Default It's 'query'*/\r\n QueryParamName: string = \"query\"\r\n /**Set Query Param Name By Default It's 'query'*/\r\n SelectedItemsParamName: string = \"SelectedItems\"\r\n /**Set Filter Param Name By Default It's 'query'*/\r\n FilterParamName: string = \"\"\r\n DefaultImgUrl: string = \"\"\r\n /** allow add value of TagInput dosn't exist in list*/\r\n AllowNewSelection: boolean = false;\r\n ValidationToken: string = null;\r\n /**Set Extra Filters*/\r\n ExtraFilters: string;\r\n \r\n TagInputMode: TagInputView = TagInputView.WithoutImage\r\n\r\n ShowDescription: boolean = true;\r\n\r\n}\r\n","import { FilterType } from '../Enums/FilterType';\r\n\r\nexport class FilterItem {\r\n \r\n /** jQuery selector used to retrieve the parameter value*/\r\n\r\n jQuerySelector: string\r\n /** FormControlName used to retrieve the value Of Control*/\r\n FormControlName: string;\r\n /** The action parameter exact name (case sensitive)*/\r\n ActionParameterName: string\r\n /** Check If This Filter Is Form Control Or js Filter */\r\n IsFormControl: boolean=true\r\n /**Set Filter Type To Filter*/\r\n FilterType:FilterType\r\n\r\n}\r\n","import { FilterItem } from './FilterItem'\r\nimport { ForceDirection } from '../Enums/ForceDirection'\r\n\r\nexport class PagingOptions<T = any>{\r\n /**URL of the action that will be called on update*/\r\n ActionPostURL: string = \"\"\r\n ValidationToken: string = null\r\n /** Comma separater list of parameters that need to be passed to the updated function, the parameter name must be the ID of the element that holds the value of the filter.\r\n * ex \"searchText,fromDateTimePicker\" we should have now an input with id searchText and a datetime picker with id fromDateTimePicker*/\r\n Filters: FilterItem[] = []\r\n /**The total count for the items in the datasource */\r\n TotalCount: number = 0\r\n /** No of items in one page \r\n * Default is 10\r\n */\r\n PageSize: number = 10\r\n /**Typeahead search input, used to attach on change events to the search input to refresh the paging after change */\r\n TypeaheadSearchControlNames: string[] = []\r\n /**Comma separater list of Dropdowns filters , used to attach on change events to the dropdown filter to refresh the paging after change */\r\n DropdownFiltersControlNames: string[] = []\r\n /**Comma separater list of Bootstrap datepicker filters, used to attach on change events to the datepicker filter to refresh the paging after change */\r\n BootstrapDatePickersFiltersControlNames: string[] = []\r\n /**Comma separater list of any button/element filters to attach on click event, this will refresh the paging after the event is fired */\r\n OnClickFiltersControlNames: string[] = []\r\n /** Comma separater list of any button/element filters to attach on keypress/Enter event, this will refresh the paging after the event is fired */\r\n OnKeyPressFiltersControlNames: string[] = []\r\n /** The js function name to be called to update the paging total count and keep the current page as is, have to pass the new total count of the datasource items\r\n * Default value is Paging_Update fill this parameter in case there are multiple paging controls */\r\n UpdateFunctionName: string\r\n /** The js function name to be called to reinitialize the paging component with a new items count and reset the curent page to 1, you must pass the new total count of the datasource items\r\n * Default value is Paging_Reinitialize fill this parameter in case there are multiple paging controls*/\r\n ReinitializeFunctionName: string\r\n /**Show a dropdown to be able to change the page size */\r\n ShowPageSizeOption: boolean = false\r\n /**js function name to be called when a page is updated */\r\n OnSuccessCallBackJSFunction: string\r\n /** bool to set block ui by container rather than the whole window */\r\n BlockUIByContainer: boolean = true\r\n /**hide Pagination When Page Size Equal One */\r\n HidePaginationWhenPageSizeEqualOne: boolean = true\r\n /**Show First And Last */\r\n ShowFirstAndLast: boolean = true\r\n /**Show Load More Button And Hide Paging */\r\n IsLoadMoreControl: boolean = false\r\n /** Load More items While Scrolling */\r\n IsInfiniteScroll: boolean = false\r\n /**should get a html element or css selector for a scrollable element; window or current element will be used if this attribute is empty. */\r\n InfiniteScrollContainer\r\n /**listens to the window scroll instead of the actual element scroll. this allows to invoke a callback function in the scope of the element while listenning to the window scroll. */\r\n ScrollWindow: boolean = true\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n TypeOfResponse?: new () => T\r\n /** Clear Filter button selector */\r\n ResetFilterButtonName: string = null;\r\n DisableBlockUI: boolean = false;\r\n StartPagingCallback: Function = null;\r\n}\r\n","\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\nimport { RadioButtonItem } from './RadioButtonItem';\r\n\r\nexport class RadioButtonOptions extends ControlOptionsBase {\r\n /**To set value to RadioButton */\r\n Value: RadioButtonItem\r\n /** Set List of Custom Attribute to RadioButton */\r\n Items: RadioButtonItem[]\r\n\r\n}\r\n","\r\n\r\nexport class RadioButtonItem {\r\n Text: string\r\n Value :any\r\n}\r\n","import { FormGroup } from '@angular/forms';\r\nimport { ElementRef } from '@angular/core';\r\nimport { PagingActionMode } from '../Enums/PagingActionMode';\r\nimport { PagingComponent } from '../../controls/Paging/Paging.component';\r\n\r\nexport class FormOptions {\r\n\r\n //Represents form group of contol\r\n FormGroup: FormGroup = null;\r\n\r\n //Represents refrence to paging control that needs to be updated after success\r\n PagingReference: PagingComponent<any> = null\r\n\r\n //Represents paging action excutes after submission (Reinitialize/Update)\r\n PagingActionMode: PagingActionMode = PagingActionMode.Reinitialize;\r\n\r\n //Represents function that get form model for submission\r\n GetModelFunction: Function = null;\r\n\r\n //Represents service function for submission\r\n ServiceSubmitFunction: Function = null;\r\n\r\n //Represents function that excutes after submission error\r\n OnErrorHandler: Function = null;\r\n\r\n //Represents function that excutes after submission success\r\n OnSuccessHandler: Function = null;\r\n\r\n //If =\"true\" disable notification after submission success\r\n DisableSuccessNotification: boolean = false;\r\n\r\n //If =\"true\" disable notification after submission error\r\n DisableErrorNotification: boolean = false;\r\n\r\n //If =\"true\" disable startblockui before submission\r\n DisableBlockUI: boolean = false;\r\n\r\n //If =\"true\" disable modal from dismiss automatically \r\n DisableModalDismiss: boolean = false;\r\n}\r\n","import { PagingComponent } from \"../../controls/Paging/Paging.component\";\r\nimport { PagingActionMode } from \"../Enums/PagingActionMode\";\r\nimport { StyleConfirmationMode } from \"../Enums/StyleConfirmationMode\";\r\n\r\n\r\nexport class ConfirmationModalOptions {\r\n //Represents confirmation modal title\r\n ConfirmationHeader: string = null;\r\n\r\n //Represents confirmation modal body\r\n ConfirmationBody: string = null;\r\n\r\n //Represents confirmation modal submit button text\r\n SubmitButtonText: string = null;\r\n\r\n //Represents confirmation modal body style\r\n StyleConfirmationMode: StyleConfirmationMode = StyleConfirmationMode.Danger;\r\n\r\n //Represents service function for submission\r\n ServiceSubmitFunction: Function = null;\r\n\r\n //Represents model sent to service submit function\r\n ServiceSubmitModel: any[] = [];\r\n\r\n //Represents refrence to paging control that needs to be updated after success\r\n PagingReference: PagingComponent<any> = null\r\n\r\n //Represents paging action excutes after submission (Reinitialize/Update)\r\n PagingActionMode: PagingActionMode = PagingActionMode.Reinitialize;\r\n\r\n //Represents function that excutes after submission error\r\n OnErrorHandler: Function = null;\r\n\r\n //Represents function that excutes after submission success\r\n OnSuccessHandler: Function = null;\r\n\r\n //Represents message appears in notification after success\r\n SuccessNotificationMessage: string = null;\r\n\r\n //If =\"true\" disable notification after submission success\r\n DisableSuccessNotification: boolean = false;\r\n\r\n //If =\"true\" disable notification after submission error\r\n DisableErrorNotification: boolean = false;\r\n\r\n //If =\"true\" disable prevent modal from dismiss automatically \r\n DisableModalDismiss: boolean = false;\r\n //If =\"false\" prevent modal to show cancel button\r\n showCancelButton: boolean = true;\r\n //If =\"false\" prevent modal to show close button\r\n showCloseButton: boolean = true;\r\n\r\n}\r\n","import { DataType } from \"../Enums/Enums\";\r\nexport class RepeaterField {\r\n HeaderTitle: string;\r\n ControlType: DataType;\r\n ControlOptions: any;\r\n IsHiddenInput: boolean;\r\n}\r\n","import { RepeaterField } from \"./RepeaterField\";\r\n\r\nexport class RepeaterOptions {\r\n IsRequired: boolean;\r\n MinRequiredItems: number;\r\n ExtraClasses: string;\r\n Name: string;\r\n ActionLabelKey: string = \"\";\r\n AddButtonExtraClasses: string;\r\n RepeaterTableExtraClasses: string\r\n RepeaterTableRowExtraClasses: string\r\n AddButtonText: string = \"Add\";\r\n DeleteButtonExtraClasses: string;\r\n DeleteButtonText: string = \"Delete\";\r\n RepeaterValue: any[] = [];\r\n RepeaterStructure: RepeaterField[] = [];\r\n DisableAddButton: boolean = false;\r\n DisableDeleteButton: boolean = false;\r\n IsReadonly: boolean = false;\r\n}\r\n","import { ControlFilterItem } from \"./control-filter-Item\";\r\nexport class FilterOptions {\r\n ControlsOptions:ControlFilterItem[]=[];\r\n ApplyFunction:Function = null;\r\n RestFunction:Function = null;\r\n ShowLoadingInFiltersBox:boolean=false;\r\n}\r\n","import { BreadCrumb } from \"./bread-crumb\";\r\nimport { FilterOptions } from \"./filter-options\";\r\nimport { TextBoxOptions } from \"./TextBoxOptions\";\r\n\r\nexport class PageHeaderOptions {\r\n constructor() {\r\n this.BreadCrumb = new BreadCrumbModel();\r\n this.AddButton = new AddButton();\r\n this.EditButton = new EditButton();\r\n this.DeleteButton = new DeleteButton();\r\n this.ExportButton = new ExportButton();\r\n this.GridView = new GridViewModel();\r\n this.SearchTextBox = new TextBoxModel();\r\n this.FiltersButton = new FiltersButton();\r\n this.Filters = new FilterOptions();\r\n this.DropDownActions = new DropdownActions();\r\n }\r\n TitleKey: string;\r\n TitleValue: string;\r\n SubTitleKey: string;\r\n BreadCrumb: BreadCrumbModel;\r\n AddButton: AddButton;\r\n EditButton: EditButton;\r\n DeleteButton: DeleteButton;\r\n ExportButton: ExportButton;\r\n GridView: GridViewModel;\r\n SearchTextBox: TextBoxModel;\r\n FiltersButton: FiltersButton;\r\n Filters: FilterOptions;\r\n DropDownActions: DropdownActions;\r\n Listing: boolean;\r\n}\r\n\r\nexport class BreadCrumbModel {\r\n Active: boolean\r\n BreadCrumbItems: BreadCrumb[] = [];\r\n}\r\nexport class AddButton {\r\n Active: boolean;\r\n ButtonTextKey: string=\"Add\";\r\n Function: Function = null;\r\n}\r\nexport class EditButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Edit\";\r\n Function: Function = null;\r\n}\r\nexport class DeleteButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Delete\";\r\n Function: Function = null;\r\n}\r\nexport class FiltersButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Filter\";\r\n Function: Function = null;\r\n ShowLoadingInFiltersBox: boolean = true;\r\n\r\n constructor() {\r\n this.ButtonTextKey = \"Filter\";\r\n }\r\n}\r\nexport class ExportButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Export\";\r\n Function: Function = null;\r\n}\r\nexport class GridViewModel {\r\n Active: boolean;\r\n ToggleFunction: Function = null;\r\n ShowGridViewByDefault: boolean;\r\n}\r\nexport class TextBoxModel {\r\n Active: boolean;\r\n TextSearchBoxOptions: TextBoxOptions = new TextBoxOptions();\r\n}\r\nexport class DropdownActions {\r\n Active: boolean;\r\n DropdownActionItems: DropdownActionItem[] = []\r\n}\r\nexport class DropdownActionItem {\r\n constructor(text: string, svg: string, functionName: Function,routerLink:string=null) {\r\n this.Text = text;\r\n this.SVG = svg;\r\n this.Function = functionName;\r\n this.RouterLink = routerLink;\r\n }\r\n Text: string;\r\n SVG: string;\r\n Function: Function = null;\r\n RouterLink :string\r\n}\r\n","import { DataType } from \"../Enums/Enums\";\r\nexport class ControlFilterItem {\r\n key:DataType;\r\n value:any;\r\n onChange?:Function = null;\r\n}\r\n","export class BreadCrumb {\r\n constructor(label: string, active: boolean, route: string = null) {\r\n this.label = label;\r\n this.active = active;\r\n this.route = route;\r\n }\r\n label: string;\r\n active: boolean;\r\n route: string;\r\n }\r\n ","export enum MenuListType {\r\n AdminType =1 ,\r\n UserType = 2,\r\n \r\n}","export enum Country {\r\n Afghanistan = \"af\",\r\n Albania = \"al\",\r\n Algeria = \"dz\",\r\n AmericanSamoa = \"as\",\r\n Andorra = \"ad\",\r\n Angola = \"ao\",\r\n Anguilla = \"ai\",\r\n AntiguaAndBarbuda = \"ag\",\r\n Argentina = \"ar\",\r\n Armenia = \"am\",\r\n Aruba = \"aw\",\r\n Australia = \"au\",\r\n Austria = \"at\",\r\n Azerbaijan = \"az\",\r\n Bahamas = \"bs\",\r\n Bahrain = \"bh\",\r\n Bangladesh = \"bd\",\r\n Barbados = \"bb\",\r\n Belarus = \"by\",\r\n Belgium = \"be\",\r\n Belize = \"bz\",\r\n Benin = \"bj\",\r\n Bermuda = \"bm\",\r\n Bhutan = \"bt\",\r\n Bolivia = \"bo\",\r\n BosniaAndHerzegovina = \"ba\",\r\n Botswana = \"bw\",\r\n Brazil = \"br\",\r\n BritishIndianOceanTerritory = \"io\",\r\n BritishVirginIslands = \"vg\",\r\n Brunei = \"bn\",\r\n Bulgaria = \"bg\",\r\n BurkinaFaso = \"bf\",\r\n Burundi = \"bi\",\r\n Cambodia = \"kh\",\r\n Cameroon = \"cm\",\r\n Canada = \"ca\",\r\n CapeVerde = \"cv\",\r\n CaribbeanNetherlands = \"bq\",\r\n CaymanIslands = \"ky\",\r\n CentralAfricanRepublic = \"cf\",\r\n Chad = \"td\",\r\n Chile = \"cl\",\r\n China = \"cn\",\r\n ChristmasIsland = \"cx\",\r\n Cocos = \"cc\",\r\n Colombia = \"co\",\r\n Comoros = \"km\",\r\n CongoDRCJamhuriYaKidemokrasiaYaKongo = \"cd\",\r\n CongoRepublicCongoBrazzaville = \"cg\",\r\n CookIslands = \"ck\",\r\n CostaRica = \"cr\",\r\n CôteDIvoire = \"ci\",\r\n Croatia = \"hr\",\r\n Cuba = \"cu\",\r\n Curaçao = \"cw\",\r\n Cyprus = \"cy\",\r\n CzechRepublic = \"cz\",\r\n Denmark = \"dk\",\r\n Djibouti = \"dj\",\r\n Dominica = \"dm\",\r\n DominicanRepublic = \"do\",\r\n Ecuador = \"ec\",\r\n Egypt = \"eg\",\r\n ElSalvador = \"sv\",\r\n EquatorialGuinea = \"gq\",\r\n Eritrea = \"er\",\r\n Estonia = \"ee\",\r\n Ethiopia = \"et\",\r\n FalklandIslands = \"fk\",\r\n FaroeIslands = \"fo\",\r\n Fiji = \"fj\",\r\n Finland = \"fi\",\r\n France = \"fr\",\r\n FrenchGuiana = \"gf\",\r\n FrenchPolynesia = \"pf\",\r\n Gabon = \"ga\",\r\n Gambia = \"gm\",\r\n Georgia = \"ge\",\r\n Germany = \"de\",\r\n Ghana = \"gh\",\r\n Gibraltar = \"gi\",\r\n Greece = \"gr\",\r\n Greenland = \"gl\",\r\n Grenada = \"gd\",\r\n Guadeloupe = \"gp\",\r\n Guam = \"gu\",\r\n Guatemala = \"gt\",\r\n Guernsey = \"gg\",\r\n Guinea = \"gn\",\r\n GuineaBissau = \"gw\",\r\n Guyana = \"gy\",\r\n Haiti = \"ht\",\r\n Honduras = \"hn\",\r\n HongKong = \"hk\",\r\n Hungary = \"hu\",\r\n Iceland = \"is\",\r\n India = \"in\",\r\n Indonesia = \"id\",\r\n Iran = \"ir\",\r\n Iraq = \"iq\",\r\n Ireland = \"ie\",\r\n IsleOfMan = \"im\",\r\n Israel = \"il\",\r\n Italy = \"it\",\r\n Jamaica = \"jm\",\r\n Japan = \"jp\",\r\n Jersey = \"je\",\r\n Jordan = \"jo\",\r\n Kazakhstan = \"kz\",\r\n Kenya = \"ke\",\r\n Kiribati = \"ki\",\r\n Kosovo = \"xk\",\r\n Kuwait = \"kw\",\r\n Kyrgyzstan = \"kg\",\r\n Laos = \"la\",\r\n Latvia = \"lv\",\r\n Lebanon = \"lb\",\r\n Lesotho = \"ls\",\r\n Liberia = \"lr\",\r\n Libya = \"ly\",\r\n Liechtenstein = \"li\",\r\n Lithuania = \"lt\",\r\n Luxembourg = \"lu\",\r\n Macau = \"mo\",\r\n Macedonia = \"mk\",\r\n Madagascar = \"mg\",\r\n Malawi = \"mw\",\r\n Malaysia = \"my\",\r\n Maldives = \"mv\",\r\n Mali = \"ml\",\r\n Malta = \"mt\",\r\n MarshallIslands = \"mh\",\r\n Martinique = \"mq\",\r\n Mauritania = \"mr\",\r\n Mauritius = \"mu\",\r\n Mayotte = \"yt\",\r\n Mexico = \"mx\",\r\n Micronesia = \"fm\",\r\n Moldova = \"md\",\r\n Monaco = \"mc\",\r\n Mongolia = \"mn\",\r\n Montenegro = \"me\",\r\n Montserrat = \"ms\",\r\n Morocco = \"ma\",\r\n Mozambique = \"mz\",\r\n Myanmar = \"mm\",\r\n Namibia = \"na\",\r\n Nauru = \"nr\",\r\n Nepal = \"np\",\r\n Netherlands = \"nl\",\r\n NewCaledonia = \"nc\",\r\n NewZealand = \"nz\",\r\n Nicaragua = \"ni\",\r\n Niger = \"ne\",\r\n Nigeria = \"ng\",\r\n Niue = \"nu\",\r\n NorfolkIsland = \"nf\",\r\n NorthKorea = \"kp\",\r\n NorthernMarianaIslands = \"mp\",\r\n Norway = \"no\",\r\n Oman = \"om\",\r\n Pakistan = \"pk\",\r\n Palau = \"pw\",\r\n Palestine = \"ps\",\r\n Panama = \"pa\",\r\n PapuaNewGuinea = \"pg\",\r\n Paraguay = \"py\",\r\n Peru = \"pe\",\r\n Philippines = \"ph\",\r\n Poland = \"pl\",\r\n Portugal = \"pt\",\r\n PuertoRico = \"pr\",\r\n Qatar = \"qa\",\r\n Réunion = \"re\",\r\n Romania = \"ro\",\r\n Russia = \"ru\",\r\n Rwanda = \"rw\",\r\n SaintBarthélemy = \"bl\",\r\n SaintHelena = \"sh\",\r\n SaintKittsAndNevis = \"kn\",\r\n SaintLucia = \"lc\",\r\n SaintMartin = \"mf\",\r\n SaintPierreAndMiquelon = \"pm\",\r\n SaintVincentAndTheGrenadines = \"vc\",\r\n Samoa = \"ws\",\r\n SanMarino = \"sm\",\r\n SãoToméAndPríncipe = \"st\",\r\n SaudiArabia = \"sa\",\r\n Senegal = \"sn\",\r\n Serbia = \"rs\",\r\n Seychelles = \"sc\",\r\n SierraLeone = \"sl\",\r\n Singapore = \"sg\",\r\n SintMaarten = \"sx\",\r\n Slovakia = \"sk\",\r\n Slovenia = \"si\",\r\n SolomonIslands = \"sb\",\r\n Somalia = \"so\",\r\n SouthAfrica = \"za\",\r\n SouthKorea = \"kr\",\r\n SouthSudan = \"ss\",\r\n Spain = \"es\",\r\n SriLanka = \"lk\",\r\n Sudan = \"sd\",\r\n Suriname = \"sr\",\r\n SvalbardAndJanMayen = \"sj\",\r\n Swaziland = \"sz\",\r\n Sweden = \"se\",\r\n Switzerland = \"ch\",\r\n Syria = \"sy\",\r\n Taiwan = \"tw\",\r\n Tajikistan = \"tj\",\r\n Tanzania = \"tz\",\r\n Thailand = \"th\",\r\n TimorLeste = \"tl\",\r\n Togo = \"tg\",\r\n Tokelau = \"tk\",\r\n Tonga = \"to\",\r\n TrinidadAndTobago = \"tt\",\r\n Tunisia = \"tn\",\r\n Turkey = \"tr\",\r\n Turkmenistan = \"tm\",\r\n TurksAndCaicosIslands = \"tc\",\r\n Tuvalu = \"tv\",\r\n USVirginIslands = \"vi\",\r\n Uganda = \"ug\",\r\n Ukraine = \"ua\",\r\n UnitedArabEmirates = \"ae\",\r\n UnitedKingdom = \"gb\",\r\n UnitedStates = \"us\",\r\n Uruguay = \"uy\",\r\n Uzbekistan = \"uz\",\r\n Vanuatu = \"vu\",\r\n VaticanCity = \"va\",\r\n Venezuela = \"ve\",\r\n Vietnam = \"vn\",\r\n WallisAndFutuna = \"wf\",\r\n WesternSahara = \"eh\",\r\n Yemen = \"ye\",\r\n Zambia = \"zm\",\r\n Zimbabwe = \"zw\",\r\n ÅlandIslands = \"ax\"\r\n}\r\n","export enum FontSize\r\n{\r\n fontname = 'fontname' ,\r\n fontsize = 'fontsize',\r\n color = 'color',\r\n \r\n}\r\n\r\n","export enum Insert\r\n{\r\n table = 'table' ,\r\n picture = 'picture',\r\n link = 'link',\r\n video='video',\r\n hr='hr'\r\n}\r\n\r\n\r\n","export enum Misc\r\n{\r\n codeview = 'codeview' ,\r\n undo = 'undo',\r\n redo = 'redo',\r\n}\r\n","export enum Para\r\n{\r\n style = 'style' ,\r\n ul = 'ul',\r\n ol = 'ol',\r\n paragraph='paragraph',\r\n height='height'\r\n}\r\n\r\n","export enum Style\r\n{\r\n bold = 'bold' ,\r\n italic = 'italic',\r\n underline = 'underline',\r\n clear='clear'\r\n}\r\n\r\n","export enum FileType {\r\n PDF = 'application/pdf',\r\n Word = 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n Excel = 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n ImageTypes = 'image/png,image/bmp,image/jpeg',\r\n PNG = 'image/png',\r\n JPG = 'image/jpeg',\r\n JPEG = 'image/jpeg',\r\n ZIP = 'application/zip',\r\n RAR = 'application/x-rar-compressed',\r\n VIDEO = 'video/webm,video/ogg,video/mp4,video/quicktime,video/x-msvideo,video/x-ms-wmv',\r\n License = 'application/BN',\r\n Xml = 'text/xml',\r\n OctetSteam = 'application/octet-stream',\r\n Txt = 'text/plain',\r\n JSON = 'application/json',\r\n PowerPoint = 'application/vnd.ms-powerpoint,applicationapplication/vnd.openxmlformats-officedocument.presentationml.presentation',\r\n SVG = 'image/svg+xml',\r\n None = '',\r\n}\r\n","/*\r\n * Public API Surface of bnsights-library\r\n */\r\n//export module \r\nexport * from './lib/controls/bbsf-controls.module';\r\n// export * from './lib/areas/admin-panel/layout-modules/adminPage.module';\r\n\r\n// //export component \r\nexport * from './lib/controls/TextBox/TextBox.component'\r\nexport * from './lib/controls/DateTimePicker/DateTimePicker.component'\r\nexport * from './lib/controls/FileUplaod/FileUplaod.component'\r\nexport * from './lib/controls/MultiLingualTextBox/MultiLingualTextBox.component'\r\nexport * from './lib/controls/TextArea/TextArea.component'\r\nexport * from './lib/controls/MultiLingualTextArea/MultiLingualTextArea.component'\r\nexport * from './lib/controls/CheckBox/CheckBox.component'\r\nexport * from './lib/controls/DropdownList/DropdownList.component'\r\nexport * from './lib/controls/Phone/Phone.component'\r\nexport * from './lib/controls/Toggleslide/toggleslide.component'\r\nexport * from './lib/controls/HtmlEditor/HtmlEditor.component'\r\nexport * from './lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component';\r\nexport * from './lib/controls/ImageUpload/ImageUpload.component'\r\nexport * from './lib/controls/ProfileImageUploader/ProfileImageUploader.component'\r\nexport * from './lib/controls/Calendar/Calendar.component'\r\nexport * from './lib/controls/MapAutoComplete/MapAutoComplete.component'\r\nexport * from './lib/controls/AutocompleteTextBox/AutocompleteTextBox.component'\r\nexport * from './lib/controls/TagsInput/TagsInput.component'\r\nexport * from './lib/controls/Paging/JwPagination.component'\r\nexport * from './lib/controls/Paging/Paging.component'\r\nexport * from './lib/controls/RadioButton/RadioButton.component'\r\nexport * from './lib/controls/ConfirmationModal/ConfirmationModal.component'\r\nexport * from './lib/controls/Form/Form.component'\r\nexport * from './lib/controls/Repeater/repeater/repeater.component'\r\nexport * from './lib/controls/Repeater/repeater-table/repeater-table.component'\r\n\r\nexport * from './lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component'\r\nexport * from './lib/controls/Repeater/repeater-item-field/repeater-item-field.component'\r\nexport * from './lib/controls/Recaptcha/Recaptcha.component'\r\nexport * from './lib/controls/page-header-component/page-header-component.component'\r\nexport * from './lib/Shared/Components/app-base-component'\r\n\r\n\r\n//export services\r\nexport * from './lib/Shared/services/validationErrorMassage.service'\r\nexport * from './lib/Shared/services/ControlUtility'\r\nexport * from './lib/Shared/services/OnPagingFiltersChange.service'\r\nexport * from './lib/Shared/config/environment'\r\nexport * from './lib/Shared/services/GlobalSettings.service'\r\nexport * from './lib/Shared/services/render-component-service.service'\r\nexport * from './lib/Shared/default_intl'\r\n\r\n\r\n\r\n//export Models\r\nexport * from './lib/Shared/Models/ControlOptionsBase'\r\nexport * from './lib/Shared/Models/RecaptchaOptions'\r\nexport * from './lib/Shared/Models/Recaptcha'\r\nexport * from './lib/Shared/Models/MultilingualControlOptionsBase'\r\nexport * from './lib/Shared/Models/CustomValidation'\r\nexport * from './lib/Shared/Models/datePickerOptions'\r\nexport * from './lib/Shared/Models/TextBoxOptions'\r\nexport * from './lib/Shared/Models/FileUploadOptions'\r\nexport * from './lib/Shared/Models/FileUploadModel'\r\nexport * from './lib/Shared/Models/MultipleFileUploadModel'\r\nexport * from './lib/Shared/Models/MultilingualTextBoxOptions'\r\nexport * from './lib/Shared/Models/RangeNumber'\r\nexport * from './lib/Shared/Models/EnglishArabicDTO'\r\nexport * from './lib/Shared/Models/Attribute'\r\nexport * from './lib/Shared/Models/TextAreaOptions'\r\nexport * from './lib/Shared/Models/MultiLingualTextAreaOptions'\r\nexport * from './lib/Shared/Models/CheckBoxOptions'\r\nexport * from './lib/Shared/Models/DropdownListItem'\r\nexport * from './lib/Shared/Models/DropdownOptions'\r\nexport * from './lib/Shared/Models/PhoneOptions'\r\nexport * from './lib/Shared/Models/ToggleslideOptions'\r\nexport * from './lib/Shared/Models/HtmlEditorOptions'\r\nexport * from './lib/Shared/Models/MultiLingualHtmlEditorOptions'\r\nexport * from './lib/Shared/Models/FileDTO'\r\nexport * from './lib/Shared/Models/ImageUploadOptions'\r\nexport * from './lib/Shared/Models/ProfileImageUploadOptions'\r\nexport * from './lib/Shared/Models/ProfilePictureDTO'\r\nexport * from './lib/Shared/Models/SaveDTO'\r\nexport * from './lib/Shared/Models/CancelDTO'\r\nexport * from './lib/Shared/Models/EditPersonalImage'\r\nexport * from './lib/Shared/Models/UploadPersonalImage'\r\nexport * from './lib/Shared/Models/CalendarOptions'\r\nexport * from './lib/Shared/Models/CalendarEventDTO'\r\nexport * from './lib/Shared/Models/MapAutoCompleteOptions'\r\nexport * from './lib/Shared/Models/MapAutocompleteDTO'\r\nexport * from './lib/Shared/Models/AutocompleteDTO'\r\nexport * from './lib/Shared/Models/AutocompleteOptions'\r\nexport * from './lib/Shared/Models/TagsInputDTO'\r\nexport * from './lib/Shared/Models/TagsInputOptions'\r\nexport * from './lib/Shared/Models/FilterItem'\r\nexport * from './lib/Shared/Models/PagingDTO'\r\nexport * from './lib/Shared/Models/PagingOptions'\r\nexport * from './lib/Shared/Models/RadioButtonOptions'\r\nexport * from './lib/Shared/Models/RadioButtonItem'\r\nexport * from './lib/Shared/Models/FormOptions'\r\nexport * from './lib/Shared/Models/ConfirmationModalOptions'\r\nexport * from './lib/Shared/Models/RepeaterField'\r\nexport * from './lib/Shared/Models/RepeaterOptions'\r\nexport * from './lib/Shared/Models/page-header-options'\r\nexport * from './lib/Shared/Models/filter-options'\r\nexport * from './lib/Shared/Models/control-filter-Item'\r\nexport * from './lib/Shared/Models/bread-crumb'\r\nexport * from './lib/Shared/Directives/template-name.directive'\r\nexport * from './lib/Shared/Pipes/bbsf-date-time.pipe';\r\nexport * from './lib/Shared/Pipes/bbsf-date.pipe';\r\n\r\n\r\n//export Enums\r\nexport * from './lib/Shared/Enums/InputType'\r\nexport * from './lib/Shared/Enums/menu-list-enum'\r\nexport * from './lib/Shared/Enums/ControlLayout'\r\nexport * from './lib/Shared/Enums/ForceDirection'\r\nexport * from './lib/Shared/Enums/PickerType'\r\nexport * from './lib/Shared/Enums/StartView'\r\nexport * from './lib/Shared/Enums/SelectMode'\r\nexport * from './lib/Shared/Enums/Countries'\r\nexport * from './lib/Shared/Enums/FontSize'\r\nexport * from './lib/Shared/Enums/Insert'\r\nexport * from './lib/Shared/Enums/Misc'\r\nexport * from './lib/Shared/Enums/Para'\r\nexport * from './lib/Shared/Enums/Style'\r\nexport * from './lib/Shared/Enums/FileType'\r\nexport * from './lib/Shared/Enums/ImageType'\r\nexport * from './lib/Shared/Enums/LanguageMode'\r\nexport * from './lib/Shared/Enums/CalendarView'\r\nexport * from './lib/Shared/Enums/FilterType'\r\nexport * from './lib/Shared/Enums/IconPosition'\r\nexport * from './lib/Shared/Enums/PagingActionMode'\r\nexport * from './lib/Shared/Enums/StyleConfirmationMode'\r\nexport * from './lib/Shared/Enums/Enums'\r\nexport * from './lib/Shared/Enums/LanguageValidation'\r\nexport * from './lib/Shared/Enums/TagInputView'\r\nexport * from './lib/Shared/Enums/map-enums'\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i1.ErrorMassageValidation","noop","i2.ErrorMassageValidation","i4.ControlUtility","i5","i6.GlobalSettings","i7","i8","i9","timeGridPlugin","i2.ControlUtility","i4","i6","i1.ControlUtility","i2.OnPagingFiltersChangeService","i3.ErrorMassageValidation","i1.OnPagingFiltersChangeService","i5.GlobalSettings","i4.GlobalSettings","environment","i10","i9.BTagsInputComponent","i6.DateInputComponent","i7.TextboxComponent","i8.DropdownListComponent","i9.ToggleslideComponent","i10.TagsInputComponent","i4.OnPagingFiltersChangeService","i8.JwPaginationComponent","i1.RenderComponentService","i3.RepeaterFieldBuilderComponent","i2.RepeaterFieldBuilderComponent","i3.NgTemplateNameDirective"],"mappings":"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"}
|