@bnsights/bbsf-controls 1.0.87 → 1.0.89
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 -2
- package/bnsights-bbsf-controls-1.0.89.tgz +0 -0
- package/bnsights-bbsf-controls.d.ts +1 -1
- package/bnsights-bbsf-controls.metadata.json +1 -0
- package/bundles/bnsights-bbsf-controls.umd.js +9454 -0
- package/bundles/bnsights-bbsf-controls.umd.js.map +1 -0
- package/esm2015/bnsights-bbsf-controls.js +6 -0
- package/esm2015/lib/Shared/Directives/template-name.directive.js +18 -0
- package/esm2015/lib/Shared/Pipes/bbsf-date-time.pipe.js +20 -0
- package/esm2015/lib/Shared/Pipes/bbsf-date.pipe.js +20 -0
- package/esm2015/lib/Shared/components/app-base-component.js +202 -0
- package/esm2015/lib/Shared/components/ng-tag-input.js +323 -0
- package/esm2015/lib/Shared/default_intl.js +29 -0
- package/esm2015/lib/Shared/services/ControlUtility.js +164 -0
- package/esm2015/lib/Shared/services/GlobalSettings.service.js +28 -0
- package/esm2015/lib/Shared/services/OnPagingFiltersChange.service.js +22 -0
- package/esm2015/lib/Shared/services/render-component-service.service.js +30 -0
- package/esm2015/lib/Shared/services/validationErrorMassage.service.js +137 -0
- package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +249 -0
- package/esm2015/lib/controls/Calendar/Calendar.component.js +177 -0
- package/esm2015/lib/controls/CheckBox/CheckBox.component.js +115 -0
- package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +139 -0
- package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +221 -0
- package/esm2015/lib/controls/DropdownList/DropdownList.component.js +179 -0
- package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +451 -0
- package/esm2015/lib/controls/Form/Form.component.js +106 -0
- package/esm2015/lib/controls/HtmlEditor/HtmlEditor.component.js +223 -0
- package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +347 -0
- package/esm2015/lib/controls/MapAutoComplete/MapAutoComplete.component.js +325 -0
- package/esm2015/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.js +429 -0
- package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +430 -0
- package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +429 -0
- package/esm2015/lib/controls/Paging/JwPagination.component.js +129 -0
- package/esm2015/lib/controls/Paging/Paging.component.js +312 -0
- package/esm2015/lib/controls/Phone/Phone.component.js +124 -0
- package/esm2015/lib/controls/ProfileImageUploader/ProfileImageUploader.component.js +349 -0
- package/esm2015/lib/controls/RadioButton/RadioButton.component.js +108 -0
- package/esm2015/lib/controls/Recaptcha/Recaptcha.component.js +132 -0
- package/esm2015/lib/controls/Repeater/repeater/repeater.component.js +117 -0
- package/esm2015/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.js +748 -0
- package/esm2015/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.js +19 -0
- package/esm2015/lib/controls/Repeater/repeater-table/repeater-table.component.js +108 -0
- package/esm2015/lib/controls/TagsInput/TagsInput.component.js +269 -0
- package/esm2015/lib/controls/TextArea/TextArea.component.js +192 -0
- package/esm2015/lib/controls/TextBox/TextBox.component.js +263 -0
- package/esm2015/lib/controls/Toggleslide/toggleslide.component.js +84 -0
- package/esm2015/lib/controls/bbsf-controls.module.js +239 -0
- package/esm2015/lib/controls/page-header-component/page-header-component.component.js +32 -0
- package/fesm2015/{bnsights-bbsf-controls.mjs → bnsights-bbsf-controls.js} +1511 -1630
- package/fesm2015/bnsights-bbsf-controls.js.map +1 -0
- package/lib/Shared/Directives/template-name.directive.d.ts +0 -3
- package/lib/Shared/Pipes/bbsf-date-time.pipe.d.ts +0 -3
- package/lib/Shared/Pipes/bbsf-date.pipe.d.ts +0 -3
- package/lib/Shared/components/app-base-component.d.ts +1 -3
- package/lib/Shared/components/ng-tag-input.d.ts +0 -3
- package/lib/Shared/default_intl.d.ts +0 -3
- package/lib/Shared/services/ControlUtility.d.ts +0 -3
- package/lib/Shared/services/GlobalSettings.service.d.ts +0 -3
- package/lib/Shared/services/OnPagingFiltersChange.service.d.ts +0 -3
- package/lib/Shared/services/render-component-service.service.d.ts +0 -3
- package/lib/Shared/services/validationErrorMassage.service.d.ts +0 -3
- package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +0 -3
- package/lib/controls/Calendar/Calendar.component.d.ts +5 -9
- package/lib/controls/CheckBox/CheckBox.component.d.ts +0 -3
- package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +0 -3
- package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +0 -3
- package/lib/controls/DropdownList/DropdownList.component.d.ts +0 -3
- package/lib/controls/FileUplaod/FileUplaod.component.d.ts +0 -3
- package/lib/controls/Form/Form.component.d.ts +0 -3
- package/lib/controls/HtmlEditor/HtmlEditor.component.d.ts +0 -3
- package/lib/controls/ImageUpload/ImageUpload.component.d.ts +0 -3
- package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +0 -3
- package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +0 -3
- package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +0 -3
- package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +0 -3
- package/lib/controls/Paging/JwPagination.component.d.ts +0 -3
- package/lib/controls/Paging/Paging.component.d.ts +0 -3
- package/lib/controls/Phone/Phone.component.d.ts +0 -3
- package/lib/controls/ProfileImageUploader/ProfileImageUploader.component.d.ts +0 -3
- package/lib/controls/RadioButton/RadioButton.component.d.ts +0 -3
- package/lib/controls/Recaptcha/Recaptcha.component.d.ts +0 -3
- package/lib/controls/Repeater/repeater/repeater.component.d.ts +0 -3
- package/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.d.ts +0 -3
- package/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.d.ts +0 -3
- package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +0 -3
- package/lib/controls/TagsInput/TagsInput.component.d.ts +0 -3
- package/lib/controls/TextArea/TextArea.component.d.ts +0 -3
- package/lib/controls/TextBox/TextBox.component.d.ts +0 -3
- package/lib/controls/Toggleslide/toggleslide.component.d.ts +0 -3
- package/lib/controls/bbsf-controls.module.d.ts +0 -74
- package/lib/controls/page-header-component/page-header-component.component.d.ts +0 -3
- package/package.json +15 -27
- package/bnsights-bbsf-controls-1.0.87.tgz +0 -0
- package/esm2020/bnsights-bbsf-controls.mjs +0 -5
- package/esm2020/lib/Shared/Directives/template-name.directive.mjs +0 -18
- package/esm2020/lib/Shared/Pipes/bbsf-date-time.pipe.mjs +0 -21
- package/esm2020/lib/Shared/Pipes/bbsf-date.pipe.mjs +0 -21
- package/esm2020/lib/Shared/components/app-base-component.mjs +0 -198
- package/esm2020/lib/Shared/components/ng-tag-input.mjs +0 -336
- package/esm2020/lib/Shared/default_intl.mjs +0 -29
- package/esm2020/lib/Shared/services/ControlUtility.mjs +0 -162
- package/esm2020/lib/Shared/services/GlobalSettings.service.mjs +0 -30
- package/esm2020/lib/Shared/services/OnPagingFiltersChange.service.mjs +0 -24
- package/esm2020/lib/Shared/services/render-component-service.service.mjs +0 -30
- package/esm2020/lib/Shared/services/validationErrorMassage.service.mjs +0 -137
- package/esm2020/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +0 -245
- package/esm2020/lib/controls/Calendar/Calendar.component.mjs +0 -172
- package/esm2020/lib/controls/CheckBox/CheckBox.component.mjs +0 -114
- package/esm2020/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +0 -136
- package/esm2020/lib/controls/DateTimePicker/DateTimePicker.component.mjs +0 -217
- package/esm2020/lib/controls/DropdownList/DropdownList.component.mjs +0 -179
- package/esm2020/lib/controls/FileUplaod/FileUplaod.component.mjs +0 -453
- package/esm2020/lib/controls/Form/Form.component.mjs +0 -101
- package/esm2020/lib/controls/HtmlEditor/HtmlEditor.component.mjs +0 -223
- package/esm2020/lib/controls/ImageUpload/ImageUpload.component.mjs +0 -350
- package/esm2020/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +0 -325
- package/esm2020/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +0 -427
- package/esm2020/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +0 -427
- package/esm2020/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +0 -426
- package/esm2020/lib/controls/Paging/JwPagination.component.mjs +0 -156
- package/esm2020/lib/controls/Paging/Paging.component.mjs +0 -312
- package/esm2020/lib/controls/Phone/Phone.component.mjs +0 -124
- package/esm2020/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +0 -354
- package/esm2020/lib/controls/RadioButton/RadioButton.component.mjs +0 -106
- package/esm2020/lib/controls/Recaptcha/Recaptcha.component.mjs +0 -132
- package/esm2020/lib/controls/Repeater/repeater/repeater.component.mjs +0 -125
- package/esm2020/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +0 -750
- package/esm2020/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +0 -21
- package/esm2020/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +0 -108
- package/esm2020/lib/controls/TagsInput/TagsInput.component.mjs +0 -268
- package/esm2020/lib/controls/TextArea/TextArea.component.mjs +0 -192
- package/esm2020/lib/controls/TextBox/TextBox.component.mjs +0 -266
- package/esm2020/lib/controls/Toggleslide/toggleslide.component.mjs +0 -84
- package/esm2020/lib/controls/bbsf-controls.module.mjs +0 -401
- package/esm2020/lib/controls/page-header-component/page-header-component.component.mjs +0 -37
- package/fesm2015/bnsights-bbsf-controls.mjs.map +0 -1
- package/fesm2020/bnsights-bbsf-controls.mjs +0 -8938
- package/fesm2020/bnsights-bbsf-controls.mjs.map +0 -1
- /package/{esm2020/lib/Shared/Enums/CalendarView.mjs → esm2015/lib/Shared/Enums/CalendarView.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/ControlLayout.mjs → esm2015/lib/Shared/Enums/ControlLayout.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Countries.mjs → esm2015/lib/Shared/Enums/Countries.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Enums.mjs → esm2015/lib/Shared/Enums/Enums.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/FileType.mjs → esm2015/lib/Shared/Enums/FileType.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/FilterType.mjs → esm2015/lib/Shared/Enums/FilterType.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/FontSize.mjs → esm2015/lib/Shared/Enums/FontSize.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/ForceDirection.mjs → esm2015/lib/Shared/Enums/ForceDirection.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/IconPosition.mjs → esm2015/lib/Shared/Enums/IconPosition.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/ImageType.mjs → esm2015/lib/Shared/Enums/ImageType.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/InputType.mjs → esm2015/lib/Shared/Enums/InputType.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Insert.mjs → esm2015/lib/Shared/Enums/Insert.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/LanguageMode.mjs → esm2015/lib/Shared/Enums/LanguageMode.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/LanguageValidation.mjs → esm2015/lib/Shared/Enums/LanguageValidation.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Misc.mjs → esm2015/lib/Shared/Enums/Misc.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/PagingActionMode.mjs → esm2015/lib/Shared/Enums/PagingActionMode.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Para.mjs → esm2015/lib/Shared/Enums/Para.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/PickerType.mjs → esm2015/lib/Shared/Enums/PickerType.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/SelectMode.mjs → esm2015/lib/Shared/Enums/SelectMode.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/StartView.mjs → esm2015/lib/Shared/Enums/StartView.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/Style.mjs → esm2015/lib/Shared/Enums/Style.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/StyleConfirmationMode.mjs → esm2015/lib/Shared/Enums/StyleConfirmationMode.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/TagInputView.mjs → esm2015/lib/Shared/Enums/TagInputView.js} +0 -0
- /package/{esm2020/lib/Shared/Enums/menu-list-enum.mjs → esm2015/lib/Shared/Enums/menu-list-enum.js} +0 -0
- /package/{esm2020/lib/Shared/Models/Attribute.mjs → esm2015/lib/Shared/Models/Attribute.js} +0 -0
- /package/{esm2020/lib/Shared/Models/AutocompleteDTO.mjs → esm2015/lib/Shared/Models/AutocompleteDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/AutocompleteOptions.mjs → esm2015/lib/Shared/Models/AutocompleteOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CalendarEventDTO.mjs → esm2015/lib/Shared/Models/CalendarEventDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CalendarOptions.mjs → esm2015/lib/Shared/Models/CalendarOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CancelDTO.mjs → esm2015/lib/Shared/Models/CancelDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CaptchaStyle.mjs → esm2015/lib/Shared/Models/CaptchaStyle.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CheckBoxOptions.mjs → esm2015/lib/Shared/Models/CheckBoxOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ConfirmationModalOptions.mjs → esm2015/lib/Shared/Models/ConfirmationModalOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ControlOptionsBase.mjs → esm2015/lib/Shared/Models/ControlOptionsBase.js} +0 -0
- /package/{esm2020/lib/Shared/Models/CustomValidation.mjs → esm2015/lib/Shared/Models/CustomValidation.js} +0 -0
- /package/{esm2020/lib/Shared/Models/DropdownListItem.mjs → esm2015/lib/Shared/Models/DropdownListItem.js} +0 -0
- /package/{esm2020/lib/Shared/Models/DropdownOptions.mjs → esm2015/lib/Shared/Models/DropdownOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/EditPersonalImage.mjs → esm2015/lib/Shared/Models/EditPersonalImage.js} +0 -0
- /package/{esm2020/lib/Shared/Models/EnglishArabicDTO.mjs → esm2015/lib/Shared/Models/EnglishArabicDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/FileDTO.mjs → esm2015/lib/Shared/Models/FileDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/FileUploadModel.mjs → esm2015/lib/Shared/Models/FileUploadModel.js} +0 -0
- /package/{esm2020/lib/Shared/Models/FileUploadOptions.mjs → esm2015/lib/Shared/Models/FileUploadOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/FilterItem.mjs → esm2015/lib/Shared/Models/FilterItem.js} +0 -0
- /package/{esm2020/lib/Shared/Models/FormOptions.mjs → esm2015/lib/Shared/Models/FormOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/HtmlEditorOptions.mjs → esm2015/lib/Shared/Models/HtmlEditorOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ImageUploadOptions.mjs → esm2015/lib/Shared/Models/ImageUploadOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MapAutoCompleteOptions.mjs → esm2015/lib/Shared/Models/MapAutoCompleteOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MapAutocompleteDTO.mjs → esm2015/lib/Shared/Models/MapAutocompleteDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MultiLingualHtmlEditorOptions.mjs → esm2015/lib/Shared/Models/MultiLingualHtmlEditorOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MultiLingualTextAreaOptions.mjs → esm2015/lib/Shared/Models/MultiLingualTextAreaOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MultilingualControlOptionsBase.mjs → esm2015/lib/Shared/Models/MultilingualControlOptionsBase.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MultilingualTextBoxOptions.mjs → esm2015/lib/Shared/Models/MultilingualTextBoxOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/MultipleFileUploadModel.mjs → esm2015/lib/Shared/Models/MultipleFileUploadModel.js} +0 -0
- /package/{esm2020/lib/Shared/Models/PagingDTO.mjs → esm2015/lib/Shared/Models/PagingDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/PagingOptions.mjs → esm2015/lib/Shared/Models/PagingOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/PagingPayload.mjs → esm2015/lib/Shared/Models/PagingPayload.js} +0 -0
- /package/{esm2020/lib/Shared/Models/PhoneOptions.mjs → esm2015/lib/Shared/Models/PhoneOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ProfileImageUploadOptions.mjs → esm2015/lib/Shared/Models/ProfileImageUploadOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ProfilePictureDTO.mjs → esm2015/lib/Shared/Models/ProfilePictureDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RadioButtonItem.mjs → esm2015/lib/Shared/Models/RadioButtonItem.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RadioButtonOptions.mjs → esm2015/lib/Shared/Models/RadioButtonOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RangeNumber.mjs → esm2015/lib/Shared/Models/RangeNumber.js} +0 -0
- /package/{esm2020/lib/Shared/Models/Recaptcha.mjs → esm2015/lib/Shared/Models/Recaptcha.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RecaptchaOptions.mjs → esm2015/lib/Shared/Models/RecaptchaOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RepeaterField.mjs → esm2015/lib/Shared/Models/RepeaterField.js} +0 -0
- /package/{esm2020/lib/Shared/Models/RepeaterOptions.mjs → esm2015/lib/Shared/Models/RepeaterOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/SaveDTO.mjs → esm2015/lib/Shared/Models/SaveDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/TagsInputDTO.mjs → esm2015/lib/Shared/Models/TagsInputDTO.js} +0 -0
- /package/{esm2020/lib/Shared/Models/TagsInputOptions.mjs → esm2015/lib/Shared/Models/TagsInputOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/TextAreaOptions.mjs → esm2015/lib/Shared/Models/TextAreaOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/TextBoxOptions.mjs → esm2015/lib/Shared/Models/TextBoxOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/ToggleslideOptions.mjs → esm2015/lib/Shared/Models/ToggleslideOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/UploadPersonalImage.mjs → esm2015/lib/Shared/Models/UploadPersonalImage.js} +0 -0
- /package/{esm2020/lib/Shared/Models/bread-crumb.mjs → esm2015/lib/Shared/Models/bread-crumb.js} +0 -0
- /package/{esm2020/lib/Shared/Models/control-filter-Item.mjs → esm2015/lib/Shared/Models/control-filter-Item.js} +0 -0
- /package/{esm2020/lib/Shared/Models/datePickerOptions.mjs → esm2015/lib/Shared/Models/datePickerOptions.js} +0 -0
- /package/{esm2020/lib/Shared/Models/filter-options.mjs → esm2015/lib/Shared/Models/filter-options.js} +0 -0
- /package/{esm2020/lib/Shared/Models/page-header-options.mjs → esm2015/lib/Shared/Models/page-header-options.js} +0 -0
- /package/{esm2020/lib/Shared/config/environment.mjs → esm2015/lib/Shared/config/environment.js} +0 -0
- /package/{esm2020/public-api.mjs → esm2015/public-api.js} +0 -0
|
@@ -1,83 +1,52 @@
|
|
|
1
|
-
import * as i5$2 from '@fullcalendar/angular';
|
|
2
1
|
import { FullCalendarModule } from '@fullcalendar/angular';
|
|
3
|
-
import dayGridPlugin from '@fullcalendar/daygrid';
|
|
4
|
-
import timeGridPlugin from '@fullcalendar/timegrid';
|
|
5
|
-
import listPlugin from '@fullcalendar/list';
|
|
6
|
-
import interactionPlugin from '@fullcalendar/interaction';
|
|
7
2
|
import * as i0 from '@angular/core';
|
|
8
|
-
import { Injectable, Optional, EventEmitter, Component, Input, Output, ViewChild,
|
|
9
|
-
import * as i5$3 from 'ng-block-ui';
|
|
3
|
+
import { Injectable, Optional, EventEmitter, Component, Input, Output, ViewChild, NgZone, Directive, TemplateRef, ViewChildren, ComponentFactoryResolver, ViewContainerRef, Pipe, forwardRef, NgModule, NO_ERRORS_SCHEMA, Injector } from '@angular/core';
|
|
10
4
|
import { BlockUIModule } from 'ng-block-ui';
|
|
11
|
-
import
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
14
|
-
import { HttpModule } from '@angular/http';
|
|
15
|
-
import * as i3$2 from '@angular/router';
|
|
16
|
-
import { RouterModule } from '@angular/router';
|
|
17
|
-
import * as i6$5 from 'ngx-toastr';
|
|
5
|
+
import { ControlContainer, Validators, FormControl, FormGroupDirective, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
6
|
+
import { Http, HttpModule } from '@angular/http';
|
|
7
|
+
import { Router, RouterModule } from '@angular/router';
|
|
18
8
|
import { ToastrModule } from 'ngx-toastr';
|
|
19
|
-
import * as i7$6 from 'ngx-permissions';
|
|
20
9
|
import { NgxPermissionsModule } from 'ngx-permissions';
|
|
21
10
|
import { OverlayModule } from '@angular/cdk/overlay';
|
|
22
|
-
import * as i8$2 from '@ngrx/store-devtools';
|
|
23
11
|
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
|
|
24
|
-
import
|
|
25
|
-
import { CommonModule, DatePipe } from '@angular/common';
|
|
26
|
-
import * as i7$1 from 'ngx-intl-tel-input';
|
|
12
|
+
import { DatePipe, CommonModule } from '@angular/common';
|
|
27
13
|
import { SearchCountryField, NgxIntlTelInputModule } from 'ngx-intl-tel-input';
|
|
28
|
-
import
|
|
29
|
-
import { RequestOptionsModel, environment as environment$1, BBSFUtilitiesModule, UtilityService, ConfigurationService, EnvironmentService, AuthService } from '@bnsights/bbsf-utilities';
|
|
30
|
-
import * as i9 from 'ngx-bootstrap/datepicker';
|
|
14
|
+
import { UtilityService, ControlValidationService, BBSFTranslateService, RequestOptionsModel, RequestHandlerService, environment as environment$1, BBSFUtilitiesModule, ConfigurationService, EnvironmentService, AuthService } from '@bnsights/bbsf-utilities';
|
|
31
15
|
import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
|
|
32
|
-
import * as i7 from 'ng-pick-datetime';
|
|
33
|
-
import { OwlDateTimeIntl, OwlDateTimeModule, OwlNativeDateTimeModule, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';
|
|
34
16
|
import { Subject, Observable, noop as noop$1, of, EMPTY, Subscription } from 'rxjs';
|
|
35
|
-
import
|
|
36
|
-
import * as i6$1 from 'ng2-file-upload';
|
|
17
|
+
import { OwlDateTimeIntl, DateTimeAdapter, OwlDateTimeModule, OwlNativeDateTimeModule, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';
|
|
37
18
|
import { FileUploader, FileLikeObject, FileUploadModule } from 'ng2-file-upload';
|
|
38
19
|
import { __decorate, __awaiter } from 'tslib';
|
|
39
20
|
import { Expose, plainToClass } from 'class-transformer';
|
|
40
|
-
import * as i6$2 from 'ng-inline-svg';
|
|
41
|
-
import { InlineSVGModule } from 'ng-inline-svg';
|
|
42
|
-
import * as i4$1 from 'ng-multiselect-dropdown';
|
|
43
21
|
import { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';
|
|
44
|
-
import * as i6$3 from '@ng-select/ng-select';
|
|
45
|
-
import { NgSelectModule } from '@ng-select/ng-select';
|
|
46
22
|
import { AngularMultiSelectModule } from 'angular2-multiselect-dropdown';
|
|
47
|
-
import * as i5 from '@angular/material/slide-toggle';
|
|
48
|
-
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
49
|
-
import * as i5$1 from '@kolkov/angular-editor';
|
|
50
|
-
import { AngularEditorModule } from '@kolkov/angular-editor';
|
|
51
23
|
import { NgxSummernoteModule } from 'ngx-summernote';
|
|
52
|
-
import * as i7$4 from 'ngx-mask';
|
|
53
24
|
import { NgxMaskModule } from 'ngx-mask';
|
|
54
25
|
import { TooltipModule } from '@syncfusion/ej2-angular-popups';
|
|
55
|
-
import
|
|
56
|
-
import { NgbModule, NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
|
|
57
|
-
import * as i6$4 from 'ngx-dropzone';
|
|
26
|
+
import { NgbModal, NgbActiveModal, NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
|
58
27
|
import { NgxDropzoneModule } from 'ngx-dropzone';
|
|
59
|
-
import * as i7$2 from 'angular-cropperjs';
|
|
60
28
|
import { AngularCropperjsModule } from 'angular-cropperjs';
|
|
61
29
|
import { ImageCropperModule } from 'ngx-image-cropper';
|
|
62
|
-
import * as i1$3 from '@ngx-translate/core';
|
|
63
30
|
import { TranslateService } from '@ngx-translate/core';
|
|
64
|
-
import
|
|
65
|
-
import { HttpHeaders, HttpParams, HttpClientModule } from '@angular/common/http';
|
|
31
|
+
import { HttpHeaders, HttpParams, HttpClient, HttpClientModule } from '@angular/common/http';
|
|
66
32
|
import { NgxTypeaheadModule } from 'ngx-typeahead';
|
|
67
33
|
import { switchMap, map, tap } from 'rxjs/operators';
|
|
68
|
-
import * as i7$3 from 'angular-ng-autocomplete';
|
|
69
|
-
import { AutocompleteLibModule } from 'angular-ng-autocomplete';
|
|
70
34
|
import { NgxTagsInputModule } from 'ngx-tags-input';
|
|
71
|
-
import
|
|
72
|
-
import { TypeaheadModule } from 'ngx-bootstrap/typeahead';
|
|
73
|
-
import * as i8$1 from 'ngx-infinite-scroll';
|
|
35
|
+
import { NgSelectModule } from '@ng-select/ng-select';
|
|
74
36
|
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
|
75
|
-
import
|
|
76
|
-
import { LazyMapsAPILoader, AgmCoreModule } from '@agm/core';
|
|
77
|
-
import * as i7$5 from '@angular-material-extensions/google-maps-autocomplete';
|
|
37
|
+
import { LazyMapsAPILoader, MapsAPILoader, AgmCoreModule } from '@agm/core';
|
|
78
38
|
import { MatGoogleMapsAutocompleteModule } from '@angular-material-extensions/google-maps-autocomplete';
|
|
39
|
+
import dayGridPlugin from '@fullcalendar/daygrid';
|
|
40
|
+
import timeGrigPlugin from '@fullcalendar/timegrid';
|
|
41
|
+
import interactionPlugin from '@fullcalendar/interaction';
|
|
42
|
+
import listPlugin from '@fullcalendar/list';
|
|
79
43
|
import enGbLocale from '@fullcalendar/core/locales/en-gb';
|
|
80
44
|
import ArLocale from '@fullcalendar/core/locales/ar';
|
|
45
|
+
import { TypeaheadModule } from 'ngx-bootstrap/typeahead';
|
|
46
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
47
|
+
import { AngularEditorModule } from '@kolkov/angular-editor';
|
|
48
|
+
import { AutocompleteLibModule } from 'angular-ng-autocomplete';
|
|
49
|
+
import { InlineSVGModule } from 'ng-inline-svg';
|
|
81
50
|
import Swal from 'sweetalert2';
|
|
82
51
|
import { SweetAlert2Module } from '@sweetalert2/ngx-sweetalert2';
|
|
83
52
|
import { Title } from '@angular/platform-browser';
|
|
@@ -207,81 +176,14 @@ class ErrorMassageValidation {
|
|
|
207
176
|
}
|
|
208
177
|
}
|
|
209
178
|
ErrorMassageValidation.controlContainerstatic = null;
|
|
210
|
-
ErrorMassageValidation
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
} });
|
|
219
|
-
|
|
220
|
-
var PickerType;
|
|
221
|
-
(function (PickerType) {
|
|
222
|
-
PickerType[PickerType["Both"] = 1] = "Both";
|
|
223
|
-
PickerType[PickerType["Calendar"] = 2] = "Calendar";
|
|
224
|
-
PickerType[PickerType["Timer"] = 3] = "Timer";
|
|
225
|
-
})(PickerType || (PickerType = {}));
|
|
226
|
-
|
|
227
|
-
var StartView;
|
|
228
|
-
(function (StartView) {
|
|
229
|
-
StartView[StartView["Month"] = 1] = "Month";
|
|
230
|
-
StartView[StartView["Year"] = 2] = "Year";
|
|
231
|
-
StartView[StartView["MultiYear"] = 3] = "MultiYear";
|
|
232
|
-
})(StartView || (StartView = {}));
|
|
233
|
-
|
|
234
|
-
var SelectMode;
|
|
235
|
-
(function (SelectMode) {
|
|
236
|
-
SelectMode[SelectMode["Single"] = 1] = "Single";
|
|
237
|
-
SelectMode[SelectMode["Range"] = 2] = "Range";
|
|
238
|
-
})(SelectMode || (SelectMode = {}));
|
|
239
|
-
|
|
240
|
-
// here is the default text string - just adjust the strings to reflect your preferred language
|
|
241
|
-
class DefaultIntl extends OwlDateTimeIntl {
|
|
242
|
-
constructor(utilityService) {
|
|
243
|
-
super();
|
|
244
|
-
this.utilityService = utilityService;
|
|
245
|
-
/** A label for the range 'from' in picker info */
|
|
246
|
-
this.rangeFromLabel = this.utilityService.getResourceValue('From');
|
|
247
|
-
/** A label for the range 'to' in picker info */
|
|
248
|
-
this.rangeToLabel = this.utilityService.getResourceValue('To');
|
|
249
|
-
/** A label for the cancel button */
|
|
250
|
-
this.cancelBtnLabel = this.utilityService.getResourceValue('Cancel');
|
|
251
|
-
/** A label for the set button */
|
|
252
|
-
this.setBtnLabel = this.utilityService.getResourceValue('Save');
|
|
253
|
-
/** A label for the hour12 button (AM) */
|
|
254
|
-
this.hour12AMLabel = this.utilityService.getResourceValue('AM');
|
|
255
|
-
/** A label for the hour12 button (PM) */
|
|
256
|
-
this.hour12PMLabel = this.utilityService.getResourceValue('PM');
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
DefaultIntl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultIntl, deps: [{ token: i3.UtilityService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
260
|
-
DefaultIntl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultIntl });
|
|
261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DefaultIntl, decorators: [{
|
|
262
|
-
type: Injectable
|
|
263
|
-
}], ctorParameters: function () { return [{ type: i3.UtilityService }]; } });
|
|
264
|
-
|
|
265
|
-
class OnPagingFiltersChangeService {
|
|
266
|
-
constructor() {
|
|
267
|
-
this.subject = new Subject();
|
|
268
|
-
}
|
|
269
|
-
ChangeValue(value) {
|
|
270
|
-
this.subject.next(value);
|
|
271
|
-
}
|
|
272
|
-
ClearValue() {
|
|
273
|
-
this.subject.next();
|
|
274
|
-
}
|
|
275
|
-
GetValue() {
|
|
276
|
-
return this.subject.asObservable();
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
OnPagingFiltersChangeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OnPagingFiltersChangeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
280
|
-
OnPagingFiltersChangeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OnPagingFiltersChangeService, providedIn: 'root' });
|
|
281
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OnPagingFiltersChangeService, decorators: [{
|
|
282
|
-
type: Injectable,
|
|
283
|
-
args: [{ providedIn: 'root' }]
|
|
284
|
-
}] });
|
|
179
|
+
ErrorMassageValidation.decorators = [
|
|
180
|
+
{ type: Injectable }
|
|
181
|
+
];
|
|
182
|
+
ErrorMassageValidation.ctorParameters = () => [
|
|
183
|
+
{ type: Http },
|
|
184
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
185
|
+
{ type: UtilityService }
|
|
186
|
+
];
|
|
285
187
|
|
|
286
188
|
var InputType;
|
|
287
189
|
(function (InputType) {
|
|
@@ -442,11 +344,79 @@ class ControlUtility {
|
|
|
442
344
|
FormControl.markAsTouched();
|
|
443
345
|
}
|
|
444
346
|
}
|
|
445
|
-
ControlUtility
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
347
|
+
ControlUtility.decorators = [
|
|
348
|
+
{ type: Injectable }
|
|
349
|
+
];
|
|
350
|
+
ControlUtility.ctorParameters = () => [
|
|
351
|
+
{ type: ErrorMassageValidation },
|
|
352
|
+
{ type: ControlValidationService },
|
|
353
|
+
{ type: UtilityService }
|
|
354
|
+
];
|
|
355
|
+
|
|
356
|
+
var PickerType;
|
|
357
|
+
(function (PickerType) {
|
|
358
|
+
PickerType[PickerType["Both"] = 1] = "Both";
|
|
359
|
+
PickerType[PickerType["Calendar"] = 2] = "Calendar";
|
|
360
|
+
PickerType[PickerType["Timer"] = 3] = "Timer";
|
|
361
|
+
})(PickerType || (PickerType = {}));
|
|
362
|
+
|
|
363
|
+
var StartView;
|
|
364
|
+
(function (StartView) {
|
|
365
|
+
StartView[StartView["Month"] = 1] = "Month";
|
|
366
|
+
StartView[StartView["Year"] = 2] = "Year";
|
|
367
|
+
StartView[StartView["MultiYear"] = 3] = "MultiYear";
|
|
368
|
+
})(StartView || (StartView = {}));
|
|
369
|
+
|
|
370
|
+
var SelectMode;
|
|
371
|
+
(function (SelectMode) {
|
|
372
|
+
SelectMode[SelectMode["Single"] = 1] = "Single";
|
|
373
|
+
SelectMode[SelectMode["Range"] = 2] = "Range";
|
|
374
|
+
})(SelectMode || (SelectMode = {}));
|
|
375
|
+
|
|
376
|
+
class OnPagingFiltersChangeService {
|
|
377
|
+
constructor() {
|
|
378
|
+
this.subject = new Subject();
|
|
379
|
+
}
|
|
380
|
+
ChangeValue(value) {
|
|
381
|
+
this.subject.next(value);
|
|
382
|
+
}
|
|
383
|
+
ClearValue() {
|
|
384
|
+
this.subject.next();
|
|
385
|
+
}
|
|
386
|
+
GetValue() {
|
|
387
|
+
return this.subject.asObservable();
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
OnPagingFiltersChangeService.ɵprov = i0.ɵɵdefineInjectable({ factory: function OnPagingFiltersChangeService_Factory() { return new OnPagingFiltersChangeService(); }, token: OnPagingFiltersChangeService, providedIn: "root" });
|
|
391
|
+
OnPagingFiltersChangeService.decorators = [
|
|
392
|
+
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
393
|
+
];
|
|
394
|
+
|
|
395
|
+
// here is the default text string - just adjust the strings to reflect your preferred language
|
|
396
|
+
class DefaultIntl extends OwlDateTimeIntl {
|
|
397
|
+
constructor(utilityService) {
|
|
398
|
+
super();
|
|
399
|
+
this.utilityService = utilityService;
|
|
400
|
+
/** A label for the range 'from' in picker info */
|
|
401
|
+
this.rangeFromLabel = this.utilityService.getResourceValue('From');
|
|
402
|
+
/** A label for the range 'to' in picker info */
|
|
403
|
+
this.rangeToLabel = this.utilityService.getResourceValue('To');
|
|
404
|
+
/** A label for the cancel button */
|
|
405
|
+
this.cancelBtnLabel = this.utilityService.getResourceValue('Cancel');
|
|
406
|
+
/** A label for the set button */
|
|
407
|
+
this.setBtnLabel = this.utilityService.getResourceValue('Save');
|
|
408
|
+
/** A label for the hour12 button (AM) */
|
|
409
|
+
this.hour12AMLabel = this.utilityService.getResourceValue('AM');
|
|
410
|
+
/** A label for the hour12 button (PM) */
|
|
411
|
+
this.hour12PMLabel = this.utilityService.getResourceValue('PM');
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
DefaultIntl.decorators = [
|
|
415
|
+
{ type: Injectable }
|
|
416
|
+
];
|
|
417
|
+
DefaultIntl.ctorParameters = () => [
|
|
418
|
+
{ type: UtilityService }
|
|
419
|
+
];
|
|
450
420
|
|
|
451
421
|
class DateInputComponent {
|
|
452
422
|
// tslint:disable-next-line: max-line-length
|
|
@@ -629,26 +599,32 @@ class DateInputComponent {
|
|
|
629
599
|
}
|
|
630
600
|
}
|
|
631
601
|
DateInputComponent.controlContainerstatic = null;
|
|
632
|
-
DateInputComponent
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
602
|
+
DateInputComponent.decorators = [
|
|
603
|
+
{ type: Component, args: [{
|
|
604
|
+
selector: 'BBSF-DateTimePicker',
|
|
605
|
+
template: "\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",
|
|
606
|
+
providers: [
|
|
607
|
+
{ provide: OwlDateTimeIntl, useClass: DefaultIntl }
|
|
608
|
+
]
|
|
609
|
+
},] }
|
|
610
|
+
];
|
|
611
|
+
DateInputComponent.ctorParameters = () => [
|
|
612
|
+
{ type: DatePipe },
|
|
613
|
+
{ type: OnPagingFiltersChangeService },
|
|
614
|
+
{ type: ErrorMassageValidation },
|
|
615
|
+
{ type: ControlUtility },
|
|
616
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
617
|
+
{ type: FormGroupDirective },
|
|
618
|
+
{ type: UtilityService },
|
|
619
|
+
{ type: BBSFTranslateService },
|
|
620
|
+
{ type: ControlValidationService },
|
|
621
|
+
{ type: DateTimeAdapter }
|
|
622
|
+
];
|
|
623
|
+
DateInputComponent.propDecorators = {
|
|
624
|
+
group: [{ type: Input }],
|
|
625
|
+
options: [{ type: Input }],
|
|
626
|
+
OnChange: [{ type: Output }]
|
|
627
|
+
};
|
|
652
628
|
|
|
653
629
|
class FileUploadModel {
|
|
654
630
|
}
|
|
@@ -698,12 +674,10 @@ class GlobalSettings {
|
|
|
698
674
|
this.DefaultImageSrc = "./src/assets/images/uploadimg.png";
|
|
699
675
|
}
|
|
700
676
|
}
|
|
701
|
-
GlobalSettings.ɵ
|
|
702
|
-
GlobalSettings
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
args: [{ providedIn: 'root' }]
|
|
706
|
-
}] });
|
|
677
|
+
GlobalSettings.ɵprov = i0.ɵɵdefineInjectable({ factory: function GlobalSettings_Factory() { return new GlobalSettings(); }, token: GlobalSettings, providedIn: "root" });
|
|
678
|
+
GlobalSettings.decorators = [
|
|
679
|
+
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
680
|
+
];
|
|
707
681
|
|
|
708
682
|
class FileUploadComponent {
|
|
709
683
|
constructor(controlContainer, MultipleFileUplaodControlHost, controlUtility, UtilityService, controlValidationService, globalSettings) {
|
|
@@ -1127,25 +1101,26 @@ class FileUploadComponent {
|
|
|
1127
1101
|
}
|
|
1128
1102
|
}
|
|
1129
1103
|
FileUploadComponent.controlContainerstatic = null;
|
|
1130
|
-
FileUploadComponent
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
type:
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1104
|
+
FileUploadComponent.decorators = [
|
|
1105
|
+
{ type: Component, args: [{
|
|
1106
|
+
selector: 'BBSF-FileUplaod',
|
|
1107
|
+
template: "<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\" 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"
|
|
1108
|
+
},] }
|
|
1109
|
+
];
|
|
1110
|
+
FileUploadComponent.ctorParameters = () => [
|
|
1111
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
1112
|
+
{ type: FormGroupDirective },
|
|
1113
|
+
{ type: ControlUtility },
|
|
1114
|
+
{ type: UtilityService },
|
|
1115
|
+
{ type: ControlValidationService },
|
|
1116
|
+
{ type: GlobalSettings }
|
|
1117
|
+
];
|
|
1118
|
+
FileUploadComponent.propDecorators = {
|
|
1119
|
+
fileInput: [{ type: ViewChild, args: ['fileInput', { static: false },] }],
|
|
1120
|
+
group: [{ type: Input }],
|
|
1121
|
+
options: [{ type: Input }],
|
|
1122
|
+
OnChange: [{ type: Output }]
|
|
1123
|
+
};
|
|
1149
1124
|
|
|
1150
1125
|
class EnglishArabicDTO {
|
|
1151
1126
|
}
|
|
@@ -1554,22 +1529,26 @@ class MultiLingualTextBoxComponent {
|
|
|
1554
1529
|
}
|
|
1555
1530
|
}
|
|
1556
1531
|
MultiLingualTextBoxComponent.controlContainerstatic = null;
|
|
1557
|
-
MultiLingualTextBoxComponent
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1532
|
+
MultiLingualTextBoxComponent.decorators = [
|
|
1533
|
+
{ type: Component, args: [{
|
|
1534
|
+
selector: 'BBSF-MultiLingualTextBox',
|
|
1535
|
+
template: "\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"
|
|
1536
|
+
},] }
|
|
1537
|
+
];
|
|
1538
|
+
MultiLingualTextBoxComponent.ctorParameters = () => [
|
|
1539
|
+
{ type: FormGroupDirective },
|
|
1540
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
1541
|
+
{ type: ControlUtility },
|
|
1542
|
+
{ type: UtilityService },
|
|
1543
|
+
{ type: BBSFTranslateService },
|
|
1544
|
+
{ type: ControlValidationService },
|
|
1545
|
+
{ type: GlobalSettings }
|
|
1546
|
+
];
|
|
1547
|
+
MultiLingualTextBoxComponent.propDecorators = {
|
|
1548
|
+
group: [{ type: Input }],
|
|
1549
|
+
options: [{ type: Input }],
|
|
1550
|
+
OnChange: [{ type: Output }]
|
|
1551
|
+
};
|
|
1573
1552
|
|
|
1574
1553
|
class TextAreaComponent {
|
|
1575
1554
|
constructor(controlUtility, controlContainer, TextAreaControlHost, UtilityService, controlValidationService, globalSettings) {
|
|
@@ -1738,22 +1717,25 @@ class TextAreaComponent {
|
|
|
1738
1717
|
}
|
|
1739
1718
|
}
|
|
1740
1719
|
TextAreaComponent.controlContainerstatic = null;
|
|
1741
|
-
TextAreaComponent
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1720
|
+
TextAreaComponent.decorators = [
|
|
1721
|
+
{ type: Component, args: [{
|
|
1722
|
+
selector: 'BBSF-TextArea',
|
|
1723
|
+
template: "<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"
|
|
1724
|
+
},] }
|
|
1725
|
+
];
|
|
1726
|
+
TextAreaComponent.ctorParameters = () => [
|
|
1727
|
+
{ type: ControlUtility },
|
|
1728
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
1729
|
+
{ type: FormGroupDirective },
|
|
1730
|
+
{ type: UtilityService },
|
|
1731
|
+
{ type: ControlValidationService },
|
|
1732
|
+
{ type: GlobalSettings }
|
|
1733
|
+
];
|
|
1734
|
+
TextAreaComponent.propDecorators = {
|
|
1735
|
+
group: [{ type: Input }],
|
|
1736
|
+
options: [{ type: Input }],
|
|
1737
|
+
OnChange: [{ type: Output }]
|
|
1738
|
+
};
|
|
1757
1739
|
|
|
1758
1740
|
class MultiLingualTextAreaComponent {
|
|
1759
1741
|
constructor(MultiLingualTextAreaFormControlHost, controlContainer, controlUtility, UtilityService, controlValidationService, globalSettings) {
|
|
@@ -2155,22 +2137,25 @@ class MultiLingualTextAreaComponent {
|
|
|
2155
2137
|
}
|
|
2156
2138
|
}
|
|
2157
2139
|
MultiLingualTextAreaComponent.controlContainerstatic = null;
|
|
2158
|
-
MultiLingualTextAreaComponent
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2140
|
+
MultiLingualTextAreaComponent.decorators = [
|
|
2141
|
+
{ type: Component, args: [{
|
|
2142
|
+
selector: 'BBSF-MultiLingualTextArea',
|
|
2143
|
+
template: "<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"
|
|
2144
|
+
},] }
|
|
2145
|
+
];
|
|
2146
|
+
MultiLingualTextAreaComponent.ctorParameters = () => [
|
|
2147
|
+
{ type: FormGroupDirective },
|
|
2148
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
2149
|
+
{ type: ControlUtility },
|
|
2150
|
+
{ type: UtilityService },
|
|
2151
|
+
{ type: ControlValidationService },
|
|
2152
|
+
{ type: GlobalSettings }
|
|
2153
|
+
];
|
|
2154
|
+
MultiLingualTextAreaComponent.propDecorators = {
|
|
2155
|
+
group: [{ type: Input }],
|
|
2156
|
+
options: [{ type: Input }],
|
|
2157
|
+
OnChange: [{ type: Output }]
|
|
2158
|
+
};
|
|
2174
2159
|
|
|
2175
2160
|
class CheckBoxComponent {
|
|
2176
2161
|
// tslint:disable-next-line: max-line-length
|
|
@@ -2262,22 +2247,26 @@ class CheckBoxComponent {
|
|
|
2262
2247
|
}
|
|
2263
2248
|
}
|
|
2264
2249
|
CheckBoxComponent.controlContainerstatic = null;
|
|
2265
|
-
CheckBoxComponent
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2250
|
+
CheckBoxComponent.decorators = [
|
|
2251
|
+
{ type: Component, args: [{
|
|
2252
|
+
// tslint:disable-next-line: component-selector
|
|
2253
|
+
selector: 'BBSF-CheckBox',
|
|
2254
|
+
template: "<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"
|
|
2255
|
+
},] }
|
|
2256
|
+
];
|
|
2257
|
+
CheckBoxComponent.ctorParameters = () => [
|
|
2258
|
+
{ type: ControlUtility },
|
|
2259
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
2260
|
+
{ type: FormGroupDirective },
|
|
2261
|
+
{ type: UtilityService },
|
|
2262
|
+
{ type: BBSFTranslateService },
|
|
2263
|
+
{ type: ControlValidationService }
|
|
2264
|
+
];
|
|
2265
|
+
CheckBoxComponent.propDecorators = {
|
|
2266
|
+
group: [{ type: Input }],
|
|
2267
|
+
options: [{ type: Input }],
|
|
2268
|
+
OnChange: [{ type: Output }]
|
|
2269
|
+
};
|
|
2281
2270
|
|
|
2282
2271
|
class DropdownListComponent {
|
|
2283
2272
|
// tslint:disable-next-line: max-line-length
|
|
@@ -2429,24 +2418,28 @@ class DropdownListComponent {
|
|
|
2429
2418
|
}
|
|
2430
2419
|
}
|
|
2431
2420
|
DropdownListComponent.controlContainerstatic = null;
|
|
2432
|
-
DropdownListComponent
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2421
|
+
DropdownListComponent.decorators = [
|
|
2422
|
+
{ type: Component, args: [{
|
|
2423
|
+
// tslint:disable-next-line: component-selector
|
|
2424
|
+
selector: 'BBSF-DropdownList',
|
|
2425
|
+
template: "<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"
|
|
2426
|
+
},] }
|
|
2427
|
+
];
|
|
2428
|
+
DropdownListComponent.ctorParameters = () => [
|
|
2429
|
+
{ type: OnPagingFiltersChangeService },
|
|
2430
|
+
{ type: ControlUtility },
|
|
2431
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
2432
|
+
{ type: FormGroupDirective },
|
|
2433
|
+
{ type: UtilityService },
|
|
2434
|
+
{ type: ControlValidationService },
|
|
2435
|
+
{ type: GlobalSettings }
|
|
2436
|
+
];
|
|
2437
|
+
DropdownListComponent.propDecorators = {
|
|
2438
|
+
group: [{ type: Input }],
|
|
2439
|
+
options: [{ type: Input }],
|
|
2440
|
+
OnChange: [{ type: Output }],
|
|
2441
|
+
onClear: [{ type: Output }]
|
|
2442
|
+
};
|
|
2450
2443
|
|
|
2451
2444
|
class PhoneComponent {
|
|
2452
2445
|
// tslint:disable-next-line: max-line-length
|
|
@@ -2546,22 +2539,25 @@ class PhoneComponent {
|
|
|
2546
2539
|
}
|
|
2547
2540
|
}
|
|
2548
2541
|
PhoneComponent.controlContainerstatic = null;
|
|
2549
|
-
PhoneComponent
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2542
|
+
PhoneComponent.decorators = [
|
|
2543
|
+
{ type: Component, args: [{
|
|
2544
|
+
selector: 'BBSF-Phone',
|
|
2545
|
+
template: "\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"
|
|
2546
|
+
},] }
|
|
2547
|
+
];
|
|
2548
|
+
PhoneComponent.ctorParameters = () => [
|
|
2549
|
+
{ type: ControlUtility },
|
|
2550
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
2551
|
+
{ type: FormGroupDirective },
|
|
2552
|
+
{ type: UtilityService },
|
|
2553
|
+
{ type: ControlValidationService },
|
|
2554
|
+
{ type: GlobalSettings }
|
|
2555
|
+
];
|
|
2556
|
+
PhoneComponent.propDecorators = {
|
|
2557
|
+
group: [{ type: Input }],
|
|
2558
|
+
options: [{ type: Input }],
|
|
2559
|
+
OnChange: [{ type: Output }]
|
|
2560
|
+
};
|
|
2565
2561
|
|
|
2566
2562
|
class ToggleslideComponent {
|
|
2567
2563
|
// tslint:disable-next-line: max-line-length
|
|
@@ -2621,22 +2617,26 @@ class ToggleslideComponent {
|
|
|
2621
2617
|
}
|
|
2622
2618
|
}
|
|
2623
2619
|
ToggleslideComponent.controlContainerstatic = null;
|
|
2624
|
-
ToggleslideComponent
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2620
|
+
ToggleslideComponent.decorators = [
|
|
2621
|
+
{ type: Component, args: [{
|
|
2622
|
+
selector: 'BBSF-Toggleslide',
|
|
2623
|
+
template: "<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"
|
|
2624
|
+
},] }
|
|
2625
|
+
];
|
|
2626
|
+
ToggleslideComponent.ctorParameters = () => [
|
|
2627
|
+
{ type: ControlUtility },
|
|
2628
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
2629
|
+
{ type: FormGroupDirective },
|
|
2630
|
+
{ type: FormGroupDirective },
|
|
2631
|
+
{ type: UtilityService },
|
|
2632
|
+
{ type: ControlValidationService },
|
|
2633
|
+
{ type: GlobalSettings }
|
|
2634
|
+
];
|
|
2635
|
+
ToggleslideComponent.propDecorators = {
|
|
2636
|
+
group: [{ type: Input }],
|
|
2637
|
+
options: [{ type: Input }],
|
|
2638
|
+
OnChange: [{ type: Output }]
|
|
2639
|
+
};
|
|
2640
2640
|
|
|
2641
2641
|
class HtmlEditorComponent {
|
|
2642
2642
|
constructor(zone, controlUtility, controlContainer, HtmlEditorControlHost, UtilityService, controlValidationService, globalSettings) {
|
|
@@ -2835,22 +2835,26 @@ class HtmlEditorComponent {
|
|
|
2835
2835
|
}
|
|
2836
2836
|
}
|
|
2837
2837
|
HtmlEditorComponent.controlContainerstatic = null;
|
|
2838
|
-
HtmlEditorComponent
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2838
|
+
HtmlEditorComponent.decorators = [
|
|
2839
|
+
{ type: Component, args: [{
|
|
2840
|
+
selector: 'BBSF-HtmlEditor',
|
|
2841
|
+
template: "\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"
|
|
2842
|
+
},] }
|
|
2843
|
+
];
|
|
2844
|
+
HtmlEditorComponent.ctorParameters = () => [
|
|
2845
|
+
{ type: NgZone },
|
|
2846
|
+
{ type: ControlUtility },
|
|
2847
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
2848
|
+
{ type: FormGroupDirective },
|
|
2849
|
+
{ type: UtilityService },
|
|
2850
|
+
{ type: ControlValidationService },
|
|
2851
|
+
{ type: GlobalSettings }
|
|
2852
|
+
];
|
|
2853
|
+
HtmlEditorComponent.propDecorators = {
|
|
2854
|
+
group: [{ type: Input }],
|
|
2855
|
+
options: [{ type: Input }],
|
|
2856
|
+
OnChange: [{ type: Output }]
|
|
2857
|
+
};
|
|
2854
2858
|
|
|
2855
2859
|
class MultiLingualHtmlEditorComponent {
|
|
2856
2860
|
constructor(MultiLingualHtmlEditorFormControlHost, controlContainer, controlUtility, UtilityService, controlValidationService, globalSettings) {
|
|
@@ -3252,22 +3256,25 @@ class MultiLingualHtmlEditorComponent {
|
|
|
3252
3256
|
}
|
|
3253
3257
|
}
|
|
3254
3258
|
MultiLingualHtmlEditorComponent.controlContainerstatic = null;
|
|
3255
|
-
MultiLingualHtmlEditorComponent
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3259
|
+
MultiLingualHtmlEditorComponent.decorators = [
|
|
3260
|
+
{ type: Component, args: [{
|
|
3261
|
+
selector: 'BBSF-MultiLingualHtmlEditor',
|
|
3262
|
+
template: "\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"
|
|
3263
|
+
},] }
|
|
3264
|
+
];
|
|
3265
|
+
MultiLingualHtmlEditorComponent.ctorParameters = () => [
|
|
3266
|
+
{ type: FormGroupDirective },
|
|
3267
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
3268
|
+
{ type: ControlUtility },
|
|
3269
|
+
{ type: UtilityService },
|
|
3270
|
+
{ type: ControlValidationService },
|
|
3271
|
+
{ type: GlobalSettings }
|
|
3272
|
+
];
|
|
3273
|
+
MultiLingualHtmlEditorComponent.propDecorators = {
|
|
3274
|
+
group: [{ type: Input }],
|
|
3275
|
+
options: [{ type: Input }],
|
|
3276
|
+
OnChange: [{ type: Output }]
|
|
3277
|
+
};
|
|
3271
3278
|
|
|
3272
3279
|
class ImageUploaderComponent {
|
|
3273
3280
|
constructor(zone, controlUtility, controlContainer, ImageUplaoderControlHost, UtilityService, controlValidationService, globalSettings, modalService) {
|
|
@@ -3585,28 +3592,29 @@ class ImageUploaderComponent {
|
|
|
3585
3592
|
}
|
|
3586
3593
|
}
|
|
3587
3594
|
ImageUploaderComponent.controlContainerstatic = null;
|
|
3588
|
-
ImageUploaderComponent
|
|
3589
|
-
ImageUploaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ImageUploaderComponent, selector: "BBSF-ImageUpload", inputs: { group: "group", options: "options" }, outputs: { OnChange: "OnChange" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "angularCropper", first: true, predicate: ["angularCropper"], descendants: true }], ngImport: i0, template: "<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", components: [{ type: i6$4.NgxDropzoneComponent, selector: "ngx-dropzone, [ngx-dropzone]", inputs: ["accept", "disabled", "multiple", "maxFileSize", "expandable", "disableClick", "id", "aria-label", "aria-labelledby", "aria-describedby"], outputs: ["change"] }, { type: i6$4.NgxDropzoneImagePreviewComponent, selector: "ngx-dropzone-image-preview", inputs: ["file"] }, { type: i7$2.CropperComponent, selector: "angular-cropper", inputs: ["cropperOptions", "imageUrl", "settings", "cropbox", "loadImageErrorText"], outputs: ["export", "ready"] }], directives: [{ type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6$4.ɵb, selector: "ngx-dropzone-label" }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3$1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }], pipes: { "keyvalue": i6.KeyValuePipe } });
|
|
3590
|
-
|
|
3591
|
-
|
|
3592
|
-
|
|
3593
|
-
|
|
3594
|
-
|
|
3595
|
-
|
|
3596
|
-
|
|
3597
|
-
|
|
3598
|
-
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
|
|
3595
|
+
ImageUploaderComponent.decorators = [
|
|
3596
|
+
{ type: Component, args: [{
|
|
3597
|
+
selector: 'BBSF-ImageUpload',
|
|
3598
|
+
template: "<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"
|
|
3599
|
+
},] }
|
|
3600
|
+
];
|
|
3601
|
+
ImageUploaderComponent.ctorParameters = () => [
|
|
3602
|
+
{ type: NgZone },
|
|
3603
|
+
{ type: ControlUtility },
|
|
3604
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
3605
|
+
{ type: FormGroupDirective },
|
|
3606
|
+
{ type: UtilityService },
|
|
3607
|
+
{ type: ControlValidationService },
|
|
3608
|
+
{ type: GlobalSettings },
|
|
3609
|
+
{ type: NgbModal }
|
|
3610
|
+
];
|
|
3611
|
+
ImageUploaderComponent.propDecorators = {
|
|
3612
|
+
fileInput: [{ type: ViewChild, args: ['fileInput', { static: false },] }],
|
|
3613
|
+
group: [{ type: Input }],
|
|
3614
|
+
options: [{ type: Input }],
|
|
3615
|
+
OnChange: [{ type: Output }],
|
|
3616
|
+
angularCropper: [{ type: ViewChild, args: ['angularCropper', { static: false },] }]
|
|
3617
|
+
};
|
|
3610
3618
|
|
|
3611
3619
|
class ProfilePictureDTO {
|
|
3612
3620
|
}
|
|
@@ -3930,28 +3938,28 @@ class ProfileImageUploaderComponent {
|
|
|
3930
3938
|
}
|
|
3931
3939
|
}
|
|
3932
3940
|
ProfileImageUploaderComponent.controlContainerstatic = null;
|
|
3933
|
-
ProfileImageUploaderComponent
|
|
3934
|
-
ProfileImageUploaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ProfileImageUploaderComponent, selector: "BBSF-ProfileImageUploader", inputs: { group: "group", options: "options" }, outputs: { OnChange: "OnChange" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "angularCropper", first: true, predicate: ["angularCropper"], descendants: true }], ngImport: i0, template: "<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", components: [{ type: i6$4.NgxDropzoneComponent, selector: "ngx-dropzone, [ngx-dropzone]", inputs: ["accept", "disabled", "multiple", "maxFileSize", "expandable", "disableClick", "id", "aria-label", "aria-labelledby", "aria-describedby"], outputs: ["change"] }, { type: i6$4.NgxDropzoneImagePreviewComponent, selector: "ngx-dropzone-image-preview", inputs: ["file"] }, { type: i7$2.CropperComponent, selector: "angular-cropper", inputs: ["cropperOptions", "imageUrl", "settings", "cropbox", "loadImageErrorText"], outputs: ["export", "ready"] }], directives: [{ type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6$4.ɵb, selector: "ngx-dropzone-label" }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3$1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }], pipes: { "keyvalue": i6.KeyValuePipe } });
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3941
|
+
ProfileImageUploaderComponent.decorators = [
|
|
3942
|
+
{ type: Component, args: [{
|
|
3943
|
+
selector: 'BBSF-ProfileImageUploader',
|
|
3944
|
+
template: "<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"
|
|
3945
|
+
},] }
|
|
3946
|
+
];
|
|
3947
|
+
ProfileImageUploaderComponent.ctorParameters = () => [
|
|
3948
|
+
{ type: NgZone },
|
|
3949
|
+
{ type: ControlUtility },
|
|
3950
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
3951
|
+
{ type: FormGroupDirective },
|
|
3952
|
+
{ type: UtilityService },
|
|
3953
|
+
{ type: ControlValidationService },
|
|
3954
|
+
{ type: GlobalSettings }
|
|
3955
|
+
];
|
|
3956
|
+
ProfileImageUploaderComponent.propDecorators = {
|
|
3957
|
+
fileInput: [{ type: ViewChild, args: ['fileInput', { static: false },] }],
|
|
3958
|
+
group: [{ type: Input }],
|
|
3959
|
+
options: [{ type: Input }],
|
|
3960
|
+
OnChange: [{ type: Output }],
|
|
3961
|
+
angularCropper: [{ type: ViewChild, args: ['angularCropper', { static: false },] }]
|
|
3962
|
+
};
|
|
3955
3963
|
|
|
3956
3964
|
class AutocompleteDTO {
|
|
3957
3965
|
constructor() {
|
|
@@ -4175,358 +4183,29 @@ class AutocompleteTextBoxComponent {
|
|
|
4175
4183
|
}
|
|
4176
4184
|
}
|
|
4177
4185
|
AutocompleteTextBoxComponent.controlContainerstatic = null;
|
|
4178
|
-
AutocompleteTextBoxComponent
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
}
|
|
4201
|
-
|
|
4202
|
-
const noop = () => { };
|
|
4203
|
-
const TAGS_INPUT_TEMPLATE = `
|
|
4204
|
-
|
|
4205
|
-
<div class="tags-input">
|
|
4206
|
-
<span class="tags-input__tag label label-primary badge badge-primary" *ngFor="let tag of tags">
|
|
4207
|
-
|
|
4208
|
-
<span [ngSwitch]="ViewMode">
|
|
4209
|
-
<span *ngSwitchCase="tagInputViewEnum.WithImage">
|
|
4210
|
-
<img style="border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;"
|
|
4211
|
-
src="{{(tag.imageURL?tag.imageURL:defaultImageURL)}}" />
|
|
4212
|
-
</span>
|
|
4213
|
-
|
|
4214
|
-
<span *ngSwitchCase="tagInputViewEnum.WithInitial">
|
|
4215
|
-
<div class="user-initials">{{calculateInitials(tag.name)}}</div>
|
|
4216
|
-
</span>
|
|
4217
|
-
|
|
4218
|
-
<span *ngSwitchDefault>
|
|
4219
|
-
</span>
|
|
4220
|
-
|
|
4221
|
-
</span>
|
|
4222
|
-
{{tag[displayField]}}
|
|
4223
|
-
<span *ngIf="isDeleteable(tag)" role="button" class="tags-input__tag-remove-btn" (click)="removeTag(tag)"
|
|
4224
|
-
(touch)="removeTag(tag)">
|
|
4225
|
-
<span aria-hidden="true">×</span>
|
|
4226
|
-
<span class="sr-only">Close</span>
|
|
4227
|
-
</span>
|
|
4228
|
-
</span>
|
|
4229
|
-
|
|
4230
|
-
<input *ngIf="options === null; else withTypeahead" class="tags-input__input-field" type="text"
|
|
4231
|
-
[placeholder]="getPlaceholder()" name="tags" (keyup.enter)="addTag(tagInput)"
|
|
4232
|
-
(keydown.backspace)="removeLastTag(tagInput)" [disabled]="!canAddTags || maximumOfTagsReached()"
|
|
4233
|
-
[hidden]="!canAddTags || maximumOfTagsReached()" #tagInput />
|
|
4234
|
-
|
|
4235
|
-
<ng-template #withTypeahead>
|
|
4236
|
-
<span [ngSwitch]="ViewMode">
|
|
4237
|
-
<span *ngSwitchCase="tagInputViewEnum.WithImage">
|
|
4238
|
-
<input *ngIf="(options !== null)" class="tags-input__input-field" type="text" [placeholder]="getPlaceholder()"
|
|
4239
|
-
name="tags" (keydown.backspace)="removeLastTag(tagInput)" [(ngModel)]="selected" [typeahead]="options"
|
|
4240
|
-
[typeaheadOptionField]="displayField" (typeaheadOnSelect)="typeaheadOnSelect($event)"
|
|
4241
|
-
(typeaheadNoResults)="typeaheadOnNoMatch($event)" [typeaheadMinLength]="minLengthBeforeOptions"
|
|
4242
|
-
[typeaheadScrollable]="scrollableOptions" [typeaheadLatinize]="true"
|
|
4243
|
-
[typeaheadItemTemplate]="itemTemplateWithImage" [typeaheadOptionsInScrollableView]="scrollableOptionsInView"
|
|
4244
|
-
[disabled]="!canAddTags || maximumOfTagsReached()" [hidden]="!canAddTags || maximumOfTagsReached()"
|
|
4245
|
-
(blur)="onBlur()" autocomplete="off"
|
|
4246
|
-
#tagInput />
|
|
4247
|
-
</span>
|
|
4248
|
-
|
|
4249
|
-
<span *ngSwitchCase="tagInputViewEnum.WithoutImage">
|
|
4250
|
-
<input *ngIf="(options !== null)" class="tags-input__input-field" type="text" [placeholder]="getPlaceholder()"
|
|
4251
|
-
name="tags" (keydown.backspace)="removeLastTag(tagInput)" [(ngModel)]="selected" [typeahead]="options"
|
|
4252
|
-
[typeaheadOptionField]="displayField" (typeaheadOnSelect)="typeaheadOnSelect($event)"
|
|
4253
|
-
(typeaheadNoResults)="typeaheadOnNoMatch($event)" [typeaheadMinLength]="minLengthBeforeOptions"
|
|
4254
|
-
[typeaheadScrollable]="scrollableOptions" [typeaheadLatinize]="true"
|
|
4255
|
-
[typeaheadItemTemplate]="itemTemplateWithoutImage"
|
|
4256
|
-
[typeaheadOptionsInScrollableView]="scrollableOptionsInView"
|
|
4257
|
-
[disabled]="!canAddTags || maximumOfTagsReached()" [hidden]="!canAddTags || maximumOfTagsReached()"
|
|
4258
|
-
(blur)="onBlur()" autocomplete="off"
|
|
4259
|
-
#tagInput />
|
|
4260
|
-
</span>
|
|
4261
|
-
|
|
4262
|
-
<span *ngSwitchCase="tagInputViewEnum.WithInitial">
|
|
4263
|
-
<input *ngIf="(options !== null)" class="tags-input__input-field" type="text" [placeholder]="getPlaceholder()"
|
|
4264
|
-
name="tags" (keydown.backspace)="removeLastTag(tagInput)" [(ngModel)]="selected" [typeahead]="options"
|
|
4265
|
-
[typeaheadOptionField]="displayField" (typeaheadOnSelect)="typeaheadOnSelect($event)"
|
|
4266
|
-
(typeaheadNoResults)="typeaheadOnNoMatch($event)" [typeaheadMinLength]="minLengthBeforeOptions"
|
|
4267
|
-
[typeaheadScrollable]="scrollableOptions" [typeaheadLatinize]="true"
|
|
4268
|
-
[typeaheadItemTemplate]="itemTemplateWithoutInitial"
|
|
4269
|
-
[typeaheadOptionsInScrollableView]="scrollableOptionsInView"
|
|
4270
|
-
[disabled]="!canAddTags || maximumOfTagsReached()" [hidden]="!canAddTags || maximumOfTagsReached()"
|
|
4271
|
-
(blur)="onBlur()" autocomplete="off"
|
|
4272
|
-
#tagInput />
|
|
4273
|
-
</span>
|
|
4274
|
-
|
|
4275
|
-
<span *ngSwitchDefault>
|
|
4276
|
-
<input *ngIf="(options !== null)" class="tags-input__input-field" type="text" [placeholder]="getPlaceholder()"
|
|
4277
|
-
name="tags" (keydown.backspace)="removeLastTag(tagInput)" [(ngModel)]="selected" [typeahead]="options"
|
|
4278
|
-
[typeaheadOptionField]="displayField" (typeaheadOnSelect)="typeaheadOnSelect($event)"
|
|
4279
|
-
(typeaheadNoResults)="typeaheadOnNoMatch($event)" [typeaheadMinLength]="minLengthBeforeOptions"
|
|
4280
|
-
[typeaheadScrollable]="scrollableOptions" [typeaheadLatinize]="true"
|
|
4281
|
-
[typeaheadItemTemplate]="itemTemplateWithoutImage"
|
|
4282
|
-
[typeaheadOptionsInScrollableView]="scrollableOptionsInView"
|
|
4283
|
-
[disabled]="!canAddTags || maximumOfTagsReached()" [hidden]="!canAddTags || maximumOfTagsReached()"
|
|
4284
|
-
(blur)="onBlur()" autocomplete="off"
|
|
4285
|
-
#tagInput />
|
|
4286
|
-
</span>
|
|
4287
|
-
|
|
4288
|
-
</span>
|
|
4289
|
-
|
|
4290
|
-
</ng-template>
|
|
4291
|
-
|
|
4292
|
-
<ng-template #itemTemplateWithImage let-model="item" let-index="index">
|
|
4293
|
-
<img
|
|
4294
|
-
style="border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;"
|
|
4295
|
-
src="{{(model.imageURL?model.imageURL:defaultImageURL)}}" />
|
|
4296
|
-
<div>
|
|
4297
|
-
<a [innerHTML]="model.name"></a>
|
|
4298
|
-
<p *ngIf="showDescription">
|
|
4299
|
-
{{model.description}}
|
|
4300
|
-
</p>
|
|
4301
|
-
</div>
|
|
4302
|
-
</ng-template>
|
|
4303
|
-
|
|
4304
|
-
<ng-template #itemTemplateWithoutImage let-model="item" let-index="index">
|
|
4305
|
-
<div>
|
|
4306
|
-
<a [innerHTML]="model.name"></a>
|
|
4307
|
-
<p *ngIf="showDescription">
|
|
4308
|
-
{{model.description}}
|
|
4309
|
-
</p>
|
|
4310
|
-
</div>
|
|
4311
|
-
</ng-template>
|
|
4312
|
-
|
|
4313
|
-
<ng-template #itemTemplateWithoutInitial let-model="item" let-index="index">
|
|
4314
|
-
<div class="user-image">
|
|
4315
|
-
<div class="user-initials">{{calculateInitials(model.name)}}</div>
|
|
4316
|
-
</div>
|
|
4317
|
-
<div>
|
|
4318
|
-
<a [innerHTML]="model.name"></a>
|
|
4319
|
-
<p *ngIf="showDescription">
|
|
4320
|
-
{{model.description}}
|
|
4321
|
-
</p>
|
|
4322
|
-
</div>
|
|
4323
|
-
</ng-template>
|
|
4324
|
-
</div>
|
|
4325
|
-
`;
|
|
4326
|
-
const TAGS_INPUT_STYLE = `
|
|
4327
|
-
:host {
|
|
4328
|
-
overflow: auto;
|
|
4329
|
-
white-space: nowrap;
|
|
4330
|
-
}
|
|
4331
|
-
|
|
4332
|
-
.tags-input {
|
|
4333
|
-
align-items: center;
|
|
4334
|
-
display: flex;
|
|
4335
|
-
flex-wrap: wrap;
|
|
4336
|
-
}
|
|
4337
|
-
|
|
4338
|
-
.tags-input__tag {
|
|
4339
|
-
display: inline-block;
|
|
4340
|
-
margin-bottom: 2px;
|
|
4341
|
-
margin-right: 5px;
|
|
4342
|
-
padding-right: 0.3em;
|
|
4343
|
-
}
|
|
4344
|
-
|
|
4345
|
-
.tags-input__tag-remove-btn {
|
|
4346
|
-
cursor: pointer;
|
|
4347
|
-
display: inline-block;
|
|
4348
|
-
font-size: 12px;
|
|
4349
|
-
margin: -3px 0 0 3px;
|
|
4350
|
-
padding: 0;
|
|
4351
|
-
vertical-align: top;
|
|
4352
|
-
}
|
|
4353
|
-
|
|
4354
|
-
.tags-input__input-field {
|
|
4355
|
-
border: none;
|
|
4356
|
-
flex-grow: 1;
|
|
4357
|
-
outline: none;
|
|
4358
|
-
}
|
|
4359
|
-
`;
|
|
4360
|
-
const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
|
|
4361
|
-
provide: NG_VALUE_ACCESSOR,
|
|
4362
|
-
useExisting: forwardRef(() => BTagsInputComponent),
|
|
4363
|
-
multi: true
|
|
4364
|
-
};
|
|
4365
|
-
class BTagsInputComponent {
|
|
4366
|
-
constructor() {
|
|
4367
|
-
this.selected = '';
|
|
4368
|
-
this.tags = [];
|
|
4369
|
-
this.onTouchedCallback = noop;
|
|
4370
|
-
this.onChangeCallback = noop;
|
|
4371
|
-
this.tagInputViewEnum = TagInputView;
|
|
4372
|
-
this.removeLastOnBackspace = false;
|
|
4373
|
-
this.canDeleteTags = true;
|
|
4374
|
-
this.canAddTags = true;
|
|
4375
|
-
this.ViewMode = TagInputView.WithoutImage;
|
|
4376
|
-
this.placeholder = '';
|
|
4377
|
-
this.showDescription = true;
|
|
4378
|
-
this.options = null;
|
|
4379
|
-
this.defaultImageURL = null;
|
|
4380
|
-
this.displayField = 'name';
|
|
4381
|
-
this.minLengthBeforeOptions = 1;
|
|
4382
|
-
this.scrollableOptions = false;
|
|
4383
|
-
this.scrollableOptionsInView = 5;
|
|
4384
|
-
this.onTagsChanged = new EventEmitter();
|
|
4385
|
-
this.onMaxTagsReached = new EventEmitter();
|
|
4386
|
-
this.onNoOptionsMatch = new EventEmitter();
|
|
4387
|
-
this.onBlurInput = new EventEmitter();
|
|
4388
|
-
}
|
|
4389
|
-
getPlaceholder() {
|
|
4390
|
-
if (this.tags && this.tags.length > 0) {
|
|
4391
|
-
return '';
|
|
4392
|
-
}
|
|
4393
|
-
return this.placeholder;
|
|
4394
|
-
}
|
|
4395
|
-
tagsChanged(type, tag) {
|
|
4396
|
-
this.onChangeCallback(this.tags);
|
|
4397
|
-
this.onTagsChanged.emit({
|
|
4398
|
-
change: type,
|
|
4399
|
-
tag: tag
|
|
4400
|
-
});
|
|
4401
|
-
if (this.maximumOfTagsReached()) {
|
|
4402
|
-
this.onMaxTagsReached.emit();
|
|
4403
|
-
}
|
|
4404
|
-
}
|
|
4405
|
-
removeLastTag(tagInput) {
|
|
4406
|
-
var _a;
|
|
4407
|
-
if (!this.removeLastOnBackspace || !((_a = this.tags) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
4408
|
-
return;
|
|
4409
|
-
}
|
|
4410
|
-
if (tagInput.value === '') {
|
|
4411
|
-
this.removeTag(this.tags[this.tags.length - 1]);
|
|
4412
|
-
}
|
|
4413
|
-
}
|
|
4414
|
-
addTag(tagInput) {
|
|
4415
|
-
if (tagInput.value.trim() !== '') {
|
|
4416
|
-
let tag = {
|
|
4417
|
-
[this.displayField]: tagInput.value
|
|
4418
|
-
};
|
|
4419
|
-
this.addPredefinedTag(tag);
|
|
4420
|
-
}
|
|
4421
|
-
tagInput.value = '';
|
|
4422
|
-
}
|
|
4423
|
-
addPredefinedTag(tag) {
|
|
4424
|
-
if (this.tags == null)
|
|
4425
|
-
this.tags = [];
|
|
4426
|
-
if (!this.maximumOfTagsReached()) {
|
|
4427
|
-
this.tags.push(tag);
|
|
4428
|
-
this.tagsChanged('add', tag);
|
|
4429
|
-
}
|
|
4430
|
-
}
|
|
4431
|
-
removeTag(tagToRemove) {
|
|
4432
|
-
if (!this.isDeleteable(tagToRemove)) {
|
|
4433
|
-
return;
|
|
4434
|
-
}
|
|
4435
|
-
this.tags = this.tags.filter(tag => tagToRemove !== tag);
|
|
4436
|
-
this.tagsChanged('remove', tagToRemove);
|
|
4437
|
-
}
|
|
4438
|
-
maximumOfTagsReached() {
|
|
4439
|
-
return typeof this.maxTags !== 'undefined' && this.tags && this.tags.length >= this.maxTags;
|
|
4440
|
-
}
|
|
4441
|
-
isDeleteable(tag) {
|
|
4442
|
-
if (typeof tag.deleteable !== "undefined" && !tag.deleteable) {
|
|
4443
|
-
return false;
|
|
4444
|
-
}
|
|
4445
|
-
return this.canDeleteTags;
|
|
4446
|
-
}
|
|
4447
|
-
typeaheadOnSelect(e) {
|
|
4448
|
-
if (typeof e.item === 'string') {
|
|
4449
|
-
this.addPredefinedTag({
|
|
4450
|
-
[this.displayField]: e.value
|
|
4451
|
-
});
|
|
4452
|
-
}
|
|
4453
|
-
else {
|
|
4454
|
-
this.addPredefinedTag(e.item);
|
|
4455
|
-
}
|
|
4456
|
-
this.selected = '';
|
|
4457
|
-
}
|
|
4458
|
-
typeaheadOnNoMatch(e) {
|
|
4459
|
-
if (typeof this.onNoOptionsMatch !== 'undefined') {
|
|
4460
|
-
this.onNoOptionsMatch.emit(e);
|
|
4461
|
-
}
|
|
4462
|
-
}
|
|
4463
|
-
writeValue(value) {
|
|
4464
|
-
if (value !== this.tags) {
|
|
4465
|
-
this.tags = value;
|
|
4466
|
-
}
|
|
4467
|
-
}
|
|
4468
|
-
registerOnChange(fn) {
|
|
4469
|
-
this.onChangeCallback = fn;
|
|
4470
|
-
}
|
|
4471
|
-
registerOnTouched(fn) {
|
|
4472
|
-
this.onTouchedCallback = fn;
|
|
4473
|
-
}
|
|
4474
|
-
calculateInitials(name) {
|
|
4475
|
-
var fullName = name.split(' ');
|
|
4476
|
-
var initials = "";
|
|
4477
|
-
if (fullName.length > 1)
|
|
4478
|
-
initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);
|
|
4479
|
-
else
|
|
4480
|
-
initials = fullName.shift().charAt(0);
|
|
4481
|
-
return initials.toUpperCase();
|
|
4482
|
-
}
|
|
4483
|
-
onBlur() {
|
|
4484
|
-
this.onBlurInput.emit();
|
|
4485
|
-
}
|
|
4486
|
-
}
|
|
4487
|
-
BTagsInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BTagsInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4488
|
-
BTagsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: BTagsInputComponent, selector: "b-tags-input", inputs: { maxTags: "maxTags", removeLastOnBackspace: "removeLastOnBackspace", canDeleteTags: "canDeleteTags", canAddTags: "canAddTags", ViewMode: "ViewMode", placeholder: "placeholder", showDescription: "showDescription", options: "options", defaultImageURL: "defaultImageURL", minLengthBeforeOptions: "minLengthBeforeOptions", scrollableOptions: "scrollableOptions", scrollableOptionsInView: "scrollableOptionsInView" }, outputs: { onTagsChanged: "onTagsChanged", onMaxTagsReached: "onMaxTagsReached", onNoOptionsMatch: "onNoOptionsMatch", onBlurInput: "onBlurInput" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "\n\n<div class=\"tags-input\">\n<span class=\"tags-input__tag label label-primary badge badge-primary\" *ngFor=\"let tag of tags\">\n\n<span [ngSwitch]=\"ViewMode\">\n<span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\n<img style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\nsrc=\"{{(tag.imageURL?tag.imageURL:defaultImageURL)}}\" />\n</span>\n\n<span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\n<div class=\"user-initials\">{{calculateInitials(tag.name)}}</div>\n</span>\n\n<span *ngSwitchDefault>\n</span>\n\n</span>\n {{tag[displayField]}}\n <span *ngIf=\"isDeleteable(tag)\" role=\"button\" class=\"tags-input__tag-remove-btn\" (click)=\"removeTag(tag)\"\n (touch)=\"removeTag(tag)\">\n <span aria-hidden=\"true\">×</span>\n <span class=\"sr-only\">Close</span>\n </span>\n</span>\n\n<input *ngIf=\"options === null; else withTypeahead\" class=\"tags-input__input-field\" type=\"text\"\n [placeholder]=\"getPlaceholder()\" name=\"tags\" (keyup.enter)=\"addTag(tagInput)\"\n (keydown.backspace)=\"removeLastTag(tagInput)\" [disabled]=\"!canAddTags || maximumOfTagsReached()\"\n [hidden]=\"!canAddTags || maximumOfTagsReached()\" #tagInput />\n\n<ng-template #withTypeahead>\n <span [ngSwitch]=\"ViewMode\">\n <span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithImage\" [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n (blur)=\"onBlur()\" autocomplete=\"off\"\n #tagInput />\n </span>\n\n <span *ngSwitchCase=\"tagInputViewEnum.WithoutImage\">\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n (blur)=\"onBlur()\" autocomplete=\"off\"\n #tagInput />\n </span>\n\n <span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithoutInitial\"\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n (blur)=\"onBlur()\" autocomplete=\"off\"\n #tagInput />\n </span>\n\n <span *ngSwitchDefault>\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\n (blur)=\"onBlur()\" autocomplete=\"off\"\n #tagInput />\n </span>\n\n </span>\n\n</ng-template>\n\n<ng-template #itemTemplateWithImage let-model=\"item\" let-index=\"index\">\n <img\n style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\n src=\"{{(model.imageURL?model.imageURL:defaultImageURL)}}\" />\n <div>\n <a [innerHTML]=\"model.name\"></a>\n <p *ngIf=\"showDescription\">\n {{model.description}}\n </p>\n </div>\n</ng-template>\n\n<ng-template #itemTemplateWithoutImage let-model=\"item\" let-index=\"index\">\n <div>\n <a [innerHTML]=\"model.name\"></a>\n <p *ngIf=\"showDescription\">\n {{model.description}}\n </p>\n </div>\n</ng-template>\n\n<ng-template #itemTemplateWithoutInitial let-model=\"item\" let-index=\"index\">\n <div class=\"user-image\">\n <div class=\"user-initials\">{{calculateInitials(model.name)}}</div>\n </div>\n <div>\n <a [innerHTML]=\"model.name\"></a>\n <p *ngIf=\"showDescription\">\n {{model.description}}\n </p>\n </div>\n</ng-template>\n</div>\n", isInline: true, styles: [":host{overflow:auto;white-space:nowrap}.tags-input{align-items:center;display:flex;flex-wrap:wrap}.tags-input__tag{display:inline-block;margin-bottom:2px;margin-right:5px;padding-right:.3em}.tags-input__tag-remove-btn{cursor:pointer;display:inline-block;font-size:12px;margin:-3px 0 0 3px;padding:0;vertical-align:top}.tags-input__input-field{border:none;flex-grow:1;outline:none}\n"], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.TypeaheadDirective, selector: "[typeahead]", inputs: ["isAnimated", "typeaheadLatinize", "typeaheadSingleWords", "typeaheadWordDelimiters", "typeaheadMultipleSearchDelimiters", "typeaheadPhraseDelimiters", "typeaheadScrollable", "typeaheadOptionsInScrollableView", "typeaheadSelectFirstItem", "typeaheadIsFirstItemActive", "dropup", "typeaheadOptionsLimit", "typeaheadMinLength", "typeaheadWaitMs", "typeaheadAsync", "typeahead", "adaptivePosition", "typeaheadOptionField", "typeaheadGroupField", "typeaheadOrderBy", "typeaheadMultipleSearch", "typeaheadItemTemplate", "optionsListTemplate", "typeaheadHideResultsOnBlur", "container"], outputs: ["typeaheadLoading", "typeaheadNoResults", "typeaheadOnSelect", "typeaheadOnBlur"], exportAs: ["bs-typeahead"] }] });
|
|
4489
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BTagsInputComponent, decorators: [{
|
|
4490
|
-
type: Component,
|
|
4491
|
-
args: [{
|
|
4492
|
-
selector: 'b-tags-input',
|
|
4493
|
-
template: TAGS_INPUT_TEMPLATE,
|
|
4494
|
-
styles: [TAGS_INPUT_STYLE],
|
|
4495
|
-
providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR]
|
|
4496
|
-
}]
|
|
4497
|
-
}], propDecorators: { maxTags: [{
|
|
4498
|
-
type: Input
|
|
4499
|
-
}], removeLastOnBackspace: [{
|
|
4500
|
-
type: Input
|
|
4501
|
-
}], canDeleteTags: [{
|
|
4502
|
-
type: Input
|
|
4503
|
-
}], canAddTags: [{
|
|
4504
|
-
type: Input
|
|
4505
|
-
}], ViewMode: [{
|
|
4506
|
-
type: Input
|
|
4507
|
-
}], placeholder: [{
|
|
4508
|
-
type: Input
|
|
4509
|
-
}], showDescription: [{
|
|
4510
|
-
type: Input
|
|
4511
|
-
}], options: [{
|
|
4512
|
-
type: Input
|
|
4513
|
-
}], defaultImageURL: [{
|
|
4514
|
-
type: Input
|
|
4515
|
-
}], minLengthBeforeOptions: [{
|
|
4516
|
-
type: Input
|
|
4517
|
-
}], scrollableOptions: [{
|
|
4518
|
-
type: Input
|
|
4519
|
-
}], scrollableOptionsInView: [{
|
|
4520
|
-
type: Input
|
|
4521
|
-
}], onTagsChanged: [{
|
|
4522
|
-
type: Output
|
|
4523
|
-
}], onMaxTagsReached: [{
|
|
4524
|
-
type: Output
|
|
4525
|
-
}], onNoOptionsMatch: [{
|
|
4526
|
-
type: Output
|
|
4527
|
-
}], onBlurInput: [{
|
|
4528
|
-
type: Output
|
|
4529
|
-
}] } });
|
|
4186
|
+
AutocompleteTextBoxComponent.decorators = [
|
|
4187
|
+
{ type: Component, args: [{
|
|
4188
|
+
// tslint:disable-next-line: component-selector
|
|
4189
|
+
selector: 'BBSF-AutocompleteTextBox',
|
|
4190
|
+
template: "\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"
|
|
4191
|
+
},] }
|
|
4192
|
+
];
|
|
4193
|
+
AutocompleteTextBoxComponent.ctorParameters = () => [
|
|
4194
|
+
{ type: HttpClient },
|
|
4195
|
+
{ type: ErrorMassageValidation },
|
|
4196
|
+
{ type: RequestHandlerService },
|
|
4197
|
+
{ type: ControlUtility },
|
|
4198
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
4199
|
+
{ type: FormGroupDirective },
|
|
4200
|
+
{ type: UtilityService },
|
|
4201
|
+
{ type: ControlValidationService },
|
|
4202
|
+
{ type: GlobalSettings }
|
|
4203
|
+
];
|
|
4204
|
+
AutocompleteTextBoxComponent.propDecorators = {
|
|
4205
|
+
group: [{ type: Input }],
|
|
4206
|
+
options: [{ type: Input }],
|
|
4207
|
+
OnChange: [{ type: Output }]
|
|
4208
|
+
};
|
|
4530
4209
|
|
|
4531
4210
|
class TagsInputComponent {
|
|
4532
4211
|
// tslint:disable-next-line: max-line-length
|
|
@@ -4766,25 +4445,29 @@ class TagsInputComponent {
|
|
|
4766
4445
|
}
|
|
4767
4446
|
}
|
|
4768
4447
|
TagsInputComponent.controlContainerstatic = null;
|
|
4769
|
-
TagsInputComponent
|
|
4770
|
-
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
4782
|
-
|
|
4783
|
-
|
|
4784
|
-
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
|
|
4448
|
+
TagsInputComponent.decorators = [
|
|
4449
|
+
{ type: Component, args: [{
|
|
4450
|
+
// tslint:disable-next-line: component-selector
|
|
4451
|
+
selector: 'BBSF-TagsInput',
|
|
4452
|
+
template: "\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"
|
|
4453
|
+
},] }
|
|
4454
|
+
];
|
|
4455
|
+
TagsInputComponent.ctorParameters = () => [
|
|
4456
|
+
{ type: HttpClient },
|
|
4457
|
+
{ type: ControlUtility },
|
|
4458
|
+
{ type: RequestHandlerService },
|
|
4459
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
4460
|
+
{ type: FormGroupDirective },
|
|
4461
|
+
{ type: UtilityService },
|
|
4462
|
+
{ type: ControlValidationService },
|
|
4463
|
+
{ type: GlobalSettings }
|
|
4464
|
+
];
|
|
4465
|
+
TagsInputComponent.propDecorators = {
|
|
4466
|
+
group: [{ type: Input }],
|
|
4467
|
+
options: [{ type: Input }],
|
|
4468
|
+
OnChange: [{ type: Output }],
|
|
4469
|
+
SearchKey: [{ type: ViewChild, args: ['SearchKey', { static: false },] }]
|
|
4470
|
+
};
|
|
4788
4471
|
|
|
4789
4472
|
class PagingDTO {
|
|
4790
4473
|
constructor() {
|
|
@@ -4810,224 +4493,71 @@ var FilterType;
|
|
|
4810
4493
|
FilterType[FilterType["Other"] = 7] = "Other";
|
|
4811
4494
|
})(FilterType || (FilterType = {}));
|
|
4812
4495
|
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
|
|
4816
|
-
this.
|
|
4496
|
+
// tslint:disable-next-line: no-conflicting-lifecycle
|
|
4497
|
+
class PagingComponent {
|
|
4498
|
+
constructor(utilityService, http, router, onChangeService, requestHandlerService) {
|
|
4499
|
+
this.utilityService = utilityService;
|
|
4500
|
+
this.http = http;
|
|
4501
|
+
this.router = router;
|
|
4502
|
+
this.onChangeService = onChangeService;
|
|
4503
|
+
this.requestHandlerService = requestHandlerService;
|
|
4504
|
+
this.items = [];
|
|
4505
|
+
this.result = [];
|
|
4506
|
+
this.pagerConfig = null;
|
|
4507
|
+
this.totalRow = 0;
|
|
4817
4508
|
this.pageSize = 10;
|
|
4818
|
-
this.
|
|
4819
|
-
this.
|
|
4820
|
-
this.
|
|
4509
|
+
this.Pages = 0;
|
|
4510
|
+
this.CurrentPage = 1;
|
|
4511
|
+
this.ShowPageSizeOption = true;
|
|
4512
|
+
this.ShowFirstAndLast = true;
|
|
4513
|
+
this.hidePaginationWhenPageSizeEqualOne = true;
|
|
4514
|
+
this.Sum = 0;
|
|
4515
|
+
this.Throttle = 300;
|
|
4516
|
+
this.ScrollDistance = 1;
|
|
4517
|
+
this.ScrollUpDistance = 2;
|
|
4518
|
+
this.direction = '';
|
|
4519
|
+
this.IsFirstCall = true;
|
|
4520
|
+
this.Items = new EventEmitter();
|
|
4521
|
+
this.subscriptions = new Subscription();
|
|
4522
|
+
this.ReinitializePaging = () => {
|
|
4523
|
+
this.IsFirstCall = true;
|
|
4524
|
+
this.getItemList(1, true);
|
|
4525
|
+
};
|
|
4526
|
+
this.UpdatePaging = () => {
|
|
4527
|
+
//this.IsFirstCall=true;
|
|
4528
|
+
this.getItemList(this.CurrentPage);
|
|
4529
|
+
};
|
|
4530
|
+
}
|
|
4531
|
+
ngOnDestroy() {
|
|
4532
|
+
this.subscriptions.unsubscribe();
|
|
4821
4533
|
}
|
|
4822
4534
|
ngOnInit() {
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
|
|
4535
|
+
if (this.options.IsLoadMoreControl)
|
|
4536
|
+
this.Sum = this.options.PageSize;
|
|
4537
|
+
if (this.options.DropdownFiltersControlNames != null && this.options.DropdownFiltersControlNames.length > 0) {
|
|
4538
|
+
const DropdownFiltersControlNames = this.options.DropdownFiltersControlNames;
|
|
4539
|
+
this.subscriptions.add(this.onChangeService.GetValue().subscribe((value) => {
|
|
4540
|
+
let result = this.options.DropdownFiltersControlNames.filter((item) => item == value);
|
|
4541
|
+
if (result.length > 0) {
|
|
4542
|
+
this.IsFirstCall = true;
|
|
4543
|
+
this.CurrentPage = 1;
|
|
4544
|
+
this.getItemList(this.CurrentPage, true);
|
|
4545
|
+
}
|
|
4546
|
+
}));
|
|
4826
4547
|
}
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
|
|
4548
|
+
if (this.options.BootstrapDatePickersFiltersControlNames != null && this.options.BootstrapDatePickersFiltersControlNames.length > 0) {
|
|
4549
|
+
const BootstrapDatePickersFiltersControlNames = this.options.BootstrapDatePickersFiltersControlNames;
|
|
4550
|
+
this.subscriptions.add(this.onChangeService.GetValue().subscribe((value) => {
|
|
4551
|
+
let result = this.options.BootstrapDatePickersFiltersControlNames.filter((item) => item == value);
|
|
4552
|
+
if (result.length > 0) {
|
|
4553
|
+
this.IsFirstCall = true;
|
|
4554
|
+
this.CurrentPage = 1;
|
|
4555
|
+
this.getItemList(this.CurrentPage, true);
|
|
4556
|
+
}
|
|
4557
|
+
}));
|
|
4834
4558
|
}
|
|
4835
|
-
|
|
4836
|
-
|
|
4837
|
-
// get new pager object for specified page
|
|
4838
|
-
this.pager = this.paginate(this.items.length, page, this.pageSize, this.maxPages);
|
|
4839
|
-
// get new page of items from items array
|
|
4840
|
-
var pageOfItems = this.items.slice(this.pager.startIndex, this.pager.endIndex + 1);
|
|
4841
|
-
// call change page function in parent component
|
|
4842
|
-
this.changePage.emit(this.pager.currentPage);
|
|
4843
|
-
}
|
|
4844
|
-
paginate(totalItems, currentPage, pageSize, maxPages) {
|
|
4845
|
-
if (currentPage === void 0) {
|
|
4846
|
-
currentPage = 1;
|
|
4847
|
-
}
|
|
4848
|
-
if (pageSize === void 0) {
|
|
4849
|
-
pageSize = 10;
|
|
4850
|
-
}
|
|
4851
|
-
if (maxPages === void 0) {
|
|
4852
|
-
maxPages = 10;
|
|
4853
|
-
}
|
|
4854
|
-
// calculate total pages
|
|
4855
|
-
var totalPages = Math.ceil(totalItems / pageSize);
|
|
4856
|
-
// ensure current page isn't out of range
|
|
4857
|
-
if (currentPage < 1) {
|
|
4858
|
-
currentPage = 1;
|
|
4859
|
-
}
|
|
4860
|
-
else if (currentPage > totalPages) {
|
|
4861
|
-
currentPage = totalPages;
|
|
4862
|
-
}
|
|
4863
|
-
var startPage, endPage;
|
|
4864
|
-
if (totalPages <= maxPages) {
|
|
4865
|
-
// total pages less than max so show all pages
|
|
4866
|
-
startPage = 1;
|
|
4867
|
-
endPage = totalPages;
|
|
4868
|
-
}
|
|
4869
|
-
else {
|
|
4870
|
-
// total pages more than max so calculate start and end pages
|
|
4871
|
-
var maxPagesBeforeCurrentPage = Math.floor(maxPages / 2);
|
|
4872
|
-
var maxPagesAfterCurrentPage = Math.ceil(maxPages / 2) - 1;
|
|
4873
|
-
if (currentPage <= maxPagesBeforeCurrentPage) {
|
|
4874
|
-
// current page near the start
|
|
4875
|
-
startPage = 1;
|
|
4876
|
-
endPage = maxPages;
|
|
4877
|
-
}
|
|
4878
|
-
else if (currentPage + maxPagesAfterCurrentPage >= totalPages) {
|
|
4879
|
-
// current page near the end
|
|
4880
|
-
startPage = totalPages - maxPages + 1;
|
|
4881
|
-
endPage = totalPages;
|
|
4882
|
-
}
|
|
4883
|
-
else {
|
|
4884
|
-
// current page somewhere in the middle
|
|
4885
|
-
startPage = currentPage - maxPagesBeforeCurrentPage;
|
|
4886
|
-
endPage = currentPage + maxPagesAfterCurrentPage;
|
|
4887
|
-
}
|
|
4888
|
-
}
|
|
4889
|
-
// calculate start and end item indexes
|
|
4890
|
-
var startIndex = (currentPage - 1) * pageSize;
|
|
4891
|
-
var endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1);
|
|
4892
|
-
// create an array of pages to ng-repeat in the pager control
|
|
4893
|
-
var pages = Array.from(Array((endPage + 1) - startPage).keys()).map(function (i) { return startPage + i; });
|
|
4894
|
-
// return object with all pager properties required by the view
|
|
4895
|
-
return {
|
|
4896
|
-
totalItems: totalItems,
|
|
4897
|
-
currentPage: currentPage,
|
|
4898
|
-
pageSize: pageSize,
|
|
4899
|
-
totalPages: totalPages,
|
|
4900
|
-
startPage: startPage,
|
|
4901
|
-
endPage: endPage,
|
|
4902
|
-
startIndex: startIndex,
|
|
4903
|
-
endIndex: endIndex,
|
|
4904
|
-
pages: pages
|
|
4905
|
-
};
|
|
4906
|
-
}
|
|
4907
|
-
}
|
|
4908
|
-
JwPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: JwPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4909
|
-
JwPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: JwPaginationComponent, selector: "jw-pagination", inputs: { items: "items", initialPage: "initialPage", pageSize: "pageSize", maxPages: "maxPages", ShowFirstAndLast: "ShowFirstAndLast" }, outputs: { changePage: "changePage" }, usesOnChanges: true, ngImport: i0, template: `
|
|
4910
|
-
<ul *ngIf="pager.pages && pager.pages.length" class="pagination">
|
|
4911
|
-
<li *ngIf="ShowFirstAndLast" [ngClass]="{disabled:pager.currentPage === 1}" class="page-item first-item">
|
|
4912
|
-
<a (click)="setPage(1)" class="page-link">❮❮</a>
|
|
4913
|
-
</li>
|
|
4914
|
-
<li [ngClass]="{disabled:pager.currentPage === 1}" class="page-item previous-item">
|
|
4915
|
-
<a (click)="setPage(pager.currentPage - 1)" class="page-link">❮</a>
|
|
4916
|
-
</li>
|
|
4917
|
-
<li *ngFor="let page of pager.pages" [ngClass]="{active:pager.currentPage === page}" class="page-item number-item">
|
|
4918
|
-
<a (click)="setPage(page)" class="page-link">{{page}}</a>
|
|
4919
|
-
</li>
|
|
4920
|
-
<li [ngClass]="{disabled:pager.currentPage === pager.totalPages}" class="page-item next-item">
|
|
4921
|
-
<a (click)="setPage(pager.currentPage + 1)" class="page-link">❯</a>
|
|
4922
|
-
</li>
|
|
4923
|
-
<li *ngIf="ShowFirstAndLast" [ngClass]="{disabled:pager.currentPage === pager.totalPages}" class="page-item last-item">
|
|
4924
|
-
<a (click)="setPage(pager.totalPages)" class="page-link">❯❯</a>
|
|
4925
|
-
</li>
|
|
4926
|
-
</ul>
|
|
4927
|
-
`, isInline: true, directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
4928
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: JwPaginationComponent, decorators: [{
|
|
4929
|
-
type: Component,
|
|
4930
|
-
args: [{
|
|
4931
|
-
selector: 'jw-pagination',
|
|
4932
|
-
template: `
|
|
4933
|
-
<ul *ngIf="pager.pages && pager.pages.length" class="pagination">
|
|
4934
|
-
<li *ngIf="ShowFirstAndLast" [ngClass]="{disabled:pager.currentPage === 1}" class="page-item first-item">
|
|
4935
|
-
<a (click)="setPage(1)" class="page-link">❮❮</a>
|
|
4936
|
-
</li>
|
|
4937
|
-
<li [ngClass]="{disabled:pager.currentPage === 1}" class="page-item previous-item">
|
|
4938
|
-
<a (click)="setPage(pager.currentPage - 1)" class="page-link">❮</a>
|
|
4939
|
-
</li>
|
|
4940
|
-
<li *ngFor="let page of pager.pages" [ngClass]="{active:pager.currentPage === page}" class="page-item number-item">
|
|
4941
|
-
<a (click)="setPage(page)" class="page-link">{{page}}</a>
|
|
4942
|
-
</li>
|
|
4943
|
-
<li [ngClass]="{disabled:pager.currentPage === pager.totalPages}" class="page-item next-item">
|
|
4944
|
-
<a (click)="setPage(pager.currentPage + 1)" class="page-link">❯</a>
|
|
4945
|
-
</li>
|
|
4946
|
-
<li *ngIf="ShowFirstAndLast" [ngClass]="{disabled:pager.currentPage === pager.totalPages}" class="page-item last-item">
|
|
4947
|
-
<a (click)="setPage(pager.totalPages)" class="page-link">❯❯</a>
|
|
4948
|
-
</li>
|
|
4949
|
-
</ul>
|
|
4950
|
-
`
|
|
4951
|
-
}]
|
|
4952
|
-
}], propDecorators: { items: [{
|
|
4953
|
-
type: Input
|
|
4954
|
-
}], changePage: [{
|
|
4955
|
-
type: Output
|
|
4956
|
-
}], initialPage: [{
|
|
4957
|
-
type: Input
|
|
4958
|
-
}], pageSize: [{
|
|
4959
|
-
type: Input
|
|
4960
|
-
}], maxPages: [{
|
|
4961
|
-
type: Input
|
|
4962
|
-
}], ShowFirstAndLast: [{
|
|
4963
|
-
type: Input
|
|
4964
|
-
}] } });
|
|
4965
|
-
|
|
4966
|
-
// tslint:disable-next-line: no-conflicting-lifecycle
|
|
4967
|
-
class PagingComponent {
|
|
4968
|
-
constructor(utilityService, http, router, onChangeService, requestHandlerService) {
|
|
4969
|
-
this.utilityService = utilityService;
|
|
4970
|
-
this.http = http;
|
|
4971
|
-
this.router = router;
|
|
4972
|
-
this.onChangeService = onChangeService;
|
|
4973
|
-
this.requestHandlerService = requestHandlerService;
|
|
4974
|
-
this.items = [];
|
|
4975
|
-
this.result = [];
|
|
4976
|
-
this.pagerConfig = null;
|
|
4977
|
-
this.totalRow = 0;
|
|
4978
|
-
this.pageSize = 10;
|
|
4979
|
-
this.Pages = 0;
|
|
4980
|
-
this.CurrentPage = 1;
|
|
4981
|
-
this.ShowPageSizeOption = true;
|
|
4982
|
-
this.ShowFirstAndLast = true;
|
|
4983
|
-
this.hidePaginationWhenPageSizeEqualOne = true;
|
|
4984
|
-
this.Sum = 0;
|
|
4985
|
-
this.Throttle = 300;
|
|
4986
|
-
this.ScrollDistance = 1;
|
|
4987
|
-
this.ScrollUpDistance = 2;
|
|
4988
|
-
this.direction = '';
|
|
4989
|
-
this.IsFirstCall = true;
|
|
4990
|
-
this.Items = new EventEmitter();
|
|
4991
|
-
this.subscriptions = new Subscription();
|
|
4992
|
-
this.ReinitializePaging = () => {
|
|
4993
|
-
this.IsFirstCall = true;
|
|
4994
|
-
this.getItemList(1, true);
|
|
4995
|
-
};
|
|
4996
|
-
this.UpdatePaging = () => {
|
|
4997
|
-
//this.IsFirstCall=true;
|
|
4998
|
-
this.getItemList(this.CurrentPage);
|
|
4999
|
-
};
|
|
5000
|
-
}
|
|
5001
|
-
ngOnDestroy() {
|
|
5002
|
-
this.subscriptions.unsubscribe();
|
|
5003
|
-
}
|
|
5004
|
-
ngOnInit() {
|
|
5005
|
-
if (this.options.IsLoadMoreControl)
|
|
5006
|
-
this.Sum = this.options.PageSize;
|
|
5007
|
-
if (this.options.DropdownFiltersControlNames != null && this.options.DropdownFiltersControlNames.length > 0) {
|
|
5008
|
-
const DropdownFiltersControlNames = this.options.DropdownFiltersControlNames;
|
|
5009
|
-
this.subscriptions.add(this.onChangeService.GetValue().subscribe((value) => {
|
|
5010
|
-
let result = this.options.DropdownFiltersControlNames.filter((item) => item == value);
|
|
5011
|
-
if (result.length > 0) {
|
|
5012
|
-
this.IsFirstCall = true;
|
|
5013
|
-
this.CurrentPage = 1;
|
|
5014
|
-
this.getItemList(this.CurrentPage, true);
|
|
5015
|
-
}
|
|
5016
|
-
}));
|
|
5017
|
-
}
|
|
5018
|
-
if (this.options.BootstrapDatePickersFiltersControlNames != null && this.options.BootstrapDatePickersFiltersControlNames.length > 0) {
|
|
5019
|
-
const BootstrapDatePickersFiltersControlNames = this.options.BootstrapDatePickersFiltersControlNames;
|
|
5020
|
-
this.subscriptions.add(this.onChangeService.GetValue().subscribe((value) => {
|
|
5021
|
-
let result = this.options.BootstrapDatePickersFiltersControlNames.filter((item) => item == value);
|
|
5022
|
-
if (result.length > 0) {
|
|
5023
|
-
this.IsFirstCall = true;
|
|
5024
|
-
this.CurrentPage = 1;
|
|
5025
|
-
this.getItemList(this.CurrentPage, true);
|
|
5026
|
-
}
|
|
5027
|
-
}));
|
|
5028
|
-
}
|
|
5029
|
-
this.IsFirstCall = true;
|
|
5030
|
-
this.getItemList(this.CurrentPage, true);
|
|
4559
|
+
this.IsFirstCall = true;
|
|
4560
|
+
this.getItemList(this.CurrentPage, true);
|
|
5031
4561
|
}
|
|
5032
4562
|
ngAfterViewInit() {
|
|
5033
4563
|
if (this.options.OnClickFiltersControlNames != null && this.options.OnClickFiltersControlNames.length > 0) {
|
|
@@ -5247,18 +4777,152 @@ class PagingComponent {
|
|
|
5247
4777
|
return filters;
|
|
5248
4778
|
}
|
|
5249
4779
|
}
|
|
5250
|
-
PagingComponent
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
4780
|
+
PagingComponent.decorators = [
|
|
4781
|
+
{ type: Component, args: [{
|
|
4782
|
+
selector: 'BBSF-Paging',
|
|
4783
|
+
template: "<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"
|
|
4784
|
+
},] }
|
|
4785
|
+
];
|
|
4786
|
+
PagingComponent.ctorParameters = () => [
|
|
4787
|
+
{ type: UtilityService },
|
|
4788
|
+
{ type: HttpClient },
|
|
4789
|
+
{ type: Router },
|
|
4790
|
+
{ type: OnPagingFiltersChangeService },
|
|
4791
|
+
{ type: RequestHandlerService }
|
|
4792
|
+
];
|
|
4793
|
+
PagingComponent.propDecorators = {
|
|
4794
|
+
Items: [{ type: Output }],
|
|
4795
|
+
options: [{ type: Input }],
|
|
4796
|
+
group: [{ type: Input }]
|
|
4797
|
+
};
|
|
4798
|
+
|
|
4799
|
+
class JwPaginationComponent {
|
|
4800
|
+
constructor() {
|
|
4801
|
+
this.changePage = new EventEmitter();
|
|
4802
|
+
this.initialPage = 1;
|
|
4803
|
+
this.pageSize = 10;
|
|
4804
|
+
this.maxPages = 10;
|
|
4805
|
+
this.ShowFirstAndLast = false;
|
|
4806
|
+
this.pager = {};
|
|
4807
|
+
}
|
|
4808
|
+
ngOnInit() {
|
|
4809
|
+
// set page if items array isn't empty
|
|
4810
|
+
if (this.items && this.items.length) {
|
|
4811
|
+
this.setPage(this.initialPage);
|
|
4812
|
+
}
|
|
4813
|
+
}
|
|
4814
|
+
ngOnChanges(changes) {
|
|
4815
|
+
if (changes.items.firstChange)
|
|
4816
|
+
return;
|
|
4817
|
+
// reset page if items array has changed
|
|
4818
|
+
if (changes.items.currentValue !== changes.items.previousValue) {
|
|
4819
|
+
this.setPage(this.initialPage);
|
|
4820
|
+
}
|
|
4821
|
+
}
|
|
4822
|
+
setPage(page) {
|
|
4823
|
+
// get new pager object for specified page
|
|
4824
|
+
this.pager = this.paginate(this.items.length, page, this.pageSize, this.maxPages);
|
|
4825
|
+
// get new page of items from items array
|
|
4826
|
+
var pageOfItems = this.items.slice(this.pager.startIndex, this.pager.endIndex + 1);
|
|
4827
|
+
// call change page function in parent component
|
|
4828
|
+
this.changePage.emit(this.pager.currentPage);
|
|
4829
|
+
}
|
|
4830
|
+
paginate(totalItems, currentPage, pageSize, maxPages) {
|
|
4831
|
+
if (currentPage === void 0) {
|
|
4832
|
+
currentPage = 1;
|
|
4833
|
+
}
|
|
4834
|
+
if (pageSize === void 0) {
|
|
4835
|
+
pageSize = 10;
|
|
4836
|
+
}
|
|
4837
|
+
if (maxPages === void 0) {
|
|
4838
|
+
maxPages = 10;
|
|
4839
|
+
}
|
|
4840
|
+
// calculate total pages
|
|
4841
|
+
var totalPages = Math.ceil(totalItems / pageSize);
|
|
4842
|
+
// ensure current page isn't out of range
|
|
4843
|
+
if (currentPage < 1) {
|
|
4844
|
+
currentPage = 1;
|
|
4845
|
+
}
|
|
4846
|
+
else if (currentPage > totalPages) {
|
|
4847
|
+
currentPage = totalPages;
|
|
4848
|
+
}
|
|
4849
|
+
var startPage, endPage;
|
|
4850
|
+
if (totalPages <= maxPages) {
|
|
4851
|
+
// total pages less than max so show all pages
|
|
4852
|
+
startPage = 1;
|
|
4853
|
+
endPage = totalPages;
|
|
4854
|
+
}
|
|
4855
|
+
else {
|
|
4856
|
+
// total pages more than max so calculate start and end pages
|
|
4857
|
+
var maxPagesBeforeCurrentPage = Math.floor(maxPages / 2);
|
|
4858
|
+
var maxPagesAfterCurrentPage = Math.ceil(maxPages / 2) - 1;
|
|
4859
|
+
if (currentPage <= maxPagesBeforeCurrentPage) {
|
|
4860
|
+
// current page near the start
|
|
4861
|
+
startPage = 1;
|
|
4862
|
+
endPage = maxPages;
|
|
4863
|
+
}
|
|
4864
|
+
else if (currentPage + maxPagesAfterCurrentPage >= totalPages) {
|
|
4865
|
+
// current page near the end
|
|
4866
|
+
startPage = totalPages - maxPages + 1;
|
|
4867
|
+
endPage = totalPages;
|
|
4868
|
+
}
|
|
4869
|
+
else {
|
|
4870
|
+
// current page somewhere in the middle
|
|
4871
|
+
startPage = currentPage - maxPagesBeforeCurrentPage;
|
|
4872
|
+
endPage = currentPage + maxPagesAfterCurrentPage;
|
|
4873
|
+
}
|
|
4874
|
+
}
|
|
4875
|
+
// calculate start and end item indexes
|
|
4876
|
+
var startIndex = (currentPage - 1) * pageSize;
|
|
4877
|
+
var endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1);
|
|
4878
|
+
// create an array of pages to ng-repeat in the pager control
|
|
4879
|
+
var pages = Array.from(Array((endPage + 1) - startPage).keys()).map(function (i) { return startPage + i; });
|
|
4880
|
+
// return object with all pager properties required by the view
|
|
4881
|
+
return {
|
|
4882
|
+
totalItems: totalItems,
|
|
4883
|
+
currentPage: currentPage,
|
|
4884
|
+
pageSize: pageSize,
|
|
4885
|
+
totalPages: totalPages,
|
|
4886
|
+
startPage: startPage,
|
|
4887
|
+
endPage: endPage,
|
|
4888
|
+
startIndex: startIndex,
|
|
4889
|
+
endIndex: endIndex,
|
|
4890
|
+
pages: pages
|
|
4891
|
+
};
|
|
4892
|
+
}
|
|
4893
|
+
}
|
|
4894
|
+
JwPaginationComponent.decorators = [
|
|
4895
|
+
{ type: Component, args: [{
|
|
4896
|
+
selector: 'jw-pagination',
|
|
4897
|
+
template: `
|
|
4898
|
+
<ul *ngIf="pager.pages && pager.pages.length" class="pagination">
|
|
4899
|
+
<li *ngIf="ShowFirstAndLast" [ngClass]="{disabled:pager.currentPage === 1}" class="page-item first-item">
|
|
4900
|
+
<a (click)="setPage(1)" class="page-link">❮❮</a>
|
|
4901
|
+
</li>
|
|
4902
|
+
<li [ngClass]="{disabled:pager.currentPage === 1}" class="page-item previous-item">
|
|
4903
|
+
<a (click)="setPage(pager.currentPage - 1)" class="page-link">❮</a>
|
|
4904
|
+
</li>
|
|
4905
|
+
<li *ngFor="let page of pager.pages" [ngClass]="{active:pager.currentPage === page}" class="page-item number-item">
|
|
4906
|
+
<a (click)="setPage(page)" class="page-link">{{page}}</a>
|
|
4907
|
+
</li>
|
|
4908
|
+
<li [ngClass]="{disabled:pager.currentPage === pager.totalPages}" class="page-item next-item">
|
|
4909
|
+
<a (click)="setPage(pager.currentPage + 1)" class="page-link">❯</a>
|
|
4910
|
+
</li>
|
|
4911
|
+
<li *ngIf="ShowFirstAndLast" [ngClass]="{disabled:pager.currentPage === pager.totalPages}" class="page-item last-item">
|
|
4912
|
+
<a (click)="setPage(pager.totalPages)" class="page-link">❯❯</a>
|
|
4913
|
+
</li>
|
|
4914
|
+
</ul>
|
|
4915
|
+
`
|
|
4916
|
+
},] }
|
|
4917
|
+
];
|
|
4918
|
+
JwPaginationComponent.propDecorators = {
|
|
4919
|
+
items: [{ type: Input }],
|
|
4920
|
+
changePage: [{ type: Output }],
|
|
4921
|
+
initialPage: [{ type: Input }],
|
|
4922
|
+
pageSize: [{ type: Input }],
|
|
4923
|
+
maxPages: [{ type: Input }],
|
|
4924
|
+
ShowFirstAndLast: [{ type: Input }]
|
|
4925
|
+
};
|
|
5262
4926
|
|
|
5263
4927
|
class RadioButtonComponent {
|
|
5264
4928
|
// tslint:disable-next-line: max-line-length
|
|
@@ -5342,22 +5006,26 @@ class RadioButtonComponent {
|
|
|
5342
5006
|
}
|
|
5343
5007
|
}
|
|
5344
5008
|
RadioButtonComponent.controlContainerstatic = null;
|
|
5345
|
-
RadioButtonComponent
|
|
5346
|
-
|
|
5347
|
-
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5351
|
-
|
|
5352
|
-
|
|
5353
|
-
|
|
5354
|
-
|
|
5355
|
-
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
|
|
5359
|
-
|
|
5360
|
-
|
|
5009
|
+
RadioButtonComponent.decorators = [
|
|
5010
|
+
{ type: Component, args: [{
|
|
5011
|
+
// tslint:disable-next-line: component-selector
|
|
5012
|
+
selector: 'BBSF-RadioButton',
|
|
5013
|
+
template: "<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"
|
|
5014
|
+
},] }
|
|
5015
|
+
];
|
|
5016
|
+
RadioButtonComponent.ctorParameters = () => [
|
|
5017
|
+
{ type: ControlUtility },
|
|
5018
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
5019
|
+
{ type: FormGroupDirective },
|
|
5020
|
+
{ type: UtilityService },
|
|
5021
|
+
{ type: ControlValidationService },
|
|
5022
|
+
{ type: GlobalSettings }
|
|
5023
|
+
];
|
|
5024
|
+
RadioButtonComponent.propDecorators = {
|
|
5025
|
+
group: [{ type: Input }],
|
|
5026
|
+
options: [{ type: Input }],
|
|
5027
|
+
OnChange: [{ type: Output }]
|
|
5028
|
+
};
|
|
5361
5029
|
|
|
5362
5030
|
var LanguageValidation;
|
|
5363
5031
|
(function (LanguageValidation) {
|
|
@@ -5601,22 +5269,25 @@ class TextboxComponent {
|
|
|
5601
5269
|
}
|
|
5602
5270
|
}
|
|
5603
5271
|
TextboxComponent.controlContainerstatic = null;
|
|
5604
|
-
TextboxComponent
|
|
5605
|
-
|
|
5606
|
-
|
|
5607
|
-
|
|
5608
|
-
|
|
5609
|
-
|
|
5610
|
-
|
|
5611
|
-
|
|
5612
|
-
|
|
5613
|
-
|
|
5614
|
-
|
|
5615
|
-
|
|
5616
|
-
|
|
5617
|
-
|
|
5618
|
-
|
|
5619
|
-
|
|
5272
|
+
TextboxComponent.decorators = [
|
|
5273
|
+
{ type: Component, args: [{
|
|
5274
|
+
selector: 'BBSF-TextBox',
|
|
5275
|
+
template: "<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"
|
|
5276
|
+
},] }
|
|
5277
|
+
];
|
|
5278
|
+
TextboxComponent.ctorParameters = () => [
|
|
5279
|
+
{ type: ControlUtility },
|
|
5280
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
5281
|
+
{ type: FormGroupDirective },
|
|
5282
|
+
{ type: UtilityService },
|
|
5283
|
+
{ type: ControlValidationService },
|
|
5284
|
+
{ type: GlobalSettings }
|
|
5285
|
+
];
|
|
5286
|
+
TextboxComponent.propDecorators = {
|
|
5287
|
+
group: [{ type: Input }],
|
|
5288
|
+
options: [{ type: Input }],
|
|
5289
|
+
OnChange: [{ type: Output }]
|
|
5290
|
+
};
|
|
5620
5291
|
|
|
5621
5292
|
class MapAutocompleteDTO {
|
|
5622
5293
|
constructor() {
|
|
@@ -5729,16 +5400,10 @@ class MapAutoCompleteComponent {
|
|
|
5729
5400
|
place.address_components.forEach(( /**
|
|
5730
5401
|
* @param {?} value
|
|
5731
5402
|
* @return {?}
|
|
5732
|
-
|
|
5733
|
-
* @param {?} value
|
|
5734
|
-
* @return {?}
|
|
5735
|
-
*//**
|
|
5403
|
+
*//**
|
|
5736
5404
|
* @param {?} value
|
|
5737
5405
|
* @return {?}
|
|
5738
|
-
*/
|
|
5739
|
-
* @param {?} value
|
|
5740
|
-
* @return {?}
|
|
5741
|
-
*/ value => {
|
|
5406
|
+
*/ value => {
|
|
5742
5407
|
if (value.types.indexOf('street_number') > -1) {
|
|
5743
5408
|
germanAddress["streetNumber"] = value.short_name;
|
|
5744
5409
|
}
|
|
@@ -5924,25 +5589,29 @@ class MapAutoCompleteComponent {
|
|
|
5924
5589
|
}
|
|
5925
5590
|
}
|
|
5926
5591
|
MapAutoCompleteComponent.controlContainerstatic = null;
|
|
5927
|
-
MapAutoCompleteComponent
|
|
5928
|
-
|
|
5929
|
-
|
|
5930
|
-
|
|
5931
|
-
|
|
5932
|
-
|
|
5933
|
-
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
|
|
5938
|
-
|
|
5939
|
-
|
|
5940
|
-
|
|
5941
|
-
|
|
5942
|
-
|
|
5943
|
-
|
|
5944
|
-
|
|
5945
|
-
|
|
5592
|
+
MapAutoCompleteComponent.decorators = [
|
|
5593
|
+
{ type: Component, args: [{
|
|
5594
|
+
selector: 'BBSF-MapAutoComplete',
|
|
5595
|
+
template: "\r\n<div class=\"form-group bbsf-control bbsf-maps\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" 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"
|
|
5596
|
+
},] }
|
|
5597
|
+
];
|
|
5598
|
+
MapAutoCompleteComponent.ctorParameters = () => [
|
|
5599
|
+
{ type: MapsAPILoader },
|
|
5600
|
+
{ type: NgZone },
|
|
5601
|
+
{ type: ControlUtility },
|
|
5602
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
5603
|
+
{ type: FormGroupDirective },
|
|
5604
|
+
{ type: UtilityService },
|
|
5605
|
+
{ type: BBSFTranslateService },
|
|
5606
|
+
{ type: ControlValidationService },
|
|
5607
|
+
{ type: GlobalSettings }
|
|
5608
|
+
];
|
|
5609
|
+
MapAutoCompleteComponent.propDecorators = {
|
|
5610
|
+
group: [{ type: Input }],
|
|
5611
|
+
options: [{ type: Input }],
|
|
5612
|
+
OnChange: [{ type: Output }],
|
|
5613
|
+
searchElementRef: [{ type: ViewChild, args: ["search", { static: false },] }]
|
|
5614
|
+
};
|
|
5946
5615
|
|
|
5947
5616
|
var CalendarView;
|
|
5948
5617
|
(function (CalendarView) {
|
|
@@ -5964,7 +5633,7 @@ class CalendarComponent {
|
|
|
5964
5633
|
this.controlValidationService = controlValidationService;
|
|
5965
5634
|
this.calendarVisible = true;
|
|
5966
5635
|
this.currentEvents = [];
|
|
5967
|
-
this.calendarPlugins = [dayGridPlugin,
|
|
5636
|
+
this.calendarPlugins = [dayGridPlugin, timeGrigPlugin, interactionPlugin, listPlugin];
|
|
5968
5637
|
this.calendarWeekends = true;
|
|
5969
5638
|
this.calendarEvents = [];
|
|
5970
5639
|
this.DefaultView = "";
|
|
@@ -6044,7 +5713,7 @@ class CalendarComponent {
|
|
|
6044
5713
|
this.calendarOptions = {
|
|
6045
5714
|
plugins: [
|
|
6046
5715
|
dayGridPlugin,
|
|
6047
|
-
|
|
5716
|
+
timeGrigPlugin,
|
|
6048
5717
|
listPlugin,
|
|
6049
5718
|
interactionPlugin
|
|
6050
5719
|
],
|
|
@@ -6092,23 +5761,27 @@ class CalendarComponent {
|
|
|
6092
5761
|
}
|
|
6093
5762
|
}
|
|
6094
5763
|
CalendarComponent.controlContainerstatic = null;
|
|
6095
|
-
CalendarComponent
|
|
6096
|
-
|
|
6097
|
-
|
|
6098
|
-
|
|
6099
|
-
|
|
6100
|
-
|
|
6101
|
-
|
|
6102
|
-
|
|
6103
|
-
|
|
6104
|
-
|
|
6105
|
-
|
|
6106
|
-
|
|
6107
|
-
|
|
6108
|
-
|
|
6109
|
-
|
|
6110
|
-
|
|
6111
|
-
|
|
5764
|
+
CalendarComponent.decorators = [
|
|
5765
|
+
{ type: Component, args: [{
|
|
5766
|
+
selector: 'BBSF-Calendar',
|
|
5767
|
+
template: "\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",
|
|
5768
|
+
styles: [""]
|
|
5769
|
+
},] }
|
|
5770
|
+
];
|
|
5771
|
+
CalendarComponent.ctorParameters = () => [
|
|
5772
|
+
{ type: ErrorMassageValidation },
|
|
5773
|
+
{ type: ControlUtility },
|
|
5774
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
5775
|
+
{ type: FormGroupDirective },
|
|
5776
|
+
{ type: UtilityService },
|
|
5777
|
+
{ type: BBSFTranslateService },
|
|
5778
|
+
{ type: ControlValidationService }
|
|
5779
|
+
];
|
|
5780
|
+
CalendarComponent.propDecorators = {
|
|
5781
|
+
group: [{ type: Input }],
|
|
5782
|
+
options: [{ type: Input }],
|
|
5783
|
+
calendarComponent: [{ type: ViewChild, args: ['calendar', { static: false },] }]
|
|
5784
|
+
};
|
|
6112
5785
|
|
|
6113
5786
|
var PagingActionMode;
|
|
6114
5787
|
(function (PagingActionMode) {
|
|
@@ -6196,16 +5869,25 @@ class FormComponent {
|
|
|
6196
5869
|
return result;
|
|
6197
5870
|
}
|
|
6198
5871
|
}
|
|
6199
|
-
FormComponent
|
|
6200
|
-
|
|
6201
|
-
|
|
6202
|
-
|
|
6203
|
-
|
|
6204
|
-
|
|
6205
|
-
|
|
6206
|
-
|
|
6207
|
-
|
|
6208
|
-
|
|
5872
|
+
FormComponent.decorators = [
|
|
5873
|
+
{ type: Component, args: [{
|
|
5874
|
+
// tslint:disable-next-line: component-selector
|
|
5875
|
+
selector: 'BBSF-Form',
|
|
5876
|
+
template: "<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>"
|
|
5877
|
+
},] }
|
|
5878
|
+
];
|
|
5879
|
+
FormComponent.ctorParameters = () => [
|
|
5880
|
+
{ type: ControlUtility },
|
|
5881
|
+
{ type: UtilityService },
|
|
5882
|
+
{ type: ControlValidationService },
|
|
5883
|
+
{ type: NgbModal },
|
|
5884
|
+
{ type: NgbActiveModal },
|
|
5885
|
+
{ type: Router }
|
|
5886
|
+
];
|
|
5887
|
+
FormComponent.propDecorators = {
|
|
5888
|
+
OnChange: [{ type: Output }],
|
|
5889
|
+
options: [{ type: Input }]
|
|
5890
|
+
};
|
|
6209
5891
|
|
|
6210
5892
|
class ConfirmationModalComponent {
|
|
6211
5893
|
constructor(utilityService, modalService, router) {
|
|
@@ -6320,36 +6002,155 @@ class ConfirmationModalComponent {
|
|
|
6320
6002
|
if (!this.options.DisableErrorNotification)
|
|
6321
6003
|
this.utilityService.notifyErrorMessage();
|
|
6322
6004
|
}
|
|
6323
|
-
this.utilityService.stopBlockUI();
|
|
6005
|
+
this.utilityService.stopBlockUI();
|
|
6006
|
+
}
|
|
6007
|
+
}
|
|
6008
|
+
ConfirmationModalComponent.decorators = [
|
|
6009
|
+
{ type: Component, args: [{
|
|
6010
|
+
template: "",
|
|
6011
|
+
selector: 'BBSF-ConfirmationModal'
|
|
6012
|
+
},] }
|
|
6013
|
+
];
|
|
6014
|
+
ConfirmationModalComponent.ctorParameters = () => [
|
|
6015
|
+
{ type: UtilityService },
|
|
6016
|
+
{ type: NgbModal },
|
|
6017
|
+
{ type: Router }
|
|
6018
|
+
];
|
|
6019
|
+
ConfirmationModalComponent.propDecorators = {
|
|
6020
|
+
options: [{ type: Input }],
|
|
6021
|
+
confirmationModal: [{ type: ViewChild, args: ['confirmationModal', { static: false },] }]
|
|
6022
|
+
};
|
|
6023
|
+
|
|
6024
|
+
class NgTemplateNameDirective {
|
|
6025
|
+
constructor(template) {
|
|
6026
|
+
this.template = template;
|
|
6027
|
+
}
|
|
6028
|
+
}
|
|
6029
|
+
NgTemplateNameDirective.decorators = [
|
|
6030
|
+
{ type: Directive, args: [{
|
|
6031
|
+
selector: 'ng-template[name]'
|
|
6032
|
+
},] }
|
|
6033
|
+
];
|
|
6034
|
+
NgTemplateNameDirective.ctorParameters = () => [
|
|
6035
|
+
{ type: TemplateRef }
|
|
6036
|
+
];
|
|
6037
|
+
NgTemplateNameDirective.propDecorators = {
|
|
6038
|
+
name: [{ type: Input }]
|
|
6039
|
+
};
|
|
6040
|
+
|
|
6041
|
+
class RepeaterComponent {
|
|
6042
|
+
constructor() {
|
|
6043
|
+
this.templateRefs = [];
|
|
6044
|
+
this.items = [];
|
|
6045
|
+
this.originalItems = [];
|
|
6046
|
+
this.repeaterContext = { index: 0, delete: null, elements: null };
|
|
6047
|
+
}
|
|
6048
|
+
ngOnInit() {
|
|
6049
|
+
this.currentTemplate = this.initialTemplate;
|
|
6050
|
+
this.repeaterGroup = new FormGroup({});
|
|
6051
|
+
this.group.addControl(this.options.Name, this.repeaterGroup);
|
|
6052
|
+
if (this.options.RepeaterValue.length > 0) {
|
|
6053
|
+
this.originalItems = this.options.RepeaterValue;
|
|
6054
|
+
for (let index = 0; index < this.options.RepeaterValue.length; index++) {
|
|
6055
|
+
this.items.push(index + 1);
|
|
6056
|
+
}
|
|
6057
|
+
}
|
|
6058
|
+
else
|
|
6059
|
+
for (let index = 0; index < this.options.MinRequiredItems; index++) {
|
|
6060
|
+
this.items.push(index);
|
|
6061
|
+
}
|
|
6062
|
+
this.repeaterGroup.valueChanges.subscribe((res) => {
|
|
6063
|
+
let result = [];
|
|
6064
|
+
let rowNumber = [];
|
|
6065
|
+
let addItems = [];
|
|
6066
|
+
for (const key in this.repeaterGroup.controls) {
|
|
6067
|
+
if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {
|
|
6068
|
+
const keySplitArr = key.split('.');
|
|
6069
|
+
let item = {
|
|
6070
|
+
[keySplitArr[1]]: { [keySplitArr[0]]: this.group.controls[this.options.Name].value[key] }
|
|
6071
|
+
};
|
|
6072
|
+
addItems.push(item);
|
|
6073
|
+
if (!rowNumber.includes(keySplitArr[1]))
|
|
6074
|
+
rowNumber.push(keySplitArr[1]);
|
|
6075
|
+
}
|
|
6076
|
+
}
|
|
6077
|
+
for (let index = 0; index < rowNumber.length; index++) {
|
|
6078
|
+
const row = rowNumber[index];
|
|
6079
|
+
let addObject = {};
|
|
6080
|
+
let filteredElements = addItems.filter(item => item[row]);
|
|
6081
|
+
for (let index = 0; index < filteredElements.length; index++) {
|
|
6082
|
+
const filteredElement = filteredElements[index];
|
|
6083
|
+
for (const key in filteredElement) {
|
|
6084
|
+
if (Object.prototype.hasOwnProperty.call(filteredElement, key)) {
|
|
6085
|
+
const element = filteredElement[key];
|
|
6086
|
+
for (const key in element) {
|
|
6087
|
+
if (Object.prototype.hasOwnProperty.call(element, key)) {
|
|
6088
|
+
const value = element[key];
|
|
6089
|
+
addObject[key] = value;
|
|
6090
|
+
}
|
|
6091
|
+
}
|
|
6092
|
+
}
|
|
6093
|
+
}
|
|
6094
|
+
}
|
|
6095
|
+
result.push(addObject);
|
|
6096
|
+
}
|
|
6097
|
+
this.options.RepeaterValue = result;
|
|
6098
|
+
});
|
|
6099
|
+
}
|
|
6100
|
+
deleteItem(Index) {
|
|
6101
|
+
if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)
|
|
6102
|
+
return;
|
|
6103
|
+
let deletedControls = [];
|
|
6104
|
+
let controlNames = this.options.RepeaterStructure.map(e => e.ControlOptions.Name);
|
|
6105
|
+
for (const key in this.repeaterGroup.controls) {
|
|
6106
|
+
if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {
|
|
6107
|
+
for (let index = 0; index < controlNames.length; index++) {
|
|
6108
|
+
const element = controlNames[index];
|
|
6109
|
+
const keySplitArr = key.split('.');
|
|
6110
|
+
if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {
|
|
6111
|
+
const element = this.repeaterGroup.controls[key];
|
|
6112
|
+
deletedControls.push({ [key]: element });
|
|
6113
|
+
}
|
|
6114
|
+
}
|
|
6115
|
+
}
|
|
6116
|
+
}
|
|
6117
|
+
for (let index = 0; index < deletedControls.length; index++) {
|
|
6118
|
+
const element = deletedControls[index];
|
|
6119
|
+
for (const key in element) {
|
|
6120
|
+
if (Object.prototype.hasOwnProperty.call(element, key)) {
|
|
6121
|
+
this.repeaterGroup.removeControl(key);
|
|
6122
|
+
}
|
|
6123
|
+
}
|
|
6124
|
+
}
|
|
6125
|
+
this.items = this.items.filter((res) => res != this.items[Index]);
|
|
6324
6126
|
}
|
|
6325
|
-
|
|
6326
|
-
|
|
6327
|
-
|
|
6328
|
-
|
|
6329
|
-
|
|
6330
|
-
|
|
6331
|
-
|
|
6332
|
-
|
|
6333
|
-
|
|
6334
|
-
|
|
6335
|
-
|
|
6336
|
-
}] } });
|
|
6337
|
-
|
|
6338
|
-
class NgTemplateNameDirective {
|
|
6339
|
-
constructor(template) {
|
|
6340
|
-
this.template = template;
|
|
6127
|
+
addItem() {
|
|
6128
|
+
this.items.push(this.items.length);
|
|
6129
|
+
}
|
|
6130
|
+
ngAfterViewInit() {
|
|
6131
|
+
let templateRefs = this._templates["_results"].map((item) => item["template"]);
|
|
6132
|
+
this.templateRefs = templateRefs;
|
|
6133
|
+
this.repeaterContext.elements = this.templateRefs;
|
|
6134
|
+
this.repeaterContext.delete = this.delete;
|
|
6135
|
+
}
|
|
6136
|
+
setCurrentIndex(i) {
|
|
6137
|
+
this.repeaterContext.index = i;
|
|
6341
6138
|
}
|
|
6342
6139
|
}
|
|
6343
|
-
|
|
6344
|
-
|
|
6345
|
-
|
|
6346
|
-
|
|
6347
|
-
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
|
|
6351
|
-
|
|
6352
|
-
|
|
6140
|
+
RepeaterComponent.decorators = [
|
|
6141
|
+
{ type: Component, args: [{
|
|
6142
|
+
selector: 'BBSF-repeater',
|
|
6143
|
+
template: "<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"
|
|
6144
|
+
},] }
|
|
6145
|
+
];
|
|
6146
|
+
RepeaterComponent.ctorParameters = () => [];
|
|
6147
|
+
RepeaterComponent.propDecorators = {
|
|
6148
|
+
group: [{ type: Input }],
|
|
6149
|
+
options: [{ type: Input }],
|
|
6150
|
+
initialTemplate: [{ type: Input }],
|
|
6151
|
+
_templates: [{ type: ViewChildren, args: [NgTemplateNameDirective,] }],
|
|
6152
|
+
delete: [{ type: ViewChild, args: ['delete', { static: false },] }]
|
|
6153
|
+
};
|
|
6353
6154
|
|
|
6354
6155
|
var PermissionSets;
|
|
6355
6156
|
(function (PermissionSets) {
|
|
@@ -6555,11 +6356,12 @@ class RenderComponentService {
|
|
|
6555
6356
|
}
|
|
6556
6357
|
}
|
|
6557
6358
|
}
|
|
6558
|
-
RenderComponentService
|
|
6559
|
-
|
|
6560
|
-
|
|
6561
|
-
|
|
6562
|
-
|
|
6359
|
+
RenderComponentService.decorators = [
|
|
6360
|
+
{ type: Injectable }
|
|
6361
|
+
];
|
|
6362
|
+
RenderComponentService.ctorParameters = () => [
|
|
6363
|
+
{ type: ComponentFactoryResolver }
|
|
6364
|
+
];
|
|
6563
6365
|
|
|
6564
6366
|
class RepeaterFieldBuilderComponent {
|
|
6565
6367
|
constructor(renderComponentService, TextControlHost) {
|
|
@@ -7261,41 +7063,56 @@ class RepeaterFieldBuilderComponent {
|
|
|
7261
7063
|
}
|
|
7262
7064
|
}
|
|
7263
7065
|
}
|
|
7264
|
-
RepeaterFieldBuilderComponent
|
|
7265
|
-
|
|
7266
|
-
|
|
7267
|
-
|
|
7268
|
-
|
|
7269
|
-
|
|
7270
|
-
|
|
7271
|
-
|
|
7272
|
-
|
|
7273
|
-
|
|
7274
|
-
|
|
7275
|
-
|
|
7276
|
-
|
|
7277
|
-
|
|
7278
|
-
|
|
7279
|
-
|
|
7280
|
-
|
|
7281
|
-
|
|
7282
|
-
}] } });
|
|
7066
|
+
RepeaterFieldBuilderComponent.decorators = [
|
|
7067
|
+
{ type: Component, args: [{
|
|
7068
|
+
selector: 'repeater-field-builder',
|
|
7069
|
+
template: "<ng-container #Item></ng-container>\r\n"
|
|
7070
|
+
},] }
|
|
7071
|
+
];
|
|
7072
|
+
RepeaterFieldBuilderComponent.ctorParameters = () => [
|
|
7073
|
+
{ type: RenderComponentService },
|
|
7074
|
+
{ type: FormGroupDirective }
|
|
7075
|
+
];
|
|
7076
|
+
RepeaterFieldBuilderComponent.propDecorators = {
|
|
7077
|
+
Item: [{ type: ViewChild, args: ["Item", { read: ViewContainerRef },] }],
|
|
7078
|
+
group: [{ type: Input }],
|
|
7079
|
+
itemNumber: [{ type: Input }],
|
|
7080
|
+
controlNumber: [{ type: Input }],
|
|
7081
|
+
RepeaterField: [{ type: Input }],
|
|
7082
|
+
itemsValue: [{ type: Input }]
|
|
7083
|
+
};
|
|
7283
7084
|
|
|
7284
|
-
class
|
|
7285
|
-
constructor() {
|
|
7286
|
-
|
|
7085
|
+
class RepeaterItemFieldComponent {
|
|
7086
|
+
constructor() { }
|
|
7087
|
+
ngOnInit() {
|
|
7088
|
+
}
|
|
7089
|
+
}
|
|
7090
|
+
RepeaterItemFieldComponent.decorators = [
|
|
7091
|
+
{ type: Component, args: [{
|
|
7092
|
+
selector: 'repeater-item-field',
|
|
7093
|
+
template: "<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"
|
|
7094
|
+
},] }
|
|
7095
|
+
];
|
|
7096
|
+
RepeaterItemFieldComponent.ctorParameters = () => [];
|
|
7097
|
+
RepeaterItemFieldComponent.propDecorators = {
|
|
7098
|
+
templates: [{ type: Input }],
|
|
7099
|
+
filedIndex: [{ type: Input }],
|
|
7100
|
+
itemIndex: [{ type: Input }]
|
|
7101
|
+
};
|
|
7102
|
+
|
|
7103
|
+
class RepeaterTableComponent {
|
|
7104
|
+
constructor(utilityService) {
|
|
7105
|
+
this.utilityService = utilityService;
|
|
7287
7106
|
this.items = [];
|
|
7288
7107
|
this.originalItems = [];
|
|
7289
|
-
this.repeaterContext = { index: 0, delete: null, elements: null };
|
|
7290
7108
|
}
|
|
7291
7109
|
ngOnInit() {
|
|
7292
|
-
this.currentTemplate = this.initialTemplate;
|
|
7293
7110
|
this.repeaterGroup = new FormGroup({});
|
|
7294
7111
|
this.group.addControl(this.options.Name, this.repeaterGroup);
|
|
7295
7112
|
if (this.options.RepeaterValue.length > 0) {
|
|
7296
7113
|
this.originalItems = this.options.RepeaterValue;
|
|
7297
7114
|
for (let index = 0; index < this.options.RepeaterValue.length; index++) {
|
|
7298
|
-
this.items.push(index
|
|
7115
|
+
this.items.push(index);
|
|
7299
7116
|
}
|
|
7300
7117
|
}
|
|
7301
7118
|
else
|
|
@@ -7340,220 +7157,415 @@ class RepeaterComponent {
|
|
|
7340
7157
|
this.options.RepeaterValue = result;
|
|
7341
7158
|
});
|
|
7342
7159
|
}
|
|
7343
|
-
deleteItem(Index) {
|
|
7344
|
-
if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)
|
|
7160
|
+
deleteItem(Index) {
|
|
7161
|
+
if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)
|
|
7162
|
+
return;
|
|
7163
|
+
let deletedControls = [];
|
|
7164
|
+
let controlNames = this.options.RepeaterStructure.map(e => e.ControlOptions.Name);
|
|
7165
|
+
for (const key in this.repeaterGroup.controls) {
|
|
7166
|
+
if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {
|
|
7167
|
+
for (let index = 0; index < controlNames.length; index++) {
|
|
7168
|
+
const element = controlNames[index];
|
|
7169
|
+
const keySplitArr = key.split('.');
|
|
7170
|
+
if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {
|
|
7171
|
+
const element = this.repeaterGroup.controls[key];
|
|
7172
|
+
deletedControls.push({ [key]: element });
|
|
7173
|
+
}
|
|
7174
|
+
}
|
|
7175
|
+
}
|
|
7176
|
+
}
|
|
7177
|
+
for (let index = 0; index < deletedControls.length; index++) {
|
|
7178
|
+
const element = deletedControls[index];
|
|
7179
|
+
for (const key in element) {
|
|
7180
|
+
if (Object.prototype.hasOwnProperty.call(element, key)) {
|
|
7181
|
+
this.repeaterGroup.removeControl(key);
|
|
7182
|
+
}
|
|
7183
|
+
}
|
|
7184
|
+
}
|
|
7185
|
+
this.items = this.items.filter((res) => res != this.items[Index]);
|
|
7186
|
+
}
|
|
7187
|
+
addItem() {
|
|
7188
|
+
if (this.items.length == 0)
|
|
7189
|
+
this.items.push(this.items.length);
|
|
7190
|
+
else
|
|
7191
|
+
this.items.push(this.items[this.items.length - 1] + 1);
|
|
7192
|
+
}
|
|
7193
|
+
}
|
|
7194
|
+
RepeaterTableComponent.decorators = [
|
|
7195
|
+
{ type: Component, args: [{
|
|
7196
|
+
selector: 'BBSF-repeater-table',
|
|
7197
|
+
template: "<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"
|
|
7198
|
+
},] }
|
|
7199
|
+
];
|
|
7200
|
+
RepeaterTableComponent.ctorParameters = () => [
|
|
7201
|
+
{ type: UtilityService }
|
|
7202
|
+
];
|
|
7203
|
+
RepeaterTableComponent.propDecorators = {
|
|
7204
|
+
group: [{ type: Input }],
|
|
7205
|
+
options: [{ type: Input }]
|
|
7206
|
+
};
|
|
7207
|
+
|
|
7208
|
+
class BBSFDateTimePipe {
|
|
7209
|
+
constructor(datePipe) {
|
|
7210
|
+
this.datePipe = datePipe;
|
|
7211
|
+
}
|
|
7212
|
+
transform(value) {
|
|
7213
|
+
let latest_date = this.datePipe.transform(value, 'dd/MM/yyyy hh:mm a');
|
|
7214
|
+
return latest_date;
|
|
7215
|
+
}
|
|
7216
|
+
}
|
|
7217
|
+
BBSFDateTimePipe.decorators = [
|
|
7218
|
+
{ type: Pipe, args: [{
|
|
7219
|
+
name: 'bbsfDateTime'
|
|
7220
|
+
},] }
|
|
7221
|
+
];
|
|
7222
|
+
BBSFDateTimePipe.ctorParameters = () => [
|
|
7223
|
+
{ type: DatePipe }
|
|
7224
|
+
];
|
|
7225
|
+
|
|
7226
|
+
class BBSFDatePipe {
|
|
7227
|
+
constructor(datePipe) {
|
|
7228
|
+
this.datePipe = datePipe;
|
|
7229
|
+
}
|
|
7230
|
+
transform(value) {
|
|
7231
|
+
let latest_date = this.datePipe.transform(value, 'dd/MM/yyyy');
|
|
7232
|
+
return latest_date;
|
|
7233
|
+
}
|
|
7234
|
+
}
|
|
7235
|
+
BBSFDatePipe.decorators = [
|
|
7236
|
+
{ type: Pipe, args: [{
|
|
7237
|
+
name: 'bbsfDate'
|
|
7238
|
+
},] }
|
|
7239
|
+
];
|
|
7240
|
+
BBSFDatePipe.ctorParameters = () => [
|
|
7241
|
+
{ type: DatePipe }
|
|
7242
|
+
];
|
|
7243
|
+
|
|
7244
|
+
var TagInputView;
|
|
7245
|
+
(function (TagInputView) {
|
|
7246
|
+
TagInputView[TagInputView["WithImage"] = 1] = "WithImage";
|
|
7247
|
+
TagInputView[TagInputView["WithoutImage"] = 2] = "WithoutImage";
|
|
7248
|
+
TagInputView[TagInputView["WithInitial"] = 3] = "WithInitial";
|
|
7249
|
+
})(TagInputView || (TagInputView = {}));
|
|
7250
|
+
|
|
7251
|
+
const noop = () => { };
|
|
7252
|
+
const ɵ0$1 = noop;
|
|
7253
|
+
const TAGS_INPUT_TEMPLATE = `
|
|
7254
|
+
|
|
7255
|
+
<div class="tags-input">
|
|
7256
|
+
<span class="tags-input__tag label label-primary badge badge-primary" *ngFor="let tag of tags">
|
|
7257
|
+
|
|
7258
|
+
<span [ngSwitch]="ViewMode">
|
|
7259
|
+
<span *ngSwitchCase="tagInputViewEnum.WithImage">
|
|
7260
|
+
<img style="border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;"
|
|
7261
|
+
src="{{(tag.imageURL?tag.imageURL:defaultImageURL)}}" />
|
|
7262
|
+
</span>
|
|
7263
|
+
|
|
7264
|
+
<span *ngSwitchCase="tagInputViewEnum.WithInitial">
|
|
7265
|
+
<div class="user-initials">{{calculateInitials(tag.name)}}</div>
|
|
7266
|
+
</span>
|
|
7267
|
+
|
|
7268
|
+
<span *ngSwitchDefault>
|
|
7269
|
+
</span>
|
|
7270
|
+
|
|
7271
|
+
</span>
|
|
7272
|
+
{{tag[displayField]}}
|
|
7273
|
+
<span *ngIf="isDeleteable(tag)" role="button" class="tags-input__tag-remove-btn" (click)="removeTag(tag)"
|
|
7274
|
+
(touch)="removeTag(tag)">
|
|
7275
|
+
<span aria-hidden="true">×</span>
|
|
7276
|
+
<span class="sr-only">Close</span>
|
|
7277
|
+
</span>
|
|
7278
|
+
</span>
|
|
7279
|
+
|
|
7280
|
+
<input *ngIf="options === null; else withTypeahead" class="tags-input__input-field" type="text"
|
|
7281
|
+
[placeholder]="getPlaceholder()" name="tags" (keyup.enter)="addTag(tagInput)"
|
|
7282
|
+
(keydown.backspace)="removeLastTag(tagInput)" [disabled]="!canAddTags || maximumOfTagsReached()"
|
|
7283
|
+
[hidden]="!canAddTags || maximumOfTagsReached()" #tagInput />
|
|
7284
|
+
|
|
7285
|
+
<ng-template #withTypeahead>
|
|
7286
|
+
<span [ngSwitch]="ViewMode">
|
|
7287
|
+
<span *ngSwitchCase="tagInputViewEnum.WithImage">
|
|
7288
|
+
<input *ngIf="(options !== null)" class="tags-input__input-field" type="text" [placeholder]="getPlaceholder()"
|
|
7289
|
+
name="tags" (keydown.backspace)="removeLastTag(tagInput)" [(ngModel)]="selected" [typeahead]="options"
|
|
7290
|
+
[typeaheadOptionField]="displayField" (typeaheadOnSelect)="typeaheadOnSelect($event)"
|
|
7291
|
+
(typeaheadNoResults)="typeaheadOnNoMatch($event)" [typeaheadMinLength]="minLengthBeforeOptions"
|
|
7292
|
+
[typeaheadScrollable]="scrollableOptions" [typeaheadLatinize]="true"
|
|
7293
|
+
[typeaheadItemTemplate]="itemTemplateWithImage" [typeaheadOptionsInScrollableView]="scrollableOptionsInView"
|
|
7294
|
+
[disabled]="!canAddTags || maximumOfTagsReached()" [hidden]="!canAddTags || maximumOfTagsReached()"
|
|
7295
|
+
(blur)="onBlur()" autocomplete="off"
|
|
7296
|
+
#tagInput />
|
|
7297
|
+
</span>
|
|
7298
|
+
|
|
7299
|
+
<span *ngSwitchCase="tagInputViewEnum.WithoutImage">
|
|
7300
|
+
<input *ngIf="(options !== null)" class="tags-input__input-field" type="text" [placeholder]="getPlaceholder()"
|
|
7301
|
+
name="tags" (keydown.backspace)="removeLastTag(tagInput)" [(ngModel)]="selected" [typeahead]="options"
|
|
7302
|
+
[typeaheadOptionField]="displayField" (typeaheadOnSelect)="typeaheadOnSelect($event)"
|
|
7303
|
+
(typeaheadNoResults)="typeaheadOnNoMatch($event)" [typeaheadMinLength]="minLengthBeforeOptions"
|
|
7304
|
+
[typeaheadScrollable]="scrollableOptions" [typeaheadLatinize]="true"
|
|
7305
|
+
[typeaheadItemTemplate]="itemTemplateWithoutImage"
|
|
7306
|
+
[typeaheadOptionsInScrollableView]="scrollableOptionsInView"
|
|
7307
|
+
[disabled]="!canAddTags || maximumOfTagsReached()" [hidden]="!canAddTags || maximumOfTagsReached()"
|
|
7308
|
+
(blur)="onBlur()" autocomplete="off"
|
|
7309
|
+
#tagInput />
|
|
7310
|
+
</span>
|
|
7311
|
+
|
|
7312
|
+
<span *ngSwitchCase="tagInputViewEnum.WithInitial">
|
|
7313
|
+
<input *ngIf="(options !== null)" class="tags-input__input-field" type="text" [placeholder]="getPlaceholder()"
|
|
7314
|
+
name="tags" (keydown.backspace)="removeLastTag(tagInput)" [(ngModel)]="selected" [typeahead]="options"
|
|
7315
|
+
[typeaheadOptionField]="displayField" (typeaheadOnSelect)="typeaheadOnSelect($event)"
|
|
7316
|
+
(typeaheadNoResults)="typeaheadOnNoMatch($event)" [typeaheadMinLength]="minLengthBeforeOptions"
|
|
7317
|
+
[typeaheadScrollable]="scrollableOptions" [typeaheadLatinize]="true"
|
|
7318
|
+
[typeaheadItemTemplate]="itemTemplateWithoutInitial"
|
|
7319
|
+
[typeaheadOptionsInScrollableView]="scrollableOptionsInView"
|
|
7320
|
+
[disabled]="!canAddTags || maximumOfTagsReached()" [hidden]="!canAddTags || maximumOfTagsReached()"
|
|
7321
|
+
(blur)="onBlur()" autocomplete="off"
|
|
7322
|
+
#tagInput />
|
|
7323
|
+
</span>
|
|
7324
|
+
|
|
7325
|
+
<span *ngSwitchDefault>
|
|
7326
|
+
<input *ngIf="(options !== null)" class="tags-input__input-field" type="text" [placeholder]="getPlaceholder()"
|
|
7327
|
+
name="tags" (keydown.backspace)="removeLastTag(tagInput)" [(ngModel)]="selected" [typeahead]="options"
|
|
7328
|
+
[typeaheadOptionField]="displayField" (typeaheadOnSelect)="typeaheadOnSelect($event)"
|
|
7329
|
+
(typeaheadNoResults)="typeaheadOnNoMatch($event)" [typeaheadMinLength]="minLengthBeforeOptions"
|
|
7330
|
+
[typeaheadScrollable]="scrollableOptions" [typeaheadLatinize]="true"
|
|
7331
|
+
[typeaheadItemTemplate]="itemTemplateWithoutImage"
|
|
7332
|
+
[typeaheadOptionsInScrollableView]="scrollableOptionsInView"
|
|
7333
|
+
[disabled]="!canAddTags || maximumOfTagsReached()" [hidden]="!canAddTags || maximumOfTagsReached()"
|
|
7334
|
+
(blur)="onBlur()" autocomplete="off"
|
|
7335
|
+
#tagInput />
|
|
7336
|
+
</span>
|
|
7337
|
+
|
|
7338
|
+
</span>
|
|
7339
|
+
|
|
7340
|
+
</ng-template>
|
|
7341
|
+
|
|
7342
|
+
<ng-template #itemTemplateWithImage let-model="item" let-index="index">
|
|
7343
|
+
<img
|
|
7344
|
+
style="border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;"
|
|
7345
|
+
src="{{(model.imageURL?model.imageURL:defaultImageURL)}}" />
|
|
7346
|
+
<div>
|
|
7347
|
+
<a [innerHTML]="model.name"></a>
|
|
7348
|
+
<p *ngIf="showDescription">
|
|
7349
|
+
{{model.description}}
|
|
7350
|
+
</p>
|
|
7351
|
+
</div>
|
|
7352
|
+
</ng-template>
|
|
7353
|
+
|
|
7354
|
+
<ng-template #itemTemplateWithoutImage let-model="item" let-index="index">
|
|
7355
|
+
<div>
|
|
7356
|
+
<a [innerHTML]="model.name"></a>
|
|
7357
|
+
<p *ngIf="showDescription">
|
|
7358
|
+
{{model.description}}
|
|
7359
|
+
</p>
|
|
7360
|
+
</div>
|
|
7361
|
+
</ng-template>
|
|
7362
|
+
|
|
7363
|
+
<ng-template #itemTemplateWithoutInitial let-model="item" let-index="index">
|
|
7364
|
+
<div class="user-image">
|
|
7365
|
+
<div class="user-initials">{{calculateInitials(model.name)}}</div>
|
|
7366
|
+
</div>
|
|
7367
|
+
<div>
|
|
7368
|
+
<a [innerHTML]="model.name"></a>
|
|
7369
|
+
<p *ngIf="showDescription">
|
|
7370
|
+
{{model.description}}
|
|
7371
|
+
</p>
|
|
7372
|
+
</div>
|
|
7373
|
+
</ng-template>
|
|
7374
|
+
</div>
|
|
7375
|
+
`;
|
|
7376
|
+
const TAGS_INPUT_STYLE = `
|
|
7377
|
+
:host {
|
|
7378
|
+
overflow: auto;
|
|
7379
|
+
white-space: nowrap;
|
|
7380
|
+
}
|
|
7381
|
+
|
|
7382
|
+
.tags-input {
|
|
7383
|
+
align-items: center;
|
|
7384
|
+
display: flex;
|
|
7385
|
+
flex-wrap: wrap;
|
|
7386
|
+
}
|
|
7387
|
+
|
|
7388
|
+
.tags-input__tag {
|
|
7389
|
+
display: inline-block;
|
|
7390
|
+
margin-bottom: 2px;
|
|
7391
|
+
margin-right: 5px;
|
|
7392
|
+
padding-right: 0.3em;
|
|
7393
|
+
}
|
|
7394
|
+
|
|
7395
|
+
.tags-input__tag-remove-btn {
|
|
7396
|
+
cursor: pointer;
|
|
7397
|
+
display: inline-block;
|
|
7398
|
+
font-size: 12px;
|
|
7399
|
+
margin: -3px 0 0 3px;
|
|
7400
|
+
padding: 0;
|
|
7401
|
+
vertical-align: top;
|
|
7402
|
+
}
|
|
7403
|
+
|
|
7404
|
+
.tags-input__input-field {
|
|
7405
|
+
border: none;
|
|
7406
|
+
flex-grow: 1;
|
|
7407
|
+
outline: none;
|
|
7408
|
+
}
|
|
7409
|
+
`;
|
|
7410
|
+
const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
|
|
7411
|
+
provide: NG_VALUE_ACCESSOR,
|
|
7412
|
+
useExisting: forwardRef(() => BTagsInputComponent),
|
|
7413
|
+
multi: true
|
|
7414
|
+
};
|
|
7415
|
+
class BTagsInputComponent {
|
|
7416
|
+
constructor() {
|
|
7417
|
+
this.selected = '';
|
|
7418
|
+
this.tags = [];
|
|
7419
|
+
this.onTouchedCallback = noop;
|
|
7420
|
+
this.onChangeCallback = noop;
|
|
7421
|
+
this.tagInputViewEnum = TagInputView;
|
|
7422
|
+
this.removeLastOnBackspace = false;
|
|
7423
|
+
this.canDeleteTags = true;
|
|
7424
|
+
this.canAddTags = true;
|
|
7425
|
+
this.ViewMode = TagInputView.WithoutImage;
|
|
7426
|
+
this.placeholder = '';
|
|
7427
|
+
this.showDescription = true;
|
|
7428
|
+
this.options = null;
|
|
7429
|
+
this.defaultImageURL = null;
|
|
7430
|
+
this.displayField = 'name';
|
|
7431
|
+
this.minLengthBeforeOptions = 1;
|
|
7432
|
+
this.scrollableOptions = false;
|
|
7433
|
+
this.scrollableOptionsInView = 5;
|
|
7434
|
+
this.onTagsChanged = new EventEmitter();
|
|
7435
|
+
this.onMaxTagsReached = new EventEmitter();
|
|
7436
|
+
this.onNoOptionsMatch = new EventEmitter();
|
|
7437
|
+
this.onBlurInput = new EventEmitter();
|
|
7438
|
+
// (keydown.Tab) = "onTab($event)"
|
|
7439
|
+
//onTab(event) {
|
|
7440
|
+
// this.onTabInput.emit();
|
|
7441
|
+
// event.preventDefault();
|
|
7442
|
+
// event.stopPropagation();
|
|
7443
|
+
//}
|
|
7444
|
+
}
|
|
7445
|
+
getPlaceholder() {
|
|
7446
|
+
if (this.tags && this.tags.length > 0) {
|
|
7447
|
+
return '';
|
|
7448
|
+
}
|
|
7449
|
+
return this.placeholder;
|
|
7450
|
+
}
|
|
7451
|
+
tagsChanged(type, tag) {
|
|
7452
|
+
this.onChangeCallback(this.tags);
|
|
7453
|
+
this.onTagsChanged.emit({
|
|
7454
|
+
change: type,
|
|
7455
|
+
tag: tag
|
|
7456
|
+
});
|
|
7457
|
+
if (this.maximumOfTagsReached()) {
|
|
7458
|
+
this.onMaxTagsReached.emit();
|
|
7459
|
+
}
|
|
7460
|
+
}
|
|
7461
|
+
removeLastTag(tagInput) {
|
|
7462
|
+
var _a;
|
|
7463
|
+
if (!this.removeLastOnBackspace || !((_a = this.tags) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
7345
7464
|
return;
|
|
7346
|
-
let deletedControls = [];
|
|
7347
|
-
let controlNames = this.options.RepeaterStructure.map(e => e.ControlOptions.Name);
|
|
7348
|
-
for (const key in this.repeaterGroup.controls) {
|
|
7349
|
-
if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {
|
|
7350
|
-
for (let index = 0; index < controlNames.length; index++) {
|
|
7351
|
-
const element = controlNames[index];
|
|
7352
|
-
const keySplitArr = key.split('.');
|
|
7353
|
-
if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {
|
|
7354
|
-
const element = this.repeaterGroup.controls[key];
|
|
7355
|
-
deletedControls.push({ [key]: element });
|
|
7356
|
-
}
|
|
7357
|
-
}
|
|
7358
|
-
}
|
|
7359
7465
|
}
|
|
7360
|
-
|
|
7361
|
-
|
|
7362
|
-
for (const key in element) {
|
|
7363
|
-
if (Object.prototype.hasOwnProperty.call(element, key)) {
|
|
7364
|
-
this.repeaterGroup.removeControl(key);
|
|
7365
|
-
}
|
|
7366
|
-
}
|
|
7466
|
+
if (tagInput.value === '') {
|
|
7467
|
+
this.removeTag(this.tags[this.tags.length - 1]);
|
|
7367
7468
|
}
|
|
7368
|
-
this.items = this.items.filter((res) => res != this.items[Index]);
|
|
7369
7469
|
}
|
|
7370
|
-
|
|
7371
|
-
|
|
7372
|
-
|
|
7373
|
-
|
|
7374
|
-
|
|
7375
|
-
|
|
7376
|
-
|
|
7377
|
-
|
|
7470
|
+
addTag(tagInput) {
|
|
7471
|
+
if (tagInput.value.trim() !== '') {
|
|
7472
|
+
let tag = {
|
|
7473
|
+
[this.displayField]: tagInput.value
|
|
7474
|
+
};
|
|
7475
|
+
this.addPredefinedTag(tag);
|
|
7476
|
+
}
|
|
7477
|
+
tagInput.value = '';
|
|
7378
7478
|
}
|
|
7379
|
-
|
|
7380
|
-
this.
|
|
7479
|
+
addPredefinedTag(tag) {
|
|
7480
|
+
if (this.tags == null)
|
|
7481
|
+
this.tags = [];
|
|
7482
|
+
if (!this.maximumOfTagsReached()) {
|
|
7483
|
+
this.tags.push(tag);
|
|
7484
|
+
this.tagsChanged('add', tag);
|
|
7485
|
+
}
|
|
7381
7486
|
}
|
|
7382
|
-
|
|
7383
|
-
|
|
7384
|
-
|
|
7385
|
-
|
|
7386
|
-
|
|
7387
|
-
|
|
7388
|
-
}], ctorParameters: function () { return []; }, propDecorators: { group: [{
|
|
7389
|
-
type: Input
|
|
7390
|
-
}], options: [{
|
|
7391
|
-
type: Input
|
|
7392
|
-
}], initialTemplate: [{
|
|
7393
|
-
type: Input
|
|
7394
|
-
}], _templates: [{
|
|
7395
|
-
type: ViewChildren,
|
|
7396
|
-
args: [NgTemplateNameDirective]
|
|
7397
|
-
}], delete: [{
|
|
7398
|
-
type: ViewChild,
|
|
7399
|
-
args: ['delete', { static: false }]
|
|
7400
|
-
}] } });
|
|
7401
|
-
|
|
7402
|
-
class RepeaterItemFieldComponent {
|
|
7403
|
-
constructor() { }
|
|
7404
|
-
ngOnInit() {
|
|
7487
|
+
removeTag(tagToRemove) {
|
|
7488
|
+
if (!this.isDeleteable(tagToRemove)) {
|
|
7489
|
+
return;
|
|
7490
|
+
}
|
|
7491
|
+
this.tags = this.tags.filter(tag => tagToRemove !== tag);
|
|
7492
|
+
this.tagsChanged('remove', tagToRemove);
|
|
7405
7493
|
}
|
|
7406
|
-
|
|
7407
|
-
|
|
7408
|
-
RepeaterItemFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: RepeaterItemFieldComponent, selector: "repeater-item-field", inputs: { templates: "templates", filedIndex: "filedIndex", itemIndex: "itemIndex" }, ngImport: i0, template: "<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", directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
7409
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RepeaterItemFieldComponent, decorators: [{
|
|
7410
|
-
type: Component,
|
|
7411
|
-
args: [{ selector: 'repeater-item-field', template: "<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" }]
|
|
7412
|
-
}], ctorParameters: function () { return []; }, propDecorators: { templates: [{
|
|
7413
|
-
type: Input
|
|
7414
|
-
}], filedIndex: [{
|
|
7415
|
-
type: Input
|
|
7416
|
-
}], itemIndex: [{
|
|
7417
|
-
type: Input
|
|
7418
|
-
}] } });
|
|
7419
|
-
|
|
7420
|
-
class RepeaterTableComponent {
|
|
7421
|
-
constructor(utilityService) {
|
|
7422
|
-
this.utilityService = utilityService;
|
|
7423
|
-
this.items = [];
|
|
7424
|
-
this.originalItems = [];
|
|
7494
|
+
maximumOfTagsReached() {
|
|
7495
|
+
return typeof this.maxTags !== 'undefined' && this.tags && this.tags.length >= this.maxTags;
|
|
7425
7496
|
}
|
|
7426
|
-
|
|
7427
|
-
|
|
7428
|
-
|
|
7429
|
-
if (this.options.RepeaterValue.length > 0) {
|
|
7430
|
-
this.originalItems = this.options.RepeaterValue;
|
|
7431
|
-
for (let index = 0; index < this.options.RepeaterValue.length; index++) {
|
|
7432
|
-
this.items.push(index);
|
|
7433
|
-
}
|
|
7497
|
+
isDeleteable(tag) {
|
|
7498
|
+
if (typeof tag.deleteable !== "undefined" && !tag.deleteable) {
|
|
7499
|
+
return false;
|
|
7434
7500
|
}
|
|
7435
|
-
|
|
7436
|
-
for (let index = 0; index < this.options.MinRequiredItems; index++) {
|
|
7437
|
-
this.items.push(index);
|
|
7438
|
-
}
|
|
7439
|
-
this.repeaterGroup.valueChanges.subscribe((res) => {
|
|
7440
|
-
let result = [];
|
|
7441
|
-
let rowNumber = [];
|
|
7442
|
-
let addItems = [];
|
|
7443
|
-
for (const key in this.repeaterGroup.controls) {
|
|
7444
|
-
if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {
|
|
7445
|
-
const keySplitArr = key.split('.');
|
|
7446
|
-
let item = {
|
|
7447
|
-
[keySplitArr[1]]: { [keySplitArr[0]]: this.group.controls[this.options.Name].value[key] }
|
|
7448
|
-
};
|
|
7449
|
-
addItems.push(item);
|
|
7450
|
-
if (!rowNumber.includes(keySplitArr[1]))
|
|
7451
|
-
rowNumber.push(keySplitArr[1]);
|
|
7452
|
-
}
|
|
7453
|
-
}
|
|
7454
|
-
for (let index = 0; index < rowNumber.length; index++) {
|
|
7455
|
-
const row = rowNumber[index];
|
|
7456
|
-
let addObject = {};
|
|
7457
|
-
let filteredElements = addItems.filter(item => item[row]);
|
|
7458
|
-
for (let index = 0; index < filteredElements.length; index++) {
|
|
7459
|
-
const filteredElement = filteredElements[index];
|
|
7460
|
-
for (const key in filteredElement) {
|
|
7461
|
-
if (Object.prototype.hasOwnProperty.call(filteredElement, key)) {
|
|
7462
|
-
const element = filteredElement[key];
|
|
7463
|
-
for (const key in element) {
|
|
7464
|
-
if (Object.prototype.hasOwnProperty.call(element, key)) {
|
|
7465
|
-
const value = element[key];
|
|
7466
|
-
addObject[key] = value;
|
|
7467
|
-
}
|
|
7468
|
-
}
|
|
7469
|
-
}
|
|
7470
|
-
}
|
|
7471
|
-
}
|
|
7472
|
-
result.push(addObject);
|
|
7473
|
-
}
|
|
7474
|
-
this.options.RepeaterValue = result;
|
|
7475
|
-
});
|
|
7501
|
+
return this.canDeleteTags;
|
|
7476
7502
|
}
|
|
7477
|
-
|
|
7478
|
-
if (
|
|
7479
|
-
|
|
7480
|
-
|
|
7481
|
-
|
|
7482
|
-
for (const key in this.repeaterGroup.controls) {
|
|
7483
|
-
if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {
|
|
7484
|
-
for (let index = 0; index < controlNames.length; index++) {
|
|
7485
|
-
const element = controlNames[index];
|
|
7486
|
-
const keySplitArr = key.split('.');
|
|
7487
|
-
if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {
|
|
7488
|
-
const element = this.repeaterGroup.controls[key];
|
|
7489
|
-
deletedControls.push({ [key]: element });
|
|
7490
|
-
}
|
|
7491
|
-
}
|
|
7492
|
-
}
|
|
7503
|
+
typeaheadOnSelect(e) {
|
|
7504
|
+
if (typeof e.item === 'string') {
|
|
7505
|
+
this.addPredefinedTag({
|
|
7506
|
+
[this.displayField]: e.value
|
|
7507
|
+
});
|
|
7493
7508
|
}
|
|
7494
|
-
|
|
7495
|
-
|
|
7496
|
-
for (const key in element) {
|
|
7497
|
-
if (Object.prototype.hasOwnProperty.call(element, key)) {
|
|
7498
|
-
this.repeaterGroup.removeControl(key);
|
|
7499
|
-
}
|
|
7500
|
-
}
|
|
7509
|
+
else {
|
|
7510
|
+
this.addPredefinedTag(e.item);
|
|
7501
7511
|
}
|
|
7502
|
-
this.
|
|
7512
|
+
this.selected = '';
|
|
7503
7513
|
}
|
|
7504
|
-
|
|
7505
|
-
if (this.
|
|
7506
|
-
this.
|
|
7507
|
-
|
|
7508
|
-
this.items.push(this.items[this.items.length - 1] + 1);
|
|
7514
|
+
typeaheadOnNoMatch(e) {
|
|
7515
|
+
if (typeof this.onNoOptionsMatch !== 'undefined') {
|
|
7516
|
+
this.onNoOptionsMatch.emit(e);
|
|
7517
|
+
}
|
|
7509
7518
|
}
|
|
7510
|
-
|
|
7511
|
-
|
|
7512
|
-
|
|
7513
|
-
|
|
7514
|
-
type: Component,
|
|
7515
|
-
args: [{ selector: 'BBSF-repeater-table', template: "<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" }]
|
|
7516
|
-
}], ctorParameters: function () { return [{ type: i3.UtilityService }]; }, propDecorators: { group: [{
|
|
7517
|
-
type: Input
|
|
7518
|
-
}], options: [{
|
|
7519
|
-
type: Input
|
|
7520
|
-
}] } });
|
|
7521
|
-
|
|
7522
|
-
class BBSFDateTimePipe {
|
|
7523
|
-
constructor(datePipe) {
|
|
7524
|
-
this.datePipe = datePipe;
|
|
7519
|
+
writeValue(value) {
|
|
7520
|
+
if (value !== this.tags) {
|
|
7521
|
+
this.tags = value;
|
|
7522
|
+
}
|
|
7525
7523
|
}
|
|
7526
|
-
|
|
7527
|
-
|
|
7528
|
-
return latest_date;
|
|
7524
|
+
registerOnChange(fn) {
|
|
7525
|
+
this.onChangeCallback = fn;
|
|
7529
7526
|
}
|
|
7530
|
-
|
|
7531
|
-
|
|
7532
|
-
BBSFDateTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFDateTimePipe, name: "bbsfDateTime" });
|
|
7533
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFDateTimePipe, decorators: [{
|
|
7534
|
-
type: Pipe,
|
|
7535
|
-
args: [{
|
|
7536
|
-
name: 'bbsfDateTime'
|
|
7537
|
-
}]
|
|
7538
|
-
}], ctorParameters: function () { return [{ type: i6.DatePipe }]; } });
|
|
7539
|
-
|
|
7540
|
-
class BBSFDatePipe {
|
|
7541
|
-
constructor(datePipe) {
|
|
7542
|
-
this.datePipe = datePipe;
|
|
7527
|
+
registerOnTouched(fn) {
|
|
7528
|
+
this.onTouchedCallback = fn;
|
|
7543
7529
|
}
|
|
7544
|
-
|
|
7545
|
-
|
|
7546
|
-
|
|
7530
|
+
calculateInitials(name) {
|
|
7531
|
+
var fullName = name.split(' ');
|
|
7532
|
+
var initials = "";
|
|
7533
|
+
if (fullName.length > 1)
|
|
7534
|
+
initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);
|
|
7535
|
+
else
|
|
7536
|
+
initials = fullName.shift().charAt(0);
|
|
7537
|
+
return initials.toUpperCase();
|
|
7538
|
+
}
|
|
7539
|
+
onBlur() {
|
|
7540
|
+
this.onBlurInput.emit();
|
|
7547
7541
|
}
|
|
7548
7542
|
}
|
|
7549
|
-
|
|
7550
|
-
|
|
7551
|
-
|
|
7552
|
-
|
|
7553
|
-
|
|
7554
|
-
|
|
7555
|
-
|
|
7556
|
-
|
|
7543
|
+
BTagsInputComponent.decorators = [
|
|
7544
|
+
{ type: Component, args: [{
|
|
7545
|
+
selector: 'b-tags-input',
|
|
7546
|
+
template: TAGS_INPUT_TEMPLATE,
|
|
7547
|
+
providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],
|
|
7548
|
+
styles: [TAGS_INPUT_STYLE]
|
|
7549
|
+
},] }
|
|
7550
|
+
];
|
|
7551
|
+
BTagsInputComponent.propDecorators = {
|
|
7552
|
+
maxTags: [{ type: Input }],
|
|
7553
|
+
removeLastOnBackspace: [{ type: Input }],
|
|
7554
|
+
canDeleteTags: [{ type: Input }],
|
|
7555
|
+
canAddTags: [{ type: Input }],
|
|
7556
|
+
ViewMode: [{ type: Input }],
|
|
7557
|
+
placeholder: [{ type: Input }],
|
|
7558
|
+
showDescription: [{ type: Input }],
|
|
7559
|
+
options: [{ type: Input }],
|
|
7560
|
+
defaultImageURL: [{ type: Input }],
|
|
7561
|
+
minLengthBeforeOptions: [{ type: Input }],
|
|
7562
|
+
scrollableOptions: [{ type: Input }],
|
|
7563
|
+
scrollableOptionsInView: [{ type: Input }],
|
|
7564
|
+
onTagsChanged: [{ type: Output }],
|
|
7565
|
+
onMaxTagsReached: [{ type: Output }],
|
|
7566
|
+
onNoOptionsMatch: [{ type: Output }],
|
|
7567
|
+
onBlurInput: [{ type: Output }]
|
|
7568
|
+
};
|
|
7557
7569
|
|
|
7558
7570
|
class RecaptchaModel {
|
|
7559
7571
|
constructor() {
|
|
@@ -7669,18 +7681,25 @@ class RecaptchaComponent {
|
|
|
7669
7681
|
this.OnChange.emit(this.ReCaptchaFormControl.value);
|
|
7670
7682
|
}
|
|
7671
7683
|
}
|
|
7672
|
-
RecaptchaComponent
|
|
7673
|
-
|
|
7674
|
-
|
|
7675
|
-
|
|
7676
|
-
|
|
7677
|
-
|
|
7678
|
-
|
|
7679
|
-
|
|
7680
|
-
|
|
7681
|
-
|
|
7682
|
-
|
|
7683
|
-
|
|
7684
|
+
RecaptchaComponent.decorators = [
|
|
7685
|
+
{ type: Component, args: [{
|
|
7686
|
+
selector: 'BBSF-Recaptcha',
|
|
7687
|
+
template: "<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"
|
|
7688
|
+
},] }
|
|
7689
|
+
];
|
|
7690
|
+
RecaptchaComponent.ctorParameters = () => [
|
|
7691
|
+
{ type: ControlUtility },
|
|
7692
|
+
{ type: RequestHandlerService },
|
|
7693
|
+
{ type: FormGroupDirective },
|
|
7694
|
+
{ type: UtilityService },
|
|
7695
|
+
{ type: ControlValidationService },
|
|
7696
|
+
{ type: GlobalSettings }
|
|
7697
|
+
];
|
|
7698
|
+
RecaptchaComponent.propDecorators = {
|
|
7699
|
+
group: [{ type: Input }],
|
|
7700
|
+
options: [{ type: Input }],
|
|
7701
|
+
OnChange: [{ type: Output }]
|
|
7702
|
+
};
|
|
7684
7703
|
|
|
7685
7704
|
class PageHeaderComponentComponent {
|
|
7686
7705
|
constructor(router, utilityService) {
|
|
@@ -7695,25 +7714,30 @@ class PageHeaderComponentComponent {
|
|
|
7695
7714
|
this.EN = this.utilityService.isCurrentLanguageEnglish();
|
|
7696
7715
|
}
|
|
7697
7716
|
}
|
|
7698
|
-
PageHeaderComponentComponent
|
|
7699
|
-
|
|
7700
|
-
|
|
7701
|
-
type:
|
|
7702
|
-
|
|
7703
|
-
|
|
7704
|
-
|
|
7705
|
-
|
|
7706
|
-
|
|
7707
|
-
|
|
7717
|
+
PageHeaderComponentComponent.decorators = [
|
|
7718
|
+
{ type: Component, args: [{
|
|
7719
|
+
selector: 'bbsf-page-header-component',
|
|
7720
|
+
template: "<!--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"
|
|
7721
|
+
},] }
|
|
7722
|
+
];
|
|
7723
|
+
PageHeaderComponentComponent.ctorParameters = () => [
|
|
7724
|
+
{ type: Router },
|
|
7725
|
+
{ type: UtilityService }
|
|
7726
|
+
];
|
|
7727
|
+
PageHeaderComponentComponent.propDecorators = {
|
|
7728
|
+
group: [{ type: Input }],
|
|
7729
|
+
options: [{ type: Input }]
|
|
7730
|
+
};
|
|
7708
7731
|
|
|
7709
7732
|
let options;
|
|
7710
7733
|
let AppInjector;
|
|
7711
|
-
|
|
7712
|
-
|
|
7713
|
-
|
|
7714
|
-
|
|
7715
|
-
|
|
7716
|
-
|
|
7734
|
+
const ɵ0 = ControlUtility.getLocal();
|
|
7735
|
+
// FullCalendarModule.registerPlugins([
|
|
7736
|
+
// dayGridPlugin,
|
|
7737
|
+
// timeGridPlugin,
|
|
7738
|
+
// listPlugin,
|
|
7739
|
+
// interactionPlugin
|
|
7740
|
+
// ])
|
|
7717
7741
|
class BBSFControlsModule {
|
|
7718
7742
|
constructor(injector, translate) {
|
|
7719
7743
|
this.injector = injector;
|
|
@@ -7721,299 +7745,151 @@ class BBSFControlsModule {
|
|
|
7721
7745
|
AppInjector = this.injector;
|
|
7722
7746
|
}
|
|
7723
7747
|
}
|
|
7724
|
-
BBSFControlsModule
|
|
7725
|
-
|
|
7726
|
-
|
|
7727
|
-
|
|
7728
|
-
|
|
7729
|
-
|
|
7730
|
-
|
|
7731
|
-
|
|
7732
|
-
|
|
7733
|
-
|
|
7734
|
-
|
|
7735
|
-
|
|
7736
|
-
|
|
7737
|
-
|
|
7738
|
-
|
|
7739
|
-
|
|
7740
|
-
|
|
7741
|
-
|
|
7742
|
-
|
|
7743
|
-
|
|
7744
|
-
|
|
7745
|
-
|
|
7746
|
-
|
|
7747
|
-
|
|
7748
|
-
|
|
7749
|
-
|
|
7750
|
-
|
|
7751
|
-
|
|
7752
|
-
|
|
7753
|
-
|
|
7754
|
-
|
|
7755
|
-
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
|
|
7759
|
-
|
|
7760
|
-
|
|
7761
|
-
|
|
7762
|
-
|
|
7763
|
-
|
|
7764
|
-
|
|
7765
|
-
|
|
7766
|
-
|
|
7767
|
-
|
|
7768
|
-
|
|
7769
|
-
|
|
7770
|
-
|
|
7771
|
-
|
|
7772
|
-
|
|
7773
|
-
|
|
7774
|
-
|
|
7775
|
-
|
|
7776
|
-
|
|
7777
|
-
|
|
7778
|
-
|
|
7779
|
-
|
|
7780
|
-
|
|
7781
|
-
|
|
7782
|
-
|
|
7783
|
-
|
|
7784
|
-
|
|
7785
|
-
|
|
7786
|
-
|
|
7787
|
-
|
|
7788
|
-
|
|
7789
|
-
|
|
7790
|
-
|
|
7791
|
-
|
|
7792
|
-
|
|
7793
|
-
|
|
7794
|
-
|
|
7795
|
-
|
|
7796
|
-
|
|
7797
|
-
|
|
7798
|
-
|
|
7799
|
-
|
|
7800
|
-
|
|
7801
|
-
|
|
7802
|
-
|
|
7803
|
-
|
|
7804
|
-
|
|
7805
|
-
|
|
7806
|
-
|
|
7807
|
-
|
|
7808
|
-
|
|
7809
|
-
|
|
7810
|
-
|
|
7811
|
-
|
|
7812
|
-
|
|
7813
|
-
|
|
7814
|
-
|
|
7815
|
-
|
|
7816
|
-
|
|
7817
|
-
|
|
7818
|
-
|
|
7819
|
-
|
|
7820
|
-
|
|
7821
|
-
|
|
7822
|
-
|
|
7823
|
-
|
|
7824
|
-
|
|
7825
|
-
|
|
7826
|
-
|
|
7827
|
-
|
|
7828
|
-
|
|
7829
|
-
|
|
7830
|
-
|
|
7831
|
-
|
|
7832
|
-
|
|
7833
|
-
|
|
7834
|
-
|
|
7835
|
-
|
|
7836
|
-
|
|
7837
|
-
|
|
7838
|
-
|
|
7839
|
-
|
|
7840
|
-
|
|
7841
|
-
|
|
7842
|
-
|
|
7843
|
-
|
|
7844
|
-
|
|
7845
|
-
|
|
7846
|
-
|
|
7847
|
-
|
|
7848
|
-
|
|
7849
|
-
|
|
7850
|
-
|
|
7851
|
-
|
|
7852
|
-
|
|
7853
|
-
|
|
7854
|
-
|
|
7855
|
-
|
|
7856
|
-
|
|
7857
|
-
|
|
7858
|
-
|
|
7859
|
-
|
|
7860
|
-
|
|
7861
|
-
|
|
7862
|
-
|
|
7863
|
-
|
|
7864
|
-
|
|
7865
|
-
|
|
7866
|
-
|
|
7867
|
-
|
|
7868
|
-
|
|
7869
|
-
AngularEditorModule,
|
|
7870
|
-
AutocompleteLibModule,
|
|
7871
|
-
BBSFUtilitiesModule,
|
|
7872
|
-
InlineSVGModule.forRoot(),
|
|
7873
|
-
SweetAlert2Module,
|
|
7874
|
-
]] });
|
|
7875
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFControlsModule, decorators: [{
|
|
7876
|
-
type: NgModule,
|
|
7877
|
-
args: [{
|
|
7878
|
-
declarations: [
|
|
7879
|
-
DateInputComponent,
|
|
7880
|
-
FileUploadComponent,
|
|
7881
|
-
MultiLingualTextBoxComponent,
|
|
7882
|
-
TextboxComponent,
|
|
7883
|
-
TextAreaComponent,
|
|
7884
|
-
MultiLingualTextAreaComponent,
|
|
7885
|
-
CheckBoxComponent,
|
|
7886
|
-
DropdownListComponent,
|
|
7887
|
-
PhoneComponent,
|
|
7888
|
-
ToggleslideComponent,
|
|
7889
|
-
HtmlEditorComponent,
|
|
7890
|
-
MultiLingualHtmlEditorComponent,
|
|
7891
|
-
// MultiLingualHtmlEditorComponent,
|
|
7892
|
-
ImageUploaderComponent,
|
|
7893
|
-
ProfileImageUploaderComponent,
|
|
7894
|
-
CalendarComponent,
|
|
7895
|
-
MapAutoCompleteComponent,
|
|
7896
|
-
AutocompleteTextBoxComponent,
|
|
7897
|
-
TagsInputComponent,
|
|
7898
|
-
PagingComponent,
|
|
7899
|
-
JwPaginationComponent,
|
|
7900
|
-
RadioButtonComponent,
|
|
7901
|
-
FormComponent,
|
|
7902
|
-
ConfirmationModalComponent,
|
|
7903
|
-
RepeaterComponent,
|
|
7904
|
-
RepeaterFieldBuilderComponent,
|
|
7905
|
-
NgTemplateNameDirective,
|
|
7906
|
-
RepeaterItemFieldComponent,
|
|
7907
|
-
RepeaterTableComponent,
|
|
7908
|
-
BBSFDateTimePipe,
|
|
7909
|
-
BBSFDatePipe,
|
|
7910
|
-
BTagsInputComponent,
|
|
7911
|
-
RecaptchaComponent,
|
|
7912
|
-
PageHeaderComponentComponent
|
|
7913
|
-
],
|
|
7914
|
-
imports: [
|
|
7915
|
-
CommonModule,
|
|
7916
|
-
InfiniteScrollModule,
|
|
7917
|
-
NgSelectModule,
|
|
7918
|
-
NgxTagsInputModule,
|
|
7919
|
-
NgxTypeaheadModule,
|
|
7920
|
-
AgmCoreModule.forRoot({
|
|
7921
|
-
// &language=${UtilityService.CurrentLanguage}
|
|
7922
|
-
apiKey: environment$1.BBSF_GoogleMapKey,
|
|
7923
|
-
libraries: ['places'],
|
|
7924
|
-
}),
|
|
7925
|
-
MatGoogleMapsAutocompleteModule,
|
|
7926
|
-
FullCalendarModule,
|
|
7927
|
-
AngularCropperjsModule,
|
|
7928
|
-
ImageCropperModule,
|
|
7929
|
-
NgbModule,
|
|
7930
|
-
NgxDropzoneModule,
|
|
7931
|
-
FileUploadModule,
|
|
7932
|
-
TooltipModule,
|
|
7933
|
-
NgxMaskModule.forRoot(),
|
|
7934
|
-
NgxSummernoteModule,
|
|
7935
|
-
MatSlideToggleModule,
|
|
7936
|
-
NgxIntlTelInputModule,
|
|
7937
|
-
AngularMultiSelectModule,
|
|
7938
|
-
NgMultiSelectDropDownModule.forRoot(),
|
|
7939
|
-
OwlDateTimeModule,
|
|
7940
|
-
OwlNativeDateTimeModule,
|
|
7941
|
-
CommonModule,
|
|
7942
|
-
BlockUIModule.forRoot(),
|
|
7943
|
-
ReactiveFormsModule,
|
|
7944
|
-
HttpModule,
|
|
7945
|
-
RouterModule,
|
|
7946
|
-
ToastrModule.forRoot(),
|
|
7947
|
-
HttpClientModule,
|
|
7948
|
-
NgxPermissionsModule.forRoot(),
|
|
7949
|
-
OverlayModule,
|
|
7950
|
-
StoreDevtoolsModule.instrument(),
|
|
7951
|
-
FormsModule,
|
|
7952
|
-
NgxIntlTelInputModule,
|
|
7953
|
-
NgxIntlTelInputModule,
|
|
7954
|
-
BsDatepickerModule.forRoot(),
|
|
7955
|
-
FullCalendarModule,
|
|
7956
|
-
TypeaheadModule.forRoot(),
|
|
7957
|
-
AngularEditorModule,
|
|
7958
|
-
AutocompleteLibModule,
|
|
7959
|
-
BBSFUtilitiesModule,
|
|
7960
|
-
InlineSVGModule.forRoot(),
|
|
7961
|
-
SweetAlert2Module,
|
|
7962
|
-
],
|
|
7963
|
-
providers: [
|
|
7964
|
-
ErrorMassageValidation,
|
|
7965
|
-
ControlUtility,
|
|
7966
|
-
OnPagingFiltersChangeService,
|
|
7967
|
-
TranslateService,
|
|
7968
|
-
FormGroupDirective,
|
|
7969
|
-
NgbModal,
|
|
7970
|
-
NgbActiveModal,
|
|
7971
|
-
DatePipe,
|
|
7972
|
-
BBSFDateTimePipe,
|
|
7973
|
-
BBSFDatePipe,
|
|
7974
|
-
RenderComponentService,
|
|
7975
|
-
{ provide: OWL_DATE_TIME_LOCALE, useValue: ControlUtility.getLocal() },
|
|
7976
|
-
],
|
|
7977
|
-
schemas: [
|
|
7978
|
-
NO_ERRORS_SCHEMA
|
|
7979
|
-
],
|
|
7980
|
-
exports: [
|
|
7981
|
-
DateInputComponent,
|
|
7982
|
-
FileUploadComponent,
|
|
7983
|
-
MultiLingualTextBoxComponent,
|
|
7984
|
-
TextboxComponent,
|
|
7985
|
-
TextAreaComponent,
|
|
7986
|
-
MultiLingualTextAreaComponent,
|
|
7987
|
-
CheckBoxComponent,
|
|
7988
|
-
DropdownListComponent,
|
|
7989
|
-
PhoneComponent,
|
|
7990
|
-
ToggleslideComponent,
|
|
7991
|
-
HtmlEditorComponent,
|
|
7992
|
-
MultiLingualHtmlEditorComponent,
|
|
7993
|
-
ImageUploaderComponent,
|
|
7994
|
-
ProfileImageUploaderComponent,
|
|
7995
|
-
CalendarComponent,
|
|
7996
|
-
MapAutoCompleteComponent,
|
|
7997
|
-
AutocompleteTextBoxComponent,
|
|
7998
|
-
TagsInputComponent,
|
|
7999
|
-
PagingComponent,
|
|
8000
|
-
JwPaginationComponent,
|
|
8001
|
-
RadioButtonComponent,
|
|
8002
|
-
FormComponent,
|
|
8003
|
-
PagingComponent,
|
|
8004
|
-
ConfirmationModalComponent,
|
|
8005
|
-
RepeaterComponent,
|
|
8006
|
-
RepeaterFieldBuilderComponent,
|
|
8007
|
-
NgTemplateNameDirective,
|
|
8008
|
-
RepeaterItemFieldComponent,
|
|
8009
|
-
RepeaterTableComponent,
|
|
8010
|
-
BBSFDateTimePipe,
|
|
8011
|
-
BBSFDatePipe,
|
|
8012
|
-
RecaptchaComponent,
|
|
8013
|
-
PageHeaderComponentComponent
|
|
8014
|
-
]
|
|
8015
|
-
}]
|
|
8016
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1$3.TranslateService }]; } });
|
|
7748
|
+
BBSFControlsModule.decorators = [
|
|
7749
|
+
{ type: NgModule, args: [{
|
|
7750
|
+
declarations: [
|
|
7751
|
+
DateInputComponent,
|
|
7752
|
+
FileUploadComponent,
|
|
7753
|
+
MultiLingualTextBoxComponent,
|
|
7754
|
+
TextboxComponent,
|
|
7755
|
+
TextAreaComponent,
|
|
7756
|
+
MultiLingualTextAreaComponent,
|
|
7757
|
+
CheckBoxComponent,
|
|
7758
|
+
DropdownListComponent,
|
|
7759
|
+
PhoneComponent,
|
|
7760
|
+
ToggleslideComponent,
|
|
7761
|
+
HtmlEditorComponent,
|
|
7762
|
+
MultiLingualHtmlEditorComponent,
|
|
7763
|
+
// MultiLingualHtmlEditorComponent,
|
|
7764
|
+
ImageUploaderComponent,
|
|
7765
|
+
ProfileImageUploaderComponent,
|
|
7766
|
+
CalendarComponent,
|
|
7767
|
+
MapAutoCompleteComponent,
|
|
7768
|
+
AutocompleteTextBoxComponent,
|
|
7769
|
+
TagsInputComponent,
|
|
7770
|
+
PagingComponent,
|
|
7771
|
+
JwPaginationComponent,
|
|
7772
|
+
RadioButtonComponent,
|
|
7773
|
+
FormComponent,
|
|
7774
|
+
ConfirmationModalComponent,
|
|
7775
|
+
RepeaterComponent,
|
|
7776
|
+
RepeaterFieldBuilderComponent,
|
|
7777
|
+
NgTemplateNameDirective,
|
|
7778
|
+
RepeaterItemFieldComponent,
|
|
7779
|
+
RepeaterTableComponent,
|
|
7780
|
+
BBSFDateTimePipe,
|
|
7781
|
+
BBSFDatePipe,
|
|
7782
|
+
BTagsInputComponent,
|
|
7783
|
+
RecaptchaComponent,
|
|
7784
|
+
PageHeaderComponentComponent
|
|
7785
|
+
],
|
|
7786
|
+
imports: [
|
|
7787
|
+
CommonModule,
|
|
7788
|
+
InfiniteScrollModule,
|
|
7789
|
+
NgSelectModule,
|
|
7790
|
+
NgxTagsInputModule,
|
|
7791
|
+
NgxTypeaheadModule,
|
|
7792
|
+
AgmCoreModule.forRoot({
|
|
7793
|
+
// &language=${UtilityService.CurrentLanguage}
|
|
7794
|
+
apiKey: environment$1.BBSF_GoogleMapKey,
|
|
7795
|
+
libraries: ['places'],
|
|
7796
|
+
}),
|
|
7797
|
+
MatGoogleMapsAutocompleteModule,
|
|
7798
|
+
FullCalendarModule,
|
|
7799
|
+
AngularCropperjsModule,
|
|
7800
|
+
ImageCropperModule,
|
|
7801
|
+
NgbModule,
|
|
7802
|
+
NgxDropzoneModule,
|
|
7803
|
+
FileUploadModule,
|
|
7804
|
+
TooltipModule,
|
|
7805
|
+
NgxMaskModule.forRoot(),
|
|
7806
|
+
NgxSummernoteModule,
|
|
7807
|
+
MatSlideToggleModule,
|
|
7808
|
+
NgxIntlTelInputModule,
|
|
7809
|
+
AngularMultiSelectModule,
|
|
7810
|
+
NgMultiSelectDropDownModule.forRoot(),
|
|
7811
|
+
OwlDateTimeModule,
|
|
7812
|
+
OwlNativeDateTimeModule,
|
|
7813
|
+
CommonModule,
|
|
7814
|
+
BlockUIModule.forRoot(),
|
|
7815
|
+
ReactiveFormsModule,
|
|
7816
|
+
HttpModule,
|
|
7817
|
+
RouterModule,
|
|
7818
|
+
ToastrModule.forRoot(),
|
|
7819
|
+
HttpClientModule,
|
|
7820
|
+
NgxPermissionsModule.forRoot(),
|
|
7821
|
+
OverlayModule,
|
|
7822
|
+
StoreDevtoolsModule.instrument(),
|
|
7823
|
+
FormsModule,
|
|
7824
|
+
NgxIntlTelInputModule,
|
|
7825
|
+
NgxIntlTelInputModule,
|
|
7826
|
+
BsDatepickerModule.forRoot(),
|
|
7827
|
+
FullCalendarModule,
|
|
7828
|
+
TypeaheadModule.forRoot(),
|
|
7829
|
+
AngularEditorModule,
|
|
7830
|
+
AutocompleteLibModule,
|
|
7831
|
+
BBSFUtilitiesModule,
|
|
7832
|
+
InlineSVGModule.forRoot(),
|
|
7833
|
+
SweetAlert2Module,
|
|
7834
|
+
],
|
|
7835
|
+
providers: [
|
|
7836
|
+
ErrorMassageValidation,
|
|
7837
|
+
ControlUtility,
|
|
7838
|
+
OnPagingFiltersChangeService,
|
|
7839
|
+
TranslateService,
|
|
7840
|
+
FormGroupDirective,
|
|
7841
|
+
NgbModal,
|
|
7842
|
+
NgbActiveModal,
|
|
7843
|
+
DatePipe,
|
|
7844
|
+
BBSFDateTimePipe,
|
|
7845
|
+
BBSFDatePipe,
|
|
7846
|
+
RenderComponentService,
|
|
7847
|
+
{ provide: OWL_DATE_TIME_LOCALE, useValue: ɵ0 },
|
|
7848
|
+
],
|
|
7849
|
+
schemas: [
|
|
7850
|
+
NO_ERRORS_SCHEMA
|
|
7851
|
+
],
|
|
7852
|
+
exports: [
|
|
7853
|
+
DateInputComponent,
|
|
7854
|
+
FileUploadComponent,
|
|
7855
|
+
MultiLingualTextBoxComponent,
|
|
7856
|
+
TextboxComponent,
|
|
7857
|
+
TextAreaComponent,
|
|
7858
|
+
MultiLingualTextAreaComponent,
|
|
7859
|
+
CheckBoxComponent,
|
|
7860
|
+
DropdownListComponent,
|
|
7861
|
+
PhoneComponent,
|
|
7862
|
+
ToggleslideComponent,
|
|
7863
|
+
HtmlEditorComponent,
|
|
7864
|
+
MultiLingualHtmlEditorComponent,
|
|
7865
|
+
ImageUploaderComponent,
|
|
7866
|
+
ProfileImageUploaderComponent,
|
|
7867
|
+
CalendarComponent,
|
|
7868
|
+
MapAutoCompleteComponent,
|
|
7869
|
+
AutocompleteTextBoxComponent,
|
|
7870
|
+
TagsInputComponent,
|
|
7871
|
+
PagingComponent,
|
|
7872
|
+
JwPaginationComponent,
|
|
7873
|
+
RadioButtonComponent,
|
|
7874
|
+
FormComponent,
|
|
7875
|
+
PagingComponent,
|
|
7876
|
+
ConfirmationModalComponent,
|
|
7877
|
+
RepeaterComponent,
|
|
7878
|
+
RepeaterFieldBuilderComponent,
|
|
7879
|
+
NgTemplateNameDirective,
|
|
7880
|
+
RepeaterItemFieldComponent,
|
|
7881
|
+
RepeaterTableComponent,
|
|
7882
|
+
BBSFDateTimePipe,
|
|
7883
|
+
BBSFDatePipe,
|
|
7884
|
+
RecaptchaComponent,
|
|
7885
|
+
PageHeaderComponentComponent
|
|
7886
|
+
]
|
|
7887
|
+
},] }
|
|
7888
|
+
];
|
|
7889
|
+
BBSFControlsModule.ctorParameters = () => [
|
|
7890
|
+
{ type: Injector },
|
|
7891
|
+
{ type: TranslateService }
|
|
7892
|
+
];
|
|
8017
7893
|
|
|
8018
7894
|
class CustomValidation {
|
|
8019
7895
|
}
|
|
@@ -8094,6 +7970,10 @@ class AppBaseComponent {
|
|
|
8094
7970
|
let file = new Blob([fileDTO], { type: "application/pdf" });
|
|
8095
7971
|
saveAs(file, fileName);
|
|
8096
7972
|
}
|
|
7973
|
+
downloadWord(fileDTO, fileName) {
|
|
7974
|
+
let file = new Blob([fileDTO], { type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" });
|
|
7975
|
+
saveAs(file, fileName);
|
|
7976
|
+
}
|
|
8097
7977
|
base64toBlob(base64Data, contentType) {
|
|
8098
7978
|
contentType = contentType || '';
|
|
8099
7979
|
var sliceSize = 1024;
|
|
@@ -8212,11 +8092,12 @@ class AppBaseComponent {
|
|
|
8212
8092
|
}
|
|
8213
8093
|
}
|
|
8214
8094
|
}
|
|
8215
|
-
AppBaseComponent
|
|
8216
|
-
|
|
8217
|
-
|
|
8218
|
-
|
|
8219
|
-
|
|
8095
|
+
AppBaseComponent.decorators = [
|
|
8096
|
+
{ type: Injectable }
|
|
8097
|
+
];
|
|
8098
|
+
AppBaseComponent.ctorParameters = () => [
|
|
8099
|
+
{ type: Injector }
|
|
8100
|
+
];
|
|
8220
8101
|
|
|
8221
8102
|
// This file can be replaced during build by using the `fileReplacements` array.
|
|
8222
8103
|
// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.
|
|
@@ -8993,5 +8874,5 @@ var FileType;
|
|
|
8993
8874
|
* Generated bundle index. Do not edit.
|
|
8994
8875
|
*/
|
|
8995
8876
|
|
|
8996
|
-
export { AddButton, AppBaseComponent, AppInjector, Attribute, AutocompleteDTO, AutocompleteOptions, AutocompleteTextBoxComponent, BBSFControlsModule, BBSFDatePipe, BBSFDateTimePipe, BreadCrumb, BreadCrumbModel, CalendarComponent, CalendarEventDTO, CalendarOptions, CalendarView, CancelDTO, CheckBoxComponent, CheckBoxOptions, ConfirmationModalComponent, ConfirmationModalOptions, ControlFilterItem, ControlLayout, ControlOptionsBase, ControlUtility, Country, CustomValidation, CustomValidator, DataType, DateInputComponent, DatePickerOptions, DefaultIntl, DeleteButton, DropdownActionItem, DropdownActions, DropdownListComponent, DropdownListItem, DropdownOptions, EditButton, EditPersonalImage, EnglishArabicDTO, ErrorMassageValidation, ExportButton, FileType, FileUploadComponent, FileUploadModel, FileUploadOptions, FilterItem, FilterOptions, FilterType, FiltersButton, FontSize, ForceDirection, FormComponent, FormOptions, GlobalSettings, GridViewModel, HtmlEditorComponent, HtmlEditorOptions, IconPosition, ImageType, ImageUploadOptions, ImageUploaderComponent, InputType, Insert, JwPaginationComponent, LanguageMode, LanguageValidation, MapAutoCompleteComponent, MapAutoCompleteOptions, MapAutocompleteDTO, MenuListType, Misc, MultiLingualHtmlEditorComponent, MultiLingualHtmlEditorOptions, MultiLingualTextAreaComponent, MultiLingualTextAreaOptions, MultiLingualTextBoxComponent, MultiLingualTextBoxOptions, MultilingualControlOptionsBase, MultipleFileUploadModel, NgTemplateNameDirective, OnPagingFiltersChangeService, PageHeaderComponentComponent, PageHeaderOptions, PagingActionMode, PagingComponent, PagingDTO, PagingOptions, Para, PermissionSets, PhoneComponent, PhoneOptions, PickerType, ProfileImageUploadOptions, ProfileImageUploaderComponent, ProfilePictureDTO, RadioButtonComponent, RadioButtonItem, RadioButtonOptions, RangeNumber, RecaptchaComponent, RecaptchaModel, RecaptchaOptions, RenderComponentService, RepeaterComponent, RepeaterField, RepeaterFieldBuilderComponent, RepeaterItemFieldComponent, RepeaterOptions, RepeaterTableComponent, SaveDTO, SelectMode, StartView, Style, StyleConfirmationMode, TagInputView, TagsInputComponent, TagsInputDTO, TagsInputOptions, TextAreaComponent, TextAreaOptions, TextBoxModel, TextBoxOptions, TextboxComponent, ToggleSlideOptions, ToggleslideComponent, UploadPersonalImage, environment, options };
|
|
8997
|
-
//# sourceMappingURL=bnsights-bbsf-controls.
|
|
8877
|
+
export { AddButton, AppBaseComponent, AppInjector, Attribute, AutocompleteDTO, AutocompleteOptions, AutocompleteTextBoxComponent, BBSFControlsModule, BBSFDatePipe, BBSFDateTimePipe, BreadCrumb, BreadCrumbModel, CalendarComponent, CalendarEventDTO, CalendarOptions, CalendarView, CancelDTO, CheckBoxComponent, CheckBoxOptions, ConfirmationModalComponent, ConfirmationModalOptions, ControlFilterItem, ControlLayout, ControlOptionsBase, ControlUtility, Country, CustomValidation, CustomValidator, DataType, DateInputComponent, DatePickerOptions, DefaultIntl, DeleteButton, DropdownActionItem, DropdownActions, DropdownListComponent, DropdownListItem, DropdownOptions, EditButton, EditPersonalImage, EnglishArabicDTO, ErrorMassageValidation, ExportButton, FileType, FileUploadComponent, FileUploadModel, FileUploadOptions, FilterItem, FilterOptions, FilterType, FiltersButton, FontSize, ForceDirection, FormComponent, FormOptions, GlobalSettings, GridViewModel, HtmlEditorComponent, HtmlEditorOptions, IconPosition, ImageType, ImageUploadOptions, ImageUploaderComponent, InputType, Insert, JwPaginationComponent, LanguageMode, LanguageValidation, MapAutoCompleteComponent, MapAutoCompleteOptions, MapAutocompleteDTO, MenuListType, Misc, MultiLingualHtmlEditorComponent, MultiLingualHtmlEditorOptions, MultiLingualTextAreaComponent, MultiLingualTextAreaOptions, MultiLingualTextBoxComponent, MultiLingualTextBoxOptions, MultilingualControlOptionsBase, MultipleFileUploadModel, NgTemplateNameDirective, OnPagingFiltersChangeService, PageHeaderComponentComponent, PageHeaderOptions, PagingActionMode, PagingComponent, PagingDTO, PagingOptions, Para, PermissionSets, PhoneComponent, PhoneOptions, PickerType, ProfileImageUploadOptions, ProfileImageUploaderComponent, ProfilePictureDTO, RadioButtonComponent, RadioButtonItem, RadioButtonOptions, RangeNumber, RecaptchaComponent, RecaptchaModel, RecaptchaOptions, RenderComponentService, RepeaterComponent, RepeaterField, RepeaterFieldBuilderComponent, RepeaterItemFieldComponent, RepeaterOptions, RepeaterTableComponent, SaveDTO, SelectMode, StartView, Style, StyleConfirmationMode, TagInputView, TagsInputComponent, TagsInputDTO, TagsInputOptions, TextAreaComponent, TextAreaOptions, TextBoxModel, TextBoxOptions, TextboxComponent, ToggleSlideOptions, ToggleslideComponent, UploadPersonalImage, environment, options, ɵ0, BTagsInputComponent as ɵa };
|
|
8878
|
+
//# sourceMappingURL=bnsights-bbsf-controls.js.map
|