@bnsights/bbsf-controls 1.0.85 → 1.0.87
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 +6 -1
- package/bnsights-bbsf-controls-1.0.87.tgz +0 -0
- package/bnsights-bbsf-controls.d.ts +1 -1
- package/esm2020/bnsights-bbsf-controls.mjs +5 -0
- package/esm2020/lib/Shared/Directives/template-name.directive.mjs +18 -0
- package/{esm2015/lib/Shared/Enums/CalendarView.js → esm2020/lib/Shared/Enums/CalendarView.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/ControlLayout.js → esm2020/lib/Shared/Enums/ControlLayout.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/Countries.js → esm2020/lib/Shared/Enums/Countries.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/Enums.js → esm2020/lib/Shared/Enums/Enums.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/FileType.js → esm2020/lib/Shared/Enums/FileType.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/FilterType.js → esm2020/lib/Shared/Enums/FilterType.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/FontSize.js → esm2020/lib/Shared/Enums/FontSize.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/ForceDirection.js → esm2020/lib/Shared/Enums/ForceDirection.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/IconPosition.js → esm2020/lib/Shared/Enums/IconPosition.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/ImageType.js → esm2020/lib/Shared/Enums/ImageType.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/InputType.js → esm2020/lib/Shared/Enums/InputType.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/Insert.js → esm2020/lib/Shared/Enums/Insert.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/LanguageMode.js → esm2020/lib/Shared/Enums/LanguageMode.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/LanguageValidation.js → esm2020/lib/Shared/Enums/LanguageValidation.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/Misc.js → esm2020/lib/Shared/Enums/Misc.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/PagingActionMode.js → esm2020/lib/Shared/Enums/PagingActionMode.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/Para.js → esm2020/lib/Shared/Enums/Para.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/PickerType.js → esm2020/lib/Shared/Enums/PickerType.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/SelectMode.js → esm2020/lib/Shared/Enums/SelectMode.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/StartView.js → esm2020/lib/Shared/Enums/StartView.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/Style.js → esm2020/lib/Shared/Enums/Style.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/StyleConfirmationMode.js → esm2020/lib/Shared/Enums/StyleConfirmationMode.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/TagInputView.js → esm2020/lib/Shared/Enums/TagInputView.mjs} +0 -0
- package/{esm2015/lib/Shared/Enums/menu-list-enum.js → esm2020/lib/Shared/Enums/menu-list-enum.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/Attribute.js → esm2020/lib/Shared/Models/Attribute.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/AutocompleteDTO.js → esm2020/lib/Shared/Models/AutocompleteDTO.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/AutocompleteOptions.js → esm2020/lib/Shared/Models/AutocompleteOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/CalendarEventDTO.js → esm2020/lib/Shared/Models/CalendarEventDTO.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/CalendarOptions.js → esm2020/lib/Shared/Models/CalendarOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/CancelDTO.js → esm2020/lib/Shared/Models/CancelDTO.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/CaptchaStyle.js → esm2020/lib/Shared/Models/CaptchaStyle.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/CheckBoxOptions.js → esm2020/lib/Shared/Models/CheckBoxOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/ConfirmationModalOptions.js → esm2020/lib/Shared/Models/ConfirmationModalOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/ControlOptionsBase.js → esm2020/lib/Shared/Models/ControlOptionsBase.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/CustomValidation.js → esm2020/lib/Shared/Models/CustomValidation.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/DropdownListItem.js → esm2020/lib/Shared/Models/DropdownListItem.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/DropdownOptions.js → esm2020/lib/Shared/Models/DropdownOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/EditPersonalImage.js → esm2020/lib/Shared/Models/EditPersonalImage.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/EnglishArabicDTO.js → esm2020/lib/Shared/Models/EnglishArabicDTO.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/FileDTO.js → esm2020/lib/Shared/Models/FileDTO.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/FileUploadModel.js → esm2020/lib/Shared/Models/FileUploadModel.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/FileUploadOptions.js → esm2020/lib/Shared/Models/FileUploadOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/FilterItem.js → esm2020/lib/Shared/Models/FilterItem.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/FormOptions.js → esm2020/lib/Shared/Models/FormOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/HtmlEditorOptions.js → esm2020/lib/Shared/Models/HtmlEditorOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/ImageUploadOptions.js → esm2020/lib/Shared/Models/ImageUploadOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/MapAutoCompleteOptions.js → esm2020/lib/Shared/Models/MapAutoCompleteOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/MapAutocompleteDTO.js → esm2020/lib/Shared/Models/MapAutocompleteDTO.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/MultiLingualHtmlEditorOptions.js → esm2020/lib/Shared/Models/MultiLingualHtmlEditorOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/MultiLingualTextAreaOptions.js → esm2020/lib/Shared/Models/MultiLingualTextAreaOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/MultilingualControlOptionsBase.js → esm2020/lib/Shared/Models/MultilingualControlOptionsBase.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/MultilingualTextBoxOptions.js → esm2020/lib/Shared/Models/MultilingualTextBoxOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/MultipleFileUploadModel.js → esm2020/lib/Shared/Models/MultipleFileUploadModel.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/PagingDTO.js → esm2020/lib/Shared/Models/PagingDTO.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/PagingOptions.js → esm2020/lib/Shared/Models/PagingOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/PagingPayload.js → esm2020/lib/Shared/Models/PagingPayload.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/PhoneOptions.js → esm2020/lib/Shared/Models/PhoneOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/ProfileImageUploadOptions.js → esm2020/lib/Shared/Models/ProfileImageUploadOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/ProfilePictureDTO.js → esm2020/lib/Shared/Models/ProfilePictureDTO.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/RadioButtonItem.js → esm2020/lib/Shared/Models/RadioButtonItem.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/RadioButtonOptions.js → esm2020/lib/Shared/Models/RadioButtonOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/RangeNumber.js → esm2020/lib/Shared/Models/RangeNumber.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/Recaptcha.js → esm2020/lib/Shared/Models/Recaptcha.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/RecaptchaOptions.js → esm2020/lib/Shared/Models/RecaptchaOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/RepeaterField.js → esm2020/lib/Shared/Models/RepeaterField.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/RepeaterOptions.js → esm2020/lib/Shared/Models/RepeaterOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/SaveDTO.js → esm2020/lib/Shared/Models/SaveDTO.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/TagsInputDTO.js → esm2020/lib/Shared/Models/TagsInputDTO.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/TagsInputOptions.js → esm2020/lib/Shared/Models/TagsInputOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/TextAreaOptions.js → esm2020/lib/Shared/Models/TextAreaOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/TextBoxOptions.js → esm2020/lib/Shared/Models/TextBoxOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/ToggleslideOptions.js → esm2020/lib/Shared/Models/ToggleslideOptions.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/UploadPersonalImage.js → esm2020/lib/Shared/Models/UploadPersonalImage.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/bread-crumb.js → esm2020/lib/Shared/Models/bread-crumb.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/control-filter-Item.js → esm2020/lib/Shared/Models/control-filter-Item.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/datePickerOptions.js → esm2020/lib/Shared/Models/datePickerOptions.mjs} +1 -1
- package/{esm2015/lib/Shared/Models/filter-options.js → esm2020/lib/Shared/Models/filter-options.mjs} +0 -0
- package/{esm2015/lib/Shared/Models/page-header-options.js → esm2020/lib/Shared/Models/page-header-options.mjs} +0 -0
- package/esm2020/lib/Shared/Pipes/bbsf-date-time.pipe.mjs +21 -0
- package/esm2020/lib/Shared/Pipes/bbsf-date.pipe.mjs +21 -0
- package/esm2020/lib/Shared/components/app-base-component.mjs +198 -0
- package/esm2020/lib/Shared/components/ng-tag-input.mjs +336 -0
- package/{esm2015/lib/Shared/config/environment.js → esm2020/lib/Shared/config/environment.mjs} +0 -0
- package/esm2020/lib/Shared/default_intl.mjs +29 -0
- package/esm2020/lib/Shared/services/ControlUtility.mjs +162 -0
- package/esm2020/lib/Shared/services/GlobalSettings.service.mjs +30 -0
- package/esm2020/lib/Shared/services/OnPagingFiltersChange.service.mjs +24 -0
- package/esm2020/lib/Shared/services/render-component-service.service.mjs +30 -0
- package/esm2020/lib/Shared/services/validationErrorMassage.service.mjs +137 -0
- package/esm2020/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +245 -0
- package/esm2020/lib/controls/Calendar/Calendar.component.mjs +172 -0
- package/esm2020/lib/controls/CheckBox/CheckBox.component.mjs +114 -0
- package/esm2020/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +136 -0
- package/esm2020/lib/controls/DateTimePicker/DateTimePicker.component.mjs +217 -0
- package/esm2020/lib/controls/DropdownList/DropdownList.component.mjs +179 -0
- package/esm2020/lib/controls/FileUplaod/FileUplaod.component.mjs +453 -0
- package/esm2020/lib/controls/Form/Form.component.mjs +101 -0
- package/esm2020/lib/controls/HtmlEditor/HtmlEditor.component.mjs +223 -0
- package/esm2020/lib/controls/ImageUpload/ImageUpload.component.mjs +350 -0
- package/esm2020/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +325 -0
- package/esm2020/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +427 -0
- package/esm2020/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +427 -0
- package/esm2020/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +426 -0
- package/esm2020/lib/controls/Paging/JwPagination.component.mjs +156 -0
- package/esm2020/lib/controls/Paging/Paging.component.mjs +312 -0
- package/esm2020/lib/controls/Phone/Phone.component.mjs +124 -0
- package/esm2020/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +354 -0
- package/esm2020/lib/controls/RadioButton/RadioButton.component.mjs +106 -0
- package/esm2020/lib/controls/Recaptcha/Recaptcha.component.mjs +132 -0
- package/esm2020/lib/controls/Repeater/repeater/repeater.component.mjs +125 -0
- package/esm2020/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +750 -0
- package/esm2020/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +21 -0
- package/esm2020/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +108 -0
- package/esm2020/lib/controls/TagsInput/TagsInput.component.mjs +268 -0
- package/esm2020/lib/controls/TextArea/TextArea.component.mjs +192 -0
- package/esm2020/lib/controls/TextBox/TextBox.component.mjs +266 -0
- package/esm2020/lib/controls/Toggleslide/toggleslide.component.mjs +84 -0
- package/esm2020/lib/controls/bbsf-controls.module.mjs +401 -0
- package/esm2020/lib/controls/page-header-component/page-header-component.component.mjs +37 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{bnsights-bbsf-controls.js → bnsights-bbsf-controls.mjs} +1872 -1625
- package/fesm2015/bnsights-bbsf-controls.mjs.map +1 -0
- package/fesm2020/bnsights-bbsf-controls.mjs +8938 -0
- package/fesm2020/bnsights-bbsf-controls.mjs.map +1 -0
- package/lib/Shared/Directives/template-name.directive.d.ts +3 -0
- package/lib/Shared/Models/datePickerOptions.d.ts +1 -1
- package/lib/Shared/Pipes/bbsf-date-time.pipe.d.ts +3 -0
- package/lib/Shared/Pipes/bbsf-date.pipe.d.ts +3 -0
- package/lib/Shared/components/app-base-component.d.ts +3 -0
- package/lib/Shared/components/ng-tag-input.d.ts +3 -0
- package/lib/Shared/default_intl.d.ts +3 -0
- package/lib/Shared/services/ControlUtility.d.ts +3 -0
- package/lib/Shared/services/GlobalSettings.service.d.ts +3 -0
- package/lib/Shared/services/OnPagingFiltersChange.service.d.ts +3 -0
- package/lib/Shared/services/render-component-service.service.d.ts +3 -0
- package/lib/Shared/services/validationErrorMassage.service.d.ts +3 -0
- package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +4 -0
- package/lib/controls/Calendar/Calendar.component.d.ts +3 -0
- package/lib/controls/CheckBox/CheckBox.component.d.ts +4 -0
- package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +3 -0
- package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +8 -2
- package/lib/controls/DropdownList/DropdownList.component.d.ts +4 -0
- package/lib/controls/FileUplaod/FileUplaod.component.d.ts +5 -0
- package/lib/controls/Form/Form.component.d.ts +3 -0
- package/lib/controls/HtmlEditor/HtmlEditor.component.d.ts +4 -0
- package/lib/controls/ImageUpload/ImageUpload.component.d.ts +3 -0
- package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +3 -0
- package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +3 -0
- package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +3 -0
- package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +3 -0
- package/lib/controls/Paging/JwPagination.component.d.ts +3 -0
- package/lib/controls/Paging/Paging.component.d.ts +3 -0
- package/lib/controls/Phone/Phone.component.d.ts +7 -1
- package/lib/controls/ProfileImageUploader/ProfileImageUploader.component.d.ts +3 -0
- package/lib/controls/RadioButton/RadioButton.component.d.ts +3 -0
- package/lib/controls/Recaptcha/Recaptcha.component.d.ts +4 -0
- package/lib/controls/Repeater/repeater/repeater.component.d.ts +3 -0
- package/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.d.ts +3 -0
- package/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.d.ts +3 -0
- package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +3 -0
- package/lib/controls/TagsInput/TagsInput.component.d.ts +4 -0
- package/lib/controls/TextArea/TextArea.component.d.ts +4 -0
- package/lib/controls/TextBox/TextBox.component.d.ts +4 -0
- package/lib/controls/Toggleslide/toggleslide.component.d.ts +4 -0
- package/lib/controls/bbsf-controls.module.d.ts +74 -0
- package/lib/controls/page-header-component/page-header-component.component.d.ts +3 -0
- package/package.json +20 -8
- package/bnsights-bbsf-controls-1.0.85.tgz +0 -0
- package/bnsights-bbsf-controls.metadata.json +0 -1
- package/bundles/bnsights-bbsf-controls.umd.js +0 -9326
- package/bundles/bnsights-bbsf-controls.umd.js.map +0 -1
- package/esm2015/bnsights-bbsf-controls.js +0 -6
- package/esm2015/lib/Shared/Directives/template-name.directive.js +0 -18
- package/esm2015/lib/Shared/Pipes/bbsf-date-time.pipe.js +0 -20
- package/esm2015/lib/Shared/Pipes/bbsf-date.pipe.js +0 -20
- package/esm2015/lib/Shared/components/app-base-component.js +0 -198
- package/esm2015/lib/Shared/components/ng-tag-input.js +0 -323
- package/esm2015/lib/Shared/default_intl.js +0 -29
- package/esm2015/lib/Shared/services/ControlUtility.js +0 -164
- package/esm2015/lib/Shared/services/GlobalSettings.service.js +0 -28
- package/esm2015/lib/Shared/services/OnPagingFiltersChange.service.js +0 -22
- package/esm2015/lib/Shared/services/render-component-service.service.js +0 -30
- package/esm2015/lib/Shared/services/validationErrorMassage.service.js +0 -137
- package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +0 -248
- package/esm2015/lib/controls/Calendar/Calendar.component.js +0 -176
- package/esm2015/lib/controls/CheckBox/CheckBox.component.js +0 -114
- package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +0 -139
- package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +0 -215
- package/esm2015/lib/controls/DropdownList/DropdownList.component.js +0 -178
- package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +0 -347
- package/esm2015/lib/controls/Form/Form.component.js +0 -106
- package/esm2015/lib/controls/HtmlEditor/HtmlEditor.component.js +0 -222
- package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +0 -347
- package/esm2015/lib/controls/MapAutoComplete/MapAutoComplete.component.js +0 -325
- package/esm2015/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.js +0 -429
- package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +0 -430
- package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +0 -429
- package/esm2015/lib/controls/Paging/JwPagination.component.js +0 -129
- package/esm2015/lib/controls/Paging/Paging.component.js +0 -312
- package/esm2015/lib/controls/Phone/Phone.component.js +0 -119
- package/esm2015/lib/controls/ProfileImageUploader/ProfileImageUploader.component.js +0 -349
- package/esm2015/lib/controls/RadioButton/RadioButton.component.js +0 -108
- package/esm2015/lib/controls/Recaptcha/Recaptcha.component.js +0 -131
- package/esm2015/lib/controls/Repeater/repeater/repeater.component.js +0 -117
- package/esm2015/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.js +0 -748
- package/esm2015/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.js +0 -19
- package/esm2015/lib/controls/Repeater/repeater-table/repeater-table.component.js +0 -108
- package/esm2015/lib/controls/TagsInput/TagsInput.component.js +0 -268
- package/esm2015/lib/controls/TextArea/TextArea.component.js +0 -191
- package/esm2015/lib/controls/TextBox/TextBox.component.js +0 -262
- package/esm2015/lib/controls/Toggleslide/toggleslide.component.js +0 -83
- package/esm2015/lib/controls/bbsf-controls.module.js +0 -243
- package/esm2015/lib/controls/page-header-component/page-header-component.component.js +0 -32
- package/fesm2015/bnsights-bbsf-controls.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bnsights-bbsf-controls.mjs","sources":["../../../projects/bbsf-controls/src/lib/Shared/services/validationErrorMassage.service.ts","../../../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/Shared/services/OnPagingFiltersChange.service.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/InputType.ts","../../../projects/bbsf-controls/src/lib/Shared/services/ControlUtility.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/Models/FileUploadModel.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultipleFileUploadModel.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/FileUplaod/FileUplaod.component.ts","../../../projects/bbsf-controls/src/lib/controls/FileUplaod/FileUplaod.component.html","../../../projects/bbsf-controls/src/lib/Shared/Models/EnglishArabicDTO.ts","../../../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/controls/TextArea/TextArea.component.ts","../../../projects/bbsf-controls/src/lib/controls/TextArea/TextArea.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/CheckBox/CheckBox.component.ts","../../../projects/bbsf-controls/src/lib/controls/CheckBox/CheckBox.component.html","../../../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/controls/Phone/Phone.component.ts","../../../projects/bbsf-controls/src/lib/controls/Phone/Phone.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/HtmlEditor/HtmlEditor.component.ts","../../../projects/bbsf-controls/src/lib/controls/HtmlEditor/HtmlEditor.component.html","../../../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/ImageUpload/ImageUpload.component.ts","../../../projects/bbsf-controls/src/lib/controls/ImageUpload/ImageUpload.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/Shared/Models/AutocompleteDTO.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/TagInputView.ts","../../../projects/bbsf-controls/src/lib/Shared/components/ng-tag-input.ts","../../../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/Shared/Models/PagingDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/FilterType.ts","../../../projects/bbsf-controls/src/lib/controls/Paging/JwPagination.component.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/RadioButton/RadioButton.component.ts","../../../projects/bbsf-controls/src/lib/controls/RadioButton/RadioButton.component.html","../../../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/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/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/Shared/Enums/PagingActionMode.ts","../../../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/ConfirmationModal/ConfirmationModal.component.ts","../../../projects/bbsf-controls/src/lib/controls/ConfirmationModal/ConfirmationModal.component.html","../../../projects/bbsf-controls/src/lib/Shared/Directives/template-name.directive.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Enums.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/ForceDirection.ts","../../../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/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/Shared/services/render-component-service.service.ts","../../../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/repeater.component.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater/repeater.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/shared/Pipes/bbsf-date-time.pipe.ts","../../../projects/bbsf-controls/src/lib/shared/Pipes/bbsf-date.pipe.ts","../../../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/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/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","../esm2020/lib/Shared/Models/ReCaptchaOptions.mjs","../../../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/Enums/StyleConfirmationMode.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-bbsf-controls.ts"],"sourcesContent":["import { Injectable, Optional } from '@angular/core';\r\nimport { Http, Response, Headers, RequestOptions } from '@angular/http';\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\n\r\nexport class ErrorMassageValidation {\r\n\r\n static controlContainerstatic = null;\r\n\r\n // tslint:disable-next-line: deprecation\r\n constructor(private http: Http, @Optional() private controlContainer: ControlContainer, 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\r\n\r\n static showerror(FormControlName: string) {\r\n ;\r\n let form = ErrorMassageValidation.controlContainerstatic.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 ;\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 \"pattern\":\r\n result = this.utilityService.getResourceValue(\"NumberValidationKey\");\r\n break;\r\n case \"maxlength\":\r\n result = this.utilityService.getResourceValue(\"MaxLenghtValidationKey\") + \" \" + error.value.requiredLength;\r\n break;\r\n case \"minlength\":\r\n result = this.utilityService.getResourceValue(\"MinLenghtValidationKey\") + \" \" + error.value.requiredLength;\r\n break;\r\n case \"min\":\r\n result = this.utilityService.getResourceValue(\"MinValueValidationKey\") + \" \" + error.value.min;\r\n break;\r\n case \"max\":\r\n result = this.utilityService.getResourceValue(\"MaxValueValidationKey\") + \" \" + error.value.max;\r\n break;\r\n case \"IntegerNumberValidationKey\":\r\n result = this.utilityService.getResourceValue(\"IntegerNumberValidationKey\");\r\n break;\r\n case \"PositiveNumberValidationKey\":\r\n result = this.utilityService.getResourceValue(\"PositiveNumberValidationKey\");\r\n break;\r\n case \"validatePhoneNumber\":\r\n result = this.utilityService.getResourceValue(\"PhoneNumberValidationKey\");\r\n break;\r\n case \"mask\":\r\n result = this.utilityService.getResourceValue(\"MaskValidationKey\") + \" \" + error.value.requiredMask;\r\n break;\r\n case \"PasswordComplexityHasNumber\":\r\n result = this.utilityService.getResourceValue(\"PasswordComplexityHasNumber\");\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(\"ArabicIsRequiredAndOnly50CharactersEnglish\");\r\n break;\r\n case \"PasswordComplexityHasCapitalLetter\":\r\n result = this.utilityService.getResourceValue(\"PasswordComplexityHasCapitalLetter\");\r\n break;\r\n case \"PasswordComplexityHasSmallLetter\":\r\n result = this.utilityService.getResourceValue(\"PasswordComplexityHasSmallLetter\");\r\n break;\r\n case \"PasswordComplexityHasSpecialLetter\":\r\n result = this.utilityService.getResourceValue(\"PasswordComplexityHasSpecialLetter\");\r\n break;\r\n case \"MaxWordCountValidationKey\":\r\n result = this.utilityService.getResourceValue(\"MaxWordCountValidationKey\") + \" \" + error.value;\r\n break;\r\n case \"NewSelectionValidationKey\":\r\n result = this.utilityService.getResourceValue(\"NewSelectionValidationKey\");\r\n break;\r\n case \"MaxFileCountValidationKey\":\r\n result = this.utilityService.getResourceValue(\"MaxFileCountValidationKey\") + \" \" + error.value;\r\n break;\r\n case \"MinFileCountValidationKey\":\r\n result = this.utilityService.getResourceValue(\"MinFileCountValidationKey\") + \" \" + error.value;\r\n break;\r\n case \"MaxSizeForAllFilesInMB\":\r\n result = this.utilityService.getResourceValue(\"MaxSizeForAllFilesInMB\") + \" \" + error.value;\r\n break;\r\n case \"FileMaxSizeInMB\":\r\n result = this.utilityService.getResourceValue(\"FileMaxSizeInMB\") + \" \" + error.value;\r\n break;\r\n case \"ToolTipTypeError\":\r\n result = this.utilityService.getResourceValue(\"ToolTipTypeError\") + \" \" + 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","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 'ng-pick-datetime';\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 { 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();\r\n }\r\n\r\n GetValue(): Observable<any> {\r\n return this.subject.asObservable();\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 }","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\r\n FormControl.markAsTouched();\r\n }\r\n\r\n\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 } from 'ng-pick-datetime';\r\nimport { OwlDateTimeIntl } from 'ng-pick-datetime';\r\nimport * as dateTimeClass from 'ng-pick-datetime/date-time/date-time.class';\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 this.textDir=this.options.ForceDirection==2?'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\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\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\ncheckIfStartDateBeForEndDate = () => {\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}\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 {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n </label>\r\n <!--Asterisk-->\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger\"\r\n aria-required=\"true\">*</span>\r\n <div class=\"bbsf-input-container\">\r\n <!--input-->\r\n <input autocomplete=\"off\" (dateTimeChange)=\"onDateSelect($event)\"\r\n [dir]=\"textDir\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}} \"\r\n [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" [owlDateTime]=\"dt1\" [owlDateTimeTrigger]=\"dt1\"\r\n [class.is-invalid]=\"DatePickerFormControl.invalid && DatePickerFormControl.touched\"\r\n [min]=\"options.StartDate\" [max]=\"options.EndDate\" [hour12Timer]=\"options.Hour12Timer\" [selectMode]=\"getSelectMode(options.SelectMode)\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" #Dateinput>\r\n\r\n <owl-date-time [pickerType]=\"getPickerType(options.PickerType)\"\r\n [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 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\" fill=\"#d5d5d5\"></path>\r\n <path id=\"Path_6740\" data-name=\"Path 6740\" 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\" fill=\"#595959\"></path>\r\n </svg>\r\n </span>\r\n </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 <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(DatePickerFormControl.invalid && DatePickerFormControl.touched)\">\r\n {{getErrorValidation(DatePickerFormControl.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 { 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","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 {\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 } 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 });\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 = new FileLikeObject({\r\n name: element.NameWithExtension,\r\n type: element.MimeType,\r\n rawFile: 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 = new FileLikeObject({\r\n name: element.NameWithExtension,\r\n type: element.MimeType,\r\n rawFile: 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')} (${\r\n this.ToolTipTypeArray\r\n }) `;\r\n }\r\n if (this.options.FileMaxSizeInMB > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n `<br /> Max File Size ${this.options.FileMaxSizeInMB} MB`;\r\n }\r\n\r\n if (this.options.MinNoOfFiles > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n `<br /> Min File Number is ${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 {\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 if (\r\n this.options.IsMultipleFile &&\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 const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n MaxFileCountValidationKey: this.options.MaxNoOfFiles,\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\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 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.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 this.fileUploadFormControl.markAsTouched();\r\n this.fileUploadFormControl.invalid;\r\n }\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)\" 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))\"\r\n [ngClass]=\"{'another-file-over-class': hasAnotherDropZoneOver}\" (onFileDrop)=\"onFileChange()\"\r\n (fileOver)=\"fileOverAnother($event)\" [uploader]=\"uploader\" [accept]=\"AcceptedType\"\r\n (change)=\"onFileChange()\" id=\"{{options.Name}}\" multiple=\"{{options.IsMultipleFile?'multiple':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" type=\"file\" formControlName=\"{{options.Name}}\" #fileInput\r\n [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\" 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\" 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\" *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())\" (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\" 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\" 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\" *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\"\r\n multiple=\"{{options.IsMultipleFile?'multiple':''}}\" name=\"file\" type=\"file\" value=\"\"\r\n autocomplete=\"off\" (change)=\"onFileChange()\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\"\r\n id=\"{{options.Name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" #fileInput\r\n [class.is-invalid]=\"fileUploadFormControl.invalid && fileUploadFormControl.touched\">\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 <button type=\"button\" class=\"btn btn-download-file btn-sm\" href=\"{{ item?._file?.webkitRelativePath}}\" 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 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\" 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 </button>\r\n <button class=\"btn btn-download-file btn-sm btn-danger\"\r\n (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\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\"\r\n *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>\r\n\r\n","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, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { MultiLingualTextBoxOptions } from '../../Shared/Models/MultilingualTextBoxOptions';\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\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\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\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 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 var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.englishMaxLimitWarningMsg = eval('`' + resource + '`');\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\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.arabicMaxLimitWarningMsg = eval('`' + resource + '`');\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\" [formGroup]=\"MultiLanguagegroup\">\r\n <div class=\"row\">\r\n <!--English textbox-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *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}}\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)&&IsShowAsteriskInEnglish)\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div class=\"svg svg-icon-grey bbsf-icon\" [ngClass]=\"(options.IconPositionEN==1)?'left-icon':'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\" dir=\"ltr\"\r\n (focus)=\"onEnglishFocus(true)\" (focusout)=\"onEnglishFocus(false)\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"English\"\r\n [hidden]=\"options.IsHideEnglishFields\" maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"EnglishFormControl.invalid && EnglishFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (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\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinputEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\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&&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=\"(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\r\n <!--Arabic textbox-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *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}}\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div *ngIf=\"options.Icon!=null\" class=\"svg svg-icon-grey bbsf-icon\" [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\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicFormControl.invalid && ArabicFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (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\" *ngIf=\"options.EnableCopyToClipboard\"(click)=\"copyInputMessage(userinputArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\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&&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=\"(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\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 this.textDir=this.options.ForceDirection==2?'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\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.maxLimitWarningMsg = eval('`' + resource + '`');\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)\" class=\"text-danger\">*</span>\r\n </label>\r\n <div 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 </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 { 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 }\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 var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.englishMaxLimitWarningMsg = eval('`' + resource + '`');\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 var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.arabicMaxLimitWarningMsg = eval('`' + resource + '`');\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\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" [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 </div>\r\n <div class=\"subtext-container\">\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 <!--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\" class=\"text-danger\">*</span>\r\n </label>\r\n <div 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>\r\n <div class=\"subtext-container\">\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","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 this.textDir=this.options.ForceDirection==2?'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 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)\" class=\"text-danger\">*</span>\r\n </label>\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=\"(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","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\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 ngOnInit() {\r\n this.textDir=this.options.ForceDirection==2?'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\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)\" class=\"text-danger\"\r\n 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\" [dir]=\"textDir\"\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}}\"\r\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\" formControlName=\"{{options.Name}}\"\r\n [(ngModel)]=\"options.SelectedItems\" (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 : ''}}\" id={{item.id}}>{{item.itemName}}</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\" [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"item$.selected\" />\r\n <div class=\"label-subtext-container\">\r\n <label class=\"bbsf-label\" id={{item.id}}>{{item.itemName}}</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\" class=\"form-control\"\r\n [dir]=\"textDir\" (change)=\"onItemSelect()\" [(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.id}}\" [ngValue]=\"item.id\">\r\n {{item.itemName}}\r\n </option>\r\n </select>\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=\"(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) \">{{resetError()}}</div>\r\n </div>\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 { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { PhoneOptions } from '../../Shared/Models/PhoneOptions';\r\nimport { SearchCountryField,CountryISO } from 'ngx-intl-tel-input';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { Country } from '../../Shared/Enums/Countries';\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 this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\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((value) => {\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","\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 {{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-->\r\n <ngx-intl-tel-input [dir]=\"textDir\" [cssClass]=\"options.ExtraClasses\" [preferredCountries]=\"options.PreferredCountries\"\r\n [enableAutoCountrySelect]=\"true\" [enablePlaceholder]=\"options.EnablePlaceholder\" [searchCountryFlag]=\"options.AllowSearch\"\r\n [searchCountryField]=\"[SearchCountryField.Iso2, SearchCountryField.Name]\"\r\n [selectFirstCountry]=\"options.SelectFirstCountry\" [selectedCountryISO]=\"getSelectedCountry(options.SelectedCountryISO)\"\r\n [separateDialCode]=\"separateDialCode\"\r\n maxlength=\"15\" [(ngModel)]=\"options.Value\"\r\n [phoneValidation]=\"options.PhoneValidation\" [id]=\"options.Name\"\r\n name=\"{{options.Name}}\" formControlName=\"{{options.Name}}\"\r\n (change)=\"onValueChanged()\"\r\n [class.is-invalid]=\"PhoneFormControl.invalid && PhoneFormControl.touched\" aria-invalid=\"true\"\r\n class=\"form-control\">\r\n </ngx-intl-tel-input>\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\" *ngIf=\"(PhoneFormControl.invalid && 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>\r\n","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 private 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 this.textDir=this.options.ForceDirection==2?'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.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 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 </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, 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 this.textDir=this.options.ForceDirection==2?'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)\" class=\"text-danger\">*</span>\r\n </label>\r\n <div 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 </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 { 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\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\nthis.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\nuploadUrl: 'v1/image',\r\nuploadWithCredentials: false,\r\n sanitize: false,\r\ntoolbarPosition: 'top',\r\ntoolbarHiddenButtons: [\r\n\r\n]\r\n};\r\n\r\nthis.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 ]));\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 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 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 {\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","\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)\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\">\r\n <!--input-->\r\n <angular-editor class=\"{{options.ExtraClasses_EN}}\" (change)=\"onTextChange('en')\" [class.is-invalid]=\"EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched\"\r\n formControlName=\"English\" [config]=\"editorEnglishConfig\"></angular-editor>\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!='') ||(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\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\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\">\r\n <!--input-->\r\n <angular-editor dir=\"rtl\" class=\"{{options.ExtraClasses_AR}} \" (change)=\"onTextChange('ar')\" [class.is-invalid]=\"ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched\"\r\n formControlName=\"Arabic\" [config]=\"editorArabicConfig\"></angular-editor>\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!='')||(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\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 } 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({\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({\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 + 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 const TypeToolTipe = element.split('/')[1];\r\n this.ToolTipTypeArray.push(TypeToolTipe);\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')} ${\r\n 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)\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Allow dropZone-->\r\n <div *ngIf=\"options.AllowDropZone\" class=\"bbsf-input-container {{options.ExtraClasses}}\"\r\n ngx-dropzone\r\n [disabled]=\"options.IsDisabled\"\r\n [accept]=\"AcceptedType\"\r\n [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\"\r\n ngDefaultControl\r\n formControlName=\"{{options.Name}}\"\r\n [maxFileSize]=\"maxFileSize\"\r\n 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\" 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\" 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\" 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)\" ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n <!--Not allowed dropZone-->\r\n <div *ngIf=\"!options.AllowDropZone\">\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}}\"\r\n ngx-dropzone\r\n [disabled]=\"options.IsDisabled\"\r\n [accept]=\"AcceptedType\"\r\n [multiple]=\"options.IsMultiple\"\r\n (change)=\"onFileChange($event)\"\r\n ngDefaultControl\r\n formControlName=\"{{options.Name}}\"\r\n [maxFileSize]=\"maxFileSize\"\r\n id=\"{{options.Name}}\"\r\n [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)\" 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 </div>\r\n <div class=\"subtext-container\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\"\r\n *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</div>\r\n\r\n","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 { Component, OnInit, Input, Optional, ViewChild, ElementRef, 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 { FileUploader, FileLikeObject } 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 { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\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\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\r\n @ViewChild('angularCropper', {static:false}) 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(private zone: NgZone, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public ProfileImageUploaderControlHost: FormGroupDirective, public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n ProfileImageUploaderComponent.controlContainerstatic = this.controlContainer;\r\n this.uploader = new FileUploader({\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 (this.options.DefaultImageSrc != null && this.options.DefaultImageSrc != \"\")\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 }\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 = new FileLikeObject({\r\n name: element.FileName,\r\n })\r\n this.uploader.addToQueue([this.FileLikeObject 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(this.options.LabelKey);\r\n\r\n if (this.options.ImageUploadAcceptsTypes != null && this.options.ImageUploadAcceptsTypes.length > 0) {\r\n for (let index = 0; index < this.options.ImageUploadAcceptsTypes.length; index++) {\r\n const Type = this.options.ImageUploadAcceptsTypes[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 const TypeToolTipe = element.split('/')[1];\r\n this.ToolTipTypeArray.push(TypeToolTipe);\r\n }\r\n this.ValidationMessage = this.ValidationMessage + ` Allowed extenstions (${this.ToolTipTypeArray}) `\r\n\r\n }\r\n if (this.options.FileMaxSizeInMB > 0) {\r\n this.ValidationMessage = this.ValidationMessage + ` <br />Max File Size ${this.options.FileMaxSizeInMB} MB`\r\n }\r\n if (this.options.ImageUploadAcceptsTypes != null && this.options.ImageUploadAcceptsTypes.length > 0) {\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\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(this.validationRulesasync);\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(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n showImageUploader(element:HTMLElement)\r\n {\r\n let input = element.parentElement.parentElement.querySelector('input[type=file]') 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(ErrorList, this.group, this.options);\r\n }\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({ FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M' });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n if (this.options.ImageUploadAcceptsTypes != null && this.options.ImageUploadAcceptsTypes.length > 0 && !(this.AcceptedTypeArray.includes(fileType.toUpperCase()) || this.AcceptedTypeArray.includes(fileType.toLowerCase()))) {\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({ FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M' });\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 (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 }\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 }\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 = 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 = 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 = 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\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\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(this.ProfileImageUploadFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.ProfileImageUploadFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.ProfileImageUploadFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.ProfileImageUploadFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ProfileImageUploadFormControl)\r\n }\r\n\r\n}\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)\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Allow dropZone-->\r\n <div *ngIf=\"options.AllowDropZone\" class=\"bbsf-input-container {{options.ExtraClasses}}\"\r\n ngx-dropzone\r\n [disabled]=\"options.IsDisabled\"\r\n [accept]=\"AcceptedType\"\r\n (change)=\"onFileChange($event)\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\"\r\n ngDefaultControl formControlName=\"{{options.Name}}\"\r\n 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\" 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\" 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)\" ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n <!--Not allowed dropZone-->\r\n <div *ngIf=\"!options.AllowDropZone\" 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}}\"\r\n ngx-dropzone\r\n [disabled]=\"options.IsDisabled\"\r\n [accept]=\"AcceptedType\"\r\n (change)=\"onFileChange($event)\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n ngDefaultControl formControlName=\"{{options.Name}}\"\r\n id=\"{{options.Name}}\"\r\n [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)\" 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 </div>\r\n <div class=\"subtext-container\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\"\r\n *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>\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","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 ngOnInit() {\r\n this.textDir=this.options.ForceDirection==2?'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\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 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 }\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 } \r\n else {\r\n\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 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 }\r\n\r\n async onChangeSearch(search: string) {\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 {\r\n this.dataList=result\r\n }\r\n })\r\n }\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)\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Input container-->\r\n <div class=\"bbsf-input-container\">\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]=\"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 </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]=\"itemTemplate\"\r\n [dir]=\"textDir\"\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 </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=\"(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\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, OnChanges, SimpleChanges, DoCheck, OnInit } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { TypeaheadMatch } from 'ngx-bootstrap/typeahead/public_api';\r\nimport { TagInputView } from '../Enums/TagInputView';\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 { 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\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 this.textDir=this.options.ForceDirection==2?'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 = 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}\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)\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--input-->\r\n <div class=\"bbsf-input-container\">\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 </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=\"(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","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, 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}","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 { RequestOptions, ResponseContentType, Headers } from '@angular/http';\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 && this.options.Filters != []) {\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 && this.options.Filters != []) {\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, 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\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)\" class=\"text-danger\">*</span>\r\n </label>\r\n <div 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 </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=\"(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 enum LanguageValidation {\r\n English = 1,\r\n Arabic = 2\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 { TextBoxOptions } from '../../Shared/Models/TextBoxOptions';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { ControlValidationService, UtilityService } 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\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 TextControlHost: FormGroupDirective, public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n TextboxComponent.controlContainerstatic = this.controlContainer;\r\n\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: TextBoxOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n TextBoxFormControl: AbstractControl;\r\n MaskPattern: string = '';\r\n WordCount: number = 0;\r\n WordCountArray: number = 0;\r\n EmailValidationKey: 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\r\n\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\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(this.options.LabelKey);\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(Validators.compose([\r\n this.controlUtility.patternValidator(/^(([^<>()[\\]\\\\.,;:\\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,}))$/, { EmailValidationKey: this.EmailValidationKey }),\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\r\n break;\r\n\r\n case InputType.Number:\r\n this.validationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[0-9]*$/, { IntegerNumberValidationKey: \"\" }),\r\n\r\n ]));\r\n this.validationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[+]?([.]\\d+|\\d+[.]?\\d*)$/, { PositiveNumberValidationKey: \"\" }),\r\n\r\n ]));\r\n if (this.options.NumberRange != null) {\r\n this.validationRules.push(Validators.min(this.options.NumberRange.From));\r\n this.validationRules.push(Validators.max(this.options.NumberRange.To));\r\n }\r\n break;\r\n case InputType.Password:\r\n if (!this.options.RemoveDefaultPasswordValidation) {\r\n this.validationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/\\d/, { PasswordComplexityHasNumber: this.PasswordComplexityHasNumber }),\r\n this.controlUtility.patternValidator(/[A-Z]/, { PasswordComplexityHasCapitalLetter: this.PasswordComplexityHasCapitalLetter }),\r\n this.controlUtility.patternValidator(/[a-z]/, { PasswordComplexityHasSmallLetter: this.PasswordComplexityHasSmallLetter }),\r\n this.controlUtility.patternValidator(/[!@#$%^&*(),.?\":{}|<>]/, { PasswordComplexityHasSpecialLetter: this.PasswordComplexityHasSpecialLetter }),\r\n Validators.minLength(8),\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(Validators.compose([\r\n this.controlUtility.patternValidator(/^[^A-Za-z]*$/, { ArabicLetterOnly: this.ArabicLetterOnly }),\r\n ]));\r\n\r\n }\r\n else if (this.options.LanguageValidation == LanguageValidation.English) {\r\n this.validationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- ]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),\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 }\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 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 }\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 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.TextBoxFormControl.value);\r\n this.TextBoxFormControl.patchValue(originalValue)\r\n if (this.options.PatchFunction && this.options.PatchPath && this.TextBoxFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue,this.options.PatchFunction ,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.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 }\r\n\r\n onTextChange() {\r\n\r\n if(this.options.Type== InputType.Number)\r\n if(!this.TextBoxFormControl.value)\r\n {\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 }\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({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.TextBoxFormControl.markAsTouched();\r\n this.TextBoxFormControl.invalid;\r\n }\r\n else {\r\n this.WordCount = this.WordCountArray;\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.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\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\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.maxLimitWarningMsg = eval('`' + resource + '`');\r\n\r\n }\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) //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 //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.TextBoxFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.TextBoxFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.TextBoxFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.TextBoxFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.TextBoxFormControl)\r\n }\r\n}\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)\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--MaskPattern-->\r\n <div *ngIf=\"MaskPattern!=null&&MaskPattern!=''\" class=\"bbsf-input-container\" [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}}\"\r\n [mask]=\"MaskPattern\" placeHolderCharacter=\" \" [showMaskTyped]=\"true\" [validation]=\"true\"\r\n [dir]=\"textDir\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n type=\"{{getInputType(options.Type)}}\" [(ngModel)]=\"options.Value\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\" [readonly]=\"options.IsReadonly\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinput>\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==''\" class=\"bbsf-input-container\" [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}} \"\r\n [dir]=\"textDir\"\r\n (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\" type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\" [(ngModel)]=\"options.Value\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\" [readonly]=\"options.IsReadonly\"\r\n #userinput>\r\n <!--CopyToClipboard-->\r\n <span class=\"copy-clipboard\" ngbTooltip=\"Copied!\" triggers=\"click:blur\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </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}} 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=\"(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>\r\n","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}","declare const google: any\r\nimport { Component, OnInit, Input, Optional, NgZone, ElementRef, ViewChild, EventEmitter, Output } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { MapAutoCompleteOptions } from '../../Shared/Models/MapAutoCompleteOptions';\r\nimport { MapAutocompleteDTO } from '../../Shared/Models/MapAutocompleteDTO';\r\nimport { MatGoogleMapsAutocompleteComponent } from '@angular-material-extensions/google-maps-autocomplete';\r\nimport { MapsAPILoader, LazyMapsAPILoader } from '@agm/core';\r\nimport { BBSFTranslateService, ControlValidationService, environment, 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-MapAutoComplete',\r\n templateUrl: './MapAutoComplete.component.html'\r\n})\r\n\r\nexport class MapAutoCompleteComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n constructor(private mapsAPILoader: MapsAPILoader,\r\n 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) {\r\n MapAutoCompleteComponent.controlContainerstatic = this.controlContainer;\r\n this.CurrentLanguage = translate.currentLang != undefined ? translate.currentLang : translate.defaultLang\r\n\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MapAutoCompleteOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n MapAutoCompleteFormControl: AbstractControl;\r\n MapAutoCompleteModel: MapAutocompleteDTO = new MapAutocompleteDTO();\r\n CurrentLanguage: string = \"\";\r\n onAutocompleteSelected = new EventEmitter();\r\n onGermanAddressMapped = new EventEmitter();\r\n onLocationSelected = new EventEmitter();\r\n @ViewChild(\"search\", { static: false })\r\n public searchElementRef: ElementRef;\r\n MatGoogleMapsAutocompleteComponent: MatGoogleMapsAutocompleteComponent\r\n LazyMapsAPILoader: LazyMapsAPILoader\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n place: any;\r\n ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.MapAutoCompleteModel = new MapAutocompleteDTO();\r\n this.translate.onLangChange.subscribe((event) => {\r\n this.CurrentLanguage = event.lang;\r\n ;\r\n if (this.CurrentLanguage == 'ar')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"ar-EG\";\r\n if (this.CurrentLanguage == 'en')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"en-US\";\r\n this.mapsAPILoader[\"_scriptLoadingPromise\"] = null\r\n this.mapsAPILoader[\"_config\"][\"apiKey\"] = `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`;\r\n var ScriptTag = document.getElementById(this.mapsAPILoader[\"_SCRIPT_ID\"]);\r\n if (ScriptTag)\r\n ScriptTag.remove();\r\n var elements = document.getElementsByClassName(\"pac-container\");\r\n while (elements.length > 0)\r\n elements[0].remove();\r\n\r\n let window = this.mapsAPILoader[\"_windowRef\"].getNativeWindow();\r\n window.google = null\r\n\r\n\r\n\r\n this.LazyMapsAPILoader = new LazyMapsAPILoader({\r\n // &language=${UtilityService.CurrentLanguage}\r\n apiKey: `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`,\r\n libraries: ['places'],\r\n }, this.mapsAPILoader[\"_windowRef\"], this.mapsAPILoader[\"_documentRef\"], this.mapsAPILoader[\"_config\"][\"localeId\"]);\r\n this.LazyMapsAPILoader.load().then(() => {\r\n let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {\r\n types: [\"address\"]\r\n\r\n });\r\n autocomplete.addListener('place_changed', (/**\r\n * @return {?}\r\n */\r\n () => {\r\n\r\n this.ngZone.run((/**\r\n * @return {?}\r\n */\r\n () => {\r\n // get the place result\r\n /** @type {?} */\r\n const place = autocomplete.getPlace();\r\n /** @type {?} */\r\n const germanAddress = {\r\n gmID: place.id,\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: { latitude: -1, longitude: -1 },\r\n };\r\n\r\n if (place.geometry && place.geometry.location) {\r\n germanAddress.geoLocation.latitude = place.geometry.location.lat();\r\n germanAddress.geoLocation.longitude = place.geometry.location.lng();\r\n }\r\n place.address_components.forEach((/**\r\n * @param {?} value\r\n * @return {?}\r\n */\r\n 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.onGermanAddressMapped.emit(germanAddress);\r\n this.GermanAddressMapped(germanAddress)\r\n if (!place.place_id || place.geometry === undefined || place.geometry === null) {\r\n // place result is not valid\r\n return;\r\n }\r\n else {\r\n // show dialog to select a address from the input\r\n // emit failed event\r\n }\r\n // this.address = place.formatted_address;\r\n this.onAutocompleteSelected.emit(place);\r\n this.AutocompleteSelected(place)\r\n\r\n this.onLocationSelected.emit({\r\n latitude: place.geometry.location.lat(),\r\n longitude: place.geometry.location.lng()\r\n });\r\n }));\r\n }));\r\n });\r\n\r\n });\r\n\r\n if (this.CurrentLanguage == 'ar')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"ar-EG\";\r\n if (this.CurrentLanguage == 'en')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"en-US\";\r\n this.mapsAPILoader[\"_scriptLoadingPromise\"] = null\r\n this.mapsAPILoader[\"_config\"][\"apiKey\"] = `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`;\r\n var leftSection = document.getElementById(this.mapsAPILoader[\"_SCRIPT_ID\"]);\r\n if (leftSection)\r\n leftSection.remove();\r\n this.LazyMapsAPILoader = new LazyMapsAPILoader({\r\n apiKey: `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`,\r\n libraries: ['places'],\r\n }, this.mapsAPILoader[\"_windowRef\"], this.mapsAPILoader[\"_documentRef\"], this.mapsAPILoader[\"_config\"][\"localeId\"]);\r\n this.LazyMapsAPILoader.load();\r\n\r\n this.mapsAPILoader.load().then(() => {\r\n let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {\r\n types: [\"address\"]\r\n\r\n });\r\n\r\n })\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.MapAutoCompleteFormControl = 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 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\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: { latitude: -1, longitude: -1 },\r\n };\r\n\r\n germanAddress.geoLocation.latitude = this.options.Value.Latitude;\r\n germanAddress.geoLocation.longitude = this.options.Value.Longitude;\r\n this.onGermanAddressMapped.emit(germanAddress);\r\n this.GermanAddressMapped(germanAddress)\r\n this.place = {\r\n\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 this.onAutocompleteSelected.emit(this.place);\r\n this.AutocompleteSelected(this.place)\r\n\r\n this.onLocationSelected.emit({\r\n latitude: this.options.Value.Latitude,\r\n longitude: this.options.Value.Longitude\r\n });\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 this.MapAutoCompleteControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\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 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) {\r\n\r\n\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 LocationSelected(location) {\r\n\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.latitude;\r\n this.MapAutoCompleteModel.Longitude = result.geoLocation.longitude;\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 //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.MapAutoCompleteFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.MapAutoCompleteFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.MapAutoCompleteFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.MapAutoCompleteFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.MapAutoCompleteFormControl)\r\n }\r\n}\r\n\r\n\r\n","\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)\" 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 [value]=\"MapAutoCompleteModel.Text\"\r\n [address]=\"MapAutoCompleteModel.Text\"\r\n value=\"{{MapAutoCompleteModel.Text}}\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\"\r\n [class.is-invalid]=\"MapAutoCompleteFormControl.invalid && MapAutoCompleteFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" (keyup)=\"GermanAddressMapped($event)\"\r\n matGoogleMapsAutocomplete #search (onAutocompleteSelected)=\"AutocompleteSelected($event)\"\r\n (onLocationSelected)=\"LocationSelected($event)\" (onGermanAddressMapped)=\"GermanAddressMapped($event)\" />\r\n\r\n </div>\r\n </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 *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\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 { EventInput } 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\nimport { 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: CalendarOptionsModel;\r\n currentEvents: EventApi[] = [];\r\n calendarPlugins = [dayGridPlugin, timeGrigPlugin, interactionPlugin, listPlugin];\r\n calendarWeekends = true;\r\n calendarEvents: 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","export enum PagingActionMode {\r\n Reinitialize ,\r\n Update\r\n}\r\n","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 {\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>","import { 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 { StyleConfirmationMode } from '../../../public-api';\r\nimport { PagingActionMode } from '../../Shared/Enums/PagingActionMode';\r\nimport { ConfirmationModalOptions } from '../../Shared/Models/ConfirmationModalOptions';\r\nimport Swal, { SweetAlertIcon } from 'sweetalert2';\r\nimport { Router } from '@angular/router';\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","","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}","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 ForceDirection {\r\n English = 1,\r\n Arabic = 2\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 = ForceDirection.English\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","import { MapAutocompleteDTO } from './MapAutocompleteDTO'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\n\r\nexport class MapAutoCompleteOptions extends ControlOptionsBase {\r\n /** Sets Value of MapAutoComplete */\r\n Value:MapAutocompleteDTO\r\n \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 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 = ForceDirection.English\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, 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","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, 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 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 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 { 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 { 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 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 this.textDir=this.options.ForceDirection==2?'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 { 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 { FullCalendarModule } from '@fullcalendar/angular';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport timeGridPlugin from '@fullcalendar/timegrid';\r\nimport listPlugin from '@fullcalendar/list';\r\nimport interactionPlugin from '@fullcalendar/interaction';\r\nimport { NgModule, Injector, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, ModuleWithProviders } from '@angular/core';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport { FormGroupDirective, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpModule } from '@angular/http';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { NgxPermissionsModule } from 'ngx-permissions';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { NgxIntlTelInputModule } from 'ngx-intl-tel-input';\r\nimport { ErrorMassageValidation } from '../Shared/services/validationErrorMassage.service';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { DateInputComponent } from './DateTimePicker/DateTimePicker.component';\r\nimport { FileUploadComponent } from './FileUplaod/FileUplaod.component';\r\nimport { MultiLingualTextBoxComponent } from './MultiLingualTextBox/MultiLingualTextBox.component';\r\nimport { ControlUtility } from '../Shared/services/ControlUtility';\r\nimport { TextAreaComponent } from './TextArea/TextArea.component';\r\nimport { MultiLingualTextAreaComponent } from './MultiLingualTextArea/MultiLingualTextArea.component';\r\nimport { CheckBoxComponent } from './CheckBox/CheckBox.component';\r\nimport { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { OwlDateTimeModule, OwlNativeDateTimeModule, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\r\nimport { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\r\nimport { DropdownListComponent } from './DropdownList/DropdownList.component';\r\nimport { AngularMultiSelectModule } from 'angular2-multiselect-dropdown';\r\nimport { PhoneComponent } from './Phone/Phone.component';\r\nimport { ToggleslideComponent } from './Toggleslide/toggleslide.component';\r\nimport { HtmlEditorComponent } from './HtmlEditor/HtmlEditor.component';\r\nimport { NgxSummernoteModule } from 'ngx-summernote';\r\nimport { MultiLingualHtmlEditorComponent } from './MultiLingualHtmlEditor/MultiLingualHtmlEditor.component';\r\nimport { NgxMaskModule, IConfig } from 'ngx-mask'\r\nimport { TooltipModule } from '@syncfusion/ej2-angular-popups';\r\nimport { FileUploadModule } from 'ng2-file-upload';\r\nimport { ImageUploaderComponent } from './ImageUpload/ImageUpload.component';\r\nimport { NgxDropzoneModule } from 'ngx-dropzone';\r\nimport { AngularCropperjsModule } from 'angular-cropperjs';\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\nimport { NgbActiveModal, NgbModal, NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ProfileImageUploaderComponent } from './ProfileImageUploader/ProfileImageUploader.component';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgxTypeaheadModule } from 'ngx-typeahead';\r\nimport { AutocompleteTextBoxComponent } from './AutocompleteTextBox/AutocompleteTextBox.component';\r\nimport { NgxTagsInputModule } from 'ngx-tags-input';\r\nimport { TagsInputComponent } from './TagsInput/TagsInput.component';\r\nimport { PagingComponent } from './Paging/Paging.component';\r\nimport { JwPaginationComponent } from './Paging/JwPagination.component';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { OnPagingFiltersChangeService } from '../Shared/services/OnPagingFiltersChange.service';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { RadioButtonComponent } from './RadioButton/RadioButton.component';\r\nimport { TextboxComponent } from './TextBox/TextBox.component';\r\nimport { MapAutoCompleteComponent } from './MapAutoComplete/MapAutoComplete.component';\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport { MatGoogleMapsAutocompleteModule } from '@angular-material-extensions/google-maps-autocomplete';\r\nimport { CalendarComponent } from './Calendar/Calendar.component';\r\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { AutocompleteLibModule } from 'angular-ng-autocomplete';\r\nimport { InlineSVGModule } from 'ng-inline-svg';\r\nimport { BBSFUtilitiesModule, environment } from '@bnsights/bbsf-utilities';\r\nimport { FormComponent } from './Form/Form.component';\r\nimport { ConfirmationModalComponent } from './ConfirmationModal/ConfirmationModal.component';\r\nimport { SweetAlert2Module } from '@sweetalert2/ngx-sweetalert2';\r\nimport { RepeaterComponent } from './Repeater/repeater/repeater.component';\r\nimport { RepeaterFieldBuilderComponent } from './Repeater/repeater-field-builder/repeater-field-builder.component';\r\nimport { NgTemplateNameDirective } from '../Shared/Directives/template-name.directive';\r\nimport { RepeaterItemFieldComponent } from './Repeater/repeater-item-field/repeater-item-field.component';\r\nimport { RenderComponentService } from '../Shared/services/render-component-service.service';\r\nimport { RepeaterTableComponent } from './Repeater/repeater-table/repeater-table.component';\r\nimport { BBSFDateTimePipe } from '../shared/Pipes/bbsf-date-time.pipe';\r\nimport { BBSFDatePipe } from '../shared/Pipes/bbsf-date.pipe';\r\nimport { BTagsInputComponent } from '../Shared/components/ng-tag-input';\r\nimport { RecaptchaComponent } from './Recaptcha/Recaptcha.component';\r\nimport { PageHeaderComponentComponent } from './page-header-component/page-header-component.component';\r\n\r\nexport let options: Partial<IConfig> | (() => Partial<IConfig>);\r\n\r\nexport let AppInjector: Injector;\r\n\r\n\r\n\r\nFullCalendarModule.registerPlugins([\r\n dayGridPlugin,\r\n timeGridPlugin,\r\n listPlugin,\r\n interactionPlugin\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 // 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 NgxTagsInputModule,\r\n NgxTypeaheadModule,\r\n AgmCoreModule.forRoot({\r\n // &language=${UtilityService.CurrentLanguage}\r\n apiKey: environment.BBSF_GoogleMapKey ,\r\n libraries: ['places'],\r\n }),\r\n MatGoogleMapsAutocompleteModule,\r\n FullCalendarModule,\r\n AngularCropperjsModule,\r\n ImageCropperModule,\r\n NgbModule,\r\n NgxDropzoneModule,\r\n FileUploadModule,\r\n TooltipModule,\r\n NgxMaskModule.forRoot(),\r\n NgxSummernoteModule,\r\n MatSlideToggleModule,\r\n NgxIntlTelInputModule,\r\n AngularMultiSelectModule,\r\n NgMultiSelectDropDownModule.forRoot(),\r\n OwlDateTimeModule,\r\n OwlNativeDateTimeModule,\r\n CommonModule,\r\n BlockUIModule.forRoot(),\r\n ReactiveFormsModule,\r\n HttpModule,\r\n RouterModule,\r\n ToastrModule.forRoot(),\r\n HttpClientModule,\r\n NgxPermissionsModule.forRoot(),\r\n OverlayModule,\r\n StoreDevtoolsModule.instrument(),\r\n FormsModule,\r\n NgxIntlTelInputModule,\r\n NgxIntlTelInputModule,\r\n BsDatepickerModule.forRoot(),\r\n FullCalendarModule,\r\n TypeaheadModule.forRoot(),\r\n AngularEditorModule,\r\n AutocompleteLibModule,\r\n BBSFUtilitiesModule,\r\n InlineSVGModule.forRoot(),\r\n SweetAlert2Module,\r\n\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\r\n\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ],\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 constructor(private injector: Injector, private translate: TranslateService) {\r\n AppInjector = this.injector;\r\n\r\n }\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, Validators } 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 * as saveAs from 'file-saver';\r\nimport { EnvironmentService } from '@bnsights/bbsf-utilities';\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\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","// 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 { ControlOptionsBase } from './ControlOptionsBase';\r\nimport { RecaptchaModel } from './Recaptcha';\r\nexport class RecaptchaOptions extends ControlOptionsBase {\r\n constructor() {\r\n super(...arguments);\r\n /**To set value to Control */\r\n this.Value = new RecaptchaModel();\r\n this.ForceDirection = null;\r\n /**Prevent AutoComplete of control default value is \"on\" available values \"on\" and \"off\"*/\r\n this.AutoComplete = \"on\";\r\n this.NoMargin = false;\r\n /**the url of a remote server that supports jsonp calls */\r\n this.ActionURL = \"/api/Home/GetReCaptchaModel\";\r\n /*Pass hexa-color primary background color*/\r\n this.BackgroundColorPrimary = \"\";\r\n /*Pass hexa-color secondary background color*/\r\n this.BackgroundColorSecondary = \"\";\r\n /*Pass font Size */\r\n this.FontSize = 0;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjYXB0Y2hhT3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9TaGFyZWQvTW9kZWxzL1JlY2FwdGNoYU9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsa0JBQWtCO0lBQXhEOztRQUNFLCtCQUErQjtRQUMvQixVQUFLLEdBQW1CLElBQUksY0FBYyxFQUFFLENBQUE7UUFDNUMsbUJBQWMsR0FBbUIsSUFBSSxDQUFBO1FBQ3JDLDBGQUEwRjtRQUMxRixpQkFBWSxHQUFXLElBQUksQ0FBQTtRQUMzQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLDBEQUEwRDtRQUMxRCxjQUFTLEdBQVcsNkJBQTZCLENBQUM7UUFDbEQsNENBQTRDO1FBQzVDLDJCQUFzQixHQUFXLEVBQUUsQ0FBQTtRQUNuQyw4Q0FBOEM7UUFDOUMsNkJBQXdCLEdBQVcsRUFBRSxDQUFBO1FBS3JDLG1CQUFtQjtRQUNuQixhQUFRLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uL0VudW1zL0lucHV0VHlwZSc7XHJcbmltcG9ydCB7IFJhbmdlTnVtYmVyIH0gZnJvbSAnLi9SYW5nZU51bWJlcic7XHJcbmltcG9ydCB7IEZvcmNlRGlyZWN0aW9uIH0gZnJvbSAnLi4vRW51bXMvRm9yY2VEaXJlY3Rpb24nO1xyXG5pbXBvcnQgeyBJY29uUG9zaXRpb24gfSBmcm9tICcuLi9FbnVtcy9JY29uUG9zaXRpb24nO1xyXG5pbXBvcnQgeyBMYW5ndWFnZVZhbGlkYXRpb24gfSBmcm9tICcuLi9FbnVtcy9MYW5ndWFnZVZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBDb250cm9sT3B0aW9uc0Jhc2UgfSBmcm9tICcuL0NvbnRyb2xPcHRpb25zQmFzZSc7XHJcbmltcG9ydCB7IFJlY2FwdGNoYU1vZGVsIH0gZnJvbSAnLi9SZWNhcHRjaGEnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFJlY2FwdGNoYU9wdGlvbnMgZXh0ZW5kcyBDb250cm9sT3B0aW9uc0Jhc2Uge1xyXG4gIC8qKlRvIHNldCAgdmFsdWUgIHRvIENvbnRyb2wgKi9cclxuICBWYWx1ZTogUmVjYXB0Y2hhTW9kZWwgPSBuZXcgUmVjYXB0Y2hhTW9kZWwoKVxyXG4gIEZvcmNlRGlyZWN0aW9uOiBGb3JjZURpcmVjdGlvbiA9IG51bGxcclxuICAvKipQcmV2ZW50IEF1dG9Db21wbGV0ZSBvZiBjb250cm9sIGRlZmF1bHQgdmFsdWUgaXMgXCJvblwiIGF2YWlsYWJsZSB2YWx1ZXMgXCJvblwiIGFuZCBcIm9mZlwiKi9cclxuICBBdXRvQ29tcGxldGU6IHN0cmluZyA9IFwib25cIlxyXG4gIE5vTWFyZ2luOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqdGhlIHVybCBvZiBhIHJlbW90ZSBzZXJ2ZXIgdGhhdCBzdXBwb3J0cyBqc29ucCBjYWxscyAqL1xyXG4gIEFjdGlvblVSTDogc3RyaW5nID0gXCIvYXBpL0hvbWUvR2V0UmVDYXB0Y2hhTW9kZWxcIjtcclxuICAvKlBhc3MgaGV4YS1jb2xvciBwcmltYXJ5IGJhY2tncm91bmQgY29sb3IqL1xyXG4gIEJhY2tncm91bmRDb2xvclByaW1hcnk6IHN0cmluZyA9IFwiXCJcclxuICAvKlBhc3MgaGV4YS1jb2xvciBzZWNvbmRhcnkgYmFja2dyb3VuZCBjb2xvciovXHJcbiAgQmFja2dyb3VuZENvbG9yU2Vjb25kYXJ5OiBzdHJpbmcgPSBcIlwiXHJcbiAgLypQYXNzIGhleGEtY29sb3IgcHJpbWFyeSB0ZXh0IGNvbG9yKi9cclxuICBUZXh0Q29sb3JQcmltYXJ5OiBzdHJpbmdcclxuICAvKlBhc3MgaGV4YS1jb2xvciBzZWNvbmRhcnkgdGV4dCBjb2xvciovXHJcbiAgVGV4dENvbG9yU2Vjb25kYXJ5OiBzdHJpbmdcclxuICAvKlBhc3MgZm9udCBTaXplICovXHJcbiAgRm9udFNpemU6IG51bWJlciA9IDA7XHJcbn1cclxuIl19","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}\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 id:any\r\n itemName: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 { 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}\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","export enum StyleConfirmationMode {\r\n Danger,\r\n Warning,\r\n Success\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}\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\n export * 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// //adminPageModule\r\n// export * from './lib/areas/admin-panel/home/adminHome.component'\r\n// export * from './lib/areas/admin-panel/layout-modules/adminPage.component'\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\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","i1.ErrorMassageValidation","i2","i2.OnPagingFiltersChangeService","i3.ErrorMassageValidation","i4.ControlUtility","i5","i6","i9","i2.ControlUtility","i4.GlobalSettings","i7","i8","i1.ControlUtility","i4","i1.OnPagingFiltersChangeService","i3","i5.GlobalSettings","noop","i2.ErrorMassageValidation","i6.GlobalSettings","i10","i6.BTagsInputComponent","i4.OnPagingFiltersChangeService","i5.JwPaginationComponent","environment","timeGrigPlugin","i1.RenderComponentService","i1.RepeaterFieldBuilderComponent","i3.NgTemplateNameDirective","i2.RepeaterFieldBuilderComponent","i3.TextboxComponent","i4.DropdownListComponent","i5.DateInputComponent","i6.ToggleslideComponent","i7.TagsInputComponent","i11"],"mappings":"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"}
|