@bnsights/bbsf-controls 1.0.34 → 1.0.37

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.
Files changed (82) hide show
  1. package/README.md +20 -0
  2. package/bnsights-bbsf-controls-1.0.37.tgz +0 -0
  3. package/bnsights-bbsf-controls.metadata.json +1 -1
  4. package/bundles/bnsights-bbsf-controls.umd.js +383 -245
  5. package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
  6. package/esm2015/lib/Shared/Models/AutocompleteOptions.js +5 -10
  7. package/esm2015/lib/Shared/Models/CalendarOptions.js +4 -2
  8. package/esm2015/lib/Shared/Models/CheckBoxOptions.js +4 -5
  9. package/esm2015/lib/Shared/Models/ControlOptionsBase.js +9 -0
  10. package/esm2015/lib/Shared/Models/DropdownOptions.js +4 -6
  11. package/esm2015/lib/Shared/Models/FileUploadOptions.js +4 -7
  12. package/esm2015/lib/Shared/Models/HtmlEditorOptions.js +4 -7
  13. package/esm2015/lib/Shared/Models/ImageUploadOptions.js +4 -7
  14. package/esm2015/lib/Shared/Models/MapAutoCompleteOptions.js +3 -9
  15. package/esm2015/lib/Shared/Models/MultiLingualHtmlEditorOptions.js +4 -12
  16. package/esm2015/lib/Shared/Models/MultiLingualTextAreaOptions.js +4 -12
  17. package/esm2015/lib/Shared/Models/MultilingualControlOptionsBase.js +14 -0
  18. package/esm2015/lib/Shared/Models/MultilingualTextBoxOptions.js +4 -12
  19. package/esm2015/lib/Shared/Models/PhoneOptions.js +4 -11
  20. package/esm2015/lib/Shared/Models/ProfileImageUploadOptions.js +4 -7
  21. package/esm2015/lib/Shared/Models/RadioButtonOptions.js +3 -8
  22. package/esm2015/lib/Shared/Models/TagsInputOptions.js +4 -9
  23. package/esm2015/lib/Shared/Models/TextAreaOptions.js +4 -7
  24. package/esm2015/lib/Shared/Models/TextBoxOptions.js +4 -7
  25. package/esm2015/lib/Shared/Models/ToggleslideOptions.js +4 -3
  26. package/esm2015/lib/Shared/Models/datePickerOptions.js +4 -8
  27. package/esm2015/lib/Shared/Pipes/bbsf-date-time.pipe.js +20 -0
  28. package/esm2015/lib/Shared/Pipes/bbsf-date.pipe.js +20 -0
  29. package/esm2015/lib/Shared/services/ControlUtility.js +17 -4
  30. package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +6 -2
  31. package/esm2015/lib/controls/CheckBox/CheckBox.component.js +5 -1
  32. package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +6 -2
  33. package/esm2015/lib/controls/DropdownList/DropdownList.component.js +6 -2
  34. package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +6 -2
  35. package/esm2015/lib/controls/HtmlEditor/HtmlEditor.component.js +6 -2
  36. package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +6 -2
  37. package/esm2015/lib/controls/MapAutoComplete/MapAutoComplete.component.js +5 -1
  38. package/esm2015/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.js +14 -4
  39. package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +12 -4
  40. package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +11 -3
  41. package/esm2015/lib/controls/Paging/JwPagination.component.js +3 -1
  42. package/esm2015/lib/controls/Paging/Paging.component.js +1 -1
  43. package/esm2015/lib/controls/Phone/Phone.component.js +6 -2
  44. package/esm2015/lib/controls/ProfileImageUploader/ProfileImageUploader.component.js +6 -2
  45. package/esm2015/lib/controls/RadioButton/RadioButton.component.js +6 -2
  46. package/esm2015/lib/controls/TagsInput/TagsInput.component.js +6 -2
  47. package/esm2015/lib/controls/TextArea/TextArea.component.js +6 -3
  48. package/esm2015/lib/controls/TextBox/TextBox.component.js +14 -6
  49. package/esm2015/lib/controls/Toggleslide/toggleslide.component.js +14 -3
  50. package/esm2015/lib/controls/bbsf-controls.module.js +14 -4
  51. package/esm2015/public-api.js +5 -1
  52. package/fesm2015/bnsights-bbsf-controls.js +247 -159
  53. package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
  54. package/lib/Shared/Models/AutocompleteOptions.d.ts +3 -40
  55. package/lib/Shared/Models/CalendarOptions.d.ts +2 -8
  56. package/lib/Shared/Models/CheckBoxOptions.d.ts +2 -33
  57. package/lib/Shared/Models/ControlOptionsBase.d.ts +40 -0
  58. package/lib/Shared/Models/DropdownOptions.d.ts +2 -39
  59. package/lib/Shared/Models/FileUploadOptions.d.ts +2 -39
  60. package/lib/Shared/Models/HtmlEditorOptions.d.ts +2 -37
  61. package/lib/Shared/Models/ImageUploadOptions.d.ts +2 -38
  62. package/lib/Shared/Models/MapAutoCompleteOptions.d.ts +2 -40
  63. package/lib/Shared/Models/MultiLingualHtmlEditorOptions.d.ts +2 -77
  64. package/lib/Shared/Models/MultiLingualTextAreaOptions.d.ts +2 -76
  65. package/lib/Shared/Models/MultilingualControlOptionsBase.d.ts +71 -0
  66. package/lib/Shared/Models/MultilingualTextBoxOptions.d.ts +2 -76
  67. package/lib/Shared/Models/PhoneOptions.d.ts +2 -38
  68. package/lib/Shared/Models/ProfileImageUploadOptions.d.ts +2 -38
  69. package/lib/Shared/Models/RadioButtonOptions.d.ts +3 -39
  70. package/lib/Shared/Models/TagsInputOptions.d.ts +4 -43
  71. package/lib/Shared/Models/TextAreaOptions.d.ts +4 -42
  72. package/lib/Shared/Models/TextBoxOptions.d.ts +3 -41
  73. package/lib/Shared/Models/ToggleslideOptions.d.ts +3 -30
  74. package/lib/Shared/Models/datePickerOptions.d.ts +2 -40
  75. package/lib/Shared/Pipes/bbsf-date-time.pipe.d.ts +7 -0
  76. package/lib/Shared/Pipes/bbsf-date.pipe.d.ts +7 -0
  77. package/lib/Shared/services/ControlUtility.d.ts +4 -2
  78. package/lib/controls/Toggleslide/toggleslide.component.d.ts +3 -1
  79. package/package.json +3 -2
  80. package/public-api.d.ts +4 -0
  81. package/src/lib/assets/Style.css +2 -2
  82. package/bnsights-bbsf-controls-1.0.34.tgz +0 -0
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/angular'), require('@fullcalendar/daygrid'), require('@fullcalendar/timegrid'), require('@fullcalendar/list'), require('@fullcalendar/interaction'), require('@angular/core'), require('ng-block-ui'), require('@angular/forms'), require('@angular/http'), require('@angular/router'), require('ngx-toastr'), require('ngx-permissions'), require('@angular/cdk/overlay'), require('@ngrx/store-devtools'), require('@angular/common'), require('ngx-intl-tel-input'), require('@bnsights/bbsf-utilities'), require('ngx-bootstrap/datepicker'), require('rxjs'), require('ng-pick-datetime'), require('ng2-file-upload'), require('class-transformer'), require('ng-multiselect-dropdown'), require('angular2-multiselect-dropdown'), require('ngx-summernote'), require('ngx-mask'), require('@syncfusion/ej2-angular-popups'), require('ngx-dropzone'), require('angular-cropperjs'), require('ngx-image-cropper'), require('@ng-bootstrap/ng-bootstrap'), require('@ngx-translate/core'), require('@angular/common/http'), require('ngx-typeahead'), require('rxjs/operators'), require('ngx-tags-input'), require('@ng-select/ng-select'), require('ngx-infinite-scroll'), require('@agm/core'), require('@angular-material-extensions/google-maps-autocomplete'), require('@fullcalendar/core/locales/en-gb'), require('@fullcalendar/core/locales/ar'), require('ngx-bootstrap/typeahead'), require('@angular/material/slide-toggle'), require('@kolkov/angular-editor'), require('ng-inline-svg'), require('sweetalert2'), require('@sweetalert2/ngx-sweetalert2')) :
3
- typeof define === 'function' && define.amd ? define('@bnsights/bbsf-controls', ['exports', '@fullcalendar/angular', '@fullcalendar/daygrid', '@fullcalendar/timegrid', '@fullcalendar/list', '@fullcalendar/interaction', '@angular/core', 'ng-block-ui', '@angular/forms', '@angular/http', '@angular/router', 'ngx-toastr', 'ngx-permissions', '@angular/cdk/overlay', '@ngrx/store-devtools', '@angular/common', 'ngx-intl-tel-input', '@bnsights/bbsf-utilities', 'ngx-bootstrap/datepicker', 'rxjs', 'ng-pick-datetime', 'ng2-file-upload', 'class-transformer', 'ng-multiselect-dropdown', 'angular2-multiselect-dropdown', 'ngx-summernote', 'ngx-mask', '@syncfusion/ej2-angular-popups', 'ngx-dropzone', 'angular-cropperjs', 'ngx-image-cropper', '@ng-bootstrap/ng-bootstrap', '@ngx-translate/core', '@angular/common/http', 'ngx-typeahead', 'rxjs/operators', 'ngx-tags-input', '@ng-select/ng-select', 'ngx-infinite-scroll', '@agm/core', '@angular-material-extensions/google-maps-autocomplete', '@fullcalendar/core/locales/en-gb', '@fullcalendar/core/locales/ar', 'ngx-bootstrap/typeahead', '@angular/material/slide-toggle', '@kolkov/angular-editor', 'ng-inline-svg', 'sweetalert2', '@sweetalert2/ngx-sweetalert2'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.bnsights = global.bnsights || {}, global.bnsights["bbsf-controls"] = {}), global.angular, global.dayGridPlugin, global.timeGridPlugin, global.listPlugin, global.interactionPlugin, global.ng.core, global.ngBlockUi, global.ng.forms, global.ng.http, global.ng.router, global.ngxToastr, global.ngxPermissions, global.ng.cdk.overlay, global.storeDevtools, global.ng.common, global.ngxIntlTelInput, global.bbsfUtilities, global.datepicker, global.rxjs, global.ngPickDatetime, global.ng2FileUpload, global.classTransformer, global.ngMultiselectDropdown, global.angular2MultiselectDropdown, global.ngxSummernote, global.ngxMask, global.ej2AngularPopups, global.ngxDropzone, global.angularCropperjs, global.ngxImageCropper, global.ngBootstrap, global.core$1, global.ng.common.http, global.ngxTypeahead, global.rxjs.operators, global.ngxTagsInput, global.ngSelect, global.ngxInfiniteScroll, global.core, global.googleMapsAutocomplete, global.enGbLocale, global.ArLocale, global.typeahead, global.ng.material.slideToggle, global.angularEditor, global.ngInlineSvg, global.Swal, global.ngxSweetalert2));
5
- })(this, (function (exports, angular, dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin, i0, ngBlockUi, forms, http, router, ngxToastr, ngxPermissions, overlay, storeDevtools, common, ngxIntlTelInput, bbsfUtilities, datepicker, rxjs, ngPickDatetime, ng2FileUpload, classTransformer, ngMultiselectDropdown, angular2MultiselectDropdown, ngxSummernote, ngxMask, ej2AngularPopups, ngxDropzone, angularCropperjs, ngxImageCropper, ngBootstrap, core$1, http$1, ngxTypeahead, operators, ngxTagsInput, ngSelect, ngxInfiniteScroll, core, googleMapsAutocomplete, enGbLocale, ArLocale, typeahead, slideToggle, angularEditor, ngInlineSvg, Swal, ngxSweetalert2) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/angular'), require('@fullcalendar/daygrid'), require('@fullcalendar/timegrid'), require('@fullcalendar/list'), require('@fullcalendar/interaction'), require('@angular/core'), require('ng-block-ui'), require('@angular/forms'), require('@angular/http'), require('@angular/router'), require('ngx-toastr'), require('ngx-permissions'), require('@angular/cdk/overlay'), require('@ngrx/store-devtools'), require('@angular/common'), require('ngx-intl-tel-input'), require('@bnsights/bbsf-utilities'), require('ngx-bootstrap/datepicker'), require('rxjs'), require('ng-pick-datetime'), require('ng2-file-upload'), require('class-transformer'), require('ng-multiselect-dropdown'), require('angular2-multiselect-dropdown'), require('ngx-summernote'), require('ngx-mask'), require('@syncfusion/ej2-angular-popups'), require('ngx-dropzone'), require('angular-cropperjs'), require('ngx-image-cropper'), require('@ng-bootstrap/ng-bootstrap'), require('@ngx-translate/core'), require('@angular/common/http'), require('ngx-typeahead'), require('rxjs/operators'), require('ngx-tags-input'), require('@ng-select/ng-select'), require('ngx-infinite-scroll'), require('@agm/core'), require('@angular-material-extensions/google-maps-autocomplete'), require('@fullcalendar/core/locales/en-gb'), require('@fullcalendar/core/locales/ar'), require('ngx-bootstrap/typeahead'), require('@angular/material/slide-toggle'), require('@kolkov/angular-editor'), require('angular-ng-autocomplete'), require('ng-inline-svg'), require('sweetalert2'), require('@sweetalert2/ngx-sweetalert2')) :
3
+ typeof define === 'function' && define.amd ? define('@bnsights/bbsf-controls', ['exports', '@fullcalendar/angular', '@fullcalendar/daygrid', '@fullcalendar/timegrid', '@fullcalendar/list', '@fullcalendar/interaction', '@angular/core', 'ng-block-ui', '@angular/forms', '@angular/http', '@angular/router', 'ngx-toastr', 'ngx-permissions', '@angular/cdk/overlay', '@ngrx/store-devtools', '@angular/common', 'ngx-intl-tel-input', '@bnsights/bbsf-utilities', 'ngx-bootstrap/datepicker', 'rxjs', 'ng-pick-datetime', 'ng2-file-upload', 'class-transformer', 'ng-multiselect-dropdown', 'angular2-multiselect-dropdown', 'ngx-summernote', 'ngx-mask', '@syncfusion/ej2-angular-popups', 'ngx-dropzone', 'angular-cropperjs', 'ngx-image-cropper', '@ng-bootstrap/ng-bootstrap', '@ngx-translate/core', '@angular/common/http', 'ngx-typeahead', 'rxjs/operators', 'ngx-tags-input', '@ng-select/ng-select', 'ngx-infinite-scroll', '@agm/core', '@angular-material-extensions/google-maps-autocomplete', '@fullcalendar/core/locales/en-gb', '@fullcalendar/core/locales/ar', 'ngx-bootstrap/typeahead', '@angular/material/slide-toggle', '@kolkov/angular-editor', 'angular-ng-autocomplete', 'ng-inline-svg', 'sweetalert2', '@sweetalert2/ngx-sweetalert2'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.bnsights = global.bnsights || {}, global.bnsights["bbsf-controls"] = {}), global.angular, global.dayGridPlugin, global.timeGridPlugin, global.listPlugin, global.interactionPlugin, global.ng.core, global.ngBlockUi, global.ng.forms, global.ng.http, global.ng.router, global.ngxToastr, global.ngxPermissions, global.ng.cdk.overlay, global.storeDevtools, global.ng.common, global.ngxIntlTelInput, global.bbsfUtilities, global.datepicker, global.rxjs, global.ngPickDatetime, global.ng2FileUpload, global.classTransformer, global.ngMultiselectDropdown, global.angular2MultiselectDropdown, global.ngxSummernote, global.ngxMask, global.ej2AngularPopups, global.ngxDropzone, global.angularCropperjs, global.ngxImageCropper, global.ngBootstrap, global.core$1, global.ng.common.http, global.ngxTypeahead, global.rxjs.operators, global.ngxTagsInput, global.ngSelect, global.ngxInfiniteScroll, global.core, global.googleMapsAutocomplete, global.enGbLocale, global.ArLocale, global.typeahead, global.ng.material.slideToggle, global.angularEditor, global.angularNgAutocomplete, global.ngInlineSvg, global.Swal, global.ngxSweetalert2));
5
+ })(this, (function (exports, angular, dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin, i0, ngBlockUi, forms, http, router, ngxToastr, ngxPermissions, overlay, storeDevtools, common, ngxIntlTelInput, bbsfUtilities, datepicker, rxjs, ngPickDatetime, ng2FileUpload, classTransformer, ngMultiselectDropdown, angular2MultiselectDropdown, ngxSummernote, ngxMask, ej2AngularPopups, ngxDropzone, angularCropperjs, ngxImageCropper, ngBootstrap, core$1, http$1, ngxTypeahead, operators, ngxTagsInput, ngSelect, ngxInfiniteScroll, core, googleMapsAutocomplete, enGbLocale, ArLocale, typeahead, slideToggle, angularEditor, angularNgAutocomplete, ngInlineSvg, Swal, ngxSweetalert2) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -177,9 +177,10 @@
177
177
  })(exports.InputType || (exports.InputType = {}));
178
178
 
179
179
  var ControlUtility = /** @class */ (function () {
180
- function ControlUtility(ErrorHandler, controlValidationService) {
180
+ function ControlUtility(ErrorHandler, controlValidationService, utilityService) {
181
181
  this.ErrorHandler = ErrorHandler;
182
182
  this.controlValidationService = controlValidationService;
183
+ this.utilityService = utilityService;
183
184
  }
184
185
  ControlUtility.prototype.getErrorValidation = function (Errorsitem, CustomValidation) {
185
186
  var _this = this;
@@ -212,8 +213,20 @@
212
213
  return valid ? null : error;
213
214
  };
214
215
  };
216
+ ControlUtility.prototype.patchControlValue = function (originalValue, PatchFunction, PatchPath) {
217
+ var _this = this;
218
+ var patchOp = [{
219
+ op: "replace",
220
+ path: PatchPath,
221
+ value: originalValue
222
+ }];
223
+ var patchService = PatchFunction.call(null, patchOp);
224
+ patchService.subscribe(function (r) { return console.log(r); }, function (erorr) { return _this.utilityService.notifyErrorMessage(erorr); });
225
+ };
215
226
  ControlUtility.prototype.arabicValidator = function (error) {
216
227
  return function (control) {
228
+ if (!control.value)
229
+ return null;
217
230
  if (control.value.match('[\u0600-\u06FF]')) {
218
231
  if (control.value.match('[A-Za-z]') != null) {
219
232
  //FOUND ENGLISH CHARS
@@ -321,7 +334,8 @@
321
334
  ];
322
335
  ControlUtility.ctorParameters = function () { return [
323
336
  { type: ErrorMassageValidation },
324
- { type: bbsfUtilities.ControlValidationService }
337
+ { type: bbsfUtilities.ControlValidationService },
338
+ { type: bbsfUtilities.UtilityService }
325
339
  ]; };
326
340
 
327
341
  exports.PickerType = void 0;
@@ -517,7 +531,11 @@
517
531
  }
518
532
  this.DatePickerFormControl.setValue(DateValue);
519
533
  this.onChangeService.ChangeValue(this.options.Name);
520
- this.OnChange.emit(DateValue);
534
+ var originalValue = DateValue;
535
+ if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {
536
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
537
+ }
538
+ this.OnChange.emit(originalValue);
521
539
  };
522
540
  DateInputComponent.prototype.subscribeDateChanges = function () {
523
541
  var _this = this;
@@ -860,7 +878,11 @@
860
878
  _this.group.get(_this.options.Name).setValue(_this.multipleFileUploadModel);
861
879
  }
862
880
  };
863
- this_1.OnChange.emit(this_1.group.get(this_1.options.Name).value);
881
+ var originalValue = this_1.group.get(this_1.options.Name).value;
882
+ if (this_1.options.PatchFunction && this_1.options.PatchPath && this_1.group.get(this_1.options.Name).valid) {
883
+ this_1.controlUtility.patchControlValue(originalValue, this_1.options.PatchFunction, this_1.options.PatchPath);
884
+ }
885
+ this_1.OnChange.emit(originalValue);
864
886
  }
865
887
  };
866
888
  var this_1 = this;
@@ -1539,13 +1561,21 @@
1539
1561
  MultiLingualTextBoxComponent.prototype.trimControlValue = function (type) {
1540
1562
  var whitespace = ' ';
1541
1563
  if (type == "En") {
1564
+ var originalValue = this.EnglishFormControl.value;
1565
+ if (this.options.PatchFunction && this.options.PatchPath && this.EnglishFormControl.valid) {
1566
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
1567
+ }
1542
1568
  if (this.EnglishFormControl.value.startsWith(whitespace) || this.EnglishFormControl.value.endsWith(whitespace)) {
1543
- this.EnglishFormControl.patchValue(this.EnglishFormControl.value.trim());
1569
+ this.EnglishFormControl.patchValue(originalValue);
1544
1570
  }
1545
1571
  }
1546
1572
  if (type == "Ar") {
1573
+ var originalValue = this.ArabicFormControl.value;
1574
+ if (this.options.PatchFunction && this.options.PatchPath && this.ArabicFormControl.valid) {
1575
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
1576
+ }
1547
1577
  if (this.ArabicFormControl.value.startsWith(whitespace) || this.ArabicFormControl.value.endsWith(whitespace)) {
1548
- this.ArabicFormControl.patchValue(this.ArabicFormControl.value.trim());
1578
+ this.ArabicFormControl.patchValue(originalValue);
1549
1579
  }
1550
1580
  }
1551
1581
  };
@@ -1776,8 +1806,11 @@
1776
1806
  return this.controlUtility.getInputType(type);
1777
1807
  };
1778
1808
  TextAreaComponent.prototype.trimControlValue = function () {
1779
- var OrignalValue = this.controlUtility.trimControlValue(this.TextAreaFormControl.value);
1780
- this.TextAreaFormControl.patchValue(OrignalValue);
1809
+ var originalValue = this.controlUtility.trimControlValue(this.TextAreaFormControl.value);
1810
+ this.TextAreaFormControl.patchValue(originalValue);
1811
+ if (this.options.PatchFunction && this.options.PatchPath && this.TextAreaFormControl.valid) {
1812
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
1813
+ }
1781
1814
  };
1782
1815
  TextAreaComponent.prototype.copyInputMessage = function (inputElement) {
1783
1816
  this.controlUtility.CopyInputMessage(inputElement);
@@ -2131,13 +2164,21 @@
2131
2164
  MultiLingualTextAreaComponent.prototype.trimControlValue = function (type) {
2132
2165
  var whitespace = ' ';
2133
2166
  if (type == "En") {
2167
+ var originalValue = this.EnglishTextAreaFormControl.value;
2168
+ if (this.options.PatchFunction && this.options.PatchPath && this.EnglishTextAreaFormControl.valid) {
2169
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
2170
+ }
2134
2171
  if (this.EnglishTextAreaFormControl.value.startsWith(whitespace) || this.EnglishTextAreaFormControl.value.endsWith(whitespace)) {
2135
- this.EnglishTextAreaFormControl.patchValue(this.EnglishTextAreaFormControl.value.trim());
2172
+ this.EnglishTextAreaFormControl.patchValue(originalValue);
2136
2173
  }
2137
2174
  }
2138
2175
  if (type == "Ar") {
2176
+ var originalValue = this.ArabicTextAreaFormControl.value;
2177
+ if (this.options.PatchFunction && this.options.PatchPath && this.ArabicTextAreaFormControl.valid) {
2178
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
2179
+ }
2139
2180
  if (this.ArabicTextAreaFormControl.value.startsWith(whitespace) || this.ArabicTextAreaFormControl.value.endsWith(whitespace)) {
2140
- this.ArabicTextAreaFormControl.patchValue(this.ArabicTextAreaFormControl.value.trim());
2181
+ this.ArabicTextAreaFormControl.patchValue(originalValue);
2141
2182
  }
2142
2183
  }
2143
2184
  };
@@ -2244,7 +2285,7 @@
2244
2285
  MultiLingualTextAreaComponent.decorators = [
2245
2286
  { type: i0.Component, args: [{
2246
2287
  selector: 'BBSF-MultiLingualTextArea',
2247
- template: "<div class=\"b-control b-multilangual-textarea\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultiLanguageTextAreagroup\">\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowEngishTextArea\">\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group\">\r\n <textarea class=\"form-control bnsights-control\" 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()\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaEnglish>\r\n </textarea>\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputTextAreaEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"text-muted font-weight-500 float-end word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched)\">\r\n {{getErrorValidation(EnglishTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showEnglishCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"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\r\n <!-- <div *ngIf=\"EnglishTextAreaFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowArabicTextArea\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" [hidden]=\"options.IsHideArabicLable\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group\">\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()\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaArabic>\r\n </textarea>\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputTextAreaArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"text-muted font-weight-500 float-end word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched)\">\r\n {{getErrorValidation(ArabicTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showArabicCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"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 <!-- <div *ngIf=\"ArabicTextAreaFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
2288
+ template: "<div class=\"b-control b-multilangual-textarea\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultiLanguageTextAreagroup\">\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowEngishTextArea\">\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group\">\r\n <textarea class=\"form-control bnsights-control\" 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()\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaEnglish>\r\n </textarea>\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputTextAreaEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"text-muted font-weight-500 float-end word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched)\">\r\n {{getErrorValidation(EnglishTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showEnglishCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"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\r\n <!-- <div *ngIf=\"EnglishTextAreaFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowArabicTextArea\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group\">\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()\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaArabic>\r\n </textarea>\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputTextAreaArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"text-muted font-weight-500 float-end word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched)\">\r\n {{getErrorValidation(ArabicTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showArabicCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"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 <!-- <div *ngIf=\"ArabicTextAreaFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
2248
2289
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
2249
2290
  },] }
2250
2291
  ];
@@ -2346,6 +2387,10 @@
2346
2387
  };
2347
2388
  CheckBoxComponent.prototype.onValueChanged = function () {
2348
2389
  this.OnChange.emit(this.CheckBoxFormControl.value);
2390
+ var originalValue = this.CheckBoxFormControl.value;
2391
+ if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {
2392
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
2393
+ }
2349
2394
  };
2350
2395
  return CheckBoxComponent;
2351
2396
  }());
@@ -2484,7 +2529,11 @@
2484
2529
  };
2485
2530
  DropdownListComponent.prototype.onItemSelect = function (item) {
2486
2531
  this.onChangeService.ChangeValue(this.options.Name);
2487
- this.OnChange.emit(item);
2532
+ var originalValue = item;
2533
+ if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {
2534
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
2535
+ }
2536
+ this.OnChange.emit(originalValue);
2488
2537
  //console.log(this.DropdownListFormControl.value)
2489
2538
  };
2490
2539
  DropdownListComponent.prototype.Clear = function () {
@@ -2631,7 +2680,11 @@
2631
2680
  };
2632
2681
  PhoneComponent.prototype.onValueChanged = function () {
2633
2682
  var Number = this.PhoneFormControl.value.internationalNumber;
2634
- this.OnChange.emit(Number.trim());
2683
+ var originalValue = this.controlUtility.trimControlValue(Number);
2684
+ if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {
2685
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
2686
+ }
2687
+ this.OnChange.emit(originalValue);
2635
2688
  };
2636
2689
  return PhoneComponent;
2637
2690
  }());
@@ -2669,6 +2722,7 @@
2669
2722
  this.globalSettings = globalSettings;
2670
2723
  this.OnChange = new i0.EventEmitter();
2671
2724
  this.SlideValue = false;
2725
+ this.markAllAsTouched = false;
2672
2726
  ToggleslideComponent.controlContainerstatic = this.controlContainer;
2673
2727
  }
2674
2728
  ToggleslideComponent.prototype.ngOnInit = function () {
@@ -2696,12 +2750,22 @@
2696
2750
  ToggleslideComponent.prototype.resetError = function () {
2697
2751
  this.controlValidationService.RemoveGlobalError();
2698
2752
  };
2699
- ToggleslideComponent.prototype.getErrorValidation = function (Errorsitem) {
2700
- return this.controlUtility.getErrorValidation(Errorsitem, this.options.CustomValidation);
2753
+ ToggleslideComponent.prototype.showGlobalError = function () {
2754
+ this.controlUtility.showGlobalError();
2755
+ };
2756
+ ToggleslideComponent.prototype.getErrorValidation = function (ErrorList) {
2757
+ if (this.markAllAsTouched && this.group.invalid) {
2758
+ this.showGlobalError();
2759
+ this.markAllAsTouched = false;
2760
+ }
2761
+ return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
2701
2762
  };
2702
2763
  ToggleslideComponent.prototype.changeValueToggle = function () {
2703
2764
  this.OnChange.emit(this.SlideValue);
2704
2765
  this.ToggleslideFormControl.setValue(this.SlideValue);
2766
+ if (this.options.PatchFunction && this.options.PatchPath && this.ToggleslideFormControl.valid) {
2767
+ this.controlUtility.patchControlValue(this.SlideValue, this.options.PatchFunction, this.options.PatchPath);
2768
+ }
2705
2769
  };
2706
2770
  return ToggleslideComponent;
2707
2771
  }());
@@ -2908,7 +2972,11 @@
2908
2972
  };
2909
2973
  HtmlEditorComponent.prototype.onValueChanged = function () {
2910
2974
  this.HtmlEditorFormControl.setValue(this.HtmlEditorFormControl.value.trim());
2911
- this.OnChange.emit(this.HtmlEditorFormControl.value);
2975
+ var originalValue = this.controlUtility.trimControlValue(this.HtmlEditorFormControl.value);
2976
+ if (this.options.PatchFunction && this.options.PatchPath && this.HtmlEditorFormControl.valid) {
2977
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
2978
+ }
2979
+ this.OnChange.emit(originalValue);
2912
2980
  };
2913
2981
  return HtmlEditorComponent;
2914
2982
  }());
@@ -3206,8 +3274,13 @@
3206
3274
  if (type == "en") {
3207
3275
  this.MultilingualHtmlEditorgroup.controls["English"].setValue(this.MultilingualHtmlEditorgroup.controls["English"].value.trim());
3208
3276
  this.englishValue = this.MultilingualHtmlEditorgroup.controls["English"].value == null ? "" : this.MultilingualHtmlEditorgroup.controls["English"].value;
3209
- if (this.englishValue)
3277
+ if (this.englishValue) {
3210
3278
  this.EnglishHtmlEditorFormControl.setValue(this.englishValue);
3279
+ var originalValue = this.englishValue;
3280
+ if (this.options.PatchFunction && this.options.PatchPath && this.EnglishHtmlEditorFormControl.valid) {
3281
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
3282
+ }
3283
+ }
3211
3284
  var EngliswordCountArray = this.EnglishHtmlEditorFormControl.value.split(" ").length;
3212
3285
  if (EngliswordCountArray > 0) {
3213
3286
  if (EngliswordCountArray > this.options.MaxWordCount)
@@ -3219,8 +3292,13 @@
3219
3292
  if (type == "ar") {
3220
3293
  this.MultilingualHtmlEditorgroup.controls["Arabic"].setValue(this.MultilingualHtmlEditorgroup.controls["Arabic"].value.trim());
3221
3294
  this.arabicValue = this.MultilingualHtmlEditorgroup.controls["Arabic"].value == null ? "" : this.MultilingualHtmlEditorgroup.controls["Arabic"].value;
3222
- if (this.arabicValue)
3295
+ if (this.arabicValue) {
3223
3296
  this.ArabicHtmlEditorFormControl.setValue(this.arabicValue);
3297
+ var originalValue = this.arabicValue;
3298
+ if (this.options.PatchFunction && this.options.PatchPath && this.ArabicHtmlEditorFormControl.valid) {
3299
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
3300
+ }
3301
+ }
3224
3302
  var ArabicwordCountArray = this.ArabicHtmlEditorFormControl.value.split(" ").length;
3225
3303
  if (ArabicwordCountArray > 0) {
3226
3304
  if (ArabicwordCountArray > this.options.MaxWordCount)
@@ -3326,7 +3404,7 @@
3326
3404
  MultiLingualHtmlEditorComponent.decorators = [
3327
3405
  { type: i0.Component, args: [{
3328
3406
  selector: 'BBSF-MultiLingualHtmlEditor',
3329
- template: "<div class=\"b-control b-multilangual-html-editor\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultilingualHtmlEditorgroup\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishHtmlEditor\">\r\n <label class=\"b-label col-form-label col-sm-12 \" \r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\"\r\n [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n \r\n <angular-editor class=\"form-control bnsights-control {{options.ExtraClasses_EN}} \" (change)=\"onTextChange('en')\" [class.is-invalid]=\"EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched\"\r\n formControlName=\"English\" [config]=\"editorEnglishConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(EnglishHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\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 class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowArabicHtmlEditor\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.IsHideArabicLable\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n \r\n\r\n <angular-editor dir=\"rtl\" class=\"form-control bnsights-control {{options.ExtraClasses_AR}} \" (change)=\"onTextChange('ar')\" [class.is-invalid]=\"ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched\"\r\n formControlName=\"Arabic\" [config]=\"editorArabicConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(ArabicHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n \r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n</div>\r\n",
3407
+ template: "<div class=\"b-control b-multilangual-html-editor\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultilingualHtmlEditorgroup\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishHtmlEditor\">\r\n <label class=\"b-label col-form-label col-sm-12 \" \r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\"\r\n [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n \r\n <angular-editor class=\"form-control bnsights-control {{options.ExtraClasses_EN}} \" (change)=\"onTextChange('en')\" [class.is-invalid]=\"EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched\"\r\n formControlName=\"English\" [config]=\"editorEnglishConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(EnglishHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\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 class=\"col-lg-6\">\r\n <div class=\"row\" *ngIf=\"ShowArabicHtmlEditor\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n \r\n\r\n <angular-editor dir=\"rtl\" class=\"form-control bnsights-control {{options.ExtraClasses_AR}} \" (change)=\"onTextChange('ar')\" [class.is-invalid]=\"ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched\"\r\n formControlName=\"Arabic\" [config]=\"editorArabicConfig\"></angular-editor>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(ArabicHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n \r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n</div>\r\n",
3330
3408
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
3331
3409
  },] }
3332
3410
  ];
@@ -3564,7 +3642,11 @@
3564
3642
  _this.files = [];
3565
3643
  (_a = _this.files).push.apply(_a, __spreadArray([], __read(event.addedFiles)));
3566
3644
  }
3567
- _this.OnChange.emit(_this.ImageUploadFormControl.value);
3645
+ var originalValue = _this.ImageUploadFormControl.value;
3646
+ if (_this.options.PatchFunction && _this.options.PatchPath && _this.ImageUploadFormControl.valid) {
3647
+ _this.controlUtility.patchControlValue(originalValue, _this.options.PatchFunction, _this.options.PatchPath);
3648
+ }
3649
+ _this.OnChange.emit(originalValue);
3568
3650
  };
3569
3651
  }
3570
3652
  };
@@ -3857,7 +3939,11 @@
3857
3939
  reader_1.onload = function () {
3858
3940
  _this.imageUrl = reader_1.result.toString();
3859
3941
  _this.openModal(true);
3860
- _this.OnChange.emit(_this.group.get(_this.options.Name).value);
3942
+ var originalValue = _this.group.get(_this.options.Name).value;
3943
+ if (_this.options.PatchFunction && _this.options.PatchPath && _this.group.get(_this.options.Name).valid) {
3944
+ _this.controlUtility.patchControlValue(originalValue, _this.options.PatchFunction, _this.options.PatchPath);
3945
+ }
3946
+ _this.OnChange.emit(originalValue);
3861
3947
  };
3862
3948
  }
3863
3949
  };
@@ -4199,6 +4285,10 @@
4199
4285
  else {
4200
4286
  this.AutocompleteTextBoxControl.setValue(item);
4201
4287
  this.AutocompleteTextBoxControl.updateValueAndValidity();
4288
+ var originalValue = this.AutocompleteTextBoxControl.value;
4289
+ if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {
4290
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
4291
+ }
4202
4292
  this.OnChange.emit(this.AutocompleteTextBoxControl.value);
4203
4293
  }
4204
4294
  }
@@ -4238,7 +4328,7 @@
4238
4328
  { type: i0.Component, args: [{
4239
4329
  // tslint:disable-next-line: component-selector
4240
4330
  selector: 'BBSF-AutocompleteTextBox',
4241
- template: "<div class=\"b-control b-auto-complete-textbox\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n \r\n <!-- <input \r\n[(ngModel)]=\"Search\"\r\n value=\"{{Search}}\" \r\n autocomplete=\"off\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\"\r\n typeaheadOptionField=\"{{Value}}\"\r\n [typeahead]=\"suggestions$\"\r\n [typeaheadAsync]=\"true\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" (typeaheadOnSelect)=\"handleResultSelected($event)\" (blur)=\"onBlur($event.target.value)\" /> -->\r\n<!-- \r\n <input ngxTypeahead autocomplete=\"off\"\r\n value=\"{{Search}}\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" [taUrl]=\"options.ActionURL\"\r\n [taParams]=\"options.Params\" taQueryParam=\"{{QueryParam}}\" taApi=\"{{Api}}\" taListItemLabel=\"{{Value}}\" (taSelected)=\"handleResultSelected($event)\"> -->\r\n\r\n\r\n \r\n <ng-autocomplete\r\n *ngIf=\"!options.AllowNewSelection\"\r\n [data]=\"dataList\"\r\n [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\"\r\n placeholder=\"{{options.Placeholder}}\"\r\n (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)'\r\n historyIdentifier=\"dataList\"\r\n [itemTemplate]=\"itemTemplate\"\r\n [notFoundTemplate]=\"notFoundTemplate\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n formControlName=\"{{options.Name}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\"\r\n >\r\n </ng-autocomplete>\r\n <ng-autocomplete\r\n *ngIf=\"options.AllowNewSelection\"\r\n [data]=\"dataList\"\r\n [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\"\r\n placeholder=\"{{options.Placeholder}}\"\r\n (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)'\r\n historyIdentifier=\"dataList\"\r\n [itemTemplate]=\"itemTemplate\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n formControlName=\"{{options.Name}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\"\r\n >\r\n </ng-autocomplete>\r\n\r\n \r\n \r\n <ng-template #itemTemplate let-item>\r\n <a [innerHTML]=\"item.value\"></a>\r\n </ng-template>\r\n \r\n <ng-template #notFoundTemplate let-notFound >\r\n <div [innerHTML]=\"notFound\"></div>\r\n </ng-template>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched)\">\r\n {{getErrorValidation(AutocompleteTextBoxControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n",
4331
+ template: "<div class=\"b-control b-auto-complete-textbox\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n [hidden]=\"options.HideLabel\">\r\n {{options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger Required-text\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n\r\n <!-- <input \r\n[(ngModel)]=\"Search\"\r\n value=\"{{Search}}\" \r\n autocomplete=\"off\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\"\r\n typeaheadOptionField=\"{{Value}}\"\r\n [typeahead]=\"suggestions$\"\r\n [typeaheadAsync]=\"true\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" (typeaheadOnSelect)=\"handleResultSelected($event)\" (blur)=\"onBlur($event.target.value)\" /> -->\r\n <!-- \r\n <input ngxTypeahead autocomplete=\"off\"\r\n value=\"{{Search}}\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" [taUrl]=\"options.ActionURL\"\r\n [taParams]=\"options.Params\" taQueryParam=\"{{QueryParam}}\" taApi=\"{{Api}}\" taListItemLabel=\"{{Value}}\" (taSelected)=\"handleResultSelected($event)\"> -->\r\n\r\n\r\n\r\n <ng-autocomplete *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 [notFoundTemplate]=\"notFoundTemplate\" class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" formControlName=\"{{options.Name}}\" 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 *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 class=\"form-control bnsights-control {{options.ExtraClasses}}\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\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\r\n\r\n <ng-template #itemTemplate let-item>\r\n <a [innerHTML]=\"item.value\"></a>\r\n </ng-template>\r\n\r\n <ng-template #notFoundTemplate let-notFound>\r\n <div [innerHTML]=\"notFound\"></div>\r\n </ng-template>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched)\">\r\n {{getErrorValidation(AutocompleteTextBoxControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"control-desc text-dark\">{{options.LabelDescription}}</div>\r\n </div>\r\n\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n\r\n </div>\r\n </div>\r\n</div>",
4242
4332
  styles: [""]
4243
4333
  },] }
4244
4334
  ];
@@ -4434,7 +4524,11 @@
4434
4524
  this.TagsFormControl.invalid;
4435
4525
  }
4436
4526
  }
4437
- this.OnChange.emit(this.TagsFormControl.value);
4527
+ var originalValue = this.TagsFormControl.value;
4528
+ if (this.options.PatchFunction && this.options.PatchPath && this.TagsFormControl.valid) {
4529
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
4530
+ }
4531
+ this.OnChange.emit(originalValue);
4438
4532
  };
4439
4533
  TagsInputComponent.prototype.onNoOptionsMatch = function (event) {
4440
4534
  this.IsNoMatch = event;
@@ -4746,6 +4840,8 @@
4746
4840
  }
4747
4841
  };
4748
4842
  JwPaginationComponent.prototype.ngOnChanges = function (changes) {
4843
+ if (changes.items.firstChange)
4844
+ return;
4749
4845
  // reset page if items array has changed
4750
4846
  if (changes.items.currentValue !== changes.items.previousValue) {
4751
4847
  this.setPage(this.initialPage);
@@ -4913,7 +5009,11 @@
4913
5009
  return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
4914
5010
  };
4915
5011
  RadioButtonComponent.prototype.onValueChanged = function () {
4916
- this.OnChange.emit(this.RadioButtonFormControl.value);
5012
+ var originalValue = this.RadioButtonFormControl.value;
5013
+ if (this.options.PatchFunction && this.options.PatchPath && this.RadioButtonFormControl.valid) {
5014
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
5015
+ }
5016
+ this.OnChange.emit(originalValue);
4917
5017
  };
4918
5018
  return RadioButtonComponent;
4919
5019
  }());
@@ -5012,6 +5112,9 @@
5012
5112
  if (this.options.LabelKey != null && this.options.LabelKey != "")
5013
5113
  this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
5014
5114
  this.getCustomErrorsMassages();
5115
+ if (this.options.IsRequired) {
5116
+ this.validationRules.push(forms.Validators.required);
5117
+ }
5015
5118
  switch (this.options.Type) {
5016
5119
  case exports.InputType.Email:
5017
5120
  this.validationRules.push(forms.Validators.compose([
@@ -5074,9 +5177,6 @@
5074
5177
  this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;
5075
5178
  this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;
5076
5179
  }
5077
- if (this.options.IsRequired) {
5078
- this.validationRules.push(forms.Validators.required);
5079
- }
5080
5180
  this.TextBoxFormControl.setValidators(this.validationRules);
5081
5181
  this.TextBoxFormControl.setAsyncValidators(this.validationRulesasync);
5082
5182
  if (this.options.IsDisabled) {
@@ -5105,8 +5205,11 @@
5105
5205
  return this.controlUtility.getInputType(type);
5106
5206
  };
5107
5207
  TextboxComponent.prototype.trimControlValue = function () {
5108
- var OrignalValue = this.controlUtility.trimControlValue(this.TextBoxFormControl.value);
5109
- this.TextBoxFormControl.patchValue(OrignalValue);
5208
+ var originalValue = this.controlUtility.trimControlValue(this.TextBoxFormControl.value);
5209
+ this.TextBoxFormControl.patchValue(originalValue);
5210
+ if (this.options.PatchFunction && this.options.PatchPath && this.TextBoxFormControl.valid) {
5211
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
5212
+ }
5110
5213
  };
5111
5214
  TextboxComponent.prototype.copyInputMessage = function (inputElement) {
5112
5215
  this.controlUtility.CopyInputMessage(inputElement);
@@ -5122,6 +5225,11 @@
5122
5225
  this.EnglishLetterOnly = this.UtilityService.getResourceValue("EnglishLetterOnly");
5123
5226
  };
5124
5227
  TextboxComponent.prototype.onTextChange = function () {
5228
+ if (this.options.Type == exports.InputType.Number)
5229
+ if (!this.TextBoxFormControl.value) {
5230
+ this.TextBoxFormControl.setErrors({ IntegerNumberValidationKey: "" });
5231
+ return;
5232
+ }
5125
5233
  if (this.TextBoxFormControl.value == "") {
5126
5234
  this.WordCountArray = 0;
5127
5235
  this.WordCount = 0;
@@ -5447,6 +5555,10 @@
5447
5555
  this.MapAutoCompleteModel.Longitude = location.longitude;
5448
5556
  this.MapAutoCompleteFormControl.setValue(null);
5449
5557
  this.MapAutoCompleteFormControl.setValue(this.MapAutoCompleteModel);
5558
+ var originalValue = this.MapAutoCompleteFormControl.value;
5559
+ if (this.options.PatchFunction && this.options.PatchPath && this.MapAutoCompleteFormControl.valid) {
5560
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
5561
+ }
5450
5562
  };
5451
5563
  MapAutoCompleteComponent.prototype.GermanAddressMapped = function (result) {
5452
5564
  this.MapAutoCompleteModel == new MapAutocompleteDTO();
@@ -6092,74 +6204,77 @@
6092
6204
  ForceDirection[ForceDirection["Arabic"] = 2] = "Arabic";
6093
6205
  })(exports.ForceDirection || (exports.ForceDirection = {}));
6094
6206
 
6095
- var DatePickerOptions = /** @class */ (function () {
6096
- function DatePickerOptions() {
6097
- /** to set type of view if DatePicker is Vertical or Horizontal */
6098
- this.ViewType = exports.ControlLayout.Vertical;
6099
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
6100
- */
6207
+ var ControlOptionsBase = /** @class */ (function () {
6208
+ function ControlOptionsBase() {
6209
+ /** to set type of view if Control is Vertical or Horizontal */
6210
+ this.ViewType = null;
6211
+ /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage */
6101
6212
  this.CustomValidation = [];
6213
+ }
6214
+ return ControlOptionsBase;
6215
+ }());
6216
+
6217
+ var DatePickerOptions = /** @class */ (function (_super) {
6218
+ __extends(DatePickerOptions, _super);
6219
+ function DatePickerOptions() {
6220
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
6102
6221
  /**To set First Day Of Week to DatePicker */
6103
- this.FirstDayOfWeek = 1;
6222
+ _this.FirstDayOfWeek = 1;
6104
6223
  /**To set PickerType to DatePicker is Calendar or Timer Or Both */
6105
- this.PickerType = exports.PickerType.Calendar;
6224
+ _this.PickerType = exports.PickerType.Calendar;
6106
6225
  /**To set StartView to DatePicker is Year or Month Or Multi-Year */
6107
- this.StartView = exports.StartView.Month;
6226
+ _this.StartView = exports.StartView.Month;
6108
6227
  /**To set SelectMode to DatePicker is Single or Range */
6109
- this.SelectMode = exports.SelectMode.Single;
6110
- this.ForceDirection = exports.ForceDirection.English;
6228
+ _this.SelectMode = exports.SelectMode.Single;
6229
+ _this.ForceDirection = exports.ForceDirection.English;
6111
6230
  /**Name of DatePicker control to compare value with it */
6112
- this.StartControlToCompareWith = null;
6231
+ _this.StartControlToCompareWith = null;
6232
+ return _this;
6113
6233
  }
6114
6234
  return DatePickerOptions;
6115
- }());
6235
+ }(ControlOptionsBase));
6116
6236
 
6117
- var DropdownOptions = /** @class */ (function () {
6237
+ var DropdownOptions = /** @class */ (function (_super) {
6238
+ __extends(DropdownOptions, _super);
6118
6239
  function DropdownOptions() {
6240
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
6119
6241
  /** Disable Bootstrap DropdownList */
6120
- this.DisableBootstrapSelect = false;
6121
- /** to set type of view if DropdownList is Vertical or Horizontal */
6122
- this.ViewType = null;
6123
- /** To Set Custom Validation*/
6124
- this.CustomValidation = [];
6242
+ _this.DisableBootstrapSelect = false;
6125
6243
  /** Set key for item in DropdownList */
6126
- this.ItemTempletkey = "key";
6244
+ _this.ItemTempletkey = "key";
6127
6245
  /** Set value for item in DropdownList */
6128
- this.ItemTempletvalue = "value";
6129
- this.ForceDirection = exports.ForceDirection.English;
6246
+ _this.ItemTempletvalue = "value";
6247
+ _this.ForceDirection = exports.ForceDirection.English;
6248
+ return _this;
6130
6249
  }
6131
6250
  return DropdownOptions;
6132
- }());
6251
+ }(ControlOptionsBase));
6133
6252
 
6134
- var FileUploadOptions = /** @class */ (function () {
6253
+ var FileUploadOptions = /** @class */ (function (_super) {
6254
+ __extends(FileUploadOptions, _super);
6135
6255
  function FileUploadOptions() {
6256
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
6136
6257
  /** Ability to set FileInput required */
6137
- this.IsMultipleFile = false;
6258
+ _this.IsMultipleFile = false;
6138
6259
  /** Sets boolean Value to Show IsDropZone Or Not */
6139
- this.IsDropZone = false;
6140
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
6141
- */
6142
- this.CustomValidation = [];
6143
- /** to set type of view if textbox is Vertical or Horizontal */
6144
- this.ViewType = null;
6260
+ _this.IsDropZone = false;
6261
+ return _this;
6145
6262
  }
6146
6263
  return FileUploadOptions;
6147
- }());
6264
+ }(ControlOptionsBase));
6148
6265
 
6149
- var HtmlEditorOptions = /** @class */ (function () {
6266
+ var HtmlEditorOptions = /** @class */ (function (_super) {
6267
+ __extends(HtmlEditorOptions, _super);
6150
6268
  function HtmlEditorOptions() {
6151
- /** to set type of view if textbox is Vertical or Horizontal */
6152
- this.ViewType = null;
6153
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
6154
- */
6155
- this.CustomValidation = [];
6269
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
6156
6270
  /** to set Direction of HtmlEditor if HtmlEditor is Arabic or English */
6157
- this.ForceDirection = exports.ForceDirection.English;
6271
+ _this.ForceDirection = exports.ForceDirection.English;
6158
6272
  /** Set Height For */
6159
- this.Height = 150;
6273
+ _this.Height = 150;
6274
+ return _this;
6160
6275
  }
6161
6276
  return HtmlEditorOptions;
6162
- }());
6277
+ }(ControlOptionsBase));
6163
6278
 
6164
6279
  exports.ImageType = void 0;
6165
6280
  (function (ImageType) {
@@ -6171,51 +6286,40 @@
6171
6286
  ImageType["None"] = "";
6172
6287
  })(exports.ImageType || (exports.ImageType = {}));
6173
6288
 
6174
- var ImageUploadOptions = /** @class */ (function () {
6289
+ var ImageUploadOptions = /** @class */ (function (_super) {
6290
+ __extends(ImageUploadOptions, _super);
6175
6291
  function ImageUploadOptions() {
6292
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
6176
6293
  /** Allow to Upload Multiple File */
6177
- this.IsMultiple = false;
6294
+ _this.IsMultiple = false;
6178
6295
  /** Allow to Use Drop Zone */
6179
- this.AllowDropZone = false;
6180
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
6181
- */
6182
- this.CustomValidation = [];
6183
- /** to set type of view if FileInput is Vertical or Horizontal */
6184
- this.ViewType = null;
6296
+ _this.AllowDropZone = false;
6185
6297
  /** Set List of Custom Attribute to FileInput */
6186
- this.FileUploadAcceptsTypes = [exports.ImageType.ImageTypes];
6298
+ _this.FileUploadAcceptsTypes = [exports.ImageType.ImageTypes];
6299
+ return _this;
6187
6300
  }
6188
6301
  return ImageUploadOptions;
6189
- }());
6302
+ }(ControlOptionsBase));
6190
6303
 
6191
- var MapAutoCompleteOptions = /** @class */ (function () {
6304
+ var MapAutoCompleteOptions = /** @class */ (function (_super) {
6305
+ __extends(MapAutoCompleteOptions, _super);
6192
6306
  function MapAutoCompleteOptions() {
6193
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
6194
- */
6195
- this.CustomValidation = [];
6196
- /** to set type of view if MapAutoComplete is Vertical or Horizontal */
6197
- this.ViewType = null;
6307
+ return _super !== null && _super.apply(this, arguments) || this;
6198
6308
  }
6199
6309
  return MapAutoCompleteOptions;
6200
- }());
6310
+ }(ControlOptionsBase));
6201
6311
 
6202
- var PhoneOptions = /** @class */ (function () {
6312
+ var PhoneOptions = /** @class */ (function (_super) {
6313
+ __extends(PhoneOptions, _super);
6203
6314
  function PhoneOptions() {
6204
- /**
6205
- * Represent Css classes to Phonebox
6206
- */
6207
- this.ExtraClasses = "form-control bnsights-control";
6208
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
6209
- */
6210
- this.CustomValidation = [];
6315
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
6211
6316
  /**Set List Of Countries As Preferred Countries*/
6212
- this.PreferredCountries = [];
6213
- /** to set type of view if Phonebox is Vertical or Horizontal */
6214
- this.ViewType = null;
6215
- this.ForceDirection = exports.ForceDirection.English;
6317
+ _this.PreferredCountries = [];
6318
+ _this.ForceDirection = exports.ForceDirection.English;
6319
+ return _this;
6216
6320
  }
6217
6321
  return PhoneOptions;
6218
- }());
6322
+ }(ControlOptionsBase));
6219
6323
 
6220
6324
  var RangeNumber = /** @class */ (function () {
6221
6325
  function RangeNumber() {
@@ -6223,18 +6327,16 @@
6223
6327
  return RangeNumber;
6224
6328
  }());
6225
6329
 
6226
- var TextAreaOptions = /** @class */ (function () {
6330
+ var TextAreaOptions = /** @class */ (function (_super) {
6331
+ __extends(TextAreaOptions, _super);
6227
6332
  function TextAreaOptions() {
6228
- /** to set type of view if TextArea is Vertical or Horizontal */
6229
- this.ViewType = null;
6230
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
6231
- */
6232
- this.CustomValidation = [];
6333
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
6233
6334
  /** to set Direction of TextArea if TextArea is Arabic or English */
6234
- this.ForceDirection = exports.ForceDirection.English;
6335
+ _this.ForceDirection = exports.ForceDirection.English;
6336
+ return _this;
6235
6337
  }
6236
6338
  return TextAreaOptions;
6237
- }());
6339
+ }(ControlOptionsBase));
6238
6340
 
6239
6341
  exports.IconPosition = void 0;
6240
6342
  (function (IconPosition) {
@@ -6242,37 +6344,37 @@
6242
6344
  IconPosition[IconPosition["right"] = 2] = "right";
6243
6345
  })(exports.IconPosition || (exports.IconPosition = {}));
6244
6346
 
6245
- var TextBoxOptions = /** @class */ (function () {
6347
+ var TextBoxOptions = /** @class */ (function (_super) {
6348
+ __extends(TextBoxOptions, _super);
6246
6349
  function TextBoxOptions() {
6350
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
6247
6351
  /** set Range Number to Textbox with type number with From-Value and To-value*/
6248
- this.NumberRange = new RangeNumber();
6352
+ _this.NumberRange = new RangeNumber();
6249
6353
  /**Prevent AutoComplete of textbox*/
6250
- this.AutoComplete = "off";
6251
- /** to set type of view if textbox is Vertical or Horizontal */
6252
- this.ViewType = null;
6253
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
6254
- */
6255
- this.CustomValidation = [];
6354
+ _this.AutoComplete = "off";
6256
6355
  /** to set Direction of textbox if textbox is Arabic or English */
6257
- this.ForceDirection = null;
6356
+ _this.ForceDirection = null;
6258
6357
  /** to set Language of textbox if textbox language is Arabic or English */
6259
- this.LanguageValidation = null;
6358
+ _this.LanguageValidation = null;
6260
6359
  /** Set Type of TextBox ("text","password","email","number") */
6261
- this.Type = exports.InputType.Text;
6262
- this.IconPosition = exports.IconPosition.left;
6263
- this.NoMargin = false;
6264
- this.ValidationRules = [];
6360
+ _this.Type = exports.InputType.Text;
6361
+ _this.IconPosition = exports.IconPosition.left;
6362
+ _this.NoMargin = false;
6363
+ _this.ValidationRules = [];
6364
+ return _this;
6265
6365
  }
6266
6366
  return TextBoxOptions;
6267
- }());
6367
+ }(ControlOptionsBase));
6268
6368
 
6269
- var ToggleSlideOptions = /** @class */ (function () {
6369
+ var ToggleSlideOptions = /** @class */ (function (_super) {
6370
+ __extends(ToggleSlideOptions, _super);
6270
6371
  function ToggleSlideOptions() {
6271
- this.ViewType = null;
6272
- this.ForceDirection = exports.ForceDirection.English;
6372
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
6373
+ _this.ForceDirection = exports.ForceDirection.English;
6374
+ return _this;
6273
6375
  }
6274
6376
  return ToggleSlideOptions;
6275
- }());
6377
+ }(ControlOptionsBase));
6276
6378
 
6277
6379
  var RenderComponentService = /** @class */ (function () {
6278
6380
  function RenderComponentService(componentFactoryResolver) {
@@ -7141,6 +7243,44 @@
7141
7243
  options: [{ type: i0.Input }]
7142
7244
  };
7143
7245
 
7246
+ var BBSFDateTimePipe = /** @class */ (function () {
7247
+ function BBSFDateTimePipe(datePipe) {
7248
+ this.datePipe = datePipe;
7249
+ }
7250
+ BBSFDateTimePipe.prototype.transform = function (value) {
7251
+ var latest_date = this.datePipe.transform(value, 'dd/MM/yyyy hh:mm a');
7252
+ return latest_date;
7253
+ };
7254
+ return BBSFDateTimePipe;
7255
+ }());
7256
+ BBSFDateTimePipe.decorators = [
7257
+ { type: i0.Pipe, args: [{
7258
+ name: 'bbsfDateTime'
7259
+ },] }
7260
+ ];
7261
+ BBSFDateTimePipe.ctorParameters = function () { return [
7262
+ { type: common.DatePipe }
7263
+ ]; };
7264
+
7265
+ var BBSFDatePipe = /** @class */ (function () {
7266
+ function BBSFDatePipe(datePipe) {
7267
+ this.datePipe = datePipe;
7268
+ }
7269
+ BBSFDatePipe.prototype.transform = function (value) {
7270
+ var latest_date = this.datePipe.transform(value, 'dd/MM/yyyy');
7271
+ return latest_date;
7272
+ };
7273
+ return BBSFDatePipe;
7274
+ }());
7275
+ BBSFDatePipe.decorators = [
7276
+ { type: i0.Pipe, args: [{
7277
+ name: 'bbsfDate'
7278
+ },] }
7279
+ ];
7280
+ BBSFDatePipe.ctorParameters = function () { return [
7281
+ { type: common.DatePipe }
7282
+ ]; };
7283
+
7144
7284
  var options;
7145
7285
  exports.AppInjector = void 0;
7146
7286
  angular.FullCalendarModule.registerPlugins([
@@ -7189,7 +7329,9 @@
7189
7329
  RepeaterFieldBuilderComponent,
7190
7330
  NgTemplateNameDirective,
7191
7331
  RepeaterItemFieldComponent,
7192
- RepeaterTableComponent
7332
+ RepeaterTableComponent,
7333
+ BBSFDateTimePipe,
7334
+ BBSFDatePipe
7193
7335
  ],
7194
7336
  imports: [
7195
7337
  common.CommonModule,
@@ -7235,9 +7377,10 @@
7235
7377
  angular.FullCalendarModule,
7236
7378
  typeahead.TypeaheadModule.forRoot(),
7237
7379
  angularEditor.AngularEditorModule,
7380
+ angularNgAutocomplete.AutocompleteLibModule,
7238
7381
  bbsfUtilities.BBSFUtilitiesModule,
7239
7382
  ngInlineSvg.InlineSVGModule.forRoot(),
7240
- ngxSweetalert2.SweetAlert2Module
7383
+ ngxSweetalert2.SweetAlert2Module,
7241
7384
  ],
7242
7385
  providers: [
7243
7386
  ErrorMassageValidation,
@@ -7248,6 +7391,8 @@
7248
7391
  ngBootstrap.NgbModal,
7249
7392
  ngBootstrap.NgbActiveModal,
7250
7393
  common.DatePipe,
7394
+ BBSFDateTimePipe,
7395
+ BBSFDatePipe,
7251
7396
  RenderComponentService,
7252
7397
  { provide: ngPickDatetime.OWL_DATE_TIME_LOCALE, useValue: ɵ0 },
7253
7398
  ],
@@ -7283,7 +7428,9 @@
7283
7428
  RepeaterFieldBuilderComponent,
7284
7429
  NgTemplateNameDirective,
7285
7430
  RepeaterItemFieldComponent,
7286
- RepeaterTableComponent
7431
+ RepeaterTableComponent,
7432
+ BBSFDateTimePipe,
7433
+ BBSFDatePipe
7287
7434
  ]
7288
7435
  },] }
7289
7436
  ];
@@ -7304,6 +7451,20 @@
7304
7451
  */
7305
7452
  // import 'zone.js/dist/zone-error'; // Included with Angular CLI.
7306
7453
 
7454
+ var MultilingualControlOptionsBase = /** @class */ (function () {
7455
+ function MultilingualControlOptionsBase() {
7456
+ /** to set type of view if MultipleLanguageText is Vertical or Horizontal */
7457
+ this.ViewType = null;
7458
+ /**To Set Value To MultipleLanguageText with Object From Type "EnglishArabicDTO" */
7459
+ this.Value = new EnglishArabicDTO();
7460
+ /**To Set LanguageMode To MultipleLanguageText */
7461
+ this.LanguageMode = null;
7462
+ /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage */
7463
+ this.CustomValidation = [];
7464
+ }
7465
+ return MultilingualControlOptionsBase;
7466
+ }());
7467
+
7307
7468
  var CustomValidation = /** @class */ (function () {
7308
7469
  function CustomValidation() {
7309
7470
  }
@@ -7324,24 +7485,18 @@
7324
7485
  return CustomValidator;
7325
7486
  }());
7326
7487
 
7327
- var MultiLingualTextBoxOptions = /** @class */ (function () {
7488
+ var MultiLingualTextBoxOptions = /** @class */ (function (_super) {
7489
+ __extends(MultiLingualTextBoxOptions, _super);
7328
7490
  function MultiLingualTextBoxOptions() {
7329
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
7330
- */
7331
- this.CustomValidation = [];
7332
- /**To Set Value To MultipleLanguageText with Object From Type "EnglishArabicDTO" */
7333
- this.Value = new EnglishArabicDTO();
7334
- /** to set type of view if textbox is Vertical or Horizontal */
7335
- this.ViewType = null;
7336
- /**To Set LanguageMode To MultipleLanguageText */
7337
- this.LanguageMode = null;
7338
- this.IconPositionEN = exports.IconPosition.left;
7339
- this.IconPositionAR = exports.IconPosition.right;
7491
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
7492
+ _this.IconPositionEN = exports.IconPosition.left;
7493
+ _this.IconPositionAR = exports.IconPosition.right;
7340
7494
  /*multi control placement type*/
7341
- this.MultiControlPlacementType = null;
7495
+ _this.MultiControlPlacementType = null;
7496
+ return _this;
7342
7497
  }
7343
7498
  return MultiLingualTextBoxOptions;
7344
- }());
7499
+ }(MultilingualControlOptionsBase));
7345
7500
 
7346
7501
  var Attribute = /** @class */ (function () {
7347
7502
  function Attribute() {
@@ -7349,34 +7504,28 @@
7349
7504
  return Attribute;
7350
7505
  }());
7351
7506
 
7352
- var MultiLingualTextAreaOptions = /** @class */ (function () {
7507
+ var MultiLingualTextAreaOptions = /** @class */ (function (_super) {
7508
+ __extends(MultiLingualTextAreaOptions, _super);
7353
7509
  function MultiLingualTextAreaOptions() {
7354
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
7355
- */
7356
- this.CustomValidation = [];
7357
- /**To Set Value To MultipleLanguageText with Object From Type "EnglishArabicDTO" */
7358
- this.Value = new EnglishArabicDTO();
7359
- /** to set type of view if MultilingualTextArea is Vertical or Horizontal */
7360
- this.ViewType = null;
7361
- /**To Set LanguageMode To MultipleLanguageText */
7362
- this.LanguageMode = null;
7510
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
7363
7511
  /*multi control placement type*/
7364
- this.MultiControlPlacementType = null;
7512
+ _this.MultiControlPlacementType = null;
7513
+ return _this;
7365
7514
  }
7366
7515
  return MultiLingualTextAreaOptions;
7367
- }());
7516
+ }(MultilingualControlOptionsBase));
7368
7517
 
7369
- var CheckBoxOptions = /** @class */ (function () {
7518
+ var CheckBoxOptions = /** @class */ (function (_super) {
7519
+ __extends(CheckBoxOptions, _super);
7370
7520
  function CheckBoxOptions() {
7521
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
7371
7522
  /**To set value to CheckBox */
7372
- this.Value = null;
7373
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
7374
- */
7375
- this.CustomValidation = [];
7376
- this.ForceDirection = exports.ForceDirection.English;
7523
+ _this.Value = null;
7524
+ _this.ForceDirection = exports.ForceDirection.English;
7525
+ return _this;
7377
7526
  }
7378
7527
  return CheckBoxOptions;
7379
- }());
7528
+ }(ControlOptionsBase));
7380
7529
 
7381
7530
  var DropdownListItem = /** @class */ (function () {
7382
7531
  function DropdownListItem() {
@@ -7384,36 +7533,28 @@
7384
7533
  return DropdownListItem;
7385
7534
  }());
7386
7535
 
7387
- var MultiLingualHtmlEditorOptions = /** @class */ (function () {
7536
+ var MultiLingualHtmlEditorOptions = /** @class */ (function (_super) {
7537
+ __extends(MultiLingualHtmlEditorOptions, _super);
7388
7538
  function MultiLingualHtmlEditorOptions() {
7389
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
7390
- */
7391
- this.CustomValidation = [];
7392
- /**To Set Value To MultipleLanguageText with Object From Type "EnglishArabicDTO" */
7393
- this.Value = new EnglishArabicDTO();
7394
- /** to set type of view if MultipleLanguageText is Vertical or Horizontal */
7395
- this.ViewType = null;
7539
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
7396
7540
  /** Set Height For */
7397
- this.Height = 150;
7398
- /**To Set LanguageMode To MultipleLanguageText */
7399
- this.LanguageMode = null;
7541
+ _this.Height = 150;
7542
+ return _this;
7400
7543
  }
7401
7544
  return MultiLingualHtmlEditorOptions;
7402
- }());
7545
+ }(MultilingualControlOptionsBase));
7403
7546
 
7404
- var ProfileImageUploadOptions = /** @class */ (function () {
7547
+ var ProfileImageUploadOptions = /** @class */ (function (_super) {
7548
+ __extends(ProfileImageUploadOptions, _super);
7405
7549
  function ProfileImageUploadOptions() {
7406
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
7407
- */
7408
- this.AllowDropZone = false;
7409
- this.CustomValidation = [];
7410
- /** to set type of view if FileInput is Vertical or Horizontal */
7411
- this.ViewType = null;
7550
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
7551
+ _this.AllowDropZone = false;
7412
7552
  /** Set List of Custom Attribute to FileInput */
7413
- this.ImageUploadAcceptsTypes = [exports.ImageType.ImageTypes];
7553
+ _this.ImageUploadAcceptsTypes = [exports.ImageType.ImageTypes];
7554
+ return _this;
7414
7555
  }
7415
7556
  return ProfileImageUploadOptions;
7416
- }());
7557
+ }(ControlOptionsBase));
7417
7558
 
7418
7559
  var SaveDTO = /** @class */ (function () {
7419
7560
  function SaveDTO() {
@@ -7447,22 +7588,25 @@
7447
7588
  return UploadPersonalImage;
7448
7589
  }());
7449
7590
 
7450
- var CalendarOptions = /** @class */ (function () {
7591
+ var CalendarOptions = /** @class */ (function (_super) {
7592
+ __extends(CalendarOptions, _super);
7451
7593
  function CalendarOptions() {
7594
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
7452
7595
  /** Represent DefaultView Of Calendar*/
7453
- this.DefaultView = exports.CalendarView.Month;
7596
+ _this.DefaultView = exports.CalendarView.Month;
7454
7597
  /** Represent CalendarViews Of Calendar*/
7455
- this.CalendarViews = [exports.CalendarView.Agenda, exports.CalendarView.Daily, exports.CalendarView.Month, exports.CalendarView.Weekly];
7598
+ _this.CalendarViews = [exports.CalendarView.Agenda, exports.CalendarView.Daily, exports.CalendarView.Month, exports.CalendarView.Weekly];
7456
7599
  /** Set Calendar Visible Of Calendar*/
7457
- this.CalendarVisible = true;
7600
+ _this.CalendarVisible = true;
7458
7601
  /** Set DefaultDate Of Calendar*/
7459
- this.DefaultDate = new Date();
7460
- this.Eventeditable = false;
7461
- this.Eventselectable = false;
7462
- this.dayMaxEvents = false;
7602
+ _this.DefaultDate = new Date();
7603
+ _this.Eventeditable = false;
7604
+ _this.Eventselectable = false;
7605
+ _this.dayMaxEvents = false;
7606
+ return _this;
7463
7607
  }
7464
7608
  return CalendarOptions;
7465
- }());
7609
+ }(ControlOptionsBase));
7466
7610
 
7467
7611
  var CalendarEventDTO = /** @class */ (function () {
7468
7612
  function CalendarEventDTO() {
@@ -7470,32 +7614,28 @@
7470
7614
  return CalendarEventDTO;
7471
7615
  }());
7472
7616
 
7473
- var AutocompleteOptions = /** @class */ (function () {
7617
+ var AutocompleteOptions = /** @class */ (function (_super) {
7618
+ __extends(AutocompleteOptions, _super);
7474
7619
  function AutocompleteOptions() {
7475
- /**
7476
- * Represent classes to textbox that allow us to select the AutoComplete by jquery or javascript
7477
- */
7478
- this.ValidationToken = null;
7620
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
7621
+ /**Represent classes to textbox that allow us to select the AutoComplete by jquery or javascript */
7622
+ _this.ValidationToken = null;
7479
7623
  /**To set value to textbox */
7480
- this.Value = null;
7624
+ _this.Value = null;
7481
7625
  /** set Range Number to Textbox with type number with From-Value and To-value*/
7482
- this.NumberRange = new RangeNumber();
7483
- /** to set type of view if textbox is Vertical or Horizontal */
7484
- this.ViewType = null;
7485
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
7486
- */
7487
- this.CustomValidation = [];
7626
+ _this.NumberRange = new RangeNumber();
7488
7627
  /** to set Direction of textbox if textbox is Arabic or English */
7489
- this.ForceDirection = exports.ForceDirection.English;
7628
+ _this.ForceDirection = exports.ForceDirection.English;
7490
7629
  /** allow add value of AutoComplete dosn't exist in list*/
7491
- this.AllowNewSelection = false;
7630
+ _this.AllowNewSelection = false;
7492
7631
  // /**a {key,value} (json) object to include as params for the json call. Each api supports different structure.*/
7493
7632
  // Params: object={};
7494
- this.QueryParam = 'query';
7495
- this.SelectedValue = null;
7633
+ _this.QueryParam = 'query';
7634
+ _this.SelectedValue = null;
7635
+ return _this;
7496
7636
  }
7497
7637
  return AutocompleteOptions;
7498
- }());
7638
+ }(ControlOptionsBase));
7499
7639
 
7500
7640
  var TagsInputDTO = /** @class */ (function () {
7501
7641
  function TagsInputDTO() {
@@ -7503,49 +7643,45 @@
7503
7643
  return TagsInputDTO;
7504
7644
  }());
7505
7645
 
7506
- var TagsInputOptions = /** @class */ (function () {
7646
+ var TagsInputOptions = /** @class */ (function (_super) {
7647
+ __extends(TagsInputOptions, _super);
7507
7648
  function TagsInputOptions() {
7508
- /**To set value to tagsinput */
7509
- this.Value = null;
7510
- /** to set type of view if tagsinput is Vertical or Horizontal */
7511
- this.ViewType = null;
7512
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
7513
- */
7514
- this.CustomValidation = [];
7649
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
7515
7650
  /** to set Direction of tagsinput if tagsinput is Arabic or English */
7516
- this.ForceDirection = exports.ForceDirection.English;
7651
+ _this.ForceDirection = exports.ForceDirection.English;
7517
7652
  /**Remove Last When User Click On Backspace */
7518
- this.RemoveLastOnBackspace = false;
7653
+ _this.RemoveLastOnBackspace = false;
7519
7654
  /** Allow User To Delete Tags */
7520
- this.CanDeleteTags = true;
7655
+ _this.CanDeleteTags = true;
7521
7656
  /** Allow User To Add Tags */
7522
- this.CanAddTags = true;
7657
+ _this.CanAddTags = true;
7523
7658
  /** Set Max Number Of Tags That User Can Be Select */
7524
- this.MaxNumberTags = 100;
7659
+ _this.MaxNumberTags = 100;
7525
7660
  /** Set Min Length Of Char To Call Search Function */
7526
- this.MinSearchLength = 1;
7661
+ _this.MinSearchLength = 1;
7527
7662
  /**Allow Scrolle Option In Dropdown */
7528
- this.ScrollableOptions = true;
7663
+ _this.ScrollableOptions = true;
7529
7664
  /** Set Max Number Of Tags That will Be Appear ON Dropdown */
7530
- this.MaxSearchResultsCount = 5;
7665
+ _this.MaxSearchResultsCount = 5;
7531
7666
  /**Value Name Of Tag Option In Dropdown */
7532
- this.DatasourceItemValue = "key";
7667
+ _this.DatasourceItemValue = "key";
7533
7668
  /**Text Of Tag That Will Show In Dropdown */
7534
- this.DatasourceItemText = "value";
7669
+ _this.DatasourceItemText = "value";
7535
7670
  /**Text Show when none of the given options match the entered text */
7536
- this.NoResultText = "No Item Matches";
7671
+ _this.NoResultText = "No Item Matches";
7537
7672
  /**Set Query Param Name By Default It's 'query'*/
7538
- this.QueryParamName = "query";
7673
+ _this.QueryParamName = "query";
7539
7674
  /**Set Query Param Name By Default It's 'query'*/
7540
- this.SelectedItemsParamName = "SelectedItems";
7675
+ _this.SelectedItemsParamName = "SelectedItems";
7541
7676
  /**Set Filter Param Name By Default It's 'query'*/
7542
- this.FilterParamName = "";
7677
+ _this.FilterParamName = "";
7543
7678
  /** allow add value of TagInput dosn't exist in list*/
7544
- this.AllowNewSelection = false;
7545
- this.ValidationToken = null;
7679
+ _this.AllowNewSelection = false;
7680
+ _this.ValidationToken = null;
7681
+ return _this;
7546
7682
  }
7547
7683
  return TagsInputOptions;
7548
- }());
7684
+ }(ControlOptionsBase));
7549
7685
 
7550
7686
  var FilterItem = /** @class */ (function () {
7551
7687
  function FilterItem() {
@@ -7599,15 +7735,13 @@
7599
7735
  return PagingOptions;
7600
7736
  }());
7601
7737
 
7602
- var RadioButtonOptions = /** @class */ (function () {
7738
+ var RadioButtonOptions = /** @class */ (function (_super) {
7739
+ __extends(RadioButtonOptions, _super);
7603
7740
  function RadioButtonOptions() {
7604
- this.ViewType = null;
7605
- /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage
7606
- */
7607
- this.CustomValidation = [];
7741
+ return _super !== null && _super.apply(this, arguments) || this;
7608
7742
  }
7609
7743
  return RadioButtonOptions;
7610
- }());
7744
+ }(ControlOptionsBase));
7611
7745
 
7612
7746
  var RadioButtonItem = /** @class */ (function () {
7613
7747
  function RadioButtonItem() {
@@ -8025,6 +8159,8 @@
8025
8159
  exports.AutocompleteOptions = AutocompleteOptions;
8026
8160
  exports.AutocompleteTextBoxComponent = AutocompleteTextBoxComponent;
8027
8161
  exports.BBSFControlsModule = BBSFControlsModule;
8162
+ exports.BBSFDatePipe = BBSFDatePipe;
8163
+ exports.BBSFDateTimePipe = BBSFDateTimePipe;
8028
8164
  exports.CalendarComponent = CalendarComponent;
8029
8165
  exports.CalendarEventDTO = CalendarEventDTO;
8030
8166
  exports.CalendarOptions = CalendarOptions;
@@ -8033,6 +8169,7 @@
8033
8169
  exports.CheckBoxOptions = CheckBoxOptions;
8034
8170
  exports.ConfirmationModalComponent = ConfirmationModalComponent;
8035
8171
  exports.ConfirmationModalOptions = ConfirmationModalOptions;
8172
+ exports.ControlOptionsBase = ControlOptionsBase;
8036
8173
  exports.ControlUtility = ControlUtility;
8037
8174
  exports.CustomValidation = CustomValidation;
8038
8175
  exports.CustomValidator = CustomValidator;
@@ -8065,6 +8202,7 @@
8065
8202
  exports.MultiLingualTextAreaOptions = MultiLingualTextAreaOptions;
8066
8203
  exports.MultiLingualTextBoxComponent = MultiLingualTextBoxComponent;
8067
8204
  exports.MultiLingualTextBoxOptions = MultiLingualTextBoxOptions;
8205
+ exports.MultilingualControlOptionsBase = MultilingualControlOptionsBase;
8068
8206
  exports.MultipleFileUploadModel = MultipleFileUploadModel;
8069
8207
  exports.NgTemplateNameDirective = NgTemplateNameDirective;
8070
8208
  exports.OnPagingFiltersChangeService = OnPagingFiltersChangeService;